Przeglądaj źródła

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

chenweida 7 lat temu
rodzic
commit
884c75c518

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/config/MvcConfig.java

@ -15,7 +15,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
 * Created by chenweida on 2017/4/6.
 */
@Configuration
@Profile({"test", "prod"})
//@Profile({"test", "prod"})
public class MvcConfig extends WebMvcConfigurerAdapter {
    private Logger logger = LoggerFactory.getLogger(MvcConfig.class);

+ 27 - 7
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/interceptors/DoctorInterceptor.java

@ -10,6 +10,7 @@ import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.method.HandlerMethod;
@ -31,9 +32,15 @@ public class DoctorInterceptor extends BaseInterceptor {
    private Logger logger = LoggerFactory.getLogger(DoctorInterceptor.class);
    public static String status = "1";
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        boolean flag = true;
        if(Flag.close.equals(status)){
            return true;
        }
        try {
            request.setCharacterEncoding("UTF-8");
            response.setHeader("Content-type", "text/html;charset=UTF-8");
@ -60,11 +67,11 @@ public class DoctorInterceptor extends BaseInterceptor {
            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;
            logger.debug("tokenStr:"+tokenStr);
            logger.debug("uid:"+uid);
            logger.debug("imei:"+imei);
            logger.debug("observer:"+observer);
            logger.debug("platform:"+platform);
            logger.debug("tokenStr:" + tokenStr);
            logger.debug("uid:" + uid);
            logger.debug("imei:" + imei);
            logger.debug("observer:" + observer);
            logger.debug("platform:" + platform);
            //如果是观察者直接返回true
            if (!org.springframework.util.StringUtils.isEmpty(observer) && observer.equals("1")) {
@ -116,7 +123,7 @@ public class DoctorInterceptor extends BaseInterceptor {
            Map<String, Token> tempMap = null;
            if (platform == 2) {
                tempMap = SystemData.doctorTokens;
            }else if(platform == 4){
            } else if (platform == 4) {
                tempMap = SystemData.doctorPCTokens;
            }
            token = tempMap.get(uid);
@ -128,7 +135,7 @@ public class DoctorInterceptor extends BaseInterceptor {
                }
            }
            //  2、医生端app,3、微信公众号wechat,4、医生端pc,或者 PC端取药系统  或者对外系统
            if (token == null || (token.getPlatform() != 2&&token.getPlatform() != 4)) {
            if (token == null || (token.getPlatform() != 2 && token.getPlatform() != 4)) {
                // 未登录
                response.getOutputStream().write(error(SystemConf.NOT_LOGIN, "请登录后再操作!").getBytes("UTF-8"));
                flag = false;
@ -159,6 +166,8 @@ public class DoctorInterceptor extends BaseInterceptor {
        return flag;
    }
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        if (null == request.getAttribute("log-start")) {
@ -196,4 +205,15 @@ public class DoctorInterceptor extends BaseInterceptor {
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    }
    public String getStatus() {
        return status;
    }
    @Value("${interceptor.doctor.status}")
    public void setStatus(String status) {
        DoctorInterceptor.status = status;
    }
}

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

@ -21,7 +21,8 @@ import java.io.PrintWriter;
@Aspect
@Component
public class GateWayAOP {
    private  ThreadLocal entityThreadLocal=new ThreadLocal();
    private ThreadLocal entityThreadLocal = new ThreadLocal();
    //Controller层切点路径
    @Pointcut("execution(* com.yihu.wlyy.web..*.*(..))")
    public void controllerAspect() {
@ -40,10 +41,30 @@ public class GateWayAOP {
        try {
            obj = point.proceed();
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
        request.setAttribute("returnObj",obj);
        request.setAttribute("returnObj", obj);
        return obj;
    }
}
enum Flag {
    close("0"),
    open("1");
    Flag(String value) {
        this.value = value;
    }
    private String value;
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
}

+ 12 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/interceptors/GateWayInterceptor.java

@ -20,6 +20,7 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.web.context.HttpRequestResponseHolder;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@ -48,6 +49,7 @@ public class GateWayInterceptor implements HandlerInterceptor {
    private GcHttpLogDao httpLogDao;
    @Autowired
    private GcTokenDao gcTokenDaoDao;
    public static String status = "1";
    /**
@ -162,4 +164,14 @@ public class GateWayInterceptor implements HandlerInterceptor {
        gcHttpLog.setMessage(message);
        httpLogDao.save(gcHttpLog);
    }
    public static String getStatus() {
        return status;
    }
    @Value("${interceptor.accesstoken.status}")
    public static void setStatus(String status) {
        DoctorInterceptor.status = status;
    }
}

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

@ -9,6 +9,7 @@ import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.method.HandlerMethod;
@ -29,6 +30,8 @@ public class PatientInterceptor extends BaseInterceptor {
    private Logger logger = LoggerFactory.getLogger(PatientInterceptor.class);
    public static String status = "1";
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        boolean flag = true;
@ -139,4 +142,12 @@ public class PatientInterceptor extends BaseInterceptor {
    }
    public static String getStatus() {
        return status;
    }
    @Value("${interceptor.patient.status}")
    public static void setStatus(String status) {
        DoctorInterceptor.status = status;
    }
}

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/gateway/GcTokenService.java

@ -22,7 +22,7 @@ public class GcTokenService {
    private GcTokenLogDao tokenLogDao;
    @Autowired
    private GcTokenDao tokenDao;
    @Value("${accesstoken.time}")
    @Value("${interceptor.accesstoken.time}")
    private Integer tokenTime;
    /**

+ 87 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/common/util/ManagerUtilController.java

@ -1,6 +1,9 @@
package com.yihu.wlyy.web.common.util;
import com.alibaba.fastjson.JSONObject;
import com.yihu.wlyy.interceptors.DoctorInterceptor;
import com.yihu.wlyy.interceptors.GateWayInterceptor;
import com.yihu.wlyy.interceptors.PatientInterceptor;
import com.yihu.wlyy.repository.consult.ConsultTeamDoctorDao;
import com.yihu.wlyy.service.app.disease.PatientDiseaseService;
import com.yihu.wlyy.service.app.scheduling.DoctorWorkTimeService;
@ -263,4 +266,88 @@ public class ManagerUtilController extends BaseController {
        }
    }
    //---------------------------获取在线人数相关 end---------------------------------
    //----------------------------权限相关 start---------------------------------
    @RequestMapping(value = "/closeAll", method = RequestMethod.POST)
    @ApiOperation("关闭全部拦截")
    public String closeAll() {
        try {
            String close = "0";
            DoctorInterceptor.status = close;
            PatientInterceptor.status = close;
            GateWayInterceptor.status = close;
            return write(200, "关闭成功");
        } catch (Exception e) {
            return error(-1, "启动失败");
        }
    }
    @RequestMapping(value = "/openAll", method = RequestMethod.POST)
    @ApiOperation("开启全部拦截")
    public String openAll() {
        try {
            String open = "1";
            DoctorInterceptor.status = open;
            PatientInterceptor.status = open;
            GateWayInterceptor.status = open;
            return write(200, "关闭成功");
        } catch (Exception e) {
            return error(-1, "启动失败");
        }
    }
    @RequestMapping(value = "/closeByType", method = RequestMethod.POST)
    @ApiOperation("根据类型关闭拦截")
    public String closeByType(
            @ApiParam(name = "type", value = "1 患者端 2医生端 3对外", required = true) @RequestParam(value = "type", required = true) String type) {
        try {
            String close = "0";
            switch (type) {
                case "1": {
                    DoctorInterceptor.status = close;
                    break;
                }
                case "2": {
                    PatientInterceptor.status = close;
                    break;
                }
                case "3": {
                    GateWayInterceptor.status = close;
                    break;
                }
            }
            return write(200, "关闭成功");
        } catch (Exception e) {
            return error(-1, "启动失败");
        }
    }
    @RequestMapping(value = "/openByTYpe", method = RequestMethod.POST)
    @ApiOperation("根据类型开启拦截")
    public String openByTYpe(
            @ApiParam(name = "type", value = "1 患者端 2医生端 3对外", required = true) @RequestParam(value = "type", required = true) String type) {
        try {
            String open = "1";
            switch (type) {
                case "1": {
                    DoctorInterceptor.status = open;
                    break;
                }
                case "2": {
                    PatientInterceptor.status = open;
                    break;
                }
                case "3": {
                    GateWayInterceptor.status = open;
                    break;
                }
            }
            return write(200, "开启成功");
        } catch (Exception e) {
            return error(-1, "启动失败");
        }
    }
    //----------------------------权限相关 end---------------------------------
}

+ 10 - 2
patient-co/patient-co-wlyy/src/main/resources/application.yml

@ -80,8 +80,16 @@ security:
    password: jkzlehr
accesstoken:
  time: 2 ##对外接的accesstoken生命周期 2小时
##拦截器开关
interceptor:
  doctor:
    status: 0 ###  1开启 0 关闭
  patient:
    status: 0 ###  1开启 0 关闭
  accesstoken:
    status: 0 ###  1开启 0 关闭
    time: 2 ##对外接的accesstoken生命周期 2小时
---
##测试的配置