Преглед на файлове

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

wangjun преди 3 години
родител
ревизия
c7737aca1b
променени са 17 файла, в които са добавени 259 реда и са изтрити 44 реда
  1. 61 2
      business/sms-service/src/main/java/com/yihu/jw/sms/service/TXYSmsService.java
  2. 21 2
      common/common-util/src/main/java/com/yihu/jw/util/wechat/WeiXinMessageReplyUtils.java
  3. 3 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/org/BaseOrgEndpoint.java
  4. 4 1
      svr/svr-base/src/main/java/com/yihu/jw/base/service/org/BaseOrgService.java
  5. 9 0
      svr/svr-cloud-care/sql/init.sql
  6. 8 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/course/RecruitStudentsDao.java
  7. 4 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/org/OrgEndpoint.java
  8. 13 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/patient/PatientEndpoint.java
  9. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/wechat/WechatCoreController.java
  10. 22 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/consult/ConsultTeamService.java
  11. 23 23
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/course/CourseService.java
  12. 5 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/org/BaseOrgService.java
  13. 19 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/patient/CarePatientService.java
  14. 66 11
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/wechat/WeiXinEventProcess.java
  15. BIN
      svr/svr-cloud-care/src/main/resources/image/doorCoach.png
  16. BIN
      svr/svr-cloud-care/src/main/resources/image/index.png
  17. BIN
      svr/svr-cloud-care/src/main/resources/image/online.png

+ 61 - 2
business/sms-service/src/main/java/com/yihu/jw/sms/service/TXYSmsService.java

@ -1,6 +1,7 @@
package com.yihu.jw.sms.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
@ -36,6 +37,8 @@ public class TXYSmsService {
    @Autowired
    private StringRedisTemplate redisTemplate;
    private String key = "hz_yxyzh_wx_sms";
    private String SecretId;
    private String SecretKey;
    private String signName;
@ -46,7 +49,6 @@ public class TXYSmsService {
     * 初始化接口参数
     */
    private void init(){
        String key = "hz_yxyzh_wx_sms";
        if(redisTemplate.hasKey(key+ ":SecretId")){
            SecretId = redisTemplate.opsForValue().get(key + ":SecretId");
            SecretKey = redisTemplate.opsForValue().get(key + ":SecretKey");
@ -56,7 +58,7 @@ public class TXYSmsService {
            return;
        }
        List<WlyyHospitalSysDictDO> dictDOList = sysDictDao.findByDictName("hz_yxyzh_wx_sms");
        List<WlyyHospitalSysDictDO> dictDOList = sysDictDao.findByDictName(key);
        for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:dictDOList){
            if (wlyyHospitalSysDictDO.getDictCode().equalsIgnoreCase("SecretId")){
                SecretId=wlyyHospitalSysDictDO.getDictValue();
@ -115,4 +117,61 @@ public class TXYSmsService {
        return "error";
    }
    /**
     *
     * @param mobile
     * @param str {"templateCode":"VerificationCode","templateParamArr":["param1","param2","param3"]}
     * @return
     */
    public String sendMessageJson(String mobile,String str){
        try {
            init();
            Credential cred = new Credential(SecretId, SecretKey);
            JSONObject jsonObj = new JSONObject();
            try {
                jsonObj = JSONObject.parseObject(str);
                logger.info("字符串转JSONObject报错:"+str);
            }catch (Exception e){
                return "error";
            }
            String templateId = redisTemplate.opsForValue().get(key + ":"+jsonObj.getString("templateCode"));
            JSONArray templateParamArr = jsonObj.getJSONArray("templateParamArr");
            String[] templateParamSet1 = templateParamArr.toArray(new String[0]);
            HttpProfile httpProfile = new HttpProfile();
            httpProfile.setEndpoint("sms.tencentcloudapi.com");
            ClientProfile clientProfile = new ClientProfile();
            clientProfile.setHttpProfile(httpProfile);
            SmsClient client = new SmsClient(cred, "ap-nanjing", clientProfile);
            SendSmsRequest req = new SendSmsRequest();
            String[] phoneNumberSet1 = {"+86"+mobile};
            req.setPhoneNumberSet(phoneNumberSet1);
            req.setSmsSdkAppId(smsSdkAppId);
            req.setSignName(signName);
            req.setTemplateId(templateId);
            req.setTemplateParamSet(templateParamSet1);
            SendSmsResponse resp = client.SendSms(req);
            JSONObject json = JSON.parseObject(SendSmsResponse.toJsonString(resp));
            String res = json.getJSONArray("SendStatusSet").getJSONObject(0).getString("Code");
            if(!"Ok".equals(res)){
                logger.info("腾讯短信发送失败:"+SendSmsResponse.toJsonString(resp));
            }
            return res;
        }catch (TencentCloudSDKException e){
            e.printStackTrace();
            logger.info("腾讯短信报错:"+e.toString());
        }
        return "error";
    }
}

+ 21 - 2
common/common-util/src/main/java/com/yihu/jw/util/wechat/WeiXinMessageReplyUtils.java

@ -1,6 +1,5 @@
package com.yihu.jw.util.wechat;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -26,7 +25,7 @@ public class WeiXinMessageReplyUtils {
        result.append("<xml>");
        result.append("<ToUserName>" + toUser + "</ToUserName>");
        result.append("<FromUserName>" + fromUser + "</FromUserName>");
        result.append("<CreateTime>" + new Date().getTime() + "</CreateTime>");
        result.append("<CreateTime>" + System.currentTimeMillis() + "</CreateTime>");
        result.append("<MsgType>news</MsgType>");
        result.append("<ArticleCount>" + articles.size() + "</ArticleCount>");
        result.append("<Articles>");
@ -45,4 +44,24 @@ public class WeiXinMessageReplyUtils {
        return result.toString();
    }
    /**
     * 文本消息
     * @param toUser
     * @param fromUser
     * @param articles
     * @return
     * @throws Exception
     */
    public static String replyMessage(String toUser,String fromUser,String articles) throws Exception {
        StringBuilder result = new StringBuilder();
        result.append("<xml>");
        result.append("<ToUserName>" + toUser + "</ToUserName>");
        result.append("<FromUserName>" + fromUser + "</FromUserName>");
        result.append("<CreateTime>" + System.currentTimeMillis() + "</CreateTime>");
        result.append("<MsgType>text</MsgType>");
        result.append("<Content>" + articles + "</Content>");
        result.append("</xml>");
        return result.toString();
    }
}

+ 3 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/org/BaseOrgEndpoint.java

@ -145,11 +145,13 @@ public class BaseOrgEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "codeOrName", required = false) String codeOrName,
            @ApiParam(name = "orgStatus", value = "机构状态")
            @RequestParam(value = "orgStatus", required = false) String orgStatus,
            @ApiParam(name = "orgType", value = "机构类型: 1.等级医院 2.社区医院3.养老机构 4.教育机构")
            @RequestParam(value = "orgType", required = false) String orgType,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
        JSONObject result = baseOrgService.queryOrgBaseInfoList(codeOrName, orgStatus,page,size,wechatId);
        JSONObject result = baseOrgService.queryOrgBaseInfoList(codeOrName, orgStatus,orgType,page,size,wechatId);
        return success(result.getJSONArray("msg"),result.getInteger("count"),page,size);
    }

+ 4 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/org/BaseOrgService.java

@ -86,7 +86,7 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> {
     * @param orgStatus
     * @return
     */
    public JSONObject queryOrgBaseInfoList(String codeOrName,String orgStatus,int page,int size,String wechatId) throws Exception {
    public JSONObject queryOrgBaseInfoList(String codeOrName,String orgStatus,String orgType,int page,int size,String wechatId) throws Exception {
        JSONObject result = new JSONObject();
        int start = 0 == page ? page++ : (page - 1) * size;
        int end = 0 == size ? 15 : page * size;
@ -151,6 +151,9 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> {
                if (!StringUtil.isBlank(orgStatus)){
                    sql+=" and del = '"+orgStatus+"'";
                }
                if (!StringUtil.isBlank(orgType)){
                    sql+=" and type = '"+orgType+"'";
                }
                sql+="  ORDER BY\n" +
                        "\tcreate_time DESC";
                String finalSql = sql;

+ 9 - 0
svr/svr-cloud-care/sql/init.sql

@ -4,3 +4,12 @@ INSERT INTO `base`.`wlyy_hospital_sys_dict` (`id`, `saas_id`, `dict_name`, `dict
INSERT INTO `base`.`wlyy_hospital_sys_dict` (`id`, `saas_id`, `dict_name`, `dict_code`, `dict_value`, `py_code`, `sort`, `hospital`, `create_time`, `create_user`, `create_user_name`, `update_time`, `update_user`, `update_user_name`, `img_url`, `model_name`) VALUES ('hz_yxyzh_wx_sms_signName', NULL, 'hz_yxyzh_wx_sms', 'signName', '朝晖云照护', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `base`.`wlyy_hospital_sys_dict` (`id`, `saas_id`, `dict_name`, `dict_code`, `dict_value`, `py_code`, `sort`, `hospital`, `create_time`, `create_user`, `create_user_name`, `update_time`, `update_user`, `update_user_name`, `img_url`, `model_name`) VALUES ('hz_yxyzh_wx_sms_smsSdkAppId', NULL, 'hz_yxyzh_wx_sms', 'smsSdkAppId', '1400526119', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `base`.`wlyy_hospital_sys_dict` (`id`, `saas_id`, `dict_name`, `dict_code`, `dict_value`, `py_code`, `sort`, `hospital`, `create_time`, `create_user`, `create_user_name`, `update_time`, `update_user`, `update_user_name`, `img_url`, `model_name`) VALUES ('hz_yxyzh_wx_sms_VerificationCode', NULL, 'hz_yxyzh_wx_sms', 'VerificationCode', '969545', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `base`.`wlyy_hospital_sys_dict` (`id`, `saas_id`, `dict_name`, `dict_code`, `dict_value`, `py_code`, `sort`, `hospital`, `create_time`, `create_user`, `create_user_name`, `update_time`, `update_user`, `update_user_name`, `img_url`, `model_name`) VALUES ('808080eb791c71820179644adf58003e', NULL, 'orderPayStatus', '1', '待审核', '', '1', NULL, '2021-05-13 13:54:59.032', '123', NULL, '2021-05-13 13:54:59.032', '123', NULL, '', '订单支付状态');
INSERT INTO `base`.`wlyy_hospital_sys_dict` (`id`, `saas_id`, `dict_name`, `dict_code`, `dict_value`, `py_code`, `sort`, `hospital`, `create_time`, `create_user`, `create_user_name`, `update_time`, `update_user`, `update_user_name`, `img_url`, `model_name`) VALUES ('808080eb791c71820179644b2373003f', NULL, 'orderPayStatus', '2', '待支付', '', '2', NULL, '2021-05-13 13:55:16.467', '123', NULL, '2021-05-13 13:55:16.467', '123', NULL, '', '订单支付状态');
INSERT INTO `base`.`wlyy_hospital_sys_dict` (`id`, `saas_id`, `dict_name`, `dict_code`, `dict_value`, `py_code`, `sort`, `hospital`, `create_time`, `create_user`, `create_user_name`, `update_time`, `update_user`, `update_user_name`, `img_url`, `model_name`) VALUES ('808080eb791c71820179644b50730040', NULL, 'orderPayStatus', '3', '已支付', '', '3', NULL, '2021-05-13 13:55:27.987', '123', NULL, '2021-05-13 13:55:27.987', '123', NULL, '', '订单支付状态');
INSERT INTO `base`.`wlyy_hospital_sys_dict` (`id`, `saas_id`, `dict_name`, `dict_code`, `dict_value`, `py_code`, `sort`, `hospital`, `create_time`, `create_user`, `create_user_name`, `update_time`, `update_user`, `update_user_name`, `img_url`, `model_name`) VALUES ('808080eb791c71820179644bbddc0041', NULL, 'orderPayStatus', '4', '审核未通过', '', '4', NULL, '2021-05-13 13:55:55.996', '123', NULL, '2021-05-13 13:55:55.996', '123', NULL, '', '订单支付状态');
INSERT INTO `base`.`wlyy_hospital_sys_dict` (`id`, `saas_id`, `dict_name`, `dict_code`, `dict_value`, `py_code`, `sort`, `hospital`, `create_time`, `create_user`, `create_user_name`, `update_time`, `update_user`, `update_user_name`, `img_url`, `model_name`) VALUES ('808080eb791c71820179644c4e7a0043', NULL, 'orderPayStatus', '5', '已退款', '', '5', NULL, '2021-05-13 13:56:33.018', '123', NULL, '2021-05-13 16:02:53.057', '123', NULL, '', '订单支付状态');
INSERT INTO `base`.`wlyy_hospital_sys_dict` (`id`, `saas_id`, `dict_name`, `dict_code`, `dict_value`, `py_code`, `sort`, `hospital`, `create_time`, `create_user`, `create_user_name`, `update_time`, `update_user`, `update_user_name`, `img_url`, `model_name`) VALUES ('808080eb797db4ce01797e3f387a0003', NULL, 'orderPayStatus', '6', '退款中', '', '6', NULL, '2021-05-18 14:52:23.034', '123', NULL, '2021-05-18 14:52:23.034', '123', NULL, '', '订单支付状态');
INSERT INTO `base`.`wlyy_hospital_sys_dict` (`id`, `saas_id`, `dict_name`, `dict_code`, `dict_value`, `py_code`, `sort`, `hospital`, `create_time`, `create_user`, `create_user_name`, `update_time`, `update_user`, `update_user_name`, `img_url`, `model_name`) VALUES ('808080eb797db4ce01797e4111060004', NULL, 'orderPayStatus', '7', '已取消', '', '7', NULL, '2021-05-18 14:54:24.006', '123', NULL, '2021-05-18 14:54:24.006', '123', NULL, '', '订单支付状态');

+ 8 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/course/RecruitStudentsDao.java

@ -1,9 +1,14 @@
package com.yihu.jw.care.dao.course;
import com.yihu.jw.entity.care.course.RecruitStudentsDO;
import com.yihu.jw.entity.followup.Followup;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.Date;
import java.util.List;
/**
 * Created with IntelliJ IDEA.
 *
@ -13,4 +18,7 @@ import org.springframework.data.repository.PagingAndSortingRepository;
 */
public interface RecruitStudentsDao extends PagingAndSortingRepository<RecruitStudentsDO, String>, JpaSpecificationExecutor<RecruitStudentsDO> {
    @Query("select a from RecruitStudentsDO a where a.orgCode = ?1 and a.startTime < ?2 and a.endTime >?2 and a.del = 1")
    List<RecruitStudentsDO> findByOrgCode(String orgCode, Date nowDate);
}

+ 4 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/org/OrgEndpoint.java

@ -26,9 +26,11 @@ public class OrgEndpoint extends EnvelopRestEndpoint {
    public ListEnvelop findOrgList(@ApiParam(name = "type", value = "机构类型1. 等级医院2. 社区医院3.  养老机构")
                                      @RequestParam(value = "type", required = false) String type,
                                      @ApiParam(name = "name", value = "机构名称")
                                      @RequestParam(value = "name", required = false) String name) {
                                      @RequestParam(value = "name", required = false) String name,
                                      @ApiParam(name = "orgCode", value = "orgCode")
                                      @RequestParam(value = "orgCode", required = false) String orgCode) {
        try {
            return ListEnvelop.getSuccess("获取成功",orgService.findOrgList(type,name));
            return ListEnvelop.getSuccess("获取成功",orgService.findOrgList(type,name,orgCode));
        } catch (Exception e) {
            e.printStackTrace();
            return ListEnvelop.getError("获取失败");

+ 13 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/patient/PatientEndpoint.java

@ -12,6 +12,7 @@ import com.yihu.jw.exception.ApiException;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
@ -234,4 +235,16 @@ public class PatientEndpoint extends EnvelopRestEndpoint {
            return PageEnvelop.getError("查询失败");
        }
    }
    @GetMapping(value = "getFamilyAllArchiveType")
    @ApiOperation(value = "获取患者所有家庭成员档案类型-首页区分展示内容")
    public ObjEnvelop getFamilyAllArchiveType(@ApiParam(name="patient",value = "患者id")
                                              @RequestParam(value = "patient")String patient){
        try {
            return ObjEnvelop.getSuccess("查询成功",patientService.getFamilyAllArchiveType(patient));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("获取失败");
        }
    }
}

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/wechat/WechatCoreController.java

@ -93,6 +93,7 @@ public class WechatCoreController extends EnvelopRestEndpoint {
            if (validate(signature, timestamp, nonce)) {
                String xmlStr = weiXinCoreService.messageProcess(request, wxAccessTokenDO.getAccessToken());
                // 判断返回值是xml、json格式(取关是空串)
                System.out.println("xmlStr==="+xmlStr);
                Boolean flag = weiXinCoreService.isXML(xmlStr);
                if (xmlStr == "error") {
                    // 服务器错误
@ -101,7 +102,6 @@ public class WechatCoreController extends EnvelopRestEndpoint {
                    JSONObject json = new JSONObject(xmlStr);
                    if (json.has("openId")) {
                        if (StringUtils.isNotEmpty(json.getString("openId")) && !("undefined".equals(json.getString("openId")))) {
                            logger.info("调用眼科微信模板消息接口的入参:AccessToken="+wxAccessTokenDO.getAccessToken()+"---Openid="+json.getString(""));
                            WxTemplateConfigDO wxTemplateConfigDO = new WxTemplateConfigDO();
                            wxTemplateConfigDO.setRemark(json.toString());
                            weixinMessagePushUtils.putWxMsg(wxAccessTokenDO.getAccessToken(), json.getString("openId"), wxTemplateConfigDO);

+ 22 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/consult/ConsultTeamService.java

@ -24,9 +24,13 @@ import com.yihu.jw.im.dao.ConsultTeamDao;
import com.yihu.jw.im.util.ImUtil;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.sms.service.TXYSmsService;
import com.yihu.jw.sms.service.ZBSmsService;
import com.yihu.jw.utils.EntityUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -67,7 +71,10 @@ public class ConsultTeamService {
    private PatientDoorCoachOrderService doorCoachOrderService;
    @Autowired
    private PatientDoorCoachOrderService patientDoorCoachOrderService;
    @Autowired
    private TXYSmsService txySmsService;
    private Logger logger= LoggerFactory.getLogger(ConsultTeamService.class);
    public JSONObject updateIMMsg(String sessionId,String sessionType,String msgId,String content){
        JSONObject result = new JSONObject();
@ -308,6 +315,21 @@ public class ConsultTeamService {
        String orderHospital = doorServiceOrderDO.getHospital();
        List<Map<String,Object>> dispatcherInfoList =  doorCoachOrderService.queryDispatcherInfoByHospital(orderHospital);
        for (Map<String,Object> tmp:dispatcherInfoList){
            //发送短信给调度员 您有一条新的上门辅导申请,请进入调度平台处理。
            BaseDoctorDO doctorDO = doctorDao.findById(tmp.get("code").toString());
            if (doctorDO.getMobile()!=null){
                JSONObject sendObj = new JSONObject();
                sendObj.put("templateCode","VerificationCode");
                JSONArray paramArr = new JSONArray();
                paramArr.add("123123123123");
                sendObj.put("templateParamArr",paramArr);
                try {
                    txySmsService.sendMessageJson(doctorDO.getMobile(),sendObj.toJSONString());
                }catch (Exception e){
                    logger.info("发送腾讯短信给调度员报错:{"+doctorDO.getMobile()+"},"+sendObj.toJSONString());
                }
            }
            participants.put(tmp.get("code").toString(), 0);
        }
        String content = patientDO.getName() + "-发起上门辅导服务咨询";

+ 23 - 23
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/course/CourseService.java

@ -436,24 +436,26 @@ public class CourseService {
        String sql = "SELECT id,`name`,longitude,latitude FROM base.base_org where del = 1 and type = 4";
        List<Map<String , Object>> positionList = jdbcTemplate.queryForList(sql);
        List<Map<String,Object>> list = new ArrayList<>();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String nowDate = sdf.format(new Date());
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        if (positionList.size() > 0){
            for (int i=0;i<positionList.size();i++){
                String sql1 = "SELECT id,code,`name`,mobile,photo,address,longitude,latitude ,funDistance("+positionList.get(i).get("latitude")+","+positionList.get(i).get("longitude")+","+lat2+","+lon2+") funDistance FROM base.base_org where id = '"+positionList.get(i).get("id")+"'";
                List<Map<String , Object>> mapList = jdbcTemplate.queryForList(sql1);
//                base_recruit_students
                String allNumSql = "SELECT num FROM base_recruit_students WHERE org_code = '"+mapList.get(0).get("code")+"' AND del = 1 ";
                Integer allNum = jdbcTemplate.queryForObject(allNumSql,Integer.class);
                Integer allNum = 0;
                String recruitId = "";
                String orgCode = String.valueOf(mapList.get(0).get("code"));
                List<RecruitStudentsDO> recruitStudentsDOList = recruitStudentsDao.findByOrgCode(orgCode,new Date());
                Integer num = 0;
                // 判断该机构是否开放报名
                String ksbm = "SELECT COUNT(1) a FROM base_recruit_students WHERE '"+nowDate+"' > create_time AND '"+nowDate+"' < end_time AND del = 1 AND org_code = '"+mapList.get(0).get("code")+"'";
                num = jdbcTemplate.queryForObject(ksbm,Integer.class);
                if (num > 0){
                if (recruitStudentsDOList.size()>0){
                    RecruitStudentsDO recruitStudentsDO = recruitStudentsDOList.get(0);
                    allNum = recruitStudentsDO.getNum();
                    recruitId = recruitStudentsDO.getId();
                    String sqlNum = "SELECT allm.id,allm.num - bbm.num num\n" +
                            "FROM (SELECT id,num FROM base_recruit_students WHERE org_code = '"+mapList.get(0).get("code")+"' AND del = 1 ) allm,(\n" +
                            "SELECT rs.id,COUNT(rsr.id) num FROM base_recruit_students rs,base_recruit_students_record rsr WHERE '"+nowDate+"' >rs.start_time AND rs.org_code = '"+mapList.get(0).get("code")+"'\n" +
                            "AND '"+nowDate+"' < rs.end_time AND rs.del = 1 AND rs.id = rsr.recruit_students_id AND rsr.status IN (2,3,6)) bbm";
                            "SELECT rs.id,COUNT(rsr.id) num FROM base_recruit_students rs,base_recruit_students_record rsr WHERE rsr.org_code =  '"+mapList.get(0).get("code")+"'\n" +
                            " AND rs.id = rsr.recruit_students_id and rsr.recruit_students_id = '"+recruitId+"' AND rs.del = 1 AND rs.id = rsr.recruit_students_id AND rsr.status IN (2,3,6)) bbm";
                    List<Map<String,Object>> maps = jdbcTemplate.queryForList(sqlNum);
                    num = 0;
                    if (maps.size() > 0){
@ -491,17 +493,6 @@ public class CourseService {
                });
            }
            object.put("object",list);
//            List<Map<String , Object>> currentPageList = new ArrayList<>();
//            if (list.size() > 0 ){
//                if (list != null && list.size() > 0) {
//                    int currIdx = (currentPage > 1 ? (currentPage - 1) * pageSize : 0);
//                    for (int i = 0; i < pageSize && i < list.size() - currIdx; i++) {
//                        Map<String, Object> data = list.get(currIdx + i);
//                        currentPageList.add(data);
//                    }
//                }
//            }
//            object.put("object",currentPageList);
        }
        return object;
    }
@ -609,6 +600,8 @@ public class CourseService {
                "FROM base_org o,base_recruit_students rs\n" +
                "WHERE o.id = '"+id+"' AND o.type = 4 AND o.del = 1 AND o.`code` = rs.org_code AND rs.del = 1";
        List<Map<String,Object>> mapList = jdbcTemplate.queryForList(sql);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String nowDate = sdf.format(new Date());
        if (mapList.size() > 0){
            object.put("recruitId",mapList.get(0).get("recruitId"));//机构id
            object.put("id",mapList.get(0).get("id"));//机构id
@ -619,11 +612,18 @@ public class CourseService {
            object.put("intro",mapList.get(0).get("brief"));//机构简介
            object.put("startTime",mapList.get(0).get("startTime"));//招生开始时间
            object.put("endTime",mapList.get(0).get("endTime"));//招生结束时间
            object.put("num",mapList.get(0).get("num"));//招生名额
            String ksbm = "SELECT COUNT(1) a FROM base_recruit_students WHERE '"+nowDate+"' > start_time AND '"+nowDate+"' < end_time AND del = 1 AND org_code = '"+mapList.get(0).get("code")+"'";
            Integer num = jdbcTemplate.queryForObject(ksbm,Integer.class);
            if (num < 1){
                num = -1;
                object.put("num",num);//招生名额
            }else {
                object.put("num",mapList.get(0).get("num"));//招生名额
            }
            object.put("fee",mapList.get(0).get("fee"));//报名费用
            String sql1 = "SELECT COUNT(*) count\n" +
                    "FROM base_org o,base_recruit_students_record rsr,base_recruit_students rs\n" +
                    "WHERE o.`code` = rsr.org_code AND rsr.recruit_students_id = '"+mapList.get(0).get("rsId")+"' AND o.`code` = '"+mapList.get(0).get("code")+"' AND (`status` = 2 OR `status` = 3 OR `status` = 6);\n";
                    "FROM base_recruit_students_record rsr \n" +
                    "WHERE rsr.recruit_students_id = '"+mapList.get(0).get("rsId")+"' AND `org_code` = '"+mapList.get(0).get("code")+"' AND (`status` = 1 OR `status` = 2 OR `status` = 3 OR `status` = 4 OR `status` = 6);\n";
            Integer count = jdbcTemplate.queryForObject(sql1,Integer.class);
            String sql2 = "SELECT * FROM base_course WHERE del = 1 AND org_code = '"+mapList.get(0).get("code")+"'" ;

+ 5 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/org/BaseOrgService.java

@ -19,7 +19,7 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> {
    @Autowired
    private BaseOrgDao orgDao;
    public List<BaseOrgDO> findOrgList(String type,String name){
    public List<BaseOrgDO> findOrgList(String type,String name,String orgCode){
        String sql = "select a.* from base_org a where a.del = 1";
        if(!StringUtil.isBlank(type)){
            sql += " and a.type = '"+type+"' ";
@ -28,6 +28,10 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> {
            sql += " and a.name like '%"+name+"%' ";
        }
        if(!StringUtil.isBlank(orgCode)){
            sql += " and a.code = '"+orgCode+"' ";
        }
        return jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(BaseOrgDO.class));
    }

+ 19 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/patient/CarePatientService.java

@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.dao.label.WlyyPatientLabelDao;
import com.yihu.jw.care.service.common.DictService;
import com.yihu.jw.care.service.family.PatientFamilyMemberService;
import com.yihu.jw.care.service.sign.CapacityAssessmentRecordService;
import com.yihu.jw.care.service.sign.ServicePackageService;
import com.yihu.jw.care.util.ConstantUtil;
@ -59,6 +60,8 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
    private DictService dictService;
    @Autowired
    private CapacityAssessmentRecordService capacityAssessmentRecordService;
    @Autowired
    private PatientFamilyMemberService familyMemberService;
    /**
     * 签约记录
@ -275,4 +278,20 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql+sqlCondition);
        return PageEnvelop.getSuccessListWithPage("查询成功",list,page,size,cont);
    }
    public List<Integer> getFamilyAllArchiveType(String patient){
        List<Integer> result = new ArrayList<>();
        JSONArray familyArr =  familyMemberService.getPatientMembers(patient,null,null,null);
        for (int i=0;i<familyArr.size();i++){
            String patientId = familyArr.getJSONObject(i).getString("id");
            BasePatientDO patientDO= patientDao.findById(patientId);
            if (patientDO.getArchiveType()!=null){
                Integer archiveType = patientDO.getArchiveType();
                if (!result.contains(archiveType)){
                    result.add(archiveType);
                }
            }
        }
        return result;
    }
}

+ 66 - 11
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/wechat/WeiXinEventProcess.java

@ -29,6 +29,8 @@ public class WeiXinEventProcess {
    @Value("${wechat.id}")
    private String wechatId;
    @Value("${wechat.appId}")
    private String appId;
    @Autowired
    private BaseDoctorDao baseDoctorDao;
@ -49,9 +51,9 @@ public class WeiXinEventProcess {
                if (message.containsKey("EventKey") && StringUtils.isNotEmpty(message.get("EventKey")) && message.containsKey("Ticket")
                        && StringUtils.isNotEmpty(message.get("Ticket"))) {
                    result = scanEventProcess(message);
                } /*else {
                } else {
                    result = subscribeEventProcess(message);
                }*/
                }
                break;
            /*case WeiXinMessageUtils.EVENT_TYPE_UNSUBSCRIBE: // 取消订阅事件
                 result = unsubscribeEventProcess(message);
@ -65,6 +67,24 @@ public class WeiXinEventProcess {
        return result;
    }
    /**
     * 关注事件消息构建回复消息体(图文消息xml,模板消息json串)
     *
     * @param message
     * @return
     * @throws Exception
     */
    private String subscribeEventProcess(Map<String, String> message) throws Exception {
        String result = "";
        // 场景值
        String eventKey = message.get("EventKey");
        List<Map<String, String>> articles = new ArrayList<>();
        setUrlItems(articles);
        result = WeiXinMessageReplyUtils.replyNewsMessage(message.get("FromUserName"), message.get("ToUserName"), articles);
        return result;
    }
    /**
     * 微信扫码事件处理(封装图文消息体)
     *
@ -93,17 +113,11 @@ public class WeiXinEventProcess {
            }
            // 医生二维码跳转URL
            if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)){
                url = "https://intel.yanketong.com/ims-wx/#/doctorInfo?doctorCode="+keys[0];
                picUrl = "https://intel.yanketong.com/"+picUrl;
                article.put("Url", url);
                article.put("Title", keys[1] + "医生个人诊间");
                article.put("Description", "厦门眼科中心医院互联网医院");
                article.put("PicUrl", picUrl);
                articles.add(article);
            }else {
                url = "https://intm/ims-wx/#/doctorInfo?doctorCode="+keys[0];
                picUrl = "https://im/"+picUrl;
                article.put("Url", url);
                article.put("Title", keys[1] + "医生个人诊间");
                article.put("Description", "海沧医院互联网医院");
                article.put("Description", "医养云照护");
                article.put("PicUrl", picUrl);
                articles.add(article);
            }
@ -122,5 +136,46 @@ public class WeiXinEventProcess {
        return result;
    }
    /**
     * 设置微信公共的图文消息
     *
     * @param articles
     */
    public void setUrlItems(List<Map<String, String>> articles) {
        Map<String, String> articleBooking = new HashMap<>();
        // 图文URL
        String urlBooking = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={appId}&amp;redirect_uri=http%3A%2F%2Fhzijk.cityihealth.com%2Fmedical-care-patient%2Fhome%2Findex&amp;response_type=code&amp;scope=snsapi_base&amp;state=STATE#wechat_redirect";
        urlBooking = urlBooking.replace("{appId}", appId);
        articleBooking.put("Url", urlBooking);
        articleBooking.put("Title", "你好啊,欢迎来到朝晖云照护!");
        articleBooking.put("Description", "这里是智慧养老和健康管理服务社区+幼儿成长教育服务平台\n" +
                "我们陪你一起,关爱老人,呵护孩子!\n" +
                "感谢关注,点击下方菜单直接进入朝晖云照护平台");
        articleBooking.put("PicUrl", "http://hzijk.cityihealth.com/image/index.png");
        articles.add(articleBooking);
        Map<String, String> articleDevice = new HashMap<>();
        // 图文URL
        String urlDevice = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={appId}&amp;redirect_uri=http%3A%2F%2Fhzijk.cityihealth.com%2Fmedical-care-patient%2FonlineRegistration%2Findex&amp;response_type=code&amp;scope=snsapi_base&amp;state=STATE#wechat_redirect";
        urlDevice = urlDevice.replace("{appId}", appId);
        articleDevice.put("Url", urlDevice);
        articleDevice.put("Title", "在线入园");
        articleDevice.put("Description", "申请专业托育机构入园资格");
        articleDevice.put("PicUrl", "http://hzijk.cityihealth.com/image/doorCoach.png");
        articles.add(articleDevice);
        Map<String, String> articleFamily = new HashMap<>();
        // 图文URL
        String urlFamily = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={appId}&amp;redirect_uri=http%3A%2F%2Fhzijk.cityihealth.com%2Fmedical-care-patient%2FlifeCare%2Findex&amp;response_type=code&amp;scope=snsapi_base&amp;state=STATE#wechat_redirect";
        urlFamily = urlFamily.replace("{appId}", appId);
        articleFamily.put("Url", urlFamily);
        articleFamily.put("Title", "上门预约");
        articleFamily.put("Description", "预约幼儿教育专家上门育儿指导");
        articleFamily.put("PicUrl", "http://hzijk.cityihealth.com/image/online.png");
        articles.add(articleFamily);
    }
}

BIN
svr/svr-cloud-care/src/main/resources/image/doorCoach.png


BIN
svr/svr-cloud-care/src/main/resources/image/index.png


BIN
svr/svr-cloud-care/src/main/resources/image/online.png