Sale.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <?php
  2. /**
  3. * @copyright Copyright (c) 2017 https://www.sapixx.com All rights reserved.
  4. * @license Licensed (http://www.apache.org/licenses/LICENSE-2.0).
  5. * @author pillar<ltmn@qq.com>
  6. * 市场销售产品
  7. */
  8. namespace app\popupshop\controller;
  9. use app\common\controller\Manage;
  10. use app\popupshop\model\Sale as AppSale;
  11. use think\facade\Request;
  12. use app\popupshop\model\Sale as saleModel;
  13. class Sale extends Manage{
  14. public function initialize() {
  15. parent::initialize();
  16. $this->assign('pathMaps',[['name'=>'活动套装','url'=>url("popupshop/item/index")]]);
  17. }
  18. /**
  19. * 列表
  20. */
  21. public function index(){
  22. $view['types'] = $this->request->param('types/d',0);
  23. $view['lists'] = AppSale::lists($this->member_miniapp_id,$view['types']);
  24. $view['platform'] = saleModel::where(['member_miniapp_id' => $this->member_miniapp_id,'user_id' => 0])->count();
  25. $view['user'] = saleModel::where(['member_miniapp_id' => $this->member_miniapp_id])->where('user_id','>',0)->count();
  26. $view['complete'] = saleModel::where(['member_miniapp_id' => $this->member_miniapp_id,'is_pay' => 1])->sum('user_sale_price');
  27. $view['no_complete'] = saleModel::where(['member_miniapp_id' => $this->member_miniapp_id,'is_pay' => 0])->sum('user_sale_price');
  28. return view()->assign($view);
  29. }
  30. /**
  31. * 添加
  32. */
  33. public function add(){
  34. if(request()->isAjax()){
  35. $data = [
  36. 'house_id' => Request::param('house_id/d'),
  37. 'cost_price' => Request::param('cost_price/f'),
  38. 'entrust_price' => Request::param('entrust_price/f'),
  39. 'sale_price' => Request::param('sale_price/f'),
  40. 'gift' => Request::param('gift/a'),
  41. 'member_miniapp_id' => $this->member_miniapp_id,
  42. 'store_id' => 0,
  43. 'user_id' => 0,
  44. 'is_sale' => 0,
  45. ];
  46. $validate = $this->validate($data,'Sale.save');
  47. if(true !== $validate){
  48. return json(['code'=>0,'msg'=>$validate]);
  49. }
  50. //处理产品数据
  51. $gift = [];
  52. foreach ($data['gift'] as $key => $value) {
  53. foreach ($value as $k => $v) {
  54. $gift[$k][$key] = $v;
  55. }
  56. }
  57. foreach ($gift as $key => $value) {
  58. if(empty($value['house_id']) || empty($value['cost_price']) || empty($value['sale_price']) || empty($value['entrust_price'])){
  59. return enjson(0,'价格信息填写不全');
  60. }else{
  61. $gift[$key]['house_id'] = intval($value['house_id']);
  62. $gift[$key]['cost_price'] = money($value['cost_price']);
  63. $gift[$key]['entrust_price'] = money($value['entrust_price']);
  64. $gift[$key]['sale_price'] = money($value['sale_price']);
  65. }
  66. }
  67. $data['gift'] = $gift;
  68. $result = AppSale::edit($data);
  69. if($result){
  70. return enjson(200,'成功',['url' => url('popupshop/sale/index'),]);
  71. }else{
  72. return enjson(0);
  73. }
  74. }else{
  75. $view['i'] = 0;
  76. return view()->assign($view);
  77. }
  78. }
  79. /**
  80. * 编辑
  81. */
  82. public function edit(){
  83. if(request()->isAjax()){
  84. $data = [
  85. 'id' => Request::param('id/d'),
  86. 'house_id' => Request::param('house_id/d'),
  87. 'cost_price' => Request::param('cost_price/f'),
  88. 'entrust_price' => Request::param('entrust_price/f'),
  89. 'sale_price' => Request::param('sale_price/f'),
  90. 'gift' => Request::param('gift/a'),
  91. 'store_id' => Request::param('store_id/d'),
  92. 'user_id' => Request::param('user_id/d'),
  93. 'is_sale' => Request::param('is_sale/d'),
  94. 'member_miniapp_id' => $this->member_miniapp_id,
  95. ];
  96. $validate = $this->validate($data,'Sale.save');
  97. if(true !== $validate){
  98. return json(['code'=>0,'msg'=>$validate]);
  99. }
  100. //处理产品数据
  101. $gift = [];
  102. foreach ($data['gift'] as $key => $value) {
  103. foreach ($value as $k => $v) {
  104. $gift[$k][$key] = $v;
  105. }
  106. }
  107. foreach ($gift as $key => $value) {
  108. if(empty($value['house_id']) || empty($value['cost_price']) || empty($value['sale_price']) || empty($value['entrust_price'])){
  109. return enjson(0,'价格信息填写不全');
  110. }else{
  111. $gift[$key]['house_id'] = intval($value['house_id']);
  112. $gift[$key]['cost_price'] = money($value['cost_price']);
  113. $gift[$key]['entrust_price'] = money($value['entrust_price']);
  114. $gift[$key]['sale_price'] = money($value['sale_price']);
  115. }
  116. }
  117. $data['gift'] = $gift;
  118. $result = AppSale::edit($data);
  119. if($result){
  120. return enjson(200,'成功',['url' => url('popupshop/sale/index'),]);
  121. }else{
  122. return enjson(0);
  123. }
  124. }else{
  125. $info = AppSale::where(['member_miniapp_id' => $this->member_miniapp_id,'id' => Request::param('id/d',0)])->find();
  126. if(empty($info)){
  127. $this->error('产品不存在');
  128. }
  129. $info->gift = json_decode($info->gift,true);
  130. $gift_num = count($info->gift);
  131. $view['info'] = $info;
  132. $view['i'] = $gift_num ? $gift_num-1 : 0;
  133. return view()->assign($view);
  134. }
  135. }
  136. /**
  137. * 删除
  138. */
  139. public function delete(){
  140. $result = AppSale::where(['id' => $this->request->param('id'),'is_pay' => 0])->delete();
  141. if($result){
  142. return json(['code'=>200,'msg'=>'操作成功','data'=>[]]);
  143. }else{
  144. return json(['code'=>403,'msg'=>'操作失败']);
  145. }
  146. }
  147. /**
  148. * 下架
  149. */
  150. public function offSale(){
  151. $result = AppSale::where(['id' => $this->request->param('id')])->update(['is_sale' => 0]);
  152. if($result){
  153. return json(['code'=>200,'msg'=>'操作成功','data'=>[]]);
  154. }else{
  155. return json(['code'=>403,'msg'=>'操作失败']);
  156. }
  157. }
  158. /**
  159. * 上架
  160. */
  161. public function onSale(){
  162. $result = AppSale::where(['id' => $this->request->param('id'),'is_pay' => 0,'is_out' => 0])->update(['is_sale' => 1]);
  163. if($result){
  164. return json(['code'=>200,'msg'=>'操作成功','data'=>[]]);
  165. }else{
  166. return json(['code'=>403,'msg'=>'已提货/已成交商品禁止上架']);
  167. }
  168. }
  169. }