assign('breadcrumb1','领券活动'); $this->assign('breadcrumb2','优惠券配置'); } /** * 列表页 * * */ public function index(Model $Model,CouponActive $CouponActive,Coupon $Coupon){ // 接收参数 $activeId = request('active_id',0); $couponCode = request('coupon_code',''); $couponId = $Coupon->codeToId($couponCode); // 查询条件 $map = []; // 组合条件 if( $activeId ) $map[] = ['active_id','=',$activeId]; if( $couponId ) $map[] = ['coupon_id','=',$couponId]; // 查询数据 $list = $Model->query() ->join('coupon','coupon.id','=','coupon_active_coupon.coupon_id') ->where($map) ->orderByDesc('id') ->select(['coupon_active_coupon.*','coupon.name as coupon_name']) ->paginate(config('page_num',10)); // 循环处理数据 foreach ($list as $key => $value) { // 优惠券编码 $value['active_name'] = $CouponActive->getOne($value['active_id'],'name'); // 优惠券编码 $value['coupon_code'] = $Coupon->idToCode($value['coupon_id']); // 重组 $list[$key] = $value; } // 获取列表 $activeList = $CouponActive->query()->get(['id','name'])->toArray(); // 分配数据 $this->assign('empty', '~~暂无数据'); $this->assign('activeList',$activeList); $this->assign('list',$list); // 加载模板 return $this->fetch(); } /** * 添加 * * */ public function add(Request $request,Model $Model,Coupon $Coupon,CouponActive $CouponActive){ if( request()->isMethod('post') ){ // 验证参数 $request->scene('add')->validate(); // 接收数据 $couponCode = request('coupon_code',''); $data['coupon_id'] = $Coupon->codeToId($couponCode); $data['active_id'] = request('active_id',0); // 如果操作失败 if( !$data['coupon_id'] ) return json_send(['code'=>'error','msg'=>'请填写正确的优惠券编码']); // 查询产品ID是否存在 $oldId = $Model->query()->where([['active_id','=',$data['active_id']],['coupon_id','=',$data['coupon_id']]])->value('id'); // 重复提醒 if( $oldId ) return json_send(['code'=>'error','msg'=>'优惠券编码已存在']); // 写入数据表 $id = $Model->add($data); // 如果操作失败 if( !$id ) return json_send(['code'=>'error','msg'=>'新增失败']); // 记录行为 $this->addAdminHistory(admin('uid'),$Model->getTable(),$id,1,[],$data); // 告知结果 return json_send(['code'=>'success','msg'=>'新增成功','action'=>'add']); } // 获取列表 $activeList = $CouponActive->query()->get(['id','name'])->toArray(); // 分配数据 $this->assign('activeList',$activeList); $this->assign('crumbs','新增'); // 加载模板 return $this->fetch(); } /** * 修改 * * */ public function edit(Request $request,Model $Model,Coupon $Coupon,CouponActive $CouponActive){ // 接收参数 $id = request('id',0); // 查询用户 $oldData = $Model->where(['id'=>$id])->first(); // 修改 if(request()->isMethod('post')){ // 验证参数 $request->scene('edit')->validate(); // 接收数据 $couponCode = request('coupon_code',''); $data['coupon_id'] = $Coupon->codeToId($couponCode); $data['active_id'] = request('active_id',0); // 如果操作失败 if( !$data['coupon_id'] ) return json_send(['code'=>'error','msg'=>'请填写正确的优惠券编码']); // 查询产品ID是否存在 $oldId = $Model->query()->where([['active_id','=',$data['active_id']],['coupon_id','=',$data['coupon_id']]])->value('id'); // 重复提醒 if( $oldId && $oldId != $id ) return json_send(['code'=>'error','msg'=>'优惠券编码已存在']); // 写入数据表 $result = $Model->edit($id,$data); // 如果操作失败 if( !$result ) return json_send(['code'=>'error','msg'=>'新增失败']); // 记录行为 $this->addAdminHistory(admin('uid'),$Model->getTable(),$id,2,$oldData,$data); // 告知结果 return json_send(['code'=>'success','msg'=>'修改成功','action'=>'edit']); } // 错误告知 if( !$oldData ) return $this->error('查无数据'); // 优惠券编码 $oldData['coupon_code'] = $Coupon->idToCode($oldData['coupon_id']); // 获取列表 $activeList = $CouponActive->query()->get(['id','name'])->toArray(); // 分配数据 $this->assign('activeList',$activeList); $this->assign('oldData',$oldData); $this->assign('crumbs','修改'); // 加载模板 return $this->fetch(); } /** * 修改状态 * * */ public function set_status(Request $request,Model $Model){ // 验证参数 $request->scene('set_status')->validate(); // 设置状态 $id = request('id',0); $status = request('status',0); // 查询用户 $oldData = $Model->where(['id'=>$id])->first(); // 如果用户不存在 if( !$oldData ) return json_send(['code'=>'error','msg'=>'数据不存在']); // 执行修改 $result = $Model->edit($id,['status'=>$status]); // 提示新增失败 if( !$result ) return json_send(['code'=>'error','msg'=>'设置失败']); // 记录行为 $this->addAdminHistory(admin('uid'),$Model->getTable(),$id,2,$oldData,['status'=>$status]); // 告知结果 return json_send(['code'=>'success','msg'=>'设置成功','path'=>'']); } }