提交 6473bc35 authored 作者: hzh's avatar hzh

部分代码功能实现

上级 bf7d4c51
...@@ -15,6 +15,10 @@ public class ApplyRequest { ...@@ -15,6 +15,10 @@ public class ApplyRequest {
* 流水号,幂等且唯一不能重复 * 流水号,幂等且唯一不能重复
*/ */
private String BatchNum; private String BatchNum;
/**
* 产品id
*/
private Integer ProductId;
/** /**
* 产品计划代码,需联系客户经理提供 * 产品计划代码,需联系客户经理提供
*/ */
......
package org.dromara.mall.controller.weishi.admin.bo; package org.dromara.mall.controller.weishi.admin.bo;
import lombok.experimental.Accessors;
import org.dromara.mall.domain.weishi.Insure; import org.dromara.mall.domain.weishi.Insure;
import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.AddGroup;
...@@ -8,6 +9,8 @@ import io.github.linpeilie.annotations.AutoMapper; ...@@ -8,6 +9,8 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
...@@ -17,6 +20,7 @@ import java.util.Date; ...@@ -17,6 +20,7 @@ import java.util.Date;
* @date 2025-05-13 * @date 2025-05-13
*/ */
@Data @Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = Insure.class, reverseConvertGenerate = false) @AutoMapper(target = Insure.class, reverseConvertGenerate = false)
public class InsureBo extends BaseEntity { public class InsureBo extends BaseEntity {
...@@ -109,13 +113,13 @@ public class InsureBo extends BaseEntity { ...@@ -109,13 +113,13 @@ public class InsureBo extends BaseEntity {
* 标准保费合计,是Units中所有标准保费的总和 * 标准保费合计,是Units中所有标准保费的总和
*/ */
@NotNull(message = "标准保费合计,是Units中所有标准保费的总和不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "标准保费合计,是Units中所有标准保费的总和不能为空", groups = { AddGroup.class, EditGroup.class })
private Long stdPremium; private BigDecimal stdPremium;
/** /**
* 实收保费合计,是Units中所有实收保费的总和 * 实收保费合计,是Units中所有实收保费的总和
*/ */
@NotNull(message = "实收保费合计,是Units中所有实收保费的总和不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "实收保费合计,是Units中所有实收保费的总和不能为空", groups = { AddGroup.class, EditGroup.class })
private Long actPremium; private BigDecimal actPremium;
/** /**
* 付款链接 * 付款链接
...@@ -133,7 +137,7 @@ public class InsureBo extends BaseEntity { ...@@ -133,7 +137,7 @@ public class InsureBo extends BaseEntity {
* 付款金额 * 付款金额
*/ */
@NotNull(message = "付款金额不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "付款金额不能为空", groups = { AddGroup.class, EditGroup.class })
private Long paymentAmt; private BigDecimal paymentAmt;
/** /**
* 投保数据格式( P:图片, D - 数据) * 投保数据格式( P:图片, D - 数据)
...@@ -145,7 +149,7 @@ public class InsureBo extends BaseEntity { ...@@ -145,7 +149,7 @@ public class InsureBo extends BaseEntity {
* 返回代码 * 返回代码
*/ */
@NotNull(message = "返回代码不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "返回代码不能为空", groups = { AddGroup.class, EditGroup.class })
private Long resultTp; private Integer resultTp;
/** /**
* 提示文本 * 提示文本
...@@ -153,6 +157,11 @@ public class InsureBo extends BaseEntity { ...@@ -153,6 +157,11 @@ public class InsureBo extends BaseEntity {
@NotBlank(message = "提示文本不能为空", groups = { AddGroup.class, EditGroup.class }) @NotBlank(message = "提示文本不能为空", groups = { AddGroup.class, EditGroup.class })
private String resultMsg; private String resultMsg;
/**
* 计划ID
*/
private Integer planId;
/** /**
* 下单日期 * 下单日期
*/ */
......
...@@ -13,7 +13,7 @@ import jakarta.validation.constraints.*; ...@@ -13,7 +13,7 @@ import jakarta.validation.constraints.*;
* 保险订单-投保人业务对象 weishi_insure_policy_holder * 保险订单-投保人业务对象 weishi_insure_policy_holder
* *
* @author hzh * @author hzh
* @date 2025-05-13 * @date 2025-05-14
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
......
...@@ -13,7 +13,7 @@ import jakarta.validation.constraints.*; ...@@ -13,7 +13,7 @@ import jakarta.validation.constraints.*;
* 保险订单-发票信息业务对象 weishi_insure_taxpayer * 保险订单-发票信息业务对象 weishi_insure_taxpayer
* *
* @author hzh * @author hzh
* @date 2025-05-13 * @date 2025-05-14
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
......
...@@ -14,7 +14,7 @@ import java.math.BigDecimal; ...@@ -14,7 +14,7 @@ import java.math.BigDecimal;
* 保险订单-投保单元业务对象 weishi_insure_unit * 保险订单-投保单元业务对象 weishi_insure_unit
* *
* @author hzh * @author hzh
* @date 2025-05-13 * @date 2025-05-14
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
...@@ -37,13 +37,25 @@ public class InsureUnitBo extends BaseEntity { ...@@ -37,13 +37,25 @@ public class InsureUnitBo extends BaseEntity {
* 标准保费 * 标准保费
*/ */
@NotNull(message = "标准保费不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "标准保费不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal stdPreium; private BigDecimal stdPremium;
/** /**
* 实收保费 * 实收保费
*/ */
@NotNull(message = "实收保费不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "实收保费不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal actPreium; private BigDecimal actPremium;
/**
* 标准退费
*/
@NotNull(message = "标准退费不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal stdRefund;
/**
* 实收退费
*/
@NotNull(message = "实收退费不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal actRefund;
/** /**
* 保单号 * 保单号
...@@ -55,13 +67,7 @@ public class InsureUnitBo extends BaseEntity { ...@@ -55,13 +67,7 @@ public class InsureUnitBo extends BaseEntity {
* 返回代码 * 返回代码
*/ */
@NotNull(message = "返回代码不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "返回代码不能为空", groups = { AddGroup.class, EditGroup.class })
private Long resultTp; private Integer resultNum;
/**
* 返回消息
*/
@NotBlank(message = "返回消息不能为空", groups = { AddGroup.class, EditGroup.class })
private String resultMsg;
} }
...@@ -15,7 +15,7 @@ import java.io.Serializable; ...@@ -15,7 +15,7 @@ import java.io.Serializable;
* 保险订单-被保人视图对象 weishi_insure_insureds * 保险订单-被保人视图对象 weishi_insure_insureds
* *
* @author hzh * @author hzh
* @date 2025-05-13 * @date 2025-05-14
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
...@@ -97,5 +97,17 @@ public class InsureInsuredsVo implements Serializable { ...@@ -97,5 +97,17 @@ public class InsureInsuredsVo implements Serializable {
@ExcelProperty(value = "实收保费") @ExcelProperty(value = "实收保费")
private BigDecimal actPremium; private BigDecimal actPremium;
/**
* 标准退费
*/
@ExcelProperty(value = "标准退费")
private BigDecimal stdRefund;
/**
* 实收退费
*/
@ExcelProperty(value = "实收退费")
private BigDecimal actRefund;
} }
...@@ -14,7 +14,7 @@ import java.io.Serializable; ...@@ -14,7 +14,7 @@ import java.io.Serializable;
* 保险订单-投保人视图对象 weishi_insure_policy_holder * 保险订单-投保人视图对象 weishi_insure_policy_holder
* *
* @author hzh * @author hzh
* @date 2025-05-13 * @date 2025-05-14
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
......
...@@ -14,7 +14,7 @@ import java.io.Serializable; ...@@ -14,7 +14,7 @@ import java.io.Serializable;
* 保险订单-发票信息视图对象 weishi_insure_taxpayer * 保险订单-发票信息视图对象 weishi_insure_taxpayer
* *
* @author hzh * @author hzh
* @date 2025-05-13 * @date 2025-05-14
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
......
package org.dromara.mall.controller.weishi.admin.vo; package org.dromara.mall.controller.weishi.admin.vo;
import java.math.BigDecimal;
import org.dromara.mall.domain.weishi.InsureUnit;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import org.dromara.mall.domain.weishi.InsureUnit;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
/** /**
* 保险订单-投保单元视图对象 weishi_insure_unit * 保险订单-投保单元视图对象 weishi_insure_unit
* *
* @author hzh * @author hzh
* @date 2025-05-13 * @date 2025-05-14
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
...@@ -41,13 +41,25 @@ public class InsureUnitVo implements Serializable { ...@@ -41,13 +41,25 @@ public class InsureUnitVo implements Serializable {
* 标准保费 * 标准保费
*/ */
@ExcelProperty(value = "标准保费") @ExcelProperty(value = "标准保费")
private BigDecimal stdPreium; private BigDecimal stdPremium;
/** /**
* 实收保费 * 实收保费
*/ */
@ExcelProperty(value = "实收保费") @ExcelProperty(value = "实收保费")
private BigDecimal actPreium; private BigDecimal actPremium;
/**
* 标准退费
*/
@ExcelProperty(value = "标准退费")
private BigDecimal stdRefund;
/**
* 实收退费
*/
@ExcelProperty(value = "实收退费")
private BigDecimal actRefund;
/** /**
* 保单号 * 保单号
...@@ -59,13 +71,7 @@ public class InsureUnitVo implements Serializable { ...@@ -59,13 +71,7 @@ public class InsureUnitVo implements Serializable {
* 返回代码 * 返回代码
*/ */
@ExcelProperty(value = "返回代码") @ExcelProperty(value = "返回代码")
private Long resultTp; private Integer resultNum;
/**
* 返回消息
*/
@ExcelProperty(value = "返回消息")
private String resultMsg;
} }
...@@ -69,7 +69,9 @@ public class WeishiController { ...@@ -69,7 +69,9 @@ public class WeishiController {
*/ */
@PostMapping("/insureApply") @PostMapping("/insureApply")
public R<ApplyResponse> insureApply(@RequestBody ApplyRequest req) { public R<ApplyResponse> insureApply(@RequestBody ApplyRequest req) {
return R.ok(weishiService.insureApply(getToken(), req)); ApplyResponse res = weishiService.insureApply(getToken(), req);
insureService.apply(req, res);
return R.ok(res);
} }
......
package org.dromara.mall.domain.weishi; package org.dromara.mall.domain.weishi;
import org.dromara.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.Date; import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat; import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial; import java.io.Serial;
import java.math.BigDecimal;
import java.util.Date;
/** /**
* 保险订单对象 weishi_insure * 保险订单对象 weishi_insure
...@@ -16,6 +19,7 @@ import java.io.Serial; ...@@ -16,6 +19,7 @@ import java.io.Serial;
* @date 2025-05-13 * @date 2025-05-13
*/ */
@Data @Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@TableName("weishi_insure") @TableName("weishi_insure")
public class Insure extends TenantEntity { public class Insure extends TenantEntity {
...@@ -97,12 +101,12 @@ public class Insure extends TenantEntity { ...@@ -97,12 +101,12 @@ public class Insure extends TenantEntity {
/** /**
* 标准保费合计,是Units中所有标准保费的总和 * 标准保费合计,是Units中所有标准保费的总和
*/ */
private Long stdPremium; private BigDecimal stdPremium;
/** /**
* 实收保费合计,是Units中所有实收保费的总和 * 实收保费合计,是Units中所有实收保费的总和
*/ */
private Long actPremium; private BigDecimal actPremium;
/** /**
* 付款链接 * 付款链接
...@@ -117,7 +121,7 @@ public class Insure extends TenantEntity { ...@@ -117,7 +121,7 @@ public class Insure extends TenantEntity {
/** /**
* 付款金额 * 付款金额
*/ */
private Long paymentAmt; private BigDecimal paymentAmt;
/** /**
* 投保数据格式( P:图片, D - 数据) * 投保数据格式( P:图片, D - 数据)
...@@ -127,7 +131,12 @@ public class Insure extends TenantEntity { ...@@ -127,7 +131,12 @@ public class Insure extends TenantEntity {
/** /**
* 返回代码 * 返回代码
*/ */
private Long resultTp; private Integer resultTp;
/**
* 计划ID
*/
private Integer planId;
/** /**
* 提示文本 * 提示文本
......
...@@ -11,7 +11,7 @@ import java.io.Serial; ...@@ -11,7 +11,7 @@ import java.io.Serial;
* 保险订单-投保人对象 weishi_insure_policy_holder * 保险订单-投保人对象 weishi_insure_policy_holder
* *
* @author hzh * @author hzh
* @date 2025-05-13 * @date 2025-05-14
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
......
...@@ -11,7 +11,7 @@ import java.io.Serial; ...@@ -11,7 +11,7 @@ import java.io.Serial;
* 保险订单-发票信息对象 weishi_insure_taxpayer * 保险订单-发票信息对象 weishi_insure_taxpayer
* *
* @author hzh * @author hzh
* @date 2025-05-13 * @date 2025-05-14
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
......
package org.dromara.mall.domain.weishi; package org.dromara.mall.domain.weishi;
import lombok.experimental.Accessors;
import org.dromara.common.tenant.core.TenantEntity; import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;
...@@ -12,9 +13,10 @@ import java.io.Serial; ...@@ -12,9 +13,10 @@ import java.io.Serial;
* 保险订单-投保单元对象 weishi_insure_unit * 保险订单-投保单元对象 weishi_insure_unit
* *
* @author hzh * @author hzh
* @date 2025-05-13 * @date 2025-05-14
*/ */
@Data @Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@TableName("weishi_insure_unit") @TableName("weishi_insure_unit")
public class InsureUnit extends TenantEntity { public class InsureUnit extends TenantEntity {
...@@ -36,27 +38,32 @@ public class InsureUnit extends TenantEntity { ...@@ -36,27 +38,32 @@ public class InsureUnit extends TenantEntity {
/** /**
* 标准保费 * 标准保费
*/ */
private BigDecimal stdPreium; private BigDecimal stdPremium;
/** /**
* 实收保费 * 实收保费
*/ */
private BigDecimal actPreium; private BigDecimal actPremium;
/** /**
* 保单号 * 标准退费
*/ */
private String policyNum; private BigDecimal stdRefund;
/** /**
* 返回代码 * 实收退费
*/ */
private Long resultTp; private BigDecimal actRefund;
/** /**
* 返回消息 * 保单号
*/
private String policyNum;
/**
* 返回代码
*/ */
private String resultMsg; private Integer resultNum;
/** /**
* 删除标志(0代表存在 2代表删除) * 删除标志(0代表存在 2代表删除)
......
package org.dromara.mall.mapper.weishi; package org.dromara.mall.mapper.weishi;
import org.dromara.mall.domain.weishi.InsureInsureds;
import org.dromara.mall.controller.weishi.admin.vo.InsureInsuredsVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.mall.controller.weishi.admin.vo.InsureInsuredsVo;
import org.dromara.mall.domain.weishi.InsureInsureds;
/** /**
* 保险订单-被保人Mapper接口 * 保险订单-被保人Mapper接口
......
package org.dromara.mall.mapper.weishi; package org.dromara.mall.mapper.weishi;
import org.dromara.mall.domain.weishi.InsurePolicyHolder;
import org.dromara.mall.controller.weishi.admin.vo.InsurePolicyHolderVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.mall.controller.weishi.admin.vo.InsurePolicyHolderVo;
import org.dromara.mall.domain.weishi.InsurePolicyHolder;
/** /**
* 保险订单-投保人Mapper接口 * 保险订单-投保人Mapper接口
......
package org.dromara.mall.mapper.weishi; package org.dromara.mall.mapper.weishi;
import org.dromara.mall.domain.weishi.InsureTaxpayer;
import org.dromara.mall.controller.weishi.admin.vo.InsureTaxpayerVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.mall.controller.weishi.admin.vo.InsureTaxpayerVo;
import org.dromara.mall.domain.weishi.InsureTaxpayer;
/** /**
* 保险订单-发票信息Mapper接口 * 保险订单-发票信息Mapper接口
......
package org.dromara.mall.mapper.weishi; package org.dromara.mall.mapper.weishi;
import org.dromara.mall.domain.weishi.InsureUnit;
import org.dromara.mall.controller.weishi.admin.vo.InsureUnitVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.mall.controller.weishi.admin.vo.InsureUnitVo;
import org.dromara.mall.domain.weishi.InsureUnit;
/** /**
* 保险订单-投保单元Mapper接口 * 保险订单-投保单元Mapper接口
......
package org.dromara.mall.service.weishi.impl; package org.dromara.mall.service.weishi.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.service.AbstractBaseService; import org.dromara.common.mybatis.service.AbstractBaseService;
import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.redis.utils.RedisUtils;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.weishi.model.req.ApplyRequest; import org.dromara.common.weishi.model.req.ApplyRequest;
import org.dromara.common.weishi.model.res.ApplyResponse; import org.dromara.common.weishi.model.res.ApplyResponse;
import org.dromara.common.weishi.model.res.AuthResponse; import org.dromara.common.weishi.model.res.AuthResponse;
import org.dromara.common.weishi.model.res.IssueResponse;
import org.dromara.common.weishi.model.res.ProductsResponse;
import org.dromara.common.weishi.service.WeishiService; import org.dromara.common.weishi.service.WeishiService;
import org.dromara.mall.controller.weishi.admin.bo.InsureBo; import org.dromara.mall.controller.weishi.admin.bo.InsureBo;
import org.dromara.mall.controller.weishi.admin.vo.InsureVo; import org.dromara.mall.controller.weishi.admin.vo.InsureVo;
import org.dromara.mall.domain.weishi.Insure; import org.dromara.mall.domain.weishi.*;
import org.dromara.mall.mapper.weishi.InsureMapper; import org.dromara.mall.mapper.weishi.*;
import org.dromara.mall.service.weishi.IInsureService; import org.dromara.mall.service.weishi.IInsureService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.Duration; import java.time.Duration;
import java.util.Date;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import static org.dromara.mall.enums.weishi.WeishiConstants.WEISHI_TOKEN; import static org.dromara.mall.enums.weishi.WeishiConstants.WEISHI_TOKEN;
...@@ -34,6 +44,10 @@ import static org.dromara.mall.enums.weishi.WeishiConstants.WEISHI_TOKEN; ...@@ -34,6 +44,10 @@ import static org.dromara.mall.enums.weishi.WeishiConstants.WEISHI_TOKEN;
public class InsureServiceImpl extends AbstractBaseService<InsureVo, InsureBo, Insure> implements IInsureService { public class InsureServiceImpl extends AbstractBaseService<InsureVo, InsureBo, Insure> implements IInsureService {
private final InsureMapper baseMapper; private final InsureMapper baseMapper;
private final InsureTaxpayerMapper taxpayerMapper;
private final InsureUnitMapper unitMapper;
private final InsurePolicyHolderMapper policyHolderMapper;
private final InsureInsuredsMapper insuredsMapper;
@Override @Override
public BaseMapperPlus<Insure, InsureVo> mapper() { public BaseMapperPlus<Insure, InsureVo> mapper() {
...@@ -82,8 +96,66 @@ public class InsureServiceImpl extends AbstractBaseService<InsureVo, InsureBo, I ...@@ -82,8 +96,66 @@ public class InsureServiceImpl extends AbstractBaseService<InsureVo, InsureBo, I
return token; return token;
} }
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void apply(ApplyRequest req, ApplyResponse res) { public void apply(ApplyRequest req, ApplyResponse res) {
String token = getToken();
//获取产品列表
List<ProductsResponse> productList = weishiService.productList(token);
//获取订单详情
IssueResponse issueRes = weishiService.insureDetail(token, res.getOrderNum());
//设置参数
Insure insure = BeanUtil.copyProperties(res, Insure.class);
insure.setUserId(LoginHelper.getUserId())
.setMemberId(LoginHelper.getMemberId())
.setReqJson(JSONUtil.toJsonStr(req))
.setResJson(JSONUtil.toJsonStr(res))
.setProductJson(JSONUtil.toJsonStr(weishiService.productDetail(token, req.getProductId())))
.setProductListJson(JSONUtil.toJsonStr(StreamUtils.findFirst(productList, p -> Objects.equals(p.getProductID(), req.getProductId()))))
.setChannelTp(issueRes.getChannelTp())
.setPaymentUrl(issueRes.getPaymentUrl())
.setPaymentNum(issueRes.getPaymentNum())
.setPaymentAmt(issueRes.getPaymentAmt())
.setOrderTime(new Date());
insure.setCreateDept(LoginHelper.getDeptId());
baseMapper.insert(insure);
//保存发票信息
ApplyRequest.Taxpayer taxpayer = req.getTaxpayer();
if (taxpayer != null) {
InsureTaxpayer tax = BeanUtil.copyProperties(taxpayer, InsureTaxpayer.class);
tax.setOrderNum(res.getOrderNum());
taxpayerMapper.insert(tax);
}
//保存投保单元
List<ApplyResponse.Unit> units = res.getUnits();
List<IssueResponse.Unit> irUnits = issueRes.getUnits();
for (ApplyResponse.Unit unit : units) {
InsureUnit iu = BeanUtil.copyProperties(unit, InsureUnit.class);
IssueResponse.Unit irUnit = StreamUtils.findFirst(irUnits, i -> StringUtils.equals(i.getPolicyNum(), unit.getPolicyNum()));
assert irUnit != null;
iu.setOrderNum(res.getOrderNum())
.setStdRefund(irUnit.getStdRefund())
.setActRefund(irUnit.getActRefund());
unitMapper.insert(iu);
//保存投保人信息
ApplyResponse.PolicyHolder ph = unit.getPolicyHolder();
InsurePolicyHolder iph = BeanUtil.copyProperties(ph, InsurePolicyHolder.class);
iph.setOrderNum(res.getOrderNum());
iph.setPolicyNum(unit.getPolicyNum());
policyHolderMapper.insert(iph);
//保存被保人信息
List<ApplyResponse.Insured> insureds = unit.getInsureds();
List<IssueResponse.Insured> arInsureds = irUnit.getInsureds();
for (ApplyResponse.Insured insured : insureds) {
InsureInsureds ins = BeanUtil.copyProperties(insured, InsureInsureds.class);
IssueResponse.Insured iri = StreamUtils.findFirst(arInsureds, a -> StringUtils.equals(a.getIDNum(), insured.getIDNum()));
ins.setOrderNum(res.getOrderNum());
ins.setPolicyNum(unit.getPolicyNum());
assert iri != null;
ins.setActRefund(iri.getActRefund());
ins.setStdRefund(iri.getStdRefund());
insuredsMapper.insert(ins);
}
}
} }
} }
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.mall.mapper.weishi.InsureInsuredsMapper"> <mapper namespace="org.dromara.mall.mapper.InsureInsuredsMapper">
</mapper> </mapper>
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.mall.mapper.weishi.InsurePolicyHolderMapper"> <mapper namespace="org.dromara.mall.mapper.InsurePolicyHolderMapper">
</mapper> </mapper>
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.mall.mapper.weishi.InsureTaxpayerMapper"> <mapper namespace="org.dromara.mall.mapper.InsureTaxpayerMapper">
</mapper> </mapper>
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.mall.mapper.weishi.InsureUnitMapper"> <mapper namespace="org.dromara.mall.mapper.InsureUnitMapper">
</mapper> </mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论