BigGiftController.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Handlers\ImageDealHandler;
  4. use App\Handlers\UploadFilesHandler;
  5. use App\Models\BigGiftApply;
  6. use App\Models\GiftUserImg;
  7. use App\Models\Ordertest;
  8. use App\Models\User;
  9. use App\Models\Warea;
  10. use Illuminate\Http\Request;
  11. use Illuminate\Support\Facades\DB;
  12. use Illuminate\Support\Facades\Auth;
  13. use Intervention\Image\Facades\Image;
  14. class BigGiftController extends Controller
  15. {
  16. public function GetApplyList(Request $request){
  17. $page_index=$request->input('page_index');
  18. $page_size=$request->input('page_size');
  19. $num=$page_size*($page_index-1);
  20. $status=$request->input('status',0);
  21. $search_name=$request->input('search_name');
  22. $activity_id=$request->input('activity_id');
  23. $data=BigGiftApply::query()->with(['user'=>function($q){
  24. $q->select('id','nickname','remark_name','headimgurl','mobile','level','warea_id')->with(['warea:id,name']);
  25. },'crown:id,nickname,mobile','order:id,order_num'])->where('activity_id',$activity_id);
  26. if ($search_name){
  27. $uid=User::where('mobile','like',"%$search_name%")->orwhere('nickname','like',"%$search_name%")->pluck('id');
  28. $data->whereIn('user_id',$uid);
  29. }
  30. $auth_id=Auth::user()->role_id;
  31. if ($auth_id==23){
  32. $id=Warea::where('admin_id',Auth::user()->id)->value('id');
  33. $ids=User::where('warea_id',$id)->pluck('id');
  34. $data->whereIn('user_id',$ids);
  35. }
  36. if($status!='all'){
  37. $data->where('status',$status);
  38. }
  39. $count=$data->count();
  40. $list=$data->orderBy('status')->orderByDesc('id')->skip($num)->take($page_size)->get();
  41. return $this->success_list($list,'',$count);
  42. }
  43. //获取代理公司的销售经理
  44. public function GetUserInfo(Request $request){
  45. $id = $request->input('id');
  46. $user_id = User::where('agent_id', $id)->where('level',2)->whereNull('deleted_at')->pluck('id')->toArray();
  47. $search_name=$request->input('search_name')??null;
  48. if ($search_name) {
  49. $where = function ($q) use ($search_name) {
  50. $q->where('nickname', 'like', '%' . $search_name . '%')->orwhere('mobile', 'like', '%' . $search_name . '%');
  51. };
  52. $user = User::where(function ($q)use($id,$user_id){
  53. $q->whereIn('id', $user_id);
  54. })->where($where)->whereNull('deleted_at')->select('mobile as phone', 'nickname', 'realname', 'id', 'headimgurl as avatar','level');
  55. $re = $user->get();
  56. return $this->success($re);
  57. } else {
  58. $re = User::whereIn('id', $user_id)->whereNull('deleted_at')->select('mobile as phone', 'nickname', 'realname', 'id', 'headimgurl as avatar','level');
  59. $re = $re->get();
  60. return $this->success($re);
  61. }
  62. }
  63. //修改销售经理
  64. public function editBelongToUser(Request $request){
  65. $id=$request->input('id');
  66. $user_id=$request->input('user_id');
  67. if(empty($user_id)){
  68. return $this->error(500231,'请选择销售经理');
  69. }
  70. $gift=BigGiftApply::query()->where('id',$id)->first();
  71. if($user_id == $gift->user_id){
  72. return $this->error(500231,'销售经理没有改变');
  73. }
  74. $res=BigGiftApply::where('user_id',$user_id)->where('activity_id',$gift->activity_id)->first();
  75. if ($res){
  76. return $this->error(500231,'该销售经理已经绑定过订单,订单编号为:'.Ordertest::where('id',$res->order_id)->value('order_num'));
  77. }
  78. $gift->user_id=$user_id;
  79. $gift->save();
  80. return $this->success([]);
  81. }
  82. public function ApplySuccess(Request $request){
  83. $info=$request->all();
  84. $id=$info['id'];//申请大礼包id
  85. $user_img=$info['user_img'];
  86. $activity_id=$info['activity_id'];
  87. $apply=BigGiftApply::query()->where('id',$id)->first();
  88. if($apply->type==1){
  89. $type=2;
  90. }elseif($apply->type==0){
  91. $type=0;
  92. }
  93. $re=GiftUserImg::where('activity_id',$activity_id)->where('type',$type)->where('is_main',1)->where('img_type',0)->first();
  94. $img=GiftUserImg::where('activity_id',$activity_id)->where('type',$type)->where('is_main',0)->where('img_type',0)->first();
  95. if (!$re || !$img){
  96. return $this->error(500214,'请先上传模板图');
  97. }
  98. $order=Ordertest::where('id',$apply->order_id)->with(['address'])->first();
  99. $nickname=User::where('id',$apply->user_id)->value('nickname');
  100. $user_url=$this->CreateImg($apply->user_id,$re->url,$user_img,$nickname,$img->url);
  101. DB::beginTransaction();
  102. try{
  103. $gift=GiftUserImg::create([
  104. 'user_id'=>$apply->user_id,
  105. 'type'=>$type, //0表示大礼包A-a,1表示大礼包B-c,2表示大礼包A-b,3表示大礼包B-d
  106. 'img_type'=>1, //0表示模板,1表示合成后的图
  107. 'nickname'=>$nickname,
  108. 'province'=>$order->address->province,
  109. 'city'=>$order->address->city,
  110. 'area'=>$order->address->town,
  111. 'address'=>$order->address->address,
  112. 'phone'=>$order->address->mobile,
  113. 'car_name'=>$order->address->username,
  114. 'activity_id'=>$activity_id,
  115. 'user_img'=>$user_img,
  116. 'url'=>$user_url
  117. ]);
  118. $apply->gift_user_img_id=$gift->id;
  119. $apply->status=1;
  120. $apply->order_change=null;
  121. $apply->save();
  122. DB::commit();
  123. return $this->success([]);
  124. }catch(\Exception $e){
  125. DB::rollback();
  126. return $this->error('450001',$e->getMessage());
  127. }
  128. return $this->success([]);
  129. }
  130. public function UpdateApply(Request $request){
  131. $input=$request->all();
  132. $user_id=$input['user_id'];
  133. $user=User::find($user_id);
  134. $id=$input['id'];
  135. $user_img=$input['user_img'];
  136. $activity_id=$input['activity_id'];
  137. $re=GiftUserImg::where('activity_id',$activity_id)->where('type',0)->where('is_main',1)->where('img_type',0)->first();
  138. $img=GiftUserImg::where('activity_id',$activity_id)->where('type',0)->where('is_main',0)->where('img_type',0)->first();
  139. if (!$re || !$img){
  140. return $this->error(500214,'请先上传模板图');
  141. }
  142. $giftImg=GiftUserImg::find($id);
  143. $giftImg->user_id=$user_id;
  144. $giftImg->nickname=$user->nickname;
  145. $giftImg->user_img=$user_img;
  146. $giftImg->img_type=1;
  147. $user_url=$this->CreateImg($giftImg->user_id,$re->url,$user_img,$giftImg->nickname,$img->url);
  148. $giftImg->url=$user_url;
  149. // $giftImg->status=1;
  150. $giftImg->save();
  151. $ress=BigGiftApply::where('gift_user_img_id',$giftImg->id)->first();
  152. $ress->status=1;
  153. $ress->user_id=$input['user_id'];
  154. $ress->save();
  155. return $this->success([]);
  156. }
  157. public function ExportAddress(Request $request){
  158. $info=$request->all();
  159. $search_name=$info['search_name'];
  160. $activity_id=$info['activity_id'];
  161. $re=GiftUserImg::where('img_type',1)->where('type',0)->where('status',1)->where('is_deleted',0)->where('activity_id',$activity_id);
  162. if ($search_name){
  163. $uid=User::where('mobile','like',"%$search_name%")->orwhere('nickname','like',"%$search_name%")->pluck('id');
  164. $re->whereIn('user_id',$uid);
  165. }
  166. $auth_id=Auth::user()->role_id;
  167. if ($auth_id==23){
  168. $id=Warea::where('admin_id',Auth::user()->id)->value('id');
  169. $ids=User::where('warea_id',$id)->pluck('id');
  170. $re->whereIn('user_id',$ids);
  171. }
  172. $re=$re->get();
  173. $data=[];
  174. foreach ($re as $k=>$v){
  175. $remar=User::where('id',$v->user_id)->with(['agent'])->first();
  176. if ($remar){
  177. $v->up_name=$remar->agent->remark_name;
  178. $v->up_phone=$remar->agent->mobile;
  179. }else{
  180. $v->up_name='';
  181. $v->up_phone='';
  182. }
  183. $data[$k]=$v;
  184. }
  185. return $this->success_list($data);
  186. }
  187. //上传代理公司图片
  188. public function uploadImage(Request $request){
  189. $file= $request->file('file');
  190. $path_url='big_gift/user_img';
  191. $upload= new UploadFilesHandler();
  192. $result= $upload->save($file, $path_url, null, 'image');
  193. if($result){
  194. return $this->success($result['path']);
  195. }
  196. return $this->error();
  197. // $input=$request->all();
  198. // $path_url='public/userImg';
  199. // $path = $request->file('file')->store($path_url);
  200. // $url = Storage::url($path);
  201. // if($url){
  202. // return $this->success($url);
  203. // }
  204. // return $this->error();
  205. }
  206. public function CreateImg($id,$main_url,$user_img,$nickname,$img_url){
  207. $imageDealHandler=new ImageDealHandler();
  208. $image=Image::make($main_url);
  209. $avatar=$imageDealHandler->circleImg($user_img);
  210. $avatar=Image::make($avatar);
  211. $avatar->resize(680,680);
  212. $img=Image::make($img_url);
  213. $image->insert($avatar,'',205,273);
  214. $image->insert($img,'',30,750);
  215. if (mb_strlen($nickname)==1){
  216. $y=600;
  217. $n=1;
  218. }elseif (mb_strlen($nickname)==2){
  219. $y=550;
  220. $n=2;
  221. }elseif (mb_strlen($nickname)==3){
  222. $y=500;
  223. $n=3;
  224. }elseif (mb_strlen($nickname)==4){
  225. $y=450;
  226. $n=4;
  227. }else{
  228. $y=450;
  229. $n=0;
  230. }
  231. for ($i=0;$i<$n;$i++){
  232. $image->text(mb_substr($nickname,$i,1), 100,$y+$i*100 , function ($font) {
  233. // $image->text('棒', 200,10 , function ($font) {
  234. $font->file(public_path() .'./ziti/ht.otf');//public_path() .
  235. $font->size(90);
  236. $font->color('fff');
  237. $font->angle(0);
  238. });
  239. }
  240. $image->encode('data-url');
  241. $upload= new UploadFilesHandler();
  242. $dirname= 'big_gift/create_img/'. date("Ymd");
  243. $result= $upload->save($image, $dirname, $id, 'image');
  244. return $result['path'];
  245. // $folder_name = "uploads/UserImg/" . date("Ym/d", time());
  246. // $upload_path = 'public/'.$folder_name;
  247. // 获取文件的后缀名,因图片从剪贴板里黏贴时后缀名为空,所以此处确保后缀一直存在
  248. // $extension = 'png';
  249. // 拼接文件名,加前缀是为了增加辨析度,前缀可以是相关数据模型的 ID
  250. // 值如:1_1493521050_7BVc9v9ujP.png
  251. // $filename = $id.'_'.str_random(10) .'.'. $extension;
  252. //// File::isDirectory($upload_path) or File::makeDirectory($upload_path, 077, true, true);
  253. // if (!file_exists(public_path($upload_path))) {
  254. // mkdir(public_path($upload_path), 0777, true);
  255. // }
  256. // 将图片移动到我们的目标存储路径中
  257. // $image->save(public_path().'/'.$upload_path . '/' . $filename);
  258. // $url=env('APP_URL').'/'.$upload_path.'/'.$filename;
  259. // return $url;
  260. }
  261. }