chenweida před 7 roky
rodič
revize
f6d5bb9ef1

+ 0 - 57
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/aop/UserFilterAOP.java

@ -1,57 +0,0 @@
package com.yihu.wlyy.aop;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.yihu.wlyy.repository.security.TokenDao;
@Component
@Aspect
public class UserFilterAOP {
	@Autowired
	public TokenDao tokenDao;
//	private JSONObject getAgent() {
//		try {
//			HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
//			String userAgent = request.getHeader("User-Agent");
//			return new JSONObject(userAgent);
//		} catch (Exception e) {
//			return null;
//		}
//	}
//
//	@Before("execution(* com.yihu.wlyy.service.app..*.*(..))")
//	public void before() throws Exception {
//		JSONObject json = getAgent();
//		if(json == null){
//			// 未登录
//			throw new InvalidUserException(SystemConf.NOT_LOGIN, "请登录后再操作!");
//		}
//		String user = json.getString("uid");
//		String imei = json.getString("imei");
//		int platform = json.getInt("platform");
//
//		Token token = SystemData.allUserTokens.get(user);
//		if (token == null) {
//			token = tokenDao.findByUser(user, platform);
//			if (token == null) {
//				// 未登录
//				throw new InvalidUserException(SystemConf.NOT_LOGIN, "请登录后再操作!");
//			} else {
//				if (token.getTimeout().getTime() < new Date().getTime()) {
//					// 登录超时
//					throw new InvalidUserException(SystemConf.LOGIN_TIMEOUT, "登录超时,请重新登录");
//				} else if (!StringUtils.equals(imei, token.getImei())) {
//					// 别处登录
//					throw new InvalidUserException(SystemConf.LOGIN_OTHER, "帐号在别处登录,请重新登录");
//				} else {
//					// 登录正常,更新缓存
//					SystemData.allUserTokens.put(user, token);
//				}
//			}
//		}
//	}
}

+ 3 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/interceptors/PatientInterceptor.java

@ -61,13 +61,13 @@ public class PatientInterceptor extends BaseInterceptor {
            }
            Token token = null;
            if (platform == 1 || platform == 3) {
            if (platform == 3) {
                token = SystemData.patientTokens.get(user);
            }
            if (token == null) {
                token = tokenDao.findByPatient(user, platform);
                // 加入缓存
                if (platform == 1 || platform == 3) {
                if (platform == 3) {
                    SystemData.patientTokens.put(user, token);
                }
            }
@ -86,7 +86,7 @@ public class PatientInterceptor extends BaseInterceptor {
                        // 今天未更新,则更新缓存
                        token.setCzrq(new Date());
                        // 更新内存
                        if (platform == 1||platform == 3) {
                        if (platform == 3) {
                            SystemData.patientTokens.put(user, token);
                        }
                        // 更新数据库

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 30
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/BaseService.java


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

@ -56,7 +56,7 @@ public class TokenService extends BaseService {
			throw new Exception("Token生成失败");
		}
		// 更新token缓存
		if (platform == 1||platform == 3) {
		if (platform == 3) {
			SystemData.patientTokens.put(user, token);
		} else if (platform == 2) {
			SystemData.doctorTokens.put(user, token);
@ -102,11 +102,8 @@ public class TokenService extends BaseService {
		// 删除老的token
		tokenDao.deleteByUser(uid);
		// 更新token缓存
		if (platform == 1||platform == 3) {
		if (platform == 3) {
			SystemData.patientTokens.remove(uid);
			//删除用户的openId
			//Patient patient=patientDao.findByCode(uid);
			//patient.setOpenid("");
		} else if (platform == 2) {
			SystemData.doctorTokens.remove(uid);
		}

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

@ -12,5 +12,5 @@ public class SystemData {
	// 医生pc端验证信息
	public static Map<String, Token> doctorPCTokens = new HashMap<String, Token>(); // 4
	// 患者验证信息
	public static Map<String, Token> patientTokens = new HashMap<String, Token>(); //1 3
	public static Map<String, Token> patientTokens = new HashMap<String, Token>(); // 3
}

+ 0 - 228
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/common/account/PCLoginController.java

@ -1,228 +0,0 @@
//package com.yihu.wlyy.web.common.account;
//
//import com.yihu.wlyy.entity.doctor.profile.Doctor;
//import com.yihu.wlyy.entity.login.LoginLog;
//import com.yihu.wlyy.entity.patient.Patient;
//import com.yihu.wlyy.entity.security.Token;
//import com.yihu.wlyy.repository.security.TokenDao;
//import com.yihu.wlyy.service.common.SMSService;
//import com.yihu.wlyy.service.common.account.DoctorService;
//import com.yihu.wlyy.service.common.account.PatientService;
//import com.yihu.wlyy.service.common.account.RoleService;
//import com.yihu.wlyy.service.common.account.TokenService;
//import com.yihu.wlyy.service.common.login.LoginLogService;
//import com.yihu.wlyy.util.DateUtil;
//import com.yihu.wlyy.util.MD5;
//import com.yihu.wlyy.util.RSAUtils;
//import com.yihu.wlyy.util.SystemData;
//import com.yihu.wlyy.web.BaseController;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiParam;
//import org.apache.commons.lang3.StringUtils;
//import org.json.JSONObject;
//import org.patchca.color.SingleColorFactory;
//import org.patchca.filter.predefined.*;
//import org.patchca.service.ConfigurableCaptchaService;
//import org.patchca.utils.encoder.EncoderHelper;
//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;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import javax.servlet.http.HttpSession;
//import java.awt.*;
//import java.io.IOException;
//import java.util.*;
//import java.util.List;
//
////import io.swagger.annotations.Api;
//
///**
// * @author calvin
// */
//@Controller
//@RequestMapping(value = "/loginPC", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
//@Api(description = "健康师登录取药系统")
//public class PCLoginController extends BaseController {
//
//    @Autowired
//    private DoctorService doctorService;
//
//    @Autowired
//    private TokenService tokenService;
//
//    @Autowired
//    private SMSService smsService;
//
//    @Autowired
//    public TokenDao tokenDao;
//
//    @Autowired
//    private RoleService roleService;
//    @Autowired
//    private LoginLogService loginLogService;
//
//    /**
//     *
//     * @param mobile 手机号
//     * @param captcha 短信验证码
//     * @param platform  1、患者端,2、医生端app,3、微信公众号wechat,4、医生端pc,5PC端取药系统
//     * @param password 密码
//     * @return
//     */
//    @RequestMapping(value = "doctor",method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ResponseBody
//    public String doctor(@ApiParam(required = false, name = "mobile", value = "手机号") @RequestParam(required = false,value = "mobile") String mobile,
//                         @ApiParam(required = false, name = "captcha", value = "短信验证码") @RequestParam(required = false) String captcha,
//                         @ApiParam(required = false, name = "platform", value = "医生端pc") @RequestParam(required = false,defaultValue = "4") Integer platform,
//                         @ApiParam(required = false, name = "password", value = "密码") @RequestParam(required = false) String password) {
//
//        String errorMessage;
//        LoginLog loginLog=new LoginLog();
//        loginLog.setCreateTime(new Date());
//        loginLog.setPhone(mobile);
//        loginLog.setType("2");
//        loginLog.setUserType("2");
//        loginLog.setAppVersion(super.getAppVersion());
//        try {
//            if(platform==null){
//                platform = 4;//默认为医生app端
//            }
//            //身份证登录
//            if(StringUtils.isNoneEmpty(mobile)&&StringUtils.isNoneEmpty(password)){
//                password = RSAUtils.getInstance(doctorService).decryptString(password);
//                password=StringUtils.reverse(password);
//                Doctor doctor=doctorService.findDoctorByMobile(mobile);
//                loginLog.setLoginType("2");
//                if(doctor==null){
//                    errorMessage="该号码未注册!";
//                    loginLog.setErrorMessage(errorMessage);
//                    loginLogService.saveLog(loginLog);
//                    return error(-1,errorMessage);
//                }
//                loginLog.setUserCode(doctor.getCode());
//                String loginPassword= MD5.GetMD5Code(password+doctor.getSalt());
//                if(loginPassword.equals(doctor.getPassword())){
//                    //使用i健康系统账号体系,只有健康师有权限登录取药系统
//                    if(doctor.getLevel()!=3){
//                        loginLog.setType("2");
//                        errorMessage="该用户角色没有登录权限!";
//                        loginLog.setErrorMessage(errorMessage);
//                        loginLogService.saveLog(loginLog);
//                        return error(-1, errorMessage);
//                    }
//
//
//                    // 用户校验通过,生成token
//                    Token token = tokenService.newToken(doctor.getCode(), "pc", platform);
//                    loginLog.setTokenId(token.getId());
//                    loginLog.setType("1");
//                    Map<String, Object> map = new HashMap<>();
//                    map.put("id", doctor.getId());
//                    map.put("uid", doctor.getCode());
//                    map.put("token", token.getToken());
//                    map.put("name", doctor.getName());
//                    map.put("hospital", doctor.getHospital());
//                    map.put("photo", doctor.getPhoto());
//                    // 设置医生类型:1专科医生,2全科医生,3健康管理师
//                    map.put("doctorType", doctor.getLevel());
//                    //获取医生角色和区域权限
////                    List<Map<String, String>> roleMap = roleService.getUserRoleAndArea(doctor.getCode());
////                    map.put("userRole", roleMap);
////                    if("10".equals(doctor.getLevel())&&roleMap.size()==0){
////                        errorMessage="该用户没有管理员权限";
////                        loginLog.setErrorMessage(errorMessage);
////                        loginLogService.saveLog(loginLog);
////                        return error(-1, errorMessage);
////                    }
//                    loginLogService.saveLog(loginLog);
//                    return write(200, "登录成功", "data", map);
//                }else{
//                    errorMessage="密码错误,登录失败";
//                    loginLog.setErrorMessage(errorMessage);
//                    loginLogService.saveLog(loginLog);
//                    return error(-1, errorMessage);
//                }
//            }
//            if(StringUtils.isNoneEmpty(mobile)&&StringUtils.isNoneEmpty(captcha)){
//                // 对验证码进行校验
//                int res = smsService.check(mobile, 5, captcha);
//                switch (res) {
//                    case -2:{
//                        errorMessage="验证码已过期!";
//                        loginLog.setErrorMessage(errorMessage);
//                        loginLogService.saveLog(loginLog);
//                        return error(-1, errorMessage);}
//                    case -1:{
//                        errorMessage="请输入正确的验证码!";
//                        loginLog.setErrorMessage(errorMessage);
//                        loginLogService.saveLog(loginLog);
//                        return error(-1, errorMessage);}
//                    case 0:{
//                        errorMessage="验证码无效!";
//                        loginLog.setErrorMessage(errorMessage);
//                        loginLogService.saveLog(loginLog);
//                        return error(-1, errorMessage);}
//                }
//                Doctor doctor = doctorService.findDoctorByMobile(mobile);
//                loginLog.setLoginType("1");
//                if (doctor == null) {
//                    errorMessage="该手机号未注册,请确认!";
//                    loginLog.setErrorMessage(errorMessage);
//                    loginLogService.saveLog(loginLog);
//                    return error(-1, errorMessage);
//                } else {
//                    loginLog.setUserCode(doctor.getCode());
//
//                    //使用i健康系统账号体系,只有健康师有权限登录取药系统
//                    if(doctor.getLevel()!=3){
//                        loginLog.setType("2");
//                        errorMessage="该用户角色没有登录权限!";
//                        loginLog.setErrorMessage(errorMessage);
//                        loginLogService.saveLog(loginLog);
//                        return error(-1, errorMessage);
//                    }
//
//                    // 用户校验通过,生成token
//                    Token token = tokenService.newToken(doctor.getCode(), "pc", platform);
//                    loginLog.setTokenId(token.getId());
//                    loginLog.setType("1");
//                    Map<String, Object> map = new HashMap<>();
//                    map.put("id", doctor.getId());
//                    map.put("uid", doctor.getCode());
//                    map.put("token", token.getToken());
//                    map.put("name", doctor.getName());
//                    map.put("hospital", doctor.getHospital());
//                    map.put("photo", doctor.getPhoto());
//                    // 设置医生类型:1专科医生,2全科医生,3健康管理师
//                    map.put("doctorType", doctor.getLevel());
//                    //获取医生角色和区域权限
////                    List<Map<String, String>> roleMap = roleService.getUserRoleAndArea(doctor.getCode());
////                    map.put("userRole", roleMap);
////                    if("10".equals(doctor.getLevel())&&roleMap.size()==0){
////                        errorMessage="改用户没有管理员权限";
////                        loginLog.setErrorMessage(errorMessage);
////                        loginLogService.saveLog(loginLog);
////                        return error(-1, errorMessage);
////                    }
//                    loginLogService.saveLog(loginLog);
//                    return write(200, "登录成功", "data", map);
//                }
//            }
//            errorMessage="登录信息不完整,请重新输入!";
//            loginLog.setErrorMessage(errorMessage);
//            loginLogService.saveLog(loginLog);
//            return error(-1,errorMessage);
//        } catch (Exception e) {
//            loginLog.setErrorMessage(e.getMessage());
//            loginLogService.saveLog(loginLog);
//            error(e);
//            return error(-1, "系统异常,登录失败");
//        }
//    }
//}