|  | @@ -18,11 +18,15 @@ import thyyxxk.webserver.entity.ca.CaData;
 | 
	
		
			
				|  |  |  import thyyxxk.webserver.entity.ca.CaReturn;
 | 
	
		
			
				|  |  |  import thyyxxk.webserver.entity.ca.CaSendParams;
 | 
	
		
			
				|  |  |  import thyyxxk.webserver.entity.ca.CaSingBizSnReturnData;
 | 
	
		
			
				|  |  | +import thyyxxk.webserver.entity.login.UserInfo;
 | 
	
		
			
				|  |  | +import thyyxxk.webserver.service.redislike.RedisLikeService;
 | 
	
		
			
				|  |  |  import thyyxxk.webserver.utils.ResultVoUtil;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import java.io.UnsupportedEncodingException;
 | 
	
		
			
				|  |  |  import java.net.URLDecoder;
 | 
	
		
			
				|  |  |  import java.net.URLEncoder;
 | 
	
		
			
				|  |  | +import java.util.ArrayList;
 | 
	
		
			
				|  |  | +import java.util.List;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  @Slf4j
 | 
	
		
			
				|  |  |  @Service
 | 
	
	
		
			
				|  | @@ -30,9 +34,11 @@ public class CaServer {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private final CaData caData;
 | 
	
		
			
				|  |  |      private final String SUCCRSS = "success";
 | 
	
		
			
				|  |  | +    private final RedisLikeService redisLikeService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    public CaServer(CaData caData) {
 | 
	
		
			
				|  |  | +    public CaServer(CaData caData, RedisLikeService redisLikeService) {
 | 
	
		
			
				|  |  |          this.caData = caData;
 | 
	
		
			
				|  |  | +        this.redisLikeService = redisLikeService;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @EqualsAndHashCode(callSuper = true)
 | 
	
	
		
			
				|  | @@ -41,16 +47,28 @@ public class CaServer {
 | 
	
		
			
				|  |  |          private String id;
 | 
	
		
			
				|  |  |          private String msg;
 | 
	
		
			
				|  |  |          private String desc;
 | 
	
		
			
				|  |  | +        private Integer count = 1;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    public ResultVo<CaReturn.CaData> sendByCode(Send send) {
 | 
	
		
			
				|  |  | -        // {"ret":"success","msg":"success","data":{"isTrust":1}} 如果没有开免密就这样
 | 
	
		
			
				|  |  | +    public List<CaReturn.CaData> sendBatchByCode(Send send) {
 | 
	
		
			
				|  |  | +        List<CaReturn.CaData> returnValue = new ArrayList<>();
 | 
	
		
			
				|  |  | +        for (int i = 0; i < send.getCount(); i++) {
 | 
	
		
			
				|  |  | +            returnValue.add(sendByCode(send));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return returnValue;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public CaReturn.CaData sendByCode(Send send) {
 | 
	
		
			
				|  |  | +        UserInfo userInfoByCode = redisLikeService.getUserInfoByCode(send.getId());
 | 
	
		
			
				|  |  |          send.setBizSn(IdUtil.simpleUUID());
 | 
	
		
			
				|  |  |          CaReturn push = push(send);
 | 
	
		
			
				|  |  |          signatureAuthentication(send, push);
 | 
	
		
			
				|  |  |          String timeStamp = generateTimestampByInData(send);
 | 
	
		
			
				|  |  |          push.getData().setTimeStamp(timeStamp);
 | 
	
		
			
				|  |  | -        return ResultVoUtil.success(push.getData());
 | 
	
		
			
				|  |  | +        push.getData().setBizSn(send.getBizSn());
 | 
	
		
			
				|  |  | +        push.getData().setSignature("http://172.16.32.167:8077/doctorSignatureImage/" + send.getId() + ".png");
 | 
	
		
			
				|  |  | +        push.getData().setName(userInfoByCode.getName());
 | 
	
		
			
				|  |  | +        return push.getData();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
	
		
			
				|  | @@ -67,6 +85,7 @@ public class CaServer {
 | 
	
		
			
				|  |  |              send.setAppId(app.getAppId());
 | 
	
		
			
				|  |  |              send.setMsg(CaUtils.GetSHA256FormString(send.getMsg()));
 | 
	
		
			
				|  |  |              send.setMsgWrapper("0");
 | 
	
		
			
				|  |  | +            send.setUrl(URLEncoder.encode("http://127.0.0.1/", "UTF-8"));
 | 
	
		
			
				|  |  |              send.setMode("redirect");
 | 
	
		
			
				|  |  |              send.setSign(CaUtils.getSign(app.getPrivatekey(), send.getMsg()));
 | 
	
		
			
				|  |  |              String execute = post.addBody(send).execute(String.class);
 | 
	
	
		
			
				|  | @@ -89,6 +108,12 @@ public class CaServer {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 认证签名
 | 
	
		
			
				|  |  | +     *
 | 
	
		
			
				|  |  | +     * @param send
 | 
	
		
			
				|  |  | +     * @param caReturn
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  |      private void signatureAuthentication(Send send, CaReturn caReturn) {
 | 
	
		
			
				|  |  |          CaData.SignAuthentication signData = caData.getSignAuthentication();
 | 
	
		
			
				|  |  |          CaWSDL caWSDL = new CaWSDL(signData.getUrl());
 | 
	
	
		
			
				|  | @@ -124,6 +149,12 @@ public class CaServer {
 | 
	
		
			
				|  |  |                  .replace("${SignData}", caReturn.getData().getSignValue());
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 认证时间戳并返回
 | 
	
		
			
				|  |  | +     *
 | 
	
		
			
				|  |  | +     * @param send 数据
 | 
	
		
			
				|  |  | +     * @return
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  |      private String generateTimestampByInData(Send send) {
 | 
	
		
			
				|  |  |          String data = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" +
 | 
	
		
			
				|  |  |                  "<Root>\n" +
 |