// +---------------------------------------------------------------------- declare (strict_types = 1); namespace app\store\controller; use app\store\model\coupon\CouponActivity as CouponActivityModel; use app\store\model\coupon\CouponActivityStatistics as CouponActivityStatisticsModel; /** * 裂变活动管理 * Class Files * @package app\store\controller */ class CouponActivity extends Controller { /** * 裂变活动列表 * @return array * @author: zjwhust * @Time: 2022/1/21 16:49 */ public function list(){ $model = new CouponActivityModel; $list = $model->getList($this->request->param()); return $this->renderSuccess(compact('list')); } /** * 新增裂变活动 * @return array * @author: zjwhust * @Time: 2022/1/22 11:01 */ public function add() { $model = new CouponActivityModel; $param = $this->request->param(); $param['audit_user'] = $this->store['user']['real_name']; $param['audit_admin_id'] = $this->store['user']['store_user_id']; $param['admin_id'] = $this->store['user']['store_user_id']; $param['code'] = $model->makeCodeNo(); // 生成活动编号 $activity_time = between_time_format($param['activity_time']); // 生成活动编号 $param['start_time'] = date("Y-m-d H:i:s",$activity_time['start_time']); $param['end_time'] = date("Y-m-d H:i:s",$activity_time['end_time']); if (isset($param['role']) && $param['role'] == 1){ $param['status'] = 1; $param['audit_time'] = Date("Y-m-d H:i:s",time()); $param['audit_status'] = 1; }else{ $param['audit_status'] = 0; } if ($model->addOne($param)) { return $this->renderSuccess('添加成功'); } return $this->renderError($model->getError() ?: '添加失败'); } /** * 修改裂变活动 * @param int $id * @return array * @author: zjwhust * @Time: 2022/1/22 11:04 */ public function update() { $param = $this->request->param(); $model = CouponActivityModel::detail($param['id']); $param['audit_user'] = $this->store['user']['real_name']; $param['audit_admin_id'] = $this->store['user']['store_user_id']; $activity_time = between_time_format($param['activity_time']); // 生成活动编号 $param['start_time'] = date("Y-m-d H:i:s",$activity_time['start_time']); $param['end_time'] = date("Y-m-d H:i:s",$activity_time['end_time']); $param['audit_status'] = 0;//重新修改为审核中 $param['audit_time'] = null;//重新修改为没有审核时间 $param['audit_reason'] = '';//重新修改为没有拒绝理由 if (isset($param['role']) && $param['role'] == 1){ $param['status'] = 1; $param['audit_time'] = Date("Y-m-d H:i:s",time()); $param['audit_status'] = 1; }else{ $param['audit_status'] = 0; } if ($model->updOne($param)) { return $this->renderSuccess('修改成功'); } return $this->renderError($model->getError() ?: '修改失败'); } /** * 裂变活动详情 * @return array * @param int $id * @author: zjwhust * @Time: 2022/1/22 11:10 */ public function detail(int $id){ $detail = CouponActivityModel::detail($id,['couponActivityCoupon'=>['coupon'],'couponActivityAction']); $shareList = $beSharedList = []; foreach ($detail['couponActivityCoupon'] as $key=>$coupon){ if($coupon['type']==1){ $shareList[] = $coupon; }else{ $beSharedList[] = $coupon; } unset($detail['couponActivityCoupon'][$key]); } $detail['couponActivityCoupon']['shareList'] = $shareList; $detail['couponActivityCoupon']['beSharedList'] = $beSharedList; return $this->renderSuccess(compact('detail')); } /** * 裂变活动启用/禁用 * @param int $id * @return array * @author: zjwhust * @Time: 2022/1/22 11:02 */ public function status(int $id){ $model = CouponActivityModel::detail($id); $param = $this->request->param(); $res ='操作成功'; $status =$param['status']; if($status==1){ $res = '已启用'; } if($status==0){ $res = '已禁用'; } if ($model->status($param)) { return $this->renderSuccess($param,$res); } return $this->renderError($model->getError() ?: '操作失败'); } /** * 裂变活动审核 * @param int $id * @return array * @author: zjwhust * @Time: 2022/1/22 11:03 */ public function audit(int $id) { $model = CouponActivityModel::detail($id); if(empty($model)){ return $this->renderError('找不到裂变活动'); } // 确认审核 $param = $this->request->param(); $res ='操作成功'; $audit_status =$param['audit_status']; if($audit_status==1){ $res = '已审核通过'; $param['status'] =1;//启用 } if($audit_status==2){ $res = '已审核不通过'; $param['status'] = 0;//禁用 } $param['audit_time'] = Date("Y-m-d H:i:s",time()); $param['audit_user'] = $this->store['user']['real_name']; $param['audit_admin_id'] = $this->store['user']['store_user_id']; if ($model->audit($param)) { return $this->renderSuccess($param,$res); } return $this->renderError($model->getError() ?: '操作失败'); } /** * 裂变数据统计列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author: zjwhust * @Time: 2022/1/22 17:38 */ public function statisticsList(){ $model = new CouponActivityStatisticsModel; $list = $model->getList($this->request->param()); return $this->renderSuccess(compact('list')); } }