Ver Fonte

feat:"汇付增加取现功能"

soobin há 4 meses atrás
pai
commit
de247ae537

+ 1 - 1
src/main/java/com/szwl/controller/THuifuMchCheckController.java

@@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RestController;
  * </p>
  *
  * @author wuhs
- * @since 2023-07-13
+ * @since 2025-04-17
  */
 @RestController
 @RequestMapping("/tHuifuMchCheck")

+ 1 - 1
src/main/java/com/szwl/mapper/THuifuMchCheckMapper.java

@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * </p>
  *
  * @author wuhs
- * @since 2023-07-13
+ * @since 2025-04-17
  */
 public interface THuifuMchCheckMapper extends BaseMapper<THuifuMchCheck> {
 

+ 3 - 1
src/main/java/com/szwl/mapper/xml/TEquipmentDescMapper.xml

@@ -33,11 +33,13 @@
         <result column="patch_id" property="patchId" />
         <result column="working_mode" property="workingMode" />
         <result column="clean_function" property="cleanFunction" />
+        <result column="tax_status" property="taxStatus" />
+        <result column="tax_rate" property="taxRate" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        equipment_id, flowers, white_sugar, red_sugar, yellow_sugar, blue_sugar, stick, water, waste_water, is_material_use, pay_type, note, status, coupon_status, out_door, in_door, sleep_desc, cup_quantity, stir_tm, corn_generator_tm, number_one, candy_generator_tm, outside_tm, outside_hd, diy_flower_status, language, patch_id, working_mode, clean_function
+        equipment_id, flowers, white_sugar, red_sugar, yellow_sugar, blue_sugar, stick, water, waste_water, is_material_use, pay_type, note, status, coupon_status, out_door, in_door, sleep_desc, cup_quantity, stir_tm, corn_generator_tm, number_one, candy_generator_tm, outside_tm, outside_hd, diy_flower_status, language, patch_id, working_mode, clean_function, tax_status, tax_rate
     </sql>
 
 </mapper>

Diff do ficheiro suprimidas por serem muito extensas
+ 2 - 1
src/main/java/com/szwl/mapper/xml/THuifuMchCheckMapper.xml


+ 3 - 1
src/main/java/com/szwl/mapper/xml/THuifuMchMapper.xml

@@ -22,11 +22,13 @@
         <result column="card_no" property="cardNo" />
         <result column="card_name" property="cardName" />
         <result column="branch_code" property="branchCode" />
+        <result column="sett_mode" property="settMode" />
+        <result column="token_no" property="tokenNo" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, create_date, modify_date, admin_id, huifu_id, reg_name, short_name, type, name, phone, email, cert_no, cert_date, cert_address, card_type, card_no, card_name, branch_code
+        id, create_date, modify_date, admin_id, huifu_id, reg_name, short_name, type, name, phone, email, cert_no, cert_date, cert_address, card_type, card_no, card_name, branch_code, sett_mode, token_no
     </sql>
 
 </mapper>

+ 9 - 3
src/main/java/com/szwl/model/entity/TEquipmentDesc.java

@@ -1,21 +1,21 @@
 package com.szwl.model.entity;
 
+import java.math.BigDecimal;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import java.io.Serializable;
-
 /**
  * <p>
  * 
  * </p>
  *
  * @author wuhs
- * @since 2024-06-19
+ * @since 2025-04-16
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -112,5 +112,11 @@ public class TEquipmentDesc implements Serializable {
     @ApiModelProperty(value = "清洗功能,0:关闭,1:开启,默认关闭")
     private Boolean cleanFunction;
 
+    @ApiModelProperty(value = "税费收取功能,0:关闭,1:开启,默认关闭")
+    private Boolean taxStatus;
+
+    @ApiModelProperty(value = "税率")
+    private BigDecimal taxRate;
+
 
 }

+ 7 - 1
src/main/java/com/szwl/model/entity/THuifuMch.java

@@ -15,7 +15,7 @@ import lombok.EqualsAndHashCode;
  * </p>
  *
  * @author wuhs
- * @since 2023-07-12
+ * @since 2025-04-17
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -76,5 +76,11 @@ public class THuifuMch implements Serializable {
     @ApiModelProperty(value = "联行号")
     private String branchCode;
 
+    @ApiModelProperty(value = "结算方式:1:自动结算,2:手动提现")
+    private Integer settMode;
+
+    @ApiModelProperty(value = "取现卡序列号")
+    private String tokenNo;
+
 
 }

+ 4 - 4
src/main/java/com/szwl/model/entity/THuifuMchCheck.java

@@ -9,15 +9,13 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import javax.validation.constraints.Email;
-
 /**
  * <p>
  * 
  * </p>
  *
  * @author wuhs
- * @since 2023-09-07
+ * @since 2025-04-17
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -66,7 +64,6 @@ public class THuifuMchCheck implements Serializable {
     @ApiModelProperty(value = "联系人手机号码")
     private String phone;
 
-    @Email
     @ApiModelProperty(value = "联系人邮箱")
     private String email;
 
@@ -181,5 +178,8 @@ public class THuifuMchCheck implements Serializable {
     @ApiModelProperty(value = "签约状态:2:创建合同异常	3:待签约	4:签约中	5:签约完成(电子协议只有签约完成才能做交易)	6:已失效	7:已拒签	8:签约失败")
     private String conStat;
 
+    @ApiModelProperty(value = "结算方式:1:自动结算,2:手动提现")
+    private Integer settMode;
+
 
 }

+ 1 - 1
src/main/java/com/szwl/service/THuifuMchCheckService.java

@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * </p>
  *
  * @author wuhs
- * @since 2023-09-07
+ * @since 2025-04-17
  */
 public interface THuifuMchCheckService extends IService<THuifuMchCheck> {
 

+ 1 - 1
src/main/java/com/szwl/service/impl/THuifuMchCheckServiceImpl.java

@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service;
  * </p>
  *
  * @author wuhs
- * @since 2023-09-07
+ * @since 2025-04-17
  */
 @Service
 public class THuifuMchCheckServiceImpl extends ServiceImpl<THuifuMchCheckMapper, THuifuMchCheck> implements THuifuMchCheckService {

+ 85 - 9
src/main/java/com/szwl/service/impl/THuifuMchServiceImpl.java

@@ -246,17 +246,37 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
             cardInfo.put("branch_code", tHuifuMchCheck.getBranchCode());
         }
         request.put("card_info", cardInfo);
+        // 结算方式
         JSONObject settleConfig = new JSONObject();
         // 如果是修改接口
         if (tHuifuMchCheck.getStatus().equals("4")) {
             url = "https://api.huifu.com/v2/user/busi/modify";
-            // 结算周期
-            settleConfig.put("settle_status", "1");
+
 //            settleConfig.put("settle_abstract", "棉花糖机营业收入");
         }
+        Integer settMode = tHuifuMchCheck.getSettMode();
         settleConfig.put("settle_cycle", "T1");
+        JSONArray cashConfig = new JSONArray();
+        if (settMode == 1) {
+            // 自动结算
+            settleConfig.put("settle_status", "1");
+            JSONObject cashConfigValue = new JSONObject();
+            cashConfigValue.put("switch_state", "0");
+            cashConfigValue.put("cash_type", "T1");
+            cashConfigValue.put("fee_rate", "0.00");
+            cashConfig.add(cashConfigValue);
+        }
+        if (settMode == 2) {
+            // 手动提现
+            settleConfig.put("settle_status", "0");
+            JSONObject cashConfigValue = new JSONObject();
+            cashConfigValue.put("switch_state", "1");
+            cashConfigValue.put("cash_type", "T1");
+            cashConfigValue.put("fee_rate", "0.00");
+            cashConfig.add(cashConfigValue);
+        }
         request.put("settle_config", settleConfig);
-
+        request.put("cash_config", cashConfig.toString());
         // 签名:sign
         String s = JSON.toJSONString(request);
         String s1 = JSON.toJSONString(JSONObject.parseObject(s, TreeMap.class));
@@ -269,6 +289,7 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
         requestData.put("product_id", HuifuConstant.PRODUCT_ID);
         requestData.put("sign", sign);
         requestData.put("data", request);
+        System.out.println("最终请求参数:"+ requestData);
 
         String result = OkHttpClientTools.httpPost(url, requestData.toString(), HuifuConstant.PRODUCT_ID);
         System.out.println("返回的数据:"+ result);
@@ -287,6 +308,10 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
                 String[] ignoreProperties = {"id", "createDate","adminId"};
                 BeanUtil.copyProperties(tHuifuMchCheck, huifuMch, ignoreProperties);
                 huifuMch.setModifyDate(new Date());
+                String tokenNo = dataObject.getString("token_no");
+                if (StringUtils.isNotEmpty(tokenNo)) {
+                    huifuMch.setTokenNo(tokenNo);
+                }
                 tHuifuMchService.updateById(huifuMch);
             } else {
                 THuifuMch tHuifuMch = new THuifuMch();
@@ -299,6 +324,10 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
                 } else {
                     tHuifuMch.setCertDate("长期");
                 }
+                String tokenNo = dataObject.getString("token_no");
+                if (StringUtils.isNotEmpty(tokenNo)) {
+                    tHuifuMch.setTokenNo(tokenNo);
+                }
                 tHuifuMch.setCreateDate(new Date());
                 tHuifuMch.setModifyDate(new Date());
                 tHuifuMch.setHuifuId(huifuId);
@@ -581,12 +610,30 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
             cardInfo.put("mp", tHuifuMchCheck.getMp());
         }
         request.put("card_info", cardInfo);
-        // 结算规则配置
+        // 结算方式
         JSONObject settleConfig = new JSONObject();
-        // 结算周期
-        settleConfig.put("settle_cycle", "T1");
+        Integer settMode = tHuifuMchCheck.getSettMode();
+        JSONArray cashConfig = new JSONArray();
+        if (settMode == 1) {
+            // 自动结算
+            settleConfig.put("settle_status", 1);
+            settleConfig.put("settle_cycle", "T1");
+            JSONObject cashConfigValue = new JSONObject();
+            cashConfigValue.put("switch_state", "0");
+            cashConfigValue.put("fee_rate", "0.00");
+            cashConfig.add(cashConfigValue);
+        }
+        if (settMode == 2) {
+            // 手动提现
+            settleConfig.put("settle_status", 0);
+            settleConfig.put("settle_cycle", "T1");
+            JSONObject cashConfigValue = new JSONObject();
+            cashConfigValue.put("switch_state", "1");
+            cashConfigValue.put("fee_rate", "0.00");
+            cashConfig.add(cashConfigValue);
+        }
         request.put("settle_config", settleConfig);
-
+        request.put("cash_config", cashConfig.toString());
         // 签名:sign
         String s = JSON.toJSONString(request);
         String s1 = JSON.toJSONString(JSONObject.parseObject(s, TreeMap.class));
@@ -618,6 +665,10 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
             } else {
                 tHuifuMch.setCertDate("长期");
             }
+            String tokenNo = dataObject.getString("token_no");
+            if (StringUtils.isNotEmpty(tokenNo)) {
+                tHuifuMch.setTokenNo(tokenNo);
+            }
             tHuifuMch.setCreateDate(new Date());
             tHuifuMch.setModifyDate(new Date());
             tHuifuMch.setHuifuId(huifuId);
@@ -676,8 +727,6 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
         request.put("contact_mobile_no", huifuMchCheck.getPhone());
         // 联系人电子邮箱
         request.put("contact_email", huifuMchCheck.getEmail());
-//        // 联系人电子邮箱
-//        request.put("async_return_url", "http://598ef306.r10.cpolar.top/tHuifuMch/auditNotify");
         // 取现信息配置
         JSONObject cardInfo = new JSONObject();
         cardInfo.put("card_type", huifuMchCheck.getCardType());
@@ -706,6 +755,29 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
             cardInfo.put("verify_code", huifuMchCheck.getSms());
         }
         request.put("card_info", cardInfo);
+        JSONObject settleConfig = new JSONObject();
+        Integer settMode = huifuMchCheck.getSettMode();
+        JSONArray cashConfig = new JSONArray();
+        if (settMode == 1) {
+            // 自动结算
+            settleConfig.put("settle_status", "1");
+            settleConfig.put("settle_cycle", "T1");
+            JSONObject cashConfigValue = new JSONObject();
+            cashConfigValue.put("switch_state", "0");
+            cashConfigValue.put("fee_rate", "0.00");
+            cashConfig.add(cashConfigValue);
+        }
+        if (settMode == 2) {
+            // 手动提现
+            settleConfig.put("settle_status", "0");
+            settleConfig.put("settle_cycle", "T1");
+            JSONObject cashConfigValue = new JSONObject();
+            cashConfigValue.put("switch_state", "1");
+            cashConfigValue.put("fee_rate", "0.00");
+            cashConfig.add(cashConfigValue);
+        }
+        request.put("settle_config", settleConfig);
+        request.put("cash_config", cashConfig.toString());
         // 签名:sign
         String s = JSON.toJSONString(request);
         String s1 = JSON.toJSONString(JSONObject.parseObject(s, TreeMap.class));
@@ -738,6 +810,10 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
             } else {
                 tHuifuMch.setCertDate("长期");
             }
+            String tokenNo = dataObject.getString("token_no");
+            if (StringUtils.isNotEmpty(tokenNo)) {
+                tHuifuMch.setTokenNo(tokenNo);
+            }
             tHuifuMch.setModifyDate(new Date());
             huifuMchCheck.setStatus("2");
             huifuMchCheck.setSms(null);