소스 검색

健康文章推送openid去重

liuwenbin 7 년 전
부모
커밋
18929badb0

+ 11 - 0
common/common-entity/src/main/java/com/yihu/es/entity/HealthEduArticleES.java

@ -9,6 +9,7 @@ import org.springframework.data.annotation.Transient;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
 * 推送记录表
@ -66,6 +67,8 @@ public class HealthEduArticleES {
    @Transient
    private Boolean newArricleFlag;//新版文章推送标志(不保存ES)
    @Transient
    private Set<String> openidSet;//本次发送文章的openid的总集合
    //说明:如医生推送文章给5个居民,则保存5条userType=1的记录和1条userType=2的记录(共6条)
    //业务需求:userType=1为居民被推送文章列表;userType=2医生推送的文章列表;
@ -396,4 +399,12 @@ public class HealthEduArticleES {
    public HealthEduArticleES() {
    }
    public Set<String> getOpenidSet() {
        return openidSet;
    }
    public void setOpenidSet(Set<String> openidSet) {
        this.openidSet = openidSet;
    }
}

+ 2 - 6
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/activemq/HealthArtListener.java

@ -153,7 +153,7 @@ public class HealthArtListener implements MessageListener {
                        json);
            }
            //发送代理人
            JSONArray jsonArray = weiXinOpenIdUtils.getAgentOpenId(patient.getCode(), patient.getOpenid());
            JSONArray jsonArray = weiXinOpenIdUtils.getAgentOpenId(patient.getCode(), one.getOpenidSet());
            if (jsonArray != null && jsonArray.length() > 0) {
                for (int i = 0; i < jsonArray.length(); i++) {
                    org.json.JSONObject j = jsonArray.getJSONObject(i);
@ -161,11 +161,7 @@ public class HealthArtListener implements MessageListener {
                    json.remove("toUser");
                    json.put("toUser", member.getCode());
                    json.remove("first");
                    try {
                        json.put("first", weiXinOpenIdUtils.getTitleMes(patient, j.isNull("relation") ? 1 : j.getInt("relation"), patient.getName()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    json.put("first", weiXinOpenIdUtils.getTitleMes(patient, j.isNull("relation") ? 1 : j.getInt("relation"), patient.getName()));
                    if (StringUtils.isNotBlank(member.getOpenid())) {
                        pushMsgTask.putWxMsg(weiXinAccessTokenUtils.getAccessToken(), 9, member.getOpenid(), patient.getName(), json);
                    }

+ 32 - 5
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/wechat/util/WeiXinOpenIdUtils.java

@ -11,10 +11,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
 * Created by Trick on 2017/4/20.
@ -132,8 +129,38 @@ public class WeiXinOpenIdUtils {
        return result;
    }
    /**
     * 查找代理人的openId
     * @param code
     * @return
     */
    public JSONArray getAgentOpenId(String code,Set<String> openidSet) {
        JSONArray result = new JSONArray();
        StringBuffer sql = new StringBuffer("SELECT * FROM wlyy_patient_family_member t WHERE t.patient = '" + code + "' and t.is_authorize =1 ");
        List<Map<String, Object>> members = jdbcTemplate.queryForList(sql.toString());
        if (members != null && members.size() > 0) {
            for (Map<String, Object> member : members) {
                String memberCode = (String) member.get("family_member");
                if (StringUtils.isNotBlank(memberCode)) {
                    Patient p = patientDao.findByCode(memberCode);
                    if (StringUtils.isNotBlank(p.getOpenid())&&!openidSet.contains(p.getOpenid())) {
                        openidSet.add(p.getOpenid());
                        JSONObject json = new JSONObject();
                        json.put("member", p);
                        json.put("relation", (int) member.get("family_relation"));
                        result.put(json);
                    }
                }
            }
        }
        return result;
    }
    public String getTitleMes(Patient p, int ralation, String dealerName) throws Exception {
        return "因您是" + relations.get(familyRelationTrans(p, ralation)) + p.getName() + "的代理人,故请将该消息传达给" + dealerName + ":";
//        return "因您是" + relations.get(familyRelationTrans(p, ralation)) + p.getName() + "的代理人,故请将该消息传达给" + dealerName + ":";
        return "因您是家人"  + p.getName() + "的代理人,故请将该消息传达给" + dealerName + ":";
    }
    /**

+ 15 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/jimeiJkEdu/JMJkEduArticleService.java

@ -370,8 +370,7 @@ public class JMJkEduArticleService extends BaseService {
                                                     String currentUserRoleCode,
                                                     String currentUserRoleLevel) throws Exception {
        Set<String> openidSet = getOpenid(patientSet);
        List<HealthEduArticleES> healthEduArticleESList = new ArrayList<>();
        Doctor doctor = doctorDao.findByCode(sendCode);
        AdminTeam adminTeam =null;
@ -473,6 +472,7 @@ public class JMJkEduArticleService extends BaseService {
//            healthEduArticleES.setSendSource();
            healthEduArticleES.setAllCount(patientSet.size());
            healthEduArticleES.setUserType(1);
            healthEduArticleES.setOpenidSet(openidSet);
            healthEduArticleESList.add(healthEduArticleES);
        }
@ -1490,4 +1490,17 @@ public class JMJkEduArticleService extends BaseService {
//        List<HealthEduArticleES> esList = elasticsearchUtil.excute(sql.toString(),HealthEduArticleES.class, esIndex, esType);
//        return esList;
//    }
    public Set<String> getOpenid(Set<String> patientSet){
        Set<String> openidSet = new HashSet<>(patientSet);
        Patient one = null;
        for (String patient : patientSet) {
            one = patientDao.findByCode(patient);
            if(one==null){
                continue;
            }
            openidSet.add(one.getOpenid());
        }
        return openidSet;
    }
}

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/kit/DoctorKitController.java

@ -88,7 +88,7 @@ public class DoctorKitController extends BaseController {
    }
    @RequestMapping(value = "/oneDayDrugUse", method = RequestMethod.GET)
    @ApiOperation("药盒统计分析--获取某个居民的所绑定的所有药盒设备信息")
    @ApiOperation("药盒统计分析--获取某个居民一天的用药提醒闹钟")
    public String oneDayDrugUse(
            @ApiParam(name = "patientCode", value = "居民code", required = true) @RequestParam(value = "patientCode", required = true) String patientCode,
            @ApiParam(name = "useDrugStatus", value = "居民用药记录情况(1、按时,2、超时,3、漏用)", required = false) @RequestParam(value = "useDrugStatus", required = false) Integer useDrugStatus,