BonusController.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Egulias\EmailValidator\Validation\DNSCheckValidation;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\DB;
  6. class BonusController extends Controller
  7. {
  8. //获取奖励金明细列表
  9. public function all(Request $request){
  10. // return $request->war_name;
  11. if($request->has('war_name')){
  12. if ($request->war_name=='请选择战区'){
  13. $data=DB::table('user')
  14. ->where('user.level_name','<>','政委')
  15. ->select('user.avatar','user.id','user.nickname','user.phone','user.up_phone','user.bonus','user.level_name')
  16. ->orderByDesc('bonus')->paginate(15);
  17. $season=DB::table('basic')->where('keys','=','season')->value('value');
  18. $dt=[];
  19. foreach ($data as $k=>$v){
  20. $s=DB::table('gift_orders')->where('uid',$v->id)->where('season',$request->season)->get();
  21. $all=0;
  22. foreach ($s as $key=>$value){
  23. $all=$all+$value->num*$value->bonus;
  24. }
  25. if ($season==$request->season){
  26. $bonus_all = $all+$v->bonus;
  27. $dt[$k]['bonus_sup'] = $v->bonus;
  28. }else{
  29. $bon=DB::table('glory')->where('season',$request->season)->where('uid','=',$v->id)->value('bonus');
  30. if (!$bon){
  31. $bon=0;
  32. }
  33. $bonus_all=$bon;
  34. $dt[$k]['bonus_sup'] = 0;
  35. }
  36. $dt[$k]['nickname'] = $v->nickname;
  37. $dt[$k]['phone'] = $v->phone;
  38. $dt[$k]['level_name'] = $v->level_name;
  39. $dt[$k]['avatar'] = $v->avatar;
  40. if ($v->level_name=='代理公司'){
  41. $dt[$k]['war_name'] = (DB::table('service')->where('phone',$v->phone)->value('war_names')).'战区';
  42. }else{
  43. $dt[$k]['war_name'] = (DB::table('service')->where('phone',$v->up_phone)->value('war_names')).'战区';
  44. }
  45. $dt[$k]['bonus_all'] = $bonus_all;
  46. }
  47. return $this->success_list($dt,'',$data->total());
  48. }else{
  49. $users = DB::table('user')
  50. ->join('service','service.phone','=','user.up_phone')
  51. ->where('service.war_names','=',$request->war_name)
  52. ->where('user.level_name','<>','政委')
  53. ->select('user.avatar','user.id','user.nickname','user.phone','user.up_phone','user.bonus','user.level_name')
  54. ->orderByDesc('bonus')->get()->map(function ($value) {return (array)$value;})->toArray();
  55. $userss = DB::table('user')
  56. ->join('service','service.phone','=','user.phone')
  57. ->where('service.war_names','=',$request->war_name)
  58. ->where('user.level_name','<>','政委')
  59. ->select('user.avatar','user.id','user.nickname','user.phone','user.up_phone','user.bonus','user.level_name')
  60. ->orderByDesc('bonus')->get()->map(function ($value) {return (array)$value;})->toArray();
  61. $data=array_merge($userss,$users);
  62. }
  63. $season=DB::table('basic')->where('keys','=','season')->value('value');
  64. $dt=[];
  65. foreach ($data as $k=>$v){
  66. $s=DB::table('gift_orders')->where('uid',$v['id'])->where('season',$request->season)->get();
  67. $all=0;
  68. foreach ($s as $key=>$value){
  69. $all=$all+$value->num*$value->bonus;
  70. }
  71. if ($season==$request->season){
  72. $bonus_all = $all+$v['bonus'];
  73. $dt[$k]['bonus_sup'] = $v['bonus'];
  74. }else{
  75. $bon=DB::table('glory')->where('season',$request->season)->where('uid','=',$v['id'])->value('bonus');
  76. if (!$bon){
  77. $bon=0;
  78. }
  79. $bonus_all=$bon;
  80. $dt[$k]['bonus_sup'] = 0;
  81. }
  82. $dt[$k]['nickname'] = $v['nickname'];
  83. $dt[$k]['phone'] = $v['phone'];
  84. $dt[$k]['level_name'] = $v['level_name'];
  85. $dt[$k]['avatar'] = $v['avatar'];
  86. if ($v['level_name']=='代理公司'){
  87. $dt[$k]['war_name'] = (DB::table('service')->where('phone',$v['phone'])->value('war_names')).'战区';
  88. }else{
  89. $dt[$k]['war_name'] = (DB::table('service')->where('phone',$v['up_phone'])->value('war_names')).'战区';
  90. }
  91. $dt[$k]['bonus_all'] = $bonus_all;
  92. }
  93. $num=count($dt);
  94. if ($request->has('page')){
  95. $page=($request->page)-1;
  96. }else{
  97. $page=0;
  98. }
  99. $num1=$num-$page*15;
  100. if ($num1>=15){
  101. $j=15;
  102. }else{
  103. $j=$num1;
  104. }
  105. $dts=[];
  106. for ($i=0;$i<$j;$i++){
  107. $dts[$i]['nickname']=$dt[$page*15+$i]['nickname'];
  108. $dts[$i]['phone'] =$dt[$page*15+$i]['phone'];
  109. $dts[$i]['level_name']=$dt[$page*15+$i]['level_name'];
  110. $dts[$i]['avatar']=$dt[$page*15+$i]['avatar'];
  111. $dts[$i]['war_name']=$dt[$page*15+$i]['war_name'];
  112. $dts[$i]['bonus_all']=$dt[$page*15+$i]['bonus_all'];
  113. $dts[$i]['bonus_sup']=$dt[$page*15+$i]['bonus_sup'];
  114. }
  115. return $this->success_list($dts,'',$num);
  116. }else{
  117. $data=DB::table('user')
  118. ->where('user.level_name','<>','政委')
  119. ->select('user.avatar','user.id','user.nickname','user.phone','user.up_phone','user.bonus','user.level_name')
  120. ->orderByDesc('bonus')->paginate(15);
  121. $season=DB::table('basic')->where('keys','=','season')->value('value');
  122. $dt=[];
  123. foreach ($data as $k=>$v){
  124. $s=DB::table('gift_orders')->where('uid',$v->id)->where('season',$request->season)->get();
  125. $all=0;
  126. foreach ($s as $key=>$value){
  127. $all=$all+$value->num*$value->bonus;
  128. }
  129. if ($season==$request->season){
  130. $bonus_all = $all+$v->bonus;
  131. $dt[$k]['bonus_sup'] = $v->bonus;
  132. }else{
  133. $bon=DB::table('glory')->where('season',$request->season)->where('uid','=',$v->id)->value('bonus');
  134. if (!$bon){
  135. $bon=0;
  136. }
  137. $bonus_all=$bon;
  138. $dt[$k]['bonus_sup'] =0;
  139. // $dt[$k]['bonus_sup'] =$bon-$all;
  140. }
  141. $dt[$k]['nickname'] = $v->nickname;
  142. $dt[$k]['phone'] = $v->phone;
  143. $dt[$k]['level_name'] = $v->level_name;
  144. $dt[$k]['avatar'] = $v->avatar;
  145. if ($v->level_name=='代理公司'){
  146. $dt[$k]['war_name'] = (DB::table('service')->where('phone',$v->phone)->value('war_names')).'战区';
  147. }else{
  148. $dt[$k]['war_name'] = (DB::table('service')->where('phone',$v->up_phone)->value('war_names')).'战区';
  149. }
  150. $dt[$k]['bonus_all'] = $bonus_all;
  151. }
  152. return $this->success_list($dt,'',$data->total());
  153. }
  154. }
  155. //搜索奖励金明细列表
  156. public function search(Request $request){
  157. // if ($request->has('war_name')){
  158. //
  159. // }
  160. $season=DB::table('basic')->where('keys','=','season')->value('value');
  161. $phone = $request->phone;
  162. $dt=[];
  163. $users = DB::table('user')->select('id','avatar','nickname','phone','up_phone','bonus','level_name')->where('phone','=',$phone)->first();
  164. if (!$users){
  165. return $this->error(300);
  166. }
  167. $re=DB::table('gift_orders')->where('season',$request->season)->where('uid',$users->id)->get();
  168. $bonus=0;
  169. foreach ($re as $k=>$v){
  170. $bonus=$bonus+$v->num*$v->bonus;
  171. }
  172. $bonus_all = (DB::select("select sum(b.bonus) as bonus from (select (a.num*a.bonus) as bonus from gift_orders a where uid=? and season=?) b ",[$users->id,$request->season]))[0]->bonus+$users->bonus;
  173. $dt['nickname'] = $users->nickname;
  174. $dt['phone'] = $users->phone;
  175. $dt['level_name'] = $users->level_name;
  176. $dt['avatar'] = $users->avatar;
  177. if ($users->level_name=='代理公司'){
  178. $dt['war_name'] = (DB::table('service')->where('phone',$users->phone)->value('war_names')).'战区';
  179. }else{
  180. $dt['war_name'] = (DB::table('service')->where('phone',$users->up_phone)->value('war_names')).'战区';
  181. }
  182. if ($request->season==$season){
  183. $dt['bonus_all'] = $bonus+$users->bonus;
  184. $dt['bonus_sup'] = $users->bonus;
  185. }else{
  186. $dt['bonus_all'] = DB::table('glory')->where('season',$request->season)->where('uid',$users->id)->value('bonus');
  187. $dt['bonus_sup'] = $dt['bonus_all']-$bonus;
  188. }
  189. return $this->success_list([$dt],'',1);
  190. }
  191. public function download_bonus(Request $request){
  192. $season=DB::table('basic')->where('keys','=','season')->value('value');
  193. if ($season==$request->season){
  194. $data=DB::table('user')
  195. ->join('enroll','enroll.uid','=','user.id')
  196. ->join('service','service.phone','=','user.up_phone')
  197. ->where('enroll.season','=',$request->season)
  198. ->where('enroll.status','=','0')
  199. ->select('user.nickname','user.phone','user.bonus','user.up_phone','user.up_name','service.war_names','user.level_name')
  200. ->get();
  201. }else{
  202. $data=DB::table('glory')
  203. ->join('user','user.id','=','glory.uid')
  204. ->join('enroll','enroll.uid','=','glory.uid')
  205. ->where('glory.season','=',$request->season)
  206. ->where('enroll.season','=',$request->season)
  207. ->where('enroll.status','=',0)
  208. ->select('user.nickname','user.phone','user.up_phone','user.up_name','glory.bonus','user.level_name')->get();
  209. }
  210. $j=0;
  211. $re=[];
  212. foreach ($data as $k=>$v){
  213. if ($v->level_name!='政委'&&$v->level_name!='代理公司'){
  214. $re[$j]['昵称']=$v->nickname;
  215. $re[$j]['手机号']=$v->phone;
  216. $re[$j]['奖学金']=$v->bonus;
  217. $re[$j]['代理级别']=$v->level_name;
  218. $re[$j]['上级手机号']=$v->up_phone;
  219. $re[$j]['上级昵称']=$v->up_name;
  220. $j++;
  221. }
  222. }
  223. return $this->success_list($re);
  224. }
  225. }