Selaa lähdekoodia

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

# Conflicts:
#	gateway/ag-basic/src/main/java/com/yihu/jw/gateway/filter/PostFilter.java
wangzhinan 4 vuotta sitten
vanhempi
commit
79ca3c8246

+ 64 - 1
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/web/endpoint/EnvelopRestEndpoint.java

@ -7,6 +7,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.restmodel.web.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.util.StringUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@ -16,6 +17,7 @@ import javax.servlet.http.HttpServletResponse;
import java.beans.PropertyDescriptor;
import java.io.IOException;
import java.lang.reflect.Method;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.*;
@ -28,7 +30,7 @@ import java.util.*;
 *
 * @author Progr1mmer
 */
public abstract class EnvelopRestEndpoint {
public abstract class EnvelopRestEndpoint extends Exception {
    @Autowired
    protected ObjectMapper objectMapper;
@ -196,6 +198,67 @@ public abstract class EnvelopRestEndpoint {
        return failed(message, -10000);
    }
    protected Envelop failedException(Exception e){
        if (e.getClass().equals(DataAccessException.class))
        {
            e.printStackTrace();//数据库操作失败
            return null;
        } else if (e.getClass().toString().equals(
                NullPointerException.class.toString()))
        {
            e.printStackTrace();
            //调用了未经初始化的对象或者是不存在的对象!
            return failed("空指针",170004);
        } else if (e.getClass().equals(IOException.class))
        {
            e.printStackTrace();
            //IO异常!
            return null;
        } else if (e.getClass().equals(ClassNotFoundException.class))
        {
            e.printStackTrace();//指定的类不存在!
            return null;
        } else if (e.getClass().equals(ArithmeticException.class))
        {
            e.printStackTrace();//数学运算异常!
            return null;
        } else if (e.getClass().equals(ArrayIndexOutOfBoundsException.class))
        {
            e.printStackTrace();
            //数组下标越界!
            return null;
        } else if (e.getClass().equals(IllegalArgumentException.class))
        {
            e.printStackTrace();
            //方法的参数错误!
            return null;
        } else if (e.getClass().equals(ClassCastException.class))
        {
            e.printStackTrace();//类型强制转换错误!
            return null;
        } else if (e.getClass().equals(SecurityException.class))
        {
            e.printStackTrace();//违背安全原则异常!
            return null;
        } else if (e.getClass().equals(SQLException.class))
        {
            e.printStackTrace();//操作数据库异常!
            return null;
        } else if (e.getClass().equals(NoSuchMethodError.class))
        {
            e.printStackTrace();//方法末找到异常!
            return null;
        } else if (e.getClass().equals(InternalError.class))
        {
            e.printStackTrace();//Java虚拟机发生了内部错误
            return null;
        } else
        {
            e.printStackTrace();//程序内部错误,操作失败!
            return null;
        }
    }
    protected Envelop failed (String message, int status) {
        Envelop envelop = new Envelop();
        envelop.setMessage(message);

+ 33 - 45
gateway/ag-basic/src/main/java/com/yihu/jw/gateway/filter/PostFilter.java

@ -39,52 +39,40 @@ public class PostFilter extends ZuulFilter {
    @Override
    public Object run() {
        RequestContext ctx = RequestContext.getCurrentContext();
        logger.info("进入post过滤器"+ctx.getResponseStatusCode()+"==="+ctx.getRequest().getServletPath()+"==="+ctx.getResponse().getStatus()+"==");
        if (ctx.getRequest().getServletPath().contains("/hospital/")){
            if (ctx.getResponse().getStatus()==500){
                ctx.setSendZuulResponse(false);
                ctx.setThrowable(null);
                ctx.setResponseStatusCode(10111);
            }
        logger.info("进入post过滤器");
        HttpServletRequest request = ctx.getRequest();
        String url = request.getRequestURI();
        if (url.contains("/excelControl")){
            return true;
        }
        InputStream stream = RequestContext.getCurrentContext().getResponseDataStream();
        try {
        byte[] bytes;
        if(RequestContext.getCurrentContext().getResponseGZipped()){
            GZIPInputStream gzipInputStream = null;
            gzipInputStream = new GZIPInputStream(stream);
            bytes = StreamUtils.copyToByteArray(gzipInputStream);
        }else {
            bytes = StreamUtils.copyToByteArray(stream);
        }
        String body = new String(bytes,"UTF8");
        JSONObject object = new JSONObject();
        object.put("status","200");
        object.put("data", AesEncryptUtils.encrypt(body));
        if (!(url.contains("/open/noLogin/notify")||
            url.contains("/open/noLogin/ylzReceiveNotify")||
            url.contains("/open/noLogin/receiveNotify")||
            url.contains("/open/noLogin/getSFExpressInfoNew")||
            url.contains("/open/noLogin/sfroutepushservice")||
            url.contains("/open/noLogin/ylzSettleRecord")||
                url.contains("/weixin")||url.contains("/oauth/getSsoPublicKey"))){
            RequestContext.getCurrentContext().setResponseBody(object.toJSONString());
        }else {
            RequestContext.getCurrentContext().setResponseBody(body);
        }
        if (ctx.getResponse().getStatus()!=500){
            HttpServletRequest request = ctx.getRequest();
            String url = request.getRequestURI();
            if (url.contains("/excelControl")){
                return true;
            }
            InputStream stream = RequestContext.getCurrentContext().getResponseDataStream();
            try {
                byte[] bytes;
                if(RequestContext.getCurrentContext().getResponseGZipped()){
                    GZIPInputStream gzipInputStream = null;
                    gzipInputStream = new GZIPInputStream(stream);
                    bytes = StreamUtils.copyToByteArray(gzipInputStream);
                }else {
                    bytes = StreamUtils.copyToByteArray(stream);
                }
                String body = new String(bytes,"UTF8");
                logger.info("body"+body);
                JSONObject object = new JSONObject();
                object.put("status","200");
                object.put("data", AesEncryptUtils.encrypt(body));
                if (!(url.contains("/open/noLogin/notify")||
                        url.contains("/open/noLogin/ylzReceiveNotify")||
                        url.contains("/open/noLogin/receiveNotify")||
                        url.contains("/open/noLogin/getSFExpressInfoNew")||
                        url.contains("/open/noLogin/sfroutepushservice")||
                        url.contains("/open/noLogin/ylzSettleRecord")||
                        url.contains("/weixin")||url.contains("/oauth/getSsoPublicKey"))){
                    RequestContext.getCurrentContext().setResponseBody(object.toJSONString());
                }else {
                    RequestContext.getCurrentContext().setResponseBody(body);
                }
                logger.info(ctx.getResponseBody()+"");
            } catch (Exception e) {
                logger.info("");
                e.printStackTrace();
            }
        logger.info(ctx.getResponseBody()+"");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
 

+ 8 - 3
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/patient/PatientNoLoginEndPoint.java

@ -344,13 +344,18 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
    @GetMapping(value = BaseHospitalRequestMapping.PatientNoLogin.findDoctorInfo)
    @ApiOperation(value = "获取医生信息", notes = "获取医生信息")
    public ObjEnvelop findDoctorInfo(@ApiParam(name = "doctor", value = "医生code")
    public Envelop findDoctorInfo(@ApiParam(name = "doctor", value = "医生code")
                                     @RequestParam(value = "doctor", required = true)String doctor,
                                     @ApiParam(name = "withWork", value = "传1带排班,其他不带")
                                     @RequestParam(value = "withWork", required = false)String withWork,
                                     @ApiParam(name = "patient", value = "患者code")
                                         @RequestParam(value = "patient", required = false)String patient){
        return success(prescriptionService.findDoctorInfo(doctor,withWork,patient));
                                         @RequestParam(value = "patient", required = false)String patient)throws Exception{
        try {
            return success(prescriptionService.findDoctorInfo(doctor,withWork,patient));
        }catch (Exception e){
            return  failedException(e);
        }
    }