Bläddra i källkod

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

liubing 2 år sedan
förälder
incheckning
26538ed324

+ 48 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/common/CommonController.java

@ -1,9 +1,12 @@
package com.yihu.jw.care.endpoint.common;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.aop.ObserverRequired;
import com.yihu.jw.care.service.message.PatientMessageService;
import com.yihu.jw.care.util.MessageDigestUtil;
import com.yihu.jw.care.util.MessageUtil;
import com.yihu.jw.care.util.WeatherUtil;
import com.yihu.jw.entity.base.wx.WxWechatDO;
import com.yihu.jw.entity.care.weather.BaseWeatherDayDO;
import com.yihu.jw.entity.care.weather.BaseWeatherWeekDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
@ -12,9 +15,13 @@ 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.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.patient.PatientRequestMapping;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.wechat.dao.WechatDao;
import com.yihu.jw.wechat.service.WechatInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -23,7 +30,10 @@ import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
 * Created by yeshijie on 2022/7/28.
@ -41,6 +51,44 @@ public class CommonController extends EnvelopRestEndpoint {
    private PatientMessageService patientMessageService;
    @Resource
    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    @Resource
    private WechatInfoService wechatInfoService;
    @Resource
    private WechatDao wechatDao;
    @PostMapping(value = "open/getSign")
    @ApiOperation(value = "获取微信签名", notes = "获取微信签名")
    @ObserverRequired
    public Envelop getSign(@ApiParam(name = "pageUrl", value = "授权页面")
                           @RequestParam(value = "pageUrl", required = true)String pageUrl,
                           @ApiParam(name = "wxId", value = "微信id")
                           @RequestParam(value = "wxId", required = true)String wxId){
        try{
            logger.info("pageUrl="+pageUrl);
            logger.info("wxId="+wxId);
            String ticket = wechatInfoService.getJsapi_ticketByToken(wxId);
            WxWechatDO wxWechatDO = wechatDao.findById(wxId);
            Map<Object, Object> map = new HashMap<Object, Object>();
            if (ticket != null) {
                String noncestr = UUID.randomUUID().toString();
                long timestamp = System.currentTimeMillis() / 1000;
                String url = pageUrl;
                logger.info("getSign.url="+url);
                String str = "jsapi_ticket=" + ticket + "&noncestr=" + noncestr + "&timestamp=" + timestamp + "&url=" + url;
                logger.info("getSign.str="+str);
                // sha1加密
                String signature = MessageDigestUtil.SHA1(str);
                map.put("noncestr", noncestr);
                map.put("timestamp", timestamp);
                map.put("signature", signature);
                map.put("appid", wxWechatDO.getAppId());
                return success(PatientRequestMapping.Wechat.api_success,map);
            }
            return failed(PatientRequestMapping.Wechat.api_error);
        }catch (Exception e){
            return failedException2(e);
        }
    }
    @GetMapping(value = "open/getCloudCareUrl")
    @ApiOperation(value = "获取云照护url")

+ 2 - 28
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/consult/PatientConsultEndpoint.java

@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.aop.ObserverRequired;
import com.yihu.jw.care.service.consult.ConsultService;
import com.yihu.jw.care.service.message.BaseServiceNewsService;
import com.yihu.jw.care.util.MessageDigestUtil;
import com.yihu.jw.care.util.MessageUtil;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorRoleDao;
@ -45,7 +46,6 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.*;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.util.*;
/**
@ -516,7 +516,7 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
				String str = "jsapi_ticket=" + ticket + "&noncestr=" + noncestr + "&timestamp=" + timestamp + "&url=" + url;
				logger.info("getSign.str="+str);
				// sha1加密
				String signature = SHA1(str);
				String signature = MessageDigestUtil.SHA1(str);
				map.put("noncestr", noncestr);
				map.put("timestamp", timestamp);
				map.put("signature", signature);
@ -528,32 +528,6 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
			return failedException2(e);
		}
	}
	
	/**
	 * @description: SHA、SHA1加密 @parameter: str:待加密字符串 @return: 加密串
	 **/
	public String SHA1(String str) throws Exception {
		try {
			MessageDigest digest = MessageDigest.getInstance("SHA-1"); // 如果是SHA加密只需要将"SHA-1"改成"SHA"即可
			digest.update(str.getBytes());
			byte messageDigest[] = digest.digest();
			// Create Hex String
			StringBuffer hexStr = new StringBuffer();
			// 字节数组转换为 十六进制 数
			for (int i = 0; i < messageDigest.length; i++) {
				String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
				if (shaHex.length() < 2) {
					hexStr.append(0);
				}
				hexStr.append(shaHex);
			}
			return hexStr.toString();
			
		} catch (Exception e) {
			throw new Exception(e.getMessage());
		}
	}
	
	@PostMapping(value = BaseHospitalRequestMapping.PatientIM.updateConsultParticipant)
	@ApiOperation(value = "更新会话成员(新增或删除)", notes = "更新会话成员(新增或删除)")

+ 35 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/util/MessageDigestUtil.java

@ -0,0 +1,35 @@
package com.yihu.jw.care.util;
import java.security.MessageDigest;
/**
 * 加密工具类
 * Created by yeshijie on 2022/11/11.
 */
public class MessageDigestUtil {
    /**
     * @description: SHA、SHA1加密 @parameter: str:待加密字符串 @return: 加密串
     **/
    public static String SHA1(String str) throws Exception {
        try {
            MessageDigest digest = MessageDigest.getInstance("SHA-1"); // 如果是SHA加密只需要将"SHA-1"改成"SHA"即可
            digest.update(str.getBytes());
            byte messageDigest[] = digest.digest();
            // Create Hex String
            StringBuffer hexStr = new StringBuffer();
            // 字节数组转换为 十六进制 数
            for (int i = 0; i < messageDigest.length; i++) {
                String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
                if (shaHex.length() < 2) {
                    hexStr.append(0);
                }
                hexStr.append(shaHex);
            }
            return hexStr.toString();
        } catch (Exception e) {
            throw new Exception(e.getMessage());
        }
    }
}