Warehouse.php 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  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\system\controller\v1;
  12. use app\BaseController;
  13. use app\model\system\ExpCost;
  14. use app\model\system\Express;
  15. use app\model\system\MemberLevel;
  16. use app\model\system\Warehouse as WarehouseModel;
  17. use app\model\system\SystemRole;
  18. use app\Request;
  19. use library\services\UtilService;
  20. use library\utils\Dtree;
  21. use library\utils\MakeSite;
  22. class Warehouse extends BaseController
  23. {
  24. /**
  25. * 获取管理列表
  26. * @param Request $request
  27. */
  28. public function list(Request $request) {
  29. $pageSize = 50;
  30. [$page,$name] = UtilService::getMore(
  31. [
  32. ['page',1],
  33. ['name','']
  34. ],$request,true
  35. );
  36. $where = [];
  37. if(!empty($name)) {
  38. $where['name'] = ["%{$name}%",'whereLike'];
  39. }
  40. $platform = (new \app\model\system\Platform());
  41. list($pageCount,$data) = (new WarehouseModel)->getList($page, $where,$pageSize,'id desc');
  42. foreach ($data as $k => $v) {
  43. $idsAr = explode(',',$v['platform_ids']);
  44. $platformAr = [];
  45. $data[$k]['platform'] = array_map(
  46. function ($item) use($platform){
  47. return $platform->getPlatformId($item,'*');
  48. },$idsAr);
  49. }
  50. return app('json')->success([
  51. 'list' => $data,
  52. 'pageCount' => $pageCount,
  53. 'pageSize' => $pageSize,
  54. 'page' => $page
  55. ]);
  56. }
  57. /**
  58. * 保存数据
  59. * @param Request $request
  60. */
  61. public function save(Request $request) {
  62. $post = UtilService::getMore(
  63. [
  64. ['id','0'],
  65. ['name','','empty','请输入仓库名称'],
  66. ['lx_name',''],
  67. ['lx_tel',''],
  68. ['address',''],
  69. ['exp_time',''],
  70. ['exp_star',''],
  71. ['tran_star',''],
  72. ['beijing',''],
  73. ['shanghai',''],
  74. ['qinghai',''],
  75. ['status','0'],
  76. ['seq','0'],
  77. ['platform_ids',''],
  78. ['password',''],
  79. ['username',''],
  80. ['status_js',0]
  81. ],
  82. $request
  83. );
  84. if(empty($post['password'])) {
  85. unset($post['password']);
  86. } else {
  87. $post['password'] = md5($post['password']);
  88. }
  89. $bool = (new WarehouseModel)->saveModel($post);
  90. if($bool)
  91. return app('json')->success("操作成功", []);
  92. else
  93. return app('json')->fail(WarehouseModel::getErrorInfo());
  94. }
  95. /**
  96. * 获取详情数据
  97. * @param Request $request
  98. * @return mixed
  99. */
  100. public function info(Request $request) {
  101. [$id] = UtilService::getMore([
  102. ['id','','empty','参数错误']
  103. ],$request,true);
  104. $info = WarehouseModel::get(compact('id'))->toArray();
  105. $info['password'] = '';
  106. return app('json')->success($info);
  107. }
  108. /**
  109. * 删除数据
  110. * @param Request $request
  111. */
  112. public function del(Request $request) {
  113. [$id] = UtilService::getMore(
  114. [
  115. ['id','0'],
  116. ],
  117. $request,true
  118. );
  119. WarehouseModel::del($id);
  120. ExpCost::where("warehouse_id",$id)->delete();
  121. return app('json')->success("删除成功", []);
  122. }
  123. /**
  124. * 快递配置
  125. * @param Request $request
  126. */
  127. public function exp(Request $request) {
  128. $pageSize = 20;
  129. [$id,$page] = UtilService::getMore(
  130. [
  131. ['id','','empty','参数错误'],
  132. ['page','1']
  133. ]
  134. ,$request,true);
  135. $warehouse = (new \app\model\system\Warehouse)->where('id',$id)->find();
  136. if(empty($warehouse)) {
  137. return app('json')->fail('数据失败');
  138. }
  139. $where = [];
  140. $expCode = new ExpCost;
  141. list($pageCount,$data) = (new Express)
  142. ->getList($page, $where,$pageSize,'id desc');
  143. foreach ($data as $k=>$v) {
  144. $expData = [];
  145. $bool = false;
  146. $d = $expCode
  147. ->field('id,money,status,level_id')
  148. ->where('warehouse_id',$id)
  149. ->where('express_id',$v['id'])
  150. ->where('sassid',0)
  151. ->where('level_id',-1)
  152. ->find();
  153. if(empty($d)) {
  154. $expData[] = ['money'=>0,'id'=>0,'status'=>0,'level_id'=>-1];
  155. } else {
  156. $d['name'] = '快递低价';
  157. $expData[] = $d;
  158. if($d['status']) $bool = true;
  159. }
  160. $data[$k]['status'] = $bool;
  161. $data[$k]['expData'] = $expData;
  162. $data[$k]['warehouse_name'] = $warehouse['name'];
  163. }
  164. return app('json')->success([
  165. 'list' => $data,
  166. 'pageCount' => $pageCount,
  167. 'pageSize' => $pageSize,
  168. 'page' => $page
  169. ]);
  170. }
  171. /**
  172. * 快递配置[全部数据]
  173. * @param Request $request
  174. */
  175. public function exp2(Request $request) {
  176. $pageSize = 20;
  177. [$sassid,$page] = UtilService::getMore(
  178. [
  179. ['sassid',''],
  180. ['page','1']
  181. ]
  182. ,$request,true);
  183. $where = [];
  184. if(!empty($sassid)) {
  185. $where['sassid'] = $sassid;
  186. }
  187. $where['level_id'] = -1;
  188. $level = (new MemberLevel)->select()->toArray();
  189. $expCost = new ExpCost;
  190. list($pageCount,$data) = $expCost->getList2($page, $where,$pageSize,'id desc');
  191. foreach ($data as $k=>$v) {
  192. $expData = [];
  193. $d = $expCost
  194. ->field('id,money,level_id,status')
  195. ->where('warehouse_id',$v['warehouse_id'])
  196. ->where('express_id',$v['express_id'])
  197. ->where('sassid',$v['sassid'])
  198. ->select();
  199. $bool = false;
  200. foreach ($level as $v) {
  201. $expData[$v['id']] = ['money'=>0,'id'=>0,'status'=>0,'level_id'=>$v['id']];
  202. foreach ($d as $v2) {
  203. if($v['id'] == $v2['level_id']) {
  204. $expData[$v['id']]['money'] = $v2['money'];
  205. $expData[$v['id']]['id'] = $v2['id'];
  206. if($v2['status']) $bool = true;
  207. }
  208. }
  209. }
  210. $data[$k]['status'] = $bool;
  211. $data[$k]['expData'] = $expData;
  212. }
  213. return app('json')->success([
  214. 'list' => $data,
  215. 'pageCount' => $pageCount,
  216. 'pageSize' => $pageSize,
  217. 'page' => $page,
  218. 'level' => $level
  219. ]);
  220. }
  221. /**
  222. * 保存数据
  223. * @param Request $request
  224. */
  225. public function expSave(Request $request) {
  226. $pageSize = 20;
  227. [$warehouse_id,$id,$expData,$status,$money,$sassid] = UtilService::getMore(
  228. [
  229. ['warehouse_id','','empty','参数错误'],
  230. ['id','','empty','参数错误'],
  231. ['expData',[]],
  232. ['status',false],
  233. ['money',0],
  234. ['sassid',0]
  235. ]
  236. ,$request,true);
  237. $expCost = (new ExpCost);
  238. //修改底价
  239. $expCost
  240. ->where('sassid',$sassid)
  241. ->where('warehouse_id',$warehouse_id)
  242. ->where('express_id',$id)
  243. ->save(['money'=>$money]);
  244. //遍历数据
  245. foreach ($expData as $v) {
  246. $d['warehouse_id'] = $warehouse_id;
  247. $d['express_id'] = $id;
  248. $d['money'] = $v['money'];
  249. $d['level_id'] = $v['level_id'];
  250. $d['sassid'] = $sassid;
  251. $d['status'] = $status ? 1 : 0;
  252. $data = $expCost
  253. ->where('sassid',$sassid)
  254. ->where('warehouse_id',$warehouse_id)
  255. ->where('express_id',$id)
  256. ->where('level_id',$v['level_id'])
  257. ->find();
  258. if( empty($data) ) {
  259. $expCost->insert($d);
  260. } else {
  261. $expCost->where('id',$data['id'])->save($d);
  262. }
  263. }
  264. return app('json')->success('操作成功');
  265. }
  266. /**
  267. * 更新分站数据
  268. * @param Request $request
  269. */
  270. public function updateSiteExp(Request $request) {
  271. [$sassid,$warehouse_id] = UtilService::getMore(
  272. [
  273. ['sassid',''],
  274. ['warehouse_id','']
  275. ]
  276. ,$request,true);
  277. $str = [];
  278. if(empty($sassid)) {
  279. $siteData = (new \app\model\system\Site)->select();
  280. foreach ($siteData as $v) {
  281. $makeSite = new MakeSite($v['sassid']);
  282. $makeSite->makeExpcos($warehouse_id);
  283. $str[] = $v['name'] . '更新成功';
  284. }
  285. } else {
  286. $w = (new \app\model\system\Warehouse)->select();
  287. foreach ($w as $v) {
  288. $makeSite = new MakeSite($sassid);
  289. $makeSite->makeExpcos($v['id']);
  290. $str[] = $v['name'].'更新成功';
  291. }
  292. }
  293. return app('json')->success(join(',',$str));
  294. }
  295. }