Product.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\system\controller\v1;
  4. use app\BaseController;
  5. use app\model\system\Product as ProductModel;
  6. use app\model\system\SiteProduct;
  7. use app\Request;
  8. use library\services\UtilService;
  9. // +----------------------------------------------------------------------
  10. // | [ WE CAN DO IT MORE SIMPLE ]
  11. // +----------------------------------------------------------------------
  12. // | Copyright (c) 2018-2020 rights reserved.
  13. // +----------------------------------------------------------------------
  14. // | Author: TABLE ME
  15. // +----------------------------------------------------------------------
  16. // | Date: 2020-09-06 21:53
  17. // +----------------------------------------------------------------------
  18. class Product extends BaseController
  19. {
  20. /**
  21. * 基本设置
  22. */
  23. public function list(Request $request) {
  24. $pageSize = 20;
  25. $post = UtilService::getMore([
  26. ['page',1],
  27. ['name',''],
  28. ['artType','all']
  29. ],$request);
  30. list($pageCount,$data) = (new ProductModel)->getList($post['page'],$post,$pageSize,'id desc');
  31. $result = UtilService::getParam(["id","price","title","commission","status","sales","count","img","add_time","wget","seq","warehouseAr",'cate_name'],$data);
  32. $totalCount['count'] = (new ProductModel)->count();
  33. $totalCount['downCount'] = (new ProductModel)->where('status',0)->count();
  34. $totalCount['upCount'] = (new ProductModel)->where('status',1)->count();
  35. return app('json')->success([
  36. 'list' => $result,
  37. 'pageCount' => $pageCount,
  38. 'pageSize' => $pageSize,
  39. 'page' => $post['page'],
  40. 'totalCount'=>$totalCount
  41. ]);
  42. }
  43. /**
  44. * 保存数据
  45. * @param Request $request
  46. */
  47. public function save(Request $request) {
  48. $post = UtilService::getMore([
  49. ['cate_id','','empty','请选择商品分类'],
  50. ['count','0'],
  51. ['desc',''],
  52. ['id','0'],
  53. ['imgAr',[]],
  54. ['is_host',0],
  55. ['csno',''],
  56. ['price','0'],
  57. ['commission','0'],
  58. ['is_new',0],
  59. ['status',''],
  60. ['title',''],
  61. ['unit_name',''],
  62. ['ver_bug_count',0],
  63. ['wget',0],
  64. ['warehouseAr',[]],
  65. ['seq',0]
  66. ],$request);
  67. $post['img'] = join(',',$post['imgAr']);
  68. $post['warehouse_ids'] = join(',',$post['warehouseAr']);
  69. unset($post['imgAr']);
  70. unset($post['warehouseAr']);
  71. (new ProductModel())->saveProduct($post);
  72. return app('json')->success("数据保存成功");
  73. }
  74. /**
  75. * 获取产品基本信息
  76. * @param Request $request
  77. */
  78. public function info(Request $request) {
  79. [$id] = UtilService::getMore([
  80. ['id','','empty','参数错误']
  81. ],$request,true);
  82. $info = ProductModel::get(compact('id'))->toArray();
  83. return app('json')->success($info);
  84. }
  85. /**
  86. * 栏目删除
  87. * @param Request $request
  88. */
  89. public function del(Request $request) {
  90. [$id] = UtilService::getMore([
  91. ['id',0,'empty','参数错误']
  92. ],$request,true);
  93. $bool = (new ProductModel())->delProduct($id);
  94. return app('json')->success("栏目删除成功");
  95. }
  96. /**
  97. * 站点产品
  98. * @param Request $request
  99. */
  100. public function site(Request $request) {
  101. $pageSize = 50;
  102. [$sassid,$page,$type] = UtilService::getMore([
  103. ['sassid',0,'empty','参数错误'],
  104. ['page',1],
  105. ['type','']
  106. ],$request,true);
  107. $where = [];
  108. if(!empty($type)) {
  109. $where['type'] = $type;
  110. }
  111. $sitePro = new SiteProduct();
  112. $sitePro->setSassid($sassid);
  113. list($pageCount,$data) = $sitePro->getList($page,$where,$pageSize,'id desc');
  114. $result = UtilService::getParam(["id","price","title","sales","count","img","commission",
  115. ['is_host','is_host',function($var){
  116. return $var ? true : false;
  117. }],
  118. ['is_new','is_new',function($var){
  119. return $var ? true : false;
  120. }],
  121. ['status','status',function($var){
  122. return $var ? true : false;
  123. }],
  124. "ver_bug_count"],$data);
  125. return app('json')->success([
  126. 'list' => $result,
  127. 'pageCount' => $pageCount,
  128. 'pageSize' => $pageSize,
  129. 'page' => $page
  130. ]);
  131. }
  132. /**
  133. * 站点产品配置
  134. * @param Request $request
  135. */
  136. public function siteSave(Request $request) {
  137. $post = UtilService::getMore([
  138. ['id','','empty','参数错误'],
  139. ['price','','empty','参数错误'],
  140. ['ver_bug_count',''],
  141. ['is_new',false],
  142. ['is_host',false],
  143. ['status',false],
  144. ],$request);
  145. $sitePro = (new SiteProduct)->where('id',$post['id'])->find();
  146. if(empty($sitePro)) {
  147. return app('json')->fail('找不到产品数据');
  148. }
  149. $pro = ProductModel::where('id',$sitePro['p_id'])->find();
  150. if(empty($pro)) {
  151. return app('json')->fail('找不到产品数据');
  152. }
  153. if($pro['commission'] > $post['price']) {
  154. return app('json')->fail('价格不能低于,产品售价!');
  155. }
  156. (new SiteProduct)
  157. ->where('id',$post['id'])
  158. ->save([
  159. 'price' => $post['price'],
  160. 'ver_bug_count' => $post['ver_bug_count'],
  161. 'is_new' => $post['is_new'] ? 1 : 0,
  162. 'is_host' => $post['is_host'] ? 1 : 0,
  163. 'status' => $post['status'] ? 1 : 0,
  164. ]);
  165. return app('json')->success('设置成功');
  166. }
  167. }