Explorar o código

Merge remote-tracking branch 'origin/test' into test

Qchen %!s(int64=2) %!d(string=hai) anos
pai
achega
e23ee9d7a5
Modificáronse 29 ficheiros con 1088 adicións e 130 borrados
  1. 1 2
      src/main/java/com/ydtech/config/properties/BohaiApiConfigurationProperties.java
  2. 63 0
      src/main/java/com/ydtech/modules/admin/controller/SysDeptAccountController.java
  3. 59 0
      src/main/java/com/ydtech/modules/admin/controller/SysUserAccountHistoryController.java
  4. 67 0
      src/main/java/com/ydtech/modules/admin/controller/SysUserBankController.java
  5. 10 0
      src/main/java/com/ydtech/modules/admin/dao/SysDeptAccountDao.java
  6. 42 0
      src/main/java/com/ydtech/modules/admin/model/SysDeptAccountEntity.java
  7. 4 0
      src/main/java/com/ydtech/modules/admin/model/po/SysUserAccount.java
  8. 3 0
      src/main/java/com/ydtech/modules/admin/model/po/SysUserAccountHistory.java
  9. 6 1
      src/main/java/com/ydtech/modules/admin/model/po/SysUserBankCard.java
  10. 45 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysDeptAccountVO.java
  11. 64 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysUserAccountHistoryVo.java
  12. 51 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysUserBankCardVO.java
  13. 21 0
      src/main/java/com/ydtech/modules/admin/service/SysDeptAccountService.java
  14. 11 0
      src/main/java/com/ydtech/modules/admin/service/SysUserAccountHistoryService.java
  15. 2 0
      src/main/java/com/ydtech/modules/admin/service/SysUserAccountService.java
  16. 13 0
      src/main/java/com/ydtech/modules/admin/service/SysUserBankCardService.java
  17. 91 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountServiceImpl.java
  18. 62 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountHistoryServiceImpl.java
  19. 156 6
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java
  20. 57 5
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserBankCardServiceImpl.java
  21. 60 2
      src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java
  22. 1 0
      src/main/java/com/ydtech/modules/fnc/controller/CarSettleController.java
  23. 138 69
      src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java
  24. 2 4
      src/main/java/com/ydtech/modules/order/components/FileComponents.java
  25. 25 25
      src/main/java/com/ydtech/modules/order/components/bohai/BoHaiRequestApiComponent.java
  26. 0 2
      src/main/java/com/ydtech/modules/order/controller/BoHaiOrderApiController.java
  27. 2 2
      src/main/java/com/ydtech/modules/order/entity/api/bohai/BoHaiEncrypted.java
  28. 12 12
      src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java
  29. 20 0
      src/main/resources/mapper/modules/admin/SysDeptAccountDao.xml

+ 1 - 2
src/main/java/com/ydtech/config/properties/BohaiApiConfigurationProperties.java

@@ -25,7 +25,6 @@ public class BohaiApiConfigurationProperties {
     // 合作方代码,由渤海分配
     private String insurerCode;
 
-    // 配置code
-    private String sysSourceCode;
+
 
 }

+ 63 - 0
src/main/java/com/ydtech/modules/admin/controller/SysDeptAccountController.java

@@ -0,0 +1,63 @@
+package com.ydtech.modules.admin.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysDeptAccountEntity;
+import com.ydtech.modules.admin.model.po.SysUserBankCard;
+import com.ydtech.modules.admin.model.vo.SysDeptAccountVO;
+import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
+import com.ydtech.modules.admin.service.SysDeptAccountService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.protocol.utils.AssertionUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+@Api(tags = "机构账户表")
+@RequestMapping("/sysDeptAccount")
+@RestController
+public class SysDeptAccountController extends BaseController {
+
+    @Autowired
+    private SysDeptAccountService sysDeptAccountService;
+
+    @PostMapping("/queryPage")
+    @ApiOperation(value = "机构账户表")
+    public HttpResult<BasePageResult<SysDeptAccountEntity>> queryPageOrder(@RequestBody @Valid SysDeptAccountVO sysDeptAccountVO ) {
+        BasePageResult<SysDeptAccountEntity> result = sysDeptAccountService.queryByVo(sysDeptAccountVO);
+        return HttpResult.ok("success", result);
+    }
+
+
+    @PostMapping("/insert")
+    @ApiOperation("提交")
+    public HttpResult<Object> submit(@RequestBody SysDeptAccountVO sysDeptAccountVO) {
+        boolean b = sysDeptAccountService.inert(sysDeptAccountVO);
+        AssertionUtils.isSucceed(b, "新增失败");
+        return HttpResult.ok("新增成功");
+    }
+
+
+    @DeleteMapping(value = "/{id}")
+    @ApiOperation("删除")
+    public HttpResult<Object> deleteDept(@PathVariable Long id) {
+        sysDeptAccountService.deleteSysUserBank(id);
+        return HttpResult.ok("删除成功");
+    }
+    @PutMapping("update")
+    @ApiOperation("修改")
+    public HttpResult<Object> modification(@RequestBody SysDeptAccountVO sysDeptAccountVO) {
+        sysDeptAccountService.uodate(sysDeptAccountVO);
+        return HttpResult.ok("修改成功");
+    }
+
+
+
+
+
+
+}

+ 59 - 0
src/main/java/com/ydtech/modules/admin/controller/SysUserAccountHistoryController.java

@@ -0,0 +1,59 @@
+package com.ydtech.modules.admin.controller;
+
+import com.ydtech.core.page.HttpResult;
+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.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.protocol.utils.AssertionUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+@Api(tags = "用户账户表日志记录")
+@RequestMapping("/sysUserAccountHistory")
+@RestController
+public class SysUserAccountHistoryController extends BaseController {
+
+    @Autowired
+    private SysUserAccountHistoryService  sysUserAccountHistoryService;
+
+    @PostMapping("/queryPage")
+    @ApiOperation(value = "用户账户表日志记录分页")
+    public HttpResult<BasePageResult<SysUserAccountHistory>> queryPageOrder(@RequestBody @Valid SysUserAccountHistoryVo sysUserAccountHistoryVo ) {
+        BasePageResult<SysUserAccountHistory> result = sysUserAccountHistoryService.queryByVo(sysUserAccountHistoryVo);
+        return HttpResult.ok("success", result);
+    }
+
+
+
+    @PostMapping("/insert")
+    @ApiOperation("提交")
+    public HttpResult<Object> submit(@RequestBody SysUserAccountHistoryVo sysUserAccountHistoryVo) {
+        boolean b = sysUserAccountHistoryService.inert(sysUserAccountHistoryVo);
+        AssertionUtils.isSucceed(b, "新增失败");
+        return HttpResult.ok("新增成功");
+    }
+
+
+    @DeleteMapping(value = "/{id}")
+    @ApiOperation("删除")
+    public HttpResult<Object> deleteDept(@PathVariable Long id) {
+        sysUserAccountHistoryService.deleteSysUserHistory(id);
+        return HttpResult.ok("删除成功");
+    }
+    @PutMapping("update")
+    @ApiOperation("修改")
+    public HttpResult<Object> modification(@RequestBody SysUserAccountHistoryVo sysUserAccountHistoryVo) {
+        sysUserAccountHistoryService.uodate(sysUserAccountHistoryVo);
+        return HttpResult.ok("修改成功");
+    }
+}
+
+

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

@@ -0,0 +1,67 @@
+package com.ydtech.modules.admin.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.po.SysUserBankCard;
+import com.ydtech.modules.admin.model.vo.SysPositionVo;
+import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
+import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
+import com.ydtech.modules.admin.model.vo.SysUserVO;
+import com.ydtech.modules.admin.service.SysUserBankCardService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.esm.model.vo.EsmInsVehicleInspectionCodeVo;
+import com.ydtech.modules.fnc.model.FncSubject;
+import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.entity.vo.OrderQueryVo;
+import com.ydtech.modules.protocol.utils.AssertionUtils;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+import java.util.HashMap;
+
+@Api(tags = "银行卡号")
+@RequestMapping("/userBank")
+@RestController
+public class SysUserBankController extends BaseController {
+
+    @Autowired
+    private SysUserBankCardService bankCardService;
+
+
+
+
+    @PostMapping("/queryPage")
+    @ApiOperation(value = "银行卡号分页")
+    public HttpResult<BasePageResult<SysUserBankCard>> queryPageOrder(@RequestBody @Valid SysUserBankCardVO sysUserBankCardVO ) {
+            BasePageResult<SysUserBankCard> result = bankCardService.queryByVo(sysUserBankCardVO);
+        return HttpResult.ok("success", result);
+    }
+
+    @PostMapping("/insert")
+    @ApiOperation("提交")
+    public HttpResult<Object> submit(@RequestBody SysUserBankCardVO sysUserBankCardVO) {
+        boolean b = bankCardService.inert(sysUserBankCardVO);
+        AssertionUtils.isSucceed(b, "新增失败");
+        return HttpResult.ok("新增成功");
+    }
+
+
+    @DeleteMapping(value = "/{id}")
+    @ApiOperation("删除")
+    public HttpResult<Object> deleteDept(@PathVariable Long id) {
+        bankCardService.deleteSysUserBank(id);
+        return HttpResult.ok("删除成功");
+    }
+    @PutMapping("update")
+    @ApiOperation("修改")
+    public HttpResult<Object> modification(@RequestBody SysUserBankCardVO sysUserBankCardVO) {
+        bankCardService.uodate(sysUserBankCardVO);
+        return HttpResult.ok("修改成功");
+    }
+
+
+}

+ 10 - 0
src/main/java/com/ydtech/modules/admin/dao/SysDeptAccountDao.java

@@ -0,0 +1,10 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.SysDept;
+import com.ydtech.modules.admin.model.SysDeptAccountEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SysDeptAccountDao extends BaseMapper<SysDeptAccountEntity> {
+}

+ 42 - 0
src/main/java/com/ydtech/modules/admin/model/SysDeptAccountEntity.java

@@ -0,0 +1,42 @@
+package com.ydtech.modules.admin.model;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@TableName(value = "sys_dept_account")
+@Data
+@ApiModel(value = "机构管理")
+public class SysDeptAccountEntity implements Serializable {
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "dept_id")
+    private String deptId;
+
+    @TableField(value = "handling_fee")
+    private BigDecimal handlingFee;
+
+    @TableField(value = "documentary")
+    private BigDecimal documentary;
+
+    @TableField(value = "promotion")
+    private BigDecimal promotion;
+
+
+    @TableField(value = "create_time")
+    private Date createTime;
+
+
+
+
+}

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

@@ -48,4 +48,8 @@ public class SysUserAccount implements Serializable {
 
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
+    @TableField(exist = false)
+    private  String  documentaryStatus;
+    @TableField(exist = false)
+    private String  suborderId;
 }

+ 3 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysUserAccountHistory.java

@@ -78,4 +78,7 @@ public class SysUserAccountHistory implements Serializable {
 
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
+
+    @TableField(exist = false)
+    private BigDecimal   remainingAmount;
 }

+ 6 - 1
src/main/java/com/ydtech/modules/admin/model/po/SysUserBankCard.java

@@ -1,9 +1,13 @@
 package com.ydtech.modules.admin.model.po;
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
+import org.apache.ibatis.annotations.Insert;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -42,7 +46,8 @@ public class SysUserBankCard implements Serializable {
     /**
      * 创建时间
      */
-    @TableField(value = "create_time")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @TableField(value = "create_time",fill = FieldFill.INSERT_UPDATE)
     private Date createTime;
 
     @TableField(exist = false)

+ 45 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysDeptAccountVO.java

@@ -0,0 +1,45 @@
+package com.ydtech.modules.admin.model.vo;
+
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel("查询Vo")
+public class SysDeptAccountVO {
+
+
+    @ApiModelProperty(value = "deptId")
+    private String deptId;
+
+    @ApiModelProperty(value = "手续费佣金")
+    private BigDecimal handlingFee;
+
+    @ApiModelProperty(value = "非跟单佣金")
+    private BigDecimal documentary;
+
+    @ApiModelProperty(value = "推广佣金")
+    private BigDecimal promotion;
+
+
+    @ApiModelProperty(value = "推广佣金")
+    @JsonFormat( pattern = "yyyy-MM-dd")
+    private Date createTime;
+
+    @ApiModelProperty(value = "每页页数")
+    @Min(value = 20, message = "页数最小为20")
+    @Max(value = 100, message = "页数最大为100")
+    private int pageSize;
+
+    @ApiModelProperty(value = "页数")
+    @Min(value = 1, message = "页数最小为1")
+    private int pageNum;
+}

+ 64 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserAccountHistoryVo.java

@@ -0,0 +1,64 @@
+package com.ydtech.modules.admin.model.vo;
+
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.poi.hpsf.Decimal;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel("查询Vo")
+public class SysUserAccountHistoryVo {
+
+    @ApiModelProperty("id")
+    private Long id;
+
+    @ApiModelProperty("金额")
+    private BigDecimal amount;
+
+    @ApiModelProperty("剩余金额")
+    private BigDecimal surplusAmount;
+
+    @ApiModelProperty("提现 / 收入 1 提现 2 收入")
+    private Integer  documentary;
+
+
+    @ApiModelProperty("金钱属性 1 手续费 2 非跟单 3 推广")
+    private Integer  property;
+
+
+    @ApiModelProperty("来源订单")
+    private String  suborder;
+
+    @ApiModelProperty("转出银行卡")
+    private String  fromBankCard;
+
+    @ApiModelProperty("转入银行卡")
+    private String  toBankCard;
+
+    @ApiModelProperty("提交人")
+    private String   userId;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @TableField(value = "create_time",fill = FieldFill.INSERT_UPDATE)
+    @ApiModelProperty("提交时间")
+    private Date createTime;
+
+
+    @ApiModelProperty(value = "每页页数")
+    @Min(value = 20, message = "页数最小为20")
+    @Max(value = 100, message = "页数最大为100")
+    private int pageSize;
+
+    @ApiModelProperty(value = "页数")
+    @Min(value = 1, message = "页数最小为1")
+    private int pageNum;
+}

+ 51 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserBankCardVO.java

@@ -0,0 +1,51 @@
+package com.ydtech.modules.admin.model.vo;
+
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.util.ObjectUtils;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotEmpty;
+import java.time.LocalDate;
+import java.util.Date;
+
+@Data
+@ApiModel("查询Vo")
+public class SysUserBankCardVO {
+
+    @ApiModelProperty("id")
+    private Long id;
+
+    @ApiModelProperty(value = "银行卡号")
+    private String bankNumber;
+
+    @ApiModelProperty(value = "开户行")
+    private String bankAccount;
+
+    @ApiModelProperty(value = "userId")
+    private String userId;
+
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @TableField(value = "create_time",fill = FieldFill.INSERT_UPDATE)
+    private Date createTime;
+
+
+    @ApiModelProperty(value = "每页页数")
+    @Min(value = 20, message = "页数最小为20")
+    @Max(value = 100, message = "页数最大为100")
+    private int pageSize;
+
+    @ApiModelProperty(value = "页数")
+    @Min(value = 1, message = "页数最小为1")
+    private int pageNum;
+
+
+
+}

+ 21 - 0
src/main/java/com/ydtech/modules/admin/service/SysDeptAccountService.java

@@ -0,0 +1,21 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysDept;
+import com.ydtech.modules.admin.model.SysDeptAccountEntity;
+import com.ydtech.modules.admin.model.vo.SysDeptAccountVO;
+import com.ydtech.modules.order.entity.BasePageResult;
+
+public interface SysDeptAccountService extends IService<SysDeptAccountEntity> {
+    BasePageResult<SysDeptAccountEntity> queryByVo(SysDeptAccountVO sysDeptAccountVO);
+
+    boolean inert(SysDeptAccountVO sysDeptAccountVO);
+
+    void deleteSysUserBank(Long id);
+
+    void uodate(SysDeptAccountVO sysDeptAccountVO);
+
+    void addOrUpdate(SysDeptAccountEntity sysDeptAccountEntity);
+
+
+}

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

@@ -2,6 +2,8 @@ package com.ydtech.modules.admin.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.admin.model.po.SysUserAccountHistory;
+import com.ydtech.modules.admin.model.vo.SysUserAccountHistoryVo;
+import com.ydtech.modules.order.entity.BasePageResult;
 
 /**
 * @author Administrator
@@ -10,4 +12,13 @@ import com.ydtech.modules.admin.model.po.SysUserAccountHistory;
 */
 public interface SysUserAccountHistoryService extends IService<SysUserAccountHistory> {
 
+    BasePageResult<SysUserAccountHistory> queryByVo(SysUserAccountHistoryVo sysUserAccountHistoryVo);
+
+    boolean inert(SysUserAccountHistoryVo sysUserAccountHistoryVo);
+
+    void deleteSysUserHistory(Long id);
+
+    void uodate(SysUserAccountHistoryVo sysUserAccountHistoryVo);
+
+    void updayteByUserAccount(SysUserAccountHistory sysUserAccountHistory);
 }

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

@@ -10,4 +10,6 @@ import com.ydtech.modules.admin.model.po.SysUserAccount;
 */
 public interface SysUserAccountService extends IService<SysUserAccount> {
 
+    void addOrUpdate(SysUserAccount sysUserAccount);
+
 }

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

@@ -2,6 +2,10 @@ package com.ydtech.modules.admin.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.admin.model.po.SysUserBankCard;
+import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
+import com.ydtech.modules.order.entity.BasePageResult;
+
+import java.util.HashMap;
 
 /**
 * @author Administrator
@@ -10,4 +14,13 @@ import com.ydtech.modules.admin.model.po.SysUserBankCard;
 */
 public interface SysUserBankCardService extends IService<SysUserBankCard> {
 
+
+    BasePageResult<SysUserBankCard> queryByVo(SysUserBankCardVO sysUserBankCardVO);
+
+    boolean inert(SysUserBankCardVO sysUserBankCardVO);
+
+    void deleteSysUserBank(Long id);
+
+    void uodate(SysUserBankCardVO sysUserBankCardVO);
+
 }

+ 91 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptAccountServiceImpl.java

@@ -0,0 +1,91 @@
+package com.ydtech.modules.admin.service.impl;
+
+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.SysDeptAccountDao;
+import com.ydtech.modules.admin.model.SysDeptAccountEntity;
+import com.ydtech.modules.admin.model.vo.SysDeptAccountVO;
+import com.ydtech.modules.admin.service.SysDeptAccountService;
+import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.protocol.utils.AssertionUtils;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+
+@Service
+public class SysDeptAccountServiceImpl extends ServiceImpl<SysDeptAccountDao, SysDeptAccountEntity>  implements SysDeptAccountService {
+
+
+    @Override
+    public BasePageResult<SysDeptAccountEntity> queryByVo(SysDeptAccountVO sysDeptAccountVO) {
+
+        Page<SysDeptAccountEntity> page = new Page<>(sysDeptAccountVO.getPageNum(), sysDeptAccountVO.getPageSize());
+        QueryWrapper<SysDeptAccountEntity> wrapper = new QueryWrapper<>();
+
+        Page<SysDeptAccountEntity> sysUserAccountHistoryPage  = page(page, wrapper);
+        return new BasePageResult<>(sysDeptAccountVO.getPageNum(), page.getSize(), sysUserAccountHistoryPage.getTotal(), page.getPages(),
+                sysUserAccountHistoryPage.getRecords());
+    }
+
+    @Override
+    @Transactional
+    public boolean inert(SysDeptAccountVO sysDeptAccountVO) {
+        SysDeptAccountEntity sysDeptAccountEntity = new SysDeptAccountEntity();
+        BeanUtils.copyProperties(sysDeptAccountVO, sysDeptAccountEntity);
+        return super.save(sysDeptAccountEntity);
+
+    }
+
+    @Override
+    public void deleteSysUserBank(Long id) {
+        boolean b = removeById(id);
+        AssertionUtils.isSucceed(b, "删除失败");
+    }
+
+    @Override
+    @Transactional
+    public void uodate(SysDeptAccountVO sysDeptAccountVO) {
+        SysDeptAccountEntity sysDeptAccountEntity = new SysDeptAccountEntity();
+        BeanUtils.copyProperties(sysDeptAccountVO, sysDeptAccountEntity);
+        super.updateById(sysDeptAccountEntity);
+    }
+
+    @Override
+    public void addOrUpdate(SysDeptAccountEntity sysDeptAccountEntity) {
+        //          如果用户id有值则累加   没有则 新增
+        BigDecimal handlingFee =BigDecimal.ZERO;
+        BigDecimal documentary = BigDecimal.ZERO;
+        BigDecimal promotion = BigDecimal.ZERO;
+
+        String deptId = sysDeptAccountEntity.getDeptId();
+        SysDeptAccountEntity sysUserAccountEntityById = super.getById(deptId);
+        if(ObjectUtils.isNotEmpty(sysUserAccountEntityById)){
+            if(sysUserAccountEntityById.getHandlingFee()==null){
+                sysUserAccountEntityById.setHandlingFee(handlingFee);
+            }
+            if (sysUserAccountEntityById.getDocumentary()==null){
+                sysUserAccountEntityById.setDocumentary(documentary);
+            }
+            if(sysUserAccountEntityById.getPromotion()==null){
+                sysUserAccountEntityById.setPromotion(promotion);
+            }
+            sysUserAccountEntityById.setHandlingFee(sysDeptAccountEntity.getHandlingFee().add(sysUserAccountEntityById.getHandlingFee()));
+            sysUserAccountEntityById.setDocumentary(sysDeptAccountEntity.getDocumentary().add(sysUserAccountEntityById.getDocumentary()));
+            sysUserAccountEntityById.setPromotion(sysDeptAccountEntity.getPromotion().add(sysUserAccountEntityById.getPromotion()));
+
+            baseMapper.updateById(sysUserAccountEntityById);
+        }else {
+            SysDeptAccountEntity newAccount = new SysDeptAccountEntity();
+            newAccount.setDeptId(deptId);
+            newAccount.setDocumentary(sysDeptAccountEntity.getDocumentary());
+            newAccount.setPromotion(sysDeptAccountEntity.getPromotion());
+            newAccount.setHandlingFee(sysDeptAccountEntity.getHandlingFee());
+            baseMapper.insert(newAccount);
+        }
+
+    }
+}

+ 62 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountHistoryServiceImpl.java

@@ -1,10 +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.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;
 
 /**
  * @author Administrator
@@ -13,6 +27,54 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class SysUserAccountHistoryServiceImpl extends ServiceImpl<SysUserAccountHistoryMapper, SysUserAccountHistory> implements SysUserAccountHistoryService {
+    @Autowired
+    private SysUserBankCardService  sysUserBankCardService;
+
+    @Override
+    public BasePageResult<SysUserAccountHistory> queryByVo(SysUserAccountHistoryVo sysUserAccountHistoryVo) {
+
+        Page<SysUserAccountHistory> page = new Page<>(sysUserAccountHistoryVo.getPageNum(), sysUserAccountHistoryVo.getPageSize());
+        QueryWrapper<SysUserAccountHistory> wrapper = new QueryWrapper<>();
+
+        Page<SysUserAccountHistory> sysUserAccountHistoryPage  = page(page, wrapper);
+        return new BasePageResult<>(sysUserAccountHistoryVo.getPageNum(), page.getSize(), sysUserAccountHistoryPage.getTotal(), page.getPages(),
+                sysUserAccountHistoryPage.getRecords());
+    }
+
+    @Override
+    @Transactional
+    public boolean inert(SysUserAccountHistoryVo sysUserAccountHistoryVo) {
+
+        SysUserAccountHistory sysUserAccountHistory = new SysUserAccountHistory();
+        BeanUtils.copyProperties(sysUserAccountHistoryVo, sysUserAccountHistory);
+        return super.save(sysUserAccountHistory);
+
+    }
+
+    @Override
+    @Transactional
+    public void deleteSysUserHistory(Long id) {
+        boolean b = removeById(id);
+        AssertionUtils.isSucceed(b, "删除失败");
+    }
+
+    @Override
+    @Transactional
+    public void uodate(SysUserAccountHistoryVo sysUserAccountHistoryVo) {
+        SysUserAccountHistory sysUserAccountHistory = new SysUserAccountHistory();
+        BeanUtils.copyProperties(sysUserAccountHistoryVo, sysUserAccountHistory);
+        super.updateById(sysUserAccountHistory);
+    }
+
+    @Override
+    public void updayteByUserAccount(SysUserAccountHistory sysUserAccountHistory) {
+//        sysUserAccountHistory.setSurplusAmount( sysUserAccountHistory.getAmount().add(sysUserAccountHistory.getRemainingAmount()));
+
+
+        super.save(sysUserAccountHistory);
+
+    }
+
 
 }
 

+ 156 - 6
src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java

@@ -3,18 +3,168 @@ package com.ydtech.modules.admin.service.impl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.modules.admin.dao.SysUserAccountMapper;
 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.service.SysUserAccountHistoryService;
 import com.ydtech.modules.admin.service.SysUserAccountService;
+import com.ydtech.modules.admin.service.SysUserService;
+import com.ydtech.modules.esm.model.EsmUserReferrer;
+import com.ydtech.modules.esm.service.EsmUserReferrerService;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 
 /**
-* @author Administrator
-* @description 针对表【sys_user_account(用户账户表)】的数据库操作Service实现
-* @createDate 2024-03-05 11:52:30
-*/
+ * @author Administrator
+ * @description 针对表【sys_user_account(用户账户表)】的数据库操作Service实现
+ * @createDate 2024-03-05 11:52:30
+ */
 @Service
-public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper, SysUserAccount>
-    implements SysUserAccountService {
+public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper, SysUserAccount> implements SysUserAccountService {
+
+    @Autowired
+    private SysUserAccountHistoryService sysUserAccountHistoryService;
+    @Autowired
+    private EsmUserReferrerService esmUserReferrerService;
+
+    @Override
+    @Transactional
+    public void addOrUpdate(SysUserAccount sysUserAccount) {
+        SysUserAccountHistory sysUserAccountHistory = new SysUserAccountHistory();
+
+//      如果用户id有值则累加   没有则 新增
+        BigDecimal handlingFee = BigDecimal.ZERO;
+//      用户历史记录表金额
+        BigDecimal total = BigDecimal.ZERO;
+        BigDecimal remainingAmount = BigDecimal.ZERO;
+
+
+        String userId = sysUserAccount.getUserId();
+        SysUserAccount sysUserAccountEntity = super.getById(userId);
+        SysUserAccount newAccount = new SysUserAccount();
+        if (sysUserAccount.getHandlingFee() == null) {
+            sysUserAccount.setHandlingFee(handlingFee);
+        } else {
+            total = total.add(sysUserAccount.getHandlingFee());
+
+        }
+        if (sysUserAccount.getDocumentary() == null) {
+            sysUserAccount.setDocumentary(handlingFee);
+        } else {
+            total = total.add(sysUserAccount.getDocumentary());
+
+        }
+        if (sysUserAccount.getPromotion() == null) {
+            sysUserAccount.setPromotion(handlingFee);
+        } else {
+            total = total.add(sysUserAccount.getPromotion());
+
+        }
+
+
+        if (ObjectUtils.isNotEmpty(sysUserAccountEntity)) {
+            if (sysUserAccountEntity.getHandlingFee() == null) {
+                sysUserAccountEntity.setHandlingFee(handlingFee);
+            } else {
+                remainingAmount = remainingAmount.add(sysUserAccountEntity.getHandlingFee());
+            }
+            if (sysUserAccountEntity.getDocumentary() == null) {
+                sysUserAccountEntity.setDocumentary(handlingFee);
+            } else {
+                remainingAmount = remainingAmount.add(sysUserAccountEntity.getDocumentary());
+
+            }
+            if (sysUserAccountEntity.getPromotion() == null) {
+                sysUserAccountEntity.setPromotion(handlingFee);
+            } else {
+                remainingAmount = remainingAmount.add(sysUserAccountEntity.getPromotion());
+
+            }
+            sysUserAccountEntity.setHandlingFee(sysUserAccount.getHandlingFee().add(sysUserAccountEntity.getHandlingFee()));
+            sysUserAccountEntity.setDocumentary(sysUserAccount.getDocumentary().add(sysUserAccountEntity.getDocumentary()));
+            sysUserAccountEntity.setPromotion(sysUserAccount.getPromotion().add(sysUserAccountEntity.getPromotion()));
+            if (StringUtils.isNotEmpty(sysUserAccount.getDocumentaryStatus())) {
+                sysUserAccountEntity.setDocumentaryStatus(sysUserAccount.getDocumentaryStatus());
+            }
+            baseMapper.updateById(sysUserAccountEntity);
+        } else {
+            newAccount.setUserId(userId);
+            newAccount.setDocumentary(sysUserAccount.getDocumentary());
+            newAccount.setPromotion(sysUserAccount.getPromotion());
+            newAccount.setHandlingFee(sysUserAccount.getHandlingFee());
+            if (StringUtils.isNotEmpty(sysUserAccount.getDocumentaryStatus())) {
+                newAccount.setDocumentaryStatus(sysUserAccount.getDocumentaryStatus());
+            }
+            baseMapper.insert(newAccount);
+        }
+
+        if (StringUtils.isNotEmpty(sysUserAccount.getDocumentaryStatus())) {
+//          判断是否是一级二级三级
+            this.judgeLevel(userId, sysUserAccountEntity, newAccount);
+        }
+
+
+    }
+
+    private void judgeLevel(String userId, SysUserAccount sysUserAccountEntity, SysUserAccount newAccount) {
+        if (!ObjectUtils.isNotEmpty(sysUserAccountEntity)) {
+            sysUserAccountEntity = newAccount;
+        }
+        EsmUserReferrer esmUserReferrerServiceById = esmUserReferrerService.getById(userId);
+        if (ObjectUtils.isNotEmpty(esmUserReferrerServiceById)) {
+            String referrerId = esmUserReferrerServiceById.getReferrerId();
+//              如果相等则为一级
+            if (StringUtils.isNotEmpty(referrerId) && referrerId.equals(userId)) {
+                if (ObjectUtils.isNotEmpty(sysUserAccountEntity)) {
+                    for (int i = 1; i <= 3; i++) {
+                        SysUserAccountHistory sysUserAccountHistory = new SysUserAccountHistory();
+                        sysUserAccountHistory.setUserId(userId);
+                        sysUserAccountHistory.setDocumentary(Integer.valueOf(sysUserAccountEntity.getDocumentaryStatus()));
+                        sysUserAccountHistory.setProperty(i);
+                        sysUserAccountHistory.setSuborder(sysUserAccountEntity.getSuborderId());
+                        SysUserAccount byId = super.getById(userId);
+                        if (i == 1) {
+                            sysUserAccountHistory.setAmount(sysUserAccountEntity.getHandlingFee());
+//                            查询当前用户金额
+                            if (ObjectUtils.isNotEmpty(byId)) {
+                                sysUserAccountHistory.setSurplusAmount(byId.getHandlingFee() == null ? BigDecimal.ZERO.add(sysUserAccountEntity.getHandlingFee()) : byId.getHandlingFee().add(sysUserAccountEntity.getHandlingFee()));
+                            }
+                        } else if (i == 2) {
+                            sysUserAccountHistory.setAmount(sysUserAccountEntity.getDocumentary());   //非跟单佣金
+                            if (ObjectUtils.isNotEmpty(byId)) {
+                                sysUserAccountHistory.setSurplusAmount(byId.getDocumentary() == null ? BigDecimal.ZERO.add(sysUserAccountEntity.getDocumentary()) : byId.getDocumentary().add(sysUserAccountEntity.getDocumentary()));
+                            }
 
+                        } else {
+                            sysUserAccountHistory.setAmount(sysUserAccountEntity.getPromotion());  // 佣金
+                            if (ObjectUtils.isNotEmpty(byId)) {
+                                sysUserAccountHistory.setSurplusAmount(byId.getPromotion() == null ? BigDecimal.ZERO.add(sysUserAccountEntity.getPromotion()) : byId.getPromotion().add(sysUserAccountEntity.getPromotion()));
+                            }
+                        }
+                        if(sysUserAccountHistory.getAmount().compareTo(BigDecimal.ZERO ) ==1){
+                            sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
+                        }
+                    }
+                }
+            } else {
+//                其余都是推广金
+                SysUserAccountHistory sysUserAccountHistory = new SysUserAccountHistory();
+                sysUserAccountHistory.setAmount(sysUserAccountEntity.getPromotion());
+                sysUserAccountHistory.setProperty(3);
+                sysUserAccountHistory.setSuborder(sysUserAccountEntity.getSuborderId());
+                sysUserAccountHistory.setUserId(userId);
+                sysUserAccountHistory.setDocumentary(Integer.valueOf(sysUserAccountEntity.getDocumentaryStatus()));
+                SysUserAccount byId = super.getById(userId);
+                sysUserAccountHistory.setSurplusAmount(byId.getPromotion() == null ? BigDecimal.ZERO.add(sysUserAccountEntity.getPromotion()) : byId.getPromotion().add(sysUserAccountEntity.getPromotion()));
+                sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
+            }
+        }
+    }
 }
 
 

+ 57 - 5
src/main/java/com/ydtech/modules/admin/service/impl/SysUserBankCardServiceImpl.java

@@ -1,20 +1,72 @@
 package com.ydtech.modules.admin.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.dao.SysUserBankCardMapper;
 import com.ydtech.modules.admin.model.po.SysUserBankCard;
+import com.ydtech.modules.admin.model.vo.SysUserBankCardVO;
 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.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.HashMap;
 
 /**
-* @author Administrator
-* @description 针对表【sys_user_bank_card(银行卡号)】的数据库操作Service实现
-* @createDate 2024-03-05 11:52:30
-*/
+ * @author Administrator
+ * @description 针对表【sys_user_bank_card(银行卡号)】的数据库操作Service实现
+ * @createDate 2024-03-05 11:52:30
+ */
 @Service
 public class SysUserBankCardServiceImpl extends ServiceImpl<SysUserBankCardMapper, SysUserBankCard>
-    implements SysUserBankCardService {
+        implements SysUserBankCardService {
+
+
+
+    @Override
+    public BasePageResult<SysUserBankCard> queryByVo(SysUserBankCardVO sysUserBankCardVO) {
+        Page<SysUserBankCard> page = new Page<>(sysUserBankCardVO.getPageNum(), sysUserBankCardVO.getPageSize());
+
+
+        LambdaQueryWrapper<SysUserBankCard> wrapper = new LambdaQueryWrapper<>();
+        if(StringUtils.isNotEmpty(sysUserBankCardVO.getBankNumber())){
+            wrapper.eq(SysUserBankCard::getBankNumber, ObjectUtils.isNotEmpty(sysUserBankCardVO.getBankNumber()));
+
+        }
+        if(StringUtils.isNotEmpty(sysUserBankCardVO.getBankAccount())){
+            wrapper.eq(SysUserBankCard::getBankAccount, sysUserBankCardVO.getBankAccount());
+        }
+        Page<SysUserBankCard> insOrdersPage = page(page, wrapper);
+        return new BasePageResult<>(sysUserBankCardVO.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
+                insOrdersPage.getRecords());
+    }
+
+    @Override
+    @Transactional
+    public boolean inert(SysUserBankCardVO sysUserBankCardVO) {
+        SysUserBankCard sysUserBankCard = new SysUserBankCard();
+        BeanUtils.copyProperties(sysUserBankCardVO, sysUserBankCard);
+        return super.save(sysUserBankCard);
+    }
+
+    @Override
+    public void deleteSysUserBank(Long id) {
+        boolean b = removeById(id);
+        AssertionUtils.isSucceed(b, "删除失败");
+    }
 
+    @Override
+    public void uodate(SysUserBankCardVO sysUserBankCardVO) {
+        SysUserBankCard sysUserBankCard = new SysUserBankCard();
+        BeanUtils.copyProperties(sysUserBankCardVO, sysUserBankCard);
+        super.updateById(sysUserBankCard);
+    }
 }
 
 

+ 60 - 2
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java

@@ -5,10 +5,14 @@ import com.ydtech.constants.enums.dict.insurance.EnergyType;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.model.SysDept;
 import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.po.SysUserAccount;
 import com.ydtech.modules.admin.service.SysDeptService;
+import com.ydtech.modules.admin.service.SysUserAccountService;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.esm.model.EsmRetail;
+import com.ydtech.modules.esm.model.EsmUserReferrer;
 import com.ydtech.modules.esm.service.EsmRetailService;
+import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.modules.fee.dto.vo.RuleAttrMappingVo;
 import com.ydtech.modules.fee.service.FeeRuleSchemeNewService;
 import com.ydtech.modules.order.entity.InsAreaCompany;
@@ -19,11 +23,15 @@ import com.ydtech.modules.protocol.service.*;
 import com.ydtech.modules.protocols.entity.po.*;
 import com.ydtech.modules.protocols.entity.vo.AgreementProductCosts;
 import com.ydtech.modules.protocols.service.*;
+import com.ydtech.utils.StringUtils;
 import com.ydtech.utils.idgen.IdGenerate;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicBoolean;
 
@@ -59,6 +67,11 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 
     @Resource
     private InsFeeOrderNewService insFeeOrderNewService;
+    @Autowired
+    private EsmUserReferrerService esmUserReferrerService;
+
+    @Autowired
+    private SysUserAccountService  sysUserAccountService;
 
 
     @Override
@@ -362,9 +375,54 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                 }
             }
         }
-
+//      判断分销等级   通过userId  去查询  esm_user_referrer  如果 referrer_id  与 userId  相同时 一级分销   不同且还有上级为三级分销   其余  则二级分销
+        String userId = insFeeOrderNew.getUserId();
+        EsmUserReferrer esmUserReferrerServiceById = esmUserReferrerService.getById(userId);
+        if (ObjectUtils.isNotEmpty(esmUserReferrerServiceById)) {
+            String referrerId = esmUserReferrerServiceById.getReferrerId();
+//              如果相等则为一级
+            if (StringUtils.isNotEmpty(referrerId) && referrerId.equals(userId)) {
+                BigDecimal jqPremium = insFeeOrderNew.getJqPremium();  // 交强
+                BigDecimal bigdecimalFomat = new BigDecimal("100");
+                BigDecimal firstDetailProportion = insFeeOrderNew.getFirstDetailProportion();   // 一级分销比例
+                BigDecimal divide = firstDetailProportion.divide(bigdecimalFomat, 2, RoundingMode.HALF_UP);
+                BigDecimal jqAmount = jqPremium.multiply(divide);    //交强分销费用
+
+                BigDecimal jaLevelAmount1 = insFeeOrderNew.getJqDeptProportionLevel1() != null ? jqAmount.multiply(insFeeOrderNew.getJqDeptProportionLevel1().divide(bigdecimalFomat, 2, RoundingMode.HALF_UP)) : BigDecimal.ZERO;
+                BigDecimal jaLevelAmount2 = insFeeOrderNew.getJqDeptProportionLevel2() != null ? jqAmount.multiply(insFeeOrderNew.getJqDeptProportionLevel2().divide(bigdecimalFomat, 2, RoundingMode.HALF_UP)) : BigDecimal.ZERO;
+                BigDecimal jaLevelAmount3 = insFeeOrderNew.getJqDeptProportionLevel3() != null ? jqAmount.multiply(insFeeOrderNew.getJqDeptProportionLevel3().divide(bigdecimalFomat, 2, RoundingMode.HALF_UP)) : BigDecimal.ZERO;
+                BigDecimal jaLevelAmount4 = insFeeOrderNew.getJqDeptProportionLevel4() != null ? jqAmount.multiply(insFeeOrderNew.getJqDeptProportionLevel4().divide(bigdecimalFomat, 2, RoundingMode.HALF_UP)) : BigDecimal.ZERO;
+                BigDecimal jaLevelAmount5 = insFeeOrderNew.getJqDeptProportionLevel4() != null ? jqAmount.multiply(insFeeOrderNew.getJqDeptProportionLevel5().divide(bigdecimalFomat, 2, RoundingMode.HALF_UP)) : BigDecimal.ZERO;
+
+                insFeeOrderNew.setJqDeptPremiumsLevel1(insFeeOrderNew.getJqDeptPremiumsLevel1().add(jaLevelAmount1));//    交强一级机构管理费
+                insFeeOrderNew.setJqDeptPremiumsLevel2(insFeeOrderNew.getJqDeptPremiumsLevel2().add(jaLevelAmount2));//    交强二级机构管理费
+                insFeeOrderNew.setJqDeptPremiumsLevel3(insFeeOrderNew.getJqDeptPremiumsLevel3().add(jaLevelAmount3));//    交强三级机构管理费
+                insFeeOrderNew.setJqDeptPremiumsLevel4(insFeeOrderNew.getJqDeptPremiumsLevel4().add(jaLevelAmount4));//    交强四级机构管理费
+                insFeeOrderNew.setJqDeptPremiumsLevel5(insFeeOrderNew.getJqDeptPremiumsLevel5().add(jaLevelAmount5));//    交强五级机构管理费
+
+            } else {
+                EsmUserReferrer secondReferrer = esmUserReferrerService.getById(referrerId);
+                if (ObjectUtils.isNotEmpty(secondReferrer)) {
+                    //                二级分销
+                    BigDecimal secondDetailPremiums = insFeeOrderNew.getSecondDetailPremiums();
+                    BigDecimal thirdDetailPremiums = insFeeOrderNew.getThirdDetailPremiums();
+                    if (StringUtils.isNotEmpty(secondReferrer.getReferrerId()) && secondReferrer.getReferrerId().equals(referrerId)) {
+//                     二级分销  则  添加到 sys_user_account  表的 promotion  推广金 字段里
+                        SysUserAccount sysUserAccount = new SysUserAccount();
+                        sysUserAccount.setUserId(referrerId);
+                        sysUserAccount.setPromotion(secondDetailPremiums);
+                        sysUserAccountService.addOrUpdate(sysUserAccount);
+                    } else {
+//                     最后为三级
+                        SysUserAccount sysUserAccount = new SysUserAccount();
+                        sysUserAccount.setUserId(secondReferrer.getReferrerId());
+                        sysUserAccount.setPromotion(thirdDetailPremiums);
+                        sysUserAccountService.addOrUpdate(sysUserAccount);
+                    }
+                }
+            }
+        }
         insFeeOrderNewService.saveOrUpdate(insFeeOrderNew);
-
     }
 
 

+ 1 - 0
src/main/java/com/ydtech/modules/fnc/controller/CarSettleController.java

@@ -78,6 +78,7 @@ public class CarSettleController extends BaseController {
     @PostMapping("/auditFee")
     @ApiOperation(value = "[3]费用审核")
     public HttpResult auditFee(@RequestBody @Valid AuditOrderFeeVo auditOrderFeeVo) {
+//        订单号
         String orderNo = auditOrderFeeVo.getOrderNo();
         //查询改订单是已审核
         List<InsFeeAudit> feeList =insFeeAuditService.query().eq("orderno",orderNo).list();

+ 138 - 69
src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java

@@ -1,10 +1,15 @@
 package com.ydtech.modules.fnc.service.impl;
 
 import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.util.NumberUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ydtech.modules.admin.model.SysDept;
+import com.ydtech.modules.admin.model.SysDeptAccountEntity;
 import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.po.SysUserAccount;
+import com.ydtech.modules.admin.service.SysDeptAccountService;
 import com.ydtech.modules.admin.service.SysDeptService;
+import com.ydtech.modules.admin.service.SysUserAccountService;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.modules.fnc.dao.FncInsAreaCompanyMapper;
@@ -30,6 +35,8 @@ import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
 import com.ydtech.utils.DateUtil;
 import com.ydtech.utils.StringUtils;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.math.NumberUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -68,8 +75,13 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
     @Autowired
     private InsFeeOrderNewService insFeeOrderNewService;
 
+    @Autowired
+    private SysUserAccountService sysUserAccountService;
+
     @Autowired
     private SysDeptService sysDeptService;
+    @Autowired
+    private SysDeptAccountService sysDeptAccountService;
 
 
     public InsFeeAuditServiceImpl(FncInsAreaCompanyMapper insAreaCompanyMapper, InsOrdersMapper insOrdersMapper, InsFeeOrderService insFeeOrderService,InsDeptFeeService insDeptFeeService,EsmUserReferrerService esmUserReferrerService,SysUserService sysUserService,InsCommissionService insCommissionService,InsCompanyFeeService insCompanyFeeService,InsPlyIncomeMapper insPlyIncomeMapper) {
@@ -110,7 +122,8 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
 
         List<SysDept> teamList = sysDeptService.findTeamList(deptId);
         teamList.forEach(sysDept -> {
-            if(sysDept.getComlevel().equals("1")){
+
+            if(StringUtils.isNotEmpty(sysDept.getComlevel()) &&  sysDept.getComlevel().equals("1")){
                 BigDecimal jqDeptPremiumsLevel1 = insFeeOrderNew.getJqDeptPremiumsLevel1();
             }
         });
@@ -126,6 +139,47 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         saveRetail(order,insFeeOrder,insAreaCompany);
         //个代费用生成
         saveInsCompanyFee(order,insFeeOrder,insAreaCompany);
+
+
+//      生成  用户账户表  数据
+        if(StringUtils.isNotEmpty(order.getUserid())){
+//            用戶賬戶表
+            SysUserAccount sysUserAccount = new SysUserAccount();
+//            部門金額表
+            SysDeptAccountEntity sysDeptAccountEntity = new SysDeptAccountEntity();
+            sysUserAccount.setUserId(order.getUserid());
+            if (ObjectUtils.isNotEmpty(insFeeOrderNew) ) {
+                BigDecimal jqPremium = insFeeOrderNew.getJqSuperviseCostsPremiums(); //交强险保费
+                BigDecimal syPremium = insFeeOrderNew.getSySuperviseCostsPremiums(); //商业险保费
+                BigDecimal noPremium = insFeeOrderNew.getNoSuperviseCostsPremiums(); //非车险保费
+
+                if(jqPremium==null){
+                    jqPremium= BigDecimal.ZERO;
+                }
+                if(syPremium==null){
+                    syPremium= BigDecimal.ZERO;
+                }
+                if(noPremium==null){
+                    noPremium= BigDecimal.ZERO;
+                }
+//              用戶
+                sysUserAccount.setHandlingFee(jqPremium);
+                sysUserAccount.setDocumentary(syPremium);
+                sysUserAccount.setPromotion(noPremium);
+                sysUserAccount.setDocumentaryStatus("2");  // 收入
+                sysUserAccount.setSuborderId(orderNo);  // 订单Id
+//              部门金额
+                sysDeptAccountEntity.setHandlingFee(jqPremium);
+                sysDeptAccountEntity.setDocumentary(syPremium);
+                sysDeptAccountEntity.setPromotion(noPremium);
+                sysDeptAccountEntity.setDeptId(order.getDeptid());
+                sysUserAccountService.addOrUpdate(sysUserAccount);
+                sysDeptAccountService.addOrUpdate(sysDeptAccountEntity);
+
+
+            }
+        }
+
     }
 
     /**
@@ -149,24 +203,28 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
             insPlyIncome.setPolicyno(plyDto.getJqpolicyno());
             insPlyIncome.setRiskcode("交强");
             insPlyIncome.setTaxamount(plyDto.getTaxamount());
-            insPlyIncome.setNoTaxPremium(insFeeOrder.getJqNoTaxPremium());
-            insPlyIncome.setCommissionFeerate(insFeeOrder.getJqSuperviseCostsProportion());
-            insPlyIncome.setOtherFeerate(insFeeOrder.getJqCostsProportion().subtract(insFeeOrder.getJqSuperviseCostsProportion()));
-            insPlyIncome.setCommissionFeevalue(insFeeOrder.getJqSuperviseCostsPremiums());
-            insPlyIncome.setOtherFeevalue(insFeeOrder.getJqCostsPremiums().subtract(insFeeOrder.getJqSuperviseCostsPremiums()));
-            insPlyIncome.setAllFeeValue(insFeeOrder.getJqCostsPremiums());
+            if(!ObjectUtils.isEmpty(insFeeOrder)){
+                insPlyIncome.setNoTaxPremium(insFeeOrder.getJqNoTaxPremium());
+                insPlyIncome.setCommissionFeerate(insFeeOrder.getJqSuperviseCostsProportion());
+                insPlyIncome.setOtherFeerate(insFeeOrder.getJqCostsProportion().subtract(insFeeOrder.getJqSuperviseCostsProportion()));
+                insPlyIncome.setCommissionFeevalue(insFeeOrder.getJqSuperviseCostsPremiums());
+                insPlyIncome.setOtherFeevalue(insFeeOrder.getJqCostsPremiums().subtract(insFeeOrder.getJqSuperviseCostsPremiums()));
+                insPlyIncome.setAllFeeValue(insFeeOrder.getJqCostsPremiums());
+            }
             insPlyIncomeMapper.insert(insPlyIncome);
         }
         if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
             insPlyIncome.setPolicyno(plyDto.getSypolicyno());
             insPlyIncome.setRiskcode("商业");
             insPlyIncome.setTaxamount(new BigDecimal(0));
-            insPlyIncome.setNoTaxPremium(insFeeOrder.getSyNoTaxPremium());
-            insPlyIncome.setCommissionFeerate(insFeeOrder.getSySuperviseCostsProportion());
-            insPlyIncome.setOtherFeerate(insFeeOrder.getSyCostsProportion().subtract(insFeeOrder.getSySuperviseCostsProportion()));
-            insPlyIncome.setCommissionFeevalue(insFeeOrder.getSySuperviseCostsPremiums());
-            insPlyIncome.setOtherFeevalue(insFeeOrder.getSyCostsPremiums().subtract(insFeeOrder.getSySuperviseCostsPremiums()));
-            insPlyIncome.setAllFeeValue(insFeeOrder.getSyCostsPremiums());
+            if(!ObjectUtils.isEmpty(insFeeOrder)){
+                insPlyIncome.setNoTaxPremium(insFeeOrder.getSyNoTaxPremium());
+                insPlyIncome.setCommissionFeerate(insFeeOrder.getSySuperviseCostsProportion());
+                insPlyIncome.setOtherFeerate(insFeeOrder.getSyCostsProportion().subtract(insFeeOrder.getSySuperviseCostsProportion()));
+                insPlyIncome.setCommissionFeevalue(insFeeOrder.getSySuperviseCostsPremiums());
+                insPlyIncome.setOtherFeevalue(insFeeOrder.getSyCostsPremiums().subtract(insFeeOrder.getSySuperviseCostsPremiums()));
+                insPlyIncome.setAllFeeValue(insFeeOrder.getSyCostsPremiums());
+            }
             insPlyIncomeMapper.insert(insPlyIncome);
         }
 
@@ -180,11 +238,16 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
     private void gene_deptfee( InsOrders order, InsFeeOrder insFeeOrder,InsAreaCompany plyDto) throws Exception{
         InsDeptFee deptFee = new InsDeptFee();
         deptFee.setOrderno(order.getOrderno());
-        deptFee.setQuoteno(insFeeOrder.getInsOrderNo());
+        if(!ObjectUtils.isEmpty(insFeeOrder)){
+            deptFee.setQuoteno(insFeeOrder.getInsOrderNo());
+        }
         deptFee.setAgreeid(String.valueOf(plyDto.getAgreementId()));
         deptFee.setAuditstatus("1");
         deptFee.setSettlestatus("0");
-        deptFee.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(),DateUtil.FULL_TIME_SPLIT_PATTERN));
+        if(plyDto.getInsidePayTime()!=null){
+            deptFee.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(),DateUtil.FULL_TIME_SPLIT_PATTERN));
+
+        }
         deptFee.setInscompany(plyDto.getCompanyId());
         if(StringUtils.isNotEmpty(plyDto.getJqpolicyno())){
             deptFee.setPolicyno(plyDto.getJqpolicyno());
@@ -202,30 +265,32 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
     }
 
     private void geneInsDeptFee(InsOrders order, InsFeeOrder insFeeOrder, InsDeptFee deptFee) {
-        if (insFeeOrder.getFirstDeptPremiums().doubleValue() > 0) {
-            deptFee.setComcode(order.getDeptid().substring(0, 2));  //99140302M01D01
-            deptFee.setComlevel("一级");
-            insDeptFeeService.insert(deptFee);
-        }
-        if (insFeeOrder.getSecondDeptPremiums().doubleValue() > 0) {
-            deptFee.setComcode(order.getDeptid().substring(0, 4));  //99140302M01D01
-            deptFee.setComlevel("二级");
-            insDeptFeeService.insert(deptFee);
-        }
-        if (insFeeOrder.getThirdDeptPremiums().doubleValue() > 0) {
-            deptFee.setComcode(order.getDeptid().substring(0, 6));  //99140302M01D01
-            deptFee.setComlevel("三级");
-            insDeptFeeService.insert(deptFee);
-        }
-        if (insFeeOrder.getForthDeptPremiums().doubleValue() > 0) {
-            deptFee.setComcode(order.getDeptid().substring(0, 8));  //99140302M01D01
-            deptFee.setComlevel("四级");
-            insDeptFeeService.insert(deptFee);
-        }
-        if (insFeeOrder.getFifthDeptPremiums().doubleValue() > 0) {
-            deptFee.setComcode(order.getDeptid().substring(0, 11));  //99140302M01D01
-            deptFee.setComlevel("五级");
-            insDeptFeeService.insert(deptFee);
+        if(!ObjectUtils.isEmpty(insFeeOrder)){
+            if (insFeeOrder.getFirstDeptPremiums().doubleValue() > 0) {
+                deptFee.setComcode(order.getDeptid().substring(0, 2));  //99140302M01D01
+                deptFee.setComlevel("一级");
+                insDeptFeeService.insert(deptFee);
+            }
+            if (insFeeOrder.getSecondDeptPremiums().doubleValue() > 0) {
+                deptFee.setComcode(order.getDeptid().substring(0, 4));  //99140302M01D01
+                deptFee.setComlevel("二级");
+                insDeptFeeService.insert(deptFee);
+            }
+            if (insFeeOrder.getThirdDeptPremiums().doubleValue() > 0) {
+                deptFee.setComcode(order.getDeptid().substring(0, 6));  //99140302M01D01
+                deptFee.setComlevel("三级");
+                insDeptFeeService.insert(deptFee);
+            }
+            if (insFeeOrder.getForthDeptPremiums().doubleValue() > 0) {
+                deptFee.setComcode(order.getDeptid().substring(0, 8));  //99140302M01D01
+                deptFee.setComlevel("四级");
+                insDeptFeeService.insert(deptFee);
+            }
+            if (insFeeOrder.getFifthDeptPremiums().doubleValue() > 0) {
+                deptFee.setComcode(order.getDeptid().substring(0, 11));  //99140302M01D01
+                deptFee.setComlevel("五级");
+                insDeptFeeService.insert(deptFee);
+            }
         }
     }
 
@@ -376,37 +441,41 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         insCompanyFee.setSettletype("B");
         insCompanyFee.setSettlestatus("0");
         insCompanyFee.setCreatetime(DateUtil.getDateFormat(new Date(),DateUtil.FULL_TIME_SPLIT_PATTERN));
-        insCompanyFee.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(),DateUtil.FULL_TIME_SPLIT_PATTERN));
-        BigDecimal dept_rate=insFeeOrder.getFirstDeptProportion()
-                .add(insFeeOrder.getSecondDeptProportion())
-                .add(insFeeOrder.getThirdDeptProportion())
-                .add(insFeeOrder.getForthDeptProportion())
-                .add(insFeeOrder.getFifthDeptProportion());
-        BigDecimal retail_rate=insFeeOrder.getFirstRetailProportion()
-                .add(insFeeOrder.getSecondRetailProportion())
-                .add(insFeeOrder.getThirdRetailProportion());
-        if(StringUtils.isNotEmpty(plyDto.getJqpolicyno())){
-            insCompanyFee.setPolicyno(plyDto.getJqpolicyno());
-            insCompanyFee.setRiskcode("交强");
-            //交强费用比例=交强险费用比例-五级机构管理费比例-三级分销比例
-            insCompanyFee.setFeerate(insFeeOrder.getJqCostsProportion().subtract(dept_rate).subtract(retail_rate).doubleValue());
-            insCompanyFee.setFeeamount(insFeeOrder.getJqNoTaxPremium().multiply(insFeeOrder.getJqCostsProportion().subtract(dept_rate).subtract(retail_rate)).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
-            insCompanyFee.setJqpremium(insFeeOrder.getJqNoTaxPremium().doubleValue());
-            //保存业务员费用
-            insCompanyFeeService.insert(insCompanyFee);
+        if(plyDto.getInsidePayTime()!=null){
+            insCompanyFee.setSignDate(DateUtil.formatFullTime(plyDto.getInsidePayTime(),DateUtil.FULL_TIME_SPLIT_PATTERN));
         }
-        if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
-            insCompanyFee.setPolicyno(plyDto.getSypolicyno());
-            insCompanyFee.setRiskcode("商业");
-            insCompanyFee.setFeerate(0);
-            insCompanyFee.setFeeamount(0);
-            insCompanyFee.setJqpremium(0);
-            //商业费用比例=商业险费用比例-五级机构管理费比例-三级分销比例
-            insCompanyFee.setDisrate(insFeeOrder.getSyCostsProportion().subtract(dept_rate).subtract(retail_rate).doubleValue());
-            insCompanyFee.setDisamount(insFeeOrder.getSyNoTaxPremium().multiply(insFeeOrder.getSyCostsProportion().subtract(dept_rate).subtract(retail_rate)).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
-            insCompanyFee.setSypremium(insFeeOrder.getSyNoTaxPremium().doubleValue());
-            //保存业务员费用
-            insCompanyFeeService.insert(insCompanyFee);
+        if(ObjectUtils.isNotEmpty(insFeeOrder)){
+            BigDecimal dept_rate=insFeeOrder.getFirstDeptProportion()
+                    .add(insFeeOrder.getSecondDeptProportion())
+                    .add(insFeeOrder.getThirdDeptProportion())
+                    .add(insFeeOrder.getForthDeptProportion())
+                    .add(insFeeOrder.getFifthDeptProportion());
+            BigDecimal retail_rate=insFeeOrder.getFirstRetailProportion()
+                    .add(insFeeOrder.getSecondRetailProportion())
+                    .add(insFeeOrder.getThirdRetailProportion());
+            if(StringUtils.isNotEmpty(plyDto.getJqpolicyno())){
+                insCompanyFee.setPolicyno(plyDto.getJqpolicyno());
+                insCompanyFee.setRiskcode("交强");
+                //交强费用比例=交强险费用比例-五级机构管理费比例-三级分销比例
+                insCompanyFee.setFeerate(insFeeOrder.getJqCostsProportion().subtract(dept_rate).subtract(retail_rate).doubleValue());
+                insCompanyFee.setFeeamount(insFeeOrder.getJqNoTaxPremium().multiply(insFeeOrder.getJqCostsProportion().subtract(dept_rate).subtract(retail_rate)).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
+                insCompanyFee.setJqpremium(insFeeOrder.getJqNoTaxPremium().doubleValue());
+                //保存业务员费用
+                insCompanyFeeService.insert(insCompanyFee);
+            }
+            if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
+                insCompanyFee.setPolicyno(plyDto.getSypolicyno());
+                insCompanyFee.setRiskcode("商业");
+                insCompanyFee.setFeerate(0);
+                insCompanyFee.setFeeamount(0);
+                insCompanyFee.setJqpremium(0);
+                //商业费用比例=商业险费用比例-五级机构管理费比例-三级分销比例
+                insCompanyFee.setDisrate(insFeeOrder.getSyCostsProportion().subtract(dept_rate).subtract(retail_rate).doubleValue());
+                insCompanyFee.setDisamount(insFeeOrder.getSyNoTaxPremium().multiply(insFeeOrder.getSyCostsProportion().subtract(dept_rate).subtract(retail_rate)).divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
+                insCompanyFee.setSypremium(insFeeOrder.getSyNoTaxPremium().doubleValue());
+                //保存业务员费用
+                insCompanyFeeService.insert(insCompanyFee);
+            }
         }
 
     }

+ 2 - 4
src/main/java/com/ydtech/modules/order/components/FileComponents.java

@@ -4,9 +4,8 @@ import com.ydtech.utils.baidu.FileUtil;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.InputStream;
+import java.io.*;
+import java.net.MalformedURLException;
 import java.net.URI;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
@@ -29,5 +28,4 @@ public class FileComponents {
         return FileUtil.netUrlToFile(url, dir, fileName, uploadFilePath, apiUrl + showFileUrl);
     }
 
-
 }

+ 25 - 25
src/main/java/com/ydtech/modules/order/components/bohai/BoHaiRequestApiComponent.java

@@ -47,13 +47,13 @@ public class BoHaiRequestApiComponent {
      * @param <S>    Response 响应体
      * @return <S>
      */
-    private <Q extends BoHaiBaseRequest, S extends BoHaiBaseResponse> S post(Q q, String url, Class<S> tClass) throws Exception {
+    private <Q extends BoHaiBaseRequest, S extends BoHaiBaseResponse> S post(Q q, String url, Class<S> tClass, String sysSourceCode) throws Exception {
         HttpHeaders httpHeaders = new HttpHeaders();
         httpHeaders.setContentType(MediaType.APPLICATION_JSON);
 
         String busReqString = JSON.toJSONString(q, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
         InsuranceLog.infoLog(InsuranceEnum.BPIC.getPinyin(), "\n\t---------> URl: {} \n---------> 请求参数:{}", url, busReqString);
-        BoHaiEncrypted boHaiEncrypted = new BoHaiEncrypted(busReqString, properties);
+        BoHaiEncrypted boHaiEncrypted = new BoHaiEncrypted(busReqString, properties, sysSourceCode);
         String json = JSON.toJSONString(boHaiEncrypted, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
         // 获取请求头signature 和加密后的内容
         Map<String, String> stringStringMap = SignatureUtils.encryptAndSign(properties.getSelfPrivateKey(),
@@ -83,8 +83,8 @@ public class BoHaiRequestApiComponent {
      * @param request 生成订单号请求实体
      * @return 返回订单号响应
      */
-    public GenerateOrderNoResponse generateOrderNo(GenerateOrderNoRequest request) throws Exception {
-        return post(request, properties.getUrl(), GenerateOrderNoResponse.class);
+    public GenerateOrderNoResponse generateOrderNo(GenerateOrderNoRequest request, String sysSourceCode) throws Exception {
+        return post(request, properties.getUrl(), GenerateOrderNoResponse.class,  sysSourceCode);
     }
 
     /**
@@ -93,8 +93,8 @@ public class BoHaiRequestApiComponent {
      * @param request 车辆查询请求实体
      * @return 响应
      */
-    public VehicleTypeQueryResponse vehicleTypeQuery(VehicleTypeQueryRequest request) throws Exception {
-        return post(request, properties.getUrl(), VehicleTypeQueryResponse.class);
+    public VehicleTypeQueryResponse vehicleTypeQuery(VehicleTypeQueryRequest request, String sysSourceCode) throws Exception {
+        return post(request, properties.getUrl(), VehicleTypeQueryResponse.class,  sysSourceCode);
     }
 
     /**
@@ -103,10 +103,10 @@ public class BoHaiRequestApiComponent {
      * @param request 车辆确认 请求实体
      * @return 响应
      */
-    public VehicleConfirmationResponse vehicleConfirmation(VehicleConfirmationReqeust request) throws Exception {
-        VehicleConfirmationResponse response = post(request, properties.getUrl(), VehicleConfirmationResponse.class);
+    public VehicleConfirmationResponse vehicleConfirmation(VehicleConfirmationReqeust request, String sysSourceCode) throws Exception {
+        VehicleConfirmationResponse response = post(request, properties.getUrl(), VehicleConfirmationResponse.class, sysSourceCode);
         if (ResponseCode.R_Z00002.getCode().equals(response.getResponseCode())) {
-            response = post(request, properties.getUrl(), VehicleConfirmationResponse.class);
+            response = post(request, properties.getUrl(), VehicleConfirmationResponse.class, sysSourceCode);
         }
         if (ResponseCode.R_Z00001.getCode().equals(response.getResponseCode())) {
             return response;
@@ -120,8 +120,8 @@ public class BoHaiRequestApiComponent {
      * @param imageUploadRequest 影像请求
      * @return 响应
      */
-    public ImageUploadResponse imageUpload(ImageUploadRequest imageUploadRequest) throws Exception {
-        return post(imageUploadRequest, properties.getUrl(), ImageUploadResponse.class);
+    public ImageUploadResponse imageUpload(ImageUploadRequest imageUploadRequest, String sysSourceCode) throws Exception {
+        return post(imageUploadRequest, properties.getUrl(), ImageUploadResponse.class, sysSourceCode);
     }
 
 
@@ -131,8 +131,8 @@ public class BoHaiRequestApiComponent {
      * @param request 车辆确认 请求实体
      * @return 响应
      */
-    public NonAutomotiveProductsResponse products(NonAutomotiveProductsRequest request) throws Exception {
-        return post(request, properties.getUrl(), NonAutomotiveProductsResponse.class);
+    public NonAutomotiveProductsResponse products(NonAutomotiveProductsRequest request, String sysSourceCode) throws Exception {
+        return post(request, properties.getUrl(), NonAutomotiveProductsResponse.class, sysSourceCode);
     }
 
     /**
@@ -141,8 +141,8 @@ public class BoHaiRequestApiComponent {
      * @param request 车辆确认 请求实体
      * @return 响应
      */
-    public NonAutomotiveProductsDetailsResponse productsDetails(NonAutomotiveProductsDetailsRequest request) throws Exception {
-        return post(request, properties.getUrl(), NonAutomotiveProductsDetailsResponse.class);
+    public NonAutomotiveProductsDetailsResponse productsDetails(NonAutomotiveProductsDetailsRequest request, String sysSourceCode) throws Exception {
+        return post(request, properties.getUrl(), NonAutomotiveProductsDetailsResponse.class, sysSourceCode);
     }
 
 
@@ -152,8 +152,8 @@ public class BoHaiRequestApiComponent {
      * @param request 车辆确认 请求实体
      * @return 响应
      */
-    public QuotationResponse quotation(QuotationRequest request) throws Exception {
-        return post(request, properties.getUrl(), QuotationResponse.class);
+    public QuotationResponse quotation(QuotationRequest request, String sysSourceCode) throws Exception {
+        return post(request, properties.getUrl(), QuotationResponse.class, sysSourceCode);
     }
 
     /**
@@ -162,8 +162,8 @@ public class BoHaiRequestApiComponent {
      * @param underwritingRequest 核保 请求实体
      * @return 响应
      */
-    public UnderwritingResponse underwriting(UnderwritingRequest underwritingRequest) throws Exception {
-        return post(underwritingRequest, properties.getUrl(), UnderwritingResponse.class);
+    public UnderwritingResponse underwriting(UnderwritingRequest underwritingRequest, String sysSourceCode) throws Exception {
+        return post(underwritingRequest, properties.getUrl(), UnderwritingResponse.class, sysSourceCode);
     }
 
     /**
@@ -172,8 +172,8 @@ public class BoHaiRequestApiComponent {
      * @param paymentRequest 车辆确认 请求实体
      * @return 响应
      */
-    public PaymentResponse payment(PaymentRequest paymentRequest) throws Exception {
-        return post(paymentRequest, properties.getUrl(), PaymentResponse.class);
+    public PaymentResponse payment(PaymentRequest paymentRequest, String sysSourceCode) throws Exception {
+        return post(paymentRequest, properties.getUrl(), PaymentResponse.class, sysSourceCode);
     }
 
     /**
@@ -182,8 +182,8 @@ public class BoHaiRequestApiComponent {
      * @param electronicPolicyRequest 保单请求
      * @return 响应
      */
-    public ElectronicPolicyResponse electronicPolicy(ElectronicPolicyRequest electronicPolicyRequest) throws Exception {
-        return post(electronicPolicyRequest, properties.getUrl(), ElectronicPolicyResponse.class);
+    public ElectronicPolicyResponse electronicPolicy(ElectronicPolicyRequest electronicPolicyRequest, String sysSourceCode) throws Exception {
+        return post(electronicPolicyRequest, properties.getUrl(), ElectronicPolicyResponse.class, sysSourceCode);
     }
 
     /**
@@ -192,8 +192,8 @@ public class BoHaiRequestApiComponent {
      * @param statusDocumentsRequest 单证查询
      * @return 响应
      */
-    public StatusDocumentsResponse statusDocuments(StatusDocumentsRequest statusDocumentsRequest) throws Exception {
-        StatusDocumentsResponse response = post(statusDocumentsRequest, properties.getUrl(), StatusDocumentsResponse.class);
+    public StatusDocumentsResponse statusDocuments(StatusDocumentsRequest statusDocumentsRequest, String sysSourceCode) throws Exception {
+        StatusDocumentsResponse response = post(statusDocumentsRequest, properties.getUrl(), StatusDocumentsResponse.class, sysSourceCode);
         verificationResponseCode(response.getResponseCode(), response.getResponseMsg());
         return response;
     }

+ 0 - 2
src/main/java/com/ydtech/modules/order/controller/BoHaiOrderApiController.java

@@ -112,7 +112,6 @@ public class BoHaiOrderApiController {
         return this.boHaiOrderApiService.auditCallback(approvedRequest);
     }
 
-
     @PostMapping("/policyResultCallback")
     @ApiOperation(value = "保单回调")
     public String policyResultCallback(@RequestBody BoHaiEncrypted s) throws Exception {
@@ -121,5 +120,4 @@ public class BoHaiOrderApiController {
         return this.boHaiOrderApiService.policyResultCallback(policyResultCallbackRequest);
     }
 
-
 }

+ 2 - 2
src/main/java/com/ydtech/modules/order/entity/api/bohai/BoHaiEncrypted.java

@@ -38,10 +38,10 @@ public class BoHaiEncrypted implements Serializable {
     private String sysSourceCode;
 
 
-    public BoHaiEncrypted(String bizContent, BohaiApiConfigurationProperties properties) {
+    public BoHaiEncrypted(String bizContent, BohaiApiConfigurationProperties properties, String sysSourceCode) {
         this.bizContent = bizContent;
         this.insurerCode = properties.getInsurerCode();
-        this.sysSourceCode = properties.getSysSourceCode();
+        this.sysSourceCode = sysSourceCode;
     }
 
 

+ 12 - 12
src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java

@@ -71,7 +71,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         BoHaiConfigureParameters parameters = configureParametersComponents.toEntity(BoHaiConfigureParameters.class,
                 ptlAgreementAttribution);
         NonAutomotiveProductsRequest nonAutomotiveProductsRequest = new NonAutomotiveProductsRequest(parameters, productQueryVo);
-        NonAutomotiveProductsResponse response = boHaiRequestApiComponent.products(nonAutomotiveProductsRequest);
+        NonAutomotiveProductsResponse response = boHaiRequestApiComponent.products(nonAutomotiveProductsRequest, parameters.getSysSourceCode());
         List<NonAutomotiveProductsResponse.DataDTO.ProductsDTO> products = response.getData().getProducts();
         return HttpResult.ok(products);
     }
@@ -85,7 +85,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
                 ptlAgreementAttribution);
         NonAutomotiveProductsDetailsRequest nonAutomotiveProductsDetailsRequest = new NonAutomotiveProductsDetailsRequest(parameters,
                 productDetailsQueryVo);
-        NonAutomotiveProductsDetailsResponse response = boHaiRequestApiComponent.productsDetails(nonAutomotiveProductsDetailsRequest);
+        NonAutomotiveProductsDetailsResponse response = boHaiRequestApiComponent.productsDetails(nonAutomotiveProductsDetailsRequest, parameters.getSysSourceCode());
         List<NonAutomotiveProductsDetailsResponse.DataDTO.CoveragesDTO> coverages = response.getData().getCoverages();
         return HttpResult.ok(coverages);
     }
@@ -102,13 +102,13 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         GenerateOrderNoRequest generateOrderNoRequest = new GenerateOrderNoRequest(parameters);
 
         // 1 生成生成订单
-        GenerateOrderNoResponse generateOrderNoResponse = boHaiRequestApiComponent.generateOrderNo(generateOrderNoRequest);
+        GenerateOrderNoResponse generateOrderNoResponse = boHaiRequestApiComponent.generateOrderNo(generateOrderNoRequest, parameters.getSysSourceCode());
         String orderNo = generateOrderNoResponse.getData().getOrderNo();
 
         // 2 车型查询接口
         CarInfoVo carInfo = quoteInfoVo.getCarInfo();
         VehicleTypeQueryRequest vehicleTypeQueryRequest = new VehicleTypeQueryRequest(parameters, carInfo.getModelcname(), orderNo);
-        VehicleTypeQueryResponse vehicleTypeQueryResponse = boHaiRequestApiComponent.vehicleTypeQuery(vehicleTypeQueryRequest);
+        VehicleTypeQueryResponse vehicleTypeQueryResponse = boHaiRequestApiComponent.vehicleTypeQuery(vehicleTypeQueryRequest, parameters.getSysSourceCode());
         List<VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO> vehicleModels = vehicleTypeQueryResponse.getData().getVehicleModels();
         VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO vehicleModelsDTO =
                 new CarModelsFilterUtils<VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO>().to(vehicleModels, quoteInfoVo.getCarInfo());
@@ -126,14 +126,14 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
                 policyHolderInfo.getIdentifyNumber());
         VehicleConfirmationReqeust vehicleConfirmationReqeust = new VehicleConfirmationReqeust(parameters, quoteInfoVo, vehicleModelsDTO,
                 orderNo, ownerInfoArea, insuredPersonArea, policyHolderArea);
-        VehicleConfirmationResponse vehicleConfirmationResponse = boHaiRequestApiComponent.vehicleConfirmation(vehicleConfirmationReqeust);
+        VehicleConfirmationResponse vehicleConfirmationResponse = boHaiRequestApiComponent.vehicleConfirmation(vehicleConfirmationReqeust, parameters.getSysSourceCode());
         // 车辆实际价值
         String currentValue = vehicleConfirmationResponse.getData().getVehicleModels().get(0).getCurrentValue();
 
         // 4. 报价接口
         QuotationRequest quotationRequest = new QuotationRequest(parameters, quoteInfoVo.getRiskList(), quoteInfoVo.getKindList(),
                 currentValue, orderNo, carInfo, quoteVo.getAccidentalDrivingVo());
-        QuotationResponse response = boHaiRequestApiComponent.quotation(quotationRequest);
+        QuotationResponse response = boHaiRequestApiComponent.quotation(quotationRequest, parameters.getSysSourceCode());
         return getQuoteRespVo(response, quoteInfoVo, vehicleModelsDTO, ptlAgreementAttribution, orderNo);
     }
 
@@ -154,7 +154,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
 
         ImageUploadRequest imageUploadRequest = new ImageUploadRequest(parameters, insAreaCompany.getId(), insAreaCompany.getInsOrderNo()
                 , insTaskImagesBase64s);
-        ImageUploadResponse response = boHaiRequestApiComponent.imageUpload(imageUploadRequest);
+        ImageUploadResponse response = boHaiRequestApiComponent.imageUpload(imageUploadRequest, parameters.getSysSourceCode());
         if (ResponseCode.R_Z00001.getCode().equals(response.getResponseCode())) {
             return HttpResult.ok("上传成功");
         }
@@ -173,7 +173,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
 
         // 核保请求
         UnderwritingRequest underwritingRequest = new UnderwritingRequest(parameters, insAreaCompany.getId());
-        UnderwritingResponse underwritingResponse = boHaiRequestApiComponent.underwriting(underwritingRequest);
+        UnderwritingResponse underwritingResponse = boHaiRequestApiComponent.underwriting(underwritingRequest, parameters.getSysSourceCode());
         int i = underwritingResponse.getData().verificationUnderwriting();
         // 交强
         UnderwritingResponse.DataDTO.TrafficPolicyDTO trafficPolicy = underwritingResponse.getData().getTrafficPolicy();
@@ -190,7 +190,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
             insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
             // 支付请求
             PaymentRequest paymentRequest = new PaymentRequest(parameters, insAreaCompany.getId(), insAreaCompany.getInsOrderNo());
-            PaymentResponse paymentResponse = boHaiRequestApiComponent.payment(paymentRequest);
+            PaymentResponse paymentResponse = boHaiRequestApiComponent.payment(paymentRequest, parameters.getSysSourceCode());
             String payUrl = paymentResponse.getData().getQrCodeUrl();
             insAreaCompany.setPaymentLink(payUrl);
             insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
@@ -221,7 +221,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
 
         ElectronicPolicyRequest electronicPolicyRequest = new ElectronicPolicyRequest(parameters, insAreaCompany.getId(),
                 insAreaCompany.getJqpolicyno(), insAreaCompany.getSypolicyno());
-        ElectronicPolicyResponse response = boHaiRequestApiComponent.electronicPolicy(electronicPolicyRequest);
+        ElectronicPolicyResponse response = boHaiRequestApiComponent.electronicPolicy(electronicPolicyRequest, parameters.getSysSourceCode());
 
         ElectronicPolicyResponse.DataDTO data = response.getData();
         CrawlerPolicyPrintVo crawlerPolicyPrintVo = new CrawlerPolicyPrintVo();
@@ -351,7 +351,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         BoHaiConfigureParameters parameters = configureParametersComponents.toEntity(BoHaiConfigureParameters.class,
                 ptlAgreementAttribution);
         PaymentRequest paymentRequest = new PaymentRequest(parameters, insAreaCompany.getId(), insAreaCompany.getInsOrderNo());
-        PaymentResponse paymentResponse = boHaiRequestApiComponent.payment(paymentRequest);
+        PaymentResponse paymentResponse = boHaiRequestApiComponent.payment(paymentRequest, parameters.getSysSourceCode());
         return paymentResponse.getData().getQrCodeUrl();
     }
 
@@ -366,7 +366,7 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         String applyno = !StringUtils.isEmpty(insAreaCompany.getJqapplyno()) ? insAreaCompany.getJqapplyno() :
                 insAreaCompany.getSyapplyno();
         StatusDocumentsRequest statusDocumentsRequest = new StatusDocumentsRequest(parameters, insAreaCompany.getId(), applyno);
-        StatusDocumentsResponse response = boHaiRequestApiComponent.statusDocuments(statusDocumentsRequest);
+        StatusDocumentsResponse response = boHaiRequestApiComponent.statusDocuments(statusDocumentsRequest, parameters.getSysSourceCode());
         return response.getData().getDocumentList();
     }
 

+ 20 - 0
src/main/resources/mapper/modules/admin/SysDeptAccountDao.xml

@@ -0,0 +1,20 @@
+<?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.SysDeptAccountDao">
+
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.SysDeptAccountEntity">
+        <id column="dept_id" jdbcType="VARCHAR" property="deptId"/>
+        <result column="handling_fee" jdbcType="DECIMAL" property="handlingFee"/>
+        <result column="documentary" jdbcType="DECIMAL" property="documentary"/>
+        <result column="promotion" jdbcType="DECIMAL" property="promotion"/>
+        <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
+    </resultMap>
+
+
+    <sql id="Base_Column_List">
+        dept_id
+        , handling_fee, documentary, promotion, create_time
+    </sql>
+
+</mapper>