AppController.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace Modules\AgentApi\Controllers;
  3. use App\Jobs\AppPackJob;
  4. use App\Models\Mysql\PackModel;
  5. use App\Repositories\AgentRepository;
  6. use App\Repositories\AppRepository;
  7. use App\Repositories\ChannelRepository;
  8. use Illuminate\Support\Facades\Validator;
  9. class AppController extends BaseController
  10. {
  11. /**
  12. * app列表
  13. *
  14. * @param AppRepository $appRepo
  15. * @return mixed
  16. */
  17. public function lists(AppRepository $appRepo, AgentRepository $agentRepo)
  18. {
  19. $accountInfo = $this->getCurrentAgent();
  20. //获取代理应用uid
  21. $appUidData = $agentRepo->findBy('uid', $accountInfo['uid'], ['own_app_uids']);
  22. $appUids = explode(',', $appUidData->own_app_uids);
  23. $appData = $appRepo->getAgentApp($appUids);
  24. return json_success($appData);
  25. }
  26. public function pack()
  27. {
  28. $inputData = $this->getJsonData();
  29. $rules = [
  30. 'uid' => 'required|string',
  31. ];
  32. $validator = Validator::make($inputData, $rules);
  33. if ($validator->fails()) {
  34. // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
  35. return json_fail($validator->errors()->first());
  36. }
  37. // 查找渠道开始打包
  38. /**
  39. * 获取渠道app
  40. * @var ChannelRepository $channRepo
  41. */
  42. $channelRepo = app(ChannelRepository::class);
  43. $channelData = $channelRepo->getAppChannel($inputData['uid']);
  44. $packArray =[
  45. 'agent_uid'=>$channelData->agent_uid,
  46. 'channel_code'=>$channelData->uid,
  47. 'mom_app_name'=>$channelData->app->name,
  48. 'mom_app_uid'=>$channelData->app->uid,
  49. 'mom_app_id'=>$channelData->app->app_id,
  50. 'android_or_ios'=>1,
  51. 'mom_app_download'=>$channelData->app->android_url,
  52. 'mom_app_version'=>$channelData->app->android_version,
  53. ];
  54. $packCreateData = $packArray;
  55. // 数据库格式
  56. unset($packCreateData['mom_app_download']);
  57. $packCreateData['app_download'] = '';
  58. $packCreateData['status'] = 3;// 打包中
  59. // 写入数据库
  60. $packModel = (new PackModel())->where('channel_code',$inputData['uid'])->count();
  61. if ($packModel){
  62. if (!PackModel::query()->where('channel_code',$inputData['uid'])->update($packCreateData)){
  63. return json_success([],'打包失败请重试');
  64. }
  65. }else{
  66. if (!PackModel::query()->create($packCreateData)){
  67. return json_success([],'打包失败请重试');
  68. }
  69. }
  70. // 打包
  71. dispatch(new AppPackJob($packArray))->onQueue('app_pack');
  72. return json_success([],'开始打包,稍等1-2分钟');
  73. }
  74. }