瀏覽代碼

中山医院

Trick 5 年之前
父節點
當前提交
628e256048

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

@ -7,15 +7,11 @@ 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;
@ -24,8 +20,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
/**
 * Created by Trick on 2020/2/8.
@ -59,10 +54,16 @@ public class EnterpriseService {
        WxEnterpriseDO wxEnterpriseDO = wxEnterpriseDao.findOne(enterpriseId);
        WxEnterpriseTokenDO wxEnterpriseTokenDO = wxEnterpriseTokenDao.findByCode(wxEnterpriseDO.getCorpid());
        List<WxEnterpriseTokenDO> wxEnterpriseTokenDOs = wxEnterpriseTokenDao.findByCodeOrderByCreateTimeDesc(wxEnterpriseDO.getCorpid());
        if(wxEnterpriseTokenDO!=null&&wxEnterpriseTokenDO.getExpiresTime().after(new Date())){
            return wxEnterpriseTokenDO.getAccessToken();
        if(wxEnterpriseTokenDOs!=null&&wxEnterpriseTokenDOs.size()>0) {
            logger.info("token size:"+wxEnterpriseTokenDOs.size());
            WxEnterpriseTokenDO tokenDO = wxEnterpriseTokenDOs.get(0);
            if (tokenDO.getExpiresTime().after(new Date())) {
                return tokenDO.getAccessToken();
            }else{
                wxEnterpriseTokenDao.delete(wxEnterpriseTokenDOs);
            }
        }
        String result = HttpUtil.sendGet("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+wxEnterpriseDO.getCorpid()+"&corpsecret="+wxEnterpriseDO.getCorpsecret());
@ -71,17 +72,13 @@ public class EnterpriseService {
        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);
        token.setCode(wxEnterpriseDO.getCorpid());
        wxEnterpriseTokenDao.save(token);
        return token.getAccessToken();
@ -115,6 +112,27 @@ public class EnterpriseService {
        return rs;
    }
    public String sendMKMesByDoctor(String enterpriseId,String doctor,String content)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 sendMKMes(enterpriseId, user.getUserid(), content);
            }
        }
        return "";
    }
    public String sendMKMesByMobile(String enterpriseId,String mobile,String content)throws Exception{
        WxEnterpriseUserDO user = wxEnterpriseUserDao.findByEnterpriseIdAndMobile(enterpriseId,mobile);
        if(user!=null){
            return sendMKMes(enterpriseId,user.getUserid(),content);
        }
        return "";
    }
    public String sendTWMesByDoctor(String enterpriseId,String doctor,String title,String description,String url)throws Exception{
        BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doctor);
@ -166,6 +184,8 @@ public class EnterpriseService {
        param.put("enable_id_trans",0);
        param.put("enable_duplicate_check",0);
        logger.info("TWparam:"+param.toJSONString());
        String rs = HttpUtil.sendPost(mesurl,param.toJSONString());
        logger.info("TWMes:"+rs);
@ -201,6 +221,35 @@ public class EnterpriseService {
        return deptStr;
    }
    public String sendMKMes(String enterpriseId,String userId,String content)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","markdown");
        WxEnterpriseDO wxEnterpriseDO = wxEnterpriseDao.findOne(enterpriseId);
        param.put("agentid",wxEnterpriseDO.getAgentid());
        JSONObject markdown = new JSONObject();
        markdown.put("content",content);
        param.put("markdown",markdown);
        param.put("enable_duplicate_check",0);
        logger.info("MKparam:"+param.toJSONString());
        String rs = HttpUtil.sendPost(mesurl,param.toJSONString());
        logger.info("MKMes:"+rs);
        return rs;
    }
    public JSONArray getUserInfo(String enterpriseId,String dept)throws Exception{
        logger.info("getUserInfo");
@ -283,16 +332,16 @@ public class EnterpriseService {
//        param.put("touser","MuOu");
//        param.put("toparty","");
//        param.put("totag","");
//        param.put("msgtype","text");
//        param.put("msgtype","markdown");
//        param.put("agentid",agentId);
//        JSONObject markdown = new JSONObject();
//
//        JSONObject text = new JSONObject();
//        text.put("content","测试MuOu成员企业推送");
//        param.put("text",text);
//        param.put("safe",0);
//        param.put("enable_id_trans",0);
//        markdown.put("content","dd[查看详情](www.baidu.com)");
//
//        param.put("markdown",markdown);
//        param.put("enable_duplicate_check",0);
//
//
//        String rs = HttpUtil.sendPost(url,param.toJSONString());
//
//        System.out.println(rs);

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

@ -5,10 +5,12 @@ import com.yihu.jw.entity.hospital.enterprise.WxEnterpriseTokenDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by Trick on 2020/2/8.
 */
public interface WxEnterpriseTokenDao extends PagingAndSortingRepository<WxEnterpriseTokenDO, String>, JpaSpecificationExecutor<WxEnterpriseTokenDO> {
    WxEnterpriseTokenDO findByCode(String code);
    List<WxEnterpriseTokenDO> findByCodeOrderByCreateTimeDesc(String code);
}

+ 1 - 10
business/im-service/src/main/java/com/yihu/jw/im/service/ImService.java

@ -231,7 +231,6 @@ public class ImService {
	 * @param patient 患者标识
	 * @param id 会话ID(等同IM表topicId)
	 * @param type 咨询会话类型
	 * @param pagesize 分页大小
	 * @param title 标题关键字
	 * @return
	 */
@ -460,7 +459,7 @@ public class ImService {
		
		for (ConsultTeamLogDo log : logs) {
//                String response = ImUtill.sendTopicIM(getUID(), patient.getName(), consult, String.valueOf(log.getType()), log.getContent());
			String response = imUtil.sendTopicIM(patientcode, patient.getName(), consult, String.valueOf(log.getType()), log.getContent(),null,patient.getName(),patient.getSex(), IdCardUtil.getAgeForIdcard(patient.getIdcard()));
			String response = imUtil.sendTopicIM(patientcode, patient.getName(), consult, String.valueOf(log.getType()), log.getContent(),null,patient.getName(),Integer.parseInt(IdCardUtil.getSexForIdcard_new(patient.getIdcard())), IdCardUtil.getAgeForIdcard(patient.getIdcard()));
			
			if (org.apache.commons.lang3.StringUtils.isNotEmpty(response)) {
				JSONObject resObj = JSON.parseObject(response);
@ -948,7 +947,6 @@ public class ImService {
	 *
	 * @param outpatientCode
	 * @param patient
	 * @param agent
	 * @param doctorCode
	 * @param reason
	 * @return
@ -1643,7 +1641,6 @@ public class ImService {
	 * @param id 会话ID(等同IM表topicId)
	 * @param type 咨询会话类型
	 * @param status 咨询状态:0全部,1候诊中,2就诊中,3结束
	 * @param pagesize 分页大小
	 * @param title 标题关键字
	 * @param start_time 开始时间
	 * @param end_time 结束时间
@ -1745,9 +1742,6 @@ public class ImService {
	
	/**
	 * 更新会话成员(新增或删除)
	 * @param sessionId 会话id
	 * @param user 新增的成员id
	 * @param oldUserId  删除的成员id
	 */
	public String updateParticipant(String sessionid, String userid, String olduserid)throws Exception {
		return imUtil.updateParticipant(sessionid,userid,olduserid);
@ -1775,7 +1769,6 @@ public class ImService {
	 * @param when
	 * @param symptoms
	 * @param images
	 * @param consult
	 * @return
	 */
	public String generalAddExpertConsult(String patient_code, String general_doctor, String special_doctor, String when, String symptoms, String images, ConsultTeamDo ct) throws Exception {
@ -1929,7 +1922,6 @@ public class ImService {
	 * @param title 标题关键字
	 * @param start_time 开始时间
	 * @param end_time 结束时间
	 * @param patient 居民CODE
	 * @return
	 */
	public List<ConsultVO>  findexpertConsultRecordByDoctor(String doctor, String id,
@ -2016,7 +2008,6 @@ public class ImService {
	 * @param id 会话ID(等同IM表topicId)
	 * @param type 咨询会话类型
	 * @param status 咨询状态:0全部,1候诊中,2就诊中,3结束
	 * @param pagesize 分页大小
	 * @param title 标题关键字
	 * @param start_time 开始时间
	 * @param end_time 结束时间

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

@ -614,9 +614,9 @@ 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);
//    }
    public static void main(String arg[]){
        String ps = MD5.md5Hex("123456" + "{" + "Ar8f2" + "}");
        System.out.println(ps);
    }
}

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

@ -54,6 +54,30 @@ public class EnterpriseController extends EnvelopRestEndpoint {
        return success(enterpriseService.sendTWMesByDoctor( enterpriseId, doctor, title, description, url));
    }
    @PostMapping(value = "/sendMKMesByDoctor")
    @ApiOperation(value = "发送MK消息")
    public Envelop sendMKMesByDoctor(
            @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 = "content", value = "描述", required = true)
            @RequestParam(value = "content")String content) throws Exception{
        return success(enterpriseService.sendMKMesByDoctor(enterpriseId,doctor,content));
    }
    @PostMapping(value = "/sendMKMesByMobile")
    @ApiOperation(value = "发送MK消息")
    public Envelop sendMKMesByMobile(
            @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 = "content", value = "描述", required = true)
            @RequestParam(value = "content")String content) throws Exception{
        return success(enterpriseService.sendMKMesByMobile(enterpriseId,mobile,content));
    }
    @PostMapping(value = "/saveAllUser")
    @ApiOperation(value = "拉取用户信息")
    public Envelop saveAllUser(

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

@ -335,10 +335,9 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
			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);
				enterpriseService.sendMKMesByMobile("zsyy",d.getMobile(),"您的专家咨询有新的消息,请您尽快回复 [查看详情]("+url+")");
			}catch (Exception e){
				logger.info("发送企业号失败"+e.toString());
			}