DataController.php 69 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Activity;
  4. use App\Models\Address;
  5. use App\Models\OrderGift;
  6. use App\Models\Goodattr;
  7. use App\Models\Goodtest;
  8. use App\Models\Orderdetail;
  9. use App\Models\OrderRemark;
  10. use App\Models\Ordertest;
  11. use App\Models\Store;
  12. use App\Models\User;
  13. use App\Models\Warea;
  14. use App\Models\Gifts;
  15. use Carbon\Carbon;
  16. use App\Models\CrownCount;
  17. use Illuminate\Http\Request;
  18. use Illuminate\Support\Facades\DB;
  19. use Illuminate\Support\Facades\Log;
  20. use Illuminate\Support\Facades\Cache;
  21. use Illuminate\Support\Facades\Auth;
  22. class DataController extends Controller
  23. {
  24. public function datas()
  25. {
  26. $order = Ordertest::where('is_deleted', 0)->with(['get_address', 'get_order_detail'])->get();
  27. $attr = Goodattr::where('pid', 0)->get();
  28. $hard_id = [];
  29. $simple_id = [];
  30. $old_id = [];
  31. $hard_good = [];
  32. $simple_good = [];
  33. $old_good = [];
  34. foreach ($attr as $k => $v) {
  35. if ($v->name == '大卫博士精装版') {
  36. $hard_id = Goodattr::where('pid', $v->id)->select('id')->pluck('id');
  37. $hard_good = Goodtest::whereIn('attr_id', $hard_id)->pluck('id')->toArray();
  38. } elseif ($v->name == '大卫博士简约版') {
  39. $simple_id = Goodattr::where('pid', $v->id)->pluck('id');
  40. $simple_good = Goodtest::whereIn('attr_id', $simple_id)->pluck('id')->toArray();
  41. } elseif ($v->name == '大卫博士老人版') {
  42. $old_id = Goodattr::where('pid', $v->id)->pluck('id');
  43. $old_good = Goodtest::whereIn('attr_id', $old_id)->pluck('id')->toArray();
  44. }
  45. }
  46. $money = 0;
  47. $hard = 0;
  48. $simple = 0;
  49. $old = 0;
  50. $re = [];
  51. foreach ($order as $k => $v) {
  52. $hard_pro = 0;
  53. $simple_pro = 0;
  54. $old_pro = 0;
  55. foreach ($v->get_order_detail as $ke => $va) {
  56. if (in_array($va->goods_id, $hard_good)) {
  57. $hard += $va->num;
  58. $hard_pro = $va->num;
  59. } elseif (in_array($va->goods_id, $simple_good)) {
  60. $simple += $va->num;
  61. $simple_pro = $va->num;
  62. } elseif (in_array($va->goods_id, $old_good)) {
  63. $old += $va->num;
  64. $old_pro = $va->num;
  65. }
  66. }
  67. $money += $v->money;
  68. }
  69. $datas = [
  70. 'hard' => $hard,
  71. 'simple' => $simple,
  72. 'old' => $old,
  73. 'money' => $money,
  74. ];
  75. return $this->success($datas);
  76. }
  77. public function data()
  78. {
  79. $active = Activity::where('is_ing', 1)->first();
  80. $now = Carbon::now()->toDateTimeString();
  81. $order = Ordertest::where('is_deleted', 0)->whereBetween('created_at', [$active->start_time, $active->end_time])->with(['get_address', 'get_order_detail']);
  82. $order_1=clone $order;
  83. $order_2=clone $order;
  84. $order=$order->get();
  85. $order_1=$order_1->where('store_id',17)->sum('money');
  86. $order_2=$order_2->where('store_id',18)->sum('money');
  87. $order_today = [];
  88. if ($now < $active->end_time && $now > $active->start_time) {
  89. if (Carbon::now()->toDateString() == Carbon::parse($active->start_time)->toDateString()) {
  90. $start_time = $active->start_time;
  91. } else {
  92. $start_time = Carbon::today();
  93. }
  94. if (Carbon::now()->toDateString() == Carbon::parse($active->end_time)->toDateString()) {
  95. $end_time = $active->end_time;
  96. } else {
  97. $end_time = Carbon::tomorrow();
  98. }
  99. $order_today = Ordertest::where('is_deleted', 0)->with(['get_order_detail'])->whereBetween('created_at', [$start_time, $end_time])->get();
  100. }
  101. $gift_sh=OrderGift::join('order_test','order_test.id','=','order_gift.order_id')->where('order_test.is_deleted',0)->where('order_gift.activity_id',$active->id)->where('order_gift.gift_id',8)->sum('order_gift.num');
  102. $gift_xl=OrderGift::join('order_test','order_test.id','=','order_gift.order_id')->where('order_test.is_deleted',0)->where('order_gift.activity_id',$active->id)->where('order_gift.gift_id',7)->sum('order_gift.num');
  103. if ($active->big_gift){
  104. $user_data=User::select('users.id','users.nickname','users.realname', DB::raw('SUM(order_test.money) as account'), DB::raw('SUM(order_test.pay_money) as pay_account'))
  105. ->leftJoin('order_test', 'order_test.user_id', '=', 'users.id')
  106. ->where('order_test.is_deleted',0)
  107. ->whereBetween('order_test.created_at',[$active->start_time,$active->end_time])
  108. ->groupBy('users.id')
  109. ->having('account','>=',$active->big_gift)
  110. ->orderBy('type','asc')
  111. ->orderBy('pay_account','desc')
  112. ->orderBy('account','desc');
  113. $count = $user_data->get()->count();
  114. }else{
  115. $count=0;
  116. }
  117. $attr = Goodattr::where('pid', 0)->get();
  118. $hard_id = [];
  119. $simple_id = [];
  120. $old_id = [];
  121. $hard_good = [];
  122. $simple_good = [];
  123. $old_good = [];
  124. $newold_good = [];
  125. foreach ($attr as $k => $v) {
  126. if ($v->name == '大卫博士精装版') {
  127. $hard_id = Goodattr::where('pid', $v->id)->select('id')->pluck('id');
  128. $hard_good = Goodtest::whereIn('attr_id', $hard_id)->pluck('id')->toArray();
  129. } elseif ($v->name == '大卫博士简约版') {
  130. $simple_id = Goodattr::where('pid', $v->id)->pluck('id');
  131. $simple_good = Goodtest::whereIn('attr_id', $simple_id)->pluck('id')->toArray();
  132. } elseif ($v->name == '大卫博士老人版') {
  133. $old_id = Goodattr::where('pid', $v->id)->pluck('id');
  134. $old_good = Goodtest::whereIn('attr_id', $old_id)->pluck('id')->toArray();
  135. } elseif ($v->name == '大卫博士纯棉老人版') {
  136. $newold_id = Goodattr::where('pid', $v->id)->pluck('id');
  137. $newold_good = Goodtest::whereIn('attr_id', $newold_id)->pluck('id')->toArray();
  138. }
  139. }
  140. $money = 0;
  141. $hard = 0;
  142. $simple = 0;
  143. $old = 0;
  144. $newold = 0;
  145. $hard_today = 0;
  146. $newold_today = 0;
  147. $simple_today = 0;
  148. $old_today = 0;
  149. $money_today = 0;
  150. $re = [];
  151. // dd($order);
  152. foreach ($order_today as $k => $v) {
  153. foreach ($v->get_order_detail as $ke => $va) {
  154. if (in_array($va->goods_id, $hard_good)) {
  155. $hard_today += $va->num;
  156. } elseif (in_array($va->goods_id, $simple_good)) {
  157. $simple_today += $va->num;
  158. } elseif (in_array($va->goods_id, $old_good)) {
  159. $old_today += $va->num;
  160. } elseif (in_array($va->goods_id, $newold_good)) {
  161. $newold_today += $va->num;
  162. }
  163. }
  164. $money_today += $v->money;
  165. }
  166. $h = 0;
  167. $hard_pro = 0;
  168. $simple_pro = 0;
  169. $old_pro = 0;
  170. $newold_pro = 0;
  171. $money_pro = 0;
  172. foreach ($order as $k => $v) {
  173. $hard_pro = 0;
  174. $simple_pro = 0;
  175. $old_pro = 0;
  176. $newold_pro = 0;
  177. foreach ($v->get_order_detail as $ke => $va) {
  178. if (in_array($va->goods_id, $hard_good)) {
  179. $hard += $va->num;
  180. $hard_pro += $va->num;
  181. } if (in_array($va->goods_id, $simple_good)) {
  182. $simple += $va->num;
  183. $simple_pro += $va->num;
  184. } if (in_array($va->goods_id, $old_good)) {
  185. $old += $va->num;
  186. $old_pro += $va->num;
  187. } if (in_array($va->goods_id, $newold_good)) {
  188. $newold += $va->num;
  189. $newold_pro += $va->num;
  190. }
  191. }
  192. $money += $v->money;
  193. $h += $newold_pro;
  194. $re = $this->province($v->get_address->province, $hard_pro, $simple_pro, $old_pro, $newold_pro, $v->money, $re);
  195. }
  196. $datas = [
  197. 'hard' => $hard,
  198. 'simple' => $simple,
  199. 'old' => $old,
  200. 'newold' => $newold,
  201. 'money' => $money,
  202. 'hard_today' => $hard_today,
  203. 'simple_today' => $simple_today,
  204. 'old_today' => $old_today,
  205. 'newold_today' => $newold_today,
  206. 'money_today' => $money_today,
  207. 'activity_title'=>$active->title,
  208. 'shouhuan'=>$gift_sh,
  209. 'xianglian'=>$gift_xl,
  210. 'big_gift'=>$count,
  211. '临沭体验店'=>$order_1,
  212. '吴桥体验店'=>$order_2,
  213. 'activity_time'=>'('.date('m月d日',strtotime($active->start_time)).'-'.date('d日',strtotime($active->end_time)).')',
  214. 'list' => $re,
  215. ];
  216. return $this->success($datas);
  217. // $data=['北京', '天津', '上海', '重庆', '河北', '河南', '云南', '辽宁', '黑龙江', '湖南', '安徽', '山东', '新疆', '江苏','浙江', '江西', '湖北', '广西', '甘肃', '山西', '内蒙古', '陕西', '吉林', '福建', '贵州', '广东', '青海', '西藏', '四川', '宁夏', '海南', '台湾','香港', '澳门'];
  218. }
  219. public function province($name, $hard, $simple, $old, $newold, $money, $res = [])
  220. {
  221. // $data=['北京', '天津', '上海', '重庆', '河北', '河南', '云南', '辽宁', '黑龙江', '湖南', '安徽', '山东', '新疆', '江苏','浙江', '江西', '湖北', '广西', '甘肃', '山西', '内蒙古', '陕西', '吉林', '福建', '贵州', '广东', '青海', '西藏', '四川', '宁夏', '海南', '台湾','香港', '澳门'];
  222. // $s='河北省、山西省、辽宁省、吉林省、黑龙江省、江苏省、浙江省、安徽省、福建省、江西省、山东省、河南省、湖北省、湖南省、广东省、海南省、四川省、贵州省、云南省、陕西省、甘肃省、青海省、台湾省';
  223. // $ss='内蒙古自治区、广西壮族自治区、西藏自治区、宁夏回族自治区、新疆维吾尔自治区';
  224. // $sss='北京市、天津市、上海市、重庆市';
  225. // $ssss='香港特别行政区、澳门特别行政区';
  226. $datas = [
  227. ['北京', '北京市'], ['天津', '天津市'], ['上海', '上海市'], ['重庆', '重庆市'], ['河北', '河北省'], ['河南', '河南省'], ['云南', '云南省'], ['辽宁', '辽宁省'], ['黑龙江', '黑龙江省'], ['湖南', '湖南省'], ['安徽', '安徽省'], ['山东', '山东省'], ['新疆', '新疆维吾尔自治区'], ['江苏', '江苏省'], ['浙江', '浙江省'], ['江西', '江西省'], ['湖北', '湖北省'], ['广西', '广西壮族自治区'], ['甘肃', '甘肃省'], ['山西', '山西省'], ['内蒙古', '内蒙古自治区'], ['陕西', '陕西省'], ['吉林', '吉林省'], ['福建', '福建省'], ['贵州', '贵州省'], ['广东', '广东省'], ['青海', '青海省'], ['西藏', '西藏自治区'], ['四川', '四川省'], ['宁夏', '宁夏回族自治区'], ['海南', '海南省'], ['台湾', '台湾'], ['香港', '香港'], ['澳门', '澳门']
  228. ];
  229. foreach ($datas as $k => $v) {
  230. $re[$k]['name'] = $v[0];
  231. if ($res) {
  232. if ($v[1] == $name) {
  233. $re[$k]['hard'] = $hard + $res[$k]['hard'];
  234. $re[$k]['simple'] = $simple + $res[$k]['simple'];
  235. $re[$k]['old'] = $old + $res[$k]['old'];
  236. $re[$k]['newold'] = $newold + $res[$k]['newold'];
  237. $re[$k]['value'] = $money + $res[$k]['value'];
  238. } else {
  239. $re[$k]['hard'] = $res[$k]['hard'];
  240. $re[$k]['simple'] = $res[$k]['simple'];
  241. $re[$k]['old'] = $res[$k]['old'];
  242. $re[$k]['newold'] = $res[$k]['newold'];
  243. $re[$k]['value'] = $res[$k]['value'];
  244. }
  245. } else {
  246. if ($v[1] == $name) {
  247. $re[$k]['hard'] = $hard;
  248. $re[$k]['simple'] = $simple;
  249. $re[$k]['old'] = $old;
  250. $re[$k]['newold'] = $newold;
  251. $re[$k]['value'] = $money;
  252. // $re[$k]['money']=$money;
  253. } else {
  254. $re[$k]['hard'] = 0;
  255. $re[$k]['simple'] = 0;
  256. $re[$k]['old'] = 0;
  257. $re[$k]['newold'] = 0;
  258. $re[$k]['value'] = 0;
  259. }
  260. }
  261. }
  262. return $re;
  263. }
  264. public function crown_rank()
  265. {
  266. }
  267. public function money()
  268. {
  269. $order = Ordertest::where('is_deleted', 0)->with(['get_address', 'get_order_detail'])->get();
  270. $attr = Goodattr::where('pid', 0)->get();
  271. $hard_id = [];
  272. $simple_id = [];
  273. $old_id = [];
  274. $hard_good = [];
  275. $simple_good = [];
  276. $old_good = [];
  277. foreach ($attr as $k => $v) {
  278. if ($v->name == '大卫博士精装版') {
  279. $hard_id = Goodattr::where('pid', $v->id)->select('id')->pluck('id');
  280. $hard_good = Goodtest::whereIn('attr_id', $hard_id)->pluck('id')->toArray();
  281. } elseif ($v->name == '大卫博士简约版') {
  282. $simple_id = Goodattr::where('pid', $v->id)->pluck('id');
  283. $simple_good = Goodtest::whereIn('attr_id', $simple_id)->pluck('id')->toArray();
  284. } elseif ($v->name == '大卫博士老人版') {
  285. $old_id = Goodattr::where('pid', $v->id)->pluck('id');
  286. $old_good = Goodtest::whereIn('attr_id', $old_id)->pluck('id')->toArray();
  287. }
  288. }
  289. $money = 0;
  290. $hard = 0;
  291. $simple = 0;
  292. $old = 0;
  293. $re = [];
  294. foreach ($order as $k => $v) {
  295. $hard_pro = 0;
  296. $simple_pro = 0;
  297. $old_pro = 0;
  298. foreach ($v->get_order_detail as $ke => $va) {
  299. if (in_array($va->goods_id, $hard_good)) {
  300. $hard += $va->num;
  301. $hard_pro = $va->num;
  302. } elseif (in_array($va->goods_id, $simple_good)) {
  303. $simple += $va->num;
  304. $simple_pro = $va->num;
  305. } elseif (in_array($va->goods_id, $old_good)) {
  306. $old += $va->num;
  307. $old_pro = $va->num;
  308. }
  309. }
  310. $money += $v->money;
  311. }
  312. $datas = [
  313. 'hard' => $hard,
  314. 'simple' => $simple,
  315. 'old' => $old,
  316. 'money' => $money,
  317. ];
  318. return $this->success_list($datas);
  319. }
  320. // public function get_crown(){
  321. // $user=User::where('level',3)->get();
  322. // $attr=Goodattr::where('pid',0)->get();
  323. // $hard_id=[];
  324. // $simple_id=[];
  325. // $old_id=[];
  326. // foreach ($attr as $k=>$v){
  327. // if ($v->name=='大卫博士精装版'){
  328. // $hard_id=Goodattr::where('pid',$v->id)->select('id')->pluck('id');
  329. // $hard_good=Goodtest::whereIn('attr_id',$hard_id)->pluck('id')->toArray();
  330. // }elseif ($v->name=='大卫博士简约版'){
  331. // $simple_id=Goodattr::where('pid',$v->id)->pluck('id');
  332. // $simple_good=Goodtest::whereIn('attr_id',$simple_id)->pluck('id')->toArray();
  333. // }elseif ($v->name=='大卫博士老人版'){
  334. // $old_id=Goodattr::where('pid',$v->id)->pluck('id');
  335. // $old_good=Goodtest::whereIn('attr_id',$old_id)->pluck('id')->toArray();
  336. // }
  337. // }
  338. // foreach ($user as $k=>$v){
  339. // $money=0;
  340. // $hard=0;
  341. // $simple=0;
  342. // $old=0;
  343. // $order=Ordertest::where('user_id',$v->id)->where('is_deleted',0)->get();
  344. // $count=count($order);
  345. // if ($count==0){
  346. // $re[$k]['hard']=0;
  347. // $re[$k]['simple']=0;
  348. // $re[$k]['old']=0;
  349. // $re[$k]['money']=0;
  350. // }else{
  351. // foreach ($v->get_order_detail as $ke=>$va){
  352. // if (in_array($va->goods_id,$hard_good)){
  353. // $hard+=$va->num;
  354. // }elseif (in_array($va->goods_id,$simple_good)){
  355. // $simple+=$va->num;
  356. // }elseif (in_array($va->goods_id,$old_good)){
  357. // $old+=$va->num;
  358. // }
  359. // }
  360. // $money+=$v->money;
  361. // $re[$k]['money']=$money;
  362. // $re[$k]['hard']=$hard;
  363. // $re[$k]['simple']=$simple;
  364. // $re[$k]['old']=$old;
  365. // }
  366. // return $n;
  367. // $re[$k]['nickname']=$v->nickname;
  368. // }
  369. // return $this->success_list($re);
  370. // }
  371. //=======
  372. // foreach ($datas as $k=>$v){
  373. // $re[$k]['name']=$v[0];
  374. // if ($res){
  375. // if ($v[1]==$name){
  376. // $re[$k]['hard']=$hard+$res[$k]['hard'];
  377. // $re[$k]['simple']=$simple+$res[$k]['simple'];
  378. // $re[$k]['old']=$old+$res[$k]['old'];
  379. // $re[$k]['value']=$money+$res[$k]['value'];
  380. // }else{
  381. // $re[$k]['hard']=$res[$k]['hard'];
  382. // $re[$k]['simple']=$res[$k]['simple'];
  383. // $re[$k]['old']=$res[$k]['old'];
  384. // $re[$k]['value']=$res[$k]['value'];
  385. // }
  386. // }else{
  387. // if ($v[1]==$name){
  388. // $re[$k]['hard']=$hard;
  389. // $re[$k]['simple']=$simple;
  390. // $re[$k]['old']=$old;
  391. // $re[$k]['value']=$money;
  392. // // $re[$k]['money']=$money;
  393. // }else{
  394. // $re[$k]['hard']=0;
  395. // $re[$k]['simple']=0;
  396. // $re[$k]['old']=0;
  397. // $re[$k]['value']=0;
  398. // }
  399. // }
  400. //
  401. // }
  402. // return $re;
  403. // }
  404. //
  405. public function get_crown()
  406. {
  407. $active = Activity::where('is_ing', 1)->first();
  408. $start_time = $active->start_time;
  409. $end_time = $active->end_time;
  410. $user = User::where('level', 3)->with(['get_order_de' => function ($q) use ($start_time, $end_time) {
  411. $q->where('order_test.is_deleted', 0)->whereBetween('order_test.created_at', [$start_time, $end_time]);
  412. }])->get();
  413. $attr = Goodattr::where('pid', 0)->get();
  414. $hard_id = [];
  415. $simple_id = [];
  416. $old_id = [];
  417. foreach ($attr as $k => $v) {
  418. if ($v->name == '大卫博士精装版') {
  419. $hard_id = Goodattr::where('pid', $v->id)->select('id')->pluck('id');
  420. $hard_good = Goodtest::whereIn('attr_id', $hard_id)->pluck('id')->toArray();
  421. } elseif ($v->name == '大卫博士简约版') {
  422. $simple_id = Goodattr::where('pid', $v->id)->pluck('id');
  423. $simple_good = Goodtest::whereIn('attr_id', $simple_id)->pluck('id')->toArray();
  424. } elseif ($v->name == '大卫博士老人版') {
  425. $old_id = Goodattr::where('pid', $v->id)->pluck('id');
  426. $old_good = Goodtest::whereIn('attr_id', $old_id)->pluck('id')->toArray();
  427. } elseif ($v->name == '大卫博士纯棉老人版') {
  428. $newold_id = Goodattr::where('pid', $v->id)->pluck('id');
  429. $newold_good = Goodtest::whereIn('attr_id', $newold_id)->pluck('id')->toArray();
  430. }
  431. }
  432. foreach ($user as $k => $v) {
  433. $money = 0;
  434. $hard = 0;
  435. $simple = 0;
  436. $old = 0;
  437. $newold = 0;
  438. $count = count($v->get_order_de);
  439. if ($count == 0) {
  440. $re[$k]['hard'] = 0;
  441. $re[$k]['simple'] = 0;
  442. $re[$k]['old'] = 0;
  443. $re[$k]['newold'] = 0;
  444. $re[$k]['money'] = 0;
  445. } else {
  446. foreach ($v->get_order_de as $key => $value) {
  447. if (in_array($value->goods_id, $hard_good)) {
  448. $hard += $value->num;
  449. } elseif (in_array($value->goods_id, $simple_good)) {
  450. $simple += $value->num;
  451. } elseif (in_array($value->goods_id, $old_good)) {
  452. $old += $value->num;
  453. } elseif (in_array($value->goods_id, $newold_good)) {
  454. $newold += $value->num;
  455. }
  456. $money += $value->money;
  457. }
  458. $re[$k]['money'] = $money;
  459. $re[$k]['hard'] = $hard;
  460. $re[$k]['simple'] = $simple;
  461. $re[$k]['old'] = $old;
  462. $re[$k]['newold'] = $newold;
  463. }
  464. $re[$k]['nickname'] = $v->nickname;
  465. }
  466. return $this->success_list($re);
  467. }
  468. //
  469. //
  470. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  471. /***数据统计---------按照种类---***/
  472. public function rank_type()
  473. {
  474. $hard_good = Goodtest::where('main_attr', '大卫博士精装版')->pluck('id')->toArray();
  475. $simple_good = Goodtest::where('main_attr', '大卫博士简约版')->pluck('id')->toArray();
  476. $old_good = Goodtest::where('main_attr', '大卫博士老人版')->pluck('id')->toArray();
  477. $old_good_nan = Goodtest::where('main_attr', '大卫博士老人版')->where('sec_attr', '男款')->pluck('id')->toArray();
  478. $old_good_nv = Goodtest::where('main_attr', '大卫博士老人版')->where('sec_attr', '女款')->pluck('id')->toArray();
  479. $simple_good_nan = Goodtest::where('main_attr', '大卫博士简约版')->where('sec_attr', '男款')->pluck('id')->toArray();
  480. $simple_good_nv = Goodtest::where('main_attr', '大卫博士简约版')->where('sec_attr', '女款')->pluck('id')->toArray();
  481. $hard_good_nan = Goodtest::where('main_attr', '大卫博士精装版')->where('sec_attr', '男款')->pluck('id')->toArray();
  482. $hard_good_nv = Goodtest::where('main_attr', '大卫博士精装版')->where('sec_attr', '女款')->pluck('id')->toArray();
  483. $where = function ($query) {
  484. $query->where('is_deleted', 0);
  485. };
  486. $orders = Ordertest::where($where)->get();
  487. $hard = 0;
  488. $simple = 0;
  489. $old = 0;
  490. $old_money = 0;
  491. $simple_money = 0;
  492. $hard_money = 0;
  493. $hard_nan = 0;
  494. $hard_nv = 0;
  495. $simple_nan = 0;
  496. $simple_nv = 0;
  497. $old_nan = 0;
  498. $old_nv = 0;
  499. $hard_nan_money = 0;
  500. $hard_nv_money = 0;
  501. $simple_nan_money = 0;
  502. $simple_nv_money = 0;
  503. $old_nan_money = 0;
  504. $old_nv_money = 0;
  505. foreach ($orders as $k => $v) {
  506. $order = Ordertest::where('id', $v->id)->with(['get_order_detail'])->first();
  507. foreach ($order->get_order_detail as $ke => $va) {
  508. if (in_array($va->goods_id, $hard_good)) {
  509. $hard += $va->num;
  510. $hard_money += $va->money;
  511. } elseif (in_array($va->goods_id, $simple_good)) {
  512. $simple += $va->num;
  513. $simple_money += $va->money;
  514. } elseif (in_array($va->goods_id, $old_good)) {
  515. $old += $va->num;
  516. $old_money += $va->money;
  517. }
  518. if (in_array($va->goods_id, $hard_good_nan)) {
  519. $hard_nan += $va->num;
  520. $hard_nan_money += $va->money;
  521. } elseif (in_array($va->goods_id, $hard_good_nv)) {
  522. $hard_nv += $va->num;
  523. $hard_nv_money += $va->money;
  524. } elseif (in_array($va->goods_id, $simple_good_nan)) {
  525. $simple_nan += $va->num;
  526. $simple_nan_money += $va->money;
  527. } elseif (in_array($va->goods_id, $simple_good_nv)) {
  528. $simple_nv += $va->num;
  529. $simple_nv_money += $va->money;
  530. } elseif (in_array($va->goods_id, $old_good_nan)) {
  531. $old_nan += $va->num;
  532. $old_nan_money += $va->money;
  533. } elseif (in_array($va->goods_id, $old_good_nv)) {
  534. $old_nv += $va->num;
  535. $old_nv_money += $va->money;
  536. }
  537. }
  538. }
  539. $data = [
  540. 'hard' => $hard,
  541. 'simple' => $simple,
  542. 'old' => $old,
  543. 'hard_money' => $hard_money,
  544. 'simple_money' => $simple_money,
  545. 'old_money' => $old_money,
  546. 'hard_nan' => $hard_nan,
  547. 'simple_nan' => $simple_nan,
  548. 'old_nan' => $old_nan,
  549. 'hard_nan_money' => $hard_nan_money,
  550. 'simple_nan_money' => $simple_nan_money,
  551. 'old_nan_money' => $old_nan_money,
  552. 'hard_nv' => $hard_nv,
  553. 'simple_nv' => $simple_nv,
  554. 'old_nv' => $old_nv,
  555. 'hard_nv_money' => $hard_nv_money,
  556. 'simple_nv_money' => $simple_nv_money,
  557. 'old_nv_money' => $old_nv_money,
  558. ];
  559. return $this->success($data);
  560. }
  561. public function rank_type2(Request $request)
  562. {
  563. $input = $request->all();
  564. $start_time = $input['start_time'];
  565. $end_time = $input['end_time'];
  566. $data = Ordertest::where('is_deleted', 0);
  567. if ($request->has('order_status')) {
  568. $order_status = $input['order_status'];
  569. } else {
  570. $order_status = [];
  571. }
  572. if ($order_status || $order_status == 0) {
  573. if ('-1' == $order_status) {
  574. } elseif ($order_status == 0) {
  575. $data->where('status', $order_status)->where('is_deleted', 0);
  576. } elseif ($order_status == 1) {
  577. $data->where('status', $order_status)->where('is_deleted', 0);
  578. } elseif ($order_status == 2) {
  579. $data->where('status', $order_status)->where('is_deleted', 0);
  580. } elseif ($order_status == 3) {
  581. $data->where('status', $order_status)->where('is_deleted', 0);
  582. } elseif ($order_status == 4) {
  583. $data->where('status', $order_status)->where('is_deleted', 0);
  584. }
  585. }
  586. if ($start_time && $end_time) {
  587. $data->whereBetween('created_at', [$start_time, $end_time]);
  588. }
  589. $orders = $data->get();
  590. $good_attrs = Goodtest::where('is_deleted', 0)->groupBy('main_attr')->select('id', 'name', 'main_attr')->get();
  591. foreach ($good_attrs as $k => $v) {
  592. $good_attr[$k]['ids'] = Goodtest::where('is_deleted', 0)->where('main_attr', $v->main_attr)->pluck('id')->toArray();
  593. $good_attr[$k]['name'] = $v->main_attr;
  594. }
  595. foreach ($good_attr as $key => $value) {
  596. if (empty($attr[$value['name']])) {
  597. $attr[$value['name']][0] = 0;
  598. $attr[$value['name']][1] = 0;
  599. }
  600. }
  601. $good_types = Goodtest::where('is_deleted', 0)->groupBy('attr_id')->orderBy('sort')->select('id', 'name', 'main_attr', 'attr_id')->get();
  602. foreach ($good_types as $k => $v) {
  603. $good_type[$k]['ids'] = Goodtest::where('is_deleted', 0)->where('attr_id', $v->attr_id)->pluck('id')->toArray();
  604. $good_type[$k]['name'] = $v->name;
  605. }
  606. foreach ($good_type as $key => $value) {
  607. if (empty($type[$value['name']])) {
  608. $type[$value['name']][0] = 0;
  609. $type[$value['name']][1] = 0;
  610. }
  611. }
  612. $good_singles = Goodtest::where('is_deleted', 0)->orderBy('sort')->orderBy('id')->select('id', 'name', 'size')->get();
  613. foreach ($good_singles as $k => $v) {
  614. $good_single[$k]['ids'] = $v->id;
  615. $good_single[$k]['name'] = $v->name . '(' . $v->size . ')';
  616. }
  617. foreach ($good_single as $key => $value) {
  618. $single[$value['name']][0] = 0;
  619. $single[$value['name']][1] = 0;
  620. }
  621. foreach ($orders as $k => $v) {
  622. $order = Ordertest::where('id', $v->id)->with(['get_order_detail'])->first();
  623. foreach ($order->get_order_detail as $ke => $va) {
  624. foreach ($good_attr as $key => $value) {
  625. if (in_array($va->goods_id, $value['ids'])) {
  626. $attr[$value['name']][0] += $va->num;
  627. $attr[$value['name']][1] += $va->money;
  628. }
  629. }
  630. foreach ($good_type as $key => $value) {
  631. if (in_array($va->goods_id, $value['ids'])) {
  632. $type[$value['name']][0] += $va->num;
  633. $type[$value['name']][1] += $va->money;
  634. }
  635. }
  636. foreach ($good_single as $key => $value) {
  637. if ($va->goods_id == $value['ids']) {
  638. $single[$value['name']][0] += $va->num;
  639. $single[$value['name']][1] += $va->money;
  640. }
  641. }
  642. }
  643. }
  644. $data = [
  645. 'attr' => $attr,
  646. 'type' => $type,
  647. 'single' => $single
  648. ];
  649. return $this->success($data);
  650. }
  651. public function getOrderListInfo(Request $request)
  652. {
  653. $input = $request->all();
  654. $start_time = $input['start_time'];
  655. $end_time = $input['end_time'];
  656. $type = $input['type'];
  657. $order_status = $input['order_status'];
  658. $search_name = $input['search_name'];
  659. $receive = $input['name'];
  660. $province = $input['provice'];
  661. $city = $input['city'];
  662. $area = $input['area'];
  663. $activity_id=$input['activity_id'];
  664. $ids = $this->getOrderListIds($start_time, $end_time, $order_status, $search_name, $receive, $province, $city, $area,$activity_id);
  665. $data = Goodtest::leftJoin('order_detail', function ($query) use ($ids) {
  666. $query->on('goods_test.id', '=', 'order_detail.goods_id')
  667. ->whereIn('order_detail.order_id', $ids);
  668. });
  669. if ($type == 3) {//种类
  670. $data->select('goods_test.main_attr', DB::raw('sum(order_detail.num) as total'), DB::raw('sum(order_detail.money) as account'))
  671. ->groupBy('goods_test.main_attr');
  672. }
  673. if ($type == 2) {//款式
  674. $data->select('goods_test.main_attr', 'goods_test.sec_attr', DB::raw('sum(order_detail.num) as total'), DB::raw('sum(order_detail.money) as account'))
  675. ->groupBy('goods_test.main_attr', 'goods_test.sec_attr');
  676. }
  677. if ($type == 1) {//尺码
  678. $data->select('goods_test.main_attr', 'goods_test.sec_attr', 'goods_test.size', DB::raw('SUM(order_detail.num) as total'), DB::raw('SUM(order_detail.money) as account'))
  679. ->groupBy('goods_test.main_attr', 'goods_test.sec_attr', 'goods_test.size');
  680. }
  681. $list = $data->get();
  682. return $this->success($list);
  683. }
  684. public function getOrderListIds($start_time, $end_time, $order_status, $search_name, $receive, $province, $city, $area,$activity_id)
  685. {
  686. $order = Ordertest::where('is_deleted', 0);
  687. if (!empty($order_status) || $order_status == '0') {
  688. $order->where('status', '=', $order_status);
  689. }
  690. if ($start_time && $end_time) {
  691. $order->whereBetween('created_at', [$start_time, $end_time]);
  692. }else{
  693. if ($activity_id){
  694. $activity=Activity::find($activity_id);
  695. if ($activity){
  696. $order->whereBetween('created_at', [$activity->start_time, $activity->end_time]);
  697. }
  698. }
  699. }
  700. if ($search_name) {
  701. $user_ids = $this->getUserIds($search_name);
  702. $order->whereIn('user_id', $user_ids);
  703. }
  704. if ($receive) {
  705. $address_ids = $this->getReceiveAddressIds($receive);
  706. $order->whereIn('address_id', $address_ids);
  707. }
  708. if ($province && $province != '省') {
  709. $province_ids = $this->getProvinceIds($province);
  710. $order->whereIn('address_id', $province_ids);
  711. }
  712. if ($city && $city != '市') {
  713. if ($city == '北京城区') {
  714. $city = '市辖区';
  715. }
  716. if ($city == '天津城区') {
  717. $city = '市辖区';
  718. }
  719. if ($city == '上海城区') {
  720. $city = '市辖区';
  721. }
  722. $city_ids = $this->getCityIds($city);
  723. $order->whereIn('address_id', $city_ids);
  724. }
  725. if ($area && $area != '区') {
  726. $area_ids = $this->getProvinceIds($area);
  727. $order->whereIn('address_id', $area_ids);
  728. }
  729. return $order->pluck('id');
  730. }
  731. //获取代理Ids
  732. public function getUserIds($search = null)
  733. {
  734. return User::where(function ($query) use ($search) {
  735. $query->where('nickname', 'like', '%' . $search . '%')
  736. ->orwhere('realname', 'like', '%' . $search . '%')
  737. ->orwhere('mobile', $search);
  738. })->pluck('id');
  739. }
  740. //根据物流查询代理信息
  741. public function getReceiveAddressIds($search = null)
  742. {
  743. return Address::where('username', 'like', '%' . $search . '%')
  744. ->orWhere('mobile', $search)
  745. ->pluck('id');
  746. }
  747. //根据省查询代理信息
  748. public function getProvinceIds($search = null)
  749. {
  750. //<<<<<<< HEAD
  751. return Address::where('province', $search)
  752. ->pluck('id');
  753. }
  754. //根据市查询代理信息
  755. public function getCityIds($search = null)
  756. {
  757. if ($search == '北京城区' || $search == '天津城区' || $search == '上海城区') {
  758. $search = '市辖区';
  759. }
  760. return Address::where('city', $search)
  761. //=======
  762. // return Address::where('province',$search )
  763. // ->pluck('id');
  764. // }
  765. //
  766. // //根据省查询代理信息
  767. // public function getCityIds($search = null)
  768. // {
  769. // return Address::where('city', $search )
  770. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  771. ->pluck('id');
  772. }
  773. //<<<<<<< HEAD
  774. //根据区查询代理信息
  775. public function getAreaIds($search = null)
  776. {
  777. return Address::where('town', $search)
  778. //=======
  779. // //根据省查询代理信息
  780. // public function getAreaIds($search = null)
  781. // {
  782. // return Address::where('town', $search )
  783. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  784. ->pluck('id');
  785. }
  786. //<<<<<<< HEAD
  787. //订单拆分快递单
  788. public function orderBreakUpCourier(Request $request)
  789. {
  790. ini_set('memory_limit', '1024M');
  791. $input = $request->all();
  792. if ($request->has('provice')) {
  793. $order_no = $input['order_no'];
  794. $start_time = $input['start_time'];
  795. $end_time = $input['end_time'];
  796. $activity_id = $input['activity_id'];
  797. $user_name = $input['user_name'];
  798. $receive_info = $input['receive_info'];
  799. $goods_info = $input['goods_info'];
  800. $province = $input['provice'];
  801. $city = $input['city'];
  802. $town = $input['area'];
  803. if ($request->has('order_status')) {
  804. $order_status = $input['order_status'];
  805. } else {
  806. $order_status = [];
  807. }
  808. if ($request->has('pay_status')) {
  809. $pay_status = $input['pay_status'];
  810. } else {
  811. $pay_status = [];
  812. }
  813. $order_type = $input['order_type'];
  814. $data = Ordertest::leftJoin('order_detail', 'order_test.id', '=', 'order_detail.order_id')
  815. ->leftJoin('users', 'order_test.user_id', '=', 'users.id')
  816. // ->join('warea','warea.id','=','users.warea_id')
  817. ->leftJoin('goods_test', 'goods_test.id', '=', 'order_detail.goods_id')
  818. ->leftJoin('address', 'address.id', '=', 'order_test.address_id')
  819. ->select('order_test.order_num','order_test.created_at', 'users.warea_id','order_test.id', 'order_test.remark', 'users.nickname as u_nickname', 'users.mobile as u_mobile', 'users.realname as u_name', 'address.username', 'address.mobile', 'address.address', 'address.province', 'address.city', 'address.town', 'goods_test.main_attr', 'goods_test.sec_attr', 'goods_test.size', DB::raw('SUM(order_detail.num) as total'));
  820. $admin = Auth::user();
  821. if ($admin->role_id == 23) {
  822. $warea_ids = Warea::where('admin_id', $admin->id)->pluck('id');
  823. $data->whereIn('users.warea_id', $warea_ids);
  824. }
  825. if ($order_no) {
  826. $data->where('order_test.order_num', $order_no);
  827. }
  828. if ($start_time && $end_time && empty($activity_id)) {
  829. $data->whereBetween('order_test.created_at', [$start_time, $end_time]);
  830. }
  831. if ($activity_id) {
  832. // $data->where('order_test.activity_id', $activity_id);
  833. $actice=Activity::find($activity_id);
  834. $data->whereBetween('order_test.created_at',[$actice->start_time,$actice->end_time]);
  835. }
  836. if ($user_name) {
  837. $user_id = $this->getUserNameIds($user_name);
  838. $data->whereIn('order_test.user_id', $user_id);
  839. }
  840. if ($receive_info) {
  841. $address_ids = $this->getReceiveAddressIds($receive_info);
  842. $data->whereIn('order_test.address_id', $address_ids);
  843. }
  844. if ($province && $province != '省') {
  845. $province_ids = $this->getProvinceIds($province);
  846. $data->whereIn('order_test.address_id', $province_ids);
  847. }
  848. if ($city && $city != '市') {
  849. $city_ids = $this->getCityIds($city);
  850. $data->whereIn('order_test.address_id', $city_ids);
  851. }
  852. if ($town && $town != '区') {
  853. $town_ids = $this->getAreaIds($town);
  854. $data->whereIn('order_test.address_id', $town_ids);
  855. }
  856. //商品信息
  857. if ($goods_info) {
  858. $order_ids = $this->getGoodsOrderIds($goods_info);
  859. $data->whereIn('order_test.id', $order_ids);
  860. }
  861. if ($order_status) {
  862. if (!in_array('-1', $order_status)) {
  863. if (!in_array('5', $order_status)) {
  864. $data->whereIn('order_test.status', $order_status)->where('order_test.is_deleted', 0);
  865. } else {
  866. $data->where('order_test.is_deleted', 1)
  867. ->orWhere(function ($query) use ($order_status) {
  868. $query->where('order_test.is_deleted', 0)
  869. ->whereIn('order_test.status', $order_status);
  870. });
  871. }
  872. }
  873. }
  874. if ($pay_status) {
  875. if (!in_array('-1', $pay_status)) {
  876. $data->whereIn('order_test.pay_status', $pay_status);
  877. }
  878. }
  879. if (in_array($order_type, [0, 1])) {
  880. $data->where('order_test.order_type', $order_type);
  881. }
  882. $list = $data->groupBy('order_detail.order_id', 'goods_test.sec_attr', 'goods_test.size', 'goods_test.main_attr')
  883. ->orderBy('order_test.id', 'order_detail.id')
  884. ->get()->toArray();
  885. } else {
  886. if ($request->has('id')) {
  887. $list = Ordertest::leftJoin('order_detail', 'order_test.id', '=', 'order_detail.order_id')
  888. ->leftJoin('users', 'order_test.user_id', '=', 'users.id')
  889. // ->join('warea','warea.id','=','users.warea_id')
  890. ->leftJoin('goods_test', 'goods_test.id', '=', 'order_detail.goods_id')
  891. ->leftJoin('address', 'address.id', '=', 'order_test.address_id')
  892. ->select('order_test.order_num','order_test.created_at','order_test.id', 'order_test.remark', 'users.nickname as u_nickname', 'users.mobile as u_mobile','users.warea_id', 'users.realname as u_name', 'address.username', 'address.mobile', 'address.address', 'address.province', 'address.city', 'address.town', 'goods_test.main_attr', 'goods_test.sec_attr', 'goods_test.size', DB::raw('SUM(order_detail.num) as total'))
  893. ->whereIn('order_test.id', $request->id)
  894. ->groupBy('order_detail.order_id', 'goods_test.sec_attr', 'goods_test.size', 'goods_test.main_attr')
  895. ->orderBy('order_test.id', 'order_detail.id')
  896. ->get()->toArray();
  897. } else {
  898. if ($request->has('order_no')) {
  899. $order_no = $input['order_no'];
  900. } else {
  901. $order_no = '';
  902. }
  903. $start_time = $input['start_time'] ?? '';
  904. $end_time = $input['end_time'] ?? '';
  905. $activity_id = $input['activity_id'] ?? '';
  906. $search_name = $input['search_name'] ?? '';
  907. if ($request->has('order_status')) {
  908. $order_status = $input['order_status'];
  909. } else {
  910. $order_status = [];
  911. }
  912. $data = Ordertest::leftJoin('order_detail', 'order_test.id', '=', 'order_detail.order_id')
  913. ->leftJoin('users', 'order_test.user_id', '=', 'users.id')
  914. // ->join('warea','warea.id','=','users.warea_id')
  915. ->leftJoin('goods_test', 'goods_test.id', '=', 'order_detail.goods_id')
  916. ->leftJoin('address', 'address.id', '=', 'order_test.address_id')
  917. ->select('order_test.order_num','order_test.created_at', 'order_test.id','users.warea_id', 'order_test.remark', 'users.nickname as u_nickname', 'users.mobile as u_mobile', 'users.realname as u_name', 'address.username', 'address.mobile', 'address.address', 'address.province', 'address.city', 'address.town', 'goods_test.main_attr', 'goods_test.sec_attr', 'goods_test.size', DB::raw('SUM(order_detail.num) as total'));
  918. $admin = Auth::user();
  919. if ($admin->role_id == 23) {
  920. $warea_ids = Warea::where('admin_id', $admin->id)->pluck('id');
  921. $data->whereIn('users.warea_id', $warea_ids);
  922. }
  923. if ($order_status || $order_status == 0) {
  924. if ('-1' == $order_status) {
  925. $data->whereIn('order_test.is_deleted', [0, 1]);
  926. } elseif ($order_status == 5) {
  927. $data->where('order_test.is_deleted', 1);
  928. } elseif ($order_status == 0) {
  929. $data->where('order_test.status', $order_status)->where('order_test.is_deleted', 0);
  930. } elseif ($order_status == 1) {
  931. $data->where('order_test.status', $order_status)->where('order_test.is_deleted', 0);
  932. } elseif ($order_status == 2) {
  933. $data->where('order_test.status', $order_status)->where('order_test.is_deleted', 0);
  934. } elseif ($order_status == 3) {
  935. $data->where('order_test.status', $order_status)->where('order_test.is_deleted', 0);
  936. } elseif ($order_status == 4) {
  937. $data->where('order_test.status', $order_status)->where('order_test.is_deleted', 0);
  938. } elseif ($order_status == 6) {
  939. $data->whereIn('order_test.pay_status', [0, 1])->where('order_test.order_test.is_deleted', 0);
  940. }
  941. }
  942. if ($order_no) {
  943. $data->where('order_test.order_num', $order_no);
  944. }
  945. if ($search_name) {
  946. // $s=substr(trim($search_name),0,4);
  947. // if($s=='DWBS'){
  948. // $data->where('order_test.order_num',trim($search_name));
  949. // }else{
  950. $ids = $this->getUserIds($search_name);
  951. $data->whereIn('order_test.user_id', $ids);
  952. // }
  953. }
  954. if ($start_time && $end_time && empty($activity_id)) {
  955. $data->whereBetween('order_test.created_at', [$start_time, $end_time]);
  956. }
  957. if ($activity_id) {
  958. $actice = Activity::find($activity_id);
  959. $data->whereBetween('order_test.created_at', [$actice->start_time, $actice->end_time]);
  960. }
  961. $list = $data->groupBy('order_detail.order_id', 'goods_test.sec_attr', 'goods_test.size', 'goods_test.main_attr')
  962. ->orderBy('order_test.id', 'order_detail.id')
  963. ->get()->toArray();
  964. }
  965. }
  966. $dd = $this->dataGroup($list, 'order_num');
  967. $d = [];
  968. foreach ($dd as $key => $val) {
  969. $info['gift'] = OrderGift::leftJoin('gifts', 'order_gift.gift_id', '=', 'gifts.id')
  970. ->where('order_gift.order_id', $val[0]['id'])
  971. ->where('order_gift.num', '>', '0')
  972. ->select('gifts.name', 'order_gift.num')->get();
  973. $info['u_nickname'] = $val[0]['u_nickname'];
  974. $info['u_name'] = $val[0]['u_name'];
  975. $info['u_mobile'] = $val[0]['u_mobile'];
  976. $info['username'] = $val[0]['username'];
  977. $info['mobile'] = $val[0]['mobile'];
  978. $info['address'] = $val[0]['address'];
  979. $info['province'] = $val[0]['province'];
  980. $info['city'] = $val[0]['city'];
  981. $info['town'] = $val[0]['town'];
  982. $admin_name=Warea::where('id',$val[0]['warea_id'])->value('admin_name');
  983. $info['admin_name'] =$admin_name;
  984. $info['created_at'] = $val[0]['created_at'];
  985. // $info['remark'] = (string)$val[0]['remark'];
  986. $info['remark'] = $this->getOrderRemark($val[0]['id']);
  987. $d[$key]['data'] = $info;
  988. $d[$key]['精装'] = [];
  989. $d[$key]['普通'] = [];
  990. $d[$key]['精装混合'] = [];
  991. $d[$key]['普通混合'] = [];
  992. $x1 = 0;
  993. $y1 = [];//精装
  994. $x = 0;
  995. $y = [];//普通
  996. foreach ($val as $k => $v) {
  997. if ($v['main_attr'] == '大卫博士精装版') {
  998. $main_attr = '精';
  999. $n = floor($v['total'] / 10);
  1000. for ($i = 0; $i < $n; $i++) {
  1001. $cc = [];
  1002. $cc['main_attr'] = $main_attr;
  1003. $cc['sec_attr'] = $v['sec_attr'];
  1004. $cc['size'] = $v['size'];
  1005. $cc['num'] = 10;
  1006. array_push($d[$key]['精装'], $cc);
  1007. }
  1008. if ($v['total'] % 10 > 0) {
  1009. $t1 = $v['total'] % 10;
  1010. if ($x1 + $t1 >= 10) {
  1011. $x1 = $x1 + $t1 - 10;
  1012. $z1['main_attr'] = $main_attr;
  1013. $z1['sec_attr'] = $v['sec_attr'];
  1014. $z1['size'] = $v['size'];
  1015. $z1['num'] = $t1 - $x1;
  1016. if ($y1) {
  1017. array_pop($d[$key]['精装混合']);
  1018. }
  1019. array_push($y1, $z1);
  1020. $z1 = [];
  1021. array_push($d[$key]['精装混合'], $y1);
  1022. $y1 = [];
  1023. if ($x1 > 0) {
  1024. $z1['main_attr'] = $main_attr;
  1025. $z1['sec_attr'] = $v['sec_attr'];
  1026. $z1['size'] = $v['size'];
  1027. $z1['num'] = $x1;
  1028. array_push($y1, $z1);
  1029. array_push($d[$key]['精装混合'], $y1);
  1030. }
  1031. } else {
  1032. $x1 += $t1;
  1033. $z1['main_attr'] = $main_attr;
  1034. $z1['sec_attr'] = $v['sec_attr'];
  1035. $z1['size'] = $v['size'];
  1036. $z1['num'] = $v['total'] % 10;
  1037. if ($y1) {
  1038. array_pop($d[$key]['精装混合']);
  1039. }
  1040. array_push($y1, $z1);
  1041. array_push($d[$key]['精装混合'], $y1);
  1042. }
  1043. }
  1044. } else {
  1045. $n = floor($v['total'] / 6);
  1046. if ($v['main_attr'] == '大卫博士老人版') {
  1047. $main_attr = '老';
  1048. } elseif ($v['main_attr'] == '大卫博士简约版') {
  1049. $main_attr = '简';
  1050. } else {
  1051. $main_attr = '棉老';
  1052. }
  1053. for ($i = 0; $i < $n; $i++) {
  1054. $cc = [];
  1055. $cc['main_attr'] = $main_attr;
  1056. $cc['sec_attr'] = $v['sec_attr'];
  1057. $cc['size'] = $v['size'];
  1058. $cc['num'] = 6;
  1059. array_push($d[$key]['普通'], $cc);
  1060. }
  1061. if ($v['total'] % 6 > 0) {
  1062. $t = $v['total'] % 6;
  1063. if ($x + $t >= 6) {
  1064. $x = $x + $t - 6;
  1065. $z['main_attr'] = $main_attr;
  1066. $z['sec_attr'] = $v['sec_attr'];
  1067. $z['size'] = $v['size'];
  1068. $z['num'] = $t - $x;
  1069. if ($y) {
  1070. array_pop($d[$key]['普通混合']);
  1071. }
  1072. array_push($y, $z);
  1073. $z = [];
  1074. array_push($d[$key]['普通混合'], $y);
  1075. $y = [];
  1076. if ($x > 0) {
  1077. $z['main_attr'] = $main_attr;
  1078. $z['sec_attr'] = $v['sec_attr'];
  1079. $z['size'] = $v['size'];
  1080. $z['num'] = $x;
  1081. array_push($y, $z);
  1082. array_push($d[$key]['普通混合'], $y);
  1083. }
  1084. } else {
  1085. $x += $t;
  1086. $z['main_attr'] = $main_attr;
  1087. $z['sec_attr'] = $v['sec_attr'];
  1088. $z['size'] = $v['size'];
  1089. $z['num'] = $v['total'] % 6;
  1090. if ($y) {
  1091. array_pop($d[$key]['普通混合']);
  1092. }
  1093. array_push($y, $z);
  1094. array_push($d[$key]['普通混合'], $y);
  1095. }
  1096. }
  1097. }
  1098. }
  1099. }
  1100. return $this->success($d);
  1101. }
  1102. public function getMergerOrder(Request $request){
  1103. $input=$request->all();
  1104. $page_index=$input['page_index'];
  1105. $page_size=$input['page_size'];
  1106. $num=$page_size*($page_index-1);
  1107. $activity_id=$input['activity_id'];
  1108. $search_name=$input['search_name'];
  1109. $activity=Activity::where('id',$activity_id)->first();
  1110. $data = Ordertest::leftJoin('order_detail', 'order_test.id', '=', 'order_detail.order_id')
  1111. ->leftJoin('users', 'order_test.user_id', '=', 'users.id')
  1112. ->leftJoin('goods_test', 'goods_test.id', '=', 'order_detail.goods_id')
  1113. ->leftJoin('address', 'address.id', '=', 'order_test.address_id');
  1114. if($search_name){
  1115. $address_ids=Address::where(function($query) use ($search_name){
  1116. $query->where('username','like','%'.$search_name.'%')
  1117. ->orWhere('mobile',$search_name);
  1118. })->pluck('id');
  1119. $data->whereIn('order_test.address_id',$address_ids);
  1120. }
  1121. $list=$data->whereBetween('order_test.created_at',[$activity->start_time, $activity->end_time])
  1122. ->where('order_test.is_deleted',0)
  1123. ->select('users.id as u_id','users.nickname as u_nickname', 'users.mobile as u_mobile', 'users.realname as u_name',
  1124. 'address.id as address_id','address.username', 'address.mobile', 'address.address', 'address.province', 'address.city','address.town',
  1125. 'goods_test.unit',DB::raw('SUM(order_detail.num) as total'))
  1126. ->groupBy('order_test.address_id','order_test.user_id','goods_test.unit')
  1127. ->orderBy('order_test.created_at')
  1128. ->get();
  1129. $array=[];
  1130. foreach($list as $key => $val){
  1131. $keys=$val->address_id.'-'.$val->u_id;
  1132. $array[$keys]['name']=$val->username;
  1133. $array[$keys]['mobile']=$val->mobile;
  1134. $array[$keys]['address']=$val->address;
  1135. $array[$keys]['address_id']=$val->address_id;
  1136. $array[$keys]['user_id']=$val->u_id;
  1137. $array[$keys]['province']=$val->province;
  1138. $array[$keys]['city']=$val->city;
  1139. $array[$keys]['town']=$val->town;
  1140. $array[$keys]['u_nickname']=$val->u_nickname;
  1141. $array[$keys]['u_mobile']=$val->u_mobile;
  1142. $array[$keys]['u_name']=$val->u_name;
  1143. if($val->unit=='套'){
  1144. if(empty($array[$keys]['num'])){
  1145. $array[$keys]['num']=$val->total;
  1146. }else{
  1147. $array[$keys]['num']+=$val->total;
  1148. }
  1149. }elseif($val->unit=='件'){
  1150. if(empty($array[$keys]['num'])){
  1151. $array[$keys]['num']=$val->total*2;
  1152. }else{
  1153. $array[$keys]['num']+=$val->total*2;
  1154. }
  1155. }
  1156. }
  1157. $gifts=Gifts::where('activity_id',$activity_id)->get();
  1158. foreach($array as $key=>$val){
  1159. $arr=[];
  1160. foreach($gifts as $k => $v){
  1161. if(floor($val['num']/$v->num)>0){
  1162. $arr[]=$v->name.'*'.floor($val['num']/$v->num);
  1163. }
  1164. $array[$key]['gift']=implode(',',$arr);
  1165. }
  1166. }
  1167. $count=count($array);
  1168. return $this->success_list(array_slice($array,$num,$page_size),'成功',$count);
  1169. }
  1170. public function getOrderGoodsInfo(Request $request){
  1171. $input=$request->all();
  1172. $address_id=$input['address_id'];
  1173. $user_id=$input['user_id'];
  1174. $activity_id=$input['activity_id'];
  1175. $activity=Activity::find($activity_id);
  1176. $info=Ordertest::with(['get_order_detail'=>function($query){
  1177. $query->with('get_goods');
  1178. }])->where('is_deleted',0)
  1179. ->where('address_id',$address_id)
  1180. ->where('user_id',$user_id)
  1181. ->whereBetween('created_at',[$activity->start_time,$activity->end_time])
  1182. ->get();
  1183. if($info){
  1184. return $this->success($info);
  1185. }else{
  1186. return $this->error();
  1187. }
  1188. }
  1189. public function exportMergerOrder(Request $request){
  1190. $input=$request->all();
  1191. $activity_id=$input['activity_id'];
  1192. $search_name=$input['search_name'];
  1193. $activity=Activity::where('id',$activity_id)->first();
  1194. $data = Ordertest::leftJoin('order_detail', 'order_test.id', '=', 'order_detail.order_id')
  1195. ->leftJoin('users', 'order_test.user_id', '=', 'users.id')
  1196. ->leftJoin('goods_test', 'goods_test.id', '=', 'order_detail.goods_id')
  1197. ->leftJoin('address', 'address.id', '=', 'order_test.address_id');
  1198. if($search_name){
  1199. $address_ids=Address::where(function($query) use ($search_name){
  1200. $query->where('username','like','%'.$search_name.'%')
  1201. ->orWhere('mobile',$search_name);
  1202. })->pluck('id');
  1203. $data->whereIn('order_test.address_id',$address_ids);
  1204. }
  1205. $list=$data->whereBetween('order_test.created_at',[$activity->start_time, $activity->end_time])
  1206. ->where('order_test.is_deleted',0)
  1207. ->select('users.id as u_id','users.nickname as u_nickname', 'users.mobile as u_mobile', 'users.realname as u_name',
  1208. 'address.id as address_id','address.username', 'address.mobile', 'address.address', 'address.province', 'address.city','address.town',
  1209. 'order_test.order_num',
  1210. 'goods_test.unit','goods_test.name','goods_test.main_attr','goods_test.sec_attr','goods_test.size',
  1211. DB::raw('SUM(order_detail.num) as total'))
  1212. ->groupBy('order_test.address_id','order_test.user_id','order_test.order_num','goods_test.unit','goods_test.main_attr','goods_test.sec_attr','goods_test.size')
  1213. ->orderBy('order_test.created_at')
  1214. ->get();
  1215. // dd($list);
  1216. $array=[];
  1217. foreach($list as $key => $val){
  1218. $keys=$val->address_id.'-'.$val->u_id;
  1219. $array[$keys]['name']=$val->username;
  1220. $array[$keys]['mobile']=$val->mobile;
  1221. $array[$keys]['address']=$val->address;
  1222. $array[$keys]['address_id']=$val->address_id;
  1223. $array[$keys]['user_id']=$val->u_id;
  1224. $array[$keys]['province']=$val->province;
  1225. $array[$keys]['city']=$val->city;
  1226. $array[$keys]['town']=$val->town;
  1227. $array[$keys]['u_nickname']=$val->u_nickname;
  1228. $array[$keys]['u_mobile']=$val->u_mobile;
  1229. $array[$keys]['u_name']=$val->u_name;
  1230. $array[$keys]['goods'][$val->order_num][]=$val->name.'-'.$val->sec_attr.'-'.$val->size.'*'.$val->total;
  1231. // $array[$keys]['goods'][$val->order_num][]=[$val->name.$val->size,$val->name,$val->size,$val->sec_attr,$val->total];
  1232. if($val->unit=='套'){
  1233. if(empty($array[$keys]['num'])){
  1234. $array[$keys]['num']=$val->total;
  1235. }else{
  1236. $array[$keys]['num']+=$val->total;
  1237. }
  1238. }elseif($val->unit=='件'){
  1239. if(empty($array[$keys]['num'])){
  1240. $array[$keys]['num']=$val->total*2;
  1241. }else{
  1242. $array[$keys]['num']+=$val->total*2;
  1243. }
  1244. }
  1245. }
  1246. $gifts=Gifts::where('activity_id',$activity_id)->get();
  1247. foreach($array as $key=>$val){
  1248. $array[$key]['shouhuan']=0;
  1249. $array[$key]['xianglian']=0;
  1250. $arr=[];
  1251. foreach($gifts as $k => $v){
  1252. if(floor($val['num']/$v->num)>0){
  1253. if ($v->name=='手环'||$v->name=='赠品-手环'){
  1254. $array[$key]['shouhuan']=floor($val['num']/$v->num);
  1255. }
  1256. if ($v->name=='项链'||$v->name=='赠品-项链'){
  1257. $array[$key]['xianglian']=floor($val['num']/$v->num);
  1258. }
  1259. $arr[]=$v->name.'*'.floor($val['num']/$v->num);
  1260. }
  1261. $array[$key]['gift']=implode(',',$arr);
  1262. }
  1263. }
  1264. return $this->success($array);
  1265. }
  1266. //根据名称查询代理信息
  1267. public function getUserNameIds($search = null)
  1268. {
  1269. return User::where(function ($query) use ($search) {
  1270. $query->where('nickname', 'like', '%' . $search . '%')
  1271. ->orwhere('realname', 'like', '%' . $search . '%')
  1272. ->orwhere('mobile', $search);
  1273. })->pluck('id');
  1274. }
  1275. //根据商品名称获取订单id
  1276. public function getGoodsOrderIds($search = null)
  1277. {
  1278. return Orderdetail::where('goods_name', 'like', '%' . $search . '%')
  1279. ->pluck('order_id');
  1280. }
  1281. protected function dataGroup(array $dataArr, string $keyStr): array
  1282. {
  1283. $newArr = [];
  1284. foreach ($dataArr as $k => $val) { //数据根据日期分组
  1285. $newArr[$val[$keyStr]][] = $val;
  1286. }
  1287. return $newArr;
  1288. }
  1289. public function getGoodsInfo($order_id)
  1290. {
  1291. $goods = Goodtest::leftJoin('order_detail', function ($query) use ($order_id) {
  1292. $query->on('goods_test.id', '=', 'order_detail.goods_id')
  1293. ->where('order_id', $order_id);
  1294. })
  1295. ->select('goods_test.main_attr', 'goods_test.sec_attr', 'goods_test.size', DB::raw('SUM(order_detail.num) as total'))
  1296. ->groupBy('goods_test.sec_attr', 'goods_test.size', 'goods_test.main_attr')
  1297. ->get();
  1298. return $goods;
  1299. }
  1300. //=======
  1301. /***T恤统计*/
  1302. public function get_t_data(Request $request)
  1303. {
  1304. $input = $request->all();
  1305. $page_index = $input['page_index'];
  1306. $page_size = $input['page_size'];
  1307. $num = ($page_index - 1) * $page_size;
  1308. $data = CrownCount::orderBy('exchange')->orderBy('id');
  1309. $datas = CrownCount::orderBy('exchange')->orderBy('id');
  1310. if ($request->mobile) {
  1311. $data->where('mobile', $request->mobile)
  1312. ->orwhere('nickname', 'like', '%' . $request->mobile . '%');
  1313. $datas->where('mobile', $request->mobile)
  1314. ->orwhere('nickname', 'like', '%' . $request->mobile . '%');
  1315. }
  1316. if ($request->crown_mobile) {
  1317. $data->where('crown_mobile', $request->crown_mobile)
  1318. ->orwhere('crown_name', 'like', '%' . $request->crown_mobile . '%');
  1319. $datas->where('crown_mobile', $request->crown_mobile)
  1320. ->orwhere('crown_name', 'like', '%' . $request->crown_mobile . '%');
  1321. }
  1322. $count = $data->count();
  1323. $tt = clone $datas;
  1324. $count_surplus = $datas->where('exchange', 0)->count();
  1325. $t = $tt->select(DB::raw('sum(crown_count.type_l) as total_L'), DB::raw('sum(crown_count.type_xl) as total_XL'), DB::raw('sum(crown_count.type_3XL) as total_3XL'))->get();
  1326. $count_write = $count - $count_surplus;
  1327. if ($count == 0) {
  1328. $percent = 0;
  1329. } else {
  1330. $percent = (round($count_write / $count, 4) * 100) . '%';
  1331. }
  1332. if ($count == 0) {
  1333. return $this->success_list([], '', $count);
  1334. }
  1335. $list = $data->skip($num)->take($page_size)->get();
  1336. $re = [];
  1337. foreach ($list as $k => $v) {
  1338. $re[$k]['序号'] = $v->id;
  1339. $re[$k]['下单人昵称'] = $v->crown_name;
  1340. $re[$k]['下单人手机号'] = $v->crown_mobile;
  1341. $re[$k]['收货人昵称'] = $v->nickname;
  1342. $re[$k]['收货人手机号'] = $v->mobile;
  1343. $re[$k]['T恤总量'] = $v->total;
  1344. $re[$k]['尺码:L'] = $v->type_l;
  1345. $re[$k]['尺码:XL'] = $v->type_xl;
  1346. $re[$k]['尺码:3XL'] = $v->type_3xl;
  1347. $re[$k]['已统计T恤'] = $v->type_l + $v->type_xl + $v->type_3xl;
  1348. $re[$k]['收货人省份'] = $v->province;
  1349. $re[$k]['收货人城市'] = $v->city;
  1350. $re[$k]['收货人地区'] = $v->area;
  1351. $re[$k]['收货人地址'] = $v->address;
  1352. }
  1353. $all = [
  1354. 'total' => $count,
  1355. 'write_count' => $count_write,
  1356. 'surplus_count' => $count_surplus,
  1357. 'percent' => $percent,
  1358. 'total_L' => $t[0]['total_L'],
  1359. 'total_XL' => $t[0]['total_XL'],
  1360. 'total_3XL' => $t[0]['total_3XL'],
  1361. 'total_all' => (string)($t[0]['total_3XL'] + $t[0]['total_XL'] + $t[0]['total_L']),
  1362. 'list' => $re
  1363. ];
  1364. return $this->success($all);
  1365. // return $this->success_list($re,'',$count);
  1366. }
  1367. /**下载T恤详情**/
  1368. public function get_t_excel(Request $request)
  1369. {
  1370. $data = CrownCount::orderBy('id');
  1371. if ($request->mobile) {
  1372. $data->where('mobile', $request->mobile)
  1373. ->orwhere('nickname', 'like', '%' . $request->mobile . '%');
  1374. }
  1375. if ($request->crown_mobile) {
  1376. $data->where('mobile', $request->crown_mobile)
  1377. ->orwhere('crown_name', 'like', '%' . $request->crown_mobile . '%');
  1378. }
  1379. $list = $data->get();
  1380. foreach ($list as $k => $v) {
  1381. $re[$k]['下单人昵称'] = $v->crown_name;
  1382. $re[$k]['下单人手机号'] = $v->crown_mobile;
  1383. $re[$k]['收货人昵称'] = $v->nickname;
  1384. $re[$k]['收货人手机号'] = $v->mobile;
  1385. $re[$k]['T恤总量'] = $v->total;
  1386. $re[$k]['尺码:L'] = $v->type_l;
  1387. $re[$k]['尺码:XL'] = $v->type_xl;
  1388. $re[$k]['尺码:3XL'] = $v->type_3xl;
  1389. $re[$k]['已统计T恤'] = $v->type_l + $v->type_xl + $v->type_3xl;
  1390. $re[$k]['收货人省份'] = $v->province;
  1391. $re[$k]['收货人城市'] = $v->city;
  1392. $re[$k]['收货人地区'] = $v->area;
  1393. $re[$k]['收货人地址'] = $v->address;
  1394. }
  1395. return $this->success_list($re);
  1396. }
  1397. /*
  1398. * 修改T恤统计信息
  1399. * */
  1400. public function update_t(Request $request)
  1401. {
  1402. $re = $request->all();
  1403. $v = CrownCount::where('id', $re['序号'])->first();
  1404. if (!$v) {
  1405. return $this->error(40013, '修改出错');
  1406. }
  1407. try {
  1408. $count = $re['尺码:L'] + $re['尺码:XL'] + $re['尺码:3XL'];
  1409. if ($count > $re['T恤总量']) {
  1410. return $this->error(40013, '尺码数量总和大于T恤总量');
  1411. }
  1412. // if ($v->exchange!=$count){
  1413. // return $this->error(40013,'尺码数量总和不等于已统计数量');
  1414. // }
  1415. $v->crown_name = $re['下单人昵称'];
  1416. $v->crown_mobile = $re['下单人手机号'];
  1417. $v->nickname = $re['收货人昵称'];
  1418. $v->mobile = $re['收货人手机号'];
  1419. $v->total = $re['T恤总量'];
  1420. $v->type_l = $re['尺码:L'];
  1421. $v->type_xl = $re['尺码:XL'];
  1422. $v->type_3xl = $re['尺码:3XL'];
  1423. $v->exchange = $re['尺码:L'] + $re['尺码:XL'] + $re['尺码:3XL'];
  1424. $v->province = $re['收货人省份'];
  1425. $v->city = $re['收货人城市'];
  1426. $v->area = $re['收货人地区'];
  1427. $v->address = $re['收货人地址'];
  1428. $v->save();
  1429. return $this->success([]);
  1430. } catch (\Exception $exception) {
  1431. return $this->error(40013, $exception);
  1432. }
  1433. }
  1434. /*
  1435. * 新增
  1436. * **/
  1437. public function add_t(Request $request)
  1438. {
  1439. $re = $request->all();
  1440. $v = new CrownCount();
  1441. try {
  1442. $count = $re['尺码:L'] + $re['尺码:XL'] + $re['尺码:3XL'];
  1443. if ($count > $re['T恤总量']) {
  1444. return $this->error(40013, '尺码数量总和大于T恤总量');
  1445. }
  1446. $v->crown_name = $re['下单人昵称'];
  1447. $v->crown_mobile = $re['下单人手机号'];
  1448. $v->nickname = $re['收货人昵称'];
  1449. $v->mobile = $re['收货人手机号'];
  1450. $v->total = $re['T恤总量'];
  1451. $v->type_l = $re['尺码:L'];
  1452. $v->type_xl = $re['尺码:XL'];
  1453. $v->type_3xl = $re['尺码:3XL'];
  1454. $v->exchange = $re['尺码:L'] + $re['尺码:XL'] + $re['尺码:3XL'];
  1455. $v->province = $re['收货人省份'];
  1456. $v->city = $re['收货人城市'];
  1457. $v->area = $re['收货人地区'];
  1458. $v->address = $re['收货人地址'];
  1459. $v->save();
  1460. return $this->success([]);
  1461. } catch (\Exception $exception) {
  1462. return $this->error(40013, '修改失败');
  1463. }
  1464. }
  1465. /*
  1466. * 删除T恤统计
  1467. * **/
  1468. public function delete_t(Request $request)
  1469. {
  1470. $input = $request->all();
  1471. CrownCount::where('id', $input['序号'])->delete();
  1472. return $this->success([]);
  1473. }
  1474. public function get_user()
  1475. {
  1476. $data = [20218, 2533, 13649, 12336, 23488, 21256, 12487, 17769, 16377, 20363, 9736, 2568, 11718, 21221];
  1477. foreach ($data as $k => $v) {
  1478. $user = User::find($v);
  1479. $re[$k]['mobile'] = $user->mobile;
  1480. $re[$k]['nickname'] = $user->nickname;
  1481. $re[$k]['realname'] = $user->realname;
  1482. }
  1483. return $this->success_list($re);
  1484. }
  1485. /**尺码详情**/
  1486. public function size_data(){
  1487. $active=Activity::where('is_ing',1)->first();
  1488. $data=Orderdetail::join('order_test','order_test.id','=','order_detail.order_id')
  1489. ->where('order_test.is_deleted',0)
  1490. ->whereBetween('order_detail.created_at',[$active->start_time,$active->end_time])
  1491. ->select('order_detail.goods_id','order_detail.goods_name','order_detail.goods_size',DB::raw('sum(order_detail.num) as num'))
  1492. ->groupBy('order_detail.goods_id')->orderBy('order_detail.goods_id')->get();
  1493. return $this->success_list($data);
  1494. }
  1495. //获取订单备注
  1496. private function getOrderRemark($order_id)
  1497. {
  1498. $remark = OrderRemark::where('order_id', $order_id)
  1499. ->select('remark', 'name')->get();
  1500. $str_remark = '';
  1501. if ($remark) {
  1502. foreach ($remark as $k => $v) {
  1503. $str_remark .= '【' . $v->remark . '/---/' . $v->name . '】';
  1504. }
  1505. }
  1506. return $str_remark;
  1507. }
  1508. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  1509. }