Warehouse.php 9.5 KB

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