Просмотр исходного кода

feature: 系统注册信息处理(涉及到充值与退款时的余额加密处理)

autumnal_wind@yeah.net 1 год назад
Родитель
Сommit
74354f5fd3

+ 7 - 0
pom.xml

@@ -67,6 +67,7 @@
         <maven-compiler-plugin.verison>3.11.0</maven-compiler-plugin.verison>
         <maven-surefire-plugin.version>3.1.2</maven-surefire-plugin.version>
         <flatten-maven-plugin.version>1.3.0</flatten-maven-plugin.version>
+        <commons-codec.version>1.17.1</commons-codec.version>
     </properties>
 
     <profiles>
@@ -404,6 +405,12 @@
                 <artifactId>rocketmq-spring-boot-starter</artifactId>
                 <version>${rocketmq.version}</version>
             </dependency>
+            <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
+            <dependency>
+                <groupId>commons-codec</groupId>
+                <artifactId>commons-codec</artifactId>
+                <version>${commons-codec.version}</version>
+            </dependency>
 
         </dependencies>
     </dependencyManagement>

+ 4 - 1
ruoyi-common/ruoyi-common-encrypt/pom.xml

@@ -48,7 +48,10 @@
                 </exclusion>
             </exclusions>
         </dependency>
-
+        <dependency>
+            <groupId>commons-codec</groupId>
+            <artifactId>commons-codec</artifactId>
+        </dependency>
     </dependencies>
 
 </project>

+ 53 - 1
ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/utils/EncryptUtils.java

@@ -8,6 +8,7 @@ import cn.hutool.crypto.SmUtil;
 import cn.hutool.crypto.asymmetric.KeyType;
 import cn.hutool.crypto.asymmetric.RSA;
 import cn.hutool.crypto.asymmetric.SM2;
+import org.apache.commons.codec.digest.DigestUtils;
 
 import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
@@ -105,6 +106,35 @@ public class EncryptUtils {
         return SecureUtil.aes(password.getBytes(StandardCharsets.UTF_8)).decryptStr(data, StandardCharsets.UTF_8);
     }
 
+    /**
+     * DESede(3Des解密)解密
+     *
+     * @param data     待解密数据
+     * @param password 秘钥字符串
+     * @return 解密后字符串
+     */
+    public static String decryptByDESede(String data, String password) {
+        if (StrUtil.isBlank(password)) {
+            throw new IllegalArgumentException("DESede需要传入秘钥信息");
+        }
+        byte[] temp = password.getBytes(StandardCharsets.UTF_8);
+        return SecureUtil.desede(password.getBytes(StandardCharsets.UTF_8)).decryptStr(data, StandardCharsets.UTF_8);
+    }
+    /**
+     * DESede(3Des解密)解密
+     *
+     * @param data     待解密数据
+     * @param password 秘钥字符串
+     * @return 解密后字符串
+     */
+    public static String decryptByDESede(String data, byte[] password) {
+        if (password.length!=24) {
+            throw new IllegalArgumentException("DESede需要传入秘钥信息");
+        }
+
+        return SecureUtil.desede(password).decryptStr(data, StandardCharsets.UTF_8);
+    }
+
     /**
      * sm4加密
      *
@@ -277,6 +307,20 @@ public class EncryptUtils {
         RSA rsa = SecureUtil.rsa(privateKey, null);
         return rsa.decryptStr(data, KeyType.PrivateKey, StandardCharsets.UTF_8);
     }
+    /**
+     * rsa私钥解密
+     *
+     * @param data       待加密数据
+     * @param publicKey 公钥
+     * @return 解密后字符串
+     */
+    public static String decryptByRsaPublicKey(String data, String publicKey) {
+        if (StrUtil.isBlank(publicKey)) {
+            throw new IllegalArgumentException("RSA需要传入公钥进行解密");
+        }
+        RSA rsa = SecureUtil.rsa(null, publicKey);
+        return rsa.decryptStr(data, KeyType.PublicKey, StandardCharsets.UTF_8);
+    }
 
     /**
      * md5加密
@@ -307,5 +351,13 @@ public class EncryptUtils {
     public static String encryptBySm3(String data) {
         return SmUtil.sm3(data);
     }
-
+    public static byte[] hex(String key) {
+        String f = DigestUtils.md5Hex(key);
+        int enkLength = 24;
+        byte[] bKeys = f.getBytes();
+        byte[] enk = new byte[enkLength];
+        System.arraycopy(bKeys, 0, enk, 0, enkLength);
+        return enk;
+//        return new byte[1];
+    }
 }

+ 22 - 24
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRegisterinfoController.java → ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRegisterInfoController.java

@@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.system.domain.vo.SysRegisterInfoVo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -17,14 +18,13 @@ import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.system.domain.vo.SysRegisterinfoVo;
 import org.dromara.system.domain.bo.SysRegisterinfoBo;
-import org.dromara.system.service.ISysRegisterinfoService;
+import org.dromara.system.service.ISysRegisterInfoService;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 
 /**
  * 注册信息
- * 前端访问路由地址为:/system/sysRegisterinfo
+ * 前端访问路由地址为:/system/sysRegisterInfo
  *
  * @author LionLi
  * @date 2024-08-15
@@ -32,63 +32,61 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
 @Validated
 @RequiredArgsConstructor
 @RestController
-@RequestMapping("/system/sysRegisterinfo")
-public class SysRegisterinfoController extends BaseController {
+@RequestMapping("/system/registerInfo")
+public class SysRegisterInfoController extends BaseController {
 
-    private final ISysRegisterinfoService sysRegisterinfoService;
+    private final ISysRegisterInfoService sysRegisterInfoService;
 
     /**
      * 查询注册信息列表
      */
-    @SaCheckPermission("system:sysRegisterinfo:list")
+    @SaCheckPermission("system:sysRegisterInfo:list")
     @GetMapping("/list")
-    public TableDataInfo<SysRegisterinfoVo> list(SysRegisterinfoBo bo, PageQuery pageQuery) {
-        return sysRegisterinfoService.queryPageList(bo, pageQuery);
+    public TableDataInfo<SysRegisterInfoVo> list(SysRegisterinfoBo bo, PageQuery pageQuery) {
+        return sysRegisterInfoService.queryPageList(bo, pageQuery);
     }
 
     /**
      * 导出注册信息列表
      */
-    @SaCheckPermission("system:sysRegisterinfo:export")
+    @SaCheckPermission("system:sysRegisterInfo:export")
     @Log(title = "注册信息", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(SysRegisterinfoBo bo, HttpServletResponse response) {
-        List<SysRegisterinfoVo> list = sysRegisterinfoService.queryList(bo);
-        ExcelUtil.exportExcel(list, "注册信息", SysRegisterinfoVo.class, response);
+        List<SysRegisterInfoVo> list = sysRegisterInfoService.queryList(bo);
+        ExcelUtil.exportExcel(list, "注册信息", SysRegisterInfoVo.class, response);
     }
 
     /**
      * 获取注册信息详细信息
      *
-     * @param registerId 主键
      */
-    @SaCheckPermission("system:sysRegisterinfo:query")
-    @GetMapping("/{registerId}")
-    public R<SysRegisterinfoVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long registerId) {
-        return R.ok(sysRegisterinfoService.queryById(registerId));
+    @SaCheckPermission("system:sysRegisterInfo:query")
+    @GetMapping("/get")
+    public R<SysRegisterInfoVo> getInfo() {
+        return R.ok(sysRegisterInfoService.queryRegisterInfo());
     }
 
     /**
      * 新增注册信息
      */
-    @SaCheckPermission("system:sysRegisterinfo:add")
+    @SaCheckPermission("system:sysRegisterInfo:add")
     @Log(title = "注册信息", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @PostMapping()
     public R<Void> add(@Validated(AddGroup.class) @RequestBody SysRegisterinfoBo bo) {
-        return toAjax(sysRegisterinfoService.insertByBo(bo));
+        return toAjax(sysRegisterInfoService.insertByBo(bo));
     }
 
     /**
      * 修改注册信息
      */
-    @SaCheckPermission("system:sysRegisterinfo:edit")
+    @SaCheckPermission("system:sysRegisterInfo:edit")
     @Log(title = "注册信息", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @PutMapping()
     public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysRegisterinfoBo bo) {
-        return toAjax(sysRegisterinfoService.updateByBo(bo));
+        return toAjax(sysRegisterInfoService.updateByBo(bo));
     }
 
     /**
@@ -96,11 +94,11 @@ public class SysRegisterinfoController extends BaseController {
      *
      * @param registerIds 主键串
      */
-    @SaCheckPermission("system:sysRegisterinfo:remove")
+    @SaCheckPermission("system:sysRegisterInfo:remove")
     @Log(title = "注册信息", businessType = BusinessType.DELETE)
     @DeleteMapping("/{registerIds}")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")
                           @PathVariable Long[] registerIds) {
-        return toAjax(sysRegisterinfoService.deleteWithValidByIds(List.of(registerIds), true));
+        return toAjax(sysRegisterInfoService.deleteWithValidByIds(List.of(registerIds), true));
     }
 }

+ 112 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRegisterInfoVo.java

@@ -0,0 +1,112 @@
+package org.dromara.system.domain.vo;
+
+import org.dromara.system.domain.SysRegisterinfo;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+
+/**
+ * 注册信息视图对象 是根据t_sys_registerInfo表中的数据解析出来的注册信息
+ *
+ * @author LionLi
+ * @date 2024-08-15
+ */
+@Data
+public class SysRegisterInfoVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 客户名
+     */
+    private String customerName;
+
+    /**
+     * 经销商名称
+     */
+    private String dealerName;
+
+    /**
+     * 经销商编号
+     */
+    private String dealerNo;
+
+    /**
+     * 最大有效卡数量
+     */
+    private Integer validCardCount;
+
+    /**
+     *  版权声明 0--显示版权信息 1--隐藏版权信息 2--显示自定义版权信息
+     */
+    private Integer copyright;
+
+    /**
+     * 卡来源限制 0 --不限制 1--使用标准密码对卡片加密 2--使用自定义密码对卡片加密
+     */
+    private Integer cardSource;
+
+    /**
+     * 截止日期
+     */
+    private String limitDate;
+
+    //region 软件数据规模
+    /**
+     * 单人最大充值总额
+     */
+    private String fillTotal;
+    /**
+     * 操作员数量
+     */
+    private String administrator;
+    /**
+     * 营业员数量
+     */
+    private String operator;
+    /**
+     * 用户数量
+     */
+    private String userCount;
+    /**
+     * 工作站数量
+     */
+    private String workStation;
+    /**
+     * 终端机器数量
+     */
+    private String machine;
+    /**
+     * 结算账户数量
+     */
+    private String account;
+    /**
+     * 工作区域数量
+     */
+    private String area;
+    /**
+     * IC卡卡类数量
+     */
+    private String cardType;
+    /**
+     * 部门数量
+     */
+    private String department;
+    /**
+     * 消费流水数量
+     */
+    private String consumeDetail;
+    /**
+     * (充值流水数量
+     */
+    private String creditDetail;
+    //endregion
+}

+ 0 - 82
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysRegisterinfoVo.java

@@ -1,82 +0,0 @@
-package org.dromara.system.domain.vo;
-
-import org.dromara.system.domain.SysRegisterinfo;
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.util.Date;
-
-
-
-/**
- * 注册信息视图对象 t_sys_registerInfo
- *
- * @author LionLi
- * @date 2024-08-15
- */
-@Data
-@ExcelIgnoreUnannotated
-@AutoMapper(target = SysRegisterinfo.class)
-public class SysRegisterinfoVo implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 注册Id,主键
-     */
-    @ExcelProperty(value = "注册Id,主键")
-    private Long registerId;
-
-    /**
-     * 客户Id
-     */
-    @ExcelProperty(value = "客户Id")
-    private String customerId;
-
-    /**
-     * 客户公钥(使用经销商私钥对客户公钥进行RSA加密后的密文)
-     */
-    @ExcelProperty(value = "客户公钥", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(readConverterExp = "使=用经销商私钥对客户公钥进行RSA加密后的密文")
-    private String customerPubKey;
-
-    /**
-     * 客户私钥??
-     */
-    @ExcelProperty(value = "客户私钥??")
-    private String customerPriKey;
-
-    /**
-     * 经销商编号
-     */
-    @ExcelProperty(value = "经销商编号")
-    private String dealerNo;
-
-    /**
-     * 经销商公钥(使用经销商编号对公钥进行3DES加密后的密文)
-     */
-    @ExcelProperty(value = "经销商公钥", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(readConverterExp = "使=用经销商编号对公钥进行3DES加密后的密文")
-    private String dealerPubKey;
-
-    /**
-     * 注册信息
-     */
-    @ExcelProperty(value = "注册信息")
-    private String registerInfo;
-
-    /**
-     * 随机序列号
-     */
-    @ExcelProperty(value = "随机序列号")
-    private String randomSn;
-
-
-}

+ 2 - 2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysRegisterinfoMapper.java

@@ -1,7 +1,7 @@
 package org.dromara.system.mapper;
 
 import org.dromara.system.domain.SysRegisterinfo;
-import org.dromara.system.domain.vo.SysRegisterinfoVo;
+import org.dromara.system.domain.vo.SysRegisterInfoVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
@@ -10,6 +10,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
  * @author LionLi
  * @date 2024-08-15
  */
-public interface SysRegisterinfoMapper extends BaseMapperPlus<SysRegisterinfo, SysRegisterinfoVo> {
+public interface SysRegisterinfoMapper extends BaseMapperPlus<SysRegisterinfo, SysRegisterInfoVo> {
 
 }

+ 12 - 6
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysRegisterinfoService.java → ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysRegisterInfoService.java

@@ -1,7 +1,6 @@
 package org.dromara.system.service;
 
-import org.dromara.system.domain.SysRegisterinfo;
-import org.dromara.system.domain.vo.SysRegisterinfoVo;
+import org.dromara.system.domain.vo.SysRegisterInfoVo;
 import org.dromara.system.domain.bo.SysRegisterinfoBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
@@ -15,7 +14,7 @@ import java.util.List;
  * @author LionLi
  * @date 2024-08-15
  */
-public interface ISysRegisterinfoService {
+public interface ISysRegisterInfoService {
 
     /**
      * 查询注册信息
@@ -23,7 +22,7 @@ public interface ISysRegisterinfoService {
      * @param registerId 主键
      * @return 注册信息
      */
-    SysRegisterinfoVo queryById(Long registerId);
+    SysRegisterInfoVo queryById(Long registerId);
 
     /**
      * 分页查询注册信息列表
@@ -32,7 +31,7 @@ public interface ISysRegisterinfoService {
      * @param pageQuery 分页参数
      * @return 注册信息分页列表
      */
-    TableDataInfo<SysRegisterinfoVo> queryPageList(SysRegisterinfoBo bo, PageQuery pageQuery);
+    TableDataInfo<SysRegisterInfoVo> queryPageList(SysRegisterinfoBo bo, PageQuery pageQuery);
 
     /**
      * 查询符合条件的注册信息列表
@@ -40,7 +39,7 @@ public interface ISysRegisterinfoService {
      * @param bo 查询条件
      * @return 注册信息列表
      */
-    List<SysRegisterinfoVo> queryList(SysRegisterinfoBo bo);
+    List<SysRegisterInfoVo> queryList(SysRegisterinfoBo bo);
 
     /**
      * 新增注册信息
@@ -66,4 +65,11 @@ public interface ISysRegisterinfoService {
      * @return 是否删除成功
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    /**
+     * 查询注册信息
+     *
+     * @return 注册信息
+     */
+    SysRegisterInfoVo queryRegisterInfo();
 }

+ 62 - 7
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRegisterinfoServiceImpl.java → ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRegisterInfoServiceImpl.java

@@ -1,20 +1,28 @@
 package org.dromara.system.service.impl;
 
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.encrypt.utils.EncryptUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
+import org.dromara.system.domain.vo.SysRegisterInfoVo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 import org.dromara.system.domain.bo.SysRegisterinfoBo;
-import org.dromara.system.domain.vo.SysRegisterinfoVo;
 import org.dromara.system.domain.SysRegisterinfo;
 import org.dromara.system.mapper.SysRegisterinfoMapper;
-import org.dromara.system.service.ISysRegisterinfoService;
+import org.dromara.system.service.ISysRegisterInfoService;
 
+import java.nio.charset.StandardCharsets;
+import java.util.Base64;
 import java.util.List;
 import java.util.Map;
 import java.util.Collection;
@@ -27,8 +35,9 @@ import java.util.Collection;
  */
 @RequiredArgsConstructor
 @Service
-public class SysRegisterinfoServiceImpl implements ISysRegisterinfoService {
+public class SysRegisterInfoServiceImpl implements ISysRegisterInfoService {
 
+    private static final Logger log = LoggerFactory.getLogger(SysRegisterInfoServiceImpl.class);
     private final SysRegisterinfoMapper baseMapper;
 
     /**
@@ -38,7 +47,7 @@ public class SysRegisterinfoServiceImpl implements ISysRegisterinfoService {
      * @return 注册信息
      */
     @Override
-    public SysRegisterinfoVo queryById(Long registerId){
+    public SysRegisterInfoVo queryById(Long registerId){
         return baseMapper.selectVoById(registerId);
     }
 
@@ -50,9 +59,9 @@ public class SysRegisterinfoServiceImpl implements ISysRegisterinfoService {
      * @return 注册信息分页列表
      */
     @Override
-    public TableDataInfo<SysRegisterinfoVo> queryPageList(SysRegisterinfoBo bo, PageQuery pageQuery) {
+    public TableDataInfo<SysRegisterInfoVo> queryPageList(SysRegisterinfoBo bo, PageQuery pageQuery) {
         LambdaQueryWrapper<SysRegisterinfo> lqw = buildQueryWrapper(bo);
-        Page<SysRegisterinfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        Page<SysRegisterInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
         return TableDataInfo.build(result);
     }
 
@@ -63,7 +72,7 @@ public class SysRegisterinfoServiceImpl implements ISysRegisterinfoService {
      * @return 注册信息列表
      */
     @Override
-    public List<SysRegisterinfoVo> queryList(SysRegisterinfoBo bo) {
+    public List<SysRegisterInfoVo> queryList(SysRegisterinfoBo bo) {
         LambdaQueryWrapper<SysRegisterinfo> lqw = buildQueryWrapper(bo);
         return baseMapper.selectVoList(lqw);
     }
@@ -132,4 +141,50 @@ public class SysRegisterinfoServiceImpl implements ISysRegisterinfoService {
         }
         return baseMapper.deleteByIds(ids) > 0;
     }
+
+    /**
+     * 查询注册信息
+     *
+     * @return 注册信息
+     */
+    @SuppressWarnings("unchecked")
+    @Override
+    public SysRegisterInfoVo queryRegisterInfo() {
+        List<SysRegisterinfo> list = baseMapper.selectList();
+        SysRegisterInfoVo vo = new SysRegisterInfoVo();
+        list.stream().findFirst().ifPresent(p-> {
+
+            String base64Info = p.getRegisterInfo();
+            byte[] result = Base64.getDecoder().decode(base64Info.getBytes());
+            JSONObject obj = JSONObject.parseObject(new String(result, StandardCharsets.UTF_8));
+            Map<String, Object> dataMap = (Map<String, Object>) obj.get("data");
+            // 经销商编号
+            String dealerNo = dataMap.get("dealerNo").toString();
+            // 经销商公钥(使用经销商编号对公钥进行3DES加密后的密文)
+            String dealerPublicKey3des = dataMap.get("dealerPublicKey").toString();
+            log.info("dealerNo={}", dealerNo);
+            // 客户公钥(使用经销商私钥对客户公钥进行RSA加密后的密文)
+            String customerPublicKeyRsa = dataMap.get("customerPublicKey").toString();
+            // 客户ID,明文
+            String customerId = dataMap.get("customerId").toString();
+            // 授权加密信息(使用customId对客户的授权信息进行3DES加密,再使用客户的私钥分别对数据进行RAS加密)
+            String warrantInfoRsa = dataMap.get("warrantInfo").toString();
+
+            // 解密授权信息
+            String warrantInfo3DES = "";
+            // 解密经销商公钥
+            String dealerPubKey = EncryptUtils.decryptByDESede(dealerPublicKey3des,EncryptUtils.hex(dealerNo));
+            log.info("dealerPubKey={}", dealerPubKey);
+            // 解密客户公钥
+            String customerPublicKey = EncryptUtils.decryptByRsaPublicKey(customerPublicKeyRsa,dealerPubKey);
+
+            warrantInfo3DES = EncryptUtils.decryptByRsaPublicKey(warrantInfoRsa,customerPublicKey);
+
+            String warrantInfo = EncryptUtils.decryptByDESede(customerId, warrantInfo3DES);
+            log.info("warrantInfo={}", warrantInfo);
+            vo.setDealerNo(dealerNo);
+
+        });
+        return vo;
+    }
 }