getQueryFilter($param); // 执行查询 $list = $this->with([]) ->where($filter) ->order(['audit_status'=>'asc','create_time'=>'desc']) ->paginate($listRows); return $list; } /** * 检索查询条件 * @param array $param * @return \think\db\BaseQuery */ private function getQueryFilter(array $param) { // 商品列表获取条件 $params = $this->setQueryDefaultValue($param, [ // 'is_delete' => 0, ]); // 筛选条件 $filter = []; // 活动起止时间 if (!empty($params['betweenTime'])) { $times = between_date($params['betweenTime']); $filter[] = ['start_time', '>=', $times['start_date']]; $filter[] = ['end_time', '<=', $times['end_date']]; } // 活动名称 !empty($params['name']) && $filter[] = ['name', 'like', "%{$params['name']}%"]; // 审核状态 0待审核 1审核通过 2审核不通过 if(isset($params['auditStatus'])&&$params['auditStatus']>-1){ $filter[] = ['audit_status','=',$params['auditStatus']]; } //启用状态0禁用 1启用 if(isset($params['status'])&&$params['status']>-1){ $filter[] = ['status','=',$params['status']]; } //活动状态 if(isset($params['statusText'])&&$params['statusText']>0){ switch ($params['statusText']){ case 1://进行中 $filter[] = ['start_time','<=',date('Y-m-d H:i:s')]; $filter[] = ['end_time','>=',date('Y-m-d H:i:s')]; $filter[] = ['audit_status','=',1]; break; case 2://未开始 $filter[] = ['start_time','>',date('Y-m-d H:i:s')]; break; case 3://已结束 $filter[] = ['end_time','<',date('Y-m-d H:i:s')]; break; } } // 实例化新查询对象 return $filter; } /** * 启用 禁用 * @param array $data * @return bool */ public function status(array $data) { $this->transaction(function () use ($data) { $this->save($data); }); return true; } /** * 审核 * @param array $data * @return bool */ public function audit(array $data) { $this->transaction(function () use ($data) { $this->save($data); //写入行为记录 $this->addAction($this->id,$data); if($data['audit_status']==1){ //如果审核通过就创建一个活动统计记录 if(CouponActivityStatisticsModel::where('coupon_activity_id',$this->id)->count()<1){ CouponActivityStatisticsModel::create(['coupon_activity_id'=>$this->id]); } } }); return true; } /** * 修改记录 * @param array $data * @return bool */ public function addOne(array $data) { $this->transaction(function () use ($data) { $this->save($data); // 选择的优惠券存入 $couponActivityCouponModel = new CouponActivityCouponModel(); $couponActivityCouponModel->add($this->id, $data['shareList']??[],$data['beSharedList']??[]); //写入行为记录 //$data['audit_status'] = 0; $this->addAction($this->id,$data); }); return true; } /** * 新增记录 * @param array $data * @return bool */ public function updOne(array $data) { $this->transaction(function () use ($data) { $this->save($data); // 选择的优惠券存入 $couponActivityCouponModel = new CouponActivityCouponModel(); $couponActivityCouponModel->add($this->id, $data['shareList']??[],$data['beSharedList']??[]); //写入行为记录 //$data['audit_status'] = 0; $this->addAction($this->id,$data); }); return true; } //添加行为记录 public function addAction($coupon_activity_id,$data){ $behavior = ''; switch ($data['audit_status']){ case 0:$behavior = '提交审核'; break; case 1:$behavior = '同意并发布活动'; break; case 2:$behavior = '不同意'; break; } $refuse['coupon_activity_id'] = $coupon_activity_id; $refuse['audit_status'] = $data['audit_status']; $refuse['audit_reason'] = $data['audit_reason']??''; $refuse['behavior'] = $behavior; $refuse['audit_time'] = date("Y-m-d H:i:s",time()); $refuse['audit_user'] = $data['audit_user']; $refuse['audit_admin_id'] = $data['audit_admin_id']; $refuseModel = new CouponActivityActionModel; $refuseModel->save($refuse); } /** * Notes:生成商品编号 * 规则:随机9位数 * Author: zhangs * DateTime: 2021/10/11 16:11 * @return string */ public static function makeCodeNo() { return substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 9); } }