getTemplate(); if (empty($result)){ Db::rollBack(); return fail(); } $template = json_decode($result,true); foreach ($template['data'] as $item){ $params = array(); $params['wx_template_id'] = $item['priTmplId']; $sub_template = SubTemplate::getOne($params); if (empty($sub_template)){ // 新增模版 $data = array(); $data['client_type'] = 1; $data['wx_template_id'] = $item['priTmplId']; $data['template_title'] = $item['title']; $data['template_type'] = $item['type']; $data['template_content'] = $item['content']; $sub_template = SubTemplate::addSubTemplate($data); if (empty($sub_template)){ Db::rollBack(); return fail(); } } } return success(); } /** * 修改用户头像 * @return array * @throws GuzzleException */ public function putUserAvatar(): array { $user_info = $this->request->getAttribute("userInfo") ?? []; $avatar = $this->request->input('avatar'); // 获取用户信息 $params = array(); $params['user_id'] = $user_info['user_id']; $user = User::getOne($params); if (empty($user)){ return fail(); } // 匹配去除oss网址 $avatar = PcreMatch::pregRemoveOssWebsite($avatar); Db::beginTransaction(); try { // 修改用户表 $data = array(); $data['avatar'] = $avatar; $params = array(); $params['user_id'] = $user_info['user_id']; User::editUser($params,$data); // 获取对应用户信息 if ($user['user_type'] == 1){ // 患者 $params = array(); $params['user_id'] = $user_info['user_id']; $user_patient = UserPatient::getOne($params); if (empty($user_patient)){ Db::rollBack(); return fail(); } if ($user_patient['avatar'] != $avatar) { $data = array(); $data['avatar'] = $avatar; $params = array(); $params['patient_id'] = $user_patient['patient_id']; UserPatient::editUserPatient($params,$data); } }elseif ($user['user_type'] == 2){ // 医生 $params = array(); $params['user_id'] = $user_info['user_id']; $user_doctor = UserDoctor::getOne($params); if (empty($user_doctor)){ Db::rollBack(); return fail(); } if ($user_doctor['avatar'] != $avatar) { $data = array(); $data['avatar'] = $avatar; $params = array(); $params['doctor_id'] = $user_doctor['doctor_id']; UserDoctor::editUserDoctor($params,$data); } }elseif ($user['user_type'] == 3){ // 药师 $params = array(); $params['user_id'] = $user_info['user_id']; $user_pharmacist = UserPatient::getOne($params); if (empty($user_pharmacist)){ Db::rollBack(); return fail(); } if ($user_pharmacist['avatar'] != $avatar) { $data = array(); $data['avatar'] = $avatar; $params = array(); $params['pharmacist_id'] = $user_pharmacist['pharmacist_id']; UserPatient::editUserPatient($params,$data); } } // 修改im头像 $profile = new Profile(); $arg = array(); $arg['Tag_Profile_IM_Image'] = addAliyunOssWebsite($avatar); $profile->setProfile($user_info['user_id'],$arg); Db::commit(); } catch (\Exception $e) { Db::rollBack(); return fail(HttpEnumCode::HTTP_ERROR, $e->getMessage()); } return success(); } /** * 修改用户名 * @return array */ public function putUserName(): array { $user_info = $this->request->getAttribute("userInfo") ?? []; $user_name = $this->request->input('user_name'); // 获取用户信息 $params = array(); $params['user_id'] = $user_info['user_id']; $user = User::getOne($params); if (empty($user)){ return fail(); } if ($user['user_type'] != 1){ return fail(HttpEnumCode::HTTP_ERROR,"禁止修改"); } if ($user['user_name'] == $user_name){ return success(); } Db::beginTransaction(); try { // 修改用户表 $data = array(); $data['user_name'] = $user_name; $params = array(); $params['user_id'] = $user['user_id']; User::editUser($params,$data); // 修改对应用户表 if ($user['user_type'] == 1){ // 患者 $data = array(); $data['user_name'] = $user_name; $params = array(); $params['user_id'] = $user['user_id']; UserPatient::editUserPatient($params,$data); } Db::commit(); } catch (\Exception $e) { Db::rollBack(); return fail(HttpEnumCode::SERVER_ERROR, $e->getMessage()); } return success(); } /** * 退出登陆 * @return array * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function putLoginout(): array { $user_info = $this->request->getAttribute("userInfo") ?? []; // 获取用户信息 $params = array(); $params['user_id'] = $user_info['user_id']; $user = User::getOne($params); if (empty($user)){ return fail(); } // 获取token $bearer_token = $this->request->getHeader('Authorization'); if (empty($bearer_token)){ return fail(); } $token = explode(' ', $bearer_token[0]); if (!isset($token[1])){ return fail(); } $redis = $this->container->get(Redis::class); // 旧token加入黑名单 5天有效期,5天内,无法继续进行访问 $res = $redis->set('jwt_black_' . $token[1], time(), 60*60*24*5); if (!$res) { return fail(HttpEnumCode::SERVER_ERROR); } return success(); } /** * 获取用户收获地址列表 * @return array */ public function getUserAddress(): array { $user_info = $this->request->getAttribute("userInfo") ?? []; $params = array(); $params['user_id'] = $user_info['user_id']; $user_ship_address = UserShipAddress::getList($params); if (empty($user_ship_address)){ return success(); } return success($user_ship_address->toArray()); } /** * 获取用户收获地址详情 * @return array */ public function getUserAddressInfo(): array { $user_info = $this->request->getAttribute("userInfo") ?? []; $address_id = $this->request->route('address_id'); $params = array(); $params['address_id'] = $address_id; $params['user_id'] = $user_info['user_id']; $user_ship_address = UserShipAddress::getOne($params); if (empty($user_ship_address)){ return fail(); } return success($user_ship_address->toArray()); } /** * 添加用户收获地址列表 * @return array */ public function addUserAddress(): array { $user_info = $this->request->getAttribute("userInfo") ?? []; $request_params = $this->request->all(); $areaService = new AreaService(); $req = $areaService->checkAreaById($request_params['province_id'],$request_params['city_id'],$request_params['county_id']); if(empty($req)){ return fail(HttpEnumCode::HTTP_ERROR,"地区选择错误"); } $area = $areaService->getAreaById($request_params['province_id'],$request_params['city_id'],$request_params['county_id']); if ($request_params['is_default'] == 1){ // 获取默认地址 $params = array(); $params['user_id'] = $user_info['user_id']; $params['is_default'] = $request_params['is_default']; $user_ship_address = UserShipAddress::getOne($params); if (!empty($user_ship_address)){ // 存在默认 } } // 获取默认地址 $params = array(); $params['user_id'] = $user_info['user_id']; $params['is_default'] = $request_params['is_default']; $user_ship_address = UserShipAddress::getOne($params); if (empty($user_ship_address)){ // 不存在默认 }else{ // 存在默认 } return success(); } /** * 通过user_id获取用户openid * @param string|int $user_id * @param int $user_type * @return string */ public function getOpenIdWithUserId(string|int $user_id,int $user_type): string { $open_id = ''; if ($user_type == 1){ // 患者 $params = array(); $params['user_id'] = $user_id; $user_patient = UserPatient::getOne($params); if (empty($user_patient)){ return ""; } if (empty($user_patient['open_id'])){ return ""; } $open_id = $user_patient['open_id']; }elseif ($user_type == 2){ // 医生 $params = array(); $params['user_id'] = $user_id; $user_doctor = UserDoctor::getOne($params); if (empty($user_doctor)){ return ""; } if (empty($user_doctor['open_id'])){ return ""; } $open_id = $user_doctor['open_id']; }elseif ($user_type == 3){ // 药师 $params = array(); $params['user_id'] = $user_id; $user_pharmacist = UserPatient::getOne($params); if (empty($user_pharmacist)){ return ""; } if (empty($user_pharmacist['open_id'])){ return ""; } $open_id = $user_pharmacist['open_id']; } return $open_id; } }