UserCode.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. <?php
  2. namespace app\models\user;
  3. use app\models\store\StoreOrderCartInfo;
  4. use crmeb\basic\BaseModel;
  5. use crmeb\traits\ModelTrait;
  6. use think\Exception;
  7. class UserCode extends BaseModel
  8. {
  9. /**
  10. * 数据表主键
  11. * @var string
  12. */
  13. protected $pk = 'id';
  14. /**
  15. * 模型名称
  16. * @var string
  17. */
  18. protected $name = 'user_code';
  19. use ModelTrait;
  20. /**
  21. * 增加库存
  22. * @param $order
  23. */
  24. public static function add_stock($order)
  25. {
  26. if(self::be(['uid'=>$order['uid'],'code'=>$order['code']]))
  27. {
  28. $cartlist = StoreOrderCartInfo::getProductList($order['id']);
  29. $sum = 0;
  30. foreach ($cartlist as $v)
  31. {
  32. $data['code'] = $order['code'];
  33. $data['goods_id'] = $v['product_id'];
  34. $sum += intval($v['productInfo']['attrInfo']['suk']);
  35. if(UserCodeInfo::be($data) && isset($v['productInfo']['attrInfo']['suk']))
  36. {
  37. UserCodeInfo::where($data)->inc('goods_stock',$v['productInfo']['attrInfo']['suk'])->update();
  38. }
  39. else
  40. {
  41. if(isset($v['attrInfo']['suk']))
  42. {
  43. $data['goods_stock'] = $v['productInfo']['attrInfo']['suk'];
  44. $data['goods_name'] = $v['productInfo']['store_name'];
  45. $data['goods_pic'] = $v['productInfo']['image'];
  46. $data['add_time'] = time();
  47. UserCodeInfo::create($data);
  48. }
  49. }
  50. }
  51. self::where(['uid'=>$order['uid'],'code'=>$order['code']])->inc('total_stock',$sum)->update();
  52. }
  53. }
  54. /**
  55. * 增加销量 大于2500单的 不记录销量
  56. * @param $order
  57. */
  58. public static function add_sales($order)
  59. {
  60. if(!self::be(['uid'=>$order['uid'],'code'=>$order['code']]) && $order['code']!='')
  61. {
  62. $cartlist = StoreOrderCartInfo::getProductList($order['id']);
  63. self::beginTrans();
  64. $sum = 0;
  65. foreach ($cartlist as $v)
  66. {
  67. $data['code'] = $order['code'];
  68. $data['goods_id'] = $v['product_id'];
  69. if(isset($v['productInfo']['attrInfo']['suk']))
  70. {
  71. if(UserCodeInfo::be($data))
  72. {
  73. UserCodeInfo::where($data)->dec('goods_stock',$v['productInfo']['attrInfo']['suk'])->inc('goods_sales',$v['productInfo']['attrInfo']['suk'])->update();
  74. }
  75. else
  76. {
  77. $data['uid'] = UserCode::where('code',$order['code'])->value('code');
  78. $data['goods_stock'] = -intval($v['productInfo']['attrInfo']['suk']);
  79. $data['goods_name'] = $v['productInfo']['store_name'];
  80. $data['goods_pic'] = $v['productInfo']['image'];
  81. $data['add_time'] = time();
  82. UserCodeInfo::create($data);
  83. }
  84. $sum += intval($v['productInfo']['attrInfo']['suk']);
  85. }
  86. }
  87. self::where(['code'=>$order['code']])->dec('total_stock',$sum)->inc('total_sales',$sum)->update();
  88. self::commitTrans();
  89. }
  90. }
  91. /**
  92. * 增加总代
  93. * @param $uid
  94. * @param $cart_info
  95. */
  96. public static function add_code($uid,$cart_info,$sum)
  97. {
  98. $add_time = time();
  99. $total_stock = $sum;
  100. self::beginTrans();
  101. $data['uid'] = $uid;
  102. try {
  103. if(!self::be(['uid'=>$uid])) {
  104. $code = uniqid('',true);
  105. self::create(compact('uid', 'code', 'add_time', 'total_stock'));
  106. User::where('uid',$uid)->update(['code'=>$code,'code_top'=>1]);
  107. UserBill::where('uid',$uid)->where('type','in','give_stock_right,code_stock_right')->update(['code'=>$code]);
  108. foreach ($cart_info as $v) {
  109. $data['code'] = $code;
  110. $data['goods_id'] = $v['product_id'];
  111. $sum += intval($v['productInfo']['attrInfo']['suk']);
  112. if (isset($v['productInfo']['attrInfo']['suk'])) {
  113. $data['goods_stock'] = $v['productInfo']['attrInfo']['suk'];
  114. $data['goods_name'] = $v['productInfo']['store_name'];
  115. $data['goods_pic'] = $v['productInfo']['image'];
  116. $data['add_time'] = time();
  117. UserCodeInfo::create($data);
  118. }
  119. }
  120. }
  121. else
  122. {
  123. self::where('uid',$uid)->inc('total_stock',$sum)->update();
  124. foreach ($cart_info as $v) {
  125. $data['code'] = User::where('uid',$uid)->value('code');
  126. $data['goods_id'] = $v['product_id'];
  127. $sum += intval($v['productInfo']['attrInfo']['suk']);
  128. if(!UserCodeInfo::be($data)) {
  129. if (isset($v['productInfo']['attrInfo']['suk'])) {
  130. $data['goods_stock'] = $v['productInfo']['attrInfo']['suk'];
  131. $data['goods_name'] = $v['productInfo']['store_name'];
  132. $data['goods_pic'] = $v['productInfo']['image'];
  133. $data['add_time'] = time();
  134. UserCodeInfo::create($data);
  135. }
  136. }
  137. else
  138. {
  139. UserCodeInfo::where($data)->inc('goods_stock',$v['productInfo']['attrInfo']['suk'])->update();
  140. }
  141. }
  142. }
  143. unset($data);
  144. self::commitTrans();
  145. }catch (Exception $e)
  146. {
  147. echo $e->getMessage();
  148. self::rollbackTrans();
  149. }
  150. }
  151. public static function lst($where)
  152. {
  153. $model = new self;
  154. $model = $model->alias('c')->join('user u',"c.uid=u.uid","left");
  155. }
  156. }