|
|
|
@ -1,11 +1,10 @@
|
|
|
|
|
package com.ruoyi.system.service.impl;
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.ruoyi.common.constant.Constants;
|
|
|
|
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
|
|
|
|
import com.ruoyi.common.core.domain.model.LoginUser;
|
|
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
|
|
import com.ruoyi.common.utils.MessageUtils;
|
|
|
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
|
|
|
import com.ruoyi.common.utils.http.HttpUtils;
|
|
|
|
|
import com.ruoyi.common.utils.ip.IpUtils;
|
|
|
|
@ -20,10 +19,12 @@ import com.ruoyi.system.domain.resp.GetOpenidResp;
|
|
|
|
|
import com.ruoyi.system.mapper.TDoctorMapper;
|
|
|
|
|
import com.ruoyi.system.mapper.TPatientMapper;
|
|
|
|
|
import com.ruoyi.system.mapper.TWechatUserMapper;
|
|
|
|
|
import com.ruoyi.system.service.ISysUserService;
|
|
|
|
|
import com.ruoyi.system.service.IWechatService;
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
@ -66,6 +67,9 @@ public class WechatServiceImpl implements IWechatService {
|
|
|
|
|
@Resource
|
|
|
|
|
private UserTokenService userTokenService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private ISysUserService userService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public GetOpenidResp getOpenid(GetOpenidReq req, HttpServletRequest request) {
|
|
|
|
|
//查询openid
|
|
|
|
@ -151,12 +155,24 @@ public class WechatServiceImpl implements IWechatService {
|
|
|
|
|
wechatUser.setUserId(currentDoctor.getId());
|
|
|
|
|
tDoctor.setId(currentDoctor.getId());
|
|
|
|
|
} else {
|
|
|
|
|
// 不存在 患者信息入库
|
|
|
|
|
SysUser sysUser = new SysUser();
|
|
|
|
|
sysUser.setPhonenumber(req.getPhone());
|
|
|
|
|
sysUser.setUserName(req.getPhone());
|
|
|
|
|
sysUser.setNickName(req.getName());
|
|
|
|
|
sysUser.setStatus("0");
|
|
|
|
|
sysUser.setDelFlag("0");
|
|
|
|
|
sysUser.setPassword(SecurityUtils.encryptPassword("123456"));
|
|
|
|
|
Long[] roles = new Long[]{3L};
|
|
|
|
|
sysUser.setRoleIds(roles);
|
|
|
|
|
userService.insertUser(sysUser);
|
|
|
|
|
// 不存在 医生信息入库
|
|
|
|
|
tDoctor.setDelFlag("0");
|
|
|
|
|
tDoctor.setCreateTime(new Date());
|
|
|
|
|
tDoctor.setUpdateTime(new Date());
|
|
|
|
|
tDoctor.setUserId(sysUser.getUserId());
|
|
|
|
|
tDoctorMapper.insertTDoctor(tDoctor);
|
|
|
|
|
wechatUser.setUserId(tDoctor.getId());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// 绑定openid
|
|
|
|
|
wechatUser.setUnionid(req.getUnionid());
|
|
|
|
@ -183,6 +199,7 @@ public class WechatServiceImpl implements IWechatService {
|
|
|
|
|
String url = String.format(WechatKeys.WECHAT_CODE_TO_UNIONID_URL, wechatAppId, wechatSecret, req.getCode());
|
|
|
|
|
String json = HttpUtils.sendGet(url);
|
|
|
|
|
JSONObject jsonObject = JSONObject.parseObject(json);
|
|
|
|
|
logger.info("login wechat user info :{}", jsonObject.toJSONString());
|
|
|
|
|
String unionid = (String) jsonObject.get("unionid");
|
|
|
|
|
logger.info("login openid:{}", unionid);
|
|
|
|
|
if (StringUtils.isEmpty(unionid)) {
|
|
|
|
@ -256,7 +273,8 @@ public class WechatServiceImpl implements IWechatService {
|
|
|
|
|
loginUser.setUserId(tDoctor.getUserId());
|
|
|
|
|
SysUser user = new SysUser();
|
|
|
|
|
user.setUserId(tDoctor.getUserId());
|
|
|
|
|
user.setUserName(tDoctor.getName());
|
|
|
|
|
user.setUserName(tDoctor.getPhone());
|
|
|
|
|
user.setNickName(tDoctor.getName());
|
|
|
|
|
user.setDelFlag(tDoctor.getDelFlag());
|
|
|
|
|
user.setSex(tDoctor.getSex());
|
|
|
|
|
user.setPhonenumber(tDoctor.getPhone());
|
|
|
|
|