Trick 5 vuotta sitten
vanhempi
commit
2404527b51
24 muutettua tiedostoa jossa 1001 lisäystä ja 15 poistoa
  1. 23 2
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java
  2. 24 0
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/YkyyEntranceService.java
  3. 390 0
      business/base-service/src/main/java/com/yihu/jw/wechat/enterprise/EnterpriseService.java
  4. 11 0
      business/base-service/src/main/java/com/yihu/jw/wechat/enterprise/dao/WxEnterpriseDao.java
  5. 14 0
      business/base-service/src/main/java/com/yihu/jw/wechat/enterprise/dao/WxEnterpriseTokenDao.java
  6. 13 0
      business/base-service/src/main/java/com/yihu/jw/wechat/enterprise/dao/WxEnterpriseUserDao.java
  7. 42 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/enterprise/WxEnterpriseDO.java
  8. 55 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/enterprise/WxEnterpriseTokenDO.java
  9. 54 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/enterprise/WxEnterpriseUserDO.java
  10. 7 0
      common/common-util/src/main/java/com/yihu/jw/util/date/DateUtil.java
  11. 27 1
      gateway/ag-basic/src/main/resources/application.yml
  12. 8 1
      gateway/ag-basic/src/main/resources/bootstrap.yml
  13. 6 0
      server/svr-authentication/src/main/java/com/yihu/jw/security/core/userdetails/jdbc/WlyyUserDetailsService.java
  14. 19 0
      server/svr-authentication/src/main/resources/application.yml
  15. 14 0
      server/svr-authentication/src/main/resources/bootstrap.yml
  16. 2 2
      server/svr-configuration/src/main/resources/application.yml
  17. 15 2
      server/svr-configuration/src/main/resources/bootstrap.yml
  18. 64 0
      svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/controller/EnterpriseController.java
  19. 1 1
      svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/controller/MqSdkController.java
  20. 42 0
      svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/controller/YkyyController.java
  21. 32 4
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/PatientConsultEndpoint.java
  22. 1 1
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/patient/PatientNoLoginEndPoint.java
  23. 130 1
      svr/svr-internet-hospital/src/main/resources/application.yml
  24. 7 0
      svr/svr-internet-hospital/src/main/resources/bootstrap.yml

+ 23 - 2
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -298,6 +298,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                " o.disease_img AS diseaseImg, " +
                " o.create_time AS createTime, " +
                " o.`status` AS `status`," +
                " o.register_date AS registerDate," +
                " o.evaluate_status AS evaluateStatus   " +
                " FROM " +
                " wlyy_outpatient o " +
@ -2866,7 +2867,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
     * @param consutlSort
     * @return
     */
    public List<Map<String,Object>> findDoctorByHospitalAndDiseaseAndDept(String orgCode, String dept,
    public List<Map<String,Object>> findDoctorByHospitalAndDiseaseAndDept(String iswork,String orgCode, String dept,
                                                                          String diseaseKey, String doctorNameKey,
                                                                          String jobTitleNameKey, String outpatientType,
                                                                          String keyName, String workingTime, String consultStatus,String chargType,String consutlSort,Integer page,Integer pagesize) {
@ -2901,7 +2902,26 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            sql+=" JOIN wlyy_doctor_work_time wk on wk.doctor = d.id ";
        }
        sql +=  " WHERE  " +
                " d.charge_type is not null and  h.org_code = '"+orgCode+"'";
                " d.charge_type is not null ";
        if(StringUtils.isNotBlank(iswork)&&"1".equals(iswork)){
            logger.info("iswork:"+iswork);
            String startDate = DateUtil.dateToStr(new Date(),"yyyy-MM-dd"+" 00:00:00");
            String endDate = DateUtil.dateToStr(new Date(),"yyyy-MM-dd")+" 23:59:59";
            sql+=" AND EXISTS ( " +
                    " SELECT " +
                    "  1 " +
                    " FROM " +
                    "  wlyy_doctor_work_time t " +
                    " WHERE " +
                    "  t.doctor = d.id " +
                    " AND t.start_time >='" +startDate+"'" +
                    " AND t.start_time <='"+endDate+"'"+
                    " )";
        }
        if(StringUtils.isNotBlank(orgCode)){
            sql += " and  h.org_code = '"+orgCode+"'";
        }
        if(StringUtils.isNotBlank(diseaseKey)){
            sql+=" AND d.expertise like '%"+diseaseKey+"%'";
        }
@ -2959,6 +2979,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        logger.info("findDoctorByHospitalAndDiseaseAndDept end:"+DateUtil.dateToStr(new Date(),"yyyy-MM-dd HH:mm:ss:SSS"));
        logger.info("sql:"+sql);
        return list;
    }

+ 24 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/YkyyEntranceService.java

@ -0,0 +1,24 @@
package com.yihu.jw.hospital.prescription.service.entrance;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.List;
import java.util.Map;
/**
 * Created by Trick on 2020/1/19.
 */
@Service
@Transactional
public class YkyyEntranceService {
    @Autowired
    private HibenateUtils hibenateUtils;
    public List<Map<String, Object>> createSQLQuery(String sql, Map<String, Object> params, Integer page, Integer size){
        return hibenateUtils.createSQLQuery( sql,  params,  page,  size);
    }
}

+ 390 - 0
business/base-service/src/main/java/com/yihu/jw/wechat/enterprise/EnterpriseService.java

@ -0,0 +1,390 @@
package com.yihu.jw.wechat.enterprise;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.hospital.enterprise.WxEnterpriseDO;
import com.yihu.jw.entity.hospital.enterprise.WxEnterpriseTokenDO;
import com.yihu.jw.entity.hospital.enterprise.WxEnterpriseUserDO;
import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.wechat.wxhttp.HttpUtil;
import com.yihu.jw.utils.StringUtil;
import com.yihu.jw.wechat.enterprise.dao.WxEnterpriseDao;
import com.yihu.jw.wechat.enterprise.dao.WxEnterpriseTokenDao;
import com.yihu.jw.wechat.enterprise.dao.WxEnterpriseUserDao;
import com.yihu.utils.network.HttpResponse;
import com.yihu.utils.network.HttpUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
 * Created by Trick on 2020/2/8.
 */
@Service
@Transactional
public class EnterpriseService {
    private Logger logger = LoggerFactory.getLogger(EnterpriseService.class);
    private String corpsecret = "SKuRnq7cZqE5ax1YxwBwkCa-jdujkzbpMjWDCYU2raE";
    private String corpid = "wwd7335a5d80a9b14f";
    private String agentId = "1000003";
    @Autowired
    private WxEnterpriseTokenDao wxEnterpriseTokenDao;
    @Autowired
    private WxEnterpriseUserDao wxEnterpriseUserDao;
    @Autowired
    private WxEnterpriseDao wxEnterpriseDao;
    @Autowired
    private BaseDoctorDao baseDoctorDao;
    public String getToken(String enterpriseId)throws Exception{
        logger.info("getToken");
        WxEnterpriseDO wxEnterpriseDO = wxEnterpriseDao.findOne(enterpriseId);
        WxEnterpriseTokenDO wxEnterpriseTokenDO = wxEnterpriseTokenDao.findByCode(wxEnterpriseDO.getCorpid());
        if(wxEnterpriseTokenDO!=null&&wxEnterpriseTokenDO.getExpiresTime().after(new Date())){
            return wxEnterpriseTokenDO.getAccessToken();
        }
        String result = HttpUtil.sendGet("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+wxEnterpriseDO.getCorpid()+"&corpsecret="+wxEnterpriseDO.getCorpsecret());
        logger.info("getToken result:"+result);
        JSONObject json = JSONObject.parseObject(result);
        if(wxEnterpriseTokenDO!=null){
            wxEnterpriseTokenDao.delete(wxEnterpriseTokenDO);
        }
        //保存当前token
        WxEnterpriseTokenDO token = new WxEnterpriseTokenDO();
        Date date = new Date();
        token.setAccessToken(json.getString("access_token"));
        token.setCreateTime(date);
        token.setExpiresTime(DateUtil.setDateHours(date,2));
        token.setCode(corpid);
        wxEnterpriseTokenDao.save(token);
        return token.getAccessToken();
    }
    public String sendTextMes(String enterpriseId,String userId,String content)throws Exception{
        String url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="+getToken(enterpriseId);
        JSONObject param = new JSONObject();
        param.put("touser",userId);
        param.put("toparty","");
        param.put("totag","");
        param.put("msgtype","text");
        WxEnterpriseDO wxEnterpriseDO = wxEnterpriseDao.findOne(enterpriseId);
        param.put("agentid",wxEnterpriseDO.getAgentid());
        JSONObject text = new JSONObject();
        text.put("content",content);
        param.put("text",text);
        param.put("safe",0);
        param.put("enable_id_trans",0);
        param.put("enable_duplicate_check",0);
        String rs = HttpUtil.sendPost(url,param.toJSONString());
        logger.info("Mes:"+rs);
        return rs;
    }
    public String sendTWMesByDoctor(String enterpriseId,String doctor,String title,String description,String url)throws Exception{
        BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doctor);
        if(baseDoctorDO!=null&&StringUtils.isNotBlank(baseDoctorDO.getMobile())){
            WxEnterpriseUserDO user = wxEnterpriseUserDao.findByEnterpriseIdAndMobile(enterpriseId,baseDoctorDO.getMobile());
            if(user!=null){
                return sendTWMes(enterpriseId,user.getUserid(),title,description,url);
            }
        }
        return "";
    }
    public String sendTWMesBymobile(String enterpriseId,String mobile,String title,String description,String url)throws Exception{
        WxEnterpriseUserDO user = wxEnterpriseUserDao.findByEnterpriseIdAndMobile(enterpriseId,mobile);
        if(user!=null){
            return sendTWMes(enterpriseId,user.getUserid(),title,description,url);
        }
        return "";
    }
    public String sendTWMes(String enterpriseId,String userId,String title,String description,String url)throws Exception{
        String mesurl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="+getToken(enterpriseId);
        JSONObject param = new JSONObject();
        param.put("touser",userId);
        param.put("toparty","");
        param.put("totag","");
        param.put("msgtype","news");
        WxEnterpriseDO wxEnterpriseDO = wxEnterpriseDao.findOne(enterpriseId);
        param.put("agentid",wxEnterpriseDO.getAgentid());
        JSONObject news = new JSONObject();
        JSONArray articles = new JSONArray();
        JSONObject article = new JSONObject();
        article.put("title",title);
        article.put("description",description);
        article.put("url",url);
        article.put("picurl","");
        articles.add(article);
        news.put("articles",articles);
        param.put("news",news);
        param.put("enable_id_trans",0);
        param.put("enable_duplicate_check",0);
        String rs = HttpUtil.sendPost(mesurl,param.toJSONString());
        logger.info("TWMes:"+rs);
        return rs;
    }
    public String getDeptsId(String enterpriseId)throws Exception{
        logger.info("getDeptsId");
        String url = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token="+getToken(enterpriseId);
        String rs = HttpUtil.sendGet(url);
        logger.info("dept rs:"+rs);
        JSONObject r = JSONObject.parseObject(rs);
        JSONArray depts = r.getJSONArray("department");
        String deptStr ="";
        if(depts!=null&&depts.size()>0){
            for(int i=0;i<depts.size();i++){
                JSONObject dept = (JSONObject) depts.get(i);
                deptStr+=dept.getString("id")+"|";
            }
            deptStr = deptStr.substring(0,deptStr.length()-1);
        }
        logger.info("deptStr"+deptStr);
        return deptStr;
    }
    public JSONArray getUserInfo(String enterpriseId,String dept)throws Exception{
        logger.info("getUserInfo");
        if(StringUtils.isNotBlank(dept)){
            String userUrl ="https://qyapi.weixin.qq.com/cgi-bin/user/list?access_token="+getToken(enterpriseId)+"&department_id="+dept+"&fetch_child=FETCH_CHILD";
            String users = HttpUtil.sendGet(userUrl);
            logger.info("usrs:"+users);
            JSONObject us = JSONObject.parseObject(users);
            JSONArray list = us.getJSONArray("userlist");
            logger.info("list size:"+list.size());
            return list;
        }
        return null;
    }
    public String saveAllUser(String enterpriseId)throws Exception{
        logger.info("saveAllUser");
        String depts = getDeptsId(enterpriseId);
        if(StringUtils.isNotBlank(depts)){
            //多部门过滤
            String dept[] = depts.split("|");
            if(dept!=null&&dept.length>0){
                for(String dp : dept){
                    JSONArray usrs = getUserInfo(enterpriseId,dp);
                    if(usrs!=null&&usrs.size()>0){
                        for(int i=0;i<usrs.size();i++){
                            JSONObject user = (JSONObject) usrs.get(i);
                            String mobile =user.getString("mobile");
                            if(StringUtils.isNotBlank(mobile)){
                                WxEnterpriseUserDO wxEnterpriseUserDO = wxEnterpriseUserDao.findByEnterpriseIdAndMobile(enterpriseId,mobile);
                                if(wxEnterpriseUserDO!=null){
                                    wxEnterpriseUserDO.setName(user.getString("name"));
                                    wxEnterpriseUserDO.setUserid(user.getString("userid"));
                                    wxEnterpriseUserDao.save(wxEnterpriseUserDO);
                                }else{
                                    WxEnterpriseUserDO userDO = new WxEnterpriseUserDO();
                                    userDO.setEnterpriseId(enterpriseId);
                                    userDO.setMobile(mobile);
                                    userDO.setUserid(user.getString("userid"));
                                    userDO.setName(user.getString("name"));
                                    wxEnterpriseUserDao.save(userDO);
                                }
                            }
                        }
                    }
                }
            }
        }
        return "ok";
    }
//    public String send
//    public static void main(String args[])throws Exception{
//
//        String corpsecret = "SKuRnq7cZqE5ax1YxwBwkCa-jdujkzbpMjWDCYU2raE";
//
//        String corpid = "wwd7335a5d80a9b14f";
//
//        String agentId = "1000003";
//
//        String result = HttpUtil.sendGet("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+corpid+"&corpsecret="+corpsecret);
//
//        JSONObject json = JSONObject.parseObject(result);
//
//        String token = json.getString("access_token");
//
//        String url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="+token;
//
//        JSONObject param = new JSONObject();
//        param.put("touser","MuOu");
//        param.put("toparty","");
//        param.put("totag","");
//        param.put("msgtype","text");
//        param.put("agentid",agentId);
//
//        JSONObject text = new JSONObject();
//        text.put("content","测试MuOu成员企业推送");
//        param.put("text",text);
//        param.put("safe",0);
//        param.put("enable_id_trans",0);
//        param.put("enable_duplicate_check",0);
//
//        String rs = HttpUtil.sendPost(url,param.toJSONString());
//
//        System.out.println(rs);
//    }
//    public static void main(String args[])throws Exception{
//
//        String corpsecret = "SKuRnq7cZqE5ax1YxwBwkCa-jdujkzbpMjWDCYU2raE";
//
//        String corpid = "wwd7335a5d80a9b14f";
//
//        String agentId = "1000003";
//
//        String result = HttpUtil.sendGet("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+corpid+"&corpsecret="+corpsecret);
//
//        JSONObject json = JSONObject.parseObject(result);
//
//        String token = json.getString("access_token");
//
//        String url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="+token;
//
//        JSONObject param = new JSONObject();
//        param.put("touser","ShenZaiXin");
//        param.put("toparty","");
//        param.put("totag","");
//        param.put("msgtype","news");
//        param.put("agentid",agentId);
//
//        JSONObject news = new JSONObject();
//
//        JSONArray articles = new JSONArray();
//        JSONObject article = new JSONObject();
//
//        article.put("title","标题");
//        article.put("description","图文描述");
//        article.put("url","www.baidu.com");
//        article.put("picurl","");
//        articles.add(article);
//
//        news.put("articles",articles);
//
//        param.put("news",news);
//        param.put("enable_id_trans",0);
//        param.put("enable_duplicate_check",0);
//
//        String rs = HttpUtil.sendPost(url,param.toJSONString());
//
//    }
//    public static void main(String args[])throws Exception{
//
//        String corpsecret = "SKuRnq7cZqE5ax1YxwBwkCa-jdujkzbpMjWDCYU2raE";
//
//        String corpid = "wwd7335a5d80a9b14f";
//
//        String result = HttpUtil.sendGet("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+corpid+"&corpsecret="+corpsecret);
//
//        JSONObject json = JSONObject.parseObject(result);
//
//        String token = json.getString("access_token");
//
//        String url = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token="+token;
//
//        String rs = HttpUtil.sendGet(url);
//
//        JSONObject r = JSONObject.parseObject(rs);
//
//        JSONArray depts = r.getJSONArray("department");
//
//        String deptStr ="";
//
//        if(depts!=null&&depts.size()>0){
//            for(int i=0;i<depts.size();i++){
//                JSONObject dept = (JSONObject) depts.get(i);
//                deptStr+=dept.getString("id")+"|";
//            }
//           deptStr = deptStr.substring(0,deptStr.length()-1);
//        }
//        System.out.println("deptStr"+deptStr);
//
//        String userUrl ="https://qyapi.weixin.qq.com/cgi-bin/user/list?access_token="+token+"&department_id="+deptStr+"&fetch_child=FETCH_CHILD";
//
//        String users = HttpUtil.sendGet(userUrl);
//
//        JSONObject us = JSONObject.parseObject(users);
//
//        JSONArray list = us.getJSONArray("userlist");
//
//        System.out.println("list"+list.size());
//
//    }
}

+ 11 - 0
business/base-service/src/main/java/com/yihu/jw/wechat/enterprise/dao/WxEnterpriseDao.java

@ -0,0 +1,11 @@
package com.yihu.jw.wechat.enterprise.dao;
import com.yihu.jw.entity.hospital.enterprise.WxEnterpriseDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Trick on 2020/2/9.
 */
public interface WxEnterpriseDao extends PagingAndSortingRepository<WxEnterpriseDO, String>, JpaSpecificationExecutor<WxEnterpriseDO> {
}

+ 14 - 0
business/base-service/src/main/java/com/yihu/jw/wechat/enterprise/dao/WxEnterpriseTokenDao.java

@ -0,0 +1,14 @@
package com.yihu.jw.wechat.enterprise.dao;
import com.yihu.jw.entity.base.wx.WxWechatDO;
import com.yihu.jw.entity.hospital.enterprise.WxEnterpriseTokenDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Trick on 2020/2/8.
 */
public interface WxEnterpriseTokenDao extends PagingAndSortingRepository<WxEnterpriseTokenDO, String>, JpaSpecificationExecutor<WxEnterpriseTokenDO> {
    WxEnterpriseTokenDO findByCode(String code);
}

+ 13 - 0
business/base-service/src/main/java/com/yihu/jw/wechat/enterprise/dao/WxEnterpriseUserDao.java

@ -0,0 +1,13 @@
package com.yihu.jw.wechat.enterprise.dao;
import com.yihu.jw.entity.hospital.enterprise.WxEnterpriseUserDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Trick on 2020/2/9.
 */
public interface WxEnterpriseUserDao extends PagingAndSortingRepository<WxEnterpriseUserDO, String>, JpaSpecificationExecutor<WxEnterpriseUserDO> {
    WxEnterpriseUserDO findByEnterpriseIdAndMobile(String enterpriseId,String mobile);
}

+ 42 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/enterprise/WxEnterpriseDO.java

@ -0,0 +1,42 @@
package com.yihu.jw.entity.hospital.enterprise;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by Trick on 2020/2/9.
 */
@Entity
@Table(name = "wx_enterprise")
public class WxEnterpriseDO extends UuidIdentityEntity {
    private String corpid;
    private String corpsecret;
    private String agentid;
    public String getCorpid() {
        return corpid;
    }
    public void setCorpid(String corpid) {
        this.corpid = corpid;
    }
    public String getCorpsecret() {
        return corpsecret;
    }
    public void setCorpsecret(String corpsecret) {
        this.corpsecret = corpsecret;
    }
    public String getAgentid() {
        return agentid;
    }
    public void setAgentid(String agentid) {
        this.agentid = agentid;
    }
}

+ 55 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/enterprise/WxEnterpriseTokenDO.java

@ -0,0 +1,55 @@
package com.yihu.jw.entity.hospital.enterprise;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by Trick on 2020/2/8.
 */
@Entity
@Table(name = "wx_enterprise_token")
public class WxEnterpriseTokenDO extends UuidIdentityEntity {
    private String code;
    private String accessToken;
    private Date createTime;
    private Date expiresTime;
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public Date getExpiresTime() {
        return expiresTime;
    }
    public void setExpiresTime(Date expiresTime) {
        this.expiresTime = expiresTime;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getAccessToken() {
        return accessToken;
    }
    public void setAccessToken(String accessToken) {
        this.accessToken = accessToken;
    }
}

+ 54 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/enterprise/WxEnterpriseUserDO.java

@ -0,0 +1,54 @@
package com.yihu.jw.entity.hospital.enterprise;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by Trick on 2020/2/9.
 */
@Entity
@Table(name = "wx_enterprise_user")
public class WxEnterpriseUserDO extends UuidIdentityEntity {
    private String enterpriseId;
    private String userid;
    private String name;
    private String mobile;
    public String getEnterpriseId() {
        return enterpriseId;
    }
    public void setEnterpriseId(String enterpriseId) {
        this.enterpriseId = enterpriseId;
    }
    public String getUserid() {
        return userid;
    }
    public void setUserid(String userid) {
        this.userid = userid;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
}

+ 7 - 0
common/common-util/src/main/java/com/yihu/jw/util/date/DateUtil.java

@ -904,6 +904,13 @@ public class DateUtil {
        return  cal.getTime();
    }
    public static java.util.Date setDateHours(java.util.Date date,int hours){
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.set(Calendar.HOUR, cal.get(Calendar.HOUR) +(hours));
        return  cal.getTime();
    }
    /**
     * 获取去年日期
     * @return

+ 27 - 1
gateway/ag-basic/src/main/resources/application.yml

@ -129,4 +129,30 @@ spring:
    port: 6390 # Redis server port.
    password: Kb6wKDQP1W4
#  zipkin:
#    base-url: http://localhost:9411 #日志追踪的地址
#    base-url: http://localhost:9411 #日志追踪的地址
---
## 心脏中心内网配置
spring:
  profiles: xzprod_in
  datasource:
    url: jdbc:mysql://192.168.103.155:7306/base?useUnicode:true&characterEncoding=utf-8&autoReconnect=true&useSSL=false
    username: jkzl
    password: jkzl@2020
  redis:
    host: 192.168.103.158 # Redis server host.
    port: 6380 # Redis server port.
    password: q4YaQemf
---
## 心脏中心外网配置
spring:
  profiles: xzprod
  datasource:
    url: jdbc:mysql://172.16.100.240:7306/base?useUnicode:true&characterEncoding=utf-8&autoReconnect=true&useSSL=false
    username: jkzl
    password: jkzl@2020
  redis:
    host: 172.16.100.240 # Redis server host.
    port: 6380 # Redis server port.
    password: q4YaQemf

+ 8 - 1
gateway/ag-basic/src/main/resources/bootstrap.yml

@ -1,6 +1,6 @@
spring:
  application:
    name: ag-basic
    name: ag-basic-lyx
  cloud:
    config:
      failFast: true
@ -54,4 +54,11 @@ spring:
  cloud:
    config:
      uri: ${wlyy.spring.config.uri:http://192.168.33.199:1221}
      label: ${wlyy.spring.config.label:master}
---
spring:
  profiles: xzprod
  cloud:
    config:
      uri: ${wlyy.pring.config.uri:http://172.16.100.63:1221}
      label: ${wlyy.spring.config.label:master}

+ 6 - 0
server/svr-authentication/src/main/java/com/yihu/jw/security/core/userdetails/jdbc/WlyyUserDetailsService.java

@ -613,4 +613,10 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
        }
        return null;
    }
//    public static void main(String arg[]){
//
//        String ps = MD5.md5Hex("12401X" + "{" + "Ar8f2" + "}");
//        System.out.println(ps);
//    }
}

+ 19 - 0
server/svr-authentication/src/main/resources/application.yml

@ -102,3 +102,22 @@ zhongshanHospital:
  user-info-uri: http://laptop-u738dn2p:10023/mqsdk/getUserInfoByOpenid
fastDFS:
  fastdfs_file_url: http://192.0.33.26:22122
---
spring:
  profiles: xzprod
  datasource:
    url: jdbc:mysql://172.16.100.240:7306/base?useUnicode:true&amp;characterEncoding=utf-8&amp;autoReconnect=true&useSSL=false
    username: jzkl
    password: jzkl@2020
  redis:
    host: 172.16.100.240 # Redis server host.
    port: 6380 # Redis server port.
    password: q4YaQemf
  ##发现服务
iHealth:
  user-info-uri: http://www.xmtyw.cn/wlyy/iHealth/userInfo
zhongshanHospital:
  user-info-uri: http://laptop-u738dn2p:10023/mqsdk/getUserInfoByOpenid
fastDFS:
  fastdfs_file_url: http://172.16.100.240:22122

+ 14 - 0
server/svr-authentication/src/main/resources/bootstrap.yml

@ -34,4 +34,18 @@ spring:
  cloud:
    config:
      uri: ${wlyy.spring.config.uri:http://172.16.1.70:1221}
      label: ${wlyy.spring.config.label:master}
---
spring:
  profiles: xzprod_in
  cloud:
    config:
      uri: ${wlyy.spring.config.uri:http://172.16.100.63:1221}
      label: ${wlyy.spring.config.label:in_master}
---
spring:
  profiles: xzprod
  cloud:
    config:
      uri: ${wlyy.spring.config.uri:http://172.16.100.63:1221}
      label: ${wlyy.spring.config.label:master}

+ 2 - 2
server/svr-configuration/src/main/resources/application.yml

@ -15,10 +15,10 @@ eureka:
    healthcheck:
      enabled: false #启动监控检查,
    serviceUrl: # 默认正式线地址
#      defaultZone: http://jw:jkzl@172.16.1.42:8761/eureka
#      defaultZone: http://jw:jkzl@172.16.1.42:8761/eureka # 中山医院
#      defaultZone: http://jw:jkzl@192.0.33.26:8762/eureka
#      defaultZone: http://jw:jkzl@192.168.33.199:8761/eureka
      defaultZone: http://jw:jkzl@172.16.100.63:8761/eureka
      defaultZone: http://jw:jkzl@172.16.100.63:8761/eureka  # 心脏中心外网
  instance:
    #eurika使用IP不使用host
    prefer-ip-address: true

+ 15 - 2
server/svr-configuration/src/main/resources/bootstrap.yml

@ -65,9 +65,22 @@ spring:
          basedir: /usr/local/wlyy2.0-config
        default-label: ${wlyy.spring.config.git.label:master}
---
## 心脏中心
## 心脏中心外网
spring:
  profiles: xzprod
##git配置
  cloud:
    config:
      failFast: true #启动快速失败 即链接不到配置服务就启动失败
      server:
        git:
          uri: ${wlyy.spring.config.git.uri:http://172.16.100.241:3000/jkzl/config.git}
          basedir: /usr/local/wlyy2.0-config
        default-label: ${wlyy.spring.config.git.label:master}
---
## 心脏中心内网
spring:
  profiles: xzprod_in
##git配置
  cloud:
    config:
@ -76,4 +89,4 @@ spring:
        git:
          uri: ${wlyy.spring.config.git.uri:http://192.168.103.150:3000/jkzl/config.git}
          basedir: /usr/local/wlyy2.0-config
        default-label: ${wlyy.spring.config.git.label:master}
        default-label: ${wlyy.spring.config.git.label:in_master}

+ 64 - 0
svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/controller/EnterpriseController.java

@ -0,0 +1,64 @@
package com.yihu.jw.entrance.controller;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.wechat.enterprise.EnterpriseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * Created by Trick on 2020/2/9.
 */
@RestController
@RequestMapping(value ="/enterprise")
@Api(value = "企业号相关", description = "企业号相关", tags = {"企业号相关"})
public class EnterpriseController extends EnvelopRestEndpoint {
    @Autowired
    private EnterpriseService enterpriseService;
    @PostMapping(value = "/sendTWMes")
    @ApiOperation(value = "发送图文消息")
    public Envelop sendTWMes(
            @ApiParam(name = "enterpriseId", value = "企业id", required = true)
            @RequestParam(value = "enterpriseId") String enterpriseId,
            @ApiParam(name = "mobile", value = "手机号", required = true)
            @RequestParam(value = "mobile")String mobile,
            @ApiParam(name = "title", value = "标题", required = true)
            @RequestParam(value = "title")String title,
            @ApiParam(name = "description", value = "描述", required = true)
            @RequestParam(value = "description")String description,
            @ApiParam(name = "url", value = "跳转链接", required = true)
            @RequestParam(value = "url")String url) throws Exception{
        return success(enterpriseService.sendTWMesBymobile( enterpriseId, mobile, title, description, url));
    }
    @PostMapping(value = "/sendTWMesByDoctor")
    @ApiOperation(value = "发送图文消息")
    public Envelop sendTWMesByDoctor(
            @ApiParam(name = "enterpriseId", value = "企业id", required = true)
            @RequestParam(value = "enterpriseId") String enterpriseId,
            @ApiParam(name = "doctor", value = "医生code", required = true)
            @RequestParam(value = "doctor")String doctor,
            @ApiParam(name = "title", value = "标题", required = true)
            @RequestParam(value = "title")String title,
            @ApiParam(name = "description", value = "描述", required = true)
            @RequestParam(value = "description")String description,
            @ApiParam(name = "url", value = "跳转链接", required = true)
            @RequestParam(value = "url")String url) throws Exception{
        return success(enterpriseService.sendTWMesByDoctor( enterpriseId, doctor, title, description, url));
    }
    @PostMapping(value = "/saveAllUser")
    @ApiOperation(value = "拉取用户信息")
    public Envelop saveAllUser(
            @ApiParam(name = "enterpriseId", value = "企业id", required = true)
            @RequestParam(value = "enterpriseId") String enterpriseId) throws Exception{
        return success(enterpriseService.saveAllUser(enterpriseId));
    }
}

+ 1 - 1
svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/controller/MqSdkController.java

@ -361,7 +361,7 @@ public class MqSdkController extends EnvelopRestEndpoint {
        return success(entranceService.MS02014(demoFlag));
    }
    @GetMapping(value = "/ehospitalNotice")
    @PostMapping(value = "/ehospitalNotice")
    @ApiOperation(value = "互联网医院通知")
    public ObjEnvelop ehospitalNotice(
            @ApiParam(name = "userName", value = "推送人姓名")

+ 42 - 0
svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/controller/YkyyController.java

@ -0,0 +1,42 @@
package com.yihu.jw.entrance.controller;
import com.yihu.jw.hospital.prescription.service.entrance.YkyyEntranceService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
 * Created by Trick on 2020/1/19.
 */
@RestController
@RequestMapping(value ="/ykyy")
@Api(value = "眼科医院视图解析", description = "眼科医院视图解析", tags = {"眼科医院视图解析"})
public class YkyyController extends EnvelopRestEndpoint {
    @Autowired
    private YkyyEntranceService ykyyEntranceService;
    @GetMapping(value = "/createSQLQuery")
    @ApiOperation(value = "视图统一查询")
    public ListEnvelop createSQLQuery(@ApiParam(name = "sql", value = "sql语句", required = true)
                                      @RequestParam(value = "sql",required = true)String sql,
                                      @ApiParam(name = "params", value = "入参", required = false)
                                      @RequestParam(value = "params",required = false)Map<String, Object> params,
                                      @ApiParam(name = "page", value = "第几页", required = false)
                                      @RequestParam(value = "page",required = false)Integer page,
                                      @ApiParam(name = "size", value = "分页大小", required = false)
                                      @RequestParam(value = "size",required = false)Integer size){
        return success(ykyyEntranceService.createSQLQuery(sql,params,page,size));
    }
}

+ 32 - 4
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/PatientConsultEndpoint.java

@ -2,6 +2,7 @@ package com.yihu.jw.hospital.endpoint.consult;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.im.ConsultTeamDo;
import com.yihu.jw.entity.base.patient.BasePatientDO;
@ -10,16 +11,19 @@ import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.hospital.prescription.service.PrescriptionService;
import com.yihu.jw.hospital.service.SystemMessage.HospitalSystemMessageService;
import com.yihu.jw.im.service.ImService;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.patient.service.BasePatientService;
import com.yihu.jw.restmodel.im.ConsultVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.rm.patient.PatientRequestMapping;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.wechat.dao.WechatDao;
import com.yihu.jw.wechat.enterprise.EnterpriseService;
import com.yihu.jw.wechat.service.WechatInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -61,6 +65,15 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
	
	@Autowired
	private HospitalSystemMessageService hospitalSystemMessageService;
	@Autowired
	private EnterpriseService enterpriseService;
	@Autowired
	private BaseDoctorDao baseDoctorDao;
	@Autowired
	private BasePatientDao basePatientDao;
	
	@GetMapping(value = BaseHospitalRequestMapping.PatientIM.records)
	@ApiOperation(value = "患者咨询记录查询")
@ -207,8 +220,10 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
	
	@GetMapping(value = BaseHospitalRequestMapping.Prescription.findDoctorByHospitalAndDiseaseAndDept)
	@ApiOperation(value = "根据疾病名称,热门部门查询医生", notes = "根据疾病名称,热门部门查询医生")
	public ListEnvelop findDoctorByHospitalAndDiseaseAndDept(@ApiParam(name = "orgCode", value = "机构code")
	                                               @RequestParam(value = "orgCode", required = true,defaultValue = "350211A1002")String orgCode,
	public ListEnvelop findDoctorByHospitalAndDiseaseAndDept(@ApiParam(name = "iswork", value = "机构code")
																 @RequestParam(value = "iswork", required = false)String iswork,
			                                       @ApiParam(name = "orgCode", value = "机构code")
	                                               @RequestParam(value = "orgCode", required = false,defaultValue = "350211A1002")String orgCode,
	                                               @ApiParam(name = "dept", value = "部门code")
	                                               @RequestParam(value = "dept", required = false)String dept,
	                                               @ApiParam(name = "diseaseKey", value = "疾病名称关键字")
@ -236,7 +251,7 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
	) throws Exception{
		logger.info("findDoctorByHospitalAndDiseaseAndDept start:"+DateUtil.dateToStr(new Date(),"yyyy-MM-dd HH:mm:ss:SSS"));
		return success(prescriptionService.findDoctorByHospitalAndDiseaseAndDept(
		return success(prescriptionService.findDoctorByHospitalAndDiseaseAndDept(iswork,
				orgCode,dept,
				diseaseKey,doctorNameKey,
				jobTitleNameKey,outpatientType,
@ -296,7 +311,7 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
			re = imService.addTeamConsult(consult, patient,doctor);
//			res = re.getInteger("status");
//			dts = re.containsKey("doctor")?re.getJSONArray("doctor"):null;
			
			//发送系统消息
			SystemMessageDO systemMessageDO = new SystemMessageDO();
			systemMessageDO.setTitle("新增专家咨询");
@ -315,6 +330,19 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
			data.put("type",1);
			systemMessageDO.setData(data.toString());
			hospitalSystemMessageService.saveMessage(systemMessageDO);
			//发送企业号推送
			try{
				BaseDoctorDO d = baseDoctorDao.findById(re.getString("doctor"));
				BasePatientDO p = basePatientDao.findById(re.getString("patient"));
				String description ="收到一条线上咨询信息,请及时回复";
				String url = "https://hlwyy.xmzsh.com/hlwyy/ims-app-web/#/onlineChat/chatroom?_rs_title="+p.getName()+" 专家咨询&type=1&sessionId="+re.getString("sessiond_id");
				logger.info("url:"+url);
				enterpriseService.sendTWMesBymobile("zsyy",d.getMobile(),"您的专家咨询有新的消息,请您尽快回复", description, url);
			}catch (Exception e){
				logger.info("发送企业号失败"+e.toString());
			}
		}
		return success("操作成功", consult);
	}

+ 1 - 1
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/patient/PatientNoLoginEndPoint.java

@ -82,7 +82,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
    ) throws Exception{
        logger.info("findDoctorByHospitalAndDiseaseAndDept start:"+ DateUtil.dateToStr(new Date(),"yyyy-MM-dd HH:mm:ss:SSS"));
        return success(prescriptionService.findDoctorByHospitalAndDiseaseAndDept(
        return success(prescriptionService.findDoctorByHospitalAndDiseaseAndDept(null,
                orgCode,dept,
                diseaseKey,doctorNameKey,
                jobTitleNameKey,outpatientType,

+ 130 - 1
svr/svr-internet-hospital/src/main/resources/application.yml

@ -416,4 +416,133 @@ es:
  host:  http://172.26.0.112:9200
  tHost: 172.26.0.112:9300
  clusterName: jkzl
  securityUser: elastic:elastic
  securityUser: elastic:elastic
---
##==心脏中心 ===============================================================================
spring:
  profiles: xzprod_in
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://192.168.103.155:7306/base?useUnicode:true&characterEncoding=utf-8&autoReconnect=true&useSSL=false
    username: jkzl
    password: jkzl@2020
  elasticsearch:
    cluster-name: jkzl #集群名 默认elasticsearch
    cluster-nodes: 192.168.103.153:9200 #配置es节点信息,逗号分隔,如果没有指定,则启动ClientNode
    client-transport-sniff: false
    jest:
      uris: http://192.168.103.153:9300
      connection-timeout: 60000 # Connection timeout in milliseconds.
      multi-threaded: true # Enable connection requests from multiple execution threads.
  activemq:
    broker-url: tcp://59.61.92.90:9103
    user: jkzl
    password: jkzlehr
  redis:
    host: 192.168.103.158 # Redis server host.
    port: 6380 # Redis server port.
    password: q4YaQemf
fastDFS:
  fastdfs_file_url: http://192.168.103.159:8888/
fast-dfs:
  tracker-server: 192.168.103.159:22122 #服务器地址
wechat:
  id: d24d1367-7f4f-43af-910e-a0a43799e040  # base库中,wx_wechat 的id字段  # todo 待配置
# 短信验证码发送的客户端标识,居民端
sms:
  clientId: EwC0iRSrcP #todo 待配置
myFamily:
  qrCodeFailurTime: 2
# mq 是否获取his数据,flag代表获取演示数据,false代表获取his真实数据
demo:
  flag: false
hospital:
  url: https://wx.xmzsh.com
  mqUser: JKZL
  mqPwd: 123456
  SourceSysCode: S60
  TargetSysCode: S01
im:
  im_list_get: http://172.16.1.42:3000/
  data_base_name: im
# 上传文件临时路径配置
FileTempPath:
  upload_temp_path : /var/local/temp
  image_path : /var/local/upload/images
  voice_path : /var/local/upload/voice
  chat_file_path : /var/local/upload/chat
es:
  index:
    Statistics: hlw_quota_test
  type:
    Statistics: hlw_quota_test
  host:  http://192.168.103.153:9200
  tHost: 192.168.103.153:9300
  clusterName: jkzl
  securityUser: lion:jkzlehr
---
##==心脏中心外 ===============================================================================
spring:
  profiles: xzprod
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://172.16.100.240:7306/base?useUnicode:true&characterEncoding=utf-8&autoReconnect=true&useSSL=false
    username: jkzl
    password: jkzl@2020
  elasticsearch:
    cluster-name: jkzl #集群名 默认elasticsearch
    cluster-nodes: 172.16.100.240:9200 #配置es节点信息,逗号分隔,如果没有指定,则启动ClientNode
    client-transport-sniff: false
    jest:
      uris: http://172.16.100.240:9300
      connection-timeout: 60000 # Connection timeout in milliseconds.
      multi-threaded: true # Enable connection requests from multiple execution threads.
  activemq:
    broker-url: tcp://59.61.92.90:9103
    user: jkzl
    password: jkzlehr
  redis:
    host: 172.16.100.240 # Redis server host.
    port: 6380 # Redis server port.
    password: q4YaQemf
fastDFS:
  fastdfs_file_url: http://172.16.100.240:8888/
fast-dfs:
  tracker-server: 172.16.100.240:22122 #服务器地址
wechat:
  id: d24d1367-7f4f-43af-910e-a0a43799e040  # base库中,wx_wechat 的id字段  # todo 待配置
# 短信验证码发送的客户端标识,居民端
sms:
  clientId: EwC0iRSrcP #todo 待配置
myFamily:
  qrCodeFailurTime: 2
# mq 是否获取his数据,flag代表获取演示数据,false代表获取his真实数据
demo:
  flag: false
hospital:
  url: https://wx.xmzsh.com
  mqUser: JKZL
  mqPwd: 123456
  SourceSysCode: S60
  TargetSysCode: S01
im:
  im_list_get: http://172.16.1.42:3000/
  data_base_name: im
# 上传文件临时路径配置
FileTempPath:
  upload_temp_path : /var/local/temp
  image_path : /var/local/upload/images
  voice_path : /var/local/upload/voice
  chat_file_path : /var/local/upload/chat
es:
  index:
    Statistics: hlw_quota_test
  type:
    Statistics: hlw_quota_test
  host:  http://172.16.100.240:9200
  tHost: 172.16.100.240:9300
  clusterName: jkzl
  securityUser: lion:jkzlehr

+ 7 - 0
svr/svr-internet-hospital/src/main/resources/bootstrap.yml

@ -59,4 +59,11 @@ spring:
  cloud:
    config:
      uri: ${wlyy.spring.config.uri:http://192.168.33.199:1221}
      label: ${wlyy.spring.config.label:master}
---
spring:
  profiles: xzprod
  cloud:
    config:
      uri: ${wlyy.pring.config.uri:http://172.16.100.63:1221}
      label: ${wlyy.spring.config.label:master}