Warehouse.php 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | [ WE CAN DO IT MORE SIMPLE ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2018-2020 rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Author: TABLE ME
  8. // +----------------------------------------------------------------------
  9. // | Date: 2020-08-31 20:43
  10. // +----------------------------------------------------------------------
  11. namespace app\admin\controller\v1;
  12. use app\BaseController;
  13. use app\model\admin\ExpCost;
  14. use app\model\admin\MemberLevel;
  15. use app\model\admin\Warehouse as WarehouseModel;
  16. use app\model\admin\AdminRole;
  17. use app\Request;
  18. use library\services\UtilService;
  19. use library\utils\Dtree;
  20. use library\utils\MakeSite;
  21. class Warehouse extends BaseController
  22. {
  23. /**
  24. * 获取管理列表
  25. * @param Request $request
  26. */
  27. public function list(Request $request) {
  28. $pageSize = 50;
  29. [$page,$name] = UtilService::getMore(
  30. [
  31. ['page',1],
  32. ['name','']
  33. ],$request,true
  34. );
  35. $where = [];
  36. if(!empty($name)) {
  37. $where['name'] = ["%{$name}%",'whereLike'];
  38. }
  39. $platform = (new \app\model\admin\Platform());
  40. list($pageCount,$data) = (new WarehouseModel)->getList($page, $where,$pageSize,'id desc');
  41. foreach ($data as $k => $v) {
  42. $idsAr = explode(',',$v['platform_ids']);
  43. $platformAr = [];
  44. $data[$k]['platform'] = array_map(
  45. function ($item) use($platform){
  46. return $platform->getPlatformId($item,'*');
  47. },$idsAr);
  48. }
  49. return app('json')->success([
  50. 'list' => $data,
  51. 'pageCount' => $pageCount,
  52. 'pageSize' => $pageSize,
  53. 'page' => $page
  54. ]);
  55. }
  56. /**
  57. * 保存数据
  58. * @param Request $request
  59. */
  60. public function save(Request $request) {
  61. $post = UtilService::getMore(
  62. [
  63. ['id','0'],
  64. ['name','','empty','请输入仓库名称'],
  65. ['lx_name',''],
  66. ['lx_tel',''],
  67. ['address',''],
  68. ['status','0'],
  69. ['seq','0'],
  70. ['platform_ids','']
  71. ],
  72. $request
  73. );
  74. $bool = (new WarehouseModel)->saveModel($post);
  75. if($bool)
  76. return app('json')->success("操作成功", []);
  77. else
  78. return app('json')->fail(WarehouseModel::getErrorInfo());
  79. }
  80. /**
  81. * 获取详情数据
  82. * @param Request $request
  83. * @return mixed
  84. */
  85. public function info(Request $request) {
  86. [$id] = UtilService::getMore([
  87. ['id','','empty','参数错误']
  88. ],$request,true);
  89. $info = WarehouseModel::get(compact('id'))->toArray();
  90. return app('json')->success($info);
  91. }
  92. /**
  93. * 删除数据
  94. * @param Request $request
  95. */
  96. public function del(Request $request) {
  97. [$id] = UtilService::getMore(
  98. [
  99. ['id','0'],
  100. ],
  101. $request,true
  102. );
  103. WarehouseModel::del($id);
  104. return app('json')->success("删除成功", []);
  105. }
  106. /**
  107. * 快递配置[全部数据]
  108. * @param Request $request
  109. */
  110. public function exp(Request $request) {
  111. $pageSize = 20;
  112. [$page] = UtilService::getMore(
  113. [
  114. ['page','1']
  115. ]
  116. ,$request,true);
  117. $where = [];
  118. $where['sassid'] = $request->site['sassid'];
  119. $where['level_id'] = -1;
  120. $level = (new MemberLevel)->select()->toArray();
  121. $expCost = new ExpCost;
  122. list($pageCount,$data) = $expCost->getList2($page, $where,$pageSize,'id desc');
  123. foreach ($data as $k=>$v) {
  124. $expData = [];
  125. $d = $expCost
  126. ->field('id,money,level_id,status')
  127. ->where('warehouse_id',$v['warehouse_id'])
  128. ->where('express_id',$v['express_id'])
  129. ->where('sassid',$v['sassid'])
  130. ->select();
  131. $bool = false;
  132. foreach ($level as $v1) {
  133. $expData[$v1['id']] = ['money'=>0,'id'=>0,'status'=>0,'level_id'=>$v1['id']];
  134. foreach ($d as $v2) {
  135. if($v1['id'] == $v2['level_id']) {
  136. $expData[$v1['id']]['money'] = $v2['money'];
  137. $expData[$v1['id']]['id'] = $v2['id'];
  138. if($v2['status']) $bool = true;
  139. }
  140. }
  141. }
  142. $data[$k]['status'] = $bool;
  143. $data[$k]['expData'] = $expData;
  144. $data[$k]['exp_money'] = empty($v['exp_money']) ? 0 : $v['exp_money'];
  145. }
  146. return app('json')->success([
  147. 'list' => $data,
  148. 'pageCount' => $pageCount,
  149. 'pageSize' => $pageSize,
  150. 'page' => $page,
  151. 'level' => $level
  152. ]);
  153. }
  154. /**
  155. * 保存数据
  156. * @param Request $request
  157. */
  158. public function expSave(Request $request) {
  159. $pageSize = 20;
  160. [$warehouse_id,$id,$expData,$status] = UtilService::getMore(
  161. [
  162. ['warehouse_id','','empty','参数错误'],
  163. ['id','','empty','参数错误'],
  164. ['expData',[]],
  165. ['status',false],
  166. ]
  167. ,$request,true);
  168. $expCost = (new ExpCost);
  169. $exp_money = $expCost
  170. ->where('warehouse_id',$warehouse_id)
  171. ->where('express_id',$id)
  172. ->where('sassid',$request->site['sassid'])
  173. ->where('level_id',-1)
  174. ->value('money');
  175. if(empty($exp_money)) $exp_money = 0;
  176. $isMoneyEr = false;
  177. $rePrice= [];
  178. foreach ($expData as $v) {
  179. $money = $v['money'];
  180. if($exp_money > $v['money']) {
  181. $money = $exp_money;
  182. $isMoneyEr = true;
  183. }
  184. $d['warehouse_id'] = $warehouse_id;
  185. $d['express_id'] = $id;
  186. $d['money'] = $money;
  187. $rePrice[] = $money;
  188. $d['level_id'] = $v['level_id'];
  189. $d['sassid'] = $request->site['sassid'];
  190. $d['status'] = $status ? 1 : 0;
  191. $count = $expCost
  192. ->where('sassid',$request->site['sassid'])
  193. ->where('warehouse_id',$warehouse_id)
  194. ->where('express_id',$id)
  195. ->where('level_id',$v['level_id'])
  196. ->count();
  197. if( $count <= 0 ) {
  198. $expCost->insert($d);
  199. } else {
  200. $expCost->where('id',$v['id'])->save($d);
  201. }
  202. }
  203. return app('json')->success([
  204. 'msg'=>'操作成功',
  205. 'err'=>($isMoneyEr ? ('快递费用低于' .$exp_money.'元,全部恢复成'.$exp_money ) : ''),
  206. 'price'=>$rePrice]);
  207. }
  208. /**
  209. * 更新分站数据
  210. * @param Request $request
  211. */
  212. public function updateSiteExp(Request $request) {
  213. [$warehouse_id] = UtilService::getMore(
  214. [
  215. ['warehouse_id','']
  216. ]
  217. ,$request,true);
  218. $str = [];
  219. $sassid = $request->site['sassid'];
  220. $w = (new \app\model\system\Warehouse)->select();
  221. foreach ($w as $v) {
  222. $makeSite = new MakeSite($sassid);
  223. $makeSite->makeExpcos($v['id']);
  224. $str[] = $v['name'].'更新成功';
  225. }
  226. return app('json')->success(join(',',$str));
  227. }
  228. }