Complaint.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. namespace app\admin\controller\service\order;
  3. use app\common\controller\Backend;
  4. use think\Db;
  5. use think\Exception;
  6. /**
  7. * 投诉管理
  8. *
  9. * @icon fa fa-circle-o
  10. */
  11. class Complaint extends Backend
  12. {
  13. /**
  14. * Complaint模型对象
  15. * @var \app\admin\model\service\order\Complaint
  16. */
  17. protected $model = null;
  18. public function _initialize()
  19. {
  20. parent::_initialize();
  21. $this->model = new \app\admin\model\service\order\Complaint;
  22. $this->view->assign("stateList", $this->model->getStateList());
  23. }
  24. public function index()
  25. {
  26. //设置过滤方法
  27. $this->request->filter(['strip_tags', 'trim']);
  28. if (false === $this->request->isAjax()) {
  29. return $this->view->fetch();
  30. }
  31. //如果发送的来源是 Selectpage,则转发到 Selectpage
  32. if ($this->request->request('keyField')) {
  33. return $this->selectpage();
  34. }
  35. [$where, $sort, $order, $offset, $limit] = $this->buildparams();
  36. $list = $this->model
  37. ->where($where)
  38. ->order($sort, $order)
  39. ->paginate($limit);
  40. foreach ($list as &$val)
  41. {
  42. $val->user = db('user')->where('id',$val->user_id)->field('avatar,nickname,mobile')->find();
  43. $order = db('service_order')->where(['id'=>$val->order_id])->find();
  44. $val->address = db('service_order_address')->where('order_id',$val->order_id)->field('name,sex,mobile,province,city,district,area,address')->find();
  45. $val->detail = db('service_order_detail')->where('order_id',$val->order_id)->field('name,image,sku_name,num,price,sumprice')->find();
  46. $val->skill = $order['skill_id']?db('service_skill')->field('name,mobile,image')->where('id',$order['skill_id'])->find():'';
  47. $val->shop = $order['shop_id']?db('service_shop')->where('id',$order['shop_id'])->field('name,abbr,logo_image,leader_name,leader_mobile')->find():'';
  48. $val->order = $order;
  49. $val->create_time = date("Y-m-d H:i",$val->createtime);
  50. }
  51. $result = ['total' => $list->total(), 'rows' => $list->items()];
  52. return json($result);
  53. }
  54. public function handle()
  55. {
  56. $get = input('get.');
  57. $row = $this->model->get($get['ids']);
  58. $row->state != 0 && $this->error('请勿重复审核');
  59. $this->model->where('id',$get['ids'])->update(['state'=>$get['state']]);
  60. $order = \app\api\model\service\Order::where('id',$row->order_id)->field('id,user_id,shop_id,skill_id')->find();
  61. \app\api\model\service\OrderLog::create(['order_id'=>$row->order_id,'user_id'=>$row->user_id,'type'=>18,'content'=>'订单投诉已处理']);
  62. $userOpenid = \app\api\model\service\UserInfo::getOpenid($order['user_id'],0);
  63. $content = explode(',',$row->complaint_content);
  64. \app\api\model\service\Order::createComplaintTemplateParams(['content'=>$content[0],'id'=>$order['id'],'time'=>$row->createtime,'res'=>'已处理','note'=>'已处理','state'=>$get['state'],'type'=>0,'templateAttr'=>'user_complaint_template','openid'=>$userOpenid]);
  65. $this->success('投诉已处理');
  66. }
  67. public function deduct($ids)
  68. {
  69. $row = \app\admin\model\service\order\Order::get($ids);
  70. $row->skill_ensure_price = $row->skill_id ? \app\api\model\service\Skill::where('id',$row->skill_id)->value('ensure_price'):'';
  71. $row->shop_ensure_price = $row->shop_id ? \app\api\model\service\Shop::where('id',$row->shop_id)->value('ensure_price'):'';
  72. if($this->request->isPost())
  73. {
  74. $params = $this->request->post('row/a');
  75. Db::startTrans();
  76. try{
  77. if(isset($params['skill_ensure']) && $params['skill_ensure']>0) {
  78. $params['skill_ensure']>$row->skill_ensure_price && $this->error('保证金不足,无法扣除');
  79. $skill = \app\api\model\service\Skill::where('id', $params['skill_id'])->field('user_id,id,ensure_price')->find();
  80. \app\api\model\service\Skill::money(-$params['skill_ensure'], $skill['user_id'], $params['skill_note']);
  81. \app\api\model\service\SkillEnsurePay::reduceSkillEnsure($skill['id']);
  82. }
  83. if(isset($params['shop_ensure']) && $params['shop_ensure']>0) {
  84. $params['shop_ensure']>$row->shop_ensure_price && $this->error('保证金不足,无法扣除');
  85. $shop = \app\api\model\service\Shop::where('id', $params['shop_id'])->field('user_id,id,ensure_price')->find();
  86. \app\api\model\service\Shop::money(-$params['shop_ensure'], $shop['user_id'], $params['shop_note']);
  87. \app\api\model\service\ShopEnsurePay::reduceShopEnsure($shop['id']);
  88. }
  89. Db::commit();
  90. } catch (Exception $e) {
  91. Db::rollback();
  92. $this->error('保证金扣除失败',$e->getMessage());
  93. }
  94. $this->success('保证金已扣除');
  95. }
  96. $this->assign(['row'=>$row]);
  97. return $this->view->fetch();
  98. }
  99. }