WechatKeywordsController.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. /**
  3. * 微信公众号关键词回复设置
  4. * @file:WechatKeywordsController.php
  5. * @Date: 2023/7/5
  6. * @Time: 15:00
  7. */
  8. namespace Modules\WechatPlatform\Http\Controllers;
  9. use Catch\Base\CatchController;
  10. use Catch\Exceptions\FailedException;
  11. use Illuminate\Http\Request;
  12. use Illuminate\Support\Facades\DB;
  13. use Modules\Manage\Enmus\MiniprogramType;
  14. use Modules\User\Http\Controllers\UserTrait;
  15. use Modules\WechatPlatform\Http\Requests\WechatKeywordsRequest;
  16. use Modules\WechatPlatform\Services\WechatKeywordsService;
  17. class WechatKeywordsController extends CatchController
  18. {
  19. use UserTrait;
  20. /**
  21. * 关键词列表
  22. * name: List
  23. * @param Request $request
  24. * date 2023/07/05 15:10
  25. */
  26. public function List(Request $request)
  27. {
  28. }
  29. /**
  30. * 添加
  31. * name: add
  32. * @param WechatKeywordsRequest $request
  33. * date 2023/07/05 15:36
  34. */
  35. public function add(WechatKeywordsRequest $request)
  36. {
  37. $param = $request->validated();
  38. $param = $this->WechatKeywordsParam($param);
  39. $userContext = $this->getUserContext(null);
  40. $param['user_id'] = $userContext['loginUser']->id;
  41. $param['puser_id'] = $userContext['loginUser']->pid;
  42. return WechatKeywordsService::addKeyword($param);
  43. }
  44. private function WechatKeywordsParam(mixed $param)
  45. {
  46. if (getProp($param,'type') != 'miniprogram'){
  47. return $param;
  48. }
  49. $info = DB::table('miniprogram')->where('id',$param['miniprogram_id'])->first();
  50. if(empty($info)){
  51. throw new FailedException("小程序不正确");
  52. }
  53. if($info->status != 1){
  54. throw new FailedException("此小程序暂不提供使用");
  55. }
  56. if ($info->type != MiniprogramType::WEIXIN->value()){
  57. throw new FailedException("关键词回复设置仅支持微信小程序");
  58. }
  59. $param['miniprogram_appid'] = $info->appid;
  60. $info = DB::table('user_has_miniprograms')->where('uid',$this->getLoginUserId())->where('miniprogram_id',$param['miniprogram_id'])->where('is_enabled',1)->value('id');
  61. if(empty($info)){
  62. throw new FailedException("没有此小程序的使用权限");
  63. }
  64. return $param;
  65. }
  66. /**
  67. * 编辑
  68. * name: edit
  69. * @param $id
  70. * @param WechatKeywordsRequest $request
  71. * date 2023/07/05 15:36
  72. */
  73. public function edit($id, WechatKeywordsRequest $request)
  74. {
  75. }
  76. /**
  77. * 详情
  78. * name: detail
  79. * @param $id
  80. * date 2023/07/05 15:36
  81. */
  82. public function detail($id)
  83. {
  84. }
  85. /**
  86. * 分配
  87. * name: allocation
  88. * @param $id
  89. * @param Request $request
  90. * date 2023/07/05 16:03
  91. */
  92. public function allocation($id,Request $request)
  93. {
  94. }
  95. /**
  96. * 删除
  97. * name: del
  98. * @param $id
  99. * date 2023/07/05 15:47
  100. */
  101. public function del($id)
  102. {
  103. }
  104. }