123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- <?php
- namespace app\store\model\coupon;
- use app\common\enum\order\DeliveryStatus as DeliveryStatusEnum;
- use app\common\enum\order\ReceiptStatus as ReceiptStatusEnum;
- use app\common\model\coupon\CouponActivity as CouponActivityModel;
- use app\common\model\coupon\CouponActivityAction as CouponActivityActionModel;
- use app\common\model\coupon\CouponActivityCoupon as CouponActivityCouponModel;
- use app\common\model\coupon\CouponActivityStatistics as CouponActivityStatisticsModel;
- /**
- * 裂变优惠券活动模型
- * @package app\store\model\coupon
- */
- class CouponActivity extends CouponActivityModel
- {
- /**
- * 获取列表
- * @param array $param 查询条件
- * @param int $listRows 分页数量
- * @return mixed
- * @throws \think\db\exception\DbException
- */
- public function getList(array $param = [], int $listRows = 15)
- {
- // 检索查询条件
- $filter = $this->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);
- }
- }
|