Order_236.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. <?php
  2. namespace app\controller\api\entropybarter;
  3. use think\facade\Db;
  4. class Order_236
  5. {
  6. /**12171
  7. * @param $order
  8. * @param $type 1 线上 2线下
  9. * 订单
  10. * 修改用户 类型 比例 完成
  11. */
  12. public function order($order, $type)
  13. {
  14. // Db::name('log')->insert(['data'=>'order_236进来了---']);
  15. $uid=$order['uid'];
  16. $mer_id=$order['mer_id'];
  17. $table_name='entropy_barter_user_236';
  18. $eb_data=Db::name($table_name)->where('uid',$uid)->find();
  19. $weizhi=strpos($order['money'],'.');
  20. if($weizhi){
  21. $money=substr($order['money'],'0',$weizhi);
  22. }else{
  23. $money=$order['money'];
  24. }
  25. if($type==1){
  26. $bill_type=1;
  27. }else{
  28. $bill_type=2;
  29. }
  30. $bill_data=[
  31. 'number'=>$money,
  32. 'to_id'=>$eb_data['eb_id'],
  33. 'type'=>1,
  34. 'order_no'=>$order['order_no'],
  35. 'remarks'=>'消费'.$money.'元得'.$money.'积分',
  36. 'pm'=>1,
  37. 'status'=>$bill_type,
  38. 'ctime'=>time(),
  39. 'on_line'=>$type,
  40. 'mer_id'=>$mer_id,
  41. 'commission_scale'=>3
  42. ];
  43. $this->eb_user_bill($bill_data);
  44. if($type==2){
  45. Db::name($table_name)->where('eb_id',$eb_data['eb_id'])->inc('integral',$money)->update();
  46. Db::name($table_name)->where('eb_id',$eb_data['eb_id'])->inc('cumulative_money',$order['money'])->update();
  47. //升级
  48. $this->shengji($eb_data['eb_id'],$table_name);
  49. }
  50. /**
  51. * 奖励开始
  52. */
  53. //直推奖励
  54. $zhitui=$this->zhitui($order,$eb_data,$type,$money,$bill_type,$mer_id,$table_name);
  55. if($zhitui==false){
  56. return false;
  57. }
  58. //辅导奖
  59. $fudaojiang=$this->fudaojaing($order,$zhitui,$type,$money,$bill_type,$mer_id,$table_name);
  60. if($fudaojiang==false){
  61. return false;
  62. }
  63. //管理奖
  64. $this->gaunlijiang($order,$fudaojiang,$type,$money,$bill_type,$mer_id,$table_name);
  65. /**
  66. * 奖励结束
  67. */
  68. }
  69. public function fudaojaing($order,$eb_data,$type,$money,$bill_type,$mer_id,$table_name){
  70. $top_data=Db::name($table_name)->where('eb_id',$eb_data['top_eb_id'])->find();
  71. if(!$top_data){
  72. // Db::name('log')->insert(['data'=>'用户上级无推荐人']);
  73. return false;
  74. }
  75. //辅导奖比例
  76. $bill=$this->fudaojaing_bili($top_data);
  77. if($bill==0){
  78. // Db::name('log')->insert(['data'=>'用户上级的没有累计消费满365']);
  79. return false;
  80. }
  81. $money=bcmul($money,$bill,2);
  82. if($type==1){
  83. $bill_data=[
  84. 'number'=>$money,
  85. 'to_id'=>$top_data['eb_id'],
  86. 'type'=>2,
  87. 'order_no'=>$order['order_no'],
  88. 'remarks'=>'辅导奖:'.$money,
  89. 'pm'=>1,
  90. 'status'=>$bill_type,
  91. 'ctime'=>time(),
  92. 'on_line'=>$type,
  93. 'mer_id'=>$mer_id,
  94. 'commission_scale'=>3
  95. ];
  96. $this->eb_user_bill($bill_data);
  97. }elseif($type==2){
  98. $bill_data=[
  99. 'number'=>$money,
  100. 'to_id'=>$top_data['eb_id'],
  101. 'type'=>2,
  102. 'order_no'=>$order['order_no'],
  103. 'remarks'=>'辅导奖:'.$money,
  104. 'pm'=>1,
  105. 'status'=>$bill_type,
  106. 'ctime'=>time(),
  107. 'on_line'=>$type,
  108. 'mer_id'=>$mer_id,
  109. 'commission_scale'=>3
  110. ];
  111. $this->eb_user_bill($bill_data);
  112. Db::name($table_name)->where('eb_id',$top_data['eb_id'])->inc('wallet',$money)->update();
  113. }
  114. return $top_data;
  115. }
  116. public function fudaojaing_bili($eb_data)
  117. {
  118. switch ($eb_data['type']){
  119. case 2:
  120. $bili=0.1;
  121. break;
  122. case 3:
  123. $bili=0.15;
  124. break;
  125. default:
  126. $bili=0;
  127. }
  128. return $bili;
  129. }
  130. public function gaunlijiang($order,$eb_data,$type,$money,$bill_type,$mer_id,$table_name){
  131. //管理奖励比例
  132. $bill=$this->guanlijiangli_bili($eb_data);
  133. if($bill==0){
  134. // Db::name('log')->insert(['data'=>'用户上级的上级没有管理奖励']);
  135. return false;
  136. }
  137. $money=bcmul($money,$bill,2);
  138. if($type==1){
  139. $bill_data=[
  140. 'number'=>$money,
  141. 'to_id'=>$eb_data['eb_id'],
  142. 'type'=>2,
  143. 'order_no'=>$order['order_no'],
  144. 'remarks'=>'管理奖:'.$money,
  145. 'pm'=>1,
  146. 'status'=>$bill_type,
  147. 'ctime'=>time(),
  148. 'on_line'=>$type,
  149. 'mer_id'=>$mer_id,
  150. 'commission_scale'=>3
  151. ];
  152. $this->eb_user_bill($bill_data);
  153. }elseif($type==2){
  154. $bill_data=[
  155. 'number'=>$money,
  156. 'to_id'=>$eb_data['eb_id'],
  157. 'type'=>2,
  158. 'order_no'=>$order['order_no'],
  159. 'remarks'=>'管理奖:'.$money,
  160. 'pm'=>1,
  161. 'status'=>$bill_type,
  162. 'ctime'=>time(),
  163. 'on_line'=>$type,
  164. 'mer_id'=>$mer_id,
  165. 'commission_scale'=>3
  166. ];
  167. $this->eb_user_bill($bill_data);
  168. Db::name($table_name)->where('eb_id',$eb_data['eb_id'])->inc('wallet',$money)->update();
  169. }
  170. return $eb_data;
  171. }
  172. public function guanlijiangli_bili($eb_data)
  173. {
  174. switch ($eb_data['type']){
  175. case 2:
  176. switch ($eb_data['department_type']){
  177. case 1:
  178. $bill=0.03;
  179. break;
  180. case 2:
  181. $bill=0.05;
  182. break;
  183. case 3:
  184. $bill=0.08;
  185. break;
  186. default:
  187. $bill=0;
  188. }
  189. break;
  190. case 3:
  191. switch ($eb_data['department_type']){
  192. case 0:
  193. $bill=0.03;
  194. break;
  195. case 1:
  196. $bill=0.05;
  197. break;
  198. case 2:
  199. $bill=0.08;
  200. break;
  201. case 3:
  202. $bill=0.10;
  203. break;
  204. default:
  205. $bill=0;
  206. }
  207. break;
  208. default:
  209. $bill=0;
  210. }
  211. return $bill;
  212. }
  213. public function zhitui($order,$eb_data,$type,$money,$bill_type,$mer_id,$table_name)
  214. {
  215. $top_eb_data=Db::name($table_name)->where('eb_id',$eb_data['top_eb_id'])->find();
  216. if(!$top_eb_data){
  217. // Db::name('log')->insert(['data'=>'无上级推荐人']);
  218. return false;
  219. }
  220. if($top_eb_data['type']<2){
  221. // Db::name('log')->insert(['data'=>'上级推荐人没有消费满365']);
  222. return false;
  223. }
  224. $money=bcmul($money,'0.2',2);
  225. if($type==1){
  226. $bill_data=[
  227. 'number'=>$money,
  228. 'to_id'=>$top_eb_data['eb_id'],
  229. 'type'=>2,
  230. 'order_no'=>$order['order_no'],
  231. 'remarks'=>'推荐奖励:'.$money,
  232. 'pm'=>1,
  233. 'status'=>$bill_type,
  234. 'ctime'=>time(),
  235. 'on_line'=>$type,
  236. 'mer_id'=>$mer_id,
  237. 'commission_scale'=>3
  238. ];
  239. $this->eb_user_bill($bill_data);
  240. }elseif($type==2){
  241. $bill_data=[
  242. 'number'=>$money,
  243. 'to_id'=>$top_eb_data['eb_id'],
  244. 'type'=>2,
  245. 'order_no'=>$order['order_no'],
  246. 'remarks'=>'推荐奖励:'.$money,
  247. 'pm'=>1,
  248. 'status'=>$bill_type,
  249. 'ctime'=>time(),
  250. 'on_line'=>$type,
  251. 'mer_id'=>$mer_id,
  252. 'commission_scale'=>3
  253. ];
  254. $this->eb_user_bill($bill_data);
  255. Db::name($table_name)->where('eb_id',$top_eb_data['eb_id'])->inc('wallet',$money)->update();
  256. }
  257. return $top_eb_data;
  258. }
  259. //账单记录
  260. public function eb_user_bill($bill)
  261. {
  262. $insert=[
  263. 'from_id'=>$bill['from_id']??0,
  264. 'number'=>$bill['number'],
  265. 'to_id'=>$bill['to_id'],
  266. 'type'=>$bill['type'],
  267. 'order_no'=>$bill['order_no'],
  268. 'remarks'=>$bill['remarks'],
  269. 'pm'=>$bill['pm'],
  270. 'ctime'=>time(),
  271. 'on_line'=>$bill['on_line'],
  272. 'status'=>$bill['status'],
  273. 'pm2_msg'=>$bill['pm2_msg']??'',
  274. 'mer_id'=>$bill['mer_id'],
  275. 'commission_scale'=>$bill['commission_scale']??0,
  276. 'commission_type'=>$bill['commission_type']??0,
  277. ];
  278. // Db::name('log')->insert(['data'=>json_encode($insert)]);
  279. Db::name('entropy_barter_bill')->insert($insert);
  280. }
  281. public function shengji($eb_id,$table_name)
  282. {
  283. $eb_data=Db::name($table_name)->where('eb_id',$eb_id)->find();
  284. if($eb_data['cumulative_money']>=365&&$eb_data['cumulative_money']<9999){
  285. Db::name($table_name)->where('eb_id',$eb_data['eb_id'])->inc('type',1)->update();
  286. $top_top_data=Db::name($table_name)->where('eb_id',Db::name($table_name)->where('eb_id',$eb_data['top_eb_id'])->value('top_eb_id'))->find();
  287. if($top_top_data['type']>=1){
  288. Db::name($table_name)->where('eb_id',$top_top_data['eb_id'])->inc('department_num',1)->update();
  289. if($top_top_data['department_type']==0&&$top_top_data['department_num']+1>=9){
  290. Db::name($table_name)->where('eb_id',$top_top_data['eb_id'])->inc('department_type',1)->update();
  291. }elseif($top_top_data['department_type']==1&&$top_top_data['department_num']+1>=66){
  292. Db::name($table_name)->where('eb_id',$top_top_data['eb_id'])->inc('department_type',1)->update();
  293. }elseif($top_top_data['department_type']==2&&$top_top_data['department_num']+1>=99){
  294. Db::name($table_name)->where('eb_id',$top_top_data['eb_id'])->inc('department_type',1)->update();
  295. }else{
  296. // Db::name('log')->insert(['data'=>'已达到最高级']);
  297. }
  298. }
  299. }
  300. }
  301. }