| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- /**
- * @package merchant
- *
- * @author xaboy
- * @day 2020-05-14
- *
- *
- */
- namespace app\common\dao\store\coupon;
- use app\common\dao\BaseDao;
- use app\common\model\BaseModel;
- use app\common\model\store\coupon\StoreCouponUser;
- /**
- * Class StoreCouponUserDao
- * @package app\common\dao\store\coupon
- * @author xaboy
- * @day 2020-05-14
- */
- class StoreCouponUserDao extends BaseDao
- {
- /**
- * @return BaseModel
- * @author xaboy
- * @day 2020-03-30
- */
- protected function getModel(): string
- {
- return StoreCouponUser::class;
- }
- public function search(array $where)
- {
- return StoreCouponUser::when(isset($where['username']) && $where['username'] != '', function ($query) use ($where) {
- $query->hasWhere('user', [['nickname', 'LIKE', "%{$where['username']}%"]]);
- })->when(true, function ($query) use ($where) {
- $query->hasWhere('user', [['uid', '>', 0]]);
- })->alias('StoreCouponUser')->when(isset($where['coupon_title']) && $where['coupon_title'] !== '', function ($query) use ($where) {
- $query->whereLike('StoreCouponUser.coupon_title', "%{$where['coupon_title']}%");
- })->when(isset($where['status']) && $where['status'] != '', function ($query) use ($where) {
- $query->where('StoreCouponUser.status', $where['status']);
- })->when(isset($where['uid']) && $where['uid'] != '', function ($query) use ($where) {
- $query->where('StoreCouponUser.uid', $where['uid']);
- })->when(isset($where['mer_id']) && $where['mer_id'] != '', function ($query) use ($where) {
- $query->where('StoreCouponUser.mer_id', $where['mer_id']);
- })->when(isset($where['coupon_id']) && $where['coupon_id'] != '', function ($query) use ($where) {
- $query->where('StoreCouponUser.coupon_id', $where['coupon_id']);
- })->order('StoreCouponUser.create_time desc');
- }
- public function validIntersection($merId, $uid, array $ids): array
- {
- $time = date('Y-m-d H:i:s');
- return StoreCouponUser::getDB()->whereIn('coupon_user_id', $ids)->where('start_time', '<', $time)->where('end_time', '>', $time)
- ->where('is_fail', 0)->where('status', 0)->where('mer_id', $merId)->where('uid', $uid)->column('coupon_user_id');
- }
- public function validQuery()
- {
- $time = date('Y-m-d H:i:s');
- return StoreCouponUser::getDB()->where('start_time', '<', $time)->where('end_time', '>', $time)->where('is_fail', 0)->where('status', 0);
- }
- public function failCoupon()
- {
- $time = date('Y-m-d H:i:s');
- return StoreCouponUser::getDB()->where('end_time', '<', $time)->where('is_fail', 0)->where('status', 0)->update(['status' => 2]);
- }
- public function userTotal($uid)
- {
- return $this->validQuery()->where('uid', $uid)->count();
- }
- public function usedNum($couponId)
- {
- return StoreCouponUser::getDB()->where('coupon_id', $couponId)->where('status', 1)->count();
- }
- public function sendNum($couponId)
- {
- return StoreCouponUser::getDB()->where('coupon_id', $couponId)->count();
- }
- }
|