assign('breadcrumb1','发放配置'); $this->assign('breadcrumb2','产品范围'); } /** * 列表页 * * */ public function index(Model $Model,CouponRewardRule $CouponRewardRule,Product $Product){ // 接收参数 $rewardRuleId = request('reward_rule_id',0); $productCode = request('product_code',''); $productId = $Product->codeToId($productCode); // 查询条件 $map = []; // 组合条件 if( $rewardRuleId ) $map[] = ['reward_rule_id','=',$rewardRuleId]; if( $productId ) $map[] = ['product_id','=',$productId]; // 查询数据 $list = $Model->query()->where($map)->orderByDesc('id')->paginate(config('page_num',10)); // 循环处理数据 foreach ($list as $key => $value) { // 产品编码 $value['product_code'] = $Product->idToCode($value['product_id']); // 产品编码 $value['product_name'] = $Product->query()->where([['id','=',$value['product_id']]])->value('name'); // 重组 $list[$key] = $value; } // 获取列表 $ruleList = $CouponRewardRule->query()->get(['id','name'])->toArray(); // 分配数据 $this->assign('empty', '~~暂无数据'); $this->assign('ruleList',$ruleList); $this->assign('list',$list); // 加载模板 return $this->fetch(); } /** * 添加 * * */ public function add(Request $request,Model $Model,Product $Product,CouponRewardRule $CouponRewardRule){ if( request()->isMethod('post') ){ // 验证参数 $request->scene('add')->validate(); // 接收数据 $productCode = request('product_code',''); $data['product_id'] = $Product->codeToId($productCode); $data['reward_rule_id'] = request('reward_rule_id',0); $data['product_units'] = request('product_units',0); // 如果操作失败 if( !$data['product_id'] ) return json_send(['code'=>'error','msg'=>'请填写正确的产品编码']); // 查询产品ID是否存在 $oldId = $Model->query()->where([['reward_rule_id','=',$data['reward_rule_id']],['product_id','=',$data['product_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']); } // 获取列表 $ruleList = $CouponRewardRule->query()->get(['id','name'])->toArray(); // 分配数据 $this->assign('ruleList',$ruleList); $this->assign('crumbs','新增'); // 加载模板 return $this->fetch(); } /** * 修改 * * */ public function edit(Request $request,Model $Model,Product $Product,CouponRewardRule $CouponRewardRule){ // 接收参数 $id = request('id',0); // 查询用户 $oldData = $Model->where(['id'=>$id])->first(); // 修改 if(request()->isMethod('post')){ // 验证参数 $request->scene('edit')->validate(); // 接收数据 $productCode = request('product_code',''); $data['product_id'] = $Product->codeToId($productCode); $data['reward_rule_id'] = request('reward_rule_id',0); $data['product_units'] = request('product_units',0); // 如果操作失败 if( !$data['product_id'] ) return json_send(['code'=>'error','msg'=>'请填写正确的产品编码']); // 查询产品ID是否存在 $oldId = $Model->query()->where([['reward_rule_id','=',$data['reward_rule_id']],['product_id','=',$data['product_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['product_code'] = $Product->idToCode($oldData['product_id']); // 获取列表 $ruleList = $CouponRewardRule->query()->get(['id','name'])->toArray(); // 分配数据 $this->assign('ruleList',$ruleList); $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'=>'']); } }