AccountController.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Support\Facades\Redis;
  5. class AccountController extends Controller
  6. {
  7. //
  8. // 获取用户信息
  9. public function userinfo(Request $request) {
  10. //
  11. $user = unserialize($request->get("account"));
  12. //
  13. $status = 2; // 1:未验证 2:已登录
  14. $code = '';
  15. if(!$user->uid) {
  16. $status = 1;
  17. $code = Redis::get("auth_aid:{$user->id}");
  18. }
  19. // 获取用户当前保存得皮肤
  20. $attire = \App\Models\FittingRoom::where("account_id",$user->id)->where("curr_save", 1)->whereHas('attire', function($q){
  21. $q->whereIn('cate', ['皮肤','套装']);
  22. })->with(['attire'])->first();
  23. //
  24. //
  25. $currImg1 = \Storage::disk('cosv5')->url($attire->attire->img_1);
  26. $currImg2 = \Storage::disk('cosv5')->url($attire->attire->img_2);
  27. //
  28. $newTeach = \App\Models\Resource::where("name","new_teach")->value("src");
  29. // 获取二维码的图片
  30. $rqcode = \App\Models\Resource::where("name", "qr_code")->value("src");
  31. //
  32. $datas = \App\Models\Config::whereNotIn("key", ['box_level_percent','box_level_paster','coupon_configs'])->get(['key','val','val1','type'])->toArray();
  33. foreach($datas as &$v) {
  34. if($v['type'] == 1) {
  35. $v['val'] = $v['val1'];
  36. }
  37. unset($v['val1']);
  38. }
  39. //
  40. return [
  41. 'errno'=> 10000,
  42. "errmsg" => 'ok',
  43. 'data' => [
  44. 'username' => $user->username,
  45. 'avatar' => config("filesystems.disks.cosv5.url") . '/'.$user->avatar,
  46. 'coupon' => $user->coupon,
  47. 'paster' => $user->paster,
  48. 'session' => $user->session,
  49. 'curr_attire_img1' => $currImg1,
  50. 'curr_attire_img2' => $currImg2,
  51. 'code' => $code,
  52. 'status' => $status,
  53. "assets" => [
  54. 'new_teach' => \Storage::disk('cosv5')->url($newTeach),
  55. 'qr_code' => \Storage::disk('cosv5')->url($rqcode),
  56. ],
  57. 'configs' => array_column($datas, 'val','key'),
  58. ],
  59. ];
  60. }
  61. // 刷新验证码
  62. public function refreshCode(Request $request) {
  63. //
  64. $user = unserialize($request->get("account"));
  65. if($user->uid) {
  66. return [
  67. 'errno'=> 10001,
  68. "errmsg" => '用户已验证,无需生成验证码',
  69. ];
  70. }
  71. //
  72. while(true) {
  73. $code = mt_rand(100001,999999);
  74. $tmp = Redis::get("auth_code:{$code}");
  75. if(!$tmp) {
  76. break;
  77. }
  78. }
  79. //
  80. Redis::set("auth_aid:{$user->id}", $code);
  81. Redis::expire("auth_aid:{$user->id}", 12 * 60);
  82. Redis::set("auth_code:{$code}", $user->id);
  83. Redis::expire("auth_code:{$code}", 12 * 60);
  84. //
  85. return [
  86. 'errno'=> 10000,
  87. "errmsg" => 'ok',
  88. 'data' => [
  89. 'code' => $code,
  90. ],
  91. ];
  92. }
  93. // 上传分享的图片
  94. public function upload(Request $request) {
  95. //
  96. $user = unserialize($request->get("account"));
  97. //
  98. $image = $request->get('img'); // your base64 encoded
  99. $image = str_replace('data:image/png;base64,', '', $image);
  100. $image = str_replace(' ', '+', $image);
  101. $imagePath= 'share/'.\Str::random(10) . '.png';
  102. \Storage::disk('admin')->put($imagePath, base64_decode($image));
  103. //
  104. // $path = $request->file("img")->store('share','admin');
  105. //
  106. // return \Storage::disk('admin')->download($imagePath);
  107. //
  108. return [
  109. 'errno'=> 10000,
  110. "errmsg" => 'ok',
  111. 'data' => [
  112. 'url' => \Storage::disk('cosv5')->url($imagePath),
  113. ],
  114. ];
  115. }
  116. // 客户端要用
  117. public function attire(Request $request) {
  118. //
  119. $uid = $request->input("uid","");
  120. $token = $request->input("token","");
  121. //
  122. if(!$uid) {
  123. return [
  124. 'errno'=> 10001,
  125. "errmsg" => 'uid错误, 不能为空',
  126. ];
  127. }
  128. if(!$token || $token != 'e55a4f01f5fcd56f0ddef7b078b5b2cc') {
  129. return [
  130. 'errno'=> 10002,
  131. "errmsg" => 'token错误',
  132. ];
  133. }
  134. //
  135. $account = \App\Models\Account::where("uid",$uid)->first();
  136. if(!$account) {
  137. return [
  138. 'errno'=> 10003,
  139. "errmsg" => 'uid错误',
  140. ];
  141. }
  142. // 查找用户上传的皮肤
  143. $attire = \App\Models\FittingRoom::where("account_id", $account->id)
  144. ->where("curr_upload",1)
  145. ->with("attire")
  146. ->get();
  147. //
  148. $ret = [];
  149. foreach($attire as $v) {
  150. if(isset($v['attire']) && $v['attire']) {
  151. $ret[] = [
  152. 'id' => $v['attire_id'],
  153. 'cate' => $v['attire']['cate'],
  154. 'level' => $v['attire']['level'],
  155. ];
  156. }
  157. }
  158. return [
  159. 'errno'=> 10000,
  160. "errmsg" => 'ok',
  161. 'data' => $ret,
  162. ];
  163. }
  164. //
  165. public function todo(Request $request) {
  166. //
  167. $user = unserialize($request->get("account"));
  168. //
  169. $user->uid = 1;
  170. $user->save();
  171. //
  172. $status = 2; // 1:未验证 2:已登录
  173. $code = '';
  174. // 获取用户当前保存得皮肤
  175. $attire = \App\Models\FittingRoom::where("account_id",$user->id)->where("curr_save", 1)->whereHas('attire', function($q){
  176. $q->whereIn('cate', ['皮肤','套装']);
  177. })->with(['attire'])->first();
  178. //
  179. //
  180. $currImg1 = \Storage::disk('cosv5')->url($attire->attire->img_1);
  181. $currImg2 = \Storage::disk('cosv5')->url($attire->attire->img_2);
  182. //
  183. $newTeach = \App\Models\Resource::where("name","new_teach")->value("src");
  184. //
  185. return [
  186. 'errno'=> 10000,
  187. "errmsg" => 'ok',
  188. 'data' => [
  189. 'username' => $user->username,
  190. 'avatar' => $user->avatar,
  191. 'coupon' => $user->coupon,
  192. 'paster' => $user->paster,
  193. 'session' => $user->session,
  194. 'curr_attire_img1' => $currImg1,
  195. 'curr_attire_img2' => $currImg2,
  196. 'code' => $code,
  197. 'status' => $status,
  198. "assets" => [
  199. 'new_teach' => \Storage::disk('cosv5')->url($newTeach),
  200. ],
  201. ],
  202. ];
  203. }
  204. }