LAPTOP-KB9HII50\70708 2 éve
szülő
commit
91916b1edc

+ 11 - 22
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/third/patient/PatientNoLoginEndPoint.java

@ -17,7 +17,7 @@ import com.yihu.jw.wechat.service.WechatInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.axis.utils.StringUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
@ -61,8 +61,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
     * @return
     */
    @RequestMapping(value = "/getXOpenidByCode", method = {RequestMethod.POST, RequestMethod.GET})
    public Envelop getXOpenidByCode(String code, @RequestParam(value = "patientId", required = false)String patientId) throws Exception {
    public Envelop getXOpenidByCode(String code){
        try {
            //通过redis获取openid, 获取不到,则调用微信接口去取
            String key = wxId+":code";
@ -71,29 +70,19 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
                return success(PatientRequestMapping.Wechat.api_success,openid);
            }
            org.json.JSONObject json = wechatInfoService.getXOpenidByCode(code, wxId);
            if (!StringUtils.isEmpty(patientId)){
            if(json.has("openid")){
                openid = json.getString("openid");
                String unionid = json.getString("unionid");
                List<BasePatientWechatDo> list = basePatientWechatDao.findByWechatIdAndPatientId(wxId,patientId);
                if (list!=null&&list.size()>0){
                    for (BasePatientWechatDo basePatientWechatDo:list){
                        basePatientWechatDo.setXopenid(openid);
                        basePatientWechatDo.setUnionid(unionid);
                        basePatientWechatDao.save(basePatientWechatDo);
                    }
                }else {
                    BasePatientWechatDo basePatientWechatDo = new BasePatientWechatDo();
                    basePatientWechatDo.setPatientId(patientId);
                    basePatientWechatDo.setWechatId(wxId);
                    basePatientWechatDo.setCreateTime(new Date());
                    basePatientWechatDo.setXopenid(openid);
                    basePatientWechatDo.setUnionid(unionid);
                    basePatientWechatDao.save(basePatientWechatDo);
                }
                JSONObject res = new JSONObject();
                res.put("openid",openid);
                res.put("unionid",json.getString("unionid"));
                res.put("session_key",json.getString("session_key"));
                redisTemplate.opsForValue().set(key,openid);
                redisTemplate.expire(key,10, TimeUnit.SECONDS);
                return success(PatientRequestMapping.Wechat.api_success,res);
            }else {
                return Envelop.getError("获取失败");
            }
            return success(PatientRequestMapping.Wechat.api_success,json);
        } catch (Exception e){
            return  failedException2(e);
        }