StoreAuditController.php 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <?php
  2. namespace addons\Happiness\backend\controllers;
  3. use addons\Happiness\common\enums\HappinessEnum;
  4. use addons\Happiness\common\models\HappinessStore;
  5. use addons\Happiness\common\models\HappinessStoreCardInfo;
  6. use addons\HuifuPay\common\service\HuifuService;
  7. use common\enums\AddonsEnum;
  8. use common\enums\StatusEnum;
  9. use common\models\common\Region;
  10. use common\models\user\User;
  11. class StoreAuditController extends BaseController
  12. {
  13. public function actionIndex()
  14. {
  15. if (!\Yii::$app->request->isAjax) {
  16. $upload_license_image = \Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_HAPPINESS,
  17. 'enter.upload_license_image');
  18. if(empty($upload_license_image)) $upload_license_image= 0;
  19. return $this->render('/store-audit/index',['upload_license_image'=>$upload_license_image]);
  20. }
  21. if (\Yii::$app->request->isGet) {
  22. $page = \Yii::$app->request->get('page', 1);
  23. $limit = \Yii::$app->request->get('limit', $this->pageSize);
  24. $tabname = \Yii::$app->request->get('tabname', 'waiting-audit');
  25. if (!in_array($tabname, ['waiting-audit', 'reject'])) {
  26. return $this->error('参数错误');
  27. }
  28. if ('waiting-audit' == $tabname) {
  29. $check_status = HappinessEnum::CHECK_WAITING;
  30. } else {
  31. $check_status = HappinessEnum::CHECK_FAILED;
  32. }
  33. $store_name = \Yii::$app->request->get('store_name');
  34. $cate_id = \Yii::$app->request->get('cate_id');
  35. $storeowner = \Yii::$app->request->get('storeowner');
  36. $nickname = \Yii::$app->request->get('nickname');
  37. $wheres[] = ['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, 'check_status' => $check_status];
  38. if (!empty($cate_id)) {
  39. $wheres[] = ['c_id' => $cate_id];
  40. }
  41. if (!empty($store_name)) {
  42. $wheres[] = ['like', 'store_name', $store_name];
  43. }
  44. if (!empty($storeowner)) {
  45. $wheres[] = ['like', 'shop_owner', $storeowner];
  46. }
  47. if (!empty($nickname)) {
  48. $users = User::find()
  49. ->select('id,nickname,mobile,avatar_url')
  50. ->where(['like', 'nickname', $nickname])
  51. ->andWhere(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED])
  52. ->asArray()
  53. ->indexBy('id')
  54. ->all();
  55. $user_ids = array_column($users, 'id');
  56. $wheres[] = ['user_id' => $user_ids];
  57. }
  58. $params = [
  59. 'select' => 'id,mall_id,user_id,shop_owner,shop_mobile,store_name,business_id,province_id,city_id,district_id,address,logo_img,check_status,created_at,license_img',
  60. 'where' => $wheres,
  61. 'order' => 'created_at desc',
  62. 'page' => $page,
  63. 'with' => ['business'=>function ($query) {
  64. $query->select('id,nickname,mobile');
  65. }],
  66. 'limit' => $limit,
  67. ];
  68. $happiness_list = HappinessStore::listPage($params);
  69. if (false === $happiness_list) {
  70. return $this->error(HappinessStore::getStaticError());
  71. }
  72. if (!empty($happiness_list['list'])) {
  73. if (empty($users)) {
  74. $user_ids = array_unique(array_column($happiness_list['list'], 'user_id'));
  75. $users = User::find()
  76. ->select('id,nickname,mobile,avatar_url')
  77. ->where(['id' => $user_ids, 'mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED])
  78. ->asArray()
  79. ->indexBy('id')
  80. ->all();
  81. }
  82. $region_ids = [];
  83. $province_ids = array_unique(array_column($happiness_list['list'], 'province_id'));
  84. $city_ids = array_unique(array_column($happiness_list['list'], 'city_id'));
  85. $district_ids = array_unique(array_column($happiness_list['list'], 'district_id'));
  86. $region_ids = array_merge($province_ids, $city_ids, $district_ids);
  87. $regions = Region::find()
  88. ->select('id,name')
  89. ->where(['id' => $region_ids])
  90. ->asArray()
  91. ->indexBy('id')
  92. ->all();
  93. foreach ($happiness_list['list'] as &$list) {
  94. $user = $users[$list['user_id']] ?? [];
  95. $province = $regions[$list['province_id']] ?? [];
  96. $city = $regions[$list['city_id']] ?? [];
  97. $district = $regions[$list['district_id']] ?? [];
  98. $list['nickname'] = $user['nickname'] ?? '';
  99. $list['user_mobile'] = $user['mobile'] ?? '';
  100. $list['avatar_url'] = $user['avatar_url'] ?: \Yii::$app->request->hostInfo . '/resources/img/common/default-avatar.png';
  101. $list['store_address'] = ($province['name'] ?? '') . ($city['name'] ?? '') . ($district['name'] ?? '') . $list['address'];
  102. if ($list['check_status'] == HappinessEnum::CHECK_WAITING) {
  103. $list['check_status'] = 1;
  104. }
  105. if($list['business'])
  106. {
  107. $list['business']['avatar_url']=$list['business']['avatar_url'] ?: \Yii::$app->request->hostInfo . '/resources/img/common/default-avatar.png';
  108. }
  109. }
  110. }
  111. return $this->success('success', $happiness_list);
  112. }
  113. }
  114. /**
  115. * @name:
  116. * @msg: 门店审核
  117. * @param {*}
  118. * @return {*}
  119. */
  120. public function actionAudit()
  121. {
  122. if (!\Yii::$app->request->isPost) {
  123. return $this->error('请求方式错误');
  124. }
  125. $post = \Yii::$app->request->post();
  126. if (!in_array($post['action'], ['adopt', 'reject'])) {
  127. return $this->error('参数错误');
  128. }
  129. $rules = [
  130. [['id', 'action'], 'required'],
  131. ['id', 'integer'],
  132. [['action', 'check_remark'], 'string'],
  133. ['check_remark', 'safe'],
  134. ['check_remark', 'string', 'max' => 255],
  135. ];
  136. $res = \Yii::$app->services->validate->validate($post, $rules);
  137. if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
  138. if ('adopt' == $post['action']) {
  139. $check_status = HappinessEnum::CHECK_ADOPT;
  140. } else {
  141. $check_status = HappinessEnum::CHECK_FAILED;
  142. }
  143. $params = [
  144. 'mall_id' => $this->mall_id,
  145. 'id' => $post['id'],
  146. 'check_status' => $check_status,
  147. 'check_remark' => $post['check_remark'] ?? '',
  148. ];
  149. $res = HappinessStore::setData($params);
  150. if (false === $res) {
  151. return $this->error(HappinessStore::getStaticError());
  152. }
  153. // 审核通过请求汇付创建用户
  154. if ($check_status == HappinessEnum::CHECK_ADOPT) {
  155. $huifuService = new HuifuService($this->mall_id);
  156. $cardInfo = HappinessStoreCardInfo::getOne(['store_id' => $post['id']],true);
  157. unset($cardInfo['id'],$cardInfo['store_id'],$cardInfo['created_at'],$cardInfo['updated_at']);
  158. $huifuRes = $huifuService->userIndv($cardInfo);
  159. // 错误提示
  160. if (is_string($huifuRes)) {
  161. return $this->error($huifuRes);
  162. }
  163. // 记录汇付id
  164. $storeModel = HappinessStore::findOne($post['id']);
  165. $storeModel->huifu_no = $huifuRes['huifu_id'];
  166. $storeModel->save();
  167. // 调用用户入驻业务接口
  168. $userBusiRes = $huifuService->userBusiOpen($cardInfo,$huifuRes['huifu_id']);
  169. // 错误提示
  170. if (is_string($userBusiRes)) {
  171. return $this->error($userBusiRes);
  172. }
  173. }
  174. return $this->success('操作成功');
  175. }
  176. }