You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					77 lines
				
				2.4 KiB
			
		
		
			
		
	
	
					77 lines
				
				2.4 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								package com.ynxbd.wx.ext.report;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.bean.Patient;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.dao.PatientDao;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.helper.common.HttpHelper;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.wx.config.WeChatConfig;
							 | 
						||
| 
								 | 
							
								import lombok.extern.slf4j.Slf4j;
							 | 
						||
| 
								 | 
							
								import org.apache.commons.lang3.StringUtils;
							 | 
						||
| 
								 | 
							
								import org.slf4j.MDC;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import javax.servlet.ServletException;
							 | 
						||
| 
								 | 
							
								import javax.servlet.annotation.WebServlet;
							 | 
						||
| 
								 | 
							
								import javax.servlet.http.HttpServlet;
							 | 
						||
| 
								 | 
							
								import javax.servlet.http.HttpServletRequest;
							 | 
						||
| 
								 | 
							
								import javax.servlet.http.HttpServletResponse;
							 | 
						||
| 
								 | 
							
								import javax.servlet.http.HttpSession;
							 | 
						||
| 
								 | 
							
								import java.io.IOException;
							 | 
						||
| 
								 | 
							
								import java.nio.charset.StandardCharsets;
							 | 
						||
| 
								 | 
							
								import java.util.List;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * 石林体检报告
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @Author wsq
							 | 
						||
| 
								 | 
							
								 * @Date 2020/8/4 17:38
							 | 
						||
| 
								 | 
							
								 * @Copyright @ 2020 云南新八达科技有限公司 All rights reserved.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								@Slf4j
							 | 
						||
| 
								 | 
							
								@WebServlet("/ext/tj")
							 | 
						||
| 
								 | 
							
								public class TJServlet extends HttpServlet {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    @Override
							 | 
						||
| 
								 | 
							
								    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
							 | 
						||
| 
								 | 
							
								        MDC.remove("ip");
							 | 
						||
| 
								 | 
							
								        MDC.put("ip", HttpHelper.getIpAddress(req));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        HttpSession session = req.getSession();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Object openid = session.getAttribute("openid");
							 | 
						||
| 
								 | 
							
								        if (openid == null) {
							 | 
						||
| 
								 | 
							
								            log.info("[石林体检]openid为空");
							 | 
						||
| 
								 | 
							
								            String state = WeChatConfig.getBaseUrl() + "/ext/tj";
							 | 
						||
| 
								 | 
							
								            resp.sendRedirect("https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + WeChatConfig.APP_ID + "&redirect_uri=" + WeChatConfig.getBaseUrl() + "auth&response_type=code&scope=snsapi_userinfo&state=" + state + "#wechat_redirect");
							 | 
						||
| 
								 | 
							
								            return;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        List<Patient> patients = new PatientDao().selectListByOpenid(openid.toString());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        StringBuilder sb = new StringBuilder();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        String idCardNo;
							 | 
						||
| 
								 | 
							
								        for (int i = 0; i < patients.size(); i++) {
							 | 
						||
| 
								 | 
							
								            idCardNo = patients.get(i).getIdCardNo();
							 | 
						||
| 
								 | 
							
								            if (StringUtils.isEmpty(idCardNo)) break;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            idCardNo = encode(idCardNo);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            sb.append(idCardNo);
							 | 
						||
| 
								 | 
							
								            if ((i + 1) != patients.size()) {
							 | 
						||
| 
								 | 
							
								                sb.append(",");
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        resp.sendRedirect("http://www.slxrmyy.cn:9899/?id=" + sb);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * BASE64加密
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param data data
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    private static String encode(String data) {
							 | 
						||
| 
								 | 
							
								        return java.util.Base64.getEncoder().encodeToString(data.getBytes(StandardCharsets.UTF_8));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |