gongdecai 2 yıl önce
ebeveyn
işleme
23132251c9
20 değiştirilmiş dosya ile 618 ekleme ve 8 silme
  1. 2 0
      .gitignore
  2. 21 0
      src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/HyBaoTokenController.java
  3. 43 0
      src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/HyBaoToken.java
  4. 16 0
      src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/HyBaoTokenMapper.java
  5. 16 0
      src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IHyBaoTokenService.java
  6. 20 0
      src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/HyBaoTokenServiceImpl.java
  7. 5 0
      src/main/resources/mapper/HyBaoTokenMapper.xml
  8. 12 6
      winsea-haixin-platform-backend/pom.xml
  9. 148 0
      winsea-haixin-platform-backend/src/main/java/com/yh/saas/platform/controller/LoginController.java
  10. 1 0
      winsea-haixin-platform-backend/src/main/java/com/yh/saas/platform/controller/StaffController.java
  11. 1 1
      winsea-haixin-platform-backend/src/main/resources/application.yml
  12. 1 1
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/GeneratorCodeByTables.java
  13. 147 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/CommonUserController.java
  14. 21 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/HyBaoTokenController.java
  15. 62 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/YinghangController.java
  16. 45 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/HyBaoToken.java
  17. 16 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/HyBaoTokenMapper.java
  18. 16 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IHyBaoTokenService.java
  19. 20 0
      winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/HyBaoTokenServiceImpl.java
  20. 5 0
      winsea-haixin-plugin-wangluohuoyun/src/main/resources/mapper/HyBaoTokenMapper.xml

+ 2 - 0
.gitignore

@@ -168,3 +168,5 @@ deployment.yaml
 ######################
 Dockerfile
 /.recommenders/
+templates/1657067591042.png
+templates/1657067591895.png

+ 21 - 0
src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/HyBaoTokenController.java

@@ -0,0 +1,21 @@
+package com.yh.saas.plugin.yiliangyiyun.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 记录token 前端控制器
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-08-15
+ */
+@RestController
+@RequestMapping("/hyBaoToken")
+public class HyBaoTokenController {
+
+}
+

+ 43 - 0
src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/HyBaoToken.java

@@ -0,0 +1,43 @@
+package com.yh.saas.plugin.yiliangyiyun.entity;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import BaseModel;
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotations.Version;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 记录token
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-08-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class HyBaoToken extends BaseModel<HyBaoToken> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private String id;
+    /**
+     * token
+     */
+    private String token;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/HyBaoTokenMapper.java

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.mapper;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.HyBaoToken;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 记录token Mapper 接口
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-08-15
+ */
+public interface HyBaoTokenMapper extends BaseMapper<HyBaoToken> {
+
+}

+ 16 - 0
src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IHyBaoTokenService.java

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.service;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.HyBaoToken;
+import com.baomidou.mybatisplus.service.IService;
+
+/**
+ * <p>
+ * 记录token 服务类
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-08-15
+ */
+public interface IHyBaoTokenService extends IService<HyBaoToken> {
+
+}

+ 20 - 0
src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/HyBaoTokenServiceImpl.java

@@ -0,0 +1,20 @@
+package com.yh.saas.plugin.yiliangyiyun.service.impl;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.HyBaoToken;
+import com.yh.saas.plugin.yiliangyiyun.mapper.HyBaoTokenMapper;
+import com.yh.saas.plugin.yiliangyiyun.service.IHyBaoTokenService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 记录token 服务实现类
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-08-15
+ */
+@Service
+public class HyBaoTokenServiceImpl extends ServiceImpl<HyBaoTokenMapper, HyBaoToken> implements IHyBaoTokenService {
+
+}

+ 5 - 0
src/main/resources/mapper/HyBaoTokenMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yh.saas.plugin.yiliangyiyun.mapper.HyBaoTokenMapper">
+
+</mapper>

+ 12 - 6
winsea-haixin-platform-backend/pom.xml

@@ -128,12 +128,12 @@
             <artifactId>winsea-haixin-plugin-operation</artifactId>
             <version>0.7.0</version>
         </dependency>
-        <!--修船-->
-<!--        <dependency>-->
-<!--            <groupId>com.yh.haixin</groupId>-->
-<!--            <artifactId>winsea-haixin-plugin-repair</artifactId>-->
-<!--            <version>0.7.0</version>-->
-<!--        </dependency>-->
+
+        <dependency>
+            <groupId>com.auth0</groupId>
+            <artifactId>java-jwt</artifactId>
+            <version>3.10.3</version>
+        </dependency>
 
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -141,6 +141,12 @@
             <scope>provided</scope>
         </dependency>
 
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt</artifactId>
+            <version>0.9.1</version>
+        </dependency>
+
 
         <dependency>
             <groupId>mysql</groupId>

+ 148 - 0
winsea-haixin-platform-backend/src/main/java/com/yh/saas/platform/controller/LoginController.java

@@ -0,0 +1,148 @@
+package com.yh.saas.platform.controller;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.winsea.svc.base.security.config.SecurityProperties;
+import com.winsea.svc.base.security.entity.Account;
+import com.winsea.svc.base.security.service.IAccountService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.DigestUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpSession;
+import java.util.Date;
+import java.util.HashMap;
+
+@RestController
+@RequestMapping("/loginController")
+public class LoginController {
+
+    @Autowired
+    private SecurityProperties securityProperties;
+    @Autowired
+    private IAccountService accountService;
+
+    @GetMapping("/query/login")
+    public void login(Account user, HttpSession session) throws Exception {
+        String username = user.getLoginName();
+        String password = user.getLoginPassword();
+        if(!checkLock(session, username)) {
+            throw new Exception("该账号已被锁定");
+        }
+        Account u = this.getTargetUser(user);
+        if(!checkPassWord(password, u.getLoginPassword())) {
+            //新增登录失败记录
+            addFailNum(session, username);
+            throw new Exception("用户名或密码错误!");
+        }
+        //清空登录失败记录
+        cleanFailNum(session, username);
+
+    }
+
+
+    /**
+     * 校验密码
+     * @param oldPassWord
+     * @param newPassWord
+     */
+    public static Boolean checkPassWord(String oldPassWord, String newPassWord) {
+        String md5PassWord = DigestUtils.md5DigestAsHex(addSalt(newPassWord, "password").getBytes());
+        if (!oldPassWord.equals(md5PassWord)) {
+            return false;
+        }
+        return true;
+    }
+    private static String addSalt(String passWord, String salt){
+        StringBuffer result = new StringBuffer();
+        result.append(passWord);
+        result.append("_");
+        result.append(salt);
+        return result.toString();
+    }
+
+
+
+
+    private Account getTargetUser(Account user) {
+        Account.AccountType accountType = null != user.getAccountType() ? user.getAccountType() : Account.AccountType.valueOf(this.securityProperties.getDefaultUserKind());
+        Account targetUser = this.getUserByLoginName(user.getLoginName(), user.getCompId(), accountType);
+        if (null == targetUser) {
+            targetUser = new Account();
+        }
+
+        return targetUser;
+    }
+
+
+    public Account getUserByLoginName(String loginName, String compId, Account.AccountType accountType) {
+        Wrapper<Account> wrapper = (new EntityWrapper()).andNew("(1=1", new Object[0]).eq("login_name", loginName).or().eq("user_mobile_phone", loginName).andNew("1=1)", new Object[0]);
+        if (StringUtils.isEmpty(compId)) {
+            wrapper.isNull("comp_id");
+        } else {
+            wrapper.eq("comp_id", compId);
+        }
+
+        if (null != accountType) {
+            wrapper = wrapper.eq("account_type", accountType.name());
+        }
+
+        return (Account)accountService.selectOne(wrapper);
+    }
+    /**
+     * 校验用户登录失败次数
+     * @param session
+     * @param username
+     * @return
+     */
+    public boolean checkLock(HttpSession session, String username) {
+        Object o = session.getServletContext().getAttribute(username);
+        if(o==null) {
+            return true;
+        }
+        HashMap<String,Object> map  = (HashMap<String, Object>) o;
+        int num  = (int) map.get("num");
+        Date date = (Date) map.get("lastDate");
+        long timeDifference = ((new Date().getTime()-date.getTime())/60/1000);
+        if(num>=5&&timeDifference<30) {
+            return false;
+        }
+        return true;
+    }
+    /**
+     * 新增用户登录失败次数
+     * @param session
+     * @param username
+     */
+    public void addFailNum(HttpSession session, String username) {
+        Object o = session.getServletContext().getAttribute(username);
+        HashMap<String,Object> map = null;
+        int num= 0;
+        if(o==null) {
+            map = new HashMap<String,Object>();
+        }else {
+            map  = (HashMap<String, Object>) o;
+            num  = (int) map.get("num");
+            Date date = (Date) map.get("lastDate");
+            long timeDifference = ((new Date().getTime()-date.getTime())/60/1000);
+            if(timeDifference>=30) {
+                num=0;
+            }
+        }
+        map.put("num", num+1);
+        map.put("lastDate", new Date());
+        session.getServletContext().setAttribute(username, map);
+    }
+    /**
+     * 清理用户登录失败的记录
+     * @param session
+     * @param username
+     */
+    public void cleanFailNum(HttpSession session, String username) {
+        session.getServletContext().removeAttribute(username);
+    }
+
+}

+ 1 - 0
winsea-haixin-platform-backend/src/main/java/com/yh/saas/platform/controller/StaffController.java

@@ -125,6 +125,7 @@ public class StaffController {
 	/**
 	 * 根据公司ID和库点id获得有权限的人员集合
 	 *
+	 *
 	 * @param compId
 	 * @return
 	 */

+ 1 - 1
winsea-haixin-platform-backend/src/main/resources/application.yml

@@ -153,7 +153,7 @@ auth:
   expire-in: 2592000
   login-url: /login.html
   logout-url: /auth/api/logout
-  session-timeout: -1
+  session-timeout: 900
   success-url: ''
   unauthorized-url: ''
 

+ 1 - 1
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/GeneratorCodeByTables.java

@@ -53,7 +53,7 @@ public class GeneratorCodeByTables {
     }
 
     public static void main(String[] args) throws IOException {
-        generateByTables("Gdc", "com.yh.saas.plugin.yiliangyiyun","hy_oper_log");
+        generateByTables("Gdc", "com.yh.saas.plugin.yiliangyiyun","hy_bao_token");
     }
 
     /**

+ 147 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/CommonUserController.java

@@ -2,6 +2,7 @@ package com.yh.saas.plugin.yiliangyiyun.controller;
 
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.openapi.sdk.service.DataExchangeService;
@@ -25,9 +26,16 @@ import com.yh.saas.plugin.yiliangyiyun.entity.*;
 import com.yh.saas.plugin.yiliangyiyun.entity.view.UserDefinedBean;
 import com.yh.saas.plugin.yiliangyiyun.exception.ServiceException;
 import com.yh.saas.plugin.yiliangyiyun.service.ICommonUserService;
+import com.yh.saas.plugin.yiliangyiyun.service.IHyBaoTokenService;
 import com.yh.saas.plugin.yiliangyiyun.service.IHyTokenService;
 import com.yh.saas.plugin.yiliangyiyun.util.*;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
@@ -39,6 +47,7 @@ import com.aliyuncs.profile.DefaultProfile;
 import com.google.gson.Gson;
 
 
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 
 import com.aliyuncs.sts.model.v20150401.*;
@@ -81,6 +90,8 @@ public class CommonUserController {
     private WebSocket webSocket;
     @Autowired
     private IHyTokenService hyToken;
+    @Autowired
+    private IHyBaoTokenService hyBaoTokenService;
 
 
     @GetMapping("/getAuth")
@@ -482,5 +493,141 @@ public class CommonUserController {
             orderPath();
         }
     }
+
+
+
+
+
+    public void loginBao() {
+        try {
+            Map<String, String> map = new HashMap<String, String>(4);
+            map.put("user", "d25e76de-31f6-4dc1-8009-3dbd17628e76");
+            map.put("pwd", "Xw846GfNv073t8779PrtMa6z02Ui43");
+            map.put("srt", "e8eaf629-014c-4884-a976-459380b9cb66");
+            map.put("cid", "dfaf33d6-68f0-4b3a-b9ba-9228a2480faf");
+            String url = "https://testopen.95155.com/save/apis/login";
+            // 设置http读写超时
+            DataExchangeService des = new DataExchangeService(5000, 8000);
+            System.out.println("请求地址:"+url);
+            // 通过https方式调用,此方法内部会使用私钥生成签名参数sign,私钥不会发送
+            String res = des.postHttps(url, map);
+            res = res.substring(1, res.length() - 1);
+            String[] strs = res.split(",");
+            Map<String, String> map1 = new HashMap<String, String>();
+            for (String string : strs) {
+                String key = string.split(":")[0];
+                String value = string.split(":")[1];
+                // 去掉头部空格
+                String key1 = key.trim().replaceAll("\"", "");
+                String value1 = value.trim().replaceAll("\"", "");
+                map1.put(key1, value1);
+            }
+            hyBaoTokenService.delete(new EntityWrapper<HyBaoToken>().eq("delete_flag", "0"));
+            HyBaoToken token = new HyBaoToken();
+            token.setId(IdGenerator.generateUUID());
+            token.setToken(map1.get("\"result\"").replaceAll("\"", ""));
+            hyBaoTokenService.insert(token);
+            System.out.println("返回:" + res);
+        } catch (Exception e) {
+            System.out.println("e:" + e.getMessage());
+        }
+    }
+
+
+    @PostMapping("/baodan")
+    public void baodan() throws Exception {
+        HyBaoToken token = hyBaoTokenService.selectOne(new EntityWrapper<HyBaoToken>()
+                .eq("delete_flag", 0));
+        if (token == null) {
+            login();
+            token = hyBaoTokenService.selectOne(new EntityWrapper<HyBaoToken>()
+                    .eq("delete_flag", "0"));
+        }
+        JSONObject params = new JSONObject();
+        params.put("token", token.getToken());
+        params.put("cid", "dfaf33d6-68f0-4b3a-b9ba-9228a2480faf");
+        params.put("srt", "e8eaf629-014c-4884-a976-459380b9cb66");
+        JSONObject insurance = new JSONObject();
+        insurance.put("channelOrderId", "450324");
+        insurance.put("productCode", "P200001");
+        insurance.put("amount", 10000);
+        insurance.put("payMoney", 5);
+        JSONObject startPlace = new JSONObject();
+        startPlace.put("areaName", "安徽省安庆市枞阳县");
+        startPlace.put("areaCode", "340000-340800-340823");
+        JSONObject finishPlace = new JSONObject();
+        finishPlace.put("areaName", "安徽省安庆市枞阳县");
+        finishPlace.put("areaCode", "340000-340800-340823");
+        insurance.put("startPlace", startPlace);
+        insurance.put("finishPlace", finishPlace);
+
+//        JSONObject vehicleInfoList  = new JSONObject();
+        JSONObject vehicleInfoList1  = new JSONObject();
+        vehicleInfoList1.put("licensePlateNo", "陕YH0009");
+        List<JSONObject> vehicleInfoLists = new ArrayList<>();
+        vehicleInfoLists.add(vehicleInfoList1);
+        insurance.put("vehicleInfoList", vehicleInfoLists);
+
+//        JSONObject goodsInfoList  = new JSONObject();
+        JSONObject goodsInfoList1  = new JSONObject();
+        goodsInfoList1.put("goodsName", "玉米");
+        List<JSONObject> goodsInfoLists = new ArrayList<>();
+        goodsInfoLists.add(goodsInfoList1);
+        insurance.put("goodsInfoList", goodsInfoLists);
+
+        insurance.put("schemeCode",0);
+
+        JSONObject insurantInfoList  = new JSONObject();
+        insurantInfoList.put("personnelType ", "1");
+        insurantInfoList.put("name", "王东镇");
+        insurantInfoList.put("certificateType", "01");
+        insurantInfoList.put("certificateNo", "210103195103222113");
+        insurantInfoList.put("mobile", "13333333333");
+        List<JSONObject> insurantInfoLists = new ArrayList<>();
+        insurantInfoLists.add(insurantInfoList);
+        insurance.put("insurantInfoList", insurantInfoLists);
+        params.put("insuranceInfoList", insurance);
+        String url = "https://testopen.95155.com/save/apis/bxcx_openapi_insure";
+        HttpPost httpPost = new HttpPost(url);
+        httpPost.setEntity(new StringEntity("[" + params.toString() + "]", StandardCharsets.UTF_8));
+        // 设置header信息
+        httpPost.setHeader("Content-type", "application/json");
+        httpPost.setHeader("token", token.getToken());
+        CloseableHttpClient httpClient = HttpClients.createDefault();
+        CloseableHttpResponse response = httpClient.execute(httpPost);
+
+        // 设置 http 读写超时
+        DataExchangeService des = new DataExchangeService(5000, 8000);
+        System.out.println("请求地址:" + url);
+
+        try {
+            // 执行请求操作,并拿到结果(同步阻塞)
+            String body = EntityUtils.toString(response.getEntity());
+            JSONObject jsonObject = JSONObject.parseObject(body);
+            String result = jsonObject.getString("result");
+            System.out.println("result = " + result);
+            // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
+            if (result.contains("1016")) {
+                login();
+                baodan();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            // 释放链接
+            response.close();
+            httpClient.close();
+        }
+
+    }
+
+
+//    public static void main(String[] args)throws Exception {
+//        this.baodan();
+//    }
+
 }
 
+
+
+

+ 21 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/HyBaoTokenController.java

@@ -0,0 +1,21 @@
+package com.yh.saas.plugin.yiliangyiyun.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 记录token 前端控制器
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-08-09
+ */
+@RestController
+@RequestMapping("/hyBaoToken")
+public class HyBaoTokenController {
+
+}
+

+ 62 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/YinghangController.java

@@ -0,0 +1,62 @@
+package com.yh.saas.plugin.yiliangyiyun.controller;
+
+import java.io.*;
+import java.net.Socket;
+import java.util.Date;
+
+public class YinghangController {
+
+//    public static final String DEFAULT_CHARSET = "GBK";
+//
+//    public static void main(String[] args) throws Exception {
+//        String head = " <tr_code>310401</tr_code><corp_no>0008000041</corp_no><user_no>00002</user_no><req_no>00010239</req_no><tr_acdt>20061206</tr_acdt><tr_time>100108</tr_time><atom_tr_count>1</atom_tr_count><channel>0</channel><reserved></reserved>";
+//        String body ="<acno>6214 8302 4945 1609</acno><start_date>"+new Date()+"</start_date><end_date>"+new Date()+"</end_date>";
+//        doSocket(head, body);
+//    }
+//
+//    public static String doSocket(String headMsg, String bodyMsg)
+//            throws Exception {
+//        int soTimeOut = 5000; //超时设置 5s
+//        Socket socket = new Socket("124.74.240.144", 9003);
+//        // 建立socket
+//        socket.setSoTimeout(soTimeOut);
+//        BufferedOutputStream wr = null;
+//        String head = "<head>" + headMsg + "</head>";
+//        String body = "<body>" + bodyMsg + "</body>";
+//        String message = "<ap>" + head + body + "</ap>";
+//        byte[] messageByte = message.getBytes(DEFAULT_CHARSET);
+//        //先转换成 GBK 的 byte 数组
+//        String length = "0" + messageByte.length + " ";
+//        //7 位头
+//        length = length.substring(0, 4);
+//        message = length + message;
+//        System.out.println(message);
+//        messageByte = message.getBytes(DEFAULT_CHARSET);
+//        int sleepTime = 1000; //1s,线程休眠时间
+//        try {
+//            Thread.sleep(sleepTime);
+//        } catch (Exception e) {
+//        }
+//        wr = new BufferedOutputStream(socket.getOutputStream());
+//        //开始发送消息
+//        wr.write(messageByte);
+//        wr.flush();
+//        //接收回应消息
+//        BufferedReader rd = new BufferedReader(new
+//                InputStreamReader(socket.getInputStream(), DEFAULT_CHARSET));
+//        String line = null;
+//
+//        StringBuffer sb = new StringBuffer();
+//        while ((line = rd.readLine()) != null) {
+//            sb.append(line);
+//        }
+//
+//        //处理返回
+//        String returnStr = new String(sb.toString().getBytes());
+//        wr.close();
+//        rd.close();
+//        socket.close();
+//        System.out.println("======" + returnStr);
+//        return returnStr;
+//    }
+}

+ 45 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/HyBaoToken.java

@@ -0,0 +1,45 @@
+package com.yh.saas.plugin.yiliangyiyun.entity;
+
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.yh.saas.common.support.entity.BaseModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 记录token
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-08-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("hy_bao_token")
+public class HyBaoToken extends BaseModel<HyBaoToken> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.UUID)
+    private String id;
+    /**
+     * token
+     */
+    private String token;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/HyBaoTokenMapper.java

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.mapper;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.HyBaoToken;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 记录token Mapper 接口
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-08-09
+ */
+public interface HyBaoTokenMapper extends BaseMapper<HyBaoToken> {
+
+}

+ 16 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IHyBaoTokenService.java

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.service;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.HyBaoToken;
+import com.baomidou.mybatisplus.service.IService;
+
+/**
+ * <p>
+ * 记录token 服务类
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-08-09
+ */
+public interface IHyBaoTokenService extends IService<HyBaoToken> {
+
+}

+ 20 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/HyBaoTokenServiceImpl.java

@@ -0,0 +1,20 @@
+package com.yh.saas.plugin.yiliangyiyun.service.impl;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.HyBaoToken;
+import com.yh.saas.plugin.yiliangyiyun.mapper.HyBaoTokenMapper;
+import com.yh.saas.plugin.yiliangyiyun.service.IHyBaoTokenService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 记录token 服务实现类
+ * </p>
+ *
+ * @author Gdc
+ * @since 2022-08-09
+ */
+@Service
+public class HyBaoTokenServiceImpl extends ServiceImpl<HyBaoTokenMapper, HyBaoToken> implements IHyBaoTokenService {
+
+}

+ 5 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/resources/mapper/HyBaoTokenMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yh.saas.plugin.yiliangyiyun.mapper.HyBaoTokenMapper">
+
+</mapper>