SupplierPlatformCatProfit.php 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. <?php
  2. namespace app\admin\controller;
  3. use think\facade\Db;
  4. use think\facade\Validate;
  5. //公司平台分类毛利
  6. class SupplierPlatformCatProfit extends Base
  7. {
  8. //列表
  9. public function getList()
  10. {
  11. $param = $this->request->only(['page' => 1, 'size' => 10, 'supplier_name' => '', 'supplierNo' => '', 'platform_name' => '', 'cat_name' => ''], 'post', 'trim');
  12. $where = [['a.is_del', '=', 0]];
  13. if ($param['supplier_name'] != '') $where[] = ['b.name', 'like', '%' . $param['supplier_name'] . '%'];
  14. if ($param['supplierNo'] != '') $where[] = ['a.supplierNo', '=', $param['supplierNo']];
  15. if ($param['platform_name'] != '') $where[] = ['d.platform_name', 'like', '%' . $param['platform_name'] . '%'];
  16. if ($param['cat_name'] != '') $where[] = ['f.cat_name', 'like', '%' . $param['cat_name'] . '%'];
  17. $count = Db::name('supplier_platform_cat_profit')
  18. ->alias('a')
  19. ->leftJoin('supplier b', 'b.code=a.supplierNo')
  20. ->leftJoin('supplier_platform c', 'c.id=a.supplier_platform_id AND c.is_del=0')
  21. ->leftJoin('platform d', 'd.id=c.platform_id AND d.is_del=0')
  22. ->leftJoin('supplier_cat e', 'e.id=a.supplier_cat_id AND e.is_del=0')
  23. ->leftJoin('cat f', 'f.id=e.cat_id AND f.is_del=0')
  24. ->where($where)
  25. ->count('a.id');
  26. $list = Db::name('supplier_platform_cat_profit')
  27. ->alias('a')
  28. ->field('a.id,a.supplierNo,a.rate,a.order_rate,a.money_rate,a.low_rate,a.sale_rate,a.lower_rate,a.status,a.addtime,b.name supplier_name,d.platform_name,f.cat_name')
  29. ->leftJoin('supplier b', 'b.code=a.supplierNo')
  30. ->leftJoin('supplier_platform c', 'c.id=a.supplier_platform_id AND c.is_del=0')
  31. ->leftJoin('platform d', 'd.id=c.platform_id AND d.is_del=0')
  32. ->leftJoin('supplier_cat e', 'e.id=a.supplier_cat_id AND e.is_del=0')
  33. ->leftJoin('cat f', 'f.id=e.cat_id AND f.is_del=0')
  34. ->where($where)
  35. ->order('a.id', 'desc')
  36. ->page($param['page'], $param['size'])
  37. ->select()
  38. ->toArray();
  39. return json_show(0, '获取列表成功', ['count' => $count, 'list' => $list]);
  40. }
  41. //添加
  42. public function add()
  43. {
  44. $param = $this->request->only(['supplierNo', 'supplier_platform_id', 'supplier_cat_id', 'rate', 'order_rate', 'money_rate', 'low_rate', 'sale_rate', 'lower_rate'], 'post', 'trim');
  45. $val = Validate::rule([
  46. 'supplierNo|公司编码' => 'require|length:18',
  47. 'supplier_platform_id|公司平台id' => 'require|number|gt:0',
  48. 'supplier_cat_id|公司分类id' => 'require|number|gt:0',
  49. 'rate|主管利率' => 'require|number|between:0,100',
  50. 'order_rate|预算成本' => 'require|number|between:0,100',
  51. 'money_rate|财务利率' => 'require|number|between:0,100',
  52. 'low_rate|最低利率' => 'require|number|between:0,100',
  53. 'sale_rate|成本售价' => 'require|number|between:0,100',
  54. 'lower_rate|BOSS利率' => 'require|number|between:0,100',
  55. ]);
  56. if (!$val->check($param)) return json_show(1004, $val->getError());
  57. $tmp_sp = Db::name('supplier_platform')
  58. ->field('id,status')
  59. ->where(['is_del' => 0, 'supplierNo' => $param['supplierNo'], 'id' => $param['supplier_platform_id']])
  60. ->findOrEmpty();
  61. if (empty($tmp_sp)) return json_show(1004, '该公司平台不存在');
  62. if ($tmp_sp['status'] == 0) return json_show(1004, '该公司平台已禁用');
  63. $tmp_sc = Db::name('supplier_cat')
  64. ->field('id,status')
  65. ->where(['is_del' => 0, 'supplierNo' => $param['supplierNo'], 'id' => $param['supplier_cat_id']])
  66. ->findOrEmpty();
  67. if (empty($tmp_sc)) return json_show(1004, '该公司分类不存在');
  68. if ($tmp_sc['status'] == 0) return json_show(1004, '该公司分类已禁用');
  69. $tmp_spcp = Db::name('supplier_platform_cat_profit')
  70. ->field('id')
  71. ->where(['is_del' => 0, 'supplierNo' => $param['supplierNo'], 'supplier_platform_id' => $param['supplier_platform_id'], 'supplier_cat_id' => $param['supplier_cat_id']])
  72. ->findOrEmpty();
  73. if (!empty($tmp_spcp)) return json_show(1004, '该公司平台分类的毛利已存在');
  74. $rs = Db::name('supplier_platform_cat_profit')
  75. ->insert([
  76. 'supplierNo' => $param['supplierNo'],
  77. 'supplier_platform_id' => $param['supplier_platform_id'],
  78. 'supplier_cat_id' => $param['supplier_cat_id'],
  79. 'rate' => $param['rate'],
  80. 'order_rate' => $param['order_rate'],
  81. 'money_rate' => $param['money_rate'],
  82. 'low_rate' => $param['low_rate'],
  83. 'sale_rate' => $param['sale_rate'],
  84. 'lower_rate' => $param['lower_rate'],
  85. 'status' => 1,
  86. 'is_del' => 0,
  87. 'addtime' => date('Y-m-d H:i:s'),
  88. 'updatetime' => date('Y-m-d H:i:s'),
  89. ]);
  90. return $rs ? json_show(0, '添加成功') : json_show(1004, '添加失败');
  91. }
  92. //详情
  93. public function info()
  94. {
  95. $id = $this->request->post('id/d', 0, 'trim');
  96. $rs = Db::name('supplier_platform_cat_profit')
  97. ->field(true)
  98. ->where(['id' => $id, 'is_del' => 0])
  99. ->findOrEmpty();
  100. return json_show(0, '获取详情成功', $rs);
  101. }
  102. //修改
  103. public function update()
  104. {
  105. $param = $this->request->only(['id', 'rate', 'order_rate', 'money_rate', 'low_rate', 'sale_rate', 'lower_rate'], 'post', 'trim');
  106. $val = Validate::rule([
  107. 'id' => 'require|number|gt:0',
  108. 'rate|主管利率' => 'require|number|between:0,100',
  109. 'order_rate|预算成本' => 'require|number|between:0,100',
  110. 'money_rate|财务利率' => 'require|number|between:0,100',
  111. 'low_rate|最低利率' => 'require|number|between:0,100',
  112. 'sale_rate|成本售价' => 'require|number|between:0,100',
  113. 'lower_rate|BOSS利率' => 'require|number|between:0,100',
  114. ]);
  115. if (!$val->check($param)) return json_show(1004, $val->getError());
  116. $rs = Db::name('supplier_platform_cat_profit')
  117. ->field('id')
  118. ->where(['is_del' => 0, 'id' => $param['id']])
  119. ->findOrEmpty();
  120. if (empty($rs)) return json_show(1004, '该记录不存在');
  121. $rs = Db::name('supplier_platform_cat_profit')
  122. ->where(['is_del' => 0, 'id' => $param['id']])
  123. ->update([
  124. 'rate' => $param['rate'],
  125. 'order_rate' => $param['order_rate'],
  126. 'money_rate' => $param['money_rate'],
  127. 'low_rate' => $param['low_rate'],
  128. 'sale_rate' => $param['sale_rate'],
  129. 'lower_rate' => $param['lower_rate'],
  130. 'updatetime' => date('Y-m-d H:i:s')
  131. ]);
  132. return $rs ? json_show(0, '修改成功') : json_show(1004, '修改失败');
  133. }
  134. //启禁用
  135. public function status()
  136. {
  137. $param = $this->request->only(['id', 'status'], 'post', 'trim');
  138. $val = Validate::rule([
  139. 'id' => 'require|number|gt:0',
  140. 'status|状态' => 'require|number|in:0,1',
  141. ]);
  142. if (!$val->check($param)) return json_show(1004, $val->getError());
  143. $tmp = Db::name('supplier_platform_cat_profit')
  144. ->field('id,status')
  145. ->where(['is_del' => 0, 'id' => $param['id']])
  146. ->findOrEmpty();
  147. if (empty($tmp)) return json_show(1004, '该记录不存在');
  148. if ($tmp['status'] == $param['status']) return json_show(1004, '重复操作');
  149. $rs = Db::name('supplier_platform_cat_profit')
  150. ->where(['is_del' => 0, 'id' => $param['id']])
  151. ->where('status', '<>', $param['status'])
  152. ->update([
  153. 'status' => $param['status'],
  154. 'updatetime' => date('Y-m-d H:i:s')
  155. ]);
  156. return $rs ? json_show(0, '操作成功') : json_show(1004, '操作失败');
  157. }
  158. //删除
  159. public function delete()
  160. {
  161. $id = $this->request->post('id/d', 0, 'trim');
  162. $rs = Db::name('supplier_platform_cat_profit')
  163. ->where(['is_del' => 0, 'id' => $id])
  164. ->update([
  165. 'is_del' => 1,
  166. 'updatetime' => date('Y-m-d H:i:s')
  167. ]);
  168. return $rs ? json_show(0, '删除成功') : json_show(1004, '删除失败');
  169. }
  170. }