ChannelController.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <?php
  2. namespace App\Http\Controllers\Channel\Channel;
  3. use App\Modules\OfficialAccount\Models\OfficialAccount;
  4. use App\Modules\Finance\Services\FinancialStatService;
  5. use App\Http\Controllers\Channel\BaseController;
  6. use App\Modules\Channel\Services\ChannelService;
  7. use App\Http\Controllers\Channel\Channel\Transformers\ChannelTransformer;
  8. use App\Modules\Channel\Services\ChannelUserService;
  9. use App\Modules\Finance\Services\CommissionRateService;//结算比例
  10. use App\Modules\OfficialAccount\Services\PaySubstituteSwitchService;
  11. use http\Url;
  12. use Illuminate\Http\Request;
  13. class ChannelController extends BaseController
  14. {
  15. /**
  16. * @apiDefine Channel 渠道
  17. */
  18. //设置当前操作渠道
  19. public function setCurrent(Request $request)
  20. {
  21. $channel_user_id = $this->getChannelUserId();
  22. $distribution_channel_id = $request->has('distribution_channel_id') ? (int)$request->input('distribution_channel_id') : '';
  23. //获取该账号下渠道
  24. if (!$channel_user_id || !$distribution_channel_id || !$channel = ChannelService::getUserChannel($distribution_channel_id, $channel_user_id)) return response()->error('PARAM_ERROR');
  25. $request->session()->put('ydychannel', serialize($channel));
  26. return response()->success();
  27. }
  28. //创建渠道
  29. public function createChannel(Request $request)
  30. {
  31. $channel_user_id = $this->getChannelUserId();
  32. $channel_user = ChannelUserService::getById($channel_user_id);
  33. $distribution_manages_id = $channel_user->distribution_manages_id;
  34. $phone = $channel_user->phone;
  35. $person_in_charge_name = $channel_user->person_in_charge_name;
  36. $nickname = $channel_user->nickname;
  37. if ($channel = ChannelService::createChannel(compact('channel_user_id', 'distribution_manages_id', 'phone', 'person_in_charge_name', 'nickname'))) {
  38. //创建结算比例
  39. CommissionRateService::addCommissionRate($channel->id, 0, 0, 0.9);
  40. return response()->success();
  41. }
  42. }
  43. //当前账号下渠道列表
  44. public function channelList(Request $request)
  45. {
  46. $channel_user_id = $this->getChannelUserId();
  47. $channels = ChannelService::getByChannelUserId($channel_user_id);
  48. foreach ($channels as $value) {
  49. $pay_substitute = PaySubstituteSwitchService::getChannelSwitch($value->id);
  50. $value->paySubstituteSwitch =(bool)((int)$pay_substitute);
  51. }
  52. return response()->collection(new ChannelTransformer(), $channels);
  53. }
  54. // 删除站点
  55. public function deleteChannel(Request $request)
  56. {
  57. $channel_user_id = $this->getChannelUserId();
  58. $distribution_channel_id = $request->has('distribution_channel_id') ? (int)$request->input('distribution_channel_id') : '';
  59. if (empty($distribution_channel_id)) {
  60. return response()->error('PARAM_EMPTY');
  61. }
  62. \Log::info('deleteChannel_start:'.$distribution_channel_id);
  63. // 检测未解绑公众号
  64. $exist_official_account = OfficialAccount::getOneOfficialAuthAccounts($distribution_channel_id,1,1);
  65. if(!empty($exist_official_account)){
  66. return response()->error('UNABLE_DEL_EXIST_GZH');
  67. }
  68. // 检测账户余额
  69. $finance_stat = FinancialStatService::getFinancialStatSingle($distribution_channel_id);
  70. $enable_withdrawal_amount = $finance_stat ? (float)$finance_stat->enable_withdrawal_amount : 0;
  71. \Log::info('deleteChannel_start:'.$distribution_channel_id.' $enable_withdrawal_amount:'.$enable_withdrawal_amount);
  72. if($enable_withdrawal_amount > 0){
  73. return response()->error('UNABLE_DEL_EXIST_WITHDRAWL_AMOUNT');
  74. }
  75. \Log::info('deleteChannel_after_check:'.$distribution_channel_id.' channel_user_id:'.$channel_user_id);
  76. ChannelService::deleteChannel($distribution_channel_id, $channel_user_id);
  77. return response()->success();
  78. }
  79. /**
  80. * @apiVersion 1.0.0
  81. * @apiDescription 设置站点别名
  82. * @api {POST} channels/setsitename 设置站点别名
  83. * @apiGroup Channel
  84. * @apiName setSiteNickName
  85. * @apiParam {Number} distribution_channel_id 渠道id
  86. * @apiParam {String} site_name 名称
  87. * @apiSuccessExample {json} Success-Response:
  88. *
  89. * {
  90. * "code": 0,
  91. * "msg": "",
  92. * "data":
  93. * {
  94. * }
  95. * }
  96. */
  97. public function setSiteNickName(Request $request)
  98. {
  99. $distribution_channel_id = $request->has('distribution_channel_id') ? (int)$request->input('distribution_channel_id') : '';
  100. $site_name = $request->has('site_name') ? $request->input('site_name') : '';
  101. if (empty($distribution_channel_id) || empty($site_name)) {
  102. return response()->error('PARAM_EMPTY');
  103. }
  104. ChannelService::setChannelSiteNickName($distribution_channel_id, $site_name);
  105. return response()->success();
  106. }
  107. public function updateDistributionOuterSiteSwitch(Request $request)
  108. {
  109. $status = $request->has('status') ? $request->input('status') : '0';
  110. $distribution_channel_id = $this->getChannelId();
  111. \Log::info('updateDistributionOuterSiteSwitch:$distribution_channel_id:' . $distribution_channel_id . ' $status:' . $status);
  112. ChannelService::updateDistributionOuterSiteSwitch($distribution_channel_id, $status);
  113. return response()->success();
  114. }
  115. public function updateDistributionOldUserSiteSwitch(Request $request)
  116. {
  117. $status = $request->has('status') ? $request->input('status') : '0';
  118. $distribution_channel_id = $this->getChannelId();
  119. \Log::info('updateDistributionOldUserSiteSwitch:$distribution_channel_id:' . $distribution_channel_id . ' $status:' . $status);
  120. ChannelService::updateDistributionOldUserSiteSwitch($distribution_channel_id, $status);
  121. return response()->success();
  122. }
  123. public function getDistributionChannel(Request $request)
  124. {
  125. $distribution_channel_id = $this->getChannelId();
  126. $channel = ChannelService::getDistributionChannel($distribution_channel_id);
  127. return response()->success($channel);
  128. }
  129. public function getDistributionChannelSwitchByCategory(Request $request)
  130. {
  131. $category = $request->has('category') ? $request->input('category') : '';
  132. if (empty($category)) {
  133. return response()->error('PARAM_EMPTY');
  134. }
  135. $distribution_channel_id = $this->getChannelId();
  136. $channel = ChannelService::getDistributionChannelSwitchByCategory($distribution_channel_id,$category);
  137. $is_show = 0;
  138. if(!empty($channel)){
  139. $is_show = 1;
  140. }
  141. // 开放全部:周报、图片素材上传
  142. if(in_array($category,array('weekly_report','create_img_chapter'))){
  143. $is_show = 1;
  144. }
  145. return response()->success($is_show);
  146. }
  147. }