微信后端代码
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

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));
}
}