Parcourir la source

Merge branch 'dev' of yeshijie/patient-co-management into dev

trick9191 il y a 8 ans
Parent
commit
aa3894116f

+ 4 - 5
patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/security/Token.java

@ -1,12 +1,11 @@
package com.yihu.wlyy.entity.security;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.wlyy.entity.IdEntity;
import java.util.Date;
@Entity
@Table(name = "wlyy_token")
@ -14,7 +13,7 @@ public class Token extends IdEntity {
	private static final long serialVersionUID = -3297644428262254694L;
	private String user;
	private Integer platform;   // 1患者端,2医生端,3微信公众号
	private Integer platform;   // 1患者端,2医生端app,3微信公众号wechat,4医生端pc
	private Date timeout;
	private String imei;
	private String token;

+ 13 - 4
patient-co-wlyy/src/main/java/com/yihu/wlyy/interceptors/DoctorInterceptor.java

@ -16,6 +16,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
import java.util.Date;
import java.util.Map;
/**
 * 医生权限校验
@ -51,6 +52,7 @@ public class DoctorInterceptor extends BaseInterceptor {
            String uid = json.has("uid") ? json.getString("uid") : "";
            String imei = json.has("imei") ? json.getString("imei") : "";
            String observer = json.has("observer") ? json.getString("observer") : "";
            Integer platform  = json.has("platform") ? json.getInt("platform") : 2;
            //如果是观察者直接返回true
            if (!org.springframework.util.StringUtils.isEmpty(observer) && observer.equals("1")) {
                Class cls = ((HandlerMethod) handler).getBeanType();
@ -97,12 +99,19 @@ public class DoctorInterceptor extends BaseInterceptor {
                return false;
            }
            Token token = SystemData.doctorTokens.get(uid);
            Token token = null;
            Map<String, Token> tempMap = null;
            if(platform==2){
                tempMap = SystemData.doctorTokens;
            }else {
                tempMap = SystemData.doctorPCTokens;
            }
            token = tempMap.get(uid);
            if (token == null) {
                token = tokenDao.findByPatient(uid, 2);
                token = tokenDao.findByPatient(uid, platform);
                if (token != null) {
                    // 加入缓存
                    SystemData.doctorTokens.put(uid, token);
                    tempMap.put(uid, token);
                }
            }
            if (token == null || token.getPlatform() != 2) {
@ -124,7 +133,7 @@ public class DoctorInterceptor extends BaseInterceptor {
                        // 今天未更新,则更新缓存
                        token.setCzrq(new Date());
                        // 更新内存
                        SystemData.doctorTokens.put(uid, token);
                        tempMap.put(uid, token);
                        // 更新数据库
                        tokenDao.save(token);
                    }

+ 4 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/security/TokenDao.java

@ -13,6 +13,10 @@ public interface TokenDao extends PagingAndSortingRepository<Token, Long> {
	@Modifying
	@Query("delete Token a where a.user = ?1")
	int deleteByUser(String user);
	@Modifying
	@Query("delete Token a where a.user = ?1 and platform=?2")
	int deleteByUserAndPlatform(String user,Integer platform);
	
	@Modifying
	@Query("delete Token a where a.token = ?1")

+ 8 - 7
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/common/account/TokenService.java

@ -1,18 +1,17 @@
package com.yihu.wlyy.service.common.account;
import java.util.Date;
import com.yihu.wlyy.repository.patient.PatientDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import com.yihu.wlyy.entity.security.Token;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.security.TokenDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.util.DateUtil;
import com.yihu.wlyy.util.MD5;
import com.yihu.wlyy.util.SystemData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
@Component
@Transactional(rollbackFor = Exception.class)
@ -63,6 +62,8 @@ public class TokenService extends BaseService {
			SystemData.doctorTokens.put(user, token);
		} else if (platform == 3) {
			SystemData.wxPatientTokens.put(user, token);
		}else if(platform == 4){
			SystemData.doctorPCTokens.put(user,token);
		}
		return token;
	}

+ 5 - 3
patient-co-wlyy/src/main/java/com/yihu/wlyy/util/SystemData.java

@ -1,14 +1,16 @@
package com.yihu.wlyy.util;
import com.yihu.wlyy.entity.security.Token;
import java.util.HashMap;
import java.util.Map;
import com.yihu.wlyy.entity.security.Token;
public class SystemData {
	// 医生验证信息
	// 医生app验证信息
	public static Map<String, Token> doctorTokens = new HashMap<String, Token>();
	// 医生pc端验证信息
	public static Map<String, Token> doctorPCTokens = new HashMap<String, Token>();
	// 患者验证信息
	public static Map<String, Token> patientTokens = new HashMap<String, Token>();
	// 患者公众号验证信息

+ 7 - 5
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/common/account/LoginController.java

@ -27,7 +27,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@ -36,8 +35,6 @@ import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.awt.*;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.*;
import java.util.List;
@ -133,6 +130,7 @@ public class LoginController extends BaseController {
     *  @param mobile  手机号
     * @param captcha 短信验证码
     * @param idcard  身份证号
     * @param platform  // 1患者端,2医生端app,3微信公众号wechat,4医生端pc
     * @param password 密码
     * @return
     */
@ -141,6 +139,7 @@ public class LoginController extends BaseController {
    public String doctor(@RequestParam(required = false) String mobile,
                         @RequestParam(required = false) String captcha,
                         @RequestParam(required = false) String idcard,
                         @RequestParam(required = false) Integer platform,
                         @RequestParam(required = false) String password) {
        String errorMessage;
        LoginLog loginLog=new LoginLog();
@ -156,6 +155,9 @@ public class LoginController extends BaseController {
                loginLogService.saveLog(loginLog);
                return error(-1, errorMessage);
            }
            if(platform==null){
                platform = 2;//默认为医生app端
            }
            //身份证登录
            if(StringUtils.isNoneEmpty(mobile)&&StringUtils.isNoneEmpty(password)){
                password = RSAUtils.getInstance(doctorService).decryptString(password);
@ -172,7 +174,7 @@ public class LoginController extends BaseController {
                String loginPassword= MD5.GetMD5Code(password+doctor.getSalt());
                if(loginPassword.equals(doctor.getPassword())){
                    // 用户校验通过,生成token
                    Token token = tokenService.newToken(doctor.getCode(), getIMEI(), 2);
                    Token token = tokenService.newToken(doctor.getCode(), getIMEI(), platform);
                    loginLog.setTokenId(token.getId());
                    loginLog.setType("1");
                    Map<String, Object> map = new HashMap<>();
@ -232,7 +234,7 @@ public class LoginController extends BaseController {
                } else {
                    loginLog.setUserCode(doctor.getCode());
                    // 用户校验通过,生成token
                    Token token = tokenService.newToken(doctor.getCode(), getIMEI(), 2);
                    Token token = tokenService.newToken(doctor.getCode(), getIMEI(), platform);
                    loginLog.setTokenId(token.getId());
                    loginLog.setType("1");
                    Map<String, Object> map = new HashMap<>();