UserCode.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  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['product_id'] = $v['goods_id'];
  34. $sum += intval($v['attrInfo']['suk']);
  35. if(UserCodeInfo::be($data) && isset($v['attrInfo']['suk']))
  36. {
  37. UserCodeInfo::where($data)->inc('goods_stock',$v['attrInfo']['suk'])->update();
  38. }
  39. else
  40. {
  41. if(isset($v['attrInfo']['suk']))
  42. {
  43. $data['goods_stock'] = $v['attrInfo']['suk'];
  44. $data['goods_name'] = $v['store_name'];
  45. $data['goods_pic'] = $v['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);
  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['product_id'] = $v['goods_id'];
  69. if(isset($v['attrInfo']['suk']))
  70. {
  71. if(UserCodeInfo::be($data))
  72. {
  73. UserCodeInfo::where($data)->dec('goods_stock',$v['attrInfo']['suk'])->inc('goods_sales',$v['attrInfo']['suk'])->update();
  74. }
  75. else
  76. {
  77. $data['uid'] = UserCode::where('code',$order['code'])->value('code');
  78. $data['goods_stock'] = -intval($v['attrInfo']['suk']);
  79. $data['goods_name'] = $v['store_name'];
  80. $data['goods_pic'] = $v['image'];
  81. $data['add_time'] = time();
  82. UserCodeInfo::create($data);
  83. }
  84. $sum += intval($v['attrInfo']['suk']);
  85. }
  86. }
  87. self::where(['code'=>$order['code']])->dec('total_stock',$sum)-inc('total_sales',$sum);
  88. if($sum>=2500)
  89. {
  90. self::rollbackTrans();
  91. }
  92. else
  93. {
  94. self::commitTrans();
  95. }
  96. }
  97. }
  98. /**
  99. * 增加总代
  100. * @param $uid
  101. * @param $cart_info
  102. */
  103. public static function add_code($uid,$cart_info,$sum)
  104. {
  105. $code = uniqid('',true);
  106. $add_time = time();
  107. $total_stock = $sum;
  108. self::beginTrans();
  109. try {
  110. self::create(compact('uid', 'code', 'add_time', 'total_stock'));
  111. foreach ($cart_info as $v) {
  112. $data['code'] = $code;
  113. $data['product_id'] = $v['goods_id'];
  114. $sum += intval($v['attrInfo']['suk']);
  115. if (isset($v['attrInfo']['suk'])) {
  116. $data['goods_stock'] = $v['attrInfo']['suk'];
  117. $data['goods_name'] = $v['store_name'];
  118. $data['goods_pic'] = $v['image'];
  119. $data['add_time'] = time();
  120. UserCodeInfo::create($data);
  121. }
  122. }
  123. self::commitTrans();
  124. }catch (Exception $e)
  125. {
  126. self::rollbackTrans();
  127. }
  128. }
  129. }