UserController.php 102 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Events\AddAgent;
  4. use App\Events\AgentAuditServiceEvent;
  5. use App\Events\ShelvedAgent;
  6. use App\Events\ChangeUserInfo;
  7. use App\Events\ChangeUserLevel;
  8. use App\Events\ChangeUserWar;
  9. use App\Events\ChangeRecom;
  10. use App\Events\DeleteAgent;
  11. use App\Models\CauseDel;
  12. use App\Models\ServiceReason;
  13. use App\Models\Warea;
  14. use Carbon\Carbon;
  15. use Illuminate\Support\Facades\DB;
  16. use App\Models\User;
  17. use App\Models\Admin;
  18. use App\Models\UserCopy;
  19. use App\Models\UserCert;
  20. use App\Models\AgentOperationLog;
  21. use App\Models\Message;
  22. use Illuminate\Support\Facades\Validator;
  23. use Illuminate\Validation\Rule;
  24. use Illuminate\Support\Facades\Log;
  25. use Illuminate\Support\Facades\Auth;
  26. use Jxlwqq\IdValidator\IdValidator;
  27. use Illuminate\Support\Facades\Cache;
  28. use Illuminate\Support\Facades\Redis;
  29. use Illuminate\Support\Facades\Storage;
  30. use Illuminate\Http\Request;
  31. use \Exception;
  32. class UserController extends Controller
  33. {
  34. //获取代理列表信息
  35. public function getUserList(Request $request)
  36. {
  37. $input = $request->all();
  38. $page_size = $input['page_size'];
  39. $page_index = $input['page_index'];
  40. $num = ($page_index - 1) * $page_size;
  41. $search_name = $input['search_name'];
  42. $info_select = $input['info_select'];
  43. $recom_name = $request->has('recom_name') ? $input['recom_name'] : '';
  44. $agent_name = $request->has('agent_name') ? $input['agent_name'] : '';
  45. $commissar_id = $input['commissar'];
  46. $warea_id = $input['warea_id'];
  47. $where = [];
  48. if ($input['level'] == '4') {
  49. $user = User::onlyTrashed()->where($where);
  50. } elseif ($input['level'] == 'all') {
  51. $user = User::withTrashed()->where($where);
  52. } else {
  53. $where['level'] = $input['level'];
  54. $user = User::where($where);
  55. }
  56. if ($request->has('start_time')){
  57. Log::error('时间');
  58. if ($input['start_time']){
  59. $user->where('created_at','>=',$input['start_time']);
  60. }
  61. }
  62. if ($request->has('end_time')){
  63. if ($input['end_time']){
  64. $user->where('created_at','<=',$input['end_time']);
  65. }
  66. }
  67. $user->whereIn('cert_status', [3, 6]);
  68. // if ($search_name) {
  69. // $user->where(function ($query) use ($search_name) {
  70. // $query->where('nickname', 'like', '%' . $search_name . '%')
  71. // ->orWhere('mobile', $search_name)
  72. // ->orWhere('cre_num', $search_name)
  73. // ->orWhere('realname', 'like', '%' . $search_name . '%');
  74. // });
  75. // }
  76. if ($search_name) {
  77. if ($info_select==1){
  78. $user->where(function ($query) use ($search_name) {
  79. $query->where('nickname', 'like', '%' . $search_name . '%')
  80. ->orWhere('mobile', $search_name)
  81. ->orWhere('cre_num', $search_name)
  82. ->orWhere('realname', 'like', '%' . $search_name . '%');
  83. });
  84. }elseif ($info_select==2){
  85. $recom_id = $this->getUserInfo($search_name);
  86. $user->whereIn('recom_id', $recom_id);
  87. }else{
  88. $agent_id = $this->getUserInfo($search_name);
  89. $user->whereIn('agent_id', $agent_id);
  90. }
  91. }
  92. // if ($agent_name) {
  93. // $agent_id = $this->getUserInfo($agent_name);
  94. // $user->whereIn('agent_id', $agent_id);
  95. //
  96. // }
  97. // if ($recom_name) {
  98. // $recom_id = $this->getUserInfo($recom_name);
  99. // $user->whereIn('recom_id', $recom_id);
  100. //
  101. // }
  102. //<<<<<<< HEAD
  103. if ($warea_id && $commissar_id) {
  104. $user->where('warea_id', $warea_id);
  105. }
  106. if ($commissar_id && empty($warea_id)) {
  107. $warea_ids = Warea::where('admin_id', $commissar_id)->pluck('id');
  108. $user->whereIn('warea_id', $warea_ids);
  109. }
  110. $count = $user->where($where)->count();
  111. if ($count == 0) {
  112. $this->error('400001', '没有数据');
  113. }
  114. $list = $user->with(['recom:id,nickname,mobile', 'agent:id,nickname,mobile,level', 'warea:id,name,admin_name'])
  115. ->select('id', 'nickname', 'name','remark','realname', 'level', 'headimgurl', 'mobile', 'recom_id', 'agent_id', 'warea_id','cre_num', 'status',
  116. DB::raw('if(cert_status=3,6,6) as cert_status'), DB::raw('if(deleted_at,1,0) as deleted'))
  117. ->orderBy('id', 'desc')->skip($num)->take($page_size)->get();
  118. foreach ($list as $k=>$v){
  119. if (empty($v->remark)){
  120. $list[$k]['remark']='';
  121. }
  122. if ($v->level!=3 && $v->level!=0){
  123. if ($v->agent->level==3 || $v->agent->level==0){
  124. $list[$k]->crown=$v->agent;
  125. }else{
  126. $res=$this->get_crown($v->agent->id);
  127. $list[$k]->crown=$res;
  128. }
  129. }else{
  130. $list[$k]->crown='';
  131. }
  132. }
  133. return $this->success_list($list, '获取数据成功', $count);
  134. }
  135. /**查找代理公司**/
  136. public function get_crown($id){
  137. $re=User::with(['agent:id,nickname,mobile,level',])->where('id',$id)->first();
  138. if ($re->agent->level!=3 && $re->agent->level!=0){
  139. $res=$this->get_crown($re->agent->id);
  140. return $res;
  141. }
  142. return $re->agent;
  143. }
  144. //根据输入条件查询用户
  145. public function getUserInfo($search = null)
  146. {
  147. return User::where('nickname', 'like', '%' . $search . '%')
  148. ->orWhere('mobile', $search)
  149. ->orWhere('cre_num', $search)
  150. ->orWhere('realname', 'like', '%' . $search . '%')
  151. ->pluck('id');
  152. }
  153. //导出代理信息
  154. public function exportUserList(Request $request)
  155. {
  156. ini_set('memory_limit', '2048M');
  157. $input = $request->all();
  158. $page_size = $input['page_size'];
  159. $page_index = $input['page_index'];
  160. $num = ($page_index - 1) * $page_size;
  161. $search_name = $input['search_name'];
  162. $info_select = $input['info_select'];
  163. $recom_name = $request->has('recom_name') ? $input['recom_name'] : '';
  164. $agent_name = $request->has('agent_name') ? $input['agent_name'] : '';
  165. $commissar_id = $input['commissar'];
  166. $warea_id = $input['warea_id'];
  167. $where = [];
  168. if ($input['level'] == '4') {
  169. $user = User::onlyTrashed()->where($where);
  170. } elseif ($input['level'] == 'all') {
  171. $user = User::where($where)->whereNull('deleted_at');
  172. } else {
  173. $where['level'] = $input['level'];
  174. $user = User::where($where);
  175. }
  176. if ($request->has('start_time')){
  177. if ($input['start_time']){
  178. $user->where('created_at','>=',$input['start_time']);
  179. }
  180. }
  181. if ($request->has('end_time')){
  182. if ($input['end_time']){
  183. $user->where('created_at','<=',$input['end_time']);
  184. }
  185. }
  186. $user->whereIn('cert_status', [3, 6]);
  187. if ($search_name) {
  188. // $user->where(function ($query) use ($search_name) {
  189. // $query->where('nickname', 'like', '%' . $search_name . '%')
  190. // ->orWhere('mobile', $search_name)
  191. // ->orWhere('cre_num', $search_name)
  192. // ->orWhere('realname', 'like', '%' . $search_name . '%');
  193. // });
  194. if ($info_select==1){
  195. $user->where(function ($query) use ($search_name) {
  196. $query->where('nickname', 'like', '%' . $search_name . '%')
  197. ->orWhere('mobile', $search_name)
  198. ->orWhere('cre_num', $search_name)
  199. ->orWhere('realname', 'like', '%' . $search_name . '%');
  200. });
  201. }elseif ($info_select==2){
  202. $recom_id = $this->getUserInfo($search_name);
  203. $user->whereIn('recom_id', $recom_id);
  204. }else{
  205. $agent_id = $this->getUserInfo($search_name);
  206. $user->whereIn('agent_id', $agent_id);
  207. }
  208. }
  209. // if ($agent_name) {
  210. // $agent_id = $this->getUserInfo($agent_name);
  211. // $user->whereIn('agent_id', $agent_id);
  212. // }
  213. // if ($recom_name) {
  214. // $recom_id = $this->getUserInfo($recom_name);
  215. // $user->whereIn('recom_id', $recom_id);
  216. // }
  217. if ($warea_id && $commissar_id) {
  218. $user->where('warea_id', $warea_id);
  219. }
  220. if ($commissar_id && empty($warea_id)) {
  221. $warea_ids = Warea::where('admin_id', $commissar_id)->pluck('id');
  222. $user->whereIn('warea_id', $warea_ids);
  223. }
  224. $list = $user->with(['recom:id,nickname,mobile', 'agent:id,nickname,mobile,level', 'warea:id,name,admin_name'])
  225. ->select('id', 'nickname', 'realname', 'cre_num', 'remark', 'level', 'mobile', 'recom_id', 'agent_id', 'warea_id', 'auth_code', 'auth_startime', 'auth_endtime', 'recom_code', 'status',
  226. DB::raw('if(cert_status=3,6,6) as cert_status'), DB::raw('if(deleted_at,1,0) as deleted'),'deleted_at')
  227. ->orderBy('id', 'desc')
  228. // ->skip($num)->take(10000)
  229. ->get();
  230. foreach ($list as $k=>$v){
  231. if ($v->deleted_at){
  232. $list[$k]->crown='';
  233. }else{
  234. if ($v->level!=3 && $v->level!=0){
  235. if ($v->agent){
  236. if ($v->agent->level==3 || $v->agent->level==0){
  237. $list[$k]->crown=$v->agent;
  238. }else{
  239. $res=$this->get_crown($v->agent->id);
  240. $list[$k]->crown=$res;
  241. }
  242. }else{
  243. $list[$k]->crown='';
  244. }
  245. }else{
  246. $list[$k]->crown='';
  247. }
  248. }
  249. }
  250. if ($list) {
  251. return $this->success($list);
  252. } else {
  253. return $this->error();
  254. }
  255. //=======
  256. //// if($warea_id && $commissar_id){
  257. //// $user->where('warea_id',$warea_id);
  258. //// }
  259. //// if($commissar_id && empty($warea_id)){
  260. //// $warea_ids=Warea::where('admin_id',$commissar_id)->pluck('id');
  261. //// $user->whereIn('warea_id',$warea_ids);
  262. //// }
  263. //// $list = Cache::remember($keys, 60, function () use ($user){
  264. // $ll = $user->with(['recom:id,nickname,mobile','agent:id,nickname,mobile'])
  265. //// ->select('nickname','name','mobile','cre_num','level','auth_code','auth_startime','auth_endtime','created_at','recom_code','status','cert_status')
  266. // ->orderBy('id','desc')
  267. // ->skip($num)->take(10000)
  268. // ->get();
  269. // if($ll){
  270. // foreach($ll as $key=>$val){
  271. // if(!empty($val->deleted_at)){
  272. // $ll[$key]['delete']=1;//已删除
  273. // }else{
  274. // $ll[$key]['delete']=0;//未删除
  275. // }
  276. // $ll[$key]['cert_status']=6;
  277. //
  278. //// $ll[$key]['warea']=$this->getWareaInfo($val->warea_id);
  279. //// $list[$key]['account']=$user->getAgentSalesResult($val->id);
  280. // }
  281. // return $this->success($ll);
  282. // }else{
  283. // return $this->error();
  284. // }
  285. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  286. }
  287. //代理详情
  288. public function getUserDetails(Request $request)
  289. {
  290. $input = $request->all();
  291. $user = User::withTrashed()->with(['recom:id,nickname,mobile', 'agent:id,nickname,mobile'
  292. ])->where('id', $input['id'])->first();
  293. if ($user) {
  294. if ($user->level == '3') {
  295. $childAgent = User::where('agent_id', $user->id)->select('id', 'nickname', 'level', 'mobile')->get()->toArray();
  296. $childAgentIds = array_column($childAgent, 'id');
  297. if ($childAgentIds) {
  298. $childChildAgent = User::whereIn('agent_id', $childAgentIds)->select('id', 'nickname', 'level', 'mobile')->get()->toArray();
  299. $user->child_agent = array_merge($childAgent, $childChildAgent);
  300. } else {
  301. $user->child_agent = $childAgent;
  302. }
  303. $user->childAgentCount = count($user->child_agent);
  304. } elseif ($user->level == '2') {
  305. $user->child_agent = User::where('agent_id', $user->id)->select('id', 'nickname', 'level', 'mobile')->get()->toArray();
  306. $user->childAgentCount = count($user->child_agent);
  307. $user->crown=$this->get_crown($user->id);
  308. } else {
  309. $user->child_agent = [];
  310. $user->childAgentCount = 0;
  311. $user->crown=$this->get_crown($user->id);
  312. }
  313. if ($user->warea_id) {
  314. $warea = Warea::where('id', $user->warea_id)->first();
  315. $user['warea']->warea_name = $warea->name;
  316. if ($warea->admin_id) {
  317. $user['warea']->commissar = Admin::where('id', $warea->admin_id)->value('name');
  318. }
  319. }
  320. if (!empty($user->deleted_at)) {
  321. $user->delete = '1';//已删除
  322. } else {
  323. $user->delete = '0';//未删除
  324. }
  325. $user->up_team=$this->getUpTeam($user->id);
  326. // event(new ChangeUserInfo($user));
  327. return $this->success($user);
  328. } else {
  329. return $this->error('400004', '代理信息不存在');
  330. }
  331. }
  332. //获取战区政委信息
  333. public function getWareaInfo($warea_id)
  334. {
  335. $data = [];
  336. if ($warea_id) {
  337. $warea = Warea::where('id', $warea_id)->first();
  338. if ($warea) {
  339. $data['warea_name'] = $warea->name;
  340. if ($warea->admin_id) {
  341. $data['commissar'] = Admin::where('id', $warea->admin_id)->value('name');
  342. }
  343. }
  344. }
  345. return $data;
  346. }
  347. //获取未审核代理列表信息
  348. public function getNocertUserList(Request $request)
  349. {
  350. $input = $request->all();
  351. $page_size = $input['page_size'];
  352. $page_index = $input['page_index'];
  353. $num = ($page_index - 1) * $page_size;
  354. $search_name = $input['search_name'];
  355. if ($input['cert'] == 'all') {
  356. $where = [];
  357. } else {
  358. $where['cert_status'] = $input['cert'];
  359. }
  360. $count = User::where(function ($query) use ($search_name) {
  361. $query->where('nickname', 'like', '%' . $search_name . '%')
  362. ->orWhere('mobile', 'like', '%' . $search_name . '%')
  363. ->orWhere('cre_num', 'like', '%' . $search_name . '%')
  364. ->orWhere('realname', 'like', '%' . $search_name . '%');
  365. })
  366. ->where($where)
  367. ->where('id', '<>', 1)
  368. ->count();
  369. if ($count == 0) {
  370. $this->error('400001', '没有数据');
  371. }
  372. // DB::enableQueryLog();
  373. $list = User::where(function ($query) use ($search_name) {
  374. $query->where('nickname', 'like', '%' . $search_name . '%')
  375. ->orWhere('mobile', 'like', '%' . $search_name . '%')
  376. ->orWhere('cre_num', 'like', '%' . $search_name . '%')
  377. ->orWhere('realname', 'like', '%' . $search_name . '%');
  378. })
  379. ->where($where)
  380. ->where('id', '<>', 1)
  381. ->with('recom:id,nickname,mobile', 'agent:id,nickname,mobile', 'usercert:id,user_id,recom_audit,recom_audit_desc,agent_audit,agent_audit_desc')
  382. ->skip($num)->take($page_size)
  383. ->get();
  384. if (empty($list)) {
  385. return $this->error('400002', '没有获取到数据');
  386. }
  387. return $this->success_list($list, '获取数据成功', $count);
  388. }
  389. //获取代理授权信息
  390. public function getAuthUserList(Request $request)
  391. {
  392. $input = $request->all();
  393. $page_size = $input['page_size'];
  394. $page_index = $input['page_index'];
  395. $num = ($page_index - 1) * $page_size;
  396. $search_name = $input['search_name'];
  397. $status = $input['status'];
  398. $where = [];
  399. switch ($status) {
  400. case '0': //未授权
  401. $auth_status = 0;
  402. $count = User::where(function ($query) use ($search_name) {
  403. $query->where('nickname', 'like', '%' . $search_name . '%')
  404. ->orWhere('mobile', 'like', '%' . $search_name . '%')
  405. ->orWhere('cre_num', 'like', '%' . $search_name . '%')
  406. ->orWhere('realname', 'like', '%' . $search_name . '%');
  407. })->whereNull('auth_code')
  408. ->where('id', '<>', 1)
  409. ->count();
  410. if ($count == 0) {
  411. $this->error('400001', '没有数据');
  412. }
  413. $list = User::where(function ($query) use ($search_name) {
  414. $query->where('nickname', 'like', '%' . $search_name . '%')
  415. ->orWhere('mobile', 'like', '%' . $search_name . '%')
  416. ->orWhere('cre_num', 'like', '%' . $search_name . '%')
  417. ->orWhere('realname', 'like', '%' . $search_name . '%');
  418. })
  419. ->whereNull('auth_code')
  420. ->where('id', '<>', 1)
  421. ->with('recom:id,nickname,mobile', 'agent:id,nickname,mobile', 'usercert:id,user_id,recom_audit,recom_audit_desc,agent_audit,agent_audit_desc')
  422. ->skip($num)->take($page_size)
  423. ->get();
  424. break;
  425. case '1': //已授权
  426. $auth_status = 1;
  427. $nowDate = date("Y-m-d H:i:s", time());
  428. $count = User::where(function ($query) use ($search_name) {
  429. $query->where('nickname', 'like', '%' . $search_name . '%')
  430. ->orWhere('mobile', 'like', '%' . $search_name . '%')
  431. ->orWhere('auth_code', 'like', '%' . $search_name . '%');
  432. })
  433. ->where($where)
  434. ->where('id', '<>', 1)
  435. // ->where('auth_startime','<=',$nowDate)
  436. ->where('auth_endtime', '>=', $nowDate)
  437. ->count();
  438. if ($count == 0) {
  439. $this->error('400001', '没有数据');
  440. }
  441. $list = User::where(function ($query) use ($search_name) {
  442. $query->where('nickname', 'like', '%' . $search_name . '%')
  443. ->orWhere('mobile', 'like', '%' . $search_name . '%')
  444. ->orWhere('auth_code', 'like', '%' . $search_name . '%');
  445. })
  446. ->where($where)
  447. ->where('id', '<>', 1)
  448. // ->where('auth_startime','<=',$nowDate)
  449. ->where('auth_endtime', '>=', $nowDate)
  450. ->with('recom:id,nickname,mobile', 'agent:id,nickname,mobile', 'usercert:id,user_id,recom_audit,recom_audit_desc,agent_audit,agent_audit_desc')
  451. ->skip($num)->take($page_size)
  452. ->get();
  453. break;
  454. case '2': //已过期
  455. $auth_status = 2;
  456. $nowDate = date("Y-m-d H:i:s", time());
  457. // if($input['auth_time']){
  458. // $where['auth_startime']=$input['auth_time'];
  459. // }
  460. $count = User::where(function ($query) use ($search_name) {
  461. $query->where('nickname', 'like', '%' . $search_name . '%')
  462. ->orWhere('mobile', 'like', '%' . $search_name . '%')
  463. ->orWhere('auth_code', 'like', '%' . $search_name . '%');
  464. })
  465. ->where($where)
  466. ->where('id', '<>', 1)
  467. ->where('auth_endtime', '<', $nowDate)
  468. ->count();
  469. if ($count == 0) {
  470. $this->error('400001', '没有数据');
  471. }
  472. $list = User::where(function ($query) use ($search_name) {
  473. $query->where('nickname', 'like', '%' . $search_name . '%')
  474. ->orWhere('mobile', 'like', '%' . $search_name . '%')
  475. ->orWhere('auth_code', 'like', '%' . $search_name . '%');
  476. })
  477. ->where($where)
  478. ->where('id', '<>', 1)
  479. ->where('auth_endtime', '<', $nowDate)
  480. ->with('recom:id,nickname,mobile', 'agent:id,nickname,mobile', 'usercert:id,user_id,recom_audit,recom_audit_desc,agent_audit,agent_audit_desc')
  481. ->skip($num)->take($page_size)
  482. ->get();
  483. break;
  484. }
  485. if ($list) {
  486. foreach ($list as $key => $val) {
  487. $list[$key]['auth_status'] = $auth_status;
  488. }
  489. }
  490. return $this->success_list($list, '获取数据成功', $count);
  491. }
  492. //代理重新授权
  493. public function updateUserAuthInfo(Request $request)
  494. {
  495. $input = $request->all();
  496. $userInfo = User::find($input['id']);
  497. if (empty($userInfo)) {
  498. return $this->error('400213', '代理信息不存在');
  499. }
  500. $auth_code = $this->getAuthCode();
  501. $data['auth_code'] = $auth_code;
  502. $data['auth_startime'] = $input['auth_startime'];
  503. $data['auth_endtime'] = $input['auth_endtime'];
  504. DB::beginTransaction();
  505. $row = User::where('id', $input['id'])->update($data);
  506. $remark = '单个授权';
  507. $res = $this->addAgentOperationLog('5', $input['id'], $remark);
  508. if ($row && $res) {
  509. DB::commit();
  510. Log::info('管理员:' . Auth::user()->name . '(id=' . Auth::user()->id . ')授权代理信息成功,代理id=' . $input['id']);
  511. return $this->success([], '授权成功');
  512. }
  513. DB::rollBack();
  514. return $this->error();
  515. }
  516. //代理批量授权
  517. public function updateUserManyAuthInfo(Request $request)
  518. {
  519. $input = $request->all();
  520. $userId = $input['userId'];
  521. DB::beginTransaction();
  522. try {
  523. foreach ($userId as $key => $val) {
  524. $userInfo = User::find($val);
  525. if (empty($userInfo)) {
  526. return $this->error('400213', '代理(id=' . $val . ')信息不存在');
  527. }
  528. $auth_code = $this->getAuthCode();
  529. $data['auth_code'] = $auth_code;
  530. $data['auth_startime'] = $input['auth_startime'];
  531. $data['auth_endtime'] = $input['auth_endtime'];
  532. User::where('id', $val)->update($data);
  533. $remark = '批量授权';
  534. $this->addAgentOperationLog('5', $val, $remark);
  535. }
  536. DB::commit();
  537. Log::info('管理员:' . Auth::user()->name . '(id=' . Auth::user()->id . ')授权代理信息成功,代理ids=' . json_encode($userId));
  538. return $this->success([], '授权成功');
  539. } catch (Exception $e) {
  540. DB::rollBack();
  541. return $this->error();
  542. }
  543. }
  544. // public function updateBatch($multipleData = [])
  545. // {
  546. // try {
  547. // if (empty($multipleData)) {
  548. // throw new \Exception("数据不能为空");
  549. // }
  550. // $tableName = DB::getTablePrefix() . $this->getTable(); // 表名
  551. // $firstRow = current($multipleData);
  552. // $updateColumn = array_keys($firstRow);
  553. // // 默认以id为条件更新,如果没有ID则以第一个字段为条件
  554. // $referenceColumn = isset($firstRow['id']) ? 'id' : current($updateColumn);
  555. // unset($updateColumn[0]);
  556. // // 拼接sql语句
  557. // $updateSql = "UPDATE " . $tableName . " SET ";
  558. // $sets = [];
  559. // $bindings = [];
  560. // foreach ($updateColumn as $uColumn) {
  561. // $setSql = "`" . $uColumn . "` = CASE ";
  562. // foreach ($multipleData as $data) {
  563. // $setSql .= "WHEN `" . $referenceColumn . "` = ? THEN ? ";
  564. // $bindings[] = $data[$referenceColumn];
  565. // $bindings[] = $data[$uColumn];
  566. // }
  567. // $setSql .= "ELSE `" . $uColumn . "` END ";
  568. // $sets[] = $setSql;
  569. // }
  570. // $updateSql .= implode(', ', $sets);
  571. // $whereIn = collect($multipleData)->pluck($referenceColumn)->values()->all();
  572. // $bindings = array_merge($bindings, $whereIn);
  573. // $whereIn = rtrim(str_repeat('?,', count($whereIn)), ',');
  574. // $updateSql = rtrim($updateSql, ", ") . " WHERE `" . $referenceColumn . "` IN (" . $whereIn . ")";
  575. // // 传入预处理sql语句和对应绑定数据
  576. // return DB::update($updateSql, $bindings);
  577. // } catch (\Exception $e) {
  578. // return false;
  579. // }
  580. // }
  581. // }
  582. //添加代理信息
  583. public function uploadUser(Request $request)
  584. {
  585. $input = $request->all();
  586. $rules = [
  587. 'mobile' => ['required',
  588. Rule::unique('users')->where(function ($query) {
  589. $query->where('deleted_at', null);
  590. }),
  591. 'regex:/^1[345789][0-9]{9}$/'],
  592. 'cre_num' => ['nullable',
  593. Rule::unique('users')->where(function ($query) {
  594. $query->where('deleted_at', null);
  595. })],
  596. 'share' => 'required | regex:/^1[345789][0-9]{9}$/',
  597. 'nickname' => 'required',
  598. 'level' => 'required | numeric',
  599. ];
  600. $uuu = new User();
  601. $validator = User::validator($input, $rules);
  602. if ($validator->fails()) {
  603. return $this->error('400013', $validator->errors()->first());
  604. }
  605. $idValidator = new IdValidator();
  606. if ($input['cre_num']) {
  607. if (!$idValidator->isValid($input['cre_num'])) {
  608. return $this->error('400013', '身份证号有误');
  609. }
  610. }
  611. $code = $this->getRandomString(6);
  612. $recom = User::where('mobile', $input['share'])->first();
  613. if (empty($recom)) {
  614. return $this->error('400115', '邀请人信息不存在');
  615. }
  616. if ($input['level'] == $recom->level) {
  617. $agent_id = $recom->agent_id;
  618. }
  619. if ($input['level'] < $recom->level) {
  620. $agent_id = $recom->id;
  621. }
  622. if ($input['level'] > $recom->level) {
  623. if ($input['level'] == '3') {
  624. $agent_id = '1';
  625. } else {
  626. $recom_up=User::find($recom->agent_id);
  627. if($recom_up->level=='2'){
  628. $agent_id = $recom_up->agent_id;
  629. }else{
  630. $agent_id = $recom_up->id;
  631. }
  632. }
  633. }
  634. $agent = User::where('id', $agent_id)->first();
  635. if ($agent->level == 3) {
  636. $crown_id = $agent->id;
  637. } elseif ($agent->level == 2) {
  638. $crown_id = $agent->agent_id;
  639. } else {
  640. $crown_id = '';
  641. }
  642. $warea_id = $recom->warea_id;
  643. // if($crown_id){
  644. // $warea_id=User::where('id',$crown_id)->value('warea_id');
  645. // }else{
  646. // $warea_id='';
  647. // }
  648. DB::beginTransaction();
  649. try {
  650. $data['mobile'] = $input['mobile'];
  651. $data['name'] = $input['nickname'];
  652. $data['nickname'] = $input['nickname'];
  653. $data['realname'] = $input['realname'];
  654. $data['password'] = MD5($input['mobile']);
  655. $data['cre_num'] = $input['cre_num'];
  656. $data['level'] = $input['level'];
  657. $data['headimgurl'] = 'https://img.bosszhipin.com/beijin/mcs/chatphoto/20181102/e0e8b50969101987a84f1643716b41ffcfcd208495d565ef66e7dff9f98764da.jpg';
  658. $data['status'] = 0;
  659. $data['cert_status'] = '6';
  660. $data['agent_id'] = $agent_id;
  661. $data['recom_id'] = $recom->id;
  662. $data['crown_id'] = $crown_id;
  663. $data['warea_id'] = $warea_id;
  664. $data['recom_code'] = $code;
  665. $data['auth_code'] = $this->getAuthCode();
  666. $data['auth_startime'] = date('Y-m-01 00:00:00');
  667. $data['auth_endtime'] = date('Y-m-01 00:00:00', strtotime('+1 years'));
  668. $data['register_type'] = '2';
  669. $row = User::create($data);
  670. $recoms['title'] = '新增成员推送';
  671. $recoms['type'] = '1';
  672. $recoms['data'] = '';
  673. $recoms['status'] = '0';
  674. $recoms['user_id'] = $row->recom_id;
  675. $recoms['agent_id'] = '1';
  676. Message::create($recoms);
  677. $agents['title'] = '新增成员推送';
  678. $agents['type'] = '1';
  679. $agents['data'] = '';
  680. $agents['status'] = '0';
  681. $agents['user_id'] = $row->agent_id;
  682. $agents['agent_id'] = '1';
  683. Message::create($agents);
  684. $after = ['id' => $row->id, 'nickname' => $row->nickname, 'mobile' => $row->mobile, 'level' => $row->level, 'recom_id' => $row->recom_id, 'recom_mobile' => $input['share'], 'agent_id' => $row->agent_id];
  685. $log = '添加代理成功,代理信息:' . json_encode($after, JSON_UNESCAPED_UNICODE);
  686. $this->addAgentOperationLog('1', $row->id, '', $log);
  687. if($input['level']==3){
  688. event(new AddAgent($row));
  689. }
  690. DB::commit();
  691. Log::info('管理员:' . Auth::user()->name . '(id=' . Auth::user()->id . ')添加' . $row->level . '级代理:' . $data['nickname'] . '(id=' . $row->id . ')成功,邀请人:' . $recom->nickname . '(id=' . $row->recom_id . ')');
  692. return $this->success([], '添加成功');
  693. } catch (Exception $e) {
  694. DB::rollBack();
  695. return $e->getMessage();
  696. return $this->error();
  697. }
  698. }
  699. /*授权码*/
  700. function getAuthCode()
  701. {
  702. $time = time();
  703. $three = mt_rand(100, 999);
  704. $res = date('ymd', $time);
  705. $re = mt_rand(10000000000, 99999999999);
  706. $data = 'DWBS00' . $three . $res . $re;
  707. return $data;
  708. }
  709. /* 随机字符串 邀请码*/
  710. function getRandomString($len, $chars = null)
  711. {
  712. if (is_null($chars)) {
  713. $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  714. }
  715. mt_srand(10000000 * (double)microtime());
  716. for ($i = 0, $str = '', $lc = strlen($chars) - 1; $i < $len; $i++) {
  717. $str .= $chars[mt_rand(0, $lc)];
  718. }
  719. $count = User::where('recom_code', $str)->count();
  720. if ($count > 0) {
  721. $this->getRandomString(6);
  722. } else {
  723. return $str;
  724. }
  725. }
  726. //修改手机号
  727. public function updateMobile(Request $request)
  728. {
  729. $input = $request->all();
  730. $rules = [
  731. 'mobile' => [
  732. 'required',
  733. Rule::unique('users')->ignore($input['id'], 'id')->where(function ($query) {
  734. $query->where('deleted_at', null);
  735. }),
  736. 'regex:/^1[345789][0-9]{9}$/'
  737. ],
  738. ];
  739. $uuu = new User();
  740. $validator = $uuu->validator($input, $rules);
  741. if ($validator->fails()) {
  742. return $this->error('400013', $validator->errors()->first());
  743. }
  744. $user = User::find($input['id']);
  745. $phone = $user->mobile;
  746. $user->mobile = $input['mobile'];
  747. //<<<<<<< HEAD
  748. DB::beginTransaction();
  749. $row = $user->save();
  750. $res = $this->addAgentOperationLog('6', $user->id);
  751. if ($row && $res) {
  752. DB::commit();
  753. Log::info('管理员:' . Auth::user()->name . '(id=' . Auth::user()->id . ')修改代理:' . $user->nickname . '(id=' . $user->id . ')手机号成功,原手机号:' . $phone . ',新手机号:' . $input['mobile']);
  754. return $this->success([], '修改成功');
  755. } else {
  756. DB::rollBack();
  757. return $this->error();
  758. }
  759. //=======
  760. // $row=$user->save();
  761. // if($row){
  762. // Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')修改代理:'.$user->nickname.'(id='.$user->id.')手机号成功,原手机号:'.$phone.',新手机号:'.$input['mobile']);
  763. // return $this->success([],'修改成功');
  764. // }
  765. // return $this->error();
  766. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  767. }
  768. //修改推荐人(如果该处皇冠团队,下级代理信息变更很严重)代理邀请人员后,或者成为上级后不能变更推荐人
  769. public function updateRecom(Request $request)
  770. {
  771. $input = $request->all();
  772. $rules = [
  773. 'mobile' => [
  774. 'required',
  775. 'regex:/^1[345789][0-9]{9}$/'
  776. ],
  777. 'remark' => ['required']
  778. ];
  779. $messages = [
  780. 'mobile.required' => '手机号不能为空.',
  781. 'mobile.regex' => '手机号格式有误.',
  782. 'remark.required' => '备注原因不能为空.'
  783. ];
  784. $uuu = new User();
  785. $validator = $uuu->validator($input, $rules, $messages);
  786. if ($validator->fails()) {
  787. return $this->error('400013', $validator->errors()->first());
  788. }
  789. $user = User::find($input['id']);//当前用户
  790. if ($user->recom_id) {
  791. $recom_id = $user->recom_id;
  792. } else {
  793. $recom_id = '暂无';
  794. }
  795. if ($user->agent_id) {
  796. $up_id = $user->agent_id;
  797. } else {
  798. $up_id = '暂无';
  799. }
  800. $agentCount = User::where(function ($query) use ($input) {
  801. $query->where('recom_id', '=', $input['id'])
  802. ->orWhere('agent_id', '=', $input['id']);
  803. })->count();
  804. //代理邀请人员后,或者成为上级后不能变更推荐人
  805. // if($agentCount>0){
  806. // return $this->error('400112','当前用户邀请人信息不能修改');
  807. // }
  808. $recomUser = User::where("mobile", $input['mobile'])->first();//新邀请人信息
  809. if (empty($recomUser)) {
  810. return $this->error('400115', '邀请人信息不存在');
  811. }
  812. if ($user->recom_id == $recomUser->id) {
  813. return $this->error('400111', '要更改的邀请人与当前邀请人相同');
  814. }
  815. if ($user->id == $recomUser->recom_id) {
  816. return $this->error('400116', '要更改的邀请人的邀请人为自己');
  817. }
  818. if ($user->id == $recomUser->id) {
  819. return $this->error('400116', '要更改的邀请人不能为自己');
  820. }
  821. $uuu = new User();
  822. $rechecking = $uuu->changeRecomSystem($input['id'], $input['mobile']);
  823. if ($rechecking == '222') {
  824. return $this->error('400116', '要更改的邀请人为当前代理邀请人系统体系内部成员');
  825. }
  826. DB::beginTransaction();
  827. try {
  828. if ($user->level == '3') {
  829. $user->recom_id = $recomUser->id;
  830. $user->agent_id = '1';
  831. $user->crown_id = '';
  832. if ($user->warea_id != $recomUser->warea_id) {
  833. $user->warea_id = $recomUser->warea_id;
  834. $one_agent = User::where('agent_id', $user->id)->pluck('id');
  835. if (count($one_agent) > 0) {
  836. User::whereIn('id', $one_agent)->update(['warea_id' => $recomUser->warea_id]);
  837. foreach ($one_agent as $key => $val) {
  838. $two_agent = User::where('agent_id', $val)->pluck('id');
  839. if (count($two_agent) > 0) {
  840. User::whereIn('id', $two_agent)->update(['warea_id' => $recomUser->warea_id]);
  841. }
  842. }
  843. }
  844. }
  845. } else {
  846. if ($recomUser->level == '3') {
  847. $user->recom_id = $recomUser->id;
  848. $user->agent_id = $recomUser->id;
  849. $user->crown_id = $recomUser->id;
  850. $user->warea_id = $recomUser->warea_id;
  851. if ($user->level == '2') {
  852. $uuu->changeAgentLevelInfoTwo($user->id, $recomUser->id);
  853. } elseif ($user->level == '1') {
  854. $uuu->changeAgentLevelInfoThree($user->id, $recomUser->id, $recomUser->id);
  855. }
  856. $uuu->changeAgentRecomCrown($user->id, $recomUser->id, $recomUser->warea_id);
  857. } elseif ($recomUser->level == '2') {
  858. if ($user->level == '2') {
  859. $user->recom_id = $recomUser->id;
  860. $user->agent_id = $recomUser->agent_id;
  861. $user->crown_id = $recomUser->crown_id;
  862. $user->warea_id = $recomUser->warea_id;
  863. $uuu->changeAgentLevelInfoTwo($user->id, $recomUser->agent_id);
  864. } elseif ($user->level == '1') {
  865. $user->recom_id = $recomUser->id;
  866. $user->agent_id = $recomUser->id;
  867. $user->crown_id = $recomUser->crown_id;
  868. $user->warea_id = $recomUser->warea_id;
  869. $uuu->changeAgentLevelInfoThree($user->id, $recomUser->agent_id, $recomUser->id);
  870. }
  871. $uuu->changeAgentRecomCrown($user->id, $recomUser->crown_id, $recomUser->warea_id);
  872. } elseif ($recomUser->level == '1') {
  873. $recomAgent = User::find($recomUser->agent_id);
  874. if ($user->level == '2') {
  875. $user->recom_id = $recomUser->id;
  876. $user->agent_id = $recomAgent->agent_id;
  877. $user->crown_id = $recomUser->crown_id;
  878. $user->warea_id = $recomUser->warea_id;
  879. $uuu->changeAgentLevelInfoTwo($user->id, $recomAgent->agent_id);
  880. } elseif ($user->level == '1') {
  881. $user->recom_id = $recomUser->id;
  882. $user->agent_id = $recomUser->agent_id;
  883. $user->crown_id = $recomUser->crown_id;
  884. $user->warea_id = $recomUser->warea_id;
  885. $uuu->changeAgentLevelInfoThree($user->id, $recomAgent->agent_id, $recomUser->agent_id);
  886. }
  887. $uuu->changeAgentRecomCrown($user->id, $recomUser->crown_id, $recomUser->warea_id);
  888. }
  889. }
  890. $row = $user->save();
  891. $remark = $input['remark'];
  892. $before = User::where('id', $recom_id)->select('id', 'nickname', 'mobile')->first();
  893. $after = ['id' => $recomUser->id, 'nickname' => $recomUser->nickname, 'mobile' => $recomUser->mobile];
  894. $log = '变更前邀请人:' . json_encode($before, JSON_UNESCAPED_UNICODE) . ',变更后邀请人:' . json_encode($after, JSON_UNESCAPED_UNICODE);
  895. $this->addAgentOperationLog('3', $user->id, $remark, $log);
  896. event(new ChangeRecom($user));
  897. DB::commit();
  898. // if($row){
  899. Log::info('管理员:' . Auth::user()->name . '(id=' . Auth::user()->id . ')修改代理:' . $user->nickname . '(id=' . $user->id . ')邀请人成功,原邀请人id=' . $recom_id . ',原上级id=' . $up_id . ',新邀请人:' . $recomUser->nickname . '(id=' . $recomUser->id . ')');
  900. return $this->success([]);
  901. // }
  902. // return $this->success([],'修改成功');
  903. } catch (Exception $e) {
  904. // return $e;
  905. //=======
  906. // if($user->level=='3'){
  907. // $user->recom_id=$recomUser->id;
  908. // $user->agent_id='1';
  909. // $user->crown_id='';
  910. // $user->warea_id='';
  911. // }else{
  912. // if($recomUser->level=='3'){
  913. // $user->recom_id=$recomUser->id;
  914. // $user->agent_id=$recomUser->id;
  915. // $user->crown_id=$recomUser->id;
  916. // $user->warea_id=$recomUser->warea_id;
  917. // if($user->level=='2'){
  918. // $uuu->changeAgentLevelInfoTwo($user->id,$recomUser->id);
  919. // }elseif($user->level=='1'){
  920. // $uuu->changeAgentLevelInfoThree($user->id,$recomUser->id,$recomUser->id);
  921. // }
  922. // $uuu->changeAgentRecomCrown($user->id,$recomUser->id,$recomUser->warea_id);
  923. // }elseif($recomUser->level=='2'){
  924. // if($user->level=='2'){
  925. // $user->recom_id=$recomUser->id;
  926. // $user->agent_id=$recomUser->agent_id;
  927. // $user->crown_id=$recomUser->crown_id;
  928. // $user->warea_id=$recomUser->warea_id;
  929. // $uuu->changeAgentLevelInfoTwo($user->id,$recomUser->agent_id);
  930. // }elseif ($user->level=='1'){
  931. // $user->recom_id=$recomUser->id;
  932. // $user->agent_id=$recomUser->id;
  933. // $user->crown_id=$recomUser->crown_id;
  934. // $user->warea_id=$recomUser->warea_id;
  935. // $uuu->changeAgentLevelInfoThree($user->id,$recomUser->agent_id,$recomUser->id);
  936. // }
  937. // $uuu->changeAgentRecomCrown($user->id,$recomUser->crown_id,$recomUser->warea_id);
  938. // }elseif($recomUser->level=='1'){
  939. // $recomAgent=User::find($recomUser->agent_id);
  940. // if($user->level=='2'){
  941. // $user->recom_id=$recomUser->id;
  942. // $user->agent_id=$recomAgent->agent_id;
  943. // $user->crown_id=$recomUser->crown_id;
  944. // $user->warea_id=$recomUser->warea_id;
  945. // $uuu->changeAgentLevelInfoTwo($user->id,$recomAgent->agent_id);
  946. // }elseif ($user->level=='1'){
  947. // $user->recom_id=$recomUser->id;
  948. // $user->agent_id=$recomUser->agent_id;
  949. // $user->crown_id=$recomUser->crown_id;
  950. // $user->warea_id=$recomUser->warea_id;
  951. // $uuu->changeAgentLevelInfoThree($user->id,$recomAgent->agent_id,$recomUser->agent_id);
  952. // }
  953. // $uuu->changeAgentRecomCrown($user->id,$recomUser->crown_id,$recomUser->warea_id);
  954. // }
  955. // }
  956. // $row=$user->save();
  957. // DB::commit();
  958. // if($row){
  959. // Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')修改代理:'.$user->nickname.'(id='.$user->id.')邀请人成功,原邀请人id='.$recom_id.',原上级id='.$up_id.',新邀请人:'.$recomUser->nickname.'(id='.$recomUser->id.')');
  960. // return $this->success([]);
  961. // }
  962. // return $this->success([],'修改成功');
  963. // }catch(Exception $e) {
  964. // return $e;
  965. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  966. DB::rollBack();
  967. return $this->error();
  968. }
  969. // if($user->level==$recomUser->level){ //特级-》特级 顶级-》顶级 皇冠-》皇冠
  970. // $user->agent_id=$recomUser->agent_id;
  971. // }
  972. // if($user->level<$recomUser->level){ //皇冠-》顶级 皇冠-》特级 顶级-》特级
  973. // $user->agent_id=$recomUser->id;
  974. // }
  975. // if($user->level>$recomUser->level){ // 特级-》顶级 特级-》皇冠 顶级-》皇冠
  976. // if($user->level=='3'){//如果当前用户为皇冠 特级-》皇冠 顶级-》皇冠
  977. // $user->agent_id='1';
  978. // }else{ // 特级-》顶级
  979. // $topUser=User::find($recomUser->agent_id);//邀请人上级
  980. // if($topUser->level=='3'){//邀请人上级为皇冠
  981. // $user->agent_id=$topUser->id;
  982. // }else{//邀请人上级不为皇冠
  983. // $user->agent_id=$topUser->agent_id;
  984. // }
  985. // }
  986. // }
  987. }
  988. //代理升降级
  989. public function updateAgentLevel(Request $request)
  990. {
  991. $input = $request->all();
  992. $user = User::find($input['id']);
  993. $before_level=$user->level;
  994. $user_level=$user->level;
  995. if ($user->level==3 && $input['level']<$user->level){
  996. if ($user->money>0){
  997. return $this->error(400124,'代理公司账户中还存有余额,请将余额归零后降级');
  998. }
  999. }
  1000. if ($user->recom_id == '1') {
  1001. return $this->error('400116', '邀请人为公司的代理不能变更等级');
  1002. }
  1003. $recom = User::find($user->recom_id);//邀请人信息
  1004. if (empty($recom)) {
  1005. return $this->error('400115', '代理邀请人信息不存在,升降级失败');
  1006. }
  1007. $uuu = new User();
  1008. DB::beginTransaction();
  1009. try {
  1010. $res = $uuu->changeAgentLevel($user, $input['level']);
  1011. $message['title'] = '代理等级变更推送';
  1012. $message['data'] = '下级代理' . $input['id'] . '已升级';
  1013. $message['type'] = '1';
  1014. $message['status'] = '0';
  1015. $message['user_id'] = $user->agent_id;
  1016. $message['agent_id'] = '1';
  1017. Message::create($message);
  1018. if ($user_level == 1) {
  1019. $before = '销售主管';
  1020. } elseif ($user_level == 2) {
  1021. $before = '销售经理';
  1022. } elseif ($user_level == 3) {
  1023. $before = '代理公司';
  1024. } else {
  1025. $before = '无效等级';
  1026. }
  1027. if ($input['level'] == 1) {
  1028. $after = '销售主管';
  1029. } elseif ($input['level'] == 2) {
  1030. $after = '销售经理';
  1031. } elseif ($input['level'] == 3) {
  1032. $after = '代理公司';
  1033. } else {
  1034. $after = '无效等级';
  1035. }
  1036. if ($input['level'] > $user->level) {
  1037. $remark = '升级';
  1038. $log = '(升级)变更前等级:' . $before . ',变更后等级:' . $after;
  1039. } elseif ($input['level'] < $user->level) {
  1040. $remark = '降级';
  1041. $log = '(降级)变更前等级:' . $before . ',变更后等级:' . $after;
  1042. } else {
  1043. $remark = '等级变更错误';
  1044. $log = '';
  1045. }
  1046. $result=User::find($input['id']);
  1047. $result->before=$before_level;
  1048. event(new ChangeUserLevel($result));
  1049. $this->addAgentOperationLog('2', $user->id, $remark, $log);
  1050. Log::info('代理:' . $user->nickname . '(id=' . $user->id . ')等级变更成功,原推荐人id为:' . $user->recom_id . '原上级id为:' . $user->agent_id);
  1051. Log::info('管理员:' . Auth::user()->name . '(id=' . Auth::user()->id . ')修改代理:' . $user->nickname . '(id=' . $user->id . ')等级成功,原等级:' . $user->level . ',新等级:' . $input['level']);
  1052. DB::commit();
  1053. return $this->success([]);
  1054. } catch (Exception $e) {
  1055. DB::rollBack();
  1056. return $e->getMessage();
  1057. Log::info($e->getMessage()) ;
  1058. return $this->error();
  1059. }
  1060. }
  1061. //皇冠战区选择
  1062. public function crownSelectWarea(Request $request)
  1063. {
  1064. $input = $request->all();
  1065. $user_id = $input['id'];
  1066. $warea_id = $input['wid'];
  1067. $user = User::where('id', $user_id)->first();
  1068. $before_war=$user->warea_id;
  1069. if ($warea_id == $user->warea_id) {
  1070. return $this->error('450001', '不能选择当前所在战区');
  1071. }
  1072. $before = Warea::where('id', $user->warea_id)->select('id', 'name', 'admin_name')->first();
  1073. DB::beginTransaction();
  1074. try {
  1075. $user->warea_id = $warea_id;
  1076. $user->save();
  1077. $one_agent = User::where('agent_id', $user_id)->pluck('id');
  1078. if (count($one_agent) > 0) {
  1079. User::whereIn('id', $one_agent)->update(['warea_id' => $warea_id]);
  1080. foreach ($one_agent as $key => $val) {
  1081. $two_agent = User::where('agent_id', $val)->pluck('id');
  1082. if (count($two_agent) > 0) {
  1083. User::whereIn('id', $two_agent)->update(['warea_id' => $warea_id]);
  1084. }
  1085. }
  1086. }
  1087. $after = Warea::where('id', $warea_id)->select('id', 'name', 'admin_name')->first();
  1088. $log = '代理公司战区修改成功,修改前战区信息:' . json_encode($before, JSON_UNESCAPED_UNICODE) . ',修改后战区信息:' . json_encode($after, JSON_UNESCAPED_UNICODE);
  1089. $this->addAgentOperationLog('7', $user_id, '', $log);
  1090. $user->before=$before_war;
  1091. event(new ChangeUserWar($user));
  1092. DB::commit();
  1093. return $this->success([]);
  1094. } catch (Exception $e) {
  1095. DB::rollBack();
  1096. return $this->error($e->getMessage());
  1097. }
  1098. }
  1099. /*后台审核*/
  1100. public function certUserStatus(Request $request)
  1101. {
  1102. $input = $request->all();
  1103. $user = User::find($input['id']);
  1104. $usercert = UserCert::where('user_id', $input['id'])->first();
  1105. if (empty($usercert)) {//判断user_cert表信息是否存在,不存在则创建
  1106. $userC = new UserCert;
  1107. $d['user_id'] = $input['id'];
  1108. $d['recom_id'] = $user->recom_id;
  1109. $userC->create($d);
  1110. }
  1111. $recom = User::find($user->recom_id);//邀请人信息
  1112. $remark = '';
  1113. if ($input['type'] == 1) {
  1114. if ($input['level'] == '3') {//皇冠
  1115. $data['agent_id'] = '1';
  1116. $user->agent_id = '1';
  1117. $user->crown_id = '';
  1118. $user->warea_id = '';
  1119. //<<<<<<< HEAD
  1120. } else {
  1121. if ($recom->level > $input['level']) {//邀请人等级 > 代理等级
  1122. $data['agent_id'] = $recom->id;
  1123. $user->agent_id = $recom->id;
  1124. if ($recom->level == '3') {
  1125. //=======
  1126. // }else{
  1127. // if($recom->level>$input['level']){//邀请人等级 > 代理等级
  1128. // $data['agent_id']=$recom->id;
  1129. // $user->agent_id=$recom->id;
  1130. // if($recom->level=='3'){
  1131. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  1132. $user->crown_id = $recom->id;
  1133. } else {
  1134. $user->crown_id = $recom->crown_id;
  1135. }
  1136. $user->warea_id = $recom->warea_id;
  1137. //<<<<<<< HEAD
  1138. }
  1139. if ($recom->level == $input['level']) {//邀请人等级 = 代理等级
  1140. $data['agent_id'] = $recom->agent_id;
  1141. $user->agent_id = $recom->agent_id;
  1142. $user->crown_id = $recom->crown_id;
  1143. $user->warea_id = $recom->warea_id;
  1144. }
  1145. if ($recom->level < $input['level']) {//邀请人等级 < 代理等级
  1146. if ($recom->agent_id == '3') {
  1147. $data['agent_id'] = $recom->agent_id;
  1148. $user->agent_id = $recom->agent_id;
  1149. $user->crown_id = $recom->crown_id;
  1150. $user->warea_id = $recom->warea_id;
  1151. } else {
  1152. $agent = User::find($recom->agent_id);//邀请人上级代理信息
  1153. $data['agent_id'] = $agent->agent_id;
  1154. $user->agent_id = $agent->agent_id;
  1155. $user->crown_id = $recom->crown_id;
  1156. $user->warea_id = $recom->warea_id;
  1157. }
  1158. }
  1159. }
  1160. $data['recom_audit'] = $input['status'];
  1161. $data['recom_audit_desc'] = $input['remark'] ? $input['remark'] : '';
  1162. $data['recom_updated_at'] = date("Y-m-d H:i:s");
  1163. DB::beginTransaction();
  1164. try {
  1165. if ($input['status'] == '1') {//通过
  1166. $user->cert_status = '2'; //邀请人通过
  1167. $user->level = $input['level'];
  1168. $user->save();
  1169. $remark = '邀请人审核通过';
  1170. } elseif ($input['status'] == '2') {//驳回
  1171. $user->cert_status = '4'; //邀请人驳回
  1172. $user->save();
  1173. $remark = '邀请人审核驳回';
  1174. }
  1175. UserCert::where('user_id', $input['id'])->update($data);
  1176. $this->addAgentOperationLog('8', $user->id, $remark);
  1177. DB::commit();
  1178. return $this->success([]);
  1179. } catch (Exception $e) {
  1180. DB::rollBack();
  1181. return $this->error();
  1182. }
  1183. } else {
  1184. DB::beginTransaction();
  1185. try {
  1186. $data['agent_audit'] = $input['status'];
  1187. $data['agent_audit_desc'] = $input['remark'] ? $input['remark'] : '';
  1188. $data['agent_updated_at'] = date("Y-m-d H:i:s");
  1189. $userCert = UserCert::where('user_id', $input['id'])->where('recom_audit', '1')->first();
  1190. if ($userCert && $input['status'] == '1') {
  1191. $user->cert_status = '3';
  1192. $user->auth_code = $this->getAuthCode();
  1193. $user->auth_startime = date("Y-m-01 00:00:00");
  1194. $user->auth_endtime = date("Y-m-01 00:00:00", strtotime("+1 years"));
  1195. $user->save();
  1196. $remark = '上级审核通过';
  1197. } elseif ($userCert && $input['status'] == '2') {
  1198. $user->cert_status = '5';
  1199. $user->save();
  1200. $remark = '上级审核驳回';
  1201. }
  1202. $userCert->update($data);
  1203. $this->addAgentOperationLog('8', $user->id, $remark);
  1204. Log::info('管理员:' . Auth::user()->name . '(id=' . Auth::user()->id . ')审核代理:' . $user->nickname . '(id=' . $user->id . ')成功,审核状态:' . $user->cert_status);
  1205. DB::commit();
  1206. return $this->success([]);
  1207. } catch (Exception $e) {
  1208. DB::rollBack();
  1209. return $this->error();
  1210. }
  1211. }
  1212. //=======
  1213. // }
  1214. // if($recom->level==$input['level']){//邀请人等级 = 代理等级
  1215. // $data['agent_id']=$recom->agent_id;
  1216. // $user->agent_id=$recom->agent_id;
  1217. // $user->crown_id=$recom->crown_id;
  1218. // $user->warea_id=$recom->warea_id;
  1219. // }
  1220. // if($recom->level<$input['level']){//邀请人等级 < 代理等级
  1221. // if($recom->agent_id=='3'){
  1222. // $data['agent_id']=$recom->agent_id;
  1223. // $user->agent_id=$recom->agent_id;
  1224. // $user->crown_id=$recom->crown_id;
  1225. // $user->warea_id=$recom->warea_id;
  1226. // }else{
  1227. // $agent=User::find($recom->agent_id);//邀请人上级代理信息
  1228. // $data['agent_id']=$agent->agent_id;
  1229. // $user->agent_id=$agent->agent_id;
  1230. // $user->crown_id=$recom->crown_id;
  1231. // $user->warea_id=$recom->warea_id;
  1232. // }
  1233. // }
  1234. // }
  1235. // $data['recom_audit']=$input['status'];
  1236. // $data['recom_audit_desc']=$input['remark']?$input['remark']:'';
  1237. // $data['recom_updated_at']=date("Y-m-d H:i:s");
  1238. // DB::beginTransaction();
  1239. // try{
  1240. // if($input['status']=='1'){//通过
  1241. // $user->cert_status='2'; //邀请人通过
  1242. // $user->level=$input['level'];
  1243. // $user->save();
  1244. // }elseif($input['status']=='2'){//驳回
  1245. // $user->cert_status='4'; //邀请人驳回
  1246. // $user->save();
  1247. // }
  1248. // UserCert::where('user_id',$input['id'])->update($data);
  1249. // DB::commit();
  1250. // return $this->success([]);
  1251. // }catch(Exception $e) {
  1252. // DB::rollBack();
  1253. // return $this->error();
  1254. // }
  1255. // }else{
  1256. // DB::beginTransaction();
  1257. // try{
  1258. // $data['agent_audit']=$input['status'];
  1259. // $data['agent_audit_desc']=$input['remark']?$input['remark']:'';
  1260. // $data['agent_updated_at']=date("Y-m-d H:i:s");
  1261. // $userCert=UserCert::where('user_id',$input['id'])->where('recom_audit','1')->first();
  1262. // if($userCert && $input['status']=='1'){
  1263. // $user->cert_status='3';
  1264. // $user->auth_code=$this->getAuthCode();
  1265. // $user->auth_startime=date("Y-m-01 00:00:00");
  1266. // $user->auth_endtime=date("Y-m-01 00:00:00",strtotime("+1 years"));
  1267. // $user->save();
  1268. // }elseif($userCert && $input['status']=='2'){
  1269. // $user->cert_status='5';
  1270. // $user->save();
  1271. // }
  1272. // $userCert->update($data);
  1273. // Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')审核代理:'.$user->nickname.'(id='.$user->id.')成功,审核状态:'.$user->cert_status);
  1274. // DB::commit();
  1275. // return $this->success([]);
  1276. // }catch(Exception $e) {
  1277. // DB::rollBack();
  1278. // return $this->error();
  1279. // }
  1280. // }
  1281. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  1282. }
  1283. /*后台批量审核*/
  1284. public function certUserStatus_all(Request $request)
  1285. {
  1286. $input = $request->all();
  1287. foreach ($input['list'] as $k => $v) {
  1288. $user = User::find($v['id']);
  1289. $usercert = UserCert::where('user_id', $v['id'])->first();
  1290. if (empty($usercert)) {//判断user_cert表信息是否存在,不存在则创建
  1291. $userC = new UserCert;
  1292. $d['user_id'] = $v['id'];
  1293. $d['recom_id'] = $user->recom_id;
  1294. $userC->create($d);
  1295. }
  1296. $recom = User::find($user->recom_id);//邀请人信息
  1297. if ($v['type'] == 1) {
  1298. if ($v['level'] == '3') {//皇冠
  1299. $data['agent_id'] = '1';
  1300. $user->agent_id = '1';
  1301. $user->crown_id = '';
  1302. $user->warea_id = '';
  1303. } else {
  1304. if ($recom->level > $v['level']) {//邀请人等级 > 代理等级
  1305. $data['agent_id'] = $recom->id;
  1306. $user->agent_id = $recom->id;
  1307. if ($recom->level == '3') {
  1308. $user->crown_id = $recom->id;
  1309. } else {
  1310. $user->crown_id = $recom->crown_id;
  1311. }
  1312. $user->warea_id = $recom->warea_id;
  1313. }
  1314. if ($recom->level == $v['level']) {//邀请人等级 = 代理等级
  1315. $data['agent_id'] = $recom->agent_id;
  1316. $user->agent_id = $recom->agent_id;
  1317. $user->crown_id = $recom->crown_id;
  1318. $user->warea_id = $recom->warea_id;
  1319. }
  1320. if ($recom->level < $v['level']) {//邀请人等级 < 代理等级
  1321. if ($recom->agent_id == '3') {
  1322. $data['agent_id'] = $recom->agent_id;
  1323. $user->agent_id = $recom->agent_id;
  1324. $user->crown_id = $recom->crown_id;
  1325. $user->warea_id = $recom->warea_id;
  1326. } else {
  1327. $agent = User::find($recom->agent_id);//邀请人上级代理信息
  1328. $data['agent_id'] = $agent->agent_id;
  1329. $user->agent_id = $agent->agent_id;
  1330. $user->crown_id = $recom->crown_id;
  1331. $user->warea_id = $recom->warea_id;
  1332. }
  1333. }
  1334. }
  1335. $data['recom_audit'] = $v['status'];
  1336. $data['recom_audit_desc'] = $v['remark'] ? $v['remark'] : '';
  1337. $data['recom_updated_at'] = date("Y-m-d H:i:s");
  1338. DB::beginTransaction();
  1339. try {
  1340. if ($v['status'] == '1') {//通过
  1341. $user->cert_status = '2'; //邀请人通过
  1342. $user->level = $v['level'];
  1343. $user->save();
  1344. //<<<<<<< HEAD
  1345. $remark = '邀请人批量审核通过';
  1346. } elseif ($v['status'] == '2') {//驳回
  1347. $user->cert_status = '4'; //邀请人驳回
  1348. $user->save();
  1349. $remark = '邀请人批量审核驳回';
  1350. }
  1351. UserCert::where('user_id', $v['id'])->update($data);
  1352. $this->addAgentOperationLog('8', $user->id, $remark);
  1353. //=======
  1354. // }elseif($v['status']=='2'){//驳回
  1355. // $user->cert_status='4'; //邀请人驳回
  1356. // $user->save();
  1357. // }
  1358. // UserCert::where('user_id',$v['id'])->update($data);
  1359. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  1360. DB::commit();
  1361. // return $this->success([]);
  1362. } catch (Exception $e) {
  1363. DB::rollBack();
  1364. // return $this->error();
  1365. }
  1366. } else {
  1367. DB::beginTransaction();
  1368. try {
  1369. $data['agent_audit'] = $v['status'];
  1370. $data['agent_audit_desc'] = $v['remark'] ? $v['remark'] : '';
  1371. $data['agent_updated_at'] = date("Y-m-d H:i:s");
  1372. $userCert = UserCert::where('user_id', $v['id'])->where('recom_audit', '1')->first();
  1373. if ($userCert && $v['status'] == '1') {
  1374. $user->cert_status = '3';
  1375. $user->auth_code = $this->getAuthCode();
  1376. $user->auth_startime = date("Y-m-01 00:00:00");
  1377. $user->auth_endtime = date("Y-m-01 00:00:00", strtotime("+1 years"));
  1378. $user->save();
  1379. $remark = '上级批量审核通过';
  1380. } elseif ($userCert && $v['status'] == '2') {
  1381. $user->cert_status = '5';
  1382. $user->save();
  1383. $remark = '上级批量审核驳回';
  1384. }
  1385. $this->addAgentOperationLog('8', $user->id, $remark);
  1386. $userCert->update($data);
  1387. Log::info('管理员:' . Auth::user()->name . '(id=' . Auth::user()->id . ')审核代理:' . $user->nickname . '(id=' . $user->id . ')成功,审核状态:' . $user->cert_status);
  1388. DB::commit();
  1389. // return $this->success([]);
  1390. } catch (Exception $e) {
  1391. DB::rollBack();
  1392. // return $this->error();
  1393. }
  1394. }
  1395. }
  1396. return $this->success([]);
  1397. }
  1398. //邀请人重新审核
  1399. public function againCertRecomStatus(Request $request)
  1400. {
  1401. $input = $request->all();
  1402. $user = User::find($input['id']);
  1403. $userCert = UserCert::where('user_id', $input['id'])->first();
  1404. if ($input['type'] == '1') {//通过
  1405. $user->level = $input['level'];
  1406. $recom = User::find($user->recom_id);
  1407. if ($input['level'] == '3') {//皇冠
  1408. $user->agent_id = '1';
  1409. $user->crown_id = '';
  1410. $user->warea_id = '';
  1411. $userCert->agent_id = '1';
  1412. } else {
  1413. if ($recom->level > $input['level']) {//邀请人等级 > 代理等级
  1414. $user->agent_id = $recom->id;
  1415. if ($recom->level == '3') {
  1416. $user->crown_id = $recom->id;
  1417. } else {
  1418. $user->crown_id = $recom->crown_id;
  1419. }
  1420. $user->warea_id = $recom->warea_id;
  1421. $userCert->agent_id = $recom->id;
  1422. }
  1423. if ($recom->level == $input['level']) {//邀请人等级 = 代理等级
  1424. $user->agent_id = $recom->agent_id;
  1425. $user->crown_id = $recom->crown_id;
  1426. $user->warea_id = $recom->warea_id;
  1427. $userCert->agent_id = $recom->agent_id;
  1428. }
  1429. if ($recom->level < $input['level']) {//邀请人等级 < 代理等级
  1430. if ($recom->agent_id == '3') {
  1431. $user->agent_id = $recom->agent_id;
  1432. $user->crown_id = $recom->crown_id;
  1433. $user->warea_id = $recom->warea_id;
  1434. $userCert->agent_id = $recom->agent_id;
  1435. } else {
  1436. $agent = User::find($recom->agent_id);//邀请人上级代理信息
  1437. $user->agent_id = $agent->agent_id;
  1438. $user->crown_id = $recom->crown_id;
  1439. $user->warea_id = $recom->warea_id;
  1440. $userCert->agent_id = $agent->agent_id;
  1441. }
  1442. }
  1443. }
  1444. $userCert->recom_id = $user->recom_id;
  1445. $userCert->recom_audit = '1';
  1446. $userCert->recom_audit_desc = '';
  1447. $userCert->agent_audit = '0';
  1448. $userCert->agent_audit_desc = '';
  1449. $userCert->recom_updated_at = date("Y-m-d H:i:s");
  1450. $user->cert_status = '2';
  1451. $remark = '邀请人重新审核通过';
  1452. } elseif ($input['type'] == '2') {//驳回
  1453. $userCert->recom_id = $user->recom_id;
  1454. $userCert->agent_id = $user->agent_id;
  1455. $userCert->recom_audit = '2';
  1456. $userCert->recom_audit_desc = $input['desc'];
  1457. $userCert->agent_audit = '0';
  1458. $userCert->agent_audit_desc = '';
  1459. $userCert->recom_updated_at = date("Y-m-d H:i:s");
  1460. $user->cert_status = '4';
  1461. $remark = '邀请人重新审核驳回';
  1462. }
  1463. DB::beginTransaction();
  1464. try {
  1465. $this->addAgentOperationLog('8', $user->id, $remark);
  1466. $userCert->save();
  1467. $user->save();
  1468. Log::info('管理员:' . Auth::user()->name . '(id=' . Auth::user()->id . ')重新审核代理:' . $user->nickname . '(id=' . $user->id . ')成功,审核状态:' . $user->cert_status);
  1469. DB::commit();
  1470. return $this->success([]);
  1471. } catch (Exception $e) {
  1472. DB::rollBack();
  1473. return $this->error();
  1474. }
  1475. }
  1476. //上级重新审核
  1477. //=======
  1478. // }
  1479. // $row=$userCert->save();
  1480. // $rows=$user->save();
  1481. // if($row && $rows){
  1482. // Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')重新审核代理:'.$user->nickname.'(id='.$user->id.')成功,审核状态:'.$user->cert_status);
  1483. // DB::commit();
  1484. // return $this->success([]);
  1485. // }else{
  1486. // DB::rollBack();
  1487. // return $this->error();
  1488. // }
  1489. // }
  1490. // //上级重新审核
  1491. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  1492. public function againCertAgentStatus(Request $request)
  1493. {
  1494. $input = $request->all();
  1495. $user = User::find($input['id']);
  1496. $userCert = UserCert::where('user_id', $input['id'])->first();
  1497. if ($input['type'] == '1') {//通过
  1498. $userCert->agent_audit = '1';
  1499. $userCert->agent_audit_desc = '';
  1500. $userCert->agent_updated_at = date("Y-m-d H:i:s");
  1501. $user->cert_status = '3';
  1502. $user->auth_code = $this->getAuthCode();
  1503. $user->auth_startime = date("Y-m-01 00:00:00");
  1504. $user->auth_endtime = date("Y-m-01 00:00:00", strtotime("+1 years"));
  1505. //<<<<<<< HEAD
  1506. $remark = '上级重新审核通过';
  1507. //=======
  1508. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  1509. } elseif ($input['type'] == '2') {//驳回
  1510. $userCert->agent_audit = '2';
  1511. $userCert->agent_audit_desc = $input['desc'];
  1512. $userCert->agent_updated_at = date("Y-m-d H:i:s");
  1513. $user->cert_status = '5';
  1514. //<<<<<<< HEAD
  1515. $remark = '上级重新审核驳回';
  1516. }
  1517. DB::beginTransaction();
  1518. try {
  1519. $this->addAgentOperationLog('8', $user->id, $remark);
  1520. $userCert->save();
  1521. $user->save();
  1522. Log::info('管理员:' . Auth::user()->name . '(id=' . Auth::user()->id . ')重新审核代理:' . $user->nickname . '(id=' . $user->id . ')成功,审核状态:' . $user->cert_status);
  1523. DB::commit();
  1524. return $this->success([]);
  1525. } catch (Exception $e) {
  1526. //=======
  1527. // }
  1528. // $row=$userCert->save();
  1529. // $rows=$user->save();
  1530. // if($row && $rows){
  1531. // Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')重新审核代理:'.$user->nickname.'(id='.$user->id.')成功,审核状态:'.$user->cert_status);
  1532. // DB::commit();
  1533. // return $this->success([]);
  1534. // }else{
  1535. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  1536. DB::rollBack();
  1537. return $this->error();
  1538. }
  1539. }
  1540. /*代理库存*/
  1541. public function getAgentGoodsNum(Request $request)
  1542. {
  1543. $input = $request->all();
  1544. $goodstotal = DB::table('goods_sku_agent_total as goodsNum')->where('goodsNum.user_id', $input['id'])
  1545. ->select('goods.name', 'goods.img_url', 'goods.tjprice', 'goods.djprice', 'goods.hgprice', DB::raw('SUM(goodsNum.total) as account'))
  1546. ->leftJoin('users', 'users.id', '=', 'goodsNum.user_id')
  1547. ->leftJoin('goods', 'goods.id', '=', 'goodsNum.goods_id')
  1548. ->groupBy('goodsNum.goods_id')
  1549. ->get();
  1550. if ($goodstotal) {
  1551. return $this->success($goodstotal);
  1552. }
  1553. return $this->error();
  1554. }
  1555. /* 用户禁用/启用 */
  1556. public function shelvedUser(Request $request)
  1557. {
  1558. $user = User::find($request->post('id'));
  1559. $status = ($user->status == 0) ? '启用' : '禁用';
  1560. $user->status = ($user->status == 0) ? '1' : '0';
  1561. //<<<<<<< HEAD
  1562. DB::beginTransaction();
  1563. $row = $user->save();
  1564. if ($user->status == 0) {
  1565. $remark = '启用';
  1566. } else {
  1567. $remark = '禁用';
  1568. }
  1569. $res = $this->addAgentOperationLog('10', $user->id, $remark);
  1570. event(new ShelvedAgent($user));
  1571. if ($row && $res) {
  1572. DB::commit();
  1573. Log::info('管理员:' . Auth::user()->name . '(id=' . Auth::user()->id . ')' . $status . '代理:' . $user->nickname . '(id=' . $user->id . ')成功');
  1574. return $this->success([]);
  1575. }
  1576. DB::rollBack();
  1577. //=======
  1578. // $row=$user->save();
  1579. // if($row){
  1580. // Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')'.$status.'代理:'.$user->nickname.'(id='.$user->id.')成功');
  1581. // return $this->success([]);
  1582. // }
  1583. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  1584. return $this->error();
  1585. }
  1586. //删除用户
  1587. public function destoryUser(Request $request)
  1588. {
  1589. $input = $request->all();
  1590. $user = User::find($input['id']);
  1591. $recom = User::find($user->recom_id);//代理邀请人信息
  1592. if (!$recom) {
  1593. return $this->error('400111', '该代理邀请人信息有误,不能删除');
  1594. }
  1595. //获取代理邀请的人
  1596. $recomed=User::where('recom_id',$input['id'])->pluck('id');
  1597. $agented=User::where('agent_id',$input['id'])->pluck('id');
  1598. //获取代理下级信息
  1599. DB::beginTransaction();
  1600. $userInfo=User::where('id',$input['id'])->first();
  1601. event(new DeleteAgent($userInfo));
  1602. try {
  1603. if ($user->level == '3') {
  1604. if ($recom->level == '3') {//邀请人等级信息
  1605. User::where('agent_id', $input['id'])->update(['agent_id' => $recom->id]);
  1606. User::where('recom_id', $input['id'])->update(['recom_id' => $recom->id]);
  1607. User::where('crown_id', $input['id'])->update(['crown_id' => $recom->id, 'warea_id' => $recom->warea_id]);
  1608. } elseif ($recom->level == '2') {
  1609. User::where('agent_id', $input['id'])->where('level', 2)->update(['agent_id' => $recom->agent_id]);
  1610. User::where('agent_id', $input['id'])->where('level', 1)->update(['agent_id' => $recom->id]);
  1611. User::where('recom_id', $input['id'])->update(['recom_id' => $recom->id]);
  1612. $recom_agent = User::where('id', $recom->agent_id)->first();
  1613. User::where('crown_id', $input['id'])->update(['crown_id' => $recom_agent->id, 'warea_id' => $recom_agent->warea_id]);
  1614. } elseif ($recom->level == '1') {
  1615. $upRecom = User::find($recom->agent_id);//代理邀请人上级信息
  1616. if (!$upRecom) {
  1617. return $this->error('400112', '该代理邀请人上级信息有误,不能删除');
  1618. }
  1619. User::where('agent_id', $input['id'])->where('level', 1)->update(['agent_id' => $upRecom->id]);
  1620. User::where('agent_id', $input['id'])->where('level', 2)->update(['agent_id' => $upRecom->agent_id]);
  1621. User::where('recom_id', $input['id'])->update(['recom_id' => $recom->id]);
  1622. $recom_agent = User::where('id', $upRecom->agent_id)->first();
  1623. User::where('crown_id', $input['id'])->update(['crown_id' => $upRecom->agent_id, 'warea_id' => $recom_agent->warea_id]);
  1624. }
  1625. } elseif ($user->level == '2') {
  1626. if ($recom->level == '3' || $recom->level == '2') {
  1627. User::where('agent_id', $input['id'])->update(['agent_id' => $recom->id]);
  1628. } elseif ($recom->level == '1') {
  1629. User::where('agent_id', $input['id'])->update(['agent_id' => $recom->agent_id]);
  1630. }
  1631. User::where('recom_id', $input['id'])->update(['recom_id' => $user->recom_id]);
  1632. } elseif ($user->level == '1') {
  1633. User::where('recom_id', $input['id'])->update(['recom_id' => $user->recom_id]);
  1634. }
  1635. $user->delete();
  1636. $remark = $input['remark'];
  1637. $img=json_encode($input['img']);
  1638. $after = ['id' => $user->id, 'nickname' => $user->nickname, 'mobile' => $user->mobile, 'level' => $user->level, 'recom_id' => $user->recom_id, 'agent_id' => $user->agent_id];
  1639. $log = '删除用户成功,用户信息:' . json_encode($after, JSON_UNESCAPED_UNICODE).',用户邀请的人ID:'.json_encode($recomed).',用户下级ID:'.json_encode($agented);
  1640. $this->addAgentOperationLog('4', $user->id, $remark, $log, $img);
  1641. Log::info('管理员:' . Auth::user()->name . '(id=' . Auth::user()->id . ')删除代理:' . $user->nickname . '(id=' . $user->id . ')成功');
  1642. DB::commit();
  1643. return $this->success([]);
  1644. } catch (Exception $e) {
  1645. DB::rollBack();
  1646. return $this->error();
  1647. }
  1648. }
  1649. public function destroyUploadImg(Request $request){
  1650. if(empty($request->has('file'))){
  1651. return $this->error('450001','请选择图片!');
  1652. }
  1653. $path_url='delete/img';
  1654. $path = $request->file('file')->store($path_url);
  1655. $url = Storage::url($path);
  1656. if($url){
  1657. return $this->success($url);
  1658. }
  1659. return $this->error();
  1660. }
  1661. // 重置/修改密码
  1662. public function editAgentPassword(Request $request)
  1663. {
  1664. $input = $request->all();
  1665. $user = User::find($input['id']);
  1666. //<<<<<<< HEAD
  1667. $remark = '';
  1668. if ($input['type'] == '1') {//重置密码
  1669. $remark = '重置密码';
  1670. $user->password = MD5($user->mobile);
  1671. } elseif ($input['type'] == '2') {//修改密码
  1672. $remark = '修改密码';
  1673. $user->password = MD5($input['password']);
  1674. }
  1675. $this->addAgentOperationLog('9', $user->id, $remark);
  1676. $row = $user->save();
  1677. if ($row) {
  1678. //=======
  1679. // if($input['type']=='1'){//重置密码
  1680. // $user->password=MD5($user->mobile);
  1681. // }elseif($input['type']=='2'){//修改密码
  1682. // $user->password=MD5($input['password']);
  1683. // }
  1684. // $row=$user->save();
  1685. // if($row){
  1686. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  1687. Log::info('管理员:' . Auth::user()->name . '(id=' . Auth::user()->id . ')充值代理:' . $user->nickname . '(id=' . $user->id . ')密码成功');
  1688. return $this->success([]);
  1689. }
  1690. return $this->error();
  1691. }
  1692. //导出代理信息
  1693. public function exportUserLists(Request $request)
  1694. {
  1695. ini_set('memory_limit', '512M');
  1696. $input = $request->all();
  1697. $search_name = $input['search_name'];
  1698. $recom_name = $input['recom_name'];
  1699. $agent_name = $input['agent_name'];
  1700. if ($input['level'] == '4') {
  1701. $user = UserCopy::onlyTrashed();
  1702. $where = [];
  1703. } elseif ($input['level'] == 'all') {
  1704. $user = UserCopy::withTrashed();
  1705. $where = [];
  1706. } else {
  1707. $user = new UserCopy();
  1708. $where = [];
  1709. $where['level'] = $input['level'];
  1710. }
  1711. $list = $user
  1712. ->where(function ($query) use ($search_name) {
  1713. $query->where('nickname', 'like', '%' . $search_name . '%')
  1714. ->orWhere('mobile', 'like', '%' . $search_name . '%')
  1715. ->orWhere('cre_num', 'like', '%' . $search_name . '%')
  1716. ->orWhere('realname', 'like', '%' . $search_name . '%');
  1717. })
  1718. ->whereIn('cert_status', [3, 6])
  1719. ->where($where)
  1720. ->with(['recom:id,nickname,mobile', 'agent:id,nickname,mobile'])
  1721. ->whereHas('recom', function ($query1) use ($recom_name) {
  1722. $query1->select('id', 'nickname', 'mobile')
  1723. ->where(function ($recom) use ($recom_name) {
  1724. $recom->where('nickname', 'like', '%' . $recom_name . '%')
  1725. ->orWhere('mobile', 'like', '%' . $recom_name . '%')
  1726. ->orWhere('cre_num', 'like', '%' . $recom_name . '%')
  1727. ->orWhere('realname', 'like', '%' . $recom_name . '%');
  1728. });
  1729. })
  1730. ->whereHas('agent', function ($query2) use ($agent_name) {
  1731. $query2->select('id', 'nickname', 'mobile')
  1732. ->where(function ($agent) use ($agent_name) {
  1733. $agent->where('nickname', 'like', '%' . $agent_name . '%')
  1734. ->orWhere('mobile', 'like', '%' . $agent_name . '%')
  1735. ->orWhere('cre_num', 'like', '%' . $agent_name . '%')
  1736. ->orWhere('realname', 'like', '%' . $agent_name . '%');
  1737. });
  1738. })
  1739. ->orderBy('id', 'desc')
  1740. ->get();
  1741. if (empty($list)) {
  1742. return $this->error('400002', '没有获取到数据');
  1743. }
  1744. foreach ($list as $key => $val) {
  1745. if (!empty($val->deleted_at)) {
  1746. $list[$key]['delete'] = 1;//已删除
  1747. } else {
  1748. $list[$key]['delete'] = 0;//未删除
  1749. }
  1750. $list[$key]['cert_status'] = 6;
  1751. // $list[$key]['account']=$user->getAgentSalesResult($val->id);
  1752. }
  1753. // $search_name=$search_name?$search_name:
  1754. // Redis::setex('User_'.$search_name.$recom_name.$agent_name.$level);
  1755. return $this->success($list);
  1756. }
  1757. //获取代理列表信息
  1758. public function getUserListass(Request $request)
  1759. {
  1760. $input = $request->all();
  1761. $page_size = $input['page_size'];
  1762. $page_index = $input['page_index'];
  1763. $num = ($page_index - 1) * $page_size;
  1764. $search_name = $input['search_name'];
  1765. $recom_name = $request->has('recom_name') ? $input['recom_name'] : '';
  1766. $agent_name = $request->has('agent_name') ? $input['agent_name'] : '';
  1767. $where = [];
  1768. if ($input['level'] == '4') {
  1769. $user = User::onlyTrashed()->where($where);
  1770. } elseif ($input['level'] == 'all') {
  1771. $user = User::withTrashed()->where($where);
  1772. } else {
  1773. $user = User::where($where);
  1774. $where['level'] = $input['level'];
  1775. }
  1776. if ($search_name) {
  1777. $user->where(function ($query) use ($search_name) {
  1778. $query->where('nickname', 'like', '%' . $search_name . '%')
  1779. ->orWhere('mobile', 'like', '%' . $search_name . '%')
  1780. ->orWhere('cre_num', 'like', '%' . $search_name . '%')
  1781. ->orWhere('realname', 'like', '%' . $search_name . '%');
  1782. });
  1783. }
  1784. if ($agent_name) {
  1785. $agent_id = User::where(function ($agent) use ($agent_name) {
  1786. $agent->where('nickname', 'like', '%' . $agent_name . '%')
  1787. ->orWhere('mobile', 'like', '%' . $agent_name . '%')
  1788. ->orWhere('cre_num', 'like', '%' . $agent_name . '%')
  1789. ->orWhere('realname', 'like', '%' . $agent_name . '%');
  1790. })->pluck('id');
  1791. $user->whereIn('agent_id', $agent_id);
  1792. }
  1793. if ($recom_name) {
  1794. $recom_id = User::where(function ($recom) use ($recom_name) {
  1795. $recom->where('nickname', 'like', '%' . $recom_name . '%')
  1796. ->orWhere('mobile', 'like', '%' . $recom_name . '%')
  1797. ->orWhere('cre_num', 'like', '%' . $recom_name . '%')
  1798. ->orWhere('realname', 'like', '%' . $recom_name . '%');
  1799. })->pluck('id');
  1800. $user->whereIn('recom_id', $recom_id);
  1801. }
  1802. $count = $user->whereIn('cert_status', [3, 6])->where($where)->count();
  1803. if ($count == 0) {
  1804. $this->error('400001', '没有数据');
  1805. }
  1806. $list = $user->with(['recom', 'agent'])->whereIn('cert_status', [3, 6])->orderBy('id', 'desc')->skip($num)->take($page_size)->get();
  1807. foreach ($list as $key => $val) {
  1808. if (!empty($val->deleted_at)) {
  1809. $list[$key]['delete'] = 1;//已删除
  1810. } else {
  1811. $list[$key]['delete'] = 0;//未删除
  1812. }
  1813. $list[$key]['cert_status'] = 6;
  1814. // $list[$key]['account']=$user->getAgentSalesResult($val->id);
  1815. }
  1816. return $this->success_list($list, 'success', $count);
  1817. }
  1818. //<<<<<<< HEAD
  1819. //=======
  1820. // public function restoreAgent(Request $request){
  1821. // $input=$request->all();
  1822. // $student = Student::find($input['id']);
  1823. // $row=$student->restore();
  1824. // if($row){
  1825. // return $this->success($list,'删除恢复成功');
  1826. // }
  1827. // $this->error();
  1828. // }
  1829. //
  1830. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  1831. /**修改代理信息**/
  1832. public function update_user(Request $request)
  1833. {
  1834. $rule = [
  1835. 'id' => 'required',
  1836. 'nickname' => 'required',
  1837. 'realname' => 'required',
  1838. 'mobile' => 'required',
  1839. ];
  1840. $message = [
  1841. 'id.required' => '必填项',
  1842. 'nickname.required' => '必填项',
  1843. 'realname.required' => '必填项',
  1844. 'mobile.required' => '必填项',
  1845. ];
  1846. $vali = Validator::make($request->all(), $rule, $message);
  1847. if ($vali->fails()) {
  1848. return $this->error('400013', $vali->errors()->first());
  1849. }
  1850. DB::beginTransaction();
  1851. try {
  1852. $user = User::find($request->id);
  1853. $before_mobile=$user->mobile;
  1854. if (!$user) {
  1855. return $this->error(40013, '该用户不存在,请重新查询');
  1856. }
  1857. $before = ['id' => $user->id, 'nickname' => $user->nickname, 'realname' => $user->realname, 'mobile' => $user->mobile, 'cre_num' => $user->cre_num];
  1858. if ($request->mobile != $user->mobile) {
  1859. $users = User::where('mobile', $request->mobile)->count();
  1860. if ($users) {
  1861. return $this->error(40013, '该手机号已被使用');
  1862. }
  1863. $user->mobile = $request->mobile;
  1864. $user->auth_img = null;
  1865. }
  1866. if ($user->nickname != $request->nickname) {
  1867. $user->auth_img = null;
  1868. }
  1869. $user->nickname = $request->nickname;
  1870. $user->realname = $request->realname;
  1871. $user->cre_num = $request->cre_num;
  1872. $user->name = $request->realname;
  1873. if (!$user->save()) {
  1874. throw new \Exception('1');
  1875. }
  1876. $after = ['id' => $user->id, 'nickname' => $user->nickname, 'realname' => $user->realname, 'mobile' => $user->mobile, 'cre_num' => $user->cre_num];
  1877. $log = '修改代理信息成功,修改前代理信息:' . json_encode($before, JSON_UNESCAPED_UNICODE) . ',修改后代理信息:' . json_encode($after, JSON_UNESCAPED_UNICODE);
  1878. $this->addAgentOperationLog('6', $user->id, '', $log);
  1879. $user->before=$before_mobile;
  1880. event(new ChangeUserInfo($user));
  1881. DB::commit();
  1882. return $this->success([], '更新成功');
  1883. } catch (\Exception $exception) {
  1884. Log::error('{-----修改用户信息出错-----错误信息为--}' . $exception);
  1885. DB::rollback();
  1886. return $this->error(40013, '修改用户信息出错');
  1887. }
  1888. }
  1889. //<<<<<<< HEAD
  1890. public function restoreAgent(Request $request)
  1891. {
  1892. $input = $request->all();
  1893. $student = Student::find($input['id']);
  1894. $row = $student->restore();
  1895. if ($row) {
  1896. // return $this->success($list, '删除恢复成功');
  1897. }
  1898. $this->error();
  1899. }
  1900. //添加代理操作日志
  1901. public function addAgentOperationLog($type, $user_id, $remark = null, $log = null, $img=null)
  1902. {
  1903. return AgentOperationLog::create([
  1904. 'type' => $type,
  1905. 'admin_name' => Auth::user()->name,
  1906. 'admin_id' => Auth::user()->id,
  1907. 'user_id' => $user_id,
  1908. 'remark' => $remark,
  1909. 'log' => $log,
  1910. 'img' => $img
  1911. ]);
  1912. }
  1913. public function repair_auth(Request $request)
  1914. {
  1915. $rule = [
  1916. 'id' => 'required',
  1917. ];
  1918. $message = [
  1919. 'id.required' => '必填项',
  1920. ];
  1921. $vali = Validator::make($request->all(), $rule, $message);
  1922. if ($vali->fails()) {
  1923. return $this->error('400013', $vali->errors()->first());
  1924. }
  1925. DB::beginTransaction();
  1926. try {
  1927. $user = User::find($request->id);
  1928. if (!$user) {
  1929. return $this->error(40013, '该用户不存在,请重新查询');
  1930. }
  1931. $user->auth_img = null;
  1932. if (!$user->save()) {
  1933. throw new \Exception('1');
  1934. }
  1935. DB::commit();
  1936. return $this->success([], '修复成功');
  1937. } catch (\Exception $exception) {
  1938. Log::error('{-----修改授权证书出错-----错误信息为--}' . $exception);
  1939. DB::rollback();
  1940. return $this->error(40013, '修改授权证书出错');
  1941. }
  1942. //>>>>>>> 9aa477479386789a8615d89285e74706ec72fbab
  1943. }
  1944. //恢复误删除人员信息
  1945. public function restoreUserInfo(Request $request){
  1946. $input=$request->all();
  1947. $mobile=$input['mobile'];
  1948. $ids=$input['ids'];
  1949. $rules = [
  1950. 'mobile' => [
  1951. 'required',
  1952. 'regex:/^1[345789][0-9]{9}$/'
  1953. ],
  1954. ];
  1955. $messages = [
  1956. 'mobile.required' => '手机号不能为空.',
  1957. 'mobile.regex' => '手机号格式有误.',
  1958. ];
  1959. $uuu = new User();
  1960. $validator = $uuu->validator($input, $rules, $messages);
  1961. if ($validator->fails()) {
  1962. return $this->error('400013', $validator->errors()->first());
  1963. }
  1964. DB::beginTransaction();
  1965. try {
  1966. $result1=User::where('mobile',$input['mobile'])->first();
  1967. if($result1){
  1968. return $this->error('450001','该手机号用户未被删除,核对后再操作');
  1969. }
  1970. $result=User::onlyTrashed()->where('mobile',$input['mobile'])->first();
  1971. if(!$result){
  1972. return $this->error('450001','手机号信息有误,核对后再操作');
  1973. }
  1974. User::withTrashed()->where('mobile',$input['mobile'])->restore();
  1975. $this->addAgentOperationLog('41', $result->id, '撤销删除状态', '撤销删除状态');
  1976. Log::info('用户'.$input['mobile'].'被恢复');
  1977. if(!empty($ids)) {
  1978. foreach (json_decode($ids, true) as $valvv) {
  1979. $user = User::find($valvv);//当前用户
  1980. if ($user) {
  1981. if ($user->recom_id) {
  1982. $recom_id = $user->recom_id;
  1983. } else {
  1984. $recom_id = '暂无';
  1985. }
  1986. if ($user->agent_id) {
  1987. $up_id = $user->agent_id;
  1988. } else {
  1989. $up_id = '暂无';
  1990. }
  1991. // $agentCount = User::where(function ($query) use ($input) {
  1992. // $query->where('recom_id', '=', $input['id'])
  1993. // ->orWhere('agent_id', '=', $input['id']);
  1994. // })->count();
  1995. //代理邀请人员后,或者成为上级后不能变更推荐人
  1996. // if($agentCount>0){
  1997. // return $this->error('400112','当前用户邀请人信息不能修改');
  1998. // }
  1999. $recomUser = User::where("mobile", $input['mobile'])->first();//新邀请人信息
  2000. if (empty($recomUser)) {
  2001. return $this->error('400115', '邀请人信息不存在');
  2002. }
  2003. if ($user->recom_id == $recomUser->id) {
  2004. return $this->error('400111', '要更改的邀请人与当前邀请人相同');
  2005. }
  2006. if ($user->id == $recomUser->recom_id) {
  2007. return $this->error('400116', '要更改的邀请人的邀请人为自己');
  2008. }
  2009. if ($user->id == $recomUser->id) {
  2010. return $this->error('400116', '要更改的邀请人不能为自己');
  2011. }
  2012. $uuu = new User();
  2013. $rechecking = $uuu->changeRecomSystem($valvv, $input['mobile']);
  2014. if ($rechecking == '222') {
  2015. return $this->error('400116', '要更改的邀请人为当前代理邀请人系统体系内部成员');
  2016. }
  2017. if ($user->level == '3') {
  2018. $user->recom_id = $recomUser->id;
  2019. $user->agent_id = '1';
  2020. $user->crown_id = '';
  2021. if ($user->warea_id != $recomUser->warea_id) {
  2022. $user->warea_id = $recomUser->warea_id;
  2023. $one_agent = User::where('agent_id', $user->id)->pluck('id');
  2024. if (count($one_agent) > 0) {
  2025. User::whereIn('id', $one_agent)->update(['warea_id' => $recomUser->warea_id]);
  2026. foreach ($one_agent as $key => $val) {
  2027. $two_agent = User::where('agent_id', $val)->pluck('id');
  2028. if (count($two_agent) > 0) {
  2029. User::whereIn('id', $two_agent)->update(['warea_id' => $recomUser->warea_id]);
  2030. }
  2031. }
  2032. }
  2033. }
  2034. } else {
  2035. if ($recomUser->level == '3') {
  2036. $user->recom_id = $recomUser->id;
  2037. $user->agent_id = $recomUser->id;
  2038. $user->crown_id = $recomUser->id;
  2039. $user->warea_id = $recomUser->warea_id;
  2040. if ($user->level == '2') {
  2041. $uuu->changeAgentLevelInfoTwo($user->id, $recomUser->id);
  2042. } elseif ($user->level == '1') {
  2043. $uuu->changeAgentLevelInfoThree($user->id, $recomUser->id, $recomUser->id);
  2044. }
  2045. $uuu->changeAgentRecomCrown($user->id, $recomUser->id, $recomUser->warea_id);
  2046. } elseif ($recomUser->level == '2') {
  2047. if ($user->level == '2') {
  2048. $user->recom_id = $recomUser->id;
  2049. $user->agent_id = $recomUser->agent_id;
  2050. $user->crown_id = $recomUser->crown_id;
  2051. $user->warea_id = $recomUser->warea_id;
  2052. $uuu->changeAgentLevelInfoTwo($user->id, $recomUser->agent_id);
  2053. } elseif ($user->level == '1') {
  2054. $user->recom_id = $recomUser->id;
  2055. $user->agent_id = $recomUser->id;
  2056. $user->crown_id = $recomUser->crown_id;
  2057. $user->warea_id = $recomUser->warea_id;
  2058. $uuu->changeAgentLevelInfoThree($user->id, $recomUser->agent_id, $recomUser->id);
  2059. }
  2060. $uuu->changeAgentRecomCrown($user->id, $recomUser->crown_id, $recomUser->warea_id);
  2061. } elseif ($recomUser->level == '1') {
  2062. $recomAgent = User::find($recomUser->agent_id);
  2063. if ($user->level == '2') {
  2064. $user->recom_id = $recomUser->id;
  2065. $user->agent_id = $recomAgent->agent_id;
  2066. $user->crown_id = $recomUser->crown_id;
  2067. $user->warea_id = $recomUser->warea_id;
  2068. $uuu->changeAgentLevelInfoTwo($user->id, $recomAgent->agent_id);
  2069. } elseif ($user->level == '1') {
  2070. $user->recom_id = $recomUser->id;
  2071. $user->agent_id = $recomUser->agent_id;
  2072. $user->crown_id = $recomUser->crown_id;
  2073. $user->warea_id = $recomUser->warea_id;
  2074. $uuu->changeAgentLevelInfoThree($user->id, $recomAgent->agent_id, $recomUser->agent_id);
  2075. }
  2076. $uuu->changeAgentRecomCrown($user->id, $recomUser->crown_id, $recomUser->warea_id);
  2077. }
  2078. }
  2079. $row = $user->save();
  2080. $remark = '恢复';
  2081. $before = User::where('id', $recom_id)->select('id', 'nickname', 'mobile')->first();
  2082. $after = ['id' => $recomUser->id, 'nickname' => $recomUser->nickname, 'mobile' => $recomUser->mobile];
  2083. $log = '变更前邀请人:' . json_encode($before, JSON_UNESCAPED_UNICODE) . ',变更后邀请人:' . json_encode($after, JSON_UNESCAPED_UNICODE);
  2084. $this->addAgentOperationLog('3', $user->id, $remark, $log);
  2085. event(new ChangeRecom($user));
  2086. Log::info('管理员:' . Auth::user()->name . '(id=' . Auth::user()->id . ')修改代理:' . $user->nickname . '(id=' . $user->id . ')邀请人成功,原邀请人id=' . $recom_id . ',原上级id=' . $up_id . ',新邀请人:' . $recomUser->nickname . '(id=' . $recomUser->id . ')');
  2087. }
  2088. }
  2089. }
  2090. DB::commit();
  2091. return $this->success([]);
  2092. }catch(Exception $e){
  2093. DB::rollBack();
  2094. return $this->error($e->getMessage());
  2095. }
  2096. }
  2097. //获取代理升级后团队信息
  2098. public function getUpTeam($uid){
  2099. $user=User::where('id',$uid)->first();
  2100. $arr=[];
  2101. $num=0;
  2102. if($user->level==2){
  2103. $this->getAgentLevelInfoTwo($uid,$arr,$num);
  2104. }elseif($user->level==1){
  2105. $this->getAgentLevelInfoOne($uid,$arr,$num);
  2106. }
  2107. $data['num']=$num;
  2108. $data['list']=$arr;
  2109. return $data;
  2110. }
  2111. //顶级升皇冠
  2112. public function getAgentLevelInfoTwo($uid,&$arr,&$num){
  2113. $list=User::where('recom_id', $uid)->select('id','nickname','realname','mobile','level','recom_id')->get();//获取所有邀请人
  2114. if(count($list)>0){
  2115. foreach($list as $key=>$val){
  2116. if($val->level=='2' || $val->level=='1'){
  2117. $num+=1;
  2118. // array_push($arr,$val);
  2119. $this->getAgentLevelInfoTwo($val->id,$arr,$num);
  2120. }
  2121. }
  2122. }
  2123. }
  2124. //特级升顶级
  2125. public function getAgentLevelInfoOne($uid,&$arr,&$num){
  2126. $list=User::where('recom_id', $uid)->select('id','nickname','realname','mobile','level','recom_id')->get();//获取所有邀请人
  2127. if(count($list)>0){
  2128. foreach($list as $key=>$val){
  2129. if($val->level=='1'){
  2130. $num+=1;
  2131. // array_push($arr,$val);
  2132. $this->getAgentLevelInfoOne($val->id,$arr,$num);
  2133. }
  2134. }
  2135. }
  2136. }
  2137. /**查找符合条件的需要审核的代理**/
  2138. public function search_peoples(Request $request){
  2139. $admin_user=Auth::user();
  2140. $status=false;
  2141. if ($admin_user->role_id==22||$admin_user->role_id==32){
  2142. $status=true;
  2143. }
  2144. $warea_id=Warea::where('admin_id',$admin_user->id)->value('id');
  2145. $input=$request->all();
  2146. $page_index=$input['page_index'];
  2147. $page_size=$input['page_size'];
  2148. $num=($page_index-1)*$page_size;
  2149. $user=User::whereNull('deleted_at')->whereIn('cert_status',[3,6])->with(['agent','recom'])->where('service_status',$input['status']);
  2150. if (!$status){
  2151. $user=$user->where('warea_id',$warea_id);
  2152. }
  2153. if ($input['search_content']){
  2154. $search_content=$input['search_content'];
  2155. $where=function ($q)use($search_content){
  2156. $q->where('mobile','like','%'.$search_content.'%')
  2157. ->orwhere('nickname','like','%'.$search_content.'%');
  2158. };
  2159. $user->where($where);
  2160. }
  2161. $user=$user->with(['get_service']);
  2162. $count=$user->count();
  2163. $result=$user->take($page_size)->skip($num)->get();
  2164. return $this->success_list($result,'',$count);
  2165. }
  2166. /**政委审核**/
  2167. public function service_audit(Request $request){
  2168. $input=$request->all();
  2169. $status=$input['status'];//0通过1未通过
  2170. DB::beginTransaction();
  2171. try{
  2172. $user=User::where('id',$request->id)->first();
  2173. if ($status==1){
  2174. $reason=new ServiceReason();
  2175. $reason->user_id=$input['id'];
  2176. $reason->op_name=Auth::user()->nickname;
  2177. $reason->reason=$input['reason'];
  2178. if (!$reason->save()){
  2179. throw new \Exception(1);
  2180. }
  2181. $user->service_status=2;
  2182. if ($user->openid){
  2183. $me['openid']=$user->openid;
  2184. $me['data']=[
  2185. 'first' => '恭喜您,您的注册申请已被政委驳回。原因'.$input['reason'],
  2186. 'keyword1' => '政委驳回',
  2187. 'keyword2' => date("Y-m-d H:i"),
  2188. 'remark' => '点击链接进入系统,查看详情',
  2189. ];
  2190. event(new AgentAuditServiceEvent($me));
  2191. }
  2192. }elseif ($status==0){
  2193. $user->service_status=0;
  2194. if ($user->openid){
  2195. $me['openid']=$user->openid;
  2196. $me['data']=[
  2197. 'first' => '恭喜您,您的注册申请已通过政委审核。',
  2198. 'keyword1' => '政委审核成功',
  2199. 'keyword2' => date("Y-m-d H:i"),
  2200. 'remark' => '点击链接进入系统,查看详情',
  2201. ];
  2202. event(new AgentAuditServiceEvent($me));
  2203. }
  2204. }
  2205. if (!$user->save()){
  2206. throw new \Exception(1);
  2207. }
  2208. DB::commit();
  2209. return $this->success([]);
  2210. }catch (\Exception $exception){
  2211. DB::rollBack();
  2212. return $this->error(52201,'','');
  2213. }
  2214. }
  2215. public function get_reason(){
  2216. $re=DB::table('reason')->where('type',0)->get();
  2217. $data=[];
  2218. foreach ($re as $k=>$v){
  2219. $data[$k]=$v->reason;
  2220. }
  2221. return $this->success_list($data);
  2222. }
  2223. public function add_reason(Request $request){
  2224. DB::table('reason')->insert(['type'=>0,'reason'=>$request->reason]);
  2225. return $this->success([]);
  2226. }
  2227. public function get_del_cause(){
  2228. $re=CauseDel::where('type',0)->select('id','cause')->get();
  2229. return $this->success($re);
  2230. }
  2231. public function GetUserAuthEnd(Request $request){
  2232. $input=$request->all();
  2233. }
  2234. }