Эх сурвалжийг харах

1.费用审核添加手续加跟单记录表 ,记录表添加业务板块状态
2.账户添加总金额相关字段
3.提现+审核+驳回生成轨迹表
4.添加预收明细 +收支明细+ 订单提现轨迹展示

hxl13994548489 2 жил өмнө
parent
commit
cad39b56bd
44 өөрчлөгдсөн 2254 нэмэгдсэн , 88 устгасан
  1. 21 0
      sql/Online.sql
  2. 21 0
      src/main/java/com/ydtech/constants/enums/dict/BusinessSegmentsEnum.java
  3. 18 0
      src/main/java/com/ydtech/constants/enums/dict/ExpensesTypeEnum.java
  4. 19 0
      src/main/java/com/ydtech/constants/enums/dict/IncomeAndExpensesEnum.java
  5. 19 0
      src/main/java/com/ydtech/constants/enums/dict/IncomeTypeEnum.java
  6. 20 0
      src/main/java/com/ydtech/constants/enums/dict/MoneyAttrEnum.java
  7. 21 0
      src/main/java/com/ydtech/constants/enums/dict/TransactionTypeEnum.java
  8. 2 1
      src/main/java/com/ydtech/modules/admin/constants/MoneyAttrConstants.java
  9. 25 3
      src/main/java/com/ydtech/modules/admin/controller/SysAmountAuditingController.java
  10. 69 2
      src/main/java/com/ydtech/modules/admin/controller/SysUserAccountController.java
  11. 2 2
      src/main/java/com/ydtech/modules/admin/controller/SysUserBankController.java
  12. 18 0
      src/main/java/com/ydtech/modules/admin/dao/SysAmountAuditingHistoryMapper.java
  13. 24 1
      src/main/java/com/ydtech/modules/admin/dao/SysAmountAuditingMapper.java
  14. 33 0
      src/main/java/com/ydtech/modules/admin/dao/SysUserAccountHistoryMapper.java
  15. 53 0
      src/main/java/com/ydtech/modules/admin/model/dto/MyCollectInAdvanceAllDto.java
  16. 75 0
      src/main/java/com/ydtech/modules/admin/model/dto/MyCollectInAdvanceDto.java
  17. 54 0
      src/main/java/com/ydtech/modules/admin/model/dto/MyCollectInAdvanceQueryDto.java
  18. 60 0
      src/main/java/com/ydtech/modules/admin/model/dto/MyIncomeAndExpensesQueryDto.java
  19. 16 0
      src/main/java/com/ydtech/modules/admin/model/dto/OrderDetalsDto.java
  20. 65 0
      src/main/java/com/ydtech/modules/admin/model/dto/WithdrawalDetalsDto.java
  21. 52 0
      src/main/java/com/ydtech/modules/admin/model/dto/WithdrawalDetalsRecordDto.java
  22. 21 0
      src/main/java/com/ydtech/modules/admin/model/po/SysAmountAuditingEntity.java
  23. 137 0
      src/main/java/com/ydtech/modules/admin/model/po/SysAmountAuditingHistory.java
  24. 25 0
      src/main/java/com/ydtech/modules/admin/model/po/SysUserAccount.java
  25. 9 1
      src/main/java/com/ydtech/modules/admin/model/po/SysUserAccountHistory.java
  26. 18 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysAmountRejectVo.java
  27. 13 0
      src/main/java/com/ydtech/modules/admin/service/SysAmountAuditingHistoryService.java
  28. 33 1
      src/main/java/com/ydtech/modules/admin/service/SysAmountAuditingService.java
  29. 33 0
      src/main/java/com/ydtech/modules/admin/service/SysUserAccountHistoryService.java
  30. 38 0
      src/main/java/com/ydtech/modules/admin/service/SysUserAccountService.java
  31. 22 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysAmountAuditingHistoryServiceImpl.java
  32. 131 6
      src/main/java/com/ydtech/modules/admin/service/impl/SysAmountAuditingServiceImpl.java
  33. 39 5
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountHistoryServiceImpl.java
  34. 406 55
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java
  35. 74 0
      src/main/java/com/ydtech/modules/admin/utils/SliceUpDateUtil.java
  36. 8 9
      src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java
  37. 46 0
      src/main/java/com/ydtech/modules/protocols/dao/InsFeeOrderNewMapper.java
  38. 45 0
      src/main/java/com/ydtech/modules/protocols/service/InsFeeOrderNewService.java
  39. 33 0
      src/main/java/com/ydtech/modules/protocols/service/impl/InsFeeOrderNewServiceImpl.java
  40. 22 0
      src/main/resources/mapper/modules/admin/SysAmountAuditingHistoryMapper.xml
  41. 48 0
      src/main/resources/mapper/modules/admin/SysAmountAuditingMapper.xml
  42. 90 1
      src/main/resources/mapper/modules/admin/SysUserAccountHistoryMapper.xml
  43. 5 1
      src/main/resources/mapper/modules/admin/SysUserAccountMapper.xml
  44. 271 0
      src/main/resources/mapper/modules/ins/InsFeeOrderNewMapper.xml

+ 21 - 0
sql/Online.sql

@@ -0,0 +1,21 @@
+-- add by  2024-06-20  账户表添加总金额
+ALTER TABLE `sys_user_account` ADD COLUMN `sum_amount` decimal(15,5) DEFAULT 0 COMMENT '账号总金额';
+ALTER TABLE `sys_user_account` ADD COLUMN `sum_amount_withdrawal` decimal(15,5) DEFAULT 0 COMMENT '提现总金额';
+ALTER TABLE `sys_user_account` ADD COLUMN `sum_amount_account` decimal(15,5) DEFAULT 0 COMMENT '已到账总金额';
+ALTER TABLE `sys_user_account` ADD COLUMN `sum_amount_payment` decimal(15,5) DEFAULT 0 COMMENT '支付中总金额';
+--  add by   历史表添加业务板块字段
+ALTER TABLE `sys_user_account_history` ADD COLUMN `business_eegments_type` int DEFAULT NULL COMMENT '业务版块';
+
+-- add by  审核轨迹表
+DROP TABLE IF EXISTS `sys_amount_auditing_history`;
+CREATE TABLE `sys_amount_auditing_history`  (
+                                                `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+                                                `amount_auding_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '银行卡号',
+                                                `amount` decimal(10, 2) NOT NULL COMMENT '提现金额',
+                                                `user_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户Id',
+                                                `create_time` datetime NOT NULL COMMENT '创建时间',
+                                                `auditing_status` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '审核状态 1 提现申请  2.处理中 3.驳回  4.提现成功',
+                                                `amount_status` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '金额类型 1 提现',
+                                                `history_id` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '历史记录表id',
+                                                PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '审核轨迹表' ROW_FORMAT = Dynamic;

+ 21 - 0
src/main/java/com/ydtech/constants/enums/dict/BusinessSegmentsEnum.java

@@ -0,0 +1,21 @@
+package com.ydtech.constants.enums.dict;
+
+import com.ydtech.aop.request.DictEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+@DictEnum(key = "businessSegmentsType", desc = "业务板块")
+public enum BusinessSegmentsEnum implements IBaseEnum {
+  BT001("1", "车险", 1, 0);
+
+  private String code;
+  private String desc;
+  //排序
+  private Integer sort;
+  //状态  0 启用  1 不启用
+  private Integer status;
+
+
+ }

+ 18 - 0
src/main/java/com/ydtech/constants/enums/dict/ExpensesTypeEnum.java

@@ -0,0 +1,18 @@
+package com.ydtech.constants.enums.dict;
+
+import com.ydtech.aop.request.DictEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+@DictEnum(key = "expensesType", desc = "支出类型")
+public enum ExpensesTypeEnum implements IBaseEnum {
+    M_1("1", "提现",1,0);
+    private String code;
+    private String desc;
+    //排序
+    private Integer sort;
+    //状态  0 启用  1 不启用
+    private Integer status;
+}

+ 19 - 0
src/main/java/com/ydtech/constants/enums/dict/IncomeAndExpensesEnum.java

@@ -0,0 +1,19 @@
+package com.ydtech.constants.enums.dict;
+
+import com.ydtech.aop.request.DictEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+@DictEnum(key = "incomeAndExpensesType", desc = "收支类型")
+public enum IncomeAndExpensesEnum implements IBaseEnum {
+    M_1("1", "收入",1,0),
+    M_2("2", "支出",2,0);
+    private String code;
+    private String desc;
+    //排序
+    private Integer sort;
+    //状态  0 启用  1 不启用
+    private Integer status;
+}

+ 19 - 0
src/main/java/com/ydtech/constants/enums/dict/IncomeTypeEnum.java

@@ -0,0 +1,19 @@
+package com.ydtech.constants.enums.dict;
+
+import com.ydtech.aop.request.DictEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+@DictEnum(key = "incomeType", desc = "交易类型")
+public enum IncomeTypeEnum implements IBaseEnum {
+    M_1("1", "手续+跟单费",1,0),
+    M_2("2", "推广费",2,0);
+    private String code;
+    private String desc;
+    //排序
+    private Integer sort;
+    //状态  0 启用  1 不启用
+    private Integer status;
+}

+ 20 - 0
src/main/java/com/ydtech/constants/enums/dict/MoneyAttrEnum.java

@@ -0,0 +1,20 @@
+package com.ydtech.constants.enums.dict;
+
+import com.ydtech.aop.request.DictEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+@DictEnum(key = "moneyAttrType", desc = "交易类型")
+public enum MoneyAttrEnum implements IBaseEnum {
+    M_1("1", "手续+跟单费",1,0),
+    M_2("2", "推广费",2,0),
+    M_3("3", "提现",3,0);
+    private String code;
+    private String desc;
+    //排序
+    private Integer sort;
+    //状态  0 启用  1 不启用
+    private Integer status;
+}

+ 21 - 0
src/main/java/com/ydtech/constants/enums/dict/TransactionTypeEnum.java

@@ -0,0 +1,21 @@
+package com.ydtech.constants.enums.dict;
+
+import com.ydtech.aop.request.DictEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+@DictEnum(key = "transactionType", desc = "预收收入类型")
+public enum TransactionTypeEnum implements IBaseEnum {
+    M_1("1", "手续+跟单费",1,0),
+    M_2("2", "推广费",2,0);
+    private String code;
+    private String desc;
+    //排序
+    private Integer sort;
+    //状态  0 启用  1 不启用
+    private Integer status;
+
+
+}

+ 2 - 1
src/main/java/com/ydtech/modules/admin/constants/MoneyAttrConstants.java

@@ -16,7 +16,8 @@ public enum MoneyAttrConstants {
 
     M_1(1, "手续费"),
     M_2(2,"跟单费"),
-    M_3(3,"推广费");
+    M_3(3,"推广费"),
+    M_4(4,"手续+跟单费");
 
     private final Integer code;
 

+ 25 - 3
src/main/java/com/ydtech/modules/admin/controller/SysAmountAuditingController.java

@@ -3,9 +3,8 @@ package com.ydtech.modules.admin.controller;
 
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
-import com.ydtech.modules.admin.model.po.SysUserBankCard;
 import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo;
-import com.ydtech.modules.admin.model.vo.SysUserAccountVo;
+import com.ydtech.modules.admin.model.vo.SysAmountRejectVo;
 import com.ydtech.modules.admin.service.SysAmountAuditingService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.entity.BasePageResult;
@@ -28,7 +27,12 @@ public class SysAmountAuditingController extends BaseController {
     public HttpResult<BasePageResult<SysAmountAuditingEntity>> queryPageOrder(@RequestBody @Valid SysAmountAuditingVo sysAmountAuditingVo) {
         return  sysAmountAuditingService.queryByVo(sysAmountAuditingVo);
     }
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 8:44
+     *  @Description:  审核提现
+     */
     @PutMapping("AmountReview")
     @ApiOperation("审核提现")
     public HttpResult<Object> AmountReview(@RequestBody SysAmountAuditingVo sysUserAccountVo) {
@@ -42,4 +46,22 @@ public class SysAmountAuditingController extends BaseController {
         BasePageResult<SysAmountAuditingEntity> result = sysAmountAuditingService.queryAppPage(sysAmountAuditingVo);
         return HttpResult.ok("success", result);
     }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 8:44
+     *  @Description:  驳回功能
+     */
+    @PostMapping("rejectAmount")
+    @ApiOperation("驳回")
+    public HttpResult<Object> rejectAmount(@RequestBody SysAmountRejectVo sysAmountRejectVo) {
+        try{
+            sysAmountAuditingService.rejectAmount(sysAmountRejectVo);
+        }catch(Exception e){
+            return HttpResult.error("驳回失败");
+        }
+       // sysAmountAuditingService.rejectAmount(id);
+        return HttpResult.ok("驳回成功");
+    }
 }

+ 69 - 2
src/main/java/com/ydtech/modules/admin/controller/SysUserAccountController.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.admin.controller;
 
 
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.dto.*;
 import com.ydtech.modules.admin.model.po.SysUserAccount;
 import com.ydtech.modules.admin.model.vo.SubOrder;
 import com.ydtech.modules.admin.model.vo.SysUserAccountVo;
@@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.math.BigDecimal;
 
 @Api(tags = "账户余额")
 @RequestMapping("/sysUserAccount")
@@ -45,7 +47,12 @@ public class SysUserAccountController extends BaseController {
     public HttpResult<Object> submit(@RequestBody SysUserAccountVo sysUserAccountVo) {
         return sysUserAccountService.inert(sysUserAccountVo);
     }
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 8:52
+     *  @Description:  提现
+     */
     @PostMapping("/withdraw")
     @ApiOperation("提现")
     public HttpResult withdraw(@RequestBody SysUserAccountVo sysUserAccountVo) {
@@ -94,7 +101,7 @@ public class SysUserAccountController extends BaseController {
      *  @Description: 通过子订单编号查询订单的详情页面
      */
     @GetMapping("getSubOrderDetails")
-    @ApiOperation("获取订单详情")
+    @ApiOperation("获取推广费订单详情")
     public HttpResult<SubOrder>  getSubOrderDetails(String subOrderId){
         if(StringUtils.isBlank(subOrderId)){
             return HttpResult.error("订单号subOrderId不能为空");
@@ -106,4 +113,64 @@ public class SysUserAccountController extends BaseController {
             return HttpResult.error("操作失败"+e.getMessage());
         }
     }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 9:00
+     *  @Description: 查询我的账户金额
+     */
+    @GetMapping("getUserSumAmountByUserId")
+    @ApiOperation("查询我的账户总金额")
+    public HttpResult<BigDecimal>  getUserSumAmountByUserId(String userId){
+        try{
+            BigDecimal sumAmount  =sysUserAccountService.getUserSumAmountByUserId(userId);
+            return  HttpResult.ok("success", sumAmount);
+        }catch (Exception e){
+            return HttpResult.error("操作失败"+e.getMessage());
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 9:14
+     *  @Description: 查询我的预收明细
+     */
+    @PostMapping("findMyCollectInAdvanceByUserId")
+    @ApiOperation("查询我的预收明细")
+    public HttpResult<MyCollectInAdvanceAllDto>  findMyCollectInAdvanceByUserId(@RequestBody MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto){
+       return  HttpResult.ok(sysUserAccountService.findMyCollectInAdvanceByUserId(myCollectInAdvanceQueryDto));
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 9:14
+     *  @Description: 查询我的预收的数据
+     */
+    @PostMapping("findMyIncomeAndExpensesByUserId")
+    @ApiOperation("查询我的收支明细")
+    public HttpResult<MyCollectInAdvanceAllDto>  findIncomeAndExpensesByUserId(@RequestBody MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto){
+        return  HttpResult.ok(sysUserAccountService.findIncomeAndExpensesByUserId(myIncomeAndExpensesQueryDto));
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 9:14
+     *  @Description: 提现中、已提现的详情
+     */
+    @GetMapping("findDetailById")
+    @ApiOperation("提现的详情")
+    public HttpResult<WithdrawalDetalsDto>  findDetailById(String  id){
+        return  HttpResult.ok(sysUserAccountService.findDetailById(id));
+    }
+    /**
+    @PostMapping("findOrderDetailById")
+    @ApiOperation("订单详情")
+    public HttpResult<OrderDetalsDto>  findOrderDetailById(String subOrderId){
+        return  HttpResult.ok(sysUserAccountService.findOrderDetailById(subOrderId));
+    }
+    **/
+
 }

+ 2 - 2
src/main/java/com/ydtech/modules/admin/controller/SysUserBankController.java

@@ -76,8 +76,8 @@ public class SysUserBankController extends BaseController {
 
     @PostMapping("/getUserBankList")
     @ApiOperation("返回卡包")
-    public HttpResult<List<SysUserBankCard>> getUserBankList(@RequestBody SysUserBankCard sysUserBankCard) {
-        return bankCardService.getUserBankList(sysUserBankCard);
+    public HttpResult<List<SysUserBankCard>> getUserBankList() {
+        return bankCardService.getUserBankList(new SysUserBankCard());
     }
 
 

+ 18 - 0
src/main/java/com/ydtech/modules/admin/dao/SysAmountAuditingHistoryMapper.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.po.SysAmountAuditingHistory;
+
+/**
+* @author Administrator
+* @description 针对表【sys_amount_auditing_history(银行卡号)】的数据库操作Mapper
+* @createDate 2024-06-20 11:16:46
+* @Entity
+*/
+public interface SysAmountAuditingHistoryMapper extends BaseMapper<SysAmountAuditingHistory> {
+
+}
+
+
+
+

+ 24 - 1
src/main/java/com/ydtech/modules/admin/dao/SysAmountAuditingMapper.java

@@ -2,11 +2,14 @@ package com.ydtech.modules.admin.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.dto.MyCollectInAdvanceDto;
+import com.ydtech.modules.admin.model.dto.MyIncomeAndExpensesQueryDto;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
 import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.HashMap;
 import java.util.List;
 
@@ -19,5 +22,25 @@ public interface SysAmountAuditingMapper extends BaseMapper<SysAmountAuditingEnt
     List<SysAmountAuditingEntity> queryPageOrderNew(HashMap<String, Object> params);
 
     List<SysAmountAuditingEntity> getProgressIng(HashMap<String, Object> params);
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 16:19
+     *  @Description: 通过用户id查询提现中和已提现的数据
+     */
+    Page<MyCollectInAdvanceDto> queryAmountPage(@Param("myIncomeAndExpensesQueryDto") MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto, Page<MyCollectInAdvanceDto> page);
+    /**
+     *  @version 
+     *  @author: hxl
+     *  @Date: 2024/6/19 18:02
+     *  @Description:
+     */ 
+    BigDecimal findSumAmount(@Param("myIncomeAndExpensesQueryDto") MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 20:10
+     *  @Description: 通过用户id查询总金额
+     */
+    BigDecimal findSumAmountByUserId(@Param("userId") String userId);
 }

+ 33 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserAccountHistoryMapper.java

@@ -1,9 +1,14 @@
 package com.ydtech.modules.admin.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.dto.MyCollectInAdvanceDto;
+import com.ydtech.modules.admin.model.dto.MyIncomeAndExpensesQueryDto;
 import com.ydtech.modules.admin.model.dto.RevenueReportDto;
 import com.ydtech.modules.admin.model.po.SysUserAccountHistory;
+import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.HashMap;
 import java.util.List;
 
@@ -36,6 +41,34 @@ public interface SysUserAccountHistoryMapper extends BaseMapper<SysUserAccountHi
      *  @Description: 日
      */
     List<RevenueReportDto> revenueReportDay(HashMap<String,Object> map);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 15:55
+     *  @Description: 通过用户id查询费用类型记录表
+     */
+    Page<MyCollectInAdvanceDto> findMyIncomeAndExpensesAmountByUserId(@Param("page") Page<MyCollectInAdvanceDto> page, @Param("myIncomeAndExpensesQueryDto") MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 15:56
+     *  @Description: 通过用户id查询费用类型记录总条数
+     */
+    Long findMyIncomeAndExpensesAmountByUserIdCount(@Param("myIncomeAndExpensesQueryDto") MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 17:12
+     *  @Description: 查询用户总金额
+     */
+    BigDecimal findSumAmount(@Param("myIncomeAndExpensesQueryDto") MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 20:13
+     *  @Description: 查询用户总金额
+     */
+    BigDecimal findSumAmountByUserId(@Param("userId") String userId,@Param("types")  String types);
 }
 
 

+ 53 - 0
src/main/java/com/ydtech/modules/admin/model/dto/MyCollectInAdvanceAllDto.java

@@ -0,0 +1,53 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.ydtech.modules.order.entity.BasePageResult;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/6/19 10:04
+ *  @Description: 预收明细列表对象
+ */
+@Data
+@ApiModel("预收明细(收入明细)列表对象")
+public class MyCollectInAdvanceAllDto {
+
+    /***
+     * 收入金额
+     */
+    @ApiModelProperty(value = "收入金额")
+    private BigDecimal sumAmountSR;
+    /***
+     * 支出金额
+     */
+    @ApiModelProperty(value = "支出金额")
+    private BigDecimal sumAmountZC;
+
+    /***
+     * 预收金额
+     */
+    @ApiModelProperty(value = "预收金额")
+    private BigDecimal sumAmountYS;
+
+    @ApiModelProperty(value = "分页数据")
+    BasePageResult<MyCollectInAdvanceDto> data =new BasePageResult<>();
+
+    public MyCollectInAdvanceAllDto() {
+    }
+
+    public MyCollectInAdvanceAllDto(BigDecimal sumAmountSR,BigDecimal sumAmountZC, BasePageResult<MyCollectInAdvanceDto> data) {
+        this.sumAmountSR = sumAmountSR;
+        this.sumAmountZC = sumAmountZC;
+        this.data = data;
+    }
+
+    public MyCollectInAdvanceAllDto(BigDecimal sumAmountYS, BasePageResult<MyCollectInAdvanceDto> data) {
+        this.sumAmountYS = sumAmountYS;
+        this.data = data;
+    }
+}

+ 75 - 0
src/main/java/com/ydtech/modules/admin/model/dto/MyCollectInAdvanceDto.java

@@ -0,0 +1,75 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/6/19 10:04
+ *  @Description: 预收明细列表对象
+ */
+@Data
+@ApiModel("预收明细列表对象")
+public class MyCollectInAdvanceDto {
+
+    /***
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String  subOrderNo;
+
+    /***
+     * 承保时间
+     */
+    @ApiModelProperty(value = "承保时间")
+    private String  signingTime;
+
+
+    /***
+     * 车牌
+     */
+    @ApiModelProperty(value = "车牌")
+    private String licenseNo;
+
+    /***
+     * 金额
+     */
+    @ApiModelProperty(value = "金额")
+    private BigDecimal amount;
+
+
+    /***
+     * 银行卡号
+     */
+    @ApiModelProperty(value = "银行卡号")
+    private String  bankNumber;
+
+    /***
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private String   createTime;
+
+    /***
+     * 提现金额
+     */
+    @ApiModelProperty(value = "提现金额")
+    private BigDecimal ransactionAmount;
+
+
+    @ApiModelProperty(value = "业务板块")
+    private String businessSegmentsType;
+
+    @ApiModelProperty(value = "收入/支出")
+    private String  incomeAndExpensesType;
+
+    @ApiModelProperty(value = "来源")
+    private String  transactionType;
+
+    @ApiModelProperty(value = "支出/收入id")
+    private String  id;
+}

+ 54 - 0
src/main/java/com/ydtech/modules/admin/model/dto/MyCollectInAdvanceQueryDto.java

@@ -0,0 +1,54 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/6/19 9:55
+ *  @Description: 预收明细查询对象
+ */
+@Data
+@ApiModel("预收明细查询对象")
+public class MyCollectInAdvanceQueryDto {
+    /***
+     *   用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+    /***
+     *   业务版块类型
+     */
+    @ApiModelProperty(value = "业务版块类型")
+    private String businessSegmentsType;
+    /***
+     *  交易类型
+     */
+    @ApiModelProperty(value = "交易类型")
+    private String  transactionType;
+    /***
+     *  时间筛选类型  0.全部  1.一周内  2. 一月内  3. 三月内  4. 六月内
+     */
+    @ApiModelProperty(value = "时间筛选类型 0.全部  1.一周内  2. 一月内  3. 三月内  4. 六月内")
+    private String  dateQueryType;
+    /***
+     * 开始时间
+     */
+    @ApiModelProperty(value = "开始时间")
+    private String startDate;
+
+    /***
+     * 结束时间
+     */
+    @ApiModelProperty(value = "结束时间")
+    private String endDate;
+
+
+    @ApiModelProperty(value = "每页页数")
+    private int pageSize;
+
+    @ApiModelProperty(value = "页数")
+    private int pageNum;
+}

+ 60 - 0
src/main/java/com/ydtech/modules/admin/model/dto/MyIncomeAndExpensesQueryDto.java

@@ -0,0 +1,60 @@
+package com.ydtech.modules.admin.model.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/6/19 9:47
+ *  @Description: 收支明细查询对象
+ */
+@Data
+@ApiModel("收支明细查询对象")
+public class MyIncomeAndExpensesQueryDto {
+    /***
+     *   用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+    /***
+     *   业务版块类型
+     */
+    @ApiModelProperty(value = "业务版块类型")
+    private String businessSegmentsType;
+    /***
+     *  交易类型
+     */
+    @ApiModelProperty(value = "交易类型")
+    private String  transactionType;
+
+    /***
+     *  交易类型
+     */
+    @ApiModelProperty(value = "收支类型")
+    private String incomeAndExpensesType;
+    /***
+     *  时间筛选类型  0.全部  1.一周内  2. 一月内  3. 三月内  4. 六月内
+     */
+    @ApiModelProperty(value = "时间筛选类型 0.全部  1.一周内  2. 一月内  3. 三月内  4. 六月内")
+    private String  dateQueryType;
+    /***
+     * 开始时间
+     */
+    @ApiModelProperty(value = "开始时间")
+    private String startDate;
+
+    /***
+     * 结束时间
+     */
+    @ApiModelProperty(value = "结束时间")
+    private String endDate;
+
+    @ApiModelProperty(value = "每页页数")
+    private int pageSize;
+
+    @ApiModelProperty(value = "页数")
+    private int pageNum;
+}

+ 16 - 0
src/main/java/com/ydtech/modules/admin/model/dto/OrderDetalsDto.java

@@ -0,0 +1,16 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/6/20 9:51
+ *  @Description:  订单详情
+ */
+@Data
+@ApiModel("预收明细(收入明细)列表对象")
+public class OrderDetalsDto {
+
+    
+}

+ 65 - 0
src/main/java/com/ydtech/modules/admin/model/dto/WithdrawalDetalsDto.java

@@ -0,0 +1,65 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/6/20 13:50
+ *  @Description: 体现详情
+ */
+@ApiModel("提现详情")
+@Data
+public class WithdrawalDetalsDto {
+
+    /***
+     * 提现状态
+     */
+    @ApiModelProperty("提现状态")
+    private String  withdrawalStatus;
+
+    /***
+     * 提现状态
+     */
+    @ApiModelProperty("提现状态名称")
+    private String  withdrawalStatusName;
+
+    /***
+     * 提现金额
+     */
+    @ApiModelProperty("提现金额")
+    private BigDecimal  withdrawalAmount;
+
+
+    @ApiModelProperty("交易编号")
+    private String transactionNumber;
+
+
+    @ApiModelProperty("申请时间")
+    private Date applicationDate;
+
+    @ApiModelProperty("到账时间")
+    private Date paymentDate;
+
+    @ApiModelProperty("到账账户")
+    private String bankNumber;
+
+    @ApiModelProperty("开户行")
+    private String bankAccount;
+
+    @ApiModelProperty("提现轨迹")
+    private List<WithdrawalDetalsRecordDto>  record=new ArrayList<WithdrawalDetalsRecordDto>();
+    /***
+     * 驳回原因
+     */
+    @ApiModelProperty("驳回原因")
+    private String  rejectReason;
+
+}

+ 52 - 0
src/main/java/com/ydtech/modules/admin/model/dto/WithdrawalDetalsRecordDto.java

@@ -0,0 +1,52 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/6/20 13:50
+ *  @Description: 提现轨迹
+ */
+@ApiModel("提现轨迹")
+@Data
+public class WithdrawalDetalsRecordDto {
+
+    /***
+     * 处理状态  1.提现申请  2. 处理中  3. 提现失败  4.提现成功
+     *
+     */
+    @ApiModelProperty("处理状态")
+    private String  processingStatus;
+
+    /***
+     * 是否处理  false 未处理   true 已处理
+     */
+    @ApiModelProperty("是否处理  false 未处理   true 已处理")
+    private boolean  processingStatusFlag ;
+
+    /***
+     * 状态名称  1.提现申请  2. 处理中  3. 提现失败  4.提现成功
+     */
+    @ApiModelProperty("1.提现申请  2. 处理中  3. 提现失败  4.提现成功")
+    private String processingStatusName;
+    /***
+     * 处理时间
+     */
+    @ApiModelProperty("处理时间")
+    private Date processingDate;
+
+    public WithdrawalDetalsRecordDto() {
+    }
+
+    public WithdrawalDetalsRecordDto(String processingStatus, boolean processingStatusFlag, String processingStatusName, Date processingDate) {
+        this.processingStatus = processingStatus;
+        this.processingStatusFlag = processingStatusFlag;
+        this.processingStatusName = processingStatusName;
+        this.processingDate = processingDate;
+    }
+}

+ 21 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysAmountAuditingEntity.java

@@ -137,4 +137,25 @@ public class SysAmountAuditingEntity implements Serializable {
      */
     @TableField(exist = false)
     private String auditingUserName;
+
+    /**
+     * 驳回时间
+     */
+    @TableField(value = "reject_time")
+    private Date rejectTime;
+
+    /**
+     * 驳回人
+     */
+    @TableField(value = "reject_user_id")
+    private String rejectUserId;
+
+
+    /**
+     * 驳回原因
+     */
+    @TableField(value = "reject_reason")
+    private String  rejectReason;
+
+
 }

+ 137 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysAmountAuditingHistory.java

@@ -0,0 +1,137 @@
+package com.ydtech.modules.admin.model.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 银行卡号
+ * @TableName sys_amount_auditing_history
+ */
+@TableName(value ="sys_amount_auditing_history")
+@Data
+public class SysAmountAuditingHistory implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 银行卡号
+     */
+    @TableField(value = "amount_auding_id")
+    private String amountAudingId;
+
+    /**
+     * 提现金额
+     */
+    @TableField(value = "amount")
+    private BigDecimal amount;
+
+    /**
+     * 用户Id
+     */
+    @TableField(value = "user_id")
+    private String userId;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    /**
+     * 审核状态 1 提现申请  2.处理中 3.驳回  4.提现成功
+     */
+    @TableField(value = "auditing_status")
+    private String auditingStatus;
+
+    /**
+     * 金额类型 1 提现
+     */
+    @TableField(value = "amount_status")
+    private String amountStatus;
+
+    /**
+     * 金额类型 1 提现
+     */
+    @TableField(value = "history_id")
+    private String historyId;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        SysAmountAuditingHistory other = (SysAmountAuditingHistory) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getAmountAudingId() == null ? other.getAmountAudingId() == null : this.getAmountAudingId().equals(other.getAmountAudingId()))
+            && (this.getAmount() == null ? other.getAmount() == null : this.getAmount().equals(other.getAmount()))
+            && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getAuditingStatus() == null ? other.getAuditingStatus() == null : this.getAuditingStatus().equals(other.getAuditingStatus()))
+            && (this.getAmountStatus() == null ? other.getAmountStatus() == null : this.getAmountStatus().equals(other.getAmountStatus()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getAmountAudingId() == null) ? 0 : getAmountAudingId().hashCode());
+        result = prime * result + ((getAmount() == null) ? 0 : getAmount().hashCode());
+        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getAuditingStatus() == null) ? 0 : getAuditingStatus().hashCode());
+        result = prime * result + ((getAmountStatus() == null) ? 0 : getAmountStatus().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", amountAudingId=").append(amountAudingId);
+        sb.append(", amount=").append(amount);
+        sb.append(", userId=").append(userId);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", auditingStatus=").append(auditingStatus);
+        sb.append(", amountStatus=").append(amountStatus);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+
+    public SysAmountAuditingHistory() {
+    }
+
+    public SysAmountAuditingHistory(Long id, String amountAudingId, BigDecimal amount, String userId, Date createTime, String auditingStatus, String amountStatus,String historyId) {
+        this.id = id;
+        this.amountAudingId = amountAudingId;
+        this.amount = amount;
+        this.userId = userId;
+        this.createTime = createTime;
+        this.auditingStatus = auditingStatus;
+        this.amountStatus = amountStatus;
+        this.historyId = historyId;
+    }
+}

+ 25 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysUserAccount.java

@@ -119,4 +119,29 @@ public class SysUserAccount implements Serializable {
     @ApiModelProperty(value = "所属账户下的卡")
     @TableField(exist = false)
     List<SysUserBankCard> sysUserAccountCardList;
+
+    // add by  hxl   2024-06-18  添加账号总金额
+    /**
+     *  账号总金额
+     */
+    @TableField(value = "sum_amount")
+    private BigDecimal sumAmount;
+
+    /**
+     * 提现总金额
+     */
+    @TableField(value = "sum_amount_withdrawal")
+    private BigDecimal sumAmountWithdrawal;
+
+    /**
+     * 已到账总金额
+     */
+    @TableField(value = "sum_amount_account")
+    private BigDecimal sumAmountAccount;
+
+    /**
+     * 支付中总金额
+     */
+    @TableField(value = "sum_amount_payment")
+    private BigDecimal sumAmountPayment;
 }

+ 9 - 1
src/main/java/com/ydtech/modules/admin/model/po/SysUserAccountHistory.java

@@ -51,7 +51,7 @@ public class SysUserAccountHistory implements Serializable {
     private Integer documentary;
 
     /**
-     * 金钱属性 1 手续费 2 非跟单 3 推广
+     * 金钱属性 1 手续费 2 非跟单 3 推广  4 手续费+非跟单
      */
     @TableField(value = "property")
     private Integer property;
@@ -91,4 +91,12 @@ public class SysUserAccountHistory implements Serializable {
 
     @TableField(exist = false)
     private BigDecimal   remainingAmount;
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 9:22
+     *  @Description:  业务板块类型    1. 车险
+     */
+    @TableField(value = "business_eegments_type")
+    private Integer  businessSegmentsType;
 }

+ 18 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysAmountRejectVo.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.admin.model.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("驳回数据")
+public class SysAmountRejectVo {
+
+    @ApiModelProperty(value = "驳回数据id")
+    private String id;
+
+    @ApiModelProperty(value = "驳回原因")
+    private String rejectReason;
+
+}

+ 13 - 0
src/main/java/com/ydtech/modules/admin/service/SysAmountAuditingHistoryService.java

@@ -0,0 +1,13 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.po.SysAmountAuditingHistory;
+
+/**
+* @author Administrator
+* @description 针对表【sys_amount_auditing_history(银行卡号)】的数据库操作Service
+* @createDate 2024-06-20 11:16:46
+*/
+public interface SysAmountAuditingHistoryService extends IService<SysAmountAuditingHistory> {
+
+}

+ 33 - 1
src/main/java/com/ydtech/modules/admin/service/SysAmountAuditingService.java

@@ -2,10 +2,14 @@ package com.ydtech.modules.admin.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.dto.MyCollectInAdvanceDto;
+import com.ydtech.modules.admin.model.dto.MyIncomeAndExpensesQueryDto;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
 import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo;
+import com.ydtech.modules.admin.model.vo.SysAmountRejectVo;
 import com.ydtech.modules.order.entity.BasePageResult;
 
+import java.math.BigDecimal;
 import java.util.HashMap;
 import java.util.List;
 
@@ -19,5 +23,33 @@ public interface SysAmountAuditingService extends IService<SysAmountAuditingEnti
     BasePageResult<SysAmountAuditingEntity> queryAppPage(SysAmountAuditingVo sysAmountAuditingVo);
 
     List<SysAmountAuditingEntity> getProgressIng(HashMap<String, Object> params);
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 16:34
+     *  @Description: 提现中 、已提现数据查询
+     */
+    BasePageResult<MyCollectInAdvanceDto> queryAmountPage(MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 17:15
+     *  @Description: 查询总金额
+     */
+    BigDecimal findSumAmount(MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 19:21
+     *  @Description:  驳回
+     */
+    void rejectAmount(SysAmountRejectVo sysAmountRejectVo);
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 20:09
+     *  @Description: 用户总金额
+     */
+    BigDecimal findSumAmountByUserId(String userId);
 }

+ 33 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserAccountHistoryService.java

@@ -1,10 +1,15 @@
 package com.ydtech.modules.admin.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.dto.MyCollectInAdvanceDto;
+import com.ydtech.modules.admin.model.dto.MyIncomeAndExpensesQueryDto;
 import com.ydtech.modules.admin.model.po.SysUserAccountHistory;
 import com.ydtech.modules.admin.model.vo.SysUserAccountHistoryVo;
 import com.ydtech.modules.order.entity.BasePageResult;
 
+import java.math.BigDecimal;
+
 /**
 * @author Administrator
 * @description 针对表【sys_user_account_history(用户账户表)】的数据库操作Service
@@ -21,4 +26,32 @@ public interface SysUserAccountHistoryService extends IService<SysUserAccountHis
     void uodate(SysUserAccountHistoryVo sysUserAccountHistoryVo);
 
     void updayteByUserAccount(SysUserAccountHistory sysUserAccountHistory);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 15:49
+     *  @Description: 查询用户的(手续+跟单)-   (推广费)用表
+     */
+    Page<MyCollectInAdvanceDto> findMyIncomeAndExpensesAmountByUserId(Page<MyCollectInAdvanceDto> page, MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 15:50
+     *  @Description: 查询用户的(手续+跟单)-(推广费)用总数
+     */
+    Long findMyIncomeAndExpensesAmountByUserIdCount(MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 17:10
+     *  @Description: 查询(手续+跟单)-(推广费) 的总费用
+     */
+    BigDecimal findSumAmount(MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 20:12
+     *  @Description:  用户id查询(手续+跟单)-(推广费) 的总费用
+     */
+    BigDecimal findSumAmountByUserId(String userId,String type);
 }

+ 38 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserAccountService.java

@@ -2,11 +2,14 @@ package com.ydtech.modules.admin.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.dto.*;
 import com.ydtech.modules.admin.model.po.SysUserAccount;
 import com.ydtech.modules.admin.model.vo.SubOrder;
 import com.ydtech.modules.admin.model.vo.SysUserAccountVo;
 import com.ydtech.modules.order.entity.BasePageResult;
 
+import java.math.BigDecimal;
+
 /**
 * @author Administrator
 * @description 针对表【sys_user_account(用户账户表)】的数据库操作Service
@@ -36,4 +39,39 @@ public interface SysUserAccountService extends IService<SysUserAccount> {
      *  @Description: 查询子订单的详情页面
      */
     SubOrder getSubOrderDetails(String subOrderId,String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 9:03
+     *  @Description: 查询我的账户总金额
+     */
+    BigDecimal getUserSumAmountByUserId(String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 10:59
+     *  @Description: 查询预收明细
+     */
+    MyCollectInAdvanceAllDto findMyCollectInAdvanceByUserId(MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 10:59
+     *  @Description: 查询收支明细
+     */
+    MyCollectInAdvanceAllDto findIncomeAndExpensesByUserId(MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 20:24
+     *  @Description: 通过id查询详情
+     */
+    WithdrawalDetalsDto findDetailById(String id);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/20 10:10
+     *  @Description:  获取订单的详情
+     */
+    OrderDetalsDto findOrderDetailById(String subOrderId);
 }

+ 22 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysAmountAuditingHistoryServiceImpl.java

@@ -0,0 +1,22 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysAmountAuditingHistoryMapper;
+import com.ydtech.modules.admin.model.po.SysAmountAuditingHistory;
+import com.ydtech.modules.admin.service.SysAmountAuditingHistoryService;
+import org.springframework.stereotype.Service;
+
+/**
+* @author Administrator
+* @description 针对表【sys_amount_auditing_history(银行卡号)】的数据库操作Service实现
+* @createDate 2024-06-20 11:16:46
+*/
+@Service
+public class SysAmountAuditingHistoryServiceImpl extends ServiceImpl<SysAmountAuditingHistoryMapper, SysAmountAuditingHistory>
+    implements SysAmountAuditingHistoryService {
+
+}
+
+
+
+

+ 131 - 6
src/main/java/com/ydtech/modules/admin/service/impl/SysAmountAuditingServiceImpl.java

@@ -1,15 +1,24 @@
 package com.ydtech.modules.admin.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.dao.SysAmountAuditingMapper;
+import com.ydtech.modules.admin.dao.SysUserAccountHistoryMapper;
+import com.ydtech.modules.admin.model.dto.MyCollectInAdvanceDto;
+import com.ydtech.modules.admin.model.dto.MyIncomeAndExpensesQueryDto;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
+import com.ydtech.modules.admin.model.po.SysAmountAuditingHistory;
 import com.ydtech.modules.admin.model.po.SysUserAccount;
+import com.ydtech.modules.admin.model.po.SysUserAccountHistory;
 import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo;
+import com.ydtech.modules.admin.model.vo.SysAmountRejectVo;
+import com.ydtech.modules.admin.service.SysAmountAuditingHistoryService;
 import com.ydtech.modules.admin.service.SysAmountAuditingService;
 import com.ydtech.modules.admin.service.SysUserAccountService;
 import com.ydtech.modules.base.controller.BaseController;
@@ -23,7 +32,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.time.LocalDate;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -36,20 +44,39 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
     @Autowired
     private SysAmountAuditingService sysAmountAuditingService;
 
+    @Autowired
+    private SysAmountAuditingHistoryService sysAmountAuditingHistoryService;
+
+    @Autowired
+    private SysUserAccountHistoryMapper sysUserAccountHistoryMapper;
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 8:46
+     *  @Description: 审核提现
+     */
     @Override
     @Transactional
     public void AmountReview(SysAmountAuditingVo sysAmountAuditingVo) {
-
+        //审核
+        if(sysAmountAuditingVo.getId()==null || "".equals(sysAmountAuditingVo.getId())){
+            throw new SystemException("提现审核记录id不能为空");
+        }
         SysAmountAuditingEntity sysAmountAuditingEntity = sysAmountAuditingService.getById(sysAmountAuditingVo.getId());
-
+        //提现审核金额
         BigDecimal amount = sysAmountAuditingVo.getAmount();
+        //提现人
         String userId = sysAmountAuditingVo.getUserId();
 //        SysUserAccount sysUserAccountEntity = new SysUserAccount();
 //      用户扣减金额
         if (StringUtils.isNotEmpty(userId)) {
 //            sysUserAccountEntity.setUserId(userId);
+            //提现人账户
             SysUserAccount sysUserAccount = sysUserAccountService.getById(userId);
             if (ObjectUtils.isNotEmpty(sysUserAccount)) {
+                //注释掉原先按类型提现的逻辑 ,改为不区分类型  add by hxl  2024-06-18
+                /**
                 String amountStatus = sysAmountAuditingVo.getAmountStatus();
                 if (StringUtils.isNotEmpty(amountStatus)) {
                     if ("1".equals(amountStatus)) {
@@ -65,7 +92,13 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
                         sysUserAccount.setPromotionAmountPayment(sysUserAccount.getPromotionAmountPayment().subtract(amount));
 //                        sysUserAccountEntity.setPromotion(afterAmount);
                     }
+
                 }
+                 **/
+                //已到账金额 =  原先的到账金额+ 已到账的金额
+                sysUserAccount.setSumAmountAccount((sysUserAccount.getSumAmountAccount()==null?BigDecimal.ZERO:sysUserAccount.getSumAmountAccount()).add(amount));
+                //支付中的金额 = 原先的支付金额 -去提现的金额
+                sysUserAccount.setSumAmountPayment((sysUserAccount.getSumAmountPayment()==null?BigDecimal.ZERO:sysUserAccount.getSumAmountPayment()).subtract(amount));
                 sysUserAccountService.updateById(sysUserAccount);
             }
             sysAmountAuditingVo.setAuditingStatus("3");
@@ -74,9 +107,16 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
             BeanUtils.copyProperties(sysAmountAuditingVo, sysAmountAuditingEntity);
             sysAmountAuditingVo.setCreateTime(new Date());
             baseMapper.updateById(sysAmountAuditingEntity);
+            //通过审核表id查询历史记录表
+            LambdaQueryWrapper<SysUserAccountHistory> lqw = new LambdaQueryWrapper<>();
+            lqw.eq(SysUserAccountHistory::getAuditiingId, sysAmountAuditingEntity.getId());
+            lqw.eq(SysUserAccountHistory::getUserId, userId);
+            //插入轨迹表审核成功数据
+            SysUserAccountHistory  sysUserAccountHistory = sysUserAccountHistoryMapper.selectOne(lqw);
+            //插入轨迹表
+            SysAmountAuditingHistory sysAmountAuditingHistory =new SysAmountAuditingHistory(null, sysAmountAuditingEntity.getId(), amount, userId,new Date(),"4", "1",sysUserAccountHistory.getId());
+            sysAmountAuditingHistoryService.save(sysAmountAuditingHistory);
         }
-
-
     }
 
     @Override
@@ -109,7 +149,7 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
             }
 
             if(StringUtils.isNotEmpty(sysAmountAuditingVo.getAmountStatus())){
-                params.put("amountStatus",sysAmountAuditingVo.getAmountStatus());
+               // params.put("amountStatus",sysAmountAuditingVo.getAmountStatus());
             }
             if(StringUtils.isNotEmpty(sysAmountAuditingVo.getMobile())){
                 params.put("mobile",sysAmountAuditingVo.getMobile());
@@ -144,4 +184,89 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
         return  baseMapper.getProgressIng(params);
 
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 16:35
+     *  @Description:  提现中、已提现数据查询
+     */
+    @Override
+    public BasePageResult<MyCollectInAdvanceDto>  queryAmountPage(MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto) {
+        Page<MyCollectInAdvanceDto> page = new Page<>(myIncomeAndExpensesQueryDto.getPageNum(), myIncomeAndExpensesQueryDto.getPageSize());
+        Page<MyCollectInAdvanceDto> recordPage = baseMapper.queryAmountPage(myIncomeAndExpensesQueryDto, page);
+        return new BasePageResult<>(myIncomeAndExpensesQueryDto.getPageNum(), page.getSize(), recordPage.getTotal(), page.getPages(),
+                recordPage.getRecords());
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 17:16
+     *  @Description: 查询总金额
+     */
+    @Override
+    public BigDecimal findSumAmount(MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto) {
+        return baseMapper.findSumAmount(myIncomeAndExpensesQueryDto);
+    }
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 19:23
+     *  @Description:  驳回  修改状态为 4  驳回状态   冲正金额
+     */
+    @Override
+    public void rejectAmount(SysAmountRejectVo sysAmountRejectVo) {
+        //审核
+        if(sysAmountRejectVo.getId()==null || "".equals(sysAmountRejectVo.getId())){
+            throw new SystemException("提现审核记录id不能为空");
+        }
+        if(sysAmountRejectVo.getRejectReason()==null || "".equals(sysAmountRejectVo.getRejectReason())){
+            throw new SystemException("驳回原因不能为空");
+        }
+        SysAmountAuditingEntity sysAmountAuditingEntity = sysAmountAuditingService.getById(sysAmountRejectVo.getId());
+
+        //提现审核金额
+        BigDecimal amount = sysAmountAuditingEntity.getAmount();
+        //提现人
+        String userId = sysAmountAuditingEntity.getUserId();
+//      用户回退金额
+        if (StringUtils.isNotEmpty(userId)) {
+            //提现人账户
+            SysUserAccount sysUserAccount = sysUserAccountService.getById(userId);
+            if (ObjectUtils.isNotEmpty(sysUserAccount)) {
+                //已到账金额 =  原先的到账金额- 已到账的金额
+                sysUserAccount.setSumAmountAccount((sysUserAccount.getSumAmountAccount()==null?BigDecimal.ZERO:sysUserAccount.getSumAmountAccount()).subtract(amount));
+                //支付中的金额 = 原先的支付金额 +去提现的金额
+                sysUserAccount.setSumAmountPayment((sysUserAccount.getSumAmountPayment()==null?BigDecimal.ZERO:sysUserAccount.getSumAmountPayment()).add(amount));
+                sysUserAccountService.updateById(sysUserAccount);
+            }
+            sysAmountAuditingEntity.setAuditingStatus("4");
+            sysAmountAuditingEntity.setRejectReason(sysAmountRejectVo.getRejectReason());
+            sysAmountAuditingEntity.setRejectUserId(BaseController.getUser().getId());
+            sysAmountAuditingEntity.setRejectTime(new Date());
+            baseMapper.updateById(sysAmountAuditingEntity);
+            //更新轨迹表
+            //通过审核表id查询历史记录表
+            LambdaQueryWrapper<SysUserAccountHistory> lqw = new LambdaQueryWrapper<>();
+            lqw.eq(SysUserAccountHistory::getAuditiingId, sysAmountAuditingEntity.getId());
+            lqw.eq(SysUserAccountHistory::getUserId, userId);
+            //插入轨迹表审核成功数据
+            SysUserAccountHistory  sysUserAccountHistory = sysUserAccountHistoryMapper.selectOne(lqw);
+            //插入轨迹表驳回数据
+            SysAmountAuditingHistory sysAmountAuditingHistory =new SysAmountAuditingHistory(null, sysAmountAuditingEntity.getId(), amount, userId,new Date(),"3", "3",sysUserAccountHistory.getId());
+            sysAmountAuditingHistoryService.save(sysAmountAuditingHistory);
+            //是否更新历史表为支出待定
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 20:18
+     *  @Description: 通过用户id查询数据
+     */
+    @Override
+    public BigDecimal findSumAmountByUserId(String userId) {
+        return baseMapper.findSumAmountByUserId(userId);
+    }
 }

+ 39 - 5
src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountHistoryServiceImpl.java

@@ -1,25 +1,24 @@
 package com.ydtech.modules.admin.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.modules.admin.dao.SysUserAccountHistoryMapper;
+import com.ydtech.modules.admin.model.dto.MyCollectInAdvanceDto;
+import com.ydtech.modules.admin.model.dto.MyIncomeAndExpensesQueryDto;
 import com.ydtech.modules.admin.model.po.SysUserAccountHistory;
-import com.ydtech.modules.admin.model.po.SysUserBankCard;
 import com.ydtech.modules.admin.model.vo.SysUserAccountHistoryVo;
-import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
 import com.ydtech.modules.admin.service.SysUserAccountHistoryService;
 import com.ydtech.modules.admin.service.SysUserBankCardService;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
-import org.apache.commons.lang3.ObjectUtils;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+
 /**
  * @author Administrator
  * @description 针对表【sys_user_account_history(用户账户表)】的数据库操作Service实现
@@ -74,6 +73,41 @@ public class SysUserAccountHistoryServiceImpl extends ServiceImpl<SysUserAccount
         super.save(sysUserAccountHistory);
 
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 15:54
+     *  @Description:  通过用户id查询(手续费+跟单)  (推广费)费用
+     */
+    @Override
+    public Page<MyCollectInAdvanceDto> findMyIncomeAndExpensesAmountByUserId(Page<MyCollectInAdvanceDto> page, MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto) {
+        return baseMapper.findMyIncomeAndExpensesAmountByUserId(page,myIncomeAndExpensesQueryDto);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 15:54
+     *  @Description:  通过用户id查询(手续费+跟单)  (推广费)总数
+     */
+    @Override
+    public Long findMyIncomeAndExpensesAmountByUserIdCount(MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto) {
+        return baseMapper.findMyIncomeAndExpensesAmountByUserIdCount(myIncomeAndExpensesQueryDto);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 17:12
+     *  @Description: 查询用户总金额
+     */
+    @Override
+    public BigDecimal findSumAmount(MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto) {
+        return baseMapper.findSumAmount(myIncomeAndExpensesQueryDto);
+    }
+
+    @Override
+    public BigDecimal findSumAmountByUserId(String userId,String types) {
+        return baseMapper.findSumAmountByUserId(userId,types);
+    }
 
 
 }

+ 406 - 55
src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java

@@ -9,13 +9,12 @@ import com.ydtech.modules.admin.constants.MoneyAttrConstants;
 import com.ydtech.modules.admin.constants.WithdrawTypeConstants;
 import com.ydtech.modules.admin.dao.SysUserAccountMapper;
 import com.ydtech.modules.admin.model.SysUser;
-import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
-import com.ydtech.modules.admin.model.po.SysUserAccount;
-import com.ydtech.modules.admin.model.po.SysUserAccountHistory;
-import com.ydtech.modules.admin.model.po.SysUserBankCard;
+import com.ydtech.modules.admin.model.dto.*;
+import com.ydtech.modules.admin.model.po.*;
 import com.ydtech.modules.admin.model.vo.SubOrder;
 import com.ydtech.modules.admin.model.vo.SysUserAccountVo;
 import com.ydtech.modules.admin.service.*;
+import com.ydtech.modules.admin.utils.SliceUpDateUtil;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.modules.message.constants.MessageTypeConstants;
@@ -36,10 +35,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 
 /**
  * @author Administrator
@@ -79,10 +75,13 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
     @Autowired
     private SysUserService sysUserService;
 
+    @Autowired
+    private SysAmountAuditingHistoryService sysAmountAuditingHistoryService;
+
     @Override
     @Transactional
     public void addOrUpdate(SysUserAccount sysUserAccount) {
-        SysUserAccount newSysAccount = baseMapper.getById(sysUserAccount.getUserId());
+        //SysUserAccount newSysAccount = baseMapper.getById(sysUserAccount.getUserId());
 //         初始化
         if (sysUserAccount.getHandlingFee() == null) {
             sysUserAccount.setHandlingFee(BigDecimal.ZERO);
@@ -93,11 +92,17 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         if (sysUserAccount.getPromotion() == null) {
             sysUserAccount.setPromotion(BigDecimal.ZERO);
         }
+        //添加总金额 = 手续费+跟单费+推广费
+        BigDecimal sumAmount=BigDecimal.ZERO;
+        BigDecimal userAmount=BigDecimal.ZERO;
+        userAmount= userAmount.add(sysUserAccount.getHandlingFee()==null?BigDecimal.ZERO:sysUserAccount.getHandlingFee())
+                .add(sysUserAccount.getDocumentary()==null?BigDecimal.ZERO:sysUserAccount.getDocumentary())
+                .add(sysUserAccount.getPromotion()==null?BigDecimal.ZERO:sysUserAccount.getPromotion());
 
 //      如果用户id有值则累加   没有则 新增
         String userId = sysUserAccount.getUserId();
         SysUserAccount sysUserAccountEntity = super.getById(userId);
-        SysUserAccount newAccount = new SysUserAccount();
+        //SysUserAccount newAccount = new SysUserAccount();
 
         if (ObjectUtils.isNotEmpty(sysUserAccountEntity)) {
             sysUserAccountEntity.setHandlingFee(sysUserAccount.getHandlingFee().add(sysUserAccountEntity.getHandlingFee()));
@@ -106,6 +111,11 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
             if (StringUtils.isNotEmpty(sysUserAccount.getDocumentaryStatus())) {
                 sysUserAccountEntity.setDocumentaryStatus(sysUserAccount.getDocumentaryStatus());
             }
+            sumAmount= sumAmount.add(sysUserAccountEntity.getHandlingFee()==null?BigDecimal.ZERO:sysUserAccountEntity.getHandlingFee())
+                    .add(sysUserAccountEntity.getDocumentary()==null?BigDecimal.ZERO:sysUserAccountEntity.getDocumentary())
+                    .add(sysUserAccountEntity.getPromotion()==null?BigDecimal.ZERO:sysUserAccountEntity.getPromotion());
+            // add by hxl  2024-06-18  插入总金额
+            sysUserAccountEntity.setSumAmount((sysUserAccountEntity.getSumAmount()==null?BigDecimal.ZERO:sysUserAccountEntity.getSumAmount()).add(sumAmount));
             baseMapper.updateById(sysUserAccountEntity);
         } else {
             sysUserAccountEntity = new SysUserAccount();
@@ -127,6 +137,11 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
             if (StringUtils.isNotEmpty(sysUserAccount.getDocumentaryStatus())) {
                 sysUserAccountEntity.setDocumentaryStatus(sysUserAccount.getDocumentaryStatus());
             }
+            sumAmount= sumAmount.add(sysUserAccountEntity.getHandlingFee()==null?BigDecimal.ZERO:sysUserAccountEntity.getHandlingFee())
+                    .add(sysUserAccountEntity.getDocumentary()==null?BigDecimal.ZERO:sysUserAccountEntity.getDocumentary())
+                    .add(sysUserAccountEntity.getPromotion()==null?BigDecimal.ZERO:sysUserAccountEntity.getPromotion());
+            // add by hxl  2024-06-18  插入总金额
+            sysUserAccountEntity.setSumAmount((sysUserAccountEntity.getSumAmount()==null?BigDecimal.ZERO:sysUserAccountEntity.getSumAmount()).add(sumAmount));
             baseMapper.insert(sysUserAccountEntity);
         }
         StringBuilder commissionMessage = new StringBuilder();
@@ -145,9 +160,10 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
                 if (WithdrawTypeConstants.WT_2.getCode().equals(sysUserAccount.getDocumentaryStatus())) { // 收入  相加
                     sysUserAccountHistory.setSurplusAmount(sysUserAccountEntity.getDocumentary());
                 } else {
-                    BigDecimal subtract = newSysAccount.getDocumentary().subtract(sysUserAccount.getDocumentary());
+                    BigDecimal subtract = sysUserAccountEntity.getDocumentary().subtract(sysUserAccount.getDocumentary());
                     sysUserAccountHistory.setSurplusAmount(subtract);
                 }
+                sysUserAccountHistory.setBusinessSegmentsType(1);
                 sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
             }
             //手续费
@@ -159,9 +175,10 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
                 if (WithdrawTypeConstants.WT_2.getCode().equals(sysUserAccount.getDocumentaryStatus())) { // 收入  相加
                     sysUserAccountHistory.setSurplusAmount(sysUserAccountEntity.getHandlingFee());
                 } else {
-                    BigDecimal subtract = newSysAccount.getHandlingFee().subtract(sysUserAccount.getHandlingFee());
+                    BigDecimal subtract = sysUserAccountEntity.getHandlingFee().subtract(sysUserAccount.getHandlingFee());
                     sysUserAccountHistory.setSurplusAmount(subtract);
                 }
+                sysUserAccountHistory.setBusinessSegmentsType(1);
                 sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
             }
             //推广费
@@ -174,12 +191,32 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
                 if (WithdrawTypeConstants.WT_2.getCode().equals(sysUserAccount.getDocumentaryStatus())) { // 收入  相加
                     sysUserAccountHistory.setSurplusAmount(sysUserAccountEntity.getPromotion());
                 } else {
-                    BigDecimal subtract = newSysAccount.getPromotion().subtract(sysUserAccount.getPromotion());
+                    BigDecimal subtract = sysUserAccountEntity.getPromotion().subtract(sysUserAccount.getPromotion());
                     sysUserAccountHistory.setSurplusAmount(subtract);
                 }
+                sysUserAccountHistory.setBusinessSegmentsType(1);
                 sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
 
             }
+            //历史记录表添加收费+跟单费用  add by hxl   2024-06-18
+            if(sysUserAccount.getDocumentary() != null && sysUserAccount.getDocumentary().compareTo(BigDecimal.ZERO) != 0  ||  sysUserAccount.getPromotion() != null && sysUserAccount.getPromotion().compareTo(BigDecimal.ZERO) != 0 ){
+                BigDecimal sum = (sysUserAccount.getDocumentary()==null?BigDecimal.ZERO:sysUserAccount.getDocumentary())
+                        .add(sysUserAccount.getPromotion()==null?BigDecimal.ZERO:sysUserAccount.getPromotion());
+                BigDecimal oldSum = (sysUserAccountEntity.getDocumentary()==null?BigDecimal.ZERO:sysUserAccountEntity.getDocumentary())
+                        .add(sysUserAccountEntity.getPromotion()==null?BigDecimal.ZERO:sysUserAccountEntity.getPromotion());
+
+                sysUserAccountHistory.setId(null);
+                sysUserAccountHistory.setAmount(sum);
+                sysUserAccountHistory.setProperty(MoneyAttrConstants.M_4.getCode());
+                if (WithdrawTypeConstants.WT_2.getCode().equals(sysUserAccount.getDocumentaryStatus())) { // 收入  相加
+                    sysUserAccountHistory.setSurplusAmount(userAmount);
+                } else {
+                    BigDecimal subtract = oldSum.subtract(sum);
+                    sysUserAccountHistory.setSurplusAmount(subtract);
+                }
+                sysUserAccountHistory.setBusinessSegmentsType(1);
+                sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
+            }
         }
         //添加佣金消息
         messageSecretaryService.addMessage(MessageTypeConstants.M_5,sysUserAccount.getUserId(),"你有一条佣金消息," + commissionMessage.toString());
@@ -214,6 +251,8 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         SysUserAccountHistory sysUserAccountHistory = new SysUserAccountHistory();  // 记录
         sysUserAccountHistory.setDocumentary(1);  // 1提现
         sysUserAccountHistory.setUserId(userId);
+        sysUserAccountHistory.setProperty(3);
+        sysUserAccountHistory.setBusinessSegmentsType(1);
         SysAmountAuditingEntity sysAmountAuditingEntity = new SysAmountAuditingEntity();//审核记录表
         sysAmountAuditingEntity.setUserId(userId);
         sysAmountAuditingEntity.setAmount(sysUserAccountVo.getAmount());
@@ -239,10 +278,9 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         if (StringUtils.isNotEmpty(userId)) {
             SysUserAccount sysUserAccount = baseMapper.getById(userId);
 
-
-            if (StringUtils.isNotEmpty(sysUserAccountVo.getAmountStatus())) {
-                sysUserAccountHistory.setProperty(Integer.valueOf(sysUserAccountVo.getAmountStatus()));   //金额类型
-
+            //if (StringUtils.isNotEmpty(sysUserAccountVo.getAmountStatus())) {
+                //sysUserAccountHistory.setProperty(Integer.valueOf(sysUserAccountVo.getAmountStatus()));   //金额类型
+                /**
                 if ("1".equals(sysUserAccountVo.getAmountStatus())) {
 //                  用户当前费用金
                     beforeAmount = sysUserAccount.getHandlingFee();
@@ -264,6 +302,16 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
                     sysUserAccount.setPromotionAmountPayment(sysUserAccount.getPromotionAmountPayment().add(amount));
                     sysUserAccount.setPromotionAmountWithdrawal(sysUserAccount.getPromotionAmountWithdrawal().add(amount));
                 }
+                 **/
+                //提现前的金额
+                beforeAmount = sysUserAccount.getSumAmount()==null?BigDecimal.ZERO:sysUserAccount.getSumAmount();
+                //提现后的金额
+                afterAmount = beforeAmount.subtract(amount);
+                sysUserAccount.setSumAmount(afterAmount);
+                //支付中总金额 = 原先的支付金额 + 提现的金额
+                sysUserAccount.setSumAmountPayment((sysUserAccount.getSumAmountPayment()==null?BigDecimal.ZERO:sysUserAccount.getSumAmountPayment()).add(amount));
+                //提现的总金额 = 原先的提现总金额 + 提现的金额
+                sysUserAccount.setSumAmountWithdrawal((sysUserAccount.getSumAmountWithdrawal()==null?BigDecimal.ZERO:sysUserAccount.getSumAmountWithdrawal().add(amount)));
 //              用户相差
                 if (beforeAmount.compareTo(zero) == 0 || afterAmount.compareTo(zero) < 0) {
                     return HttpResult.ok("余额不足");
@@ -273,18 +321,33 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
                 sysUserAccountHistory.setUserAmount(beforeAmount);   // 用户剩余金额
                 sysAmountAuditingEntity.setCreateTime(new Date());
                 sysAmountAuditingEntity.setAuditingStatus("2");   // 2  为待审核  3  审核通过
-                sysAmountAuditingEntity.setAmountStatus(sysUserAccountVo.getAmountStatus());
+               // sysAmountAuditingEntity.setAmountStatus(sysUserAccountVo.getAmountStatus());
 //              新增金额记录
                 sysAmountAuditingService.save(sysAmountAuditingEntity);
                 sysUserAccountHistory.setAuditiingId(sysAmountAuditingEntity.getId());
                 sysUserAccountService.updateById(sysUserAccount);
                 sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
-            }
+           // }
+            // 提现审核插入轨迹表   待审核数据 和审核处理中的数据
+
+            Calendar calendar = Calendar.getInstance();
+            Date date = calendar.getTime();
+            calendar.add(Calendar.MINUTE, 1);
+            Date afterDate = calendar.getTime();
+            SysAmountAuditingHistory sysAmountAuditingHistory =new SysAmountAuditingHistory(null, sysAmountAuditingEntity.getId(), amount, userId,date,"1", "1",sysUserAccountHistory.getId());
+            SysAmountAuditingHistory sysAmountAuditingHistoryTwo =new SysAmountAuditingHistory(null, sysAmountAuditingEntity.getId(), amount, userId,afterDate, "2", "1",sysUserAccountHistory.getId());
+            sysAmountAuditingHistoryService.save(sysAmountAuditingHistory);
+            sysAmountAuditingHistoryService.save(sysAmountAuditingHistoryTwo);
 
         }
         return HttpResult.ok("提现成功,等待审核");
     }
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/18 17:30
+     *  @Description:  提现修改为总金额
+     */
     @Override
     @Transactional
     public HttpResult withdraw(SysUserAccountVo sysUserAccountVo) {
@@ -324,29 +387,41 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
 
             if (StringUtils.isNotEmpty(sysUserAccountVo.getAmountStatus())) {
                 sysUserAccountHistory.setProperty(Integer.valueOf(sysUserAccountVo.getAmountStatus()));   //金额类型
+                //注释掉类型提现,直接提现总金额
+                /**
+                 if ("1".equals(sysUserAccountVo.getAmountStatus())) {
+                 //                  用户当前费用金
+                 beforeAmount = sysUserAccount.getHandlingFee();
+                 afterAmount = beforeAmount.subtract(amount);
+                 sysUserAccount.setHandlingFee(afterAmount);
+                 sysUserAccount.setHandlingAmountPayment(sysUserAccount.getHandlingAmountPayment().add(amount));
+                 sysUserAccount.setHandlingAmountWithdrawal(sysUserAccount.getHandlingAmountWithdrawal().add(amount));
+                 } else if ("2".equals(sysUserAccountVo.getAmountStatus())) {
+                 //                    用户当前 非跟单佣金
+                 beforeAmount = sysUserAccount.getDocumentary();
+                 afterAmount = beforeAmount.subtract(amount);
+                 sysUserAccount.setDocumentary(afterAmount);
+                 sysUserAccount.setDocumentaryAmountpayment(sysUserAccount.getDocumentaryAmountpayment().add(amount));
+                 sysUserAccount.setDocumentaryAmountWithdrawal(sysUserAccount.getDocumentaryAmountWithdrawal().add(amount));
+                 } else {
+                 beforeAmount = sysUserAccount.getPromotion();
+                 afterAmount = beforeAmount.subtract(amount);
+                 sysUserAccount.setPromotion(afterAmount);
+                 sysUserAccount.setPromotionAmountPayment(sysUserAccount.getPromotionAmountPayment().add(amount));
+                 sysUserAccount.setPromotionAmountWithdrawal(sysUserAccount.getPromotionAmountWithdrawal().add(amount));
+                 }
+                 **/
+                //提现前的金额
+                beforeAmount = sysUserAccount.getSumAmount();
+                //提现后的金额
+                afterAmount = beforeAmount.subtract(amount);
+                sysUserAccount.setSumAmount(afterAmount);
+                //支付中总金额 = 原先的支付金额 + 提现的金额
+                sysUserAccount.setSumAmountPayment(sysUserAccount.getSumAmountPayment().add(amount));
+                //提现的总金额 = 原先的提现总金额 + 提现的金额
+                sysUserAccount.setSumAmountWithdrawal(sysUserAccount.getSumAmountWithdrawal().add(amount));
 
-                if ("1".equals(sysUserAccountVo.getAmountStatus())) {
-//                  用户当前费用金
-                    beforeAmount = sysUserAccount.getHandlingFee();
-                    afterAmount = beforeAmount.subtract(amount);
-                    sysUserAccount.setHandlingFee(afterAmount);
-                    sysUserAccount.setHandlingAmountPayment(sysUserAccount.getHandlingAmountPayment().add(amount));
-                    sysUserAccount.setHandlingAmountWithdrawal(sysUserAccount.getHandlingAmountWithdrawal().add(amount));
-                } else if ("2".equals(sysUserAccountVo.getAmountStatus())) {
-//                    用户当前 非跟单佣金
-                    beforeAmount = sysUserAccount.getDocumentary();
-                    afterAmount = beforeAmount.subtract(amount);
-                    sysUserAccount.setDocumentary(afterAmount);
-                    sysUserAccount.setDocumentaryAmountpayment(sysUserAccount.getDocumentaryAmountpayment().add(amount));
-                    sysUserAccount.setDocumentaryAmountWithdrawal(sysUserAccount.getDocumentaryAmountWithdrawal().add(amount));
-                } else {
-                    beforeAmount = sysUserAccount.getPromotion();
-                    afterAmount = beforeAmount.subtract(amount);
-                    sysUserAccount.setPromotion(afterAmount);
-                    sysUserAccount.setPromotionAmountPayment(sysUserAccount.getPromotionAmountPayment().add(amount));
-                    sysUserAccount.setPromotionAmountWithdrawal(sysUserAccount.getPromotionAmountWithdrawal().add(amount));
-                }
-//              用户相差
+                //              用户相差
                 if (beforeAmount.compareTo(zero) == 0 || afterAmount.compareTo(zero) < 0) {
                     return HttpResult.error("余额不足");
                 }
@@ -392,8 +467,8 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         BigDecimal willDocumentary = BigDecimal.ZERO;   //预收 非跟单佣金
         BigDecimal willPromotion = BigDecimal.ZERO;   //预收 推广
         //BigDecimal receivedWillHalding = BigDecimal.ZERO;        //实收手续费佣金
-       // BigDecimal receivedWillDocumentary = BigDecimal.ZERO;   //实收非跟单佣金
-       // BigDecimal receivedWillPromotion = BigDecimal.ZERO;   //实收推广费
+        // BigDecimal receivedWillDocumentary = BigDecimal.ZERO;   //实收非跟单佣金
+        // BigDecimal receivedWillPromotion = BigDecimal.ZERO;   //实收推广费
         // 预收手续费佣金
         willPromotion = this.willPromotionAll(willPromotion, userId,"1");
         // 实收手续费佣金
@@ -411,15 +486,15 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
             }
         }
         /**
-        if (!CollectionUtils.isEmpty(willListnew)) {
-            for (InsFeeOrderNew item : willListnew) {
-                if (ObjectUtils.isNotEmpty(item)) {
-                    //1.实收手续费佣金  2. 实收非跟单佣金
-                    receivedWillHalding = willHalding.add(this.willAmountNew(item,1));
-                    receivedWillDocumentary = willDocumentary.add(this.willAmountNew(item,2));
-                }
-            }
-        }
+         if (!CollectionUtils.isEmpty(willListnew)) {
+         for (InsFeeOrderNew item : willListnew) {
+         if (ObjectUtils.isNotEmpty(item)) {
+         //1.实收手续费佣金  2. 实收非跟单佣金
+         receivedWillHalding = willHalding.add(this.willAmountNew(item,1));
+         receivedWillDocumentary = willDocumentary.add(this.willAmountNew(item,2));
+         }
+         }
+         }
          **/
         //预收手续费佣金
         sysUserAccountVo.setWillHalding(willHalding);
@@ -444,7 +519,7 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         //预收手续费佣金
         sysUserAccountVo.setWillPromotion(willPromotion);
         //实收手续费佣金
-       // sysUserAccountVo.setReceivedWillPromotion(receivedWillPromotion);
+        // sysUserAccountVo.setReceivedWillPromotion(receivedWillPromotion);
         return sysUserAccountVo;
     }
 
@@ -720,6 +795,9 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         }
         return subOrder;
     }
+
+
+
     /**
      *  @version
      *  @author: hxl
@@ -735,8 +813,281 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         }
         return "";
     }
-}
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 9:04
+     *  @Description: 查询我的账户总金额
+     */
+    @Override
+    public BigDecimal getUserSumAmountByUserId(String userId) {
+        if(StringUtils.isBlank(userId)){
+            throw new SystemException("用户id-userId不能为空");
+        }
+        //通过用户id查询用户账户的总金额
+        LambdaQueryWrapper<SysUserAccount> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(SysUserAccount::getUserId, userId);
+        SysUserAccount sysUserAccount = sysUserAccountService.getOne(queryWrapper);
+        if(sysUserAccount==null){
+            return BigDecimal.ZERO;
+        }
+        return sysUserAccount.getSumAmount()==null?BigDecimal.ZERO:sysUserAccount.getSumAmount();
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 11:04
+     *  @Description: 查询预收数据明细
+     */
+    @Override
+    public MyCollectInAdvanceAllDto findMyCollectInAdvanceByUserId(MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto) {
+        if(StringUtils.isBlank(myCollectInAdvanceQueryDto.getUserId())){
+            throw new SystemException("用户id-userId不能为空");
+        }
+        BigDecimal sumAmount=BigDecimal.ZERO;
+        //判断时间类型  1.一周内  2. 一月内  3. 三月内  4. 三月内
+        HashMap<String, String> dateMap = getDateMapByType(myCollectInAdvanceQueryDto.getDateQueryType());
+        myCollectInAdvanceQueryDto.setStartDate(dateMap.get("startDate"));
+        myCollectInAdvanceQueryDto.setEndDate(dateMap.get("endDate"));
+        if(myCollectInAdvanceQueryDto.getBusinessSegmentsType()==null || "".equals(myCollectInAdvanceQueryDto.getBusinessSegmentsType())){
+            myCollectInAdvanceQueryDto.setBusinessSegmentsType("1");
+        }
+        if(myCollectInAdvanceQueryDto.getTransactionType()==null || "".equals(myCollectInAdvanceQueryDto.getTransactionType())){
+            myCollectInAdvanceQueryDto.setTransactionType("1");
+        }
+        Page<MyCollectInAdvanceDto> page = new Page<>(myCollectInAdvanceQueryDto.getPageNum(), myCollectInAdvanceQueryDto.getPageSize());
+        page.setSearchCount(false).setOptimizeCountSql(false);//关闭count查询
+        Page<MyCollectInAdvanceDto> orderVoPage = new Page<>();
+        // 1为车险板块
+        if ("1".equals(myCollectInAdvanceQueryDto.getBusinessSegmentsType())) {
+            //金额类型 1. 手续费金额 +跟单金额  2. 推广金额
+            if("2".equals(myCollectInAdvanceQueryDto.getTransactionType())){
+                orderVoPage = insFeeOrderNewService.findMyCollectInAdvanceWillAmountByUserId(page,myCollectInAdvanceQueryDto);
+                Long total=insFeeOrderNewService.findMyCollectInAdvanceWillAmountByUserIdCount(myCollectInAdvanceQueryDto);
+                orderVoPage.setTotal(total);
+                sumAmount = insFeeOrderNewService.findSumWillAmount(myCollectInAdvanceQueryDto);
+            }else{
+                orderVoPage = insFeeOrderNewService.findMyCollectInAdvanceSumByUserId(page,myCollectInAdvanceQueryDto);
+                Long total=insFeeOrderNewService.findMyCollectInAdvanceSumByUserIdCount(myCollectInAdvanceQueryDto);
+                orderVoPage.setTotal(total);
+                sumAmount = insFeeOrderNewService.findSumAmount(myCollectInAdvanceQueryDto);
+            }
+        } else {
+            //其他板块预留逻辑处理
+        }
+        BasePageResult<MyCollectInAdvanceDto> myCollectInAdvanceDtoBasePageResult = new BasePageResult<>(myCollectInAdvanceQueryDto.getPageNum(), myCollectInAdvanceQueryDto.getPageSize(), orderVoPage.getTotal(),
+                orderVoPage.getPages()
+                , orderVoPage.getRecords());
+        return new MyCollectInAdvanceAllDto(sumAmount,myCollectInAdvanceDtoBasePageResult);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 11:57
+     *  @Description:  通过时间类型判断
+     */
+    private static HashMap<String,String> getDateMapByType(String type) {
+        HashMap<String,String> map =new HashMap<>();
+        String  startDateStr="";
+        String  endDateStr="";
+        if("0".equals(type)){
+            //全部
+            startDateStr=null;
+            endDateStr=null;
+        }else if("1".equals(type)){
+            // 一周内
+            startDateStr=SliceUpDateUtil.getWeekFirstAndLastDay(new Date(),1)+" 00:00:00";
+            endDateStr=SliceUpDateUtil.getWeekFirstAndLastDay(new Date(),2)+" 23:59:59";
+        }else if("2".equals(type)){
+            // 一月内
+            startDateStr=SliceUpDateUtil.getMonthFirstAndLastDay(new Date(),1)+" 00:00:00";
+            endDateStr=SliceUpDateUtil.getMonthFirstAndLastDay(new Date(),2)+" 23:59:59";
+        }else if("3".equals(type)){
+            // 三月内
+            startDateStr=SliceUpDateUtil.getThreeMonthFirstAndLastDay(new Date(),1,3)+" 00:00:00";
+            endDateStr=SliceUpDateUtil.getThreeMonthFirstAndLastDay(new Date(),2,3)+" 23:59:59";
+        }else if("4".equals(type)){
+            // 三月内
+            startDateStr=SliceUpDateUtil.getThreeMonthFirstAndLastDay(new Date(),1,6)+" 00:00:00";
+            endDateStr=SliceUpDateUtil.getThreeMonthFirstAndLastDay(new Date(),2,6)+" 23:59:59";
+        }
+        map.put("startDate",startDateStr);
+        map.put("endDate",endDateStr);
+        return map;
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 11:04
+     *  @Description: 查询收支数据明细
+     */
+    @Override
+    public MyCollectInAdvanceAllDto findIncomeAndExpensesByUserId(MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto) {
+        if(StringUtils.isBlank(myIncomeAndExpensesQueryDto.getUserId())){
+            throw new SystemException("用户id-userId不能为空");
+        }
+        BigDecimal sumAmountSR=BigDecimal.ZERO;
+        BigDecimal sumAmountZC=BigDecimal.ZERO;
+        BasePageResult<MyCollectInAdvanceDto> myCollectInAdvanceDtoBasePageResult=new BasePageResult<MyCollectInAdvanceDto>();
+        //判断时间类型  1.一周内  2. 一月内  3. 三月内  4. 三月内
+        HashMap<String, String> dateMap = getDateMapByType(myIncomeAndExpensesQueryDto.getDateQueryType());
+        myIncomeAndExpensesQueryDto.setStartDate(dateMap.get("startDate"));
+        myIncomeAndExpensesQueryDto.setEndDate(dateMap.get("endDate"));
+        Page<MyCollectInAdvanceDto> page = new Page<>(myIncomeAndExpensesQueryDto.getPageNum(), myIncomeAndExpensesQueryDto.getPageSize());
+        page.setSearchCount(false).setOptimizeCountSql(false);//关闭count查询
+        Page<MyCollectInAdvanceDto> orderVoPage = new Page<>();
+        if(myIncomeAndExpensesQueryDto.getBusinessSegmentsType()==null || "".equals(myIncomeAndExpensesQueryDto.getBusinessSegmentsType())){
+            myIncomeAndExpensesQueryDto.setBusinessSegmentsType("1");
+        }
+        if(myIncomeAndExpensesQueryDto.getTransactionType()==null || "".equals(myIncomeAndExpensesQueryDto.getTransactionType())){
+            myIncomeAndExpensesQueryDto.setTransactionType("1");
+        }
+        if(myIncomeAndExpensesQueryDto.getIncomeAndExpensesType()==null || "".equals(myIncomeAndExpensesQueryDto.getIncomeAndExpensesType())){
+            myIncomeAndExpensesQueryDto.setIncomeAndExpensesType("1");
+        }
+        // 1为车险板块
+        if ("1".equals(myIncomeAndExpensesQueryDto.getBusinessSegmentsType())) {
+            //判断收入类型  1 收入  查询账号的历史记录表
+            if("1".equals(myIncomeAndExpensesQueryDto.getIncomeAndExpensesType())){
 
+                //金额类型 1. 手续费金额 +跟单金额  2. 推广金额
+                if("2".equals(myIncomeAndExpensesQueryDto.getTransactionType())){
+                    myIncomeAndExpensesQueryDto.setTransactionType("3");
+                }else if("1".equals(myIncomeAndExpensesQueryDto.getTransactionType())){
+                    myIncomeAndExpensesQueryDto.setTransactionType("4");
+                }else{
+                    throw new SystemException("收入类型不能选择提现类型");
+                }
+                myIncomeAndExpensesQueryDto.setIncomeAndExpensesType("2");
+                orderVoPage = sysUserAccountHistoryService.findMyIncomeAndExpensesAmountByUserId(page,myIncomeAndExpensesQueryDto);
+                Long total=sysUserAccountHistoryService.findMyIncomeAndExpensesAmountByUserIdCount(myIncomeAndExpensesQueryDto);
+                orderVoPage.setTotal(total);
 
+                sumAmountSR=sysUserAccountHistoryService.findSumAmount(myIncomeAndExpensesQueryDto);
+                sumAmountZC=sysUserAccountHistoryService.findSumAmountByUserId(myIncomeAndExpensesQueryDto.getUserId(),"2");
+                List<MyCollectInAdvanceDto> recordsNew =new ArrayList<>();
+                if(orderVoPage.getRecords()!=null && orderVoPage.getRecords().size()>0){
+                    for(MyCollectInAdvanceDto dto :orderVoPage.getRecords()){
+                        if ("4".equals(dto.getTransactionType())) {
+                            dto.setTransactionType("1");
+                        }else if("3".equals(dto.getTransactionType())){
+                            dto.setTransactionType("2");
+                        }
+                        dto.setIncomeAndExpensesType("1");
+                        recordsNew.add(dto);
+                    }
+                }
+                orderVoPage.setRecords(recordsNew);
+                myCollectInAdvanceDtoBasePageResult=new BasePageResult<>(myIncomeAndExpensesQueryDto.getPageNum(), myIncomeAndExpensesQueryDto.getPageSize(), orderVoPage.getTotal(),
+                        orderVoPage.getPages()
+                        , orderVoPage.getRecords());
+                // 2.支出   查看提现记录表
+            }else if("2".equals(myIncomeAndExpensesQueryDto.getIncomeAndExpensesType())){
+                //金额类型 3
+                if(!"3".equals(myIncomeAndExpensesQueryDto.getTransactionType())){
+                    throw new SystemException("支出类型不能选择(手续+跟单)或者手续费类型");
+                }
+                myIncomeAndExpensesQueryDto.setIncomeAndExpensesType("1");
+                orderVoPage = sysUserAccountHistoryService.findMyIncomeAndExpensesAmountByUserId(page,myIncomeAndExpensesQueryDto);
+                Long total=sysUserAccountHistoryService.findMyIncomeAndExpensesAmountByUserIdCount(myIncomeAndExpensesQueryDto);
+                orderVoPage.setTotal(total);
+                List<MyCollectInAdvanceDto> recordsNew =new ArrayList<>();
+                if(orderVoPage.getRecords()!=null && orderVoPage.getRecords().size()>0){
+                    for(MyCollectInAdvanceDto dto :orderVoPage.getRecords()){
+                        dto.setIncomeAndExpensesType("2");
+                        recordsNew.add(dto);
+                    }
+                }
+                orderVoPage.setRecords(recordsNew);
+                myCollectInAdvanceDtoBasePageResult=new BasePageResult<>(myIncomeAndExpensesQueryDto.getPageNum(), myIncomeAndExpensesQueryDto.getPageSize(), orderVoPage.getTotal(),
+                        orderVoPage.getPages()
+                        , orderVoPage.getRecords());
+                sumAmountSR=sysUserAccountHistoryService.findSumAmountByUserId(myIncomeAndExpensesQueryDto.getUserId(),"1");
+            }
 
+        } else {
+            //其他板块预留逻辑处理
+        }
+        return new MyCollectInAdvanceAllDto(sumAmountSR,sumAmountZC,myCollectInAdvanceDtoBasePageResult);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/20 13:48
+     *  @Description: 提现详情
+     */
+    @Override
+    public WithdrawalDetalsDto findDetailById(String id) {
+        //id为历史表的id
+        //通过历史记录表查询数据
+        SysUserAccountHistory his = sysUserAccountHistoryService.getById(id);
+        LambdaQueryWrapper<SysAmountAuditingHistory> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(SysAmountAuditingHistory::getHistoryId, id);
+        lqw.orderByAsc(SysAmountAuditingHistory::getCreateTime);
+        List<SysAmountAuditingHistory> listAll = sysAmountAuditingHistoryService.list(lqw);
+        SysAmountAuditingEntity audi = sysAmountAuditingService.getById(his.getAuditiingId());
+        WithdrawalDetalsDto withdrawalDetalsDto=new WithdrawalDetalsDto();
+        if(audi!=null){
+            withdrawalDetalsDto.setBankNumber(audi.getBankNumber());
+            withdrawalDetalsDto.setTransactionNumber(audi.getId());
+            withdrawalDetalsDto.setWithdrawalAmount(audi.getAmount());
+            withdrawalDetalsDto.setBankAccount(audi.getBankAccount());
+        }
+        List<WithdrawalDetalsRecordDto>  recordList =new ArrayList<WithdrawalDetalsRecordDto>();
+        if(listAll!=null && listAll.size()>0){
+            SysAmountAuditingHistory first = listAll.get(0);
+            SysAmountAuditingHistory last = listAll.get(listAll.size() - 1);
+            //申请时间
+            Date createTime = first.getCreateTime();
+            withdrawalDetalsDto.setApplicationDate(createTime);
+            String auditingStatus = last.getAuditingStatus();
+            withdrawalDetalsDto.setWithdrawalStatus(auditingStatus);
+            String auditingStatusName="";
+            if("1".equals(auditingStatus)){
+                auditingStatusName="提现申请";
+            }else if("2".equals(auditingStatus)){
+                auditingStatusName="处理中";
+            }else if("3".equals(auditingStatus)){
+                auditingStatusName="提现失败";
+            }else if("4".equals(auditingStatus)){
+                auditingStatusName="提现成功";
+                withdrawalDetalsDto.setPaymentDate(last.getCreateTime());
+            }
+            withdrawalDetalsDto.setWithdrawalStatusName(auditingStatusName);
+            WithdrawalDetalsRecordDto dto1 = new WithdrawalDetalsRecordDto("1", false, "提现申请", null);
+            WithdrawalDetalsRecordDto dto2 = new WithdrawalDetalsRecordDto("2", false, "处理中", null);
+            WithdrawalDetalsRecordDto dto3 = null;
+            WithdrawalDetalsRecordDto dto4 = new WithdrawalDetalsRecordDto("4", false, "提现成功", null);
+            for(SysAmountAuditingHistory sysAmountAuditingHistory:listAll){
+                if("1".equals(sysAmountAuditingHistory.getAuditingStatus())){
+                    dto1.setProcessingStatusFlag(true);
+                    dto1.setProcessingDate(sysAmountAuditingHistory.getCreateTime());
+                }else if("2".equals(sysAmountAuditingHistory.getAuditingStatus())){
+                    dto2.setProcessingStatusFlag(true);
+                    dto2.setProcessingDate(sysAmountAuditingHistory.getCreateTime());
+                }else if("3".equals(sysAmountAuditingHistory.getAuditingStatus())){
+                    dto3 =new WithdrawalDetalsRecordDto("3", true, "提现失败", sysAmountAuditingHistory.getCreateTime());
+                }else if("4".equals(sysAmountAuditingHistory.getAuditingStatus())){
+                    dto4.setProcessingStatusFlag(true);
+                    dto4.setProcessingDate(sysAmountAuditingHistory.getCreateTime());
+                }
+            }
+            recordList.add(dto1);
+            recordList.add(dto2);
+            if(dto3!=null){
+                recordList.add(dto3);
+                withdrawalDetalsDto.setRejectReason(audi.getRejectReason()==null?"":audi.getRejectReason());
+            }else{
+                recordList.add(dto4);
+            }
+            withdrawalDetalsDto.setRecord(recordList);
+        }
+        return withdrawalDetalsDto;
+    }
 
+    @Override
+    public OrderDetalsDto findOrderDetailById(String subOrderId) {
+        return null;
+    }
+}

+ 74 - 0
src/main/java/com/ydtech/modules/admin/utils/SliceUpDateUtil.java

@@ -5,6 +5,7 @@ import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.Date;
 import java.util.List;
 
 public class SliceUpDateUtil {
@@ -102,4 +103,77 @@ public class SliceUpDateUtil {
         String lastDayString = lastDayOfMonth.format(formatter);
         return lastDayString;
     }
+     /**
+      *  @version
+      *  @author: hxl
+      *  @Date: 2024/6/19 11:23
+      *  @Description:
+      */
+     public static String getWeekFirstAndLastDay(Date date,int type){
+         Calendar calendar = Calendar.getInstance();
+         calendar.setTime(date);
+         int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
+         int diff = Calendar.MONDAY - dayOfWeek;
+         if (diff > 0) {
+             diff -= 7;
+         }
+         calendar.add(Calendar.DATE, diff);
+         Date firstDayDate = calendar.getTime();
+         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+         calendar.add(Calendar.DATE, 6);
+         Date lastDayDate = calendar.getTime();
+         String firstDayStr = sdf.format(firstDayDate);
+         String lastDayStr = sdf.format(firstDayDate);
+         if(type==1){
+             return firstDayStr;
+         }
+         return lastDayStr;
+     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 11:23
+     *  @Description: 获取此月的开始时间和结束时间
+     */
+    public static String getMonthFirstAndLastDay(Date date,int type){
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.DAY_OF_MONTH, 1);
+        Date firstDayDate = calendar.getTime();
+        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Date lastDayDate = calendar.getTime();
+        String firstDayStr = sdf.format(firstDayDate);
+        String lastDayStr = sdf.format(firstDayDate);
+        if(type==1){
+            return firstDayStr;
+        }
+        return lastDayStr;
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 11:23
+     *  @Description: 获取进3个月日期
+     */
+    public static String getThreeMonthFirstAndLastDay(Date date,int type,int monthSize){
+        int size=monthSize-1;
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.DAY_OF_MONTH, 1);
+        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        //获取当月的最后一天的日期
+        Date firstDayDate = calendar.getTime();
+        String firstDayStr = sdf.format(firstDayDate);
+        String lastDayStr = sdf.format(firstDayDate);
+        //获取两个月之前的第一天日期
+        calendar.add(Calendar.MONTH,-size);
+        calendar.set(Calendar.DAY_OF_MONTH,1);
+        Date lastDayDate = calendar.getTime();
+        if(type==1){
+            return firstDayStr;
+        }
+        return lastDayStr;
+    }
 }

+ 8 - 9
src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java

@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.constants.enums.dict.FeeAuditAuditstatus;
 import com.ydtech.constants.enums.dict.ins.InsFeeAuditDistributionStatusEnum;
 import com.ydtech.exception.SystemException;
-import com.ydtech.modules.admin.model.SysDeptAccount;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.po.SysUserAccount;
 import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
@@ -176,7 +175,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
                 sysUserAccount.setDocumentaryStatus("2");  // 收入
                 sysUserAccount.setSuborderId(orderNo);  // 订单Id
                 sysUserAccountService.addOrUpdate(sysUserAccount);
-
+                /**
                 if (insFeeOrderNew.getDistributionStatus() !=null) {
                     createInsFeeOrderNewDistribution(insFeeOrderNew, insAreaCompany, order, order.getUserid(),BigDecimal.ZERO, BigDecimal.ZERO, "0");
                     if (insFeeOrderNew.getFirstLevelUserId() != null) {
@@ -257,6 +256,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
                     sysDeptAccountHistoryService.addHistory(levelDeptId, sumManagementFee, levelSysDeptAccount.getManagementFee(), "2",
                             insOrderNo, BaseController.getUser().getId(), remark);
                 }
+                 **/
             }
         }
     }
@@ -382,13 +382,12 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
     }
 
     private void saveUpdateAccount(String userId, BigDecimal amount, String orderNo) {
-        SysUserAccount sysUserAccount = new SysUserAccount();
-        sysUserAccount.setUserId(userId);
-        sysUserAccount.setPromotion(amount);
-        sysUserAccount.setDocumentaryStatus("2");  // 收入
-        sysUserAccount.setSuborderId(orderNo);
-        sysUserAccountService.addOrUpdate(sysUserAccount);
-
+        SysUserAccount  sysUserOldAccount = new SysUserAccount();
+        sysUserOldAccount.setUserId(userId);
+        sysUserOldAccount.setPromotion(amount);
+        sysUserOldAccount.setDocumentaryStatus("2");  // 收入
+        sysUserOldAccount.setSuborderId(orderNo);
+        sysUserAccountService.addOrUpdate(sysUserOldAccount);
     }
 
     private BigDecimal zeroBigdecimal(BigDecimal amount) {

+ 46 - 0
src/main/java/com/ydtech/modules/protocols/dao/InsFeeOrderNewMapper.java

@@ -1,9 +1,13 @@
 package com.ydtech.modules.protocols.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.dto.MyCollectInAdvanceDto;
+import com.ydtech.modules.admin.model.dto.MyCollectInAdvanceQueryDto;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.HashMap;
 import java.util.List;
 
@@ -50,6 +54,48 @@ public interface InsFeeOrderNewMapper extends BaseMapper<InsFeeOrderNew> {
      *  @Description: 查询订单数据
      */
     List<InsFeeOrderNew> getSumWillAmountNew(HashMap<String, Object> params);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 15:19
+     *  @Description:  通过用户id查询推广费
+     */
+    Page<MyCollectInAdvanceDto> findMyCollectInAdvanceWillAmountByUserId(@Param("page") Page<MyCollectInAdvanceDto> page, @Param("myCollectInAdvanceQueryDto") MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 15:20
+     *  @Description: 通过用户id查询手续费+跟单费
+     */
+    Page<MyCollectInAdvanceDto> findMyCollectInAdvanceSumByUserId(@Param("page") Page<MyCollectInAdvanceDto> page, @Param("myCollectInAdvanceQueryDto") MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 15:20
+     *  @Description: 通过用户id查询推广费  总条数
+     */
+    Long findMyCollectInAdvanceWillAmountByUserIdCount(@Param("myCollectInAdvanceQueryDto") MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 15:21
+     *  @Description: 通过用户id查询手续费+跟单费 总条数
+     */
+    Long findMyCollectInAdvanceSumByUserIdCount(@Param("myCollectInAdvanceQueryDto") MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 17:31
+     *  @Description:  查询推广费总金额
+     */
+    BigDecimal findSumWillAmount(@Param("myCollectInAdvanceQueryDto") MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 17:32
+     *  @Description:  查询手续+跟单费用
+     */
+    BigDecimal findSumAmount(@Param("myCollectInAdvanceQueryDto") MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto);
 }
 
 

+ 45 - 0
src/main/java/com/ydtech/modules/protocols/service/InsFeeOrderNewService.java

@@ -1,6 +1,9 @@
 package com.ydtech.modules.protocols.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.dto.MyCollectInAdvanceDto;
+import com.ydtech.modules.admin.model.dto.MyCollectInAdvanceQueryDto;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 
 import java.math.BigDecimal;
@@ -68,4 +71,46 @@ public interface InsFeeOrderNewService extends IService<InsFeeOrderNew> {
      *  @Description: 推广费
      */
     List<InsFeeOrderNew> getSumWillAmountNew(HashMap<String, Object> params);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 14:21
+     *  @Description:  通过用户id查询推广费
+     */
+    Page<MyCollectInAdvanceDto> findMyCollectInAdvanceWillAmountByUserId(Page<MyCollectInAdvanceDto> page,MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 14:47
+     *  @Description: 通过用户id查询手续费+跟单费
+     */
+    Page<MyCollectInAdvanceDto> findMyCollectInAdvanceSumByUserId(Page<MyCollectInAdvanceDto> page,MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 15:07
+     *  @Description: 通过用户id查询推广费  总条数
+     */
+    Long findMyCollectInAdvanceWillAmountByUserIdCount(MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 15:17
+     *  @Description: 通过用户id查询手续费+跟单费 总条数
+     */
+    Long findMyCollectInAdvanceSumByUserIdCount(MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 17:29
+     *  @Description:  计算推广费总费用
+     */
+    BigDecimal findSumWillAmount(MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/19 17:30
+     *  @Description:  计算手续费+跟单费 总费用
+     */
+    BigDecimal findSumAmount(MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto);
 }

+ 33 - 0
src/main/java/com/ydtech/modules/protocols/service/impl/InsFeeOrderNewServiceImpl.java

@@ -1,7 +1,10 @@
 package com.ydtech.modules.protocols.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.model.dto.MyCollectInAdvanceDto;
+import com.ydtech.modules.admin.model.dto.MyCollectInAdvanceQueryDto;
 import com.ydtech.modules.protocols.dao.InsFeeOrderNewMapper;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
@@ -102,4 +105,34 @@ public class InsFeeOrderNewServiceImpl extends ServiceImpl<InsFeeOrderNewMapper,
     public List<InsFeeOrderNew> getSumWillAmountNew(HashMap<String, Object> params) {
         return baseMapper.getSumWillAmountNew(params);
     }
+
+    @Override
+    public Page<MyCollectInAdvanceDto> findMyCollectInAdvanceWillAmountByUserId(Page<MyCollectInAdvanceDto> page, MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto) {
+        return baseMapper.findMyCollectInAdvanceWillAmountByUserId(page,myCollectInAdvanceQueryDto);
+    }
+
+    @Override
+    public Page<MyCollectInAdvanceDto> findMyCollectInAdvanceSumByUserId(Page<MyCollectInAdvanceDto> page, MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto) {
+        return baseMapper.findMyCollectInAdvanceSumByUserId(page,myCollectInAdvanceQueryDto);
+    }
+
+    @Override
+    public Long findMyCollectInAdvanceWillAmountByUserIdCount(MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto) {
+        return baseMapper.findMyCollectInAdvanceWillAmountByUserIdCount(myCollectInAdvanceQueryDto);
+    }
+
+    @Override
+    public Long findMyCollectInAdvanceSumByUserIdCount(MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto) {
+        return baseMapper.findMyCollectInAdvanceSumByUserIdCount(myCollectInAdvanceQueryDto);
+    }
+
+    @Override
+    public BigDecimal findSumWillAmount(MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto) {
+        return baseMapper.findSumWillAmount(myCollectInAdvanceQueryDto);
+    }
+
+    @Override
+    public BigDecimal findSumAmount(MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto) {
+        return baseMapper.findSumAmount(myCollectInAdvanceQueryDto);
+    }
 }

+ 22 - 0
src/main/resources/mapper/modules/admin/SysAmountAuditingHistoryMapper.xml

@@ -0,0 +1,22 @@
+<?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.ydtech.modules.admin.dao.SysAmountAuditingHistoryMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.po.SysAmountAuditingHistory">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="amountAudingId" column="amount_auding_id" jdbcType="VARCHAR"/>
+            <result property="amount" column="amount" jdbcType="DECIMAL"/>
+            <result property="userId" column="user_id" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="auditingStatus" column="auditing_status" jdbcType="VARCHAR"/>
+            <result property="amountStatus" column="amount_status" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,amount_auding_id,amount,
+        user_id,create_time,auditing_status,
+        amount_status
+    </sql>
+</mapper>

+ 48 - 0
src/main/resources/mapper/modules/admin/SysAmountAuditingMapper.xml

@@ -187,5 +187,53 @@
         amount_status
     </select>
 
+    <select id="queryAmountPage" resultType="com.ydtech.modules.admin.model.dto.MyCollectInAdvanceDto">
+        select
+        a.id as "id",
+        a.bank_number as "bankNumber",
+        a.amount as "ransactionAmount",
+        a.create_time as "createTime"
+        from sys_amount_auditing a
+        left join sys_user_bank_card bc on bc.bank_number =a.bank_number
+        left join sys_user su2 on su2.id = a.auditing_user_id
+        <where>
+            <if test="myIncomeAndExpensesQueryDto.userId !=null  and myIncomeAndExpensesQueryDto.userId != ''">
+                and a.user_id=#{myIncomeAndExpensesQueryDto.userId}
+            </if>
+            <if test="myIncomeAndExpensesQueryDto.startDate !=null and myIncomeAndExpensesQueryDto.startDate != '' and myIncomeAndExpensesQueryDto.endDate !=null and myIncomeAndExpensesQueryDto.endDate != '' ">
+                AND   a.create_time  BETWEEN #{myIncomeAndExpensesQueryDto.startDate} AND #{myIncomeAndExpensesQueryDto.endDate}
+            </if>
+            <if test="myIncomeAndExpensesQueryDto.incomeAndExpensesType !=null and myIncomeAndExpensesQueryDto.incomeAndExpensesType != '' ">
+                and a.auditing_status = #{myIncomeAndExpensesQueryDto.incomeAndExpensesType}
+            </if>
+        </where>
+    </select>
 
+    <select id="findSumAmount" resultType="java.math.BigDecimal">
+        select
+         sum(a.amount) as "sumAmount"
+        from sys_amount_auditing a
+        <where>
+            <if test="myIncomeAndExpensesQueryDto.userId !=null  and myIncomeAndExpensesQueryDto.userId != ''">
+                and a.user_id=#{myIncomeAndExpensesQueryDto.userId}
+            </if>
+            <if test="myIncomeAndExpensesQueryDto.startDate !=null and myIncomeAndExpensesQueryDto.startDate != '' and myIncomeAndExpensesQueryDto.endDate !=null and myIncomeAndExpensesQueryDto.endDate != '' ">
+                AND   a.create_time  BETWEEN #{myIncomeAndExpensesQueryDto.startDate} AND #{myIncomeAndExpensesQueryDto.endDate}
+            </if>
+            <if test="myIncomeAndExpensesQueryDto.incomeAndExpensesType !=null and myIncomeAndExpensesQueryDto.incomeAndExpensesType != '' ">
+                and a.auditing_status = #{myIncomeAndExpensesQueryDto.incomeAndExpensesType}
+            </if>
+        </where>
+    </select>
+
+    <select id="findSumAmountByUserId" resultType="java.math.BigDecimal">
+        select
+           sum(a.amount) as "sumAmount"
+        from sys_amount_auditing a
+        <where>
+            <if test="userId !=null  and userId != ''">
+                and a.user_id=#{userId}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 90 - 1
src/main/resources/mapper/modules/admin/SysUserAccountHistoryMapper.xml

@@ -15,13 +15,14 @@
             <result property="toBankCard" column="to_bank_card" jdbcType="VARCHAR"/>
             <result property="userId" column="user_id" jdbcType="VARCHAR"/>
             <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+           <result property="businessSegmentsType" column="business_eegments_type" jdbcType="VARCHAR"/>
     </resultMap>
 
     <sql id="Base_Column_List">
         id,amount,surplus_amount,
         documentary,property,suborder,
         from_bank_card,to_bank_card,user_id,
-        create_time
+        create_time,business_eegments_type
     </sql>
 
     <select id="revenueReportYear" resultType="com.ydtech.modules.admin.model.dto.RevenueReportDto">
@@ -99,4 +100,92 @@
         GROUP BY
             a.reportDate
     </select>
+
+    <select id="findMyIncomeAndExpensesAmountByUserId"
+            resultType="com.ydtech.modules.admin.model.dto.MyCollectInAdvanceDto">
+        SELECT
+            his.id as id,
+            ins.id as "subOrderNo",
+            ins.signing_time as "signingTime",
+            o.licenseno as "licenseno",
+            his.amount as "amount",
+            business_eegments_type  as "businessSegmentsType",
+            his.documentary as "incomeAndExpensesType",
+            his.property  as  "transactionType"
+        FROM
+            sys_user_account_history  his
+            left join ins_area_company ins  on  his.suborder=ins.id
+            left join  ins_orders o ON o.orderno=ins.orderno
+        WHERE
+            his.property !=1  and  his.property !=2
+          <if test="myIncomeAndExpensesQueryDto.incomeAndExpensesType !=null and myIncomeAndExpensesQueryDto.incomeAndExpensesType != '' ">
+            AND  his.documentary=#{ myIncomeAndExpensesQueryDto.incomeAndExpensesType}
+          </if>
+          and his.user_id = #{myIncomeAndExpensesQueryDto.userId}
+          <if test="myIncomeAndExpensesQueryDto.startDate !=null and myIncomeAndExpensesQueryDto.startDate != '' and myIncomeAndExpensesQueryDto.endDate !=null and myIncomeAndExpensesQueryDto.endDate != '' ">
+                AND   his.create_time  BETWEEN #{myIncomeAndExpensesQueryDto.startDate} AND #{myIncomeAndExpensesQueryDto.endDate}
+          </if>
+          <if test="myIncomeAndExpensesQueryDto.transactionType !=null and myIncomeAndExpensesQueryDto.transactionType != '' ">
+            and his.property = #{myIncomeAndExpensesQueryDto.transactionType}
+          </if>
+          <if test="myIncomeAndExpensesQueryDto.businessSegmentsType !=null and myIncomeAndExpensesQueryDto.businessSegmentsType != '' ">
+            and  his.business_eegments_type =#{myIncomeAndExpensesQueryDto.businessSegmentsType}
+         </if>
+        order by his.create_time desc
+    </select>
+
+    <select id="findMyIncomeAndExpensesAmountByUserIdCount" resultType="java.lang.Long">
+        SELECT
+          count(0)
+        FROM
+            sys_user_account_history  his
+        WHERE
+        his.property !=1  and  his.property !=2
+        <if test="myIncomeAndExpensesQueryDto.incomeAndExpensesType !=null and myIncomeAndExpensesQueryDto.incomeAndExpensesType != '' ">
+            AND  his.documentary=#{ myIncomeAndExpensesQueryDto.incomeAndExpensesType}
+        </if>
+           and his.user_id = #{myIncomeAndExpensesQueryDto.userId}
+        <if test="myIncomeAndExpensesQueryDto.startDate !=null and myIncomeAndExpensesQueryDto.startDate != '' and myIncomeAndExpensesQueryDto.endDate !=null and myIncomeAndExpensesQueryDto.endDate != '' ">
+            AND   his.create_time  BETWEEN #{myIncomeAndExpensesQueryDto.startDate} AND #{myIncomeAndExpensesQueryDto.endDate}
+        </if>
+        <if test="myIncomeAndExpensesQueryDto.transactionType !=null and myIncomeAndExpensesQueryDto.transactionType != '' ">
+            and his.property = #{myIncomeAndExpensesQueryDto.transactionType}
+        </if>
+        <if test="myIncomeAndExpensesQueryDto.businessSegmentsType !=null and myIncomeAndExpensesQueryDto.businessSegmentsType != '' ">
+            and  his.business_eegments_type =#{myIncomeAndExpensesQueryDto.businessSegmentsType}
+        </if>
+    </select>
+
+    <select id="findSumAmount" resultType="java.math.BigDecimal">
+        SELECT
+            sum(his.amount) as "sumAmount"
+        FROM
+        sys_user_account_history  his
+        WHERE
+          his.property !=1  and  his.property !=2
+        <if test="myIncomeAndExpensesQueryDto.incomeAndExpensesType !=null and myIncomeAndExpensesQueryDto.incomeAndExpensesType != '' ">
+            AND  his.documentary=#{ myIncomeAndExpensesQueryDto.incomeAndExpensesType}
+        </if>
+        and his.user_id = #{myIncomeAndExpensesQueryDto.userId}
+        <if test="myIncomeAndExpensesQueryDto.startDate !=null and myIncomeAndExpensesQueryDto.startDate != '' and myIncomeAndExpensesQueryDto.endDate !=null and myIncomeAndExpensesQueryDto.endDate != '' ">
+            AND   his.create_time  BETWEEN #{myIncomeAndExpensesQueryDto.startDate} AND #{myIncomeAndExpensesQueryDto.endDate}
+        </if>
+        <if test="myIncomeAndExpensesQueryDto.transactionType !=null and myIncomeAndExpensesQueryDto.transactionType != '' ">
+            and his.property = #{myIncomeAndExpensesQueryDto.transactionType}
+        </if>
+        <if test="myIncomeAndExpensesQueryDto.businessSegmentsType !=null and myIncomeAndExpensesQueryDto.businessSegmentsType != '' ">
+            and  his.business_eegments_type =#{myIncomeAndExpensesQueryDto.businessSegmentsType}
+        </if>
+    </select>
+    <select id="findSumAmountByUserId" resultType="java.math.BigDecimal">
+        SELECT
+        sum(his.amount) as "sumAmount"
+        FROM
+        sys_user_account_history  his
+        WHERE
+        his.documentary =#{types}
+        and  his.property !=1  and  his.property !=2
+        and his.user_id = #{userId}
+    </select>
+
 </mapper>

+ 5 - 1
src/main/resources/mapper/modules/admin/SysUserAccountMapper.xml

@@ -84,7 +84,11 @@
             a.documentary_amount_payment as "documentaryAmountPayment",
             a.promotion_amount_withdrawal as "promotionAmountWithdrawal",
             a.promotion_amount_account as "promotionAmountAccount",
-            a.promotion_amount_payment as "promotionAmountPayment"
+            a.promotion_amount_payment as "promotionAmountPayment",
+            a.sum_amount  as "sumAmount",
+            a.sum_amount_withdrawal  as "sumAmountWithdrawal",
+            a.sum_amount_account  as  "sumAmountAccount",
+            a.sum_amount_payment  as  "sumAmountPayment"
         from  sys_user_account a
         <where>
             <if test="userId != null and userId != ''">

+ 271 - 0
src/main/resources/mapper/modules/ins/InsFeeOrderNewMapper.xml

@@ -541,4 +541,275 @@
             </if>
         </where>
     </select>
+
+
+    <select id="findMyCollectInAdvanceWillAmountByUserId"
+            resultType="com.ydtech.modules.admin.model.dto.MyCollectInAdvanceDto">
+        SELECT
+        fee.subOrderNo,
+        fee.signingTime,
+        fee.licenseno,
+        fee.amount,
+        "1" as businessSegmentsType,
+        "2" as  transactionType
+        FROM
+        (
+        SELECT
+        a.ins_order_no as "subOrderNo",
+        iac.signing_time as "signingTime",
+        o.licenseno as "licenseno",
+        a.first_detail_premiums as "amount"
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        left join  ins_orders o ON o.orderno=iac.orderno
+        left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
+        <where>
+            iff.auditstatus=0
+            and iac.orderstatus = '3'
+            <if test="myCollectInAdvanceQueryDto.userId!=null and  myCollectInAdvanceQueryDto.userId!= ''">
+                AND a.first_level_user_id = #{myCollectInAdvanceQueryDto.userId}
+            </if>
+            <if test="myCollectInAdvanceQueryDto.startDate!= null  and  myCollectInAdvanceQueryDto.startDate  !='' and myCollectInAdvanceQueryDto.endDate!= null  and  myCollectInAdvanceQueryDto.endDate  !=''">
+                AND iac.signing_time  BETWEEN #{myCollectInAdvanceQueryDto.startDate} AND #{myCollectInAdvanceQueryDto.endDate}
+            </if>
+        </where>
+        UNION
+        SELECT
+        a.ins_order_no as "subOrderNo",
+        iac.signing_time as "signingTime",
+        o.licenseno as "licenseno",
+        a.third_detail_premiums as "amount"
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        left join  ins_orders o ON o.orderno=iac.orderno
+        left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
+        <where>
+            iff.auditstatus=0
+            and iac.orderstatus = '3'
+            <if test="myCollectInAdvanceQueryDto.userId!=null and  myCollectInAdvanceQueryDto.userId!= ''">
+                AND a.three_level_user_id = #{myCollectInAdvanceQueryDto.userId}
+            </if>
+            <if test="myCollectInAdvanceQueryDto.startDate!= null  and  myCollectInAdvanceQueryDto.startDate  !='' and myCollectInAdvanceQueryDto.endDate!= null  and  myCollectInAdvanceQueryDto.endDate  !=''">
+                AND iac.signing_time  BETWEEN #{myCollectInAdvanceQueryDto.startDate} AND #{myCollectInAdvanceQueryDto.endDate}
+            </if>
+        </where>
+        UNION
+        SELECT
+        a.ins_order_no as "subOrderNo",
+        iac.signing_time as "signingTime",
+        o.licenseno as "licenseno",
+        a.second_detail_premiums as "amount"
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        left join  ins_orders o ON o.orderno=iac.orderno
+        left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
+        <where>
+            iff.auditstatus=0
+            and iac.orderstatus = '3'
+            <if test="myCollectInAdvanceQueryDto.userId!=null and  myCollectInAdvanceQueryDto.userId!= ''">
+                AND a.two_level_user_id = #{userId}
+            </if>
+            <if test="myCollectInAdvanceQueryDto.startDate!= null  and  myCollectInAdvanceQueryDto.startDate  !='' and myCollectInAdvanceQueryDto.endDate!= null  and  myCollectInAdvanceQueryDto.endDate  !=''">
+                AND iac.signing_time  BETWEEN #{myCollectInAdvanceQueryDto.startDate} AND #{myCollectInAdvanceQueryDto.endDate}
+            </if>
+        </where>
+        ) AS fee
+    </select>
+    <select id="findMyCollectInAdvanceSumByUserId"
+            resultType="com.ydtech.modules.admin.model.dto.MyCollectInAdvanceDto">
+        select
+        a.ins_order_no as "subOrderNo",
+        ins.signing_time as "signingTime",
+        o.licenseno as "licenseno",
+        (ifnull(a.jq_export_supervise_costs_premiums,0)+ifnull(a.sy_export_supervise_costs_premiums,0)+ifnull(a.no_export_supervise_costs_premiums,0))
+         +
+        (ifnull(a.jq_export_other_costs_premiums,0)+ifnull(a.sy_export_other_costs_premiums,0)+ifnull(a.no_export_other_costs_premiums,0))
+        as "amount",
+        "1" as businessSegmentsType,
+        "1" as  transactionType
+        from
+        ins_fee_order_new a  left join ins_area_company ins  on  a.ins_order_no=ins.id
+        left join  ins_orders o ON o.orderno=ins.orderno
+        left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
+        <where>
+            ins.orderstatus ='3'
+            and  a.user_id = #{myCollectInAdvanceQueryDto.userId}
+            and  iff.auditstatus=0
+            <if test="myCollectInAdvanceQueryDto.startDate!= null  and  myCollectInAdvanceQueryDto.startDate  !='' and myCollectInAdvanceQueryDto.endDate!= null  and  myCollectInAdvanceQueryDto.endDate  !=''">
+                AND ins.signing_time  BETWEEN #{myCollectInAdvanceQueryDto.startDate} AND #{myCollectInAdvanceQueryDto.endDate}
+            </if>
+        </where>
+    </select>
+    <select id="findMyCollectInAdvanceWillAmountByUserIdCount" resultType="java.lang.Long">
+        SELECT
+          count(0)
+        FROM
+        (
+        SELECT
+        a.ins_order_no as "subOrderNo",
+        iac.signing_time as "signingTime",
+        o.licenseno as "licenseno",
+        a.first_detail_premiums as "amount"
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        left join  ins_orders o ON o.orderno=iac.orderno
+        left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
+        <where>
+            iff.auditstatus=0
+            and iac.orderstatus = '3'
+            <if test="myCollectInAdvanceQueryDto.userId!=null and  myCollectInAdvanceQueryDto.userId!= ''">
+                AND a.first_level_user_id = #{myCollectInAdvanceQueryDto.userId}
+            </if>
+            <if test="myCollectInAdvanceQueryDto.startDate!= null  and  myCollectInAdvanceQueryDto.startDate  !='' and myCollectInAdvanceQueryDto.endDate!= null  and  myCollectInAdvanceQueryDto.endDate  !=''">
+                AND iac.signing_time  BETWEEN #{myCollectInAdvanceQueryDto.startDate} AND #{myCollectInAdvanceQueryDto.endDate}
+            </if>
+        </where>
+        UNION
+        SELECT
+        a.ins_order_no as "subOrderNo",
+        iac.signing_time as "signingTime",
+        o.licenseno as "licenseno",
+        a.third_detail_premiums as "amount"
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        left join  ins_orders o ON o.orderno=iac.orderno
+        left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
+        <where>
+            iff.auditstatus=0
+            and iac.orderstatus = '3'
+            <if test="myCollectInAdvanceQueryDto.userId!=null and  myCollectInAdvanceQueryDto.userId!= ''">
+                AND a.three_level_user_id = #{myCollectInAdvanceQueryDto.userId}
+            </if>
+            <if test="myCollectInAdvanceQueryDto.startDate!= null  and  myCollectInAdvanceQueryDto.startDate  !='' and myCollectInAdvanceQueryDto.endDate!= null  and  myCollectInAdvanceQueryDto.endDate  !=''">
+                AND iac.signing_time  BETWEEN #{myCollectInAdvanceQueryDto.startDate} AND #{myCollectInAdvanceQueryDto.endDate}
+            </if>
+        </where>
+        UNION
+        SELECT
+        a.ins_order_no as "subOrderNo",
+        iac.signing_time as "signingTime",
+        o.licenseno as "licenseno",
+        a.second_detail_premiums as "amount"
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        left join  ins_orders o ON o.orderno=iac.orderno
+        left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
+        <where>
+            iff.auditstatus=0
+            and iac.orderstatus = '3'
+            <if test="myCollectInAdvanceQueryDto.userId!=null and  myCollectInAdvanceQueryDto.userId!= ''">
+                AND a.two_level_user_id = #{userId}
+            </if>
+            <if test="myCollectInAdvanceQueryDto.startDate!= null  and  myCollectInAdvanceQueryDto.startDate  !='' and myCollectInAdvanceQueryDto.endDate!= null  and  myCollectInAdvanceQueryDto.endDate  !=''">
+                AND iac.signing_time  BETWEEN #{myCollectInAdvanceQueryDto.startDate} AND #{myCollectInAdvanceQueryDto.endDate}
+            </if>
+        </where>
+        ) AS fee
+    </select>
+    <select id="findMyCollectInAdvanceSumByUserIdCount" resultType="java.lang.Long">
+        select
+          count(0)
+        from
+        ins_fee_order_new a  left join ins_area_company ins  on  a.ins_order_no=ins.id
+        left join  ins_orders o ON o.orderno=ins.orderno
+        left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
+        <where>
+            ins.orderstatus ='3'
+            and  a.user_id = #{myCollectInAdvanceQueryDto.userId}
+            and  iff.auditstatus=0
+            <if test="myCollectInAdvanceQueryDto.startDate!= null  and  myCollectInAdvanceQueryDto.startDate  !='' and myCollectInAdvanceQueryDto.endDate!= null  and  myCollectInAdvanceQueryDto.endDate  !=''">
+                AND ins.signing_time  BETWEEN #{myCollectInAdvanceQueryDto.startDate} AND #{myCollectInAdvanceQueryDto.endDate}
+            </if>
+        </where>
+    </select>
+    <select id="findSumWillAmount" resultType="java.math.BigDecimal">
+        SELECT
+          sum(fee.amount)
+        FROM
+        (
+        SELECT
+        a.ins_order_no as "subOrderNo",
+        iac.signing_time as "signingTime",
+        o.licenseno as "licenseno",
+        a.first_detail_premiums as "amount"
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
+        <where>
+            iff.auditstatus=0
+            and iac.orderstatus = '3'
+            <if test="myCollectInAdvanceQueryDto.userId!=null and  myCollectInAdvanceQueryDto.userId!= ''">
+                AND a.first_level_user_id = #{myCollectInAdvanceQueryDto.userId}
+            </if>
+            <if test="myCollectInAdvanceQueryDto.startDate!= null  and  myCollectInAdvanceQueryDto.startDate  !='' and myCollectInAdvanceQueryDto.endDate!= null  and  myCollectInAdvanceQueryDto.endDate  !=''">
+                AND iac.signing_time  BETWEEN #{myCollectInAdvanceQueryDto.startDate} AND #{myCollectInAdvanceQueryDto.endDate}
+            </if>
+        </where>
+        UNION
+        SELECT
+        a.third_detail_premiums as "amount"
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
+        <where>
+            iff.auditstatus=0
+            and iac.orderstatus = '3'
+            <if test="myCollectInAdvanceQueryDto.userId!=null and  myCollectInAdvanceQueryDto.userId!= ''">
+                AND a.three_level_user_id = #{myCollectInAdvanceQueryDto.userId}
+            </if>
+            <if test="myCollectInAdvanceQueryDto.startDate!= null  and  myCollectInAdvanceQueryDto.startDate  !='' and myCollectInAdvanceQueryDto.endDate!= null  and  myCollectInAdvanceQueryDto.endDate  !=''">
+                AND iac.signing_time  BETWEEN #{myCollectInAdvanceQueryDto.startDate} AND #{myCollectInAdvanceQueryDto.endDate}
+            </if>
+        </where>
+        UNION
+        SELECT
+        a.second_detail_premiums as "amount"
+        FROM
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
+        left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
+        <where>
+            iff.auditstatus=0
+            and iac.orderstatus = '3'
+            <if test="myCollectInAdvanceQueryDto.userId!=null and  myCollectInAdvanceQueryDto.userId!= ''">
+                AND a.two_level_user_id = #{myCollectInAdvanceQueryDto.userId}
+            </if>
+            <if test="myCollectInAdvanceQueryDto.startDate!= null  and  myCollectInAdvanceQueryDto.startDate  !='' and myCollectInAdvanceQueryDto.endDate!= null  and  myCollectInAdvanceQueryDto.endDate  !=''">
+                AND iac.signing_time  BETWEEN #{myCollectInAdvanceQueryDto.startDate} AND #{myCollectInAdvanceQueryDto.endDate}
+            </if>
+        </where>
+        ) AS fee
+
+
+    </select>
+    <select id="findSumAmount" resultType="java.math.BigDecimal">
+        select
+        sum((ifnull(a.jq_export_supervise_costs_premiums,0)+ifnull(a.sy_export_supervise_costs_premiums,0)+ifnull(a.no_export_supervise_costs_premiums,0))
+        +
+        (ifnull(a.jq_export_other_costs_premiums,0)+ifnull(a.sy_export_other_costs_premiums,0)+ifnull(a.no_export_other_costs_premiums,0))
+        )
+         as "amount"
+        from
+        ins_fee_order_new a  left join ins_area_company ins  on  a.ins_order_no=ins.id
+        left join  ins_orders o ON o.orderno=ins.orderno
+        left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
+        <where>
+            ins.orderstatus ='3'
+            and  a.user_id = #{myCollectInAdvanceQueryDto.userId}
+            and  iff.auditstatus=0
+            <if test="myCollectInAdvanceQueryDto.startDate!= null  and  myCollectInAdvanceQueryDto.startDate  !='' and myCollectInAdvanceQueryDto.endDate!= null  and myCollectInAdvanceQueryDto.endDate  !=''">
+                AND ins.signing_time  BETWEEN #{myCollectInAdvanceQueryDto.startDate} AND #{myCollectInAdvanceQueryDto.endDate}
+            </if>
+        </where>
+    </select>
+
+
 </mapper>