Merge remote-tracking branch 'origin/dev' into test
# Conflicts: # bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java # bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml
This commit is contained in:
commit
b601cc4181
|
@ -7,7 +7,6 @@
|
|||
bd-api-bonus -- 奖金服务接口以及RPC传输数据DTO实体
|
||||
bd-api-member -- 会员服务接口以及RPC传输数据DTO实体
|
||||
bd-api-report -- 报表服务接口以及RPC传输数据DTO实体
|
||||
bd-api-sale -- 销售、供应链服务接口以及RPC传输数据DTO实体
|
||||
bd-api-system -- 系统基础服务接口以及RPC传输数据DTO实体
|
||||
bd-api-third -- 三方服务接口以及RPC传输数据DTO实体
|
||||
|
||||
|
@ -17,9 +16,7 @@
|
|||
hzs-business-common -- 业务服务公共类(工具类)
|
||||
hzs-business-member -- 会员服务(会员、账户、银行等) 8092
|
||||
hzs-business-report -- 报表服务(统计分析、仪表盘等) 8097
|
||||
hzs-business-sale -- 销售服务(订单、商品、邮费、仓库进销存等) 8093
|
||||
hzs-business-system -- 系统基础服务(基础配置、自定义配置等) 8091
|
||||
hzs-business-scm -- 进销存服务(进销存功能等) 8099
|
||||
|
||||
### hzs-common(基础公用组件)
|
||||
hzs-common-core -- 核心公用组件、缓存操作等
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
package com.hzs.sale.deliver;
|
||||
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.domain.sale.ext.SaDeliverExt;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 发货单相关dubbo接口
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/12/19 14:27
|
||||
* @Classname: ISaDeliverServiceApi
|
||||
* @PackageName: com.hzs.sale.deliver
|
||||
*/
|
||||
public interface ISaDeliverServiceApi {
|
||||
|
||||
/**
|
||||
* 查询发货单+明细列表
|
||||
*
|
||||
* @param idList 发货单ID列表
|
||||
* @param pkCountry 所属国家 -- 非必传
|
||||
* @return
|
||||
*/
|
||||
R<List<SaDeliverExt>> queryDeliverList(List<Long> idList, Integer pkCountry);
|
||||
|
||||
}
|
|
@ -146,4 +146,13 @@ public interface ISaOrderServiceApi {
|
|||
*/
|
||||
R<BigDecimal> getRetailPayOrder(Long pkMember, String orderCode);
|
||||
|
||||
/**
|
||||
* 根据订单编号查询订单信息
|
||||
*
|
||||
* @param orderCode 订单编号
|
||||
* @param pkMember 会员主键
|
||||
* @return
|
||||
*/
|
||||
R<SaOrderExt> queryOrderByCode(String orderCode, Long pkMember);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.bd</groupId>
|
||||
<artifactId>bd-api</artifactId>
|
||||
<version>1.1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>bd-api-scm</artifactId>
|
||||
|
||||
<description>
|
||||
bd-api-scm进销存服务
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.bd</groupId>
|
||||
<artifactId>bd-api-system</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.bd</groupId>
|
||||
<artifactId>bd-common-domain</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
|
@ -1,41 +0,0 @@
|
|||
package com.hzs.scm.product;/**
|
||||
* @Description:
|
||||
* @Author: yuhui
|
||||
* @Time: 2023/11/23 18:28
|
||||
* @Classname: IBdProductBasSpecsServiceApi
|
||||
* @PackageName: com.hzs.scm.product
|
||||
*/
|
||||
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.domain.sale.product.BdProductBas;
|
||||
import com.hzs.common.domain.sale.product.BdProductBasSpecs;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*@BelongsProject: hzs_cloud
|
||||
*@BelongsPackage: com.hzs.scm.product
|
||||
*@Author: yh
|
||||
*@CreateTime: 2023-11-23 18:28
|
||||
*@Description: TODO
|
||||
*@Version: 1.0
|
||||
*/
|
||||
public interface IBdProductBasSpecsServiceApi {
|
||||
|
||||
|
||||
/**
|
||||
* 新增
|
||||
* @param productBasSpecsList
|
||||
* @return
|
||||
*/
|
||||
R<Boolean> saveAll(List<BdProductBasSpecs> productBasSpecsList);
|
||||
|
||||
/**
|
||||
* 删除 (根据pkProductBas删除)
|
||||
* @param pkProductBasList
|
||||
* @return
|
||||
*/
|
||||
R<Boolean> removeByPkProductBasList(List<Integer> pkProductBasList);
|
||||
|
||||
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
package com.hzs.scm.product;
|
||||
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.domain.sale.product.BdProductBas;
|
||||
import com.hzs.scm.product.dto.ProductBasDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: yuhui
|
||||
* @Time: 2023/11/23 17:59
|
||||
* @Classname: IProductBasServiceApi
|
||||
* @PackageName: com.hzs.scm.product
|
||||
*/
|
||||
public interface IProductBasServiceApi {
|
||||
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
* @param productBas
|
||||
* @return
|
||||
*/
|
||||
R<BdProductBas> save(BdProductBas productBas);
|
||||
|
||||
/**
|
||||
* 根据id 修改
|
||||
*/
|
||||
R<Boolean> updateById(BdProductBas productBas);
|
||||
|
||||
/**
|
||||
* 根据id 查询
|
||||
* @return
|
||||
*/
|
||||
R<ProductBasDTO> getProductBasById(Integer pkId);
|
||||
|
||||
/**
|
||||
* 根据产品编号 查询
|
||||
* @return
|
||||
*/
|
||||
R<ProductBasDTO> getProductBasByProductCode(String productCode);
|
||||
|
||||
|
||||
}
|
|
@ -1,90 +0,0 @@
|
|||
package com.hzs.scm.product.dto;/**
|
||||
* @Description:
|
||||
* @Author: yuhui
|
||||
* @Time: 2023/11/23 18:04
|
||||
* @Classname: ProductDTO
|
||||
* @PackageName: com.hzs.scm.product.provider.dto
|
||||
*/
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
*@BelongsProject: hzs_cloud
|
||||
*@BelongsPackage: com.hzs.scm.product.provider.dto
|
||||
*@Author: yh
|
||||
*@CreateTime: 2023-11-23 18:04
|
||||
*@Description: TODO
|
||||
*@Version: 1.0
|
||||
*/
|
||||
@Data
|
||||
public class ProductBasDTO implements Serializable {
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
|
||||
private Integer pkId;
|
||||
|
||||
/**
|
||||
* 产品编号
|
||||
*/
|
||||
|
||||
private String productCode;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 规格分类
|
||||
*/
|
||||
|
||||
private Integer pkClassify;
|
||||
|
||||
/**
|
||||
* 单位 来源于枚举:单位
|
||||
*/
|
||||
|
||||
private Integer unit;
|
||||
|
||||
/**
|
||||
* 重量 以千克作为单位
|
||||
*/
|
||||
|
||||
private BigDecimal weight;
|
||||
|
||||
/**
|
||||
* 长 以厘米作为单位
|
||||
*/
|
||||
|
||||
private BigDecimal length;
|
||||
|
||||
/**
|
||||
* 宽 以厘米作为单位
|
||||
*/
|
||||
|
||||
private BigDecimal width;
|
||||
|
||||
/**
|
||||
* 高 以厘米作为单位
|
||||
*/
|
||||
|
||||
private BigDecimal height;
|
||||
|
||||
/**
|
||||
* 封面图
|
||||
*/
|
||||
|
||||
private String cover;
|
||||
|
||||
/**
|
||||
* 保质期
|
||||
*/
|
||||
|
||||
private Integer shelfLife;
|
||||
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
package com.hzs.scm.pub;
|
||||
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.EApprovalBusiness;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.scm.ic.IcAvailableNum;
|
||||
import com.hzs.common.domain.scm.ic.ext.IcAvailableNumExt;
|
||||
import com.hzs.scm.pub.dto.BillDTO;
|
||||
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 供应链单据对外接口发布
|
||||
*/
|
||||
public interface IScmBillServiceApi {
|
||||
|
||||
/**
|
||||
* 活动服务信息处理回调
|
||||
*
|
||||
* @param approvalBusinessResultDTO 参数
|
||||
* @return
|
||||
*/
|
||||
R<Boolean> approvalCallback(ApprovalBusinessResultDTO approvalBusinessResultDTO);
|
||||
|
||||
/*
|
||||
* 查询单据信息
|
||||
**/
|
||||
R<List<BillDTO>> queryBillDtoByCondition(EApprovalBusiness eApprovalBusiness, String businessCode);
|
||||
|
||||
/*
|
||||
* 下单时验证可用量
|
||||
**/
|
||||
R<List<IcAvailableNumExt>> queryAvailableNumByProduct(List<IcAvailableNum> availableNumList);
|
||||
|
||||
/*
|
||||
* 更新可用量
|
||||
**/
|
||||
R<Boolean> updateDeductIcAvailableNumByList(List<IcAvailableNumExt> availableNumList);
|
||||
|
||||
/*
|
||||
* 更新单据号规则
|
||||
**/
|
||||
R<Boolean> updateScmBillNoNextValue();
|
||||
|
||||
/*
|
||||
* 撤单、退单回退可用量
|
||||
**/
|
||||
R<Boolean> backSaOrderAvailable(SaOrderExt saOrderExt);
|
||||
|
||||
}
|
|
@ -1,108 +0,0 @@
|
|||
package com.hzs.scm.pub.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description: 单据主表表头
|
||||
* @author: sui q
|
||||
* @time: 2023/11/25 09:23
|
||||
* @classname: BillDTO
|
||||
* @package_name: com.hzs.scm.ic.dto
|
||||
* version 1.0.0
|
||||
*/
|
||||
@Data
|
||||
public class BillDTO implements Serializable {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private Long pkId;
|
||||
|
||||
/**
|
||||
* 采购部门
|
||||
*/
|
||||
private Integer pkDept;
|
||||
|
||||
/**
|
||||
* 部门名称
|
||||
*/
|
||||
private String deptName;
|
||||
|
||||
/**
|
||||
* 仓库管理员
|
||||
*/
|
||||
private Long pkWhsmanager;
|
||||
|
||||
/**
|
||||
* 管理员名称
|
||||
*/
|
||||
private String managerName;
|
||||
|
||||
/**
|
||||
* 供应商 取bd_cubasdoc 类型为1 2的
|
||||
*/
|
||||
private Integer pkCubasdoc;
|
||||
|
||||
/**
|
||||
* 供应商名称
|
||||
*/
|
||||
private String cubasdocName;
|
||||
|
||||
/**
|
||||
* 仓库
|
||||
*/
|
||||
private Integer pkStorehouse;
|
||||
|
||||
/**
|
||||
* 仓库名称
|
||||
*/
|
||||
private String storehouseName;
|
||||
|
||||
/**
|
||||
* 订单日期 2023-10
|
||||
*/
|
||||
private String orderDate;
|
||||
|
||||
/**
|
||||
* 订单状态 EPoOrderStatus 1=已保存 2=已提交 3=已审核 4=已收货 5=已关闭
|
||||
*/
|
||||
private Integer orderStatus;
|
||||
|
||||
/**
|
||||
* 退货状态 0=是 1=否
|
||||
*/
|
||||
private Integer returnStatus;
|
||||
|
||||
/**
|
||||
* 采购组织
|
||||
*/
|
||||
private Integer pkCorp;
|
||||
|
||||
/**
|
||||
* 采购组织名称
|
||||
*/
|
||||
private String corpName;
|
||||
|
||||
/**
|
||||
* 总数量
|
||||
*/
|
||||
private BigDecimal totalNum;
|
||||
|
||||
/**
|
||||
* 订单编号
|
||||
*/
|
||||
private String orderCode;
|
||||
|
||||
/**
|
||||
* 退货理由
|
||||
*/
|
||||
private String returnReason;
|
||||
|
||||
private List<BillItemDTO> billDtoList;
|
||||
}
|
|
@ -1,158 +0,0 @@
|
|||
package com.hzs.scm.pub.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @description: 单据明细表
|
||||
* @author: sui q
|
||||
* @time: 2023/11/25 09:23
|
||||
* @classname: BillItemDTO
|
||||
* @package_name: com.hzs.scm.ic.dto
|
||||
* version 1.0.0
|
||||
*/
|
||||
@Data
|
||||
public class BillItemDTO implements Serializable {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private Long pkId;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private Integer pkUnit;
|
||||
|
||||
/**
|
||||
* 单位名称
|
||||
*/
|
||||
private String unitName;
|
||||
|
||||
/**
|
||||
* 采购订单主键
|
||||
*/
|
||||
private Long pkPoOrder;
|
||||
|
||||
/**
|
||||
* 采购订单明细主键
|
||||
*/
|
||||
private Long pkPoOrderItems;
|
||||
|
||||
/**
|
||||
* 主表主键
|
||||
*/
|
||||
private Long pkPurchase;
|
||||
|
||||
/**
|
||||
* 货位
|
||||
*/
|
||||
private Integer pkClocation;
|
||||
|
||||
/**
|
||||
* 货位名称
|
||||
*/
|
||||
private String clocationName;
|
||||
|
||||
/**
|
||||
* 产品基础信息主键
|
||||
*/
|
||||
private Integer pkProductBas;
|
||||
|
||||
/**
|
||||
* 产品信息主键
|
||||
*/
|
||||
private Integer pkProduct;
|
||||
|
||||
/**
|
||||
* 产品编号
|
||||
*/
|
||||
private String productCode;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 规格名称
|
||||
*/
|
||||
private String specsName;
|
||||
|
||||
/**
|
||||
* 入库日期
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date bizDate;
|
||||
|
||||
/**
|
||||
* 出入口类型 1=入库 2=出库
|
||||
*/
|
||||
private Integer transType;
|
||||
|
||||
/**
|
||||
* 仓库
|
||||
*/
|
||||
private Integer pkStorehouse;
|
||||
|
||||
/**
|
||||
* 仓库名称
|
||||
*/
|
||||
private String storehouseName;
|
||||
|
||||
/**
|
||||
* 汇率
|
||||
*/
|
||||
private Integer pkRate;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private BigDecimal nnum;
|
||||
|
||||
/**
|
||||
* 无税单价
|
||||
*/
|
||||
private BigDecimal norigprice;
|
||||
|
||||
/**
|
||||
* 税率
|
||||
*/
|
||||
private BigDecimal ntaxrate;
|
||||
|
||||
/**
|
||||
* 含税单价 = 无税单价*(1+税率)
|
||||
*/
|
||||
private BigDecimal norigtaxprice;
|
||||
|
||||
/**
|
||||
* 无税金额 = 无税单价*数量
|
||||
*/
|
||||
private BigDecimal norigmny;
|
||||
|
||||
/**
|
||||
* 税额 =无税单价*数量
|
||||
*/
|
||||
private BigDecimal ntax;
|
||||
|
||||
/**
|
||||
* 价税合计 含税单价*数量
|
||||
*/
|
||||
private BigDecimal norigtaxmny;
|
||||
|
||||
/**
|
||||
* 批次主键
|
||||
*/
|
||||
private Long pkBatchCode;
|
||||
|
||||
private String batchCode;
|
||||
|
||||
/**
|
||||
* 是否赠品
|
||||
*/
|
||||
private Integer isGift;
|
||||
}
|
|
@ -1,35 +0,0 @@
|
|||
package com.hzs.scm.pub.dto;
|
||||
|
||||
import com.hzs.system.sys.dto.LoginUser;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 发货推送MQ数据
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/12/19 14:16
|
||||
* @Classname: DeliverDTO
|
||||
* @PackageName: com.hzs.scm.pub.dto
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@Data
|
||||
public class DeliverDTO implements Serializable {
|
||||
|
||||
/**
|
||||
* 发货单ID列表
|
||||
*/
|
||||
private List<Long> deliverIdList;
|
||||
|
||||
/**
|
||||
* 登录用户
|
||||
*/
|
||||
private LoginUser loginUser;
|
||||
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
package com.hzs.third.cabin;
|
||||
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.third.cabin.dto.CabinDeviceOpenDTO;
|
||||
import com.hzs.third.cabin.dto.CabinInfoDTO;
|
||||
import com.hzs.third.cabin.dto.CabinPackageDTO;
|
||||
|
||||
/**
|
||||
* @Description: 能量仓dubbo服务
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/8/10 18:19
|
||||
* @Classname: ICabinServiceApi
|
||||
* @PackageName: com.hzs.third.cabin
|
||||
*/
|
||||
public interface ICabinThirdServiceApi {
|
||||
|
||||
/**
|
||||
* 新增、编辑套餐
|
||||
*
|
||||
* @param dto 套餐数据
|
||||
* @return
|
||||
*/
|
||||
R<CabinPackageDTO> packageSave(CabinPackageDTO dto);
|
||||
|
||||
/**
|
||||
* 设备详情
|
||||
*
|
||||
* @param dto 查询设备DTO
|
||||
* @return
|
||||
*/
|
||||
R<CabinInfoDTO> deviceInfo(CabinInfoDTO dto);
|
||||
|
||||
/**
|
||||
* 设备开机
|
||||
*
|
||||
* @param dto 开机数据
|
||||
* @return
|
||||
*/
|
||||
R<CabinDeviceOpenDTO> deviceOpen(CabinDeviceOpenDTO dto);
|
||||
|
||||
}
|
|
@ -1,35 +0,0 @@
|
|||
package com.hzs.third.cabin.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description: 能量仓开机
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/8/10 18:59
|
||||
* @Classname: CabinDeviceOpen
|
||||
* @PackageName: com.hzs.third.cabin.dto
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@Data
|
||||
public class CabinDeviceOpenDTO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -5408924484380798929L;
|
||||
|
||||
/**
|
||||
* 套餐ID(必传)
|
||||
*/
|
||||
private Long packageId;
|
||||
|
||||
/**
|
||||
* 设备code(必传)
|
||||
*/
|
||||
private String serialNumber;
|
||||
|
||||
}
|
|
@ -1,82 +0,0 @@
|
|||
package com.hzs.third.cabin.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description: 能量仓详情DTO
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/8/11 9:54
|
||||
* @Classname: CabinInfoDTO
|
||||
* @PackageName: com.hzs.third.cabin.dto
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@Data
|
||||
public class CabinInfoDTO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 3023891457338964400L;
|
||||
|
||||
/**
|
||||
* 店铺ID(必传)
|
||||
*/
|
||||
private Long storeId;
|
||||
/**
|
||||
* 设备编号(必传)
|
||||
*/
|
||||
private String serialNumber;
|
||||
|
||||
//////////////////// 返回参数 ////////////////////
|
||||
|
||||
/**
|
||||
* 设备ID
|
||||
*/
|
||||
private Long id;
|
||||
/**
|
||||
* 设备名称
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 设备型号
|
||||
*/
|
||||
private String type;
|
||||
/**
|
||||
* 设备地址
|
||||
*/
|
||||
private String address;
|
||||
/**
|
||||
* 运行状态(0=未使用,1=运行中,2=暂停(老设备使用))
|
||||
*/
|
||||
private Integer runState;
|
||||
/**
|
||||
* 最后开启时间(直接是年月日时分秒,2023-08-11 10:21:22)
|
||||
*/
|
||||
private Date lastOpenTime;
|
||||
/**
|
||||
* 最后的套餐时⻓
|
||||
*/
|
||||
private Integer lastOpenDuration;
|
||||
/**
|
||||
* 设备类型(1=4G,2=蓝⽛,3=4G&蓝⽛,4=mqtt)
|
||||
*/
|
||||
private Integer deviceType;
|
||||
/**
|
||||
* mqtt 通信是否在线(0=不是,1=是)
|
||||
*/
|
||||
private Integer mqttType;
|
||||
/**
|
||||
* mqtt 最后一次通信信息(100623010008,0,0,0,0,0,0,1,18,235,1691987769 -- 设备号,剩余工作时长,当前能量,当前能将,蜂鸣器,工作状态,错误码,网络状态,网络信号值,校验位要,秒级时间戳)
|
||||
*/
|
||||
private String mqttInfo;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String memo;
|
||||
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
package com.hzs.third.cabin.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Description: 能量仓套餐DTO
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/8/10 18:20
|
||||
* @Classname: CabinPackageDTO
|
||||
* @PackageName: com.hzs.third.cabin.dto
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@Data
|
||||
public class CabinPackageDTO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 7406391624983226295L;
|
||||
|
||||
/**
|
||||
* 三方套餐ID(新增不传,修改传)
|
||||
*/
|
||||
private Long packageId;
|
||||
|
||||
/**
|
||||
* 套餐名称(必传)
|
||||
*/
|
||||
private String packageName;
|
||||
|
||||
/**
|
||||
* 套餐时长(必传)
|
||||
*/
|
||||
private Integer unitTime;
|
||||
|
||||
/**
|
||||
* 套餐金额(不需要传,默认按0元处理)
|
||||
*/
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
package com.hzs.third.pay;
|
||||
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.EApprovalBusiness;
|
||||
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
|
||||
|
||||
/**
|
||||
* @Description: 在线支付等dubbo服务api
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/4/7 18:08
|
||||
* @Classname: IOnlineAgentServiceApi
|
||||
* @PackageName: com.hzs.third.pay
|
||||
*/
|
||||
public interface IOnlineServiceApi {
|
||||
|
||||
/**
|
||||
* 三方服务信息处理回调
|
||||
*
|
||||
* @param approvalBusinessResultDTO
|
||||
* @return
|
||||
*/
|
||||
R<Boolean> approvalCallback(ApprovalBusinessResultDTO approvalBusinessResultDTO);
|
||||
|
||||
/**
|
||||
* 三方服务信息签呈查询
|
||||
*
|
||||
* @param eApprovalBusiness 业务类型
|
||||
* @param businessCode 业务单号
|
||||
* @return
|
||||
*/
|
||||
R queryApprovalData(EApprovalBusiness eApprovalBusiness, String businessCode);
|
||||
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
package com.hzs.third.pay;
|
||||
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.domain.third.pay.TOnlinePayment;
|
||||
|
||||
public interface ITOnlinePaymentServiceApi {
|
||||
R<TOnlinePayment> getOnlinePayment(String orderNo);
|
||||
R<String> refund(String orderNo, Long userId);
|
||||
}
|
|
@ -34,7 +34,6 @@
|
|||
<module>bd-api-sale</module>
|
||||
<module>bd-api-system</module>
|
||||
<module>bd-api-third</module>
|
||||
<module>bd-api-scm</module>
|
||||
</modules>
|
||||
|
||||
</project>
|
||||
|
|
|
@ -44,7 +44,7 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
|
|||
for (SaOrderExt saOrderExt : saOrderExtList) {
|
||||
orderIdSet.add(saOrderExt.getPkMember());
|
||||
}
|
||||
List<List<?>> cutOrderList = cuMemberBonusSettle.handleCutList(orderIdSet, MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM);
|
||||
List<List<?>> cutOrderList = cuMemberBonusSettle.handleCutList(orderIdSet, MagicNumberConstants.BATCH_QUERY_NUM);
|
||||
cutOrderList.forEach(orderList -> {
|
||||
List<CuMemberRetailRangeExt> rangeExtList = baseMapper.queryCuMemberRetailRangeParent(tableName, orderList);
|
||||
if (rangeExtList.size() > 0) {
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
package com.hzs.bonus.base.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.vertex.BdVertexBonus;
|
||||
|
||||
/**
|
||||
* 体系奖金配置(记录哪个体系走特殊奖金) Mapper 接口
|
||||
*/
|
||||
public interface BdVertexBonusMapper extends BaseMapper<BdVertexBonus> {
|
||||
|
||||
}
|
|
@ -5,6 +5,7 @@ import com.hzs.common.domain.member.base.CuMember;
|
|||
import com.hzs.common.domain.member.detail.CuMemberAwards;
|
||||
import com.hzs.common.domain.member.detail.CuMemberGrade;
|
||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||
import com.hzs.common.domain.vertex.BdVertexBonus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Date;
|
||||
|
@ -44,8 +45,8 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
|
|||
* @param cuMemberAwardsList 修改奖衔的会员
|
||||
*/
|
||||
int updateCuMemberRetailRangeByList(@Param("cuMemberAwardsList") List<CuMemberAwards> cuMemberAwardsList,
|
||||
@Param("period") Integer period,
|
||||
@Param("awardType") Integer awardType);
|
||||
@Param("period") Integer period,
|
||||
@Param("awardType") Integer awardType);
|
||||
|
||||
/**
|
||||
* 更新会员奖衔根据临时表
|
||||
|
@ -94,4 +95,12 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
|
|||
*/
|
||||
List<CuMember> queryCuMemberShareTotal(Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 查询体系奖项列表
|
||||
*
|
||||
* @param pkMember
|
||||
* @return
|
||||
*/
|
||||
List<BdVertexBonus> listVertexBonus(@Param("pkMember") Long pkMember);
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
package com.hzs.bonus.base.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.vertex.BdVertexBonus;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 体系奖金配置(记录哪个体系走特殊奖金) 服务类
|
||||
*/
|
||||
public interface IBdVertexBonusService extends IService<BdVertexBonus> {
|
||||
|
||||
/**
|
||||
* 查询体系奖金map
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Map<Long, List<Integer>> queryVertexBonus();
|
||||
|
||||
}
|
|
@ -5,6 +5,7 @@ import com.hzs.common.domain.member.base.CuMember;
|
|||
import com.hzs.common.domain.member.detail.CuMemberAwards;
|
||||
import com.hzs.common.domain.member.detail.CuMemberGrade;
|
||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||
import com.hzs.common.domain.vertex.BdVertexBonus;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
@ -82,4 +83,13 @@ public interface ICuMemberService extends IService<CuMember> {
|
|||
* 查询可以获得分红的会员人数
|
||||
*/
|
||||
List<CuMember> queryCuMemberShareTotal(Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 查询体系奖项列表
|
||||
*
|
||||
* @param pkMember
|
||||
* @return
|
||||
*/
|
||||
List<BdVertexBonus> listVertexBonus(Long pkMember);
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
package com.hzs.bonus.base.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hzs.bonus.base.mapper.BdVertexBonusMapper;
|
||||
import com.hzs.bonus.base.service.IBdVertexBonusService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.common.domain.vertex.BdVertexBonus;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 体系奖金配置(记录哪个体系走特殊奖金) 服务实现类
|
||||
*/
|
||||
@Service
|
||||
public class BdVertexBonusServiceImpl extends ServiceImpl<BdVertexBonusMapper, BdVertexBonus> implements IBdVertexBonusService {
|
||||
|
||||
@Override
|
||||
public Map<Long, List<Integer>> queryVertexBonus() {
|
||||
HashMap<Long, List<Integer>> resultMap = new HashMap<>();
|
||||
|
||||
List<BdVertexBonus> vertexBonusList = this.list();
|
||||
if (CollectionUtil.isNotEmpty(vertexBonusList)) {
|
||||
for (BdVertexBonus bdVertexBonus : vertexBonusList) {
|
||||
if (resultMap.containsKey(bdVertexBonus.getPkVertex())) {
|
||||
resultMap.get(bdVertexBonus.getPkVertex()).add(bdVertexBonus.getBonusItems());
|
||||
} else {
|
||||
List<Integer> tmpList = new ArrayList<>();
|
||||
tmpList.add(bdVertexBonus.getBonusItems());
|
||||
resultMap.put(bdVertexBonus.getPkVertex(), tmpList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
}
|
|
@ -9,6 +9,7 @@ import com.hzs.common.domain.member.detail.CuMemberAwards;
|
|||
import com.hzs.common.domain.member.detail.CuMemberGrade;
|
||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||
import com.hzs.bonus.base.mapper.CuMemberMapper;
|
||||
import com.hzs.common.domain.vertex.BdVertexBonus;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
|
@ -87,4 +88,8 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
|||
return baseMapper.queryCuMemberShareTotal(pkCountry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BdVertexBonus> listVertexBonus(Long pkMember) {
|
||||
return baseMapper.listVertexBonus(pkMember);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,15 +2,18 @@ package com.hzs.bonus.bonus.controller.api;
|
|||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hzs.bonus.base.service.ICuMemberService;
|
||||
import com.hzs.bonus.bonus.param.BonusParam;
|
||||
import com.hzs.bonus.bonus.service.ICuMemberBonusService;
|
||||
import com.hzs.bonus.bonus.vo.*;
|
||||
import com.hzs.common.core.enums.EBonusItems;
|
||||
import com.hzs.common.core.enums.EGrantStatus;
|
||||
import com.hzs.common.core.utils.ComputeUtil;
|
||||
import com.hzs.common.core.utils.DateUtils;
|
||||
import com.hzs.common.core.web.controller.BaseController;
|
||||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
import com.hzs.common.domain.member.ext.CuMemberBonusExt;
|
||||
import com.hzs.common.domain.vertex.BdVertexBonus;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -21,10 +24,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/bonus")
|
||||
|
@ -33,6 +33,8 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
|
||||
@Autowired
|
||||
private ICuMemberBonusService iCuMemberBonusService;
|
||||
@Autowired
|
||||
private ICuMemberService iCuMemberService;
|
||||
|
||||
/**
|
||||
* 新零售实时奖金:查询会员实时奖金,当日的奖金
|
||||
|
@ -45,6 +47,9 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
bonusParam.setEndDate(DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.currentDate()));
|
||||
bonusParam.setGrantStatus(EGrantStatus.SETTLED.getValue());
|
||||
|
||||
// 控制复购级差收益的返回
|
||||
final boolean rangeIncomeFlag = this.checkRangeIncome();
|
||||
|
||||
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberSecondBonusVoByCondition(bonusParam);
|
||||
List<MemberBonusVO> memberBonusVOList = new ArrayList<>();
|
||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||
|
@ -52,10 +57,17 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
MemberBonusVO memberBonusVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusVO.class, "settleDate");
|
||||
memberBonusVO.setServiceSpend(BigDecimal.ZERO);
|
||||
memberBonusVO.setSettleDate(DateUtils.currentDate());
|
||||
BigDecimal serviceSpend = ComputeUtil.computeSubtract(ComputeUtil.computeAddNum(cuMemberBonus.getRetailRangeIncome(), cuMemberBonus.getRetailSameLevelIncome(),
|
||||
cuMemberBonus.getRetailAreaIncome()),
|
||||
cuMemberBonus.getRetailRealSubtotal());
|
||||
BigDecimal serviceSpend = ComputeUtil.computeSubtract(
|
||||
ComputeUtil.computeAddNum(cuMemberBonus.getRetailRangeIncome(), cuMemberBonus.getRetailSameLevelIncome(),
|
||||
cuMemberBonus.getRetailAreaIncome()), cuMemberBonus.getRetailRealSubtotal()
|
||||
);
|
||||
memberBonusVO.setBackPoints(serviceSpend);
|
||||
|
||||
if (!rangeIncomeFlag) {
|
||||
// 没有复购级差
|
||||
memberBonusVO.setRepurRangeIncome(null);
|
||||
}
|
||||
|
||||
memberBonusVOList.add(memberBonusVO);
|
||||
}
|
||||
});
|
||||
|
@ -63,7 +75,7 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 新零售实时奖金:查询会员奖金列表
|
||||
* 新零售日结奖金:查询会员奖金列表
|
||||
*/
|
||||
@PostMapping("/query-bonus-first")
|
||||
public TableDataInfo listFirstRepurchaseBonus(@RequestBody BonusParam bonusParam) {
|
||||
|
@ -71,17 +83,24 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
|
||||
List<CuMemberBonusExt> cuMemberBonusList = iCuMemberBonusService.queryMemberBonusVoByCondition(bonusParam);
|
||||
|
||||
// 控制复购级差收益的返回
|
||||
final boolean rangeIncomeFlag = this.checkRangeIncome();
|
||||
|
||||
List<MemberBonusFirstPurchaseVO> firstPurchaseVOList = new ArrayList<>();
|
||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||
MemberBonusFirstPurchaseVO memberBonusFirstPurchaseVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusFirstPurchaseVO.class, "settleDate");
|
||||
packageSettleDate(cuMemberBonus, memberBonusFirstPurchaseVO);
|
||||
if (!rangeIncomeFlag) {
|
||||
// 没有复购级差
|
||||
memberBonusFirstPurchaseVO.setRepurRangeIncome(null);
|
||||
}
|
||||
firstPurchaseVOList.add(memberBonusFirstPurchaseVO);
|
||||
});
|
||||
return getDataTable(firstPurchaseVOList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新零售实时奖金:查询会员昨日奖金汇总
|
||||
* 新零售日结奖金:查询会员昨日奖金汇总
|
||||
*/
|
||||
@PostMapping("/query-bonus-total")
|
||||
public TableDataInfo lisBonusTotal(@RequestBody BonusParam bonusParam) {
|
||||
|
@ -158,8 +177,24 @@ public class ApiCuMemberBonusController extends BaseController {
|
|||
public TableDataInfo listBonusSource(@RequestBody BonusParam bonusParam) {
|
||||
setBonusParam(bonusParam);
|
||||
startPage();
|
||||
TableDataInfo tableDataInfo = iCuMemberBonusService.queryMemberBonusDetailVoByCondition(bonusParam);
|
||||
return tableDataInfo;
|
||||
return iCuMemberBonusService.queryMemberBonusDetailVoByCondition(bonusParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验是否有复购级差
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private boolean checkRangeIncome() {
|
||||
List<BdVertexBonus> vertexBonusList = iCuMemberService.listVertexBonus(SecurityUtils.getUserId());
|
||||
if (CollectionUtil.isNotEmpty(vertexBonusList)) {
|
||||
for (BdVertexBonus bdVertexBonus : vertexBonusList) {
|
||||
if (EBonusItems.REPURCHASE_RANGE_INCOME.getValue() == bdVertexBonus.getBonusItems()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -104,11 +104,7 @@ public class CuMemberBonusController extends BaseController {
|
|||
private List<BonusTotalVO> getBonusTotalVoS(List<CuMemberBonusExt> cuMemberBonusList) {
|
||||
List<BonusTotalVO> totalVoList = new ArrayList<>();
|
||||
cuMemberBonusList.forEach(cuMemberBonus -> {
|
||||
BonusTotalVO bonusTotalVO = BeanUtil.copyProperties(cuMemberBonus, BonusTotalVO.class);
|
||||
for (String key : CuMemberBonusVO.INCOME_ARRAY) {
|
||||
ReflectUtils.invokeSetter(bonusTotalVO, key + BonusFieldConstants.INCOME_SUFFIX, ComputeUtil.computeMultiply(ReflectUtils.invokeGetter(cuMemberBonus, key), cuMemberBonus.getOutExchangeRate()));
|
||||
}
|
||||
totalVoList.add(bonusTotalVO);
|
||||
totalVoList.add(BeanUtil.copyProperties(cuMemberBonus, BonusTotalVO.class));
|
||||
});
|
||||
return totalVoList;
|
||||
}
|
||||
|
|
|
@ -179,14 +179,9 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
|||
// 奖金币(首购+复购+云代+海粉+嗨粉+店铺)
|
||||
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRealIncomeTotal(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||
// 重销币(商城重消+平台服务费)
|
||||
// BigDecimal repeat = ComputeUtil.computeAdd(cuMemberBonus.getBackPoints(), cuMemberBonus.getServiceSpend());
|
||||
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPEAT.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getBackPoints(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||
// 复购券
|
||||
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPURCHASE.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRepurCouponSubtotal(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||
// 环球积分
|
||||
// packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.GLOBAL_POINTS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getGlobalPoints(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||
// 车奖积分
|
||||
// packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.CAR_AWARD_POINTS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getCarAwardPoints(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||
});
|
||||
List<Long> seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size());
|
||||
// 新增流水明细,记录奖金明细的发放状态、消费明细
|
||||
|
@ -241,7 +236,6 @@ public class BonusGrantServiceImpl implements IBonusGrantService {
|
|||
// 奖金币(首购+复购+云代+海粉+嗨粉+店铺)
|
||||
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRealIncomeTotal(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||
// 重销币(商城重消+平台服务费)
|
||||
// BigDecimal repeat = ComputeUtil.computeAdd(cuMemberBonus.getBackPoints(), cuMemberBonus.getServiceSpend());
|
||||
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPEAT.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getBackPoints(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||
// 复购券
|
||||
packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPURCHASE.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRepurCouponSubtotal(), currencyDTO.getOutExchangeRate()), settleDate);
|
||||
|
|
|
@ -143,6 +143,23 @@ public abstract class BonusSettleHandle {
|
|||
cuMemberBonusRange.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得 复购极差收益 备注
|
||||
*
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusRange 报单服务费
|
||||
* @param sourceMemberRangeExt 提供奖金的人
|
||||
* @param targetMemberRangeExt 获得奖金的人
|
||||
*/
|
||||
protected void rangeRepurchaseRetailRemark(SaOrder saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRetailRangeExt sourceMemberRangeExt,
|
||||
CuMemberRetailRangeExt targetMemberRangeExt) {
|
||||
String remark = String.format(BonusMsgConstants.RETAIL_REPURCHASE_INCOME, saOrderExt.getOrderCode(),
|
||||
sourceMemberRangeExt.getMemberCode() + sourceMemberRangeExt.getMemberName(),
|
||||
targetMemberRangeExt.getMemberCode() + targetMemberRangeExt.getMemberName(),
|
||||
cuMemberBonusRange.getCalAchieve(), targetMemberRangeExt.getGradeName());
|
||||
cuMemberBonusRange.setRemark(remark);
|
||||
}
|
||||
|
||||
protected CuMemberBonus getCuMemberBonus(Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
||||
Long pkMember, Integer incomeStatus, Integer pkCountry, Integer pkRate) {
|
||||
if (cuMemberBonusMap.containsKey(pkMember)) {
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.hzs.bonus.bonus.service.impl;
|
|||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
|
||||
import com.hzs.bonus.base.service.IBdVertexBonusService;
|
||||
import com.hzs.bonus.base.service.ICuMemberService;
|
||||
import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
|
||||
import com.hzs.bonus.detail.service.ICuMemberAwardsService;
|
||||
|
@ -20,13 +21,12 @@ import com.hzs.common.domain.bonus.BdBonusDeduct;
|
|||
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
|
||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
||||
import com.hzs.common.domain.member.bonus.*;
|
||||
import com.hzs.common.domain.member.detail.CuMemberAwards;
|
||||
import com.hzs.common.domain.member.detail.CuMemberGrade;
|
||||
import com.hzs.common.domain.member.detail.CuMemberLevel;
|
||||
import com.hzs.common.domain.member.detail.CuMemberServiceLog;
|
||||
import com.hzs.common.domain.member.detail.*;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderWaresExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.sale.wares.ext.WaresRangeTmp;
|
||||
import com.hzs.common.domain.system.config.BdAwards;
|
||||
import com.hzs.common.domain.system.config.BdGrade;
|
||||
import com.hzs.member.detail.ICuMemberServiceLogServiceApi;
|
||||
|
@ -59,6 +59,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
private ICuMemberService iCuMemberService;
|
||||
@Autowired
|
||||
private IBonusOrderService iBonusOrderService;
|
||||
@Autowired
|
||||
private IBdVertexBonusService iBdVertexBonusService;
|
||||
|
||||
@DubboReference
|
||||
ICuMemberServiceLogServiceApi iCuMemberServiceLogServiceApi;
|
||||
|
@ -110,6 +112,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
|
||||
// 当期的手动激活的记录列表
|
||||
Map<Long, Date> activateMap = this.getActivateMap(saOrderExt.getPayTime());
|
||||
// 查询体系奖项配置
|
||||
Map<Long, List<Integer>> vertexBonusMap = iBdVertexBonusService.queryVertexBonus();
|
||||
|
||||
// 计算自消费奖衔
|
||||
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||
|
@ -176,8 +180,18 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
||||
}
|
||||
|
||||
// TODO 2025.07.04 部分体系单独奖项处理
|
||||
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
||||
// 复购订单级差数据map(key:订单ID,value:订单明细+级差)
|
||||
Map<Long, List<SaOrderItemsExt>> rangeOrderMap = iBonusOrderService.getWaresRange(Collections.singletonList(saOrderExt));
|
||||
// 复购订单
|
||||
cuMemberBonusRangeList.addAll(this.calculateRepurchaseRangeBonus(saOrderExt, memberRangeExtMap, vertexBonusMap, rangeOrderMap,
|
||||
bonusConfigDTO, currentPeriod, cuMemberBonusMap));
|
||||
}
|
||||
|
||||
// 回退会员等级
|
||||
iCuMemberGradeService.updateCuMemberGrade(secondRangeTableName, saOrderExt.getPkId());
|
||||
|
||||
if (cuMemberGradeList.size() > 0) {
|
||||
// 插入会员等级升级记录
|
||||
iCuMemberGradeService.insertCuMemberGrade(cuMemberGradeList);
|
||||
|
@ -423,18 +437,25 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
* 计算新零售团队的奖金,极差、平级、福利、福利分红、区域
|
||||
*/
|
||||
void calculateRetailBonusByDay(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, BonusRecordDetailVO bonusRecordDetailVO,
|
||||
Integer period, Integer yesterdayPeriod, Boolean isSameMonth) {
|
||||
Integer period, Integer yesterdayPeriod, Boolean isSameMonth, Map<Long, List<Integer>> vertexBonusMap) {
|
||||
// 结算期间日期
|
||||
Date settleStartDate = DateUtils.parseStringToDate(settleDate);
|
||||
// 结算期间日期后一天
|
||||
Date settleEndDate = DateUtils.afterDate(1, ChronoUnit.DAYS, settleStartDate);
|
||||
|
||||
// 所有有效订单列表
|
||||
List<SaOrderExt> retailOrderList = new ArrayList<>();
|
||||
// 复购订单列表
|
||||
List<SaOrderExt> repurchaseOrderList = new ArrayList<>();
|
||||
// 新零售订单
|
||||
List<SaOrderExt> orderList = iBonusOrderService.queryRetailSaOrderByDay(settleStartDate, settleEndDate, null);
|
||||
for (SaOrderExt saOrderExt : orderList) {
|
||||
if (saOrderExt.getDelFlag() == EYesNo.YES.getIntValue()) {
|
||||
retailOrderList.add(saOrderExt);
|
||||
if (EOrderType.REPURCHASE_ORDER.getValue() == saOrderExt.getOrderType()) {
|
||||
// 复购订单
|
||||
repurchaseOrderList.add(saOrderExt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -458,6 +479,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
Map<Long, Date> activateMap = this.getActivateMap(settleStartDate);
|
||||
|
||||
if (retailOrderList.size() > 0) {
|
||||
// 复购订单级差数据map(key:订单ID,value:订单明细+级差)
|
||||
Map<Long, List<SaOrderItemsExt>> rangeOrderMap = new HashMap<>();
|
||||
if (CollectionUtil.isNotEmpty(repurchaseOrderList)) {
|
||||
rangeOrderMap = iBonusOrderService.getWaresRange(repurchaseOrderList);
|
||||
}
|
||||
|
||||
Map<Long, CuMemberLevel> memberLevelMap = new HashMap<>();
|
||||
List<CuMemberLevel> memberLevelList = iCuMemberGradeService.calculateCuMemberRetailGradeInit(period, settleStartDate, settleEndDate, rangeTableName);
|
||||
memberLevelList.forEach(cuMemberLevel -> memberLevelMap.put(cuMemberLevel.getPkOrder(), cuMemberLevel));
|
||||
|
@ -488,6 +515,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
List<BdAwards> awardsList = bonusConfigDTO.getAwardsList();
|
||||
awardsList.forEach(bdAwards -> retailAwardsMap.put(bdAwards.getAwardsValue(), bdAwards));
|
||||
|
||||
// 会员转map
|
||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
||||
if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||
memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt);
|
||||
|
@ -505,7 +533,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
List<CuMemberGrade> cuMemberGradeList = new ArrayList<>();
|
||||
// 会员奖衔升级记录
|
||||
List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
|
||||
// 平级收益
|
||||
// 平级收益 + 复购级差收益
|
||||
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
|
||||
// 会员奖金明细
|
||||
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
|
||||
|
@ -583,7 +611,15 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
if (cuMemberBonusDetail != null) {
|
||||
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
||||
}
|
||||
|
||||
// TODO 2025.07.04 部分体系单独奖项处理
|
||||
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
||||
// 复购订单
|
||||
cuMemberBonusRangeList.addAll(this.calculateRepurchaseRangeBonus(saOrderExt, memberRangeExtMap, vertexBonusMap, rangeOrderMap,
|
||||
bonusConfigDTO, period, cuMemberBonusMap));
|
||||
}
|
||||
}
|
||||
|
||||
if (cuMemberBonusRangeList.size() > 0) {
|
||||
if (bonusRecordDetailVO.getCuMemberBonusRangeList() == null) {
|
||||
bonusRecordDetailVO.setCuMemberBonusRangeList(cuMemberBonusRangeList);
|
||||
|
@ -1447,6 +1483,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 团队福利、福利分红等奖金 -- 月奖
|
||||
*
|
||||
* @param settleDateStr 结算日期
|
||||
*/
|
||||
void calculateRetailShareBonus(String settleDateStr, BonusConfigDTO bonusConfigDTO,
|
||||
|
@ -2039,4 +2077,111 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
)
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理复购级差
|
||||
*/
|
||||
private List<CuMemberBonusRange> calculateRepurchaseRangeBonus(SaOrderExt saOrderExt, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
|
||||
Map<Long, List<Integer>> vertexBonusMap, Map<Long, List<SaOrderItemsExt>> rangeOrderMap,
|
||||
BonusConfigDTO bonusConfigDTO, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap) {
|
||||
// 直推级差返回数据
|
||||
List<CuMemberBonusRange> memberBonusRangeList = new ArrayList<>();
|
||||
// 订单会员
|
||||
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||
|
||||
List<Integer> vertexBonusList = vertexBonusMap.get(sourceMemberRangeExt.getPkVertex());
|
||||
if (CollectionUtil.isNotEmpty(vertexBonusList)) {
|
||||
// 存在体系奖项
|
||||
for (Integer bonusItems : vertexBonusList) {
|
||||
if (EBonusItems.REPURCHASE_RANGE_INCOME.getValue() == bonusItems) {
|
||||
// 复购级差收益(key:会员ID,value:复购级差收益)
|
||||
Map<Long, BigDecimal> bonusIncomeMap = new HashMap<>();
|
||||
|
||||
List<SaOrderItemsExt> saOrderItemsExtList = rangeOrderMap.get(saOrderExt.getPkId());
|
||||
for (SaOrderItemsExt saOrderItemsExt : saOrderItemsExtList) {
|
||||
// 级别值比当前等级高的级差数据列表
|
||||
Map<Integer, BigDecimal> itemsRangePriceMap = saOrderItemsExt.getWaresRangeTmpList().stream()
|
||||
.filter(tmpData -> tmpData.getRangeValue().compareTo(sourceMemberRangeExt.getGradeValue()) > 0)
|
||||
.collect(Collectors.toMap(WaresRangeTmp::getRangeValue, WaresRangeTmp::getRangePrice));
|
||||
|
||||
// 临时价格(跟着每一次变动)
|
||||
BigDecimal tmpPrice = saOrderItemsExt.getPrice();
|
||||
// 推荐人
|
||||
long pkParent = sourceMemberRangeExt.getPkParent();
|
||||
// 计算级差
|
||||
while (true) {
|
||||
// 推荐人
|
||||
CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(pkParent);
|
||||
if (null == targetMemberRangeExt) {
|
||||
break;
|
||||
}
|
||||
// 上一级推荐人
|
||||
pkParent = targetMemberRangeExt.getPkParent();
|
||||
|
||||
if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus()
|
||||
|| ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory()
|
||||
|| targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue()
|
||||
|| targetMemberRangeExt.getGradeValue() == EGrade.START_UP.getValue()
|
||||
|| EIncomeStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getIncomeStatus()) {
|
||||
// 停算收益、非正常会员、未激活、等级为顾客、停止收益,直接跳过
|
||||
continue;
|
||||
}
|
||||
// 当前会员等级值
|
||||
int calGradeValue = targetMemberRangeExt.getGradeValue();
|
||||
// 当前会员的级差价格
|
||||
BigDecimal targetRangePrice = itemsRangePriceMap.get(calGradeValue);
|
||||
if (targetRangePrice.compareTo(tmpPrice) < 0) {
|
||||
// 当前级差价格比上一次的低
|
||||
// 差价就是级差收益
|
||||
BigDecimal bonusIncome;
|
||||
if (bonusIncomeMap.containsKey(targetMemberRangeExt.getPkMember())) {
|
||||
bonusIncome = bonusIncomeMap.get(targetMemberRangeExt.getPkMember()).add(tmpPrice.subtract(targetRangePrice));
|
||||
} else {
|
||||
bonusIncome = tmpPrice.subtract(targetRangePrice);
|
||||
}
|
||||
bonusIncomeMap.put(targetMemberRangeExt.getPkMember(), bonusIncome);
|
||||
// 临时价格更新
|
||||
tmpPrice = targetRangePrice;
|
||||
}
|
||||
|
||||
// 最高等级则退出
|
||||
if (calGradeValue == EGrade.S_VIP.getValue()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (bonusIncomeMap.size() > 0) {
|
||||
for (Long key : bonusIncomeMap.keySet()) {
|
||||
// 复购级差收益
|
||||
BigDecimal rangeBonusIncome = bonusIncomeMap.get(key);
|
||||
if (rangeBonusIncome.compareTo(BigDecimal.ZERO) > 0) {
|
||||
CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(key);
|
||||
// 处理复购级差收益
|
||||
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
|
||||
targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
|
||||
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.REPURCHASE_RANGE_INCOME.getValue());
|
||||
CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
||||
cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
|
||||
cuMemberBonusRange.setCalAchieve(saOrderExt.getOrderAmount());
|
||||
cuMemberBonusRange.setPretaxIncome(rangeBonusIncome);
|
||||
cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
||||
cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
||||
cuMemberBonusRange.setPkOrder(saOrderExt.getPkId());
|
||||
rangeRepurchaseRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt);
|
||||
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
|
||||
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
|
||||
cuMemberBonus.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRepurRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
|
||||
setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
|
||||
}
|
||||
memberBonusRangeList.add(cuMemberBonusRange);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return memberBonusRangeList;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.hzs.bonus.bonus.service.impl;
|
|||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
|
||||
import com.hzs.bonus.base.service.IBdVertexBonusService;
|
||||
import com.hzs.bonus.bonus.service.*;
|
||||
import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
|
||||
import com.hzs.bonus.detail.service.ICuRegionAssessService;
|
||||
|
@ -42,48 +43,21 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
|
||||
@Autowired
|
||||
private BonusSettleRangeHandle bonusSettleRangeHandle;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberBonusService cuMemberBonusService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberBonusPushService cuMemberBonusPushService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberBonusExpandService cuMemberBonusExpandService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberBonusCoachService cuMemberBonusCoachService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberBonusDetailService cuMemberBonusDetailService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberBonusRangeService cuMemberBonusRangeService;
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusPushService(ICuMemberBonusPushService cuMemberBonusPushService) {
|
||||
this.cuMemberBonusPushService = cuMemberBonusPushService;
|
||||
}
|
||||
private IBdVertexBonusService iBdVertexBonusService;
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusExpandService(ICuMemberBonusExpandService cuMemberBonusExpandService) {
|
||||
this.cuMemberBonusExpandService = cuMemberBonusExpandService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusCoachService(ICuMemberBonusCoachService cuMemberBonusCoachService) {
|
||||
this.cuMemberBonusCoachService = cuMemberBonusCoachService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusDetailService(ICuMemberBonusDetailService cuMemberBonusDetailService) {
|
||||
this.cuMemberBonusDetailService = cuMemberBonusDetailService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusRangeService(ICuMemberBonusRangeService cuMemberBonusRangeService) {
|
||||
this.cuMemberBonusRangeService = cuMemberBonusRangeService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberBonusService(ICuMemberBonusService cuMemberBonusService) {
|
||||
this.cuMemberBonusService = cuMemberBonusService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存会员奖金
|
||||
|
@ -121,10 +95,12 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
BonusRecordDetailVO recordDetailVO = new BonusRecordDetailVO();
|
||||
// 今天和昨天是否同月
|
||||
Boolean isSameMonth = DateUtils.getMonth(settleDate).equals(DateUtils.getMonth(yesterday));
|
||||
// 查询体系奖项配置
|
||||
Map<Long, List<Integer>> vertexBonusMap = iBdVertexBonusService.queryVertexBonus();
|
||||
|
||||
// 计算新零售团队奖金
|
||||
bonusSettleRangeHandle.calculateRetailBonusByDay(settleDate, cuMemberBonusMap, bonusConfigDTO, recordDetailVO,
|
||||
period, yesterdayPeriod, isSameMonth);
|
||||
period, yesterdayPeriod, isSameMonth, vertexBonusMap);
|
||||
|
||||
// new 每月1号,需要计算4个月奖
|
||||
if (EEnv.TEST.getValue().equals(BdConfig.getEnv())) {
|
||||
|
@ -164,7 +140,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
|
||||
if (CollectionUtil.isNotEmpty(retailOrderList)) {
|
||||
// 会员奖金map
|
||||
Map<Long, CuMemberBonus> cuMemberBonusMap = new HashMap<>(MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM);
|
||||
Map<Long, CuMemberBonus> cuMemberBonusMap = new HashMap<>(MagicNumberConstants.BATCH_UPDATE_NUM);
|
||||
// 订单数据
|
||||
SaOrderExt saOrderExt = retailOrderList.get(0);
|
||||
|
||||
|
|
|
@ -162,7 +162,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
cuMemberBonusExt.setServiceSpend(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setPurRealSubtotal(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRepurPushIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRepurRangeIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRepurExpandIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRepurRealSubtotal(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRepurCoupon(BigDecimal.ZERO);
|
||||
|
@ -173,6 +172,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
cuMemberBonusExt.setRealIncomeTotal(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setStoreIncome(BigDecimal.ZERO);
|
||||
|
||||
cuMemberBonusExt.setRepurRangeIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRetailRangeIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRetailSameLevelIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRetailAreaIncome(BigDecimal.ZERO);
|
||||
|
@ -213,7 +213,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
cuMemberBonusExt.setServiceSpend(ComputeUtil.computeMultiply(cuMemberBonusExt.getServiceSpend(), inExchangeRate));
|
||||
cuMemberBonusExt.setPurRealSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getPurRealSubtotal(), inExchangeRate));
|
||||
cuMemberBonusExt.setRepurPushIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurPushIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setRepurRangeIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurRangeIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setRepurExpandIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurExpandIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setRepurRealSubtotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurRealSubtotal(), inExchangeRate));
|
||||
cuMemberBonusExt.setRepurCoupon(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurCoupon(), inExchangeRate));
|
||||
|
@ -223,6 +222,8 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
cuMemberBonusExt.setCarAwardPoints(ComputeUtil.computeMultiply(cuMemberBonusExt.getCarAwardPoints(), inExchangeRate));
|
||||
cuMemberBonusExt.setRealIncomeTotal(ComputeUtil.computeMultiply(cuMemberBonusExt.getRealIncomeTotal(), inExchangeRate));
|
||||
cuMemberBonusExt.setStoreIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getStoreIncome(), inExchangeRate));
|
||||
|
||||
cuMemberBonusExt.setRepurRangeIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRepurRangeIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setRetailRangeIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailRangeIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setRetailSameLevelIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailSameLevelIncome(), inExchangeRate));
|
||||
cuMemberBonusExt.setRetailAreaIncome(ComputeUtil.computeMultiply(cuMemberBonusExt.getRetailAreaIncome(), inExchangeRate));
|
||||
|
@ -247,7 +248,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
cuMemberBonusExt.setServiceSpend(ComputeUtil.computeAdd(cuMemberBonusExt.getServiceSpend(), memberBonusExt.getServiceSpend()));
|
||||
cuMemberBonusExt.setPurRealSubtotal(ComputeUtil.computeAdd(cuMemberBonusExt.getPurRealSubtotal(), memberBonusExt.getPurRealSubtotal()));
|
||||
cuMemberBonusExt.setRepurPushIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRepurPushIncome(), memberBonusExt.getRepurPushIncome()));
|
||||
cuMemberBonusExt.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRepurRangeIncome(), memberBonusExt.getRepurRangeIncome()));
|
||||
cuMemberBonusExt.setRepurExpandIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRepurExpandIncome(), memberBonusExt.getRepurExpandIncome()));
|
||||
cuMemberBonusExt.setRepurRealSubtotal(ComputeUtil.computeAdd(cuMemberBonusExt.getRepurRealSubtotal(), memberBonusExt.getRepurRealSubtotal()));
|
||||
cuMemberBonusExt.setRepurCoupon(ComputeUtil.computeAdd(cuMemberBonusExt.getRepurCoupon(), memberBonusExt.getRepurCoupon()));
|
||||
|
@ -258,6 +258,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
cuMemberBonusExt.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonusExt.getRealIncomeTotal(), memberBonusExt.getRealIncomeTotal()));
|
||||
cuMemberBonusExt.setStoreIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getStoreIncome(), memberBonusExt.getStoreIncome()));
|
||||
|
||||
cuMemberBonusExt.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRepurRangeIncome(), memberBonusExt.getRepurRangeIncome()));
|
||||
cuMemberBonusExt.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRetailRangeIncome(), memberBonusExt.getRetailRangeIncome()));
|
||||
cuMemberBonusExt.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRetailSameLevelIncome(), memberBonusExt.getRetailSameLevelIncome()));
|
||||
cuMemberBonusExt.setRetailAreaIncome(ComputeUtil.computeAdd(cuMemberBonusExt.getRetailAreaIncome(), memberBonusExt.getRetailAreaIncome()));
|
||||
|
@ -287,7 +288,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
cuMemberBonusExt.setServiceSpend(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setPurRealSubtotal(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRepurPushIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRepurRangeIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRepurExpandIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRepurRealSubtotal(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRepurCoupon(BigDecimal.ZERO);
|
||||
|
@ -298,6 +298,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
cuMemberBonusExt.setCarAwardPoints(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRealIncomeTotal(BigDecimal.ZERO);
|
||||
|
||||
cuMemberBonusExt.setRepurRangeIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRetailRangeIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRetailSameLevelIncome(BigDecimal.ZERO);
|
||||
cuMemberBonusExt.setRetailAreaIncome(BigDecimal.ZERO);
|
||||
|
@ -346,9 +347,8 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
memberBonusDetailVO.setSourceMemberName(cuMemberBonusDetail.getSourceMemberName());
|
||||
memberBonusDetailVOList.add(memberBonusDetailVO);
|
||||
});
|
||||
} else if (EBonusItems.BOOT_CARD.getValue() == bonusItemsValue || EBonusItems.DIRECT_INCOME.getValue() == bonusItemsValue ||
|
||||
EBonusItems.HELP_EACH_INCOME.getValue() == bonusItemsValue) {
|
||||
// 启动卡直推 推荐收益
|
||||
} else if (EBonusItems.DIRECT_INCOME.getValue() == bonusItemsValue) {
|
||||
// 直推收益
|
||||
List<CuMemberBonusPushExt> cuMemberBonusPushList = cuMemberBonusPushMapper.queryMemberBonusPushByBonusItems(bonusParam);
|
||||
dataTable = getDataTable(cuMemberBonusPushList);
|
||||
cuMemberBonusPushList.forEach(cuMemberBonusPush -> {
|
||||
|
@ -381,7 +381,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
});
|
||||
} else if (EBonusItems.REPURCHASE_RANGE_INCOME.getValue() == bonusItemsValue) {
|
||||
// 复购极差
|
||||
// 拓展收益、复购拓展收益
|
||||
List<CuMemberBonusRangeExt> cuMemberBonusRangeList = cuMemberBonusRangeMapper.queryMemberBonusRangeByBonusItems(bonusParam);
|
||||
dataTable = getDataTable(cuMemberBonusRangeList);
|
||||
cuMemberBonusRangeList.forEach(cuMemberBonusRange -> {
|
||||
|
@ -446,9 +445,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusDetail, MemberBonusDetailSerVO.class);
|
||||
memberBonusDetailSerVoS.add(memberBonusDetailVO);
|
||||
});
|
||||
} else if (EBonusItems.BOOT_CARD.getValue() == bonusItemsValue
|
||||
|| EBonusItems.DIRECT_INCOME.getValue() == bonusItemsValue
|
||||
|| EBonusItems.HELP_EACH_INCOME.getValue() == bonusItemsValue) {
|
||||
} else if (EBonusItems.DIRECT_INCOME.getValue() == bonusItemsValue) {
|
||||
// 启动卡直推 推荐收益
|
||||
List<CuMemberBonusPushExt> cuMemberBonusPushList = cuMemberBonusPushMapper.queryMemberBonusPushByBonusItemsFoServer(bonusParam);
|
||||
dataTable = getDataTable(cuMemberBonusPushList);
|
||||
|
@ -619,6 +616,7 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
|
|||
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_RANGE_INCOME.getValue());
|
||||
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
|
||||
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_AREA_INCOME.getValue());
|
||||
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.REPURCHASE_RANGE_INCOME.getValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -38,7 +38,7 @@ public class BonusRecordDetailVO implements Serializable {
|
|||
private List<CuMemberBonusDetail> cuMemberBonusDetailList;
|
||||
|
||||
/**
|
||||
* 新零售 - 直推收益、平级收益、福利级差、复购级差
|
||||
* 新零售 - 直推收益、平级收益、月度福利级差、月度复购级差、复购级差
|
||||
*/
|
||||
private List<CuMemberBonusRange> cuMemberBonusRangeList;
|
||||
}
|
||||
|
|
|
@ -60,13 +60,13 @@ public class BonusTotalVO implements Serializable {
|
|||
/**
|
||||
* 新零售福利级差收益
|
||||
*/
|
||||
@Excel(name = "福利级差收益", scale = 2)
|
||||
@Excel(name = "月度福利级差收益", scale = 2)
|
||||
private BigDecimal retailBenefitRangeIncome;
|
||||
|
||||
/**
|
||||
* 新零售复购级差收益
|
||||
*/
|
||||
@Excel(name = "复购级差收益", scale = 2)
|
||||
@Excel(name = "月度复购级差收益", scale = 2)
|
||||
private BigDecimal retailMonthRepurchaseIncome;
|
||||
|
||||
/**
|
||||
|
@ -87,18 +87,23 @@ public class BonusTotalVO implements Serializable {
|
|||
@Excel(name = "福利分红加权收益", scale = 2)
|
||||
private BigDecimal retailBenefitIncome;
|
||||
|
||||
/**
|
||||
* 复购级差收益
|
||||
*/
|
||||
@Excel(name = "复购级差收益", scale = 2)
|
||||
private BigDecimal repurRangeIncome;
|
||||
|
||||
/**
|
||||
* 重消收益
|
||||
*/
|
||||
@Excel(name = "重消收益", scale = 2)
|
||||
private BigDecimal backPointsOri;
|
||||
private BigDecimal backPoints;
|
||||
|
||||
/**
|
||||
* 实发收益总计
|
||||
*/
|
||||
@Excel(name = "实发收益总计", scale = 2)
|
||||
private BigDecimal realIncomeTotalOri;
|
||||
|
||||
private BigDecimal realIncomeTotal;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -154,11 +159,6 @@ public class BonusTotalVO implements Serializable {
|
|||
|
||||
private BigDecimal repurPushIncomeOri;
|
||||
|
||||
/**
|
||||
* 复购级差收益
|
||||
*/
|
||||
private BigDecimal repurRangeIncomeOri;
|
||||
|
||||
/**
|
||||
* 复购拓展收益
|
||||
*/
|
||||
|
@ -267,11 +267,6 @@ public class BonusTotalVO implements Serializable {
|
|||
|
||||
private BigDecimal repurPushIncome;
|
||||
|
||||
/**
|
||||
* 复购级差收益
|
||||
*/
|
||||
private BigDecimal repurRangeIncome;
|
||||
|
||||
/**
|
||||
* 复购拓展收益
|
||||
*/
|
||||
|
@ -287,11 +282,6 @@ public class BonusTotalVO implements Serializable {
|
|||
*/
|
||||
private BigDecimal repurCouponShare;
|
||||
|
||||
/**
|
||||
* 商城重消
|
||||
*/
|
||||
private BigDecimal backPoints;
|
||||
|
||||
/**
|
||||
* 平台服务费
|
||||
*/
|
||||
|
@ -337,10 +327,4 @@ public class BonusTotalVO implements Serializable {
|
|||
*/
|
||||
private BigDecimal repurCouponSubtotal;
|
||||
|
||||
/**
|
||||
* 实发收益总计
|
||||
*/
|
||||
private BigDecimal realIncomeTotal;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -92,7 +92,7 @@ public class CuMemberBonusVO implements Serializable {
|
|||
public static final String[] INCOME_ARRAY = new String[]{
|
||||
"backPoints", "retailRangeIncome", "retailSameLevelIncome", "retailAreaIncome",
|
||||
"retailBenefitRangeIncome", "retailMonthRepurchaseIncome", "coachIncome", "retailBenefitAvgIncome",
|
||||
"retailBenefitIncome", "retailRealSubtotal", "realIncomeTotal"};
|
||||
"retailBenefitIncome", "retailRealSubtotal", "realIncomeTotal", "repurRangeIncome"};
|
||||
|
||||
|
||||
private BigDecimal retailRangeIncome;
|
||||
|
@ -120,14 +120,14 @@ public class CuMemberBonusVO implements Serializable {
|
|||
* 新零售福利级差收益
|
||||
*/
|
||||
private BigDecimal retailBenefitRangeIncome;
|
||||
@Excel(name = " 福利级差收益", scale = 2)
|
||||
@Excel(name = "月度福利级差收益", scale = 2)
|
||||
private BigDecimal retailBenefitRangeIncomeOri;
|
||||
|
||||
/**
|
||||
* 新零售复购级差收益
|
||||
*/
|
||||
private BigDecimal retailMonthRepurchaseIncome;
|
||||
@Excel(name = "复购级差收益", scale = 2)
|
||||
@Excel(name = "月度复购级差收益", scale = 2)
|
||||
private BigDecimal retailMonthRepurchaseIncomeOri;
|
||||
|
||||
/**
|
||||
|
@ -151,6 +151,13 @@ public class CuMemberBonusVO implements Serializable {
|
|||
@Excel(name = " 福利加权收益", scale = 2)
|
||||
private BigDecimal retailBenefitIncomeOri;
|
||||
|
||||
/**
|
||||
* 复购级差收益
|
||||
*/
|
||||
private BigDecimal repurRangeIncome;
|
||||
@Excel(name = "复购级差收益", scale = 2)
|
||||
private BigDecimal repurRangeIncomeOri;
|
||||
|
||||
/**
|
||||
* 商城重消
|
||||
*/
|
||||
|
|
|
@ -55,12 +55,12 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
|
|||
// * 复购拓展收益
|
||||
// */
|
||||
// private BigDecimal repurExpandIncome;
|
||||
//
|
||||
// /**
|
||||
// * 复购级差收益
|
||||
// */
|
||||
// private BigDecimal repurRangeIncome;
|
||||
//
|
||||
|
||||
/**
|
||||
* 复购级差收益
|
||||
*/
|
||||
private BigDecimal repurRangeIncome;
|
||||
|
||||
// /**
|
||||
// * 复购实发小计
|
||||
// */
|
||||
|
|
|
@ -160,6 +160,12 @@ public class MemberBonusVO implements Serializable {
|
|||
*/
|
||||
private BigDecimal retailBenefitIncome;
|
||||
|
||||
/**
|
||||
* 复购级差收益
|
||||
*/
|
||||
@BigDecimalFormat("#0.0000")
|
||||
private BigDecimal repurRangeIncome;
|
||||
|
||||
/**
|
||||
* 新零售收益小计
|
||||
*/
|
||||
|
|
|
@ -71,7 +71,7 @@ public class CuMemberAssessDetailServiceImpl extends ServiceImpl<CuMemberAssessD
|
|||
@Override
|
||||
public void deleteCuMemberAssessDetailByList(List<CuMemberAssessDetail> revokeDetailList) {
|
||||
List<List<?>> handleCutList = cuMemberBonusSettle.handleCutList(revokeDetailList,
|
||||
MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM);
|
||||
MagicNumberConstants.BATCH_UPDATE_NUM);
|
||||
handleCutList.forEach(list -> {
|
||||
baseMapper.updateCuMemberAssessDetailByRevoke(list);
|
||||
});
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.hzs.bonus.order.mapper;
|
||||
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
|
@ -40,4 +41,12 @@ public interface BonusOrderMapper {
|
|||
@Param("endDate") Date endDate,
|
||||
@Param("orderType") List<Integer> orderType);
|
||||
|
||||
/**
|
||||
* 查询订单商品级差数据
|
||||
*
|
||||
* @param orderList 订单列表
|
||||
* @return
|
||||
*/
|
||||
List<SaOrderItemsExt> listOrderWaresRange(@Param("orderList") List<SaOrderExt> orderList);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
package com.hzs.bonus.order.service;
|
||||
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface IBonusOrderService {
|
||||
|
||||
|
@ -30,4 +32,12 @@ public interface IBonusOrderService {
|
|||
*/
|
||||
List<SaOrder> listSaOrderByTime(Date startDate, Date endDate, List<Integer> orderType);
|
||||
|
||||
/**
|
||||
* 查询商品级差数据
|
||||
*
|
||||
* @param orderList
|
||||
* @return
|
||||
*/
|
||||
Map<Long, List<SaOrderItemsExt>> getWaresRange(List<SaOrderExt> orderList);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,21 +1,26 @@
|
|||
package com.hzs.bonus.order.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle;
|
||||
import com.hzs.bonus.order.mapper.BonusOrderMapper;
|
||||
import com.hzs.bonus.order.service.IBonusOrderService;
|
||||
import com.hzs.common.core.constant.MagicNumberConstants;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
public class BonusOrderServiceImpl implements IBonusOrderService {
|
||||
|
||||
@Resource
|
||||
private BonusOrderMapper bonusOrderMapper;
|
||||
@Autowired
|
||||
private CuMemberBonusSettle cuMemberBonusSettle;
|
||||
|
||||
@Override
|
||||
public List<SaOrderExt> queryRetailSaOrderByDay(Date startDate, Date endDate, String orderCode) {
|
||||
|
@ -36,4 +41,26 @@ public class BonusOrderServiceImpl implements IBonusOrderService {
|
|||
return bonusOrderMapper.listSaOrderByTime(startDate, endDate, orderType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Long, List<SaOrderItemsExt>> getWaresRange(List<SaOrderExt> orderList) {
|
||||
Map<Long, List<SaOrderItemsExt>> resultMap = new HashMap<>();
|
||||
|
||||
List<SaOrderItemsExt> resultList = new ArrayList<>();
|
||||
List<List<?>> handleCutList = cuMemberBonusSettle.handleCutList(orderList, MagicNumberConstants.BATCH_UPDATE_NUM);
|
||||
handleCutList.forEach(list -> {
|
||||
resultList.addAll(bonusOrderMapper.listOrderWaresRange(orderList));
|
||||
});
|
||||
for (SaOrderItemsExt saOrderItemsExt : resultList) {
|
||||
if (resultMap.containsKey(saOrderItemsExt.getPkOrder())) {
|
||||
resultMap.get(saOrderItemsExt.getPkOrder()).add(saOrderItemsExt);
|
||||
} else {
|
||||
List<SaOrderItemsExt> tmpList = new ArrayList<>();
|
||||
tmpList.add(saOrderItemsExt);
|
||||
resultMap.put(saOrderItemsExt.getPkOrder(), tmpList);
|
||||
}
|
||||
}
|
||||
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,28 +1,11 @@
|
|||
package com.hzs.bonus.swing.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.member.achieve.ext.CuMemberAchieveExt;
|
||||
import com.hzs.common.domain.member.swing.CuMemberSwingNetLog;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员甩网业绩记录 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2024-03-05
|
||||
*/
|
||||
public interface CuMemberSwingNetLogMapper extends BaseMapper<CuMemberSwingNetLog> {
|
||||
|
||||
/*
|
||||
* @description: 更新或修改甩网业绩记录
|
||||
* @author: sui q
|
||||
* @date: 2024/3/5 11:23
|
||||
* @param: null null
|
||||
**/
|
||||
void mergeCuMemberSwingNetLogByAchieve(@Param("cuMemberAchieveExtList") List<CuMemberAchieveExt> cuMemberAchieveExtList,
|
||||
@Param("settleTableName") String settleTableName);
|
||||
}
|
||||
|
|
|
@ -1,26 +1,11 @@
|
|||
package com.hzs.bonus.swing.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.member.achieve.ext.CuMemberAchieveExt;
|
||||
import com.hzs.common.domain.member.swing.CuMemberSwingNetLog;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员甩网业绩记录 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2024-03-05
|
||||
*/
|
||||
public interface ICuMemberSwingNetLogService extends IService<CuMemberSwingNetLog> {
|
||||
|
||||
/*
|
||||
* @description: 更新或修改甩网业绩记录
|
||||
* @author: sui q
|
||||
* @date: 2024/3/5 11:23
|
||||
* @param: null null
|
||||
**/
|
||||
void mergeCuMemberSwingNetLogByAchieve(List<CuMemberAchieveExt> cuMemberAchieveExtList, String settleTableName);
|
||||
}
|
||||
|
|
|
@ -3,25 +3,13 @@ package com.hzs.bonus.swing.service.impl;
|
|||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.bonus.swing.mapper.CuMemberSwingNetLogMapper;
|
||||
import com.hzs.bonus.swing.service.ICuMemberSwingNetLogService;
|
||||
import com.hzs.common.domain.member.achieve.ext.CuMemberAchieveExt;
|
||||
import com.hzs.common.domain.member.swing.CuMemberSwingNetLog;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员甩网业绩记录 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2024-03-05
|
||||
*/
|
||||
@Service
|
||||
public class CuMemberSwingNetLogServiceImpl extends ServiceImpl<CuMemberSwingNetLogMapper, CuMemberSwingNetLog> implements ICuMemberSwingNetLogService {
|
||||
|
||||
@Override
|
||||
public void mergeCuMemberSwingNetLogByAchieve(List<CuMemberAchieveExt> cuMemberAchieveExtList, String settleTableName) {
|
||||
baseMapper.mergeCuMemberSwingNetLogByAchieve(cuMemberAchieveExtList, settleTableName);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -398,6 +398,7 @@
|
|||
bw.benefit_avg_ratio,
|
||||
bw.benefit_share_ratio,
|
||||
br.name country_name,
|
||||
a.pk_vertex,
|
||||
bv.region_vertex_pk_id
|
||||
from (
|
||||
select * from ${tableName}
|
||||
|
@ -694,6 +695,7 @@
|
|||
a.pk_share_awards,
|
||||
cm.income_status,
|
||||
cm.pay_time,
|
||||
cm.pk_vertex,
|
||||
nvl(b.pk_rate, bt.pk_id) pk_rate,
|
||||
nvl(cm.is_activate, a.enable_status) enable_status,
|
||||
a.new_box_num,
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?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.hzs.ground.product.mapper.ThApprovalLogMapper">
|
||||
<mapper namespace="com.hzs.bonus.base.mapper.BdVertexBonusMapper">
|
||||
|
||||
|
||||
</mapper>
|
|
@ -343,4 +343,14 @@
|
|||
when matched then
|
||||
update set a.pk_settle_grade = b.pk_grade, a.modified_time = sysdate
|
||||
</update>
|
||||
|
||||
<!-- 查询体系奖项列表 -->
|
||||
<select id="listVertexBonus" resultType="com.hzs.common.domain.vertex.BdVertexBonus">
|
||||
select * from cu_member cm
|
||||
left join bd_vertex_bonus bvb
|
||||
on bvb.pk_vertex = cm.pk_vertex
|
||||
where cm.pk_id = #{pkMember}
|
||||
order by cm.pk_id desc
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -47,7 +47,6 @@
|
|||
<result column="SETTLE_COUNTRY" property="settleCountry"/>
|
||||
<result column="PERIOD" property="period"/>
|
||||
<result column="pk_source_country" property="pkSourceCountry"/>
|
||||
|
||||
<result column="service_code" property="serviceCode"/>
|
||||
<result column="pk_vertex" property="pkVertex"/>
|
||||
<result column="nick_name" property="nickName"/>
|
||||
|
@ -67,7 +66,7 @@
|
|||
#{item.calType}, #{item.calAchieve, jdbcType=NUMERIC}, #{item.calValue, jdbcType=NUMERIC}, #{item.pretaxIncome, jdbcType=NUMERIC},
|
||||
#{item.incomeTax, jdbcType=NUMERIC}, #{item.realIncome, jdbcType=NUMERIC}, #{item.remark},
|
||||
#{item.incomeRatio, jdbcType=NUMERIC}, #{item.incomeDialRatio, jdbcType=NUMERIC}, #{item.orderDialRatio, jdbcType=NUMERIC},
|
||||
#{item.pkCountry},#{item.pkCreator})
|
||||
#{item.pkCountry}, #{item.pkCreator})
|
||||
</foreach>
|
||||
SELECT 1 FROM dual
|
||||
</insert>
|
||||
|
|
|
@ -84,33 +84,42 @@
|
|||
|
||||
<update id="mergeBackRangeBonusIncome">
|
||||
merge into cu_member_bonus a
|
||||
using(
|
||||
select b.* from bd_bonus_items bt
|
||||
inner join(
|
||||
select pk_bonus,pk_bonus_items, sum(pretax_income) pretax_income,
|
||||
sum(income_tax) income_tax, sum(real_income) real_income from
|
||||
<choose>
|
||||
<when test="bonusValue == 27"> cu_member_bonus_detail </when>
|
||||
<otherwise> cu_member_bonus_range </otherwise>
|
||||
</choose>
|
||||
where del_flag=0 and pk_order= #{pkOrder}
|
||||
group by pk_bonus, pk_bonus_items) b
|
||||
on bt.pk_id = b.pk_bonus_items
|
||||
where bt.bonus_value = #{bonusValue}) b
|
||||
on (a.pk_id = b.pk_bonus)
|
||||
when matched then
|
||||
update set a.retail_real_subtotal=a.retail_real_subtotal-b.real_income,
|
||||
a.back_points=a.back_points-b.income_tax,
|
||||
a.real_income_total=a.real_income_total-b.real_income
|
||||
<if test="bonusValue == 25">
|
||||
,a.retail_range_income = a.retail_range_income - b.pretax_income
|
||||
</if>
|
||||
<if test="bonusValue == 26">
|
||||
,a.retail_same_level_income = a.retail_same_level_income - b.pretax_income
|
||||
</if>
|
||||
<if test="bonusValue == 27">
|
||||
,a.retail_area_income = a.retail_area_income - b.pretax_income
|
||||
</if>
|
||||
using (
|
||||
select b.* from bd_bonus_items bt
|
||||
inner join (
|
||||
select pk_bonus, pk_bonus_items,
|
||||
sum(pretax_income) pretax_income,
|
||||
sum(income_tax) income_tax,
|
||||
sum(real_income) real_income
|
||||
from
|
||||
<choose>
|
||||
<when test="bonusValue == 27">cu_member_bonus_detail</when>
|
||||
<otherwise>cu_member_bonus_range</otherwise>
|
||||
</choose>
|
||||
where del_flag = 0
|
||||
and pk_order= #{pkOrder}
|
||||
group by pk_bonus, pk_bonus_items
|
||||
) b
|
||||
on bt.pk_id = b.pk_bonus_items
|
||||
where bt.bonus_value = #{bonusValue}
|
||||
) b
|
||||
on (a.pk_id = b.pk_bonus)
|
||||
when matched then
|
||||
update set a.retail_real_subtotal = a.retail_real_subtotal - b.real_income,
|
||||
a.back_points = a.back_points - b.income_tax,
|
||||
a.real_income_total = a.real_income_total - b.real_income
|
||||
<if test="bonusValue == 8">
|
||||
,a.repur_range_income = a.repur_range_income - b.pretax_income
|
||||
</if>
|
||||
<if test="bonusValue == 25">
|
||||
,a.retail_range_income = a.retail_range_income - b.pretax_income
|
||||
</if>
|
||||
<if test="bonusValue == 26">
|
||||
,a.retail_same_level_income = a.retail_same_level_income - b.pretax_income
|
||||
</if>
|
||||
<if test="bonusValue == 27">
|
||||
,a.retail_area_income = a.retail_area_income - b.pretax_income
|
||||
</if>
|
||||
</update>
|
||||
|
||||
<delete id="deleteCuMemberBonus">
|
||||
|
@ -178,21 +187,25 @@
|
|||
using(
|
||||
select pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping,
|
||||
expand_capping,coach_income,share_income,service_income,back_points,service_spend,
|
||||
pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal,
|
||||
pur_real_subtotal,repur_push_income,
|
||||
repur_range_income,
|
||||
repur_expand_income,repur_real_subtotal,
|
||||
cloud_direct_income,cloud_pur_income,cloud_repur_income,cloud_real_subtotal,
|
||||
repur_coupon,repur_coupon_subtotal,global_points,
|
||||
car_award_points,hi_fun_income,hai_fun_income,retail_range_income,retail_same_level_income,retail_area_income,
|
||||
retail_benefit_range_income,retail_benefit_avg_income,
|
||||
retail_benefit_income,retail_real_subtotal,
|
||||
maker_direct_income,maker_share_income,maker_real_subtotal,real_income_total,
|
||||
pk_country,pk_creator,grant_status,income_status from(
|
||||
car_award_points,hi_fun_income,hai_fun_income,
|
||||
retail_range_income, retail_same_level_income, retail_area_income,
|
||||
retail_benefit_range_income, retail_benefit_avg_income, retail_benefit_income,
|
||||
retail_real_subtotal, maker_direct_income,maker_share_income, maker_real_subtotal, real_income_total,
|
||||
pk_country, pk_creator, grant_status, income_status
|
||||
from (
|
||||
<foreach item="item" index="index" collection="cuMemberBonusList" separator=" union ">
|
||||
select #{item.pkId} pk_id,#{item.pkMember} pk_member,#{item.period} period,#{item.pkRate} pk_rate,
|
||||
#{item.directIncome} direct_income,#{item.expandIncome} expand_income,#{item.expandNoCapping} expand_no_capping,
|
||||
#{item.expandCapping} expand_capping,#{item.coachIncome} coach_income,#{item.shareIncome} share_income,
|
||||
#{item.serviceIncome} service_income,#{item.backPoints} back_points,#{item.serviceSpend} service_spend,
|
||||
#{item.purRealSubtotal} pur_real_subtotal,#{item.repurPushIncome} repur_push_income,
|
||||
#{item.repurRangeIncome} repur_range_income,#{item.repurExpandIncome} repur_expand_income,
|
||||
#{item.repurRangeIncome} repur_range_income,
|
||||
#{item.repurExpandIncome} repur_expand_income,
|
||||
#{item.repurRealSubtotal} repur_real_subtotal,#{item.cloudDirectIncome} cloud_direct_income,
|
||||
#{item.cloudPurIncome} cloud_pur_income,#{item.cloudRepurIncome} cloud_repur_income,
|
||||
#{item.cloudRealSubtotal} cloud_real_subtotal,#{item.repurCoupon} repur_coupon,
|
||||
|
@ -201,11 +214,12 @@
|
|||
#{item.haiFunIncome} hai_fun_income,#{item.makerDirectIncome} maker_direct_income,
|
||||
#{item.makerShareIncome} maker_share_income,#{item.makerRealSubtotal} maker_real_subtotal,
|
||||
#{item.realIncomeTotal} real_income_total,#{item.pkCountry} pk_country,#{item.pkCreator} pk_creator,
|
||||
#{item.grantStatus} grant_status,#{item.incomeStatus} income_status,
|
||||
#{item.retailRangeIncome} retail_range_income,#{item.retailSameLevelIncome} retail_same_level_income,
|
||||
#{item.retailAreaIncome} retail_area_income,#{item.retailBenefitRangeIncome} retail_benefit_range_income,
|
||||
#{item.retailBenefitAvgIncome} retail_benefit_avg_income,#{item.retailBenefitIncome} retail_benefit_income,
|
||||
#{item.retailRealSubtotal} retail_real_subtotal from dual
|
||||
#{item.grantStatus} grant_status, #{item.incomeStatus} income_status,
|
||||
#{item.retailRangeIncome} retail_range_income, #{item.retailSameLevelIncome} retail_same_level_income,
|
||||
#{item.retailAreaIncome} retail_area_income, #{item.retailBenefitRangeIncome} retail_benefit_range_income,
|
||||
#{item.retailBenefitAvgIncome} retail_benefit_avg_income, #{item.retailBenefitIncome} retail_benefit_income,
|
||||
#{item.retailRealSubtotal} retail_real_subtotal
|
||||
from dual
|
||||
</foreach>)
|
||||
) b
|
||||
on (a.pk_member = b.pk_member and a.period = b.period)
|
||||
|
@ -216,31 +230,44 @@
|
|||
a.coach_income=a.coach_income+b.coach_income,a.share_income=a.share_income+b.share_income,
|
||||
a.service_income=a.service_income+b.service_income,a.back_points=a.back_points+b.back_points,a.service_spend=a.service_spend+b.service_spend,
|
||||
a.pur_real_subtotal=a.pur_real_subtotal+b.pur_real_subtotal,a.repur_push_income=a.repur_push_income+b.repur_push_income,
|
||||
a.repur_range_income=a.repur_range_income+b.repur_range_income,a.repur_expand_income=a.repur_expand_income+b.repur_expand_income,
|
||||
a.repur_range_income = a.repur_range_income + b.repur_range_income,
|
||||
a.repur_expand_income=a.repur_expand_income+b.repur_expand_income,
|
||||
a.repur_real_subtotal=a.repur_real_subtotal+b.repur_real_subtotal,a.cloud_direct_income=a.cloud_direct_income+b.cloud_direct_income,
|
||||
a.cloud_pur_income=a.cloud_pur_income+b.cloud_pur_income,a.cloud_repur_income=a.cloud_repur_income+b.cloud_repur_income,
|
||||
a.cloud_real_subtotal=a.cloud_real_subtotal+b.cloud_real_subtotal,a.repur_coupon=a.repur_coupon+b.repur_coupon,
|
||||
a.global_points=a.global_points+b.global_points,a.car_award_points=a.car_award_points+b.car_award_points,
|
||||
a.hi_fun_income=a.hi_fun_income+b.hi_fun_income,a.real_income_total=a.real_income_total+b.real_income_total,
|
||||
a.retail_range_income=a.retail_range_income+b.retail_range_income,a.retail_same_level_income=a.retail_same_level_income+b.retail_same_level_income,
|
||||
a.retail_area_income=a.retail_area_income+b.retail_area_income,a.retail_benefit_range_income=a.retail_benefit_range_income+b.retail_benefit_range_income,
|
||||
a.retail_benefit_avg_income=a.retail_benefit_avg_income+b.retail_benefit_avg_income,a.retail_benefit_income=a.retail_benefit_income+b.retail_benefit_income,
|
||||
a.retail_real_subtotal=a.retail_real_subtotal+b.retail_real_subtotal
|
||||
a.retail_range_income = a.retail_range_income + b.retail_range_income,
|
||||
a.retail_same_level_income = a.retail_same_level_income + b.retail_same_level_income,
|
||||
a.retail_area_income = a.retail_area_income + b.retail_area_income,
|
||||
a.retail_benefit_range_income = a.retail_benefit_range_income + b.retail_benefit_range_income,
|
||||
a.retail_benefit_avg_income = a.retail_benefit_avg_income + b.retail_benefit_avg_income,
|
||||
a.retail_benefit_income = a.retail_benefit_income + b.retail_benefit_income,
|
||||
a.retail_real_subtotal = a.retail_real_subtotal + b.retail_real_subtotal
|
||||
when not matched then
|
||||
insert (pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping,
|
||||
insert (
|
||||
pk_id,pk_member,period,pk_rate,direct_income,expand_income,expand_no_capping,
|
||||
expand_capping,coach_income,share_income,service_income,back_points,service_spend,
|
||||
pur_real_subtotal,repur_push_income,repur_range_income,repur_expand_income,repur_real_subtotal,
|
||||
pur_real_subtotal,repur_push_income,
|
||||
repur_range_income,
|
||||
repur_expand_income,repur_real_subtotal,
|
||||
cloud_direct_income,cloud_pur_income,cloud_repur_income,cloud_real_subtotal,
|
||||
repur_coupon,global_points,car_award_points,hi_fun_income,real_income_total,
|
||||
pk_country,pk_creator,grant_status,income_status,retail_range_income,retail_same_level_income,
|
||||
retail_area_income,retail_benefit_range_income,retail_benefit_avg_income,retail_benefit_income,retail_real_subtotal)
|
||||
values(b.pk_id,b.pk_member,b.period,b.pk_rate,b.direct_income,b.expand_income,b.expand_no_capping,
|
||||
pk_country,pk_creator,grant_status,income_status,
|
||||
retail_range_income, retail_same_level_income, retail_area_income,
|
||||
retail_benefit_range_income, retail_benefit_avg_income, retail_benefit_income,
|
||||
retail_real_subtotal)
|
||||
values (
|
||||
b.pk_id,b.pk_member,b.period,b.pk_rate,b.direct_income,b.expand_income,b.expand_no_capping,
|
||||
b.expand_capping,b.coach_income,b.share_income,b.service_income,b.back_points,b.service_spend,
|
||||
b.pur_real_subtotal,b.repur_push_income,b.repur_range_income,b.repur_expand_income,b.repur_real_subtotal,
|
||||
b.pur_real_subtotal,b.repur_push_income,
|
||||
b.repur_range_income,
|
||||
b.repur_expand_income,b.repur_real_subtotal,
|
||||
b.cloud_direct_income,b.cloud_pur_income,b.cloud_repur_income,b.cloud_real_subtotal,
|
||||
b.repur_coupon,b.global_points,b.car_award_points,b.hi_fun_income,b.real_income_total,
|
||||
b.pk_country,b.pk_creator,b.grant_status,b.income_status,b.retail_range_income,b.retail_same_level_income,
|
||||
b.retail_area_income,b.retail_benefit_range_income,b.retail_benefit_avg_income,b.retail_benefit_income,
|
||||
b.pk_country,b.pk_creator,b.grant_status,b.income_status,
|
||||
b.retail_range_income, b.retail_same_level_income, b.retail_area_income,
|
||||
b.retail_benefit_range_income, b.retail_benefit_avg_income, b.retail_benefit_income,
|
||||
b.retail_real_subtotal)
|
||||
</insert>
|
||||
|
||||
|
@ -257,15 +284,14 @@
|
|||
cb.service_spend,
|
||||
cb.pur_real_subtotal,
|
||||
cb.repur_push_income,
|
||||
cb.repur_range_income,
|
||||
cb.repur_expand_income,
|
||||
cb.repur_real_subtotal,
|
||||
cb.repur_coupon,
|
||||
cb.repur_coupon_share,
|
||||
cb.repur_coupon_subtotal,
|
||||
cb.store_income,
|
||||
cb.global_points,
|
||||
cb.car_award_points,
|
||||
cb.global_points, cb.car_award_points,
|
||||
cb.repur_range_income,
|
||||
cb.retail_range_income,
|
||||
cb.retail_same_level_income,
|
||||
cb.retail_area_income,
|
||||
|
@ -298,10 +324,11 @@
|
|||
bv.vertex_name, ct.team_name,
|
||||
cb.period,cp.settle_date,cb.direct_income,cb.expand_income,cb.expand_no_capping,
|
||||
cb.expand_capping,cb.share_income,cb.service_income,cb.back_points,cb.service_spend,
|
||||
cb.pur_real_subtotal,cb.repur_push_income,cb.repur_range_income,cb.repur_expand_income,cb.repur_real_subtotal,
|
||||
cb.pur_real_subtotal,cb.repur_push_income,cb.repur_expand_income,cb.repur_real_subtotal,
|
||||
cb.repur_coupon,cb.repur_coupon_share,cb.repur_coupon_subtotal,cb.store_income,
|
||||
cb.global_points,cb.car_award_points,cb.pk_rate,bc.out_exchange_rate,
|
||||
cb.coach_income,
|
||||
cb.repur_range_income,
|
||||
cb.retail_range_income, cb.retail_same_level_income, cb.retail_area_income,
|
||||
cb.retail_benefit_range_income, cb.retail_month_repurchase_income,
|
||||
cb.retail_benefit_avg_income, cb.retail_benefit_income,cb.retail_real_subtotal,
|
||||
|
@ -392,7 +419,6 @@
|
|||
nvl(sum(cb.service_spend),0) service_spend,
|
||||
nvl(sum(cb.pur_real_subtotal),0) pur_real_subtotal,
|
||||
nvl(sum(cb.repur_push_income),0) repur_push_income,
|
||||
nvl(sum(cb.repur_range_income),0) repur_range_income,
|
||||
nvl(sum(cb.repur_expand_income),0) repur_expand_income,
|
||||
nvl(sum(cb.repur_real_subtotal),0) repur_real_subtotal,
|
||||
nvl(sum(cb.repur_coupon),0) repur_coupon,
|
||||
|
@ -402,6 +428,7 @@
|
|||
nvl(sum(cb.global_points),0) global_points,
|
||||
nvl(sum(cb.car_award_points),0) car_award_points,
|
||||
bc.out_exchange_rate,
|
||||
nvl(sum(cb.repur_range_income),0) repur_range_income,
|
||||
nvl(sum(cb.retail_range_income),0) retail_range_income,
|
||||
nvl(sum(cb.retail_same_level_income),0) retail_same_level_income,
|
||||
nvl(sum(cb.retail_area_income),0) retail_area_income,
|
||||
|
@ -487,11 +514,12 @@
|
|||
sum(cb.share_income) share_income, sum(cb.service_spend) service_spend,
|
||||
sum(cb.service_income) service_income, sum(cb.back_points) back_points,
|
||||
sum(cb.pur_real_subtotal) pur_real_subtotal,
|
||||
sum(cb.repur_push_income) repur_push_income, sum(cb.repur_range_income) repur_range_income,
|
||||
sum(cb.repur_push_income) repur_push_income,
|
||||
sum(cb.repur_expand_income) repur_expand_income, sum(cb.repur_real_subtotal) repur_real_subtotal,
|
||||
sum(cb.repur_coupon) repur_coupon, sum(repur_coupon_share) repur_coupon_share,
|
||||
sum(cb.repur_coupon_subtotal) repur_coupon_subtotal,
|
||||
sum(cb.global_points) global_points, sum(cb.car_award_points) car_award_points,
|
||||
sum(cb.repur_range_income) repur_range_income,
|
||||
sum(cb.retail_range_income) retail_range_income,
|
||||
sum(cb.retail_same_level_income) retail_same_level_income,
|
||||
sum(cb.retail_area_income) retail_area_income,
|
||||
|
|
|
@ -85,7 +85,6 @@
|
|||
</collection>
|
||||
</resultMap>
|
||||
|
||||
|
||||
<!-- 订单+详情返回映射 -->
|
||||
<resultMap id="saOrderExtResultMap" type="com.hzs.common.domain.sale.ext.SaOrderExt" extends="SaOrder">
|
||||
<result column="MEMBER_CODE" property="memberCode"/>
|
||||
|
@ -329,4 +328,69 @@
|
|||
and #{endDate} > so.pay_time
|
||||
</select>
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="SaOrderItems" type="com.hzs.common.domain.sale.ext.SaOrderItemsExt">
|
||||
<result column="PK_ORDER" property="pkOrder"/>
|
||||
<result column="PK_ID" property="pkId"/>
|
||||
<result column="PRICE" property="price"/>
|
||||
<result column="PK_WARES" property="pkWares"/>
|
||||
<result column="PK_PRODUCT" property="pkProduct"/>
|
||||
<result column="PK_WARES_DETAIL" property="pkWaresDetail"/>
|
||||
<result column="PK_WARES_SPECS_SKU" property="pkWaresSpecsSku"/>
|
||||
<collection property="waresRangeTmpList" ofType="com.hzs.common.domain.sale.wares.ext.WaresRangeTmp">
|
||||
<result column="RANGE_PRICE" property="rangePrice"/>
|
||||
<result column="RANGE_VALUE" property="rangeValue"/>
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
<!-- 查询商品级差数据 -->
|
||||
<select id="listOrderWaresRange" resultType="com.hzs.common.domain.sale.ext.SaOrderItemsExt">
|
||||
select soi.pk_order,
|
||||
soi.pk_id,
|
||||
soi.price,
|
||||
bwr.pk_wares,
|
||||
bwr.pk_product,
|
||||
bwr.pk_wares_detail,
|
||||
bwr.pk_wares_specs_sku,
|
||||
bwr.price range_price,
|
||||
br.range_value
|
||||
from (select so.pk_id pk_order,
|
||||
soi.pk_id,
|
||||
soi.pk_wares,
|
||||
soi.pk_product,
|
||||
soi.pk_wares_detail,
|
||||
soi.pk_wares_specs_sku,
|
||||
soi.price
|
||||
from sa_order so
|
||||
left join sa_order_items soi
|
||||
on soi.pk_order = so.pk_id
|
||||
where so.del_flag = 0
|
||||
and soi.del_flag = 0
|
||||
and soi.is_gift = 1
|
||||
and so.order_code in
|
||||
<foreach collection="orderList" item="items" open="(" separator="," close=")">
|
||||
#{items.orderCode}
|
||||
</foreach>
|
||||
group by so.pk_id,
|
||||
soi.pk_id,
|
||||
soi.pk_wares,
|
||||
soi.pk_product,
|
||||
soi.pk_wares_detail,
|
||||
soi.pk_wares_specs_sku,
|
||||
soi.price) soi
|
||||
left join bd_wares_range bwr
|
||||
on bwr.pk_wares = soi.pk_wares
|
||||
and bwr.pk_product = soi.pk_product
|
||||
and bwr.pk_wares_detail = soi.pk_wares_detail
|
||||
and bwr.pk_wares_specs_sku = soi.pk_wares_specs_sku
|
||||
left join bd_range br
|
||||
on br.pk_id = bwr.pk_range
|
||||
and br.del_flag = 0
|
||||
order by bwr.pk_wares,
|
||||
bwr.pk_product,
|
||||
bwr.pk_wares_detail,
|
||||
bwr.pk_wares_specs_sku,
|
||||
br.range_value
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -2,58 +2,4 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.hzs.bonus.swing.mapper.CuMemberSwingNetLogMapper">
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="CuMemberSwingNetLog" type="com.hzs.common.domain.member.swing.CuMemberSwingNetLog">
|
||||
<id column="PK_ID" property="pkId" />
|
||||
<result column="CREATION_TIME" property="creationTime" />
|
||||
<result column="MODIFIED_TIME" property="modifiedTime" />
|
||||
<result column="DEL_FLAG" property="delFlag" />
|
||||
<result column="PK_CREATOR" property="pkCreator" />
|
||||
<result column="PK_MODIFIED" property="pkModified" />
|
||||
<result column="PK_COUNTRY" property="pkCountry" />
|
||||
<result column="PK_MEMBER" property="pkMember" />
|
||||
<result column="PERIOD" property="period" />
|
||||
<result column="PLACE_DEPT" property="placeDept" />
|
||||
<result column="NET_FIRST_ACHIEVE" property="netFirstAchieve" />
|
||||
<result column="NET_REPURCHASE_ACHIEVE" property="netRepurchaseAchieve" />
|
||||
<result column="NET_REAL_ACHIEVE" property="netRealAchieve" />
|
||||
<result column="A_SUM_PV" property="aSumPv" />
|
||||
<result column="B_SUM_PV" property="bSumPv" />
|
||||
<result column="A_SUM_REAL_PV" property="aSumRealPv" />
|
||||
<result column="B_SUM_REAL_PV" property="bSumRealPv" />
|
||||
<result column="REP_A_SUM_PV" property="repASumPv" />
|
||||
<result column="REP_B_SUM_PV" property="repBSumPv" />
|
||||
</resultMap>
|
||||
<update id="mergeCuMemberSwingNetLogByAchieve">
|
||||
merge into cu_member_swing_net_log a
|
||||
using (
|
||||
select x.*,(x.net_first_achieve+x.net_repurchase_achieve) net_real_achieve,
|
||||
y.a_sum_pv,y.b_sum_pv,y.a_sum_real_pv,y.b_sum_real_pv,y.rep_a_new_pv rep_a_sum_pv,y.rep_b_new_pv rep_b_sum_pv,'100000000' pk_creator from(
|
||||
select pk_member,place_dept,period,pk_country,sum(net_first_achieve) net_first_achieve,
|
||||
sum(net_repurchase_achieve) net_repurchase_achieve from(
|
||||
<foreach collection="cuMemberAchieveExtList" item="item" separator=" union all">
|
||||
select
|
||||
#{item.pkMember} pk_member,#{item.placeDept} place_dept,#{item.period} period,
|
||||
#{item.netFirstAchieve} net_first_achieve,#{item.netRepurchaseAchieve} net_repurchase_achieve,
|
||||
#{item.pkCountry} pk_country from dual
|
||||
</foreach>)
|
||||
group by pk_member,place_dept,period,pk_country) x
|
||||
inner join ${settleTableName} y
|
||||
on x.pk_member=y.pk_member
|
||||
) b
|
||||
on (a.pk_member=b.pk_member and a.period=b.period and a.place_dept=b.place_dept)
|
||||
when matched then
|
||||
update set a.net_first_achieve=b.net_first_achieve,a.net_repurchase_achieve=b.net_repurchase_achieve,
|
||||
a.net_real_achieve=b.net_real_achieve,a.a_sum_pv=b.a_sum_pv,a.b_sum_pv=b.b_sum_pv,
|
||||
a.a_sum_real_pv=b.a_sum_real_pv,a.b_sum_real_pv=b.b_sum_real_pv,
|
||||
a.rep_a_sum_pv=b.rep_a_sum_pv,a.rep_b_sum_pv=b.rep_b_sum_pv,modified_time=sysdate
|
||||
when not matched then
|
||||
insert
|
||||
(PK_ID,pk_member,period,place_dept,net_first_achieve,net_repurchase_achieve,net_real_achieve,
|
||||
a_sum_pv,b_sum_pv,a_sum_real_pv,b_sum_real_pv,rep_a_sum_pv,rep_b_sum_pv,pk_creator,pk_country)
|
||||
values (CU_MEMBER_SWING_NET_LOG_SEQ.NEXTVAL,b.pk_member,b.period,b.place_dept,b.net_first_achieve,
|
||||
b.net_repurchase_achieve,b.net_real_achieve,b.a_sum_pv,b.b_sum_pv,b.a_sum_real_pv,b.b_sum_real_pv,
|
||||
b.rep_a_sum_pv,b.rep_b_sum_pv,b.pk_creator,b.pk_country)
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.hzs.member.base.service.impl;
|
|||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.hzs.common.core.constant.*;
|
||||
|
@ -31,6 +32,7 @@ import com.hzs.common.domain.sale.order.SaOrder;
|
|||
import com.hzs.common.domain.system.config.BdAccount;
|
||||
import com.hzs.common.domain.system.config.BdAwards;
|
||||
import com.hzs.common.domain.system.config.BdGrade;
|
||||
import com.hzs.common.domain.third.pay.TOnlinePayment;
|
||||
import com.hzs.common.util.TransactionUtils;
|
||||
import com.hzs.member.account.dto.BusinessCommissionDTO;
|
||||
import com.hzs.member.account.service.ICuMemberAccountService;
|
||||
|
@ -51,6 +53,7 @@ import com.hzs.system.config.IAccountServiceApi;
|
|||
import com.hzs.system.config.IAreaCurrencyServiceApi;
|
||||
import com.hzs.system.config.IAwardsServiceApi;
|
||||
import com.hzs.system.config.dto.AreaCurrencyDTO;
|
||||
import com.hzs.third.pay.ITOnlinePaymentServiceApi;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||
|
@ -80,6 +83,9 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
@DubboReference
|
||||
ISaOrderServiceApi iSaOrderServiceApi;
|
||||
|
||||
@DubboReference
|
||||
ITOnlinePaymentServiceApi itOnlinePaymentServiceApi;
|
||||
|
||||
@Autowired
|
||||
private MemberToolsHandler memberToolsHandler;
|
||||
@Autowired
|
||||
|
@ -92,6 +98,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
private ICuMemberService cuMemberService;
|
||||
|
||||
private ICuMemberRegisterService cuMemberRegisterService;
|
||||
@Autowired
|
||||
private ICuMemberAccountService iCuMemberAccountService;
|
||||
|
||||
private ICuMemberAccountService cuMemberAccountService;
|
||||
|
||||
|
@ -617,7 +625,14 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
cuMemberRegisterService.updateCuMemberRegister(cuMemberRegister);
|
||||
}
|
||||
|
||||
cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
|
||||
if (saOrder.getPayType().equals(EOrderPayType.WALLET.getValue())) {
|
||||
// 钱包支付,则需要回退金额
|
||||
// 默认回退给创建人
|
||||
cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
|
||||
} else {
|
||||
// 在线支付,处理退款
|
||||
this.handleOnlineRefund(saOrder);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -648,19 +663,16 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
updateWrapperRegister.eq(CuMemberRegister::getPkMember, member.getPkId());
|
||||
cuMemberRegisterService.update(updateWrapperRegister);
|
||||
}
|
||||
|
||||
cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
|
||||
if (saOrder.getPayType().equals(EOrderPayType.WALLET.getValue())) {
|
||||
// 钱包支付,则需要回退金额
|
||||
cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
|
||||
} else {
|
||||
// 在线支付,处理退款
|
||||
this.handleOnlineRefund(saOrder);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description: 自助服务-生成订单
|
||||
* @author: zhang jing
|
||||
* @date: 2023/4/18 17:13
|
||||
* @param: [pkApprove, saOrder, payMemberAccount]
|
||||
* @return: void
|
||||
**/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void selfInsertMemberTrade(SaOrder saOrder, CuMemberAccount cuMemberAccount) {
|
||||
|
@ -878,8 +890,20 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
cuMemberRegister.setPkCountry(saOrder.getPkCountry());
|
||||
cuMemberRegister.setPkModified(saOrder.getPkCreator());
|
||||
cuMemberRegisterService.updateCuMemberRegister(cuMemberRegister);
|
||||
CuMemberAccount payMemberAccount = cuMemberAccountMap.get(saOrder.getPkCreator());
|
||||
cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
|
||||
if (saOrder.getPayType().equals(EOrderPayType.WALLET.getValue())) {
|
||||
// 钱包支付,则需要回退金额
|
||||
CuMemberAccount payMemberAccount = cuMemberAccountMap.get(saOrder.getPkCreator());
|
||||
cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
|
||||
}
|
||||
}
|
||||
for (int i = memberList.size() - 1; i >= 0; i--) {
|
||||
Long pkMember = memberList.get(i);
|
||||
SaOrderExt saOrder = saOrderMap.get(pkMember);
|
||||
|
||||
if (saOrder.getPayType().equals(EOrderPayType.ONLINE.getValue())) {
|
||||
// 在线支付,处理退款
|
||||
this.handleOnlineRefund(saOrder);
|
||||
}
|
||||
}
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
@ -941,12 +965,19 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
}
|
||||
|
||||
// 部分撤单 todo 发货后邮费不退,未发货退邮费
|
||||
if (saOrder.getBackOrderAmount() != null && ComputeUtil.compareValue(saOrder.getBackOrderAmount())) {
|
||||
cancelPartOrderBackAmount(pkApprove, saOrder);
|
||||
if (saOrder.getPayType().equals(EOrderPayType.WALLET.getValue())) {
|
||||
// 钱包支付,则需要回退金额
|
||||
// 部分撤单
|
||||
if (saOrder.getBackOrderAmount() != null && ComputeUtil.compareValue(saOrder.getBackOrderAmount())) {
|
||||
cancelPartOrderBackAmount(pkApprove, saOrder);
|
||||
} else {
|
||||
CuMemberAccount payMemberAccount = iCuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator());
|
||||
// 回退账号余额
|
||||
cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
|
||||
}
|
||||
} else {
|
||||
CuMemberAccount payMemberAccount = cuMemberAccountService.queryCuMemberAccountByPkMember(saOrder.getPkCreator());
|
||||
// 回退账号余额
|
||||
cancelOrderBackAccount(pkApprove, saOrder, payMemberAccount);
|
||||
// 在线支付,处理退款
|
||||
this.handleOnlineRefund(saOrder);
|
||||
}
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
@ -1577,4 +1608,22 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 在线支付退款
|
||||
*
|
||||
* @param saOrder
|
||||
*/
|
||||
private void handleOnlineRefund(SaOrderExt saOrder) {
|
||||
R<TOnlinePayment> onlinePaymentR = itOnlinePaymentServiceApi.getOnlinePayment(saOrder.getOrderCode());
|
||||
if (ObjectUtil.isNotEmpty(onlinePaymentR)) {
|
||||
TOnlinePayment onlinePayment = onlinePaymentR.getData();
|
||||
if (ObjectUtil.isNotEmpty(onlinePayment)) {
|
||||
R<String> result = itOnlinePaymentServiceApi.refund(saOrder.getOrderCode(), saOrder.getPkCreator());
|
||||
if (!result.isSuccess()) {
|
||||
throw new ServiceException(result.getMsg());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -197,23 +197,6 @@ public class CuBonusStatisServiceImpl extends ServiceImpl<CuBonusStatisMapper, C
|
|||
case REPURCHASE_COUPONS:
|
||||
oldBon.setRepurCouponSubtotal(addOrInitializeAmount(oldBon.getRepurCouponSubtotal(), newBon.getRealIncome(), 2));
|
||||
break;
|
||||
case HELP_EACH_INCOME:
|
||||
oldBon.setRepurPushIncome(addOrInitializeAmount(oldBon.getRepurPushIncome(), newBon.getRealIncome(), 2));
|
||||
break;
|
||||
//云代
|
||||
case CLOUD_AGENT_DIRECT_PUSH:
|
||||
oldBon.setAgentIntroduceBonus(addOrInitializeAmount(oldBon.getAgentIntroduceBonus(), newBon.getRealIncome(), 2));
|
||||
break;
|
||||
case CLOUD_AGENT_FIRST_PURCHASE:
|
||||
oldBon.setCloudAgentFirstPurchase(addOrInitializeAmount(oldBon.getCloudAgentFirstPurchase(), newBon.getRealIncome(), 2));
|
||||
break;
|
||||
case CLOUD_AGENT_REPURCHASE:
|
||||
oldBon.setCloudAgentRepurchase(addOrInitializeAmount(oldBon.getCloudAgentRepurchase(), newBon.getRealIncome(), 2));
|
||||
break;
|
||||
//嗨粉直推收益
|
||||
case HI_PINK:
|
||||
oldBon.setHiFunIncome(addOrInitializeAmount(oldBon.getHiFunIncome(), newBon.getRealIncome(), 2));
|
||||
break;
|
||||
}
|
||||
return oldBon;
|
||||
}
|
||||
|
|
|
@ -46,11 +46,6 @@
|
|||
<groupId>com.bd</groupId>
|
||||
<artifactId>bd-api-bonus</artifactId>
|
||||
</dependency>
|
||||
<!-- scm 服务 -->
|
||||
<dependency>
|
||||
<groupId>com.bd</groupId>
|
||||
<artifactId>bd-api-scm</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
|
|
@ -776,7 +776,7 @@ public class ActivityServiceImpl implements IActivityService {
|
|||
@Override
|
||||
public List<BdWaresDetailExt> generateActivityGiftWaresAchieve(Integer specialArea, Integer pkCountry, List<BdWaresDetailExt> bdWaresDetailExtList,
|
||||
String parentCode, CuMember cuMember) {
|
||||
// 兼容进销存处理,没有数据
|
||||
// 兼容处理,没有数据
|
||||
bdWaresDetailExtList = bdWaresDetailExtList.stream().filter(bdWaresDetailExt -> null != bdWaresDetailExt.getPkWares()).collect(Collectors.toList());
|
||||
|
||||
// 商品赠送
|
||||
|
|
|
@ -120,6 +120,9 @@ public class ApiRetailWaresController extends BaseController {
|
|||
param.setPkCountry(SecurityUtils.getPkCountry());
|
||||
// 商品详情
|
||||
RetailWaresDetailVO waresDetailVO = iBdWaresSpecsSkuService.queryWaresDetail(param, cuMemberExt.getPkSettleGrade());
|
||||
if (null == waresDetailVO) {
|
||||
return AjaxResult.error("商品数据不存在,请刷新后重试");
|
||||
}
|
||||
|
||||
// 预计发货时间(秒)
|
||||
if (waresDetailVO.getArrivalTime() != null && waresDetailVO.getCreationTime() != null) {
|
||||
|
|
|
@ -108,15 +108,6 @@ public interface SaDeliverMapper extends BaseMapper<SaDeliver> {
|
|||
*/
|
||||
List<SaDeliver> queryListById(@Param("idList") List<Long> idList, @Param("pkCountry") Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 查询发货单+明细列表
|
||||
*
|
||||
* @param idList 发货单ID列表
|
||||
* @param pkCountry 所属国家
|
||||
* @return
|
||||
*/
|
||||
List<SaDeliverExt> queryDeliverAndItemsList(@Param("idList") List<Long> idList, @Param("pkCountry") Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 获取指定日期最大批次
|
||||
*
|
||||
|
@ -146,12 +137,4 @@ public interface SaDeliverMapper extends BaseMapper<SaDeliver> {
|
|||
@Param("userId") Long userId,
|
||||
@Param("pkCountry") Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 批量查询发货单数据
|
||||
*
|
||||
* @param idList 发货单ID列表
|
||||
* @return
|
||||
*/
|
||||
List<SaDeliver> listDataBatch(@Param("idList") List<Long> idList);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
package com.hzs.sale.deliver.provider;
|
||||
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.domain.sale.ext.SaDeliverExt;
|
||||
import com.hzs.sale.deliver.ISaDeliverServiceApi;
|
||||
import com.hzs.sale.deliver.service.ISaDeliverService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 发货单相关dubbo服务
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/12/19 14:28
|
||||
* @Classname: SaDeliverServiceProvider
|
||||
* @PackageName: com.hzs.sale.deliver.provider
|
||||
*/
|
||||
@Slf4j
|
||||
@DubboService
|
||||
public class SaDeliverServiceProvider implements ISaDeliverServiceApi {
|
||||
|
||||
@Autowired
|
||||
private ISaDeliverService iSaDeliverService;
|
||||
|
||||
@Override
|
||||
public R<List<SaDeliverExt>> queryDeliverList(List<Long> idList, Integer pkCountry) {
|
||||
try {
|
||||
return R.ok(iSaDeliverService.queryDeliverAndItemsList(idList, pkCountry));
|
||||
} catch (Exception e) {
|
||||
log.error("查询发货单及明细数据异常:{}", e.getMessage(), e);
|
||||
return R.fail(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -150,15 +150,6 @@ public interface ISaDeliverService extends IService<SaDeliver> {
|
|||
*/
|
||||
List<SaDeliver> queryListById(List<Long> idList, Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 查询发货单+明细列表
|
||||
*
|
||||
* @param idList 发货单ID列表
|
||||
* @param pkCountry 所属国家
|
||||
* @return
|
||||
*/
|
||||
List<SaDeliverExt> queryDeliverAndItemsList(List<Long> idList, Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 获取批量最大数量
|
||||
*
|
||||
|
@ -167,12 +158,4 @@ public interface ISaDeliverService extends IService<SaDeliver> {
|
|||
*/
|
||||
int getBatchMaxNumber(Integer dayBatch);
|
||||
|
||||
/**
|
||||
* 批量查询发货单数据
|
||||
*
|
||||
* @param idList 发货单ID列表
|
||||
* @return
|
||||
*/
|
||||
List<SaDeliver> listDataBatch(List<Long> idList);
|
||||
|
||||
}
|
||||
|
|
|
@ -29,7 +29,6 @@ import com.hzs.sale.deliver.service.ISaDeliverItemsService;
|
|||
import com.hzs.sale.deliver.service.ISaDeliverService;
|
||||
import com.hzs.sale.order.param.SelfPickUpParam;
|
||||
import com.hzs.sale.order.service.*;
|
||||
import com.hzs.scm.pub.dto.DeliverDTO;
|
||||
import com.hzs.system.base.IBarCodeServiceApi;
|
||||
import com.hzs.system.sys.IApprovalServiceApi;
|
||||
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
|
||||
|
@ -37,7 +36,6 @@ import com.hzs.system.sys.dto.ApprovalSubmitDTO;
|
|||
import com.hzs.system.sys.dto.LoginUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
@ -69,8 +67,6 @@ public class SaDeliverBusinessServiceImpl implements ISaDeliverBusinessService {
|
|||
private ISaDeliverBarCodeService iSaDeliverBarCodeService;
|
||||
@Autowired
|
||||
private ISaOrderSelfLogService saOrderSelfLogService;
|
||||
@Autowired
|
||||
private RabbitTemplate rabbitTemplate;
|
||||
|
||||
@DubboReference
|
||||
IApprovalServiceApi iApprovalServiceApi;
|
||||
|
@ -333,22 +329,6 @@ public class SaDeliverBusinessServiceImpl implements ISaDeliverBusinessService {
|
|||
throw new ServiceException(TransactionUtils.getContent(CommonMsgConstants.APPROVAL_ERROR) + ":" + resultR.getMsg());
|
||||
}
|
||||
}
|
||||
if (saDeliver.getPkId() != null && deliverItemsList.size() > 0) {
|
||||
List<Long> deliverIdList = new ArrayList<>();
|
||||
deliverIdList.add(saDeliver.getPkId());
|
||||
// 推送进销存处理数据
|
||||
rabbitTemplate.convertAndSend(RabbitMqConstants.SCM_DELIVER_EXCHANGE, RabbitMqConstants.SCM_DELIVER_KEY, DeliverDTO.builder()
|
||||
.deliverIdList(deliverIdList)
|
||||
.loginUser(approvalBusinessResultDTO.getLoginUser())
|
||||
.build());
|
||||
// 如果订单仓库跟提货仓库不一致,回退可用量,然后在扣减可用量
|
||||
if (saOrder.getPkStorehouse() != null && !saOrder.getPkStorehouse().equals(pkStorehouse)) {
|
||||
rabbitTemplate.convertAndSend(RabbitMqConstants.AVAILABLE_NMU_BACK_EXCHANGE, RabbitMqConstants.AVAILABLE_NMU_BACK_KEY, saOrder);
|
||||
saOrder.setPkStorehouse(pkStorehouse);
|
||||
saOrder.setDeductFlag(Boolean.TRUE);
|
||||
rabbitTemplate.convertAndSend(RabbitMqConstants.AVAILABLE_NMU_BACK_EXCHANGE, RabbitMqConstants.AVAILABLE_NMU_BACK_KEY, saOrder);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
log.error("订单自提同意处理失败: 更新数据失败");
|
||||
|
|
|
@ -8,7 +8,6 @@ import com.hzs.common.core.utils.CommonUtil;
|
|||
import com.hzs.common.core.utils.StringUtils;
|
||||
import com.hzs.common.domain.sale.deliver.SaDeliver;
|
||||
import com.hzs.common.domain.sale.deliver.SaDeliverItems;
|
||||
import com.hzs.common.domain.sale.ext.SaDeliverExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrderItems;
|
||||
import com.hzs.sale.deliver.mapper.SaDeliverItemsMapper;
|
||||
|
@ -472,21 +471,11 @@ public class SaDeliverServiceImpl extends ServiceImpl<SaDeliverMapper, SaDeliver
|
|||
return baseMapper.queryListById(idList, pkCountry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SaDeliverExt> queryDeliverAndItemsList(List<Long> idList, Integer pkCountry) {
|
||||
return baseMapper.queryDeliverAndItemsList(idList, pkCountry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBatchMaxNumber(Integer dayBatch) {
|
||||
return baseMapper.getBatchMaxNumber(dayBatch);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SaDeliver> listDataBatch(List<Long> idList) {
|
||||
return baseMapper.listDataBatch(idList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除已合单发货单处理
|
||||
*
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
package com.hzs.sale.deliver.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 遥控器
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-05-25
|
||||
*/
|
||||
@Data
|
||||
public class RemoteControlVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* sn编码
|
||||
*/
|
||||
private String snCode;
|
||||
|
||||
/**
|
||||
* 操作码 1:开机 2 关机 设备档位 11:一档,12:二档,13:三挡,14:四挡
|
||||
*/
|
||||
private String operateCode;
|
||||
|
||||
/**
|
||||
* 设备状态 0 离线 1 待机状态 2 设备使用中 3 停用 6 未激活
|
||||
*/
|
||||
private Integer machineState;
|
||||
/**
|
||||
* 设备运行状态 0, "未启动",1, "运行",2, "加水",
|
||||
* 3, "排水",4, "解锁",5, "缺水",6, "锁定",
|
||||
*/
|
||||
private Integer runState;
|
||||
private Integer state;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -1,13 +1,10 @@
|
|||
package com.hzs.sale.order.controller;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hzs.common.core.config.BdConfig;
|
||||
import com.hzs.common.core.constant.CacheConstants;
|
||||
import com.hzs.common.core.constant.CountryConstants;
|
||||
import com.hzs.common.core.constant.HttpStatus;
|
||||
import com.hzs.common.core.constant.msg.MemberMsgConstants;
|
||||
import com.hzs.common.core.constant.msg.ScmMsgConstants;
|
||||
import com.hzs.common.core.enums.*;
|
||||
import com.hzs.common.core.service.RedisService;
|
||||
import com.hzs.common.core.utils.ComputeUtil;
|
||||
|
@ -21,9 +18,6 @@ import com.hzs.common.domain.member.base.CuMember;
|
|||
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
|
||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.scm.ic.IcAvailableNum;
|
||||
import com.hzs.common.domain.scm.ic.ext.IcAvailableNumExt;
|
||||
import com.hzs.common.domain.system.base.BdStorehouse;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.common.util.TransactionUtils;
|
||||
import com.hzs.sale.order.param.OrderItemsParam;
|
||||
|
@ -36,8 +30,6 @@ import com.hzs.sale.shopping.service.IShoppingCartService;
|
|||
import com.hzs.sale.shopping.vo.ProductGroup;
|
||||
import com.hzs.sale.shopping.vo.ShoppingCartRedis;
|
||||
import com.hzs.sale.shopping.vo.ShoppingCartVO;
|
||||
import com.hzs.sale.wares.service.IBdWaresDetailService;
|
||||
import com.hzs.scm.pub.IScmBillServiceApi;
|
||||
import com.hzs.system.base.IAreaServiceApi;
|
||||
import com.hzs.system.base.ICurrencyServiceApi;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
@ -55,8 +47,6 @@ public abstract class ParentOrderController extends BaseController {
|
|||
IAreaServiceApi iAreaServiceApi;
|
||||
@DubboReference
|
||||
ICurrencyServiceApi currencyServiceApi;
|
||||
@DubboReference
|
||||
IScmBillServiceApi scmBillServiceApi;
|
||||
|
||||
private ISaOrderService orderService;
|
||||
|
||||
|
@ -64,13 +54,6 @@ public abstract class ParentOrderController extends BaseController {
|
|||
|
||||
protected RedisService redisService;
|
||||
|
||||
private IBdWaresDetailService bdWaresDetailService;
|
||||
|
||||
@Autowired
|
||||
public void setBdWaresDetailService(IBdWaresDetailService bdWaresDetailService) {
|
||||
this.bdWaresDetailService = bdWaresDetailService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
protected IShoppingCartService shoppingCartService;
|
||||
|
||||
|
@ -359,76 +342,6 @@ public abstract class ParentOrderController extends BaseController {
|
|||
return AjaxResult.success(orderParam);
|
||||
}
|
||||
|
||||
/*
|
||||
* 验证可用量,可用量不足,不能下单
|
||||
**/
|
||||
protected String validateAvailableNum(OrderParam orderParam, String orderCode) {
|
||||
// 验证是否控制进销存
|
||||
if (EYesNo.NO.getIntValue() == BdConfig.getEnable()) {
|
||||
return null;
|
||||
}
|
||||
BdStorehouse bdStorehouse;
|
||||
if (CountryConstants.CHINA_COUNTRY.equals(orderParam.getPkSettleCountry()) || orderParam.getPkStorehouse() == null) {
|
||||
if (orderParam.getRecProvince() != null) {
|
||||
// 根据收货省获取仓库
|
||||
bdStorehouse = currencyServiceApi.queryBdStorehouseByProvince(orderParam.getRecProvince()).getData();
|
||||
} else {
|
||||
return MemberMsgConstants.REQUIRED_NOT_EMPTY;
|
||||
}
|
||||
} else {
|
||||
bdStorehouse = currencyServiceApi.queryBdStorehouseById(orderParam.getPkStorehouse()).getData();
|
||||
}
|
||||
if (bdStorehouse == null) {
|
||||
return ScmMsgConstants.AVAILABLE_NUM_NOT_ENOUGH;
|
||||
}
|
||||
// 验证可用量,根据参数获得产品规格
|
||||
CuMember cuMember = orderService.getCuMemberByKey(orderParam.getCenterCodeId());
|
||||
List<IcAvailableNum> availableNumList = bdWaresDetailService.queryWaresDetailSpecsByCondition(orderParam.getSpecialArea(), orderParam.getPkCountry(), bdStorehouse.getPkCorp(),
|
||||
bdStorehouse.getPkId(), orderParam.getRecProvince(), orderParam.getParent(), cuMember, orderParam.getOrderItemsParams());
|
||||
|
||||
List<IcAvailableNumExt> returnAvailableNumList = new ArrayList<>();
|
||||
List<IcAvailableNum> queryAvailableNumList = new ArrayList<>();
|
||||
if (availableNumList != null && availableNumList.size() > 0) {
|
||||
for (IcAvailableNum icAvailableNum : availableNumList) {
|
||||
if (null != icAvailableNum && null != icAvailableNum.getPreSaleStatus()) {
|
||||
if (EPresaleStatus.PRESALE.getValue() == icAvailableNum.getPreSaleStatus()) {
|
||||
returnAvailableNumList.add(BeanUtil.copyProperties(icAvailableNum, IcAvailableNumExt.class));
|
||||
} else {
|
||||
queryAvailableNumList.add(icAvailableNum);
|
||||
returnAvailableNumList.add(BeanUtil.copyProperties(icAvailableNum, IcAvailableNumExt.class));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (queryAvailableNumList.size() > 0) {
|
||||
List<IcAvailableNumExt> availableNumExtList = scmBillServiceApi.queryAvailableNumByProduct(queryAvailableNumList).getData();
|
||||
if (CollectionUtil.isEmpty(availableNumExtList) || availableNumExtList.size() < queryAvailableNumList.size()) {
|
||||
return ScmMsgConstants.AVAILABLE_NUM_NOT_ENOUGH;
|
||||
}
|
||||
boolean flag = Boolean.FALSE;
|
||||
for (IcAvailableNumExt icAvailableNum : availableNumExtList) {
|
||||
if (icAvailableNum.getPkUnit() != 0) {
|
||||
flag = Boolean.TRUE;
|
||||
break;
|
||||
}
|
||||
icAvailableNum.setOrderCode(orderCode);
|
||||
icAvailableNum.setPkCountry(orderParam.getPkSettleCountry());
|
||||
}
|
||||
if (flag) {
|
||||
return ScmMsgConstants.AVAILABLE_NUM_NOT_ENOUGH;
|
||||
}
|
||||
}
|
||||
Date currentDateTime = DateUtils.currentDateTime();
|
||||
for (IcAvailableNumExt icAvailableNum : returnAvailableNumList) {
|
||||
icAvailableNum.setPkCountry(orderParam.getPkCountry());
|
||||
icAvailableNum.setPkModified(orderParam.getCenterCodeId());
|
||||
icAvailableNum.setModifiedTime(currentDateTime);
|
||||
icAvailableNum.setOrderCode(orderCode);
|
||||
}
|
||||
orderParam.setAvailableNumList(returnAvailableNumList);
|
||||
return null;
|
||||
}
|
||||
|
||||
protected AjaxResult validateFun(OrderParam orderParam) {
|
||||
// 报单中心
|
||||
Long centerCodeId = orderParam.getCenterCodeId();
|
||||
|
|
|
@ -55,11 +55,6 @@ public class ApiFanSaOrderController extends ParentOrderController {
|
|||
if ((Integer) result.get(AjaxResult.CODE_TAG) == HttpStatus.ERROR) {
|
||||
return result;
|
||||
}
|
||||
// 验证可用量
|
||||
String msg = validateAvailableNum(orderParam, null);
|
||||
if (ObjectUtil.isNotEmpty(msg)) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(msg));
|
||||
}
|
||||
convertShoppingCarToSku(orderParam);
|
||||
if (getOrderService().confirmRegSaOrderByOrderParam(orderParam)) {
|
||||
//删除购物车下单的数据
|
||||
|
|
|
@ -18,6 +18,7 @@ import com.hzs.common.domain.sale.ext.SaOrderExt;
|
|||
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.sale.order.SaOrderItems;
|
||||
import com.hzs.common.domain.third.pay.ext.TOnlineRefundExt;
|
||||
import com.hzs.common.security.auth.AuthMemberUtil;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.common.util.TransactionUtils;
|
||||
|
@ -124,6 +125,16 @@ public class ApiOrderController extends BaseController {
|
|||
return tableDataInfo;
|
||||
}
|
||||
|
||||
@GetMapping("/refund-list")
|
||||
public TableDataInfo refundList() {
|
||||
// 返回结果
|
||||
startPage();
|
||||
List<TOnlineRefundExt> list = iSaOrderService.queryRefundList();
|
||||
TableDataInfo tableDataInfo = getDataTable(list);
|
||||
tableDataInfo.setRows(list);
|
||||
return tableDataInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单详情
|
||||
*
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.hzs.sale.order.controller.api;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.hzs.common.core.annotation.RepeatSubmit;
|
||||
import com.hzs.common.core.constant.CacheConstants;
|
||||
import com.hzs.common.core.constant.HttpStatus;
|
||||
|
@ -50,12 +49,6 @@ public class ApiOthSaOrderController extends ParentOrderController {
|
|||
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY));
|
||||
}
|
||||
|
||||
// 验证可用量
|
||||
String msg = validateAvailableNum(orderParam, null);
|
||||
if (ObjectUtil.isNotEmpty(msg)) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(msg));
|
||||
}
|
||||
|
||||
if (!orderService.checkPreSalesQuantity(orderParam)) {
|
||||
// 商品预售数量不足
|
||||
return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.WARES_PRE_SALE_QUANTITY_LACK));
|
||||
|
@ -152,11 +145,6 @@ public class ApiOthSaOrderController extends ParentOrderController {
|
|||
oldOrderParam = orderParam;
|
||||
oldOrderParam.setRecProvince(saOrderExt.getRecProvince());
|
||||
}
|
||||
// 验证可用量
|
||||
String msg = validateAvailableNum(oldOrderParam, saOrderExt.getOrderCode());
|
||||
if (ObjectUtil.isNotEmpty(msg)) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(msg));
|
||||
}
|
||||
// 验证会员账户余额是否足够支付
|
||||
getOrderService().queryOrderSpendDetails(cuMemberAccountExt, saOrderExt, saOrderExt.getOrderItemsList());
|
||||
saOrderExt.setSpecialArea(orderParam.getSpecialArea());
|
||||
|
@ -165,7 +153,6 @@ public class ApiOthSaOrderController extends ParentOrderController {
|
|||
// 升级订单
|
||||
if (EOrderType.UPGRADE_ORDER.getValue() == orderParam.getSpecialArea()) {
|
||||
if (getOrderService().payUpgradeSaOrder(saOrderExt, cuMemberAccountExt)) {
|
||||
getOrderService().convertAvailableNumMsg(oldOrderParam.getAvailableNumList());
|
||||
return AjaxResult.success(saOrderExt);
|
||||
} else {
|
||||
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.LEVEL_NOT_ENOUGH));
|
||||
|
@ -173,7 +160,6 @@ public class ApiOthSaOrderController extends ParentOrderController {
|
|||
} else {
|
||||
// 复购订单
|
||||
if (getOrderService().payRepurchaseSaOrder(saOrderExt, cuMemberAccountExt)) {
|
||||
getOrderService().convertAvailableNumMsg(oldOrderParam.getAvailableNumList());
|
||||
return AjaxResult.success(saOrderExt);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.hzs.sale.order.controller.api;
|
|||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.hzs.common.core.annotation.RepeatSubmit;
|
||||
import com.hzs.common.core.constant.CacheConstants;
|
||||
import com.hzs.common.core.constant.HttpStatus;
|
||||
|
@ -78,11 +77,6 @@ public class ApiRegSaOrderController extends ParentOrderController {
|
|||
if ((Integer) result.get(AjaxResult.CODE_TAG) == HttpStatus.ERROR) {
|
||||
return result;
|
||||
}
|
||||
// 验证可用量
|
||||
String msg = validateAvailableNum(orderParam, null);
|
||||
if (ObjectUtil.isNotEmpty(msg)) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(msg));
|
||||
}
|
||||
convertShoppingCarToSku(orderParam);
|
||||
if (getOrderService().confirmRegSaOrderByOrderParam(orderParam)) {
|
||||
//删除购物车下单的数据
|
||||
|
@ -158,13 +152,7 @@ public class ApiRegSaOrderController extends ParentOrderController {
|
|||
if ((Integer) result.get(AjaxResult.CODE_TAG) == HttpStatus.ERROR) {
|
||||
return result;
|
||||
}
|
||||
// 验证可用量
|
||||
OrderParam oldOrderParam = redisService.getCacheObject(CacheConstants.TEMP_PARAM + SecurityUtils.getUserId() + orderParam.getOrderCode());
|
||||
// 验证可用量
|
||||
String msg = validateAvailableNum(oldOrderParam, saOrderExt.getOrderCode());
|
||||
if (ObjectUtil.isNotEmpty(msg)) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(msg));
|
||||
}
|
||||
CuMemberAccountExt cuMemberAccountExt = (CuMemberAccountExt) result.get(AjaxResult.DATA_TAG);
|
||||
// 对安置位置加锁
|
||||
if (validatePlacePosition(orderParam.getPlaceParentId(), orderParam.getPlaceDept())) {
|
||||
|
@ -175,7 +163,6 @@ public class ApiRegSaOrderController extends ParentOrderController {
|
|||
if (cuMemberAccountExt.getIsPayment()) {
|
||||
// 开始支付 扣款
|
||||
getOrderService().payRegSaOrder(saOrderExt, newCuMember, cuMemberAccountExt, isHaiFun);
|
||||
getOrderService().convertAvailableNumMsg(oldOrderParam.getAvailableNumList());
|
||||
} else {
|
||||
if (StringUtils.isEmpty(cuMemberAccountExt.getErrorMsg())) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.MEMBER_BALANCE_NOT_PAY));
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.hzs.common.domain.sale.ext.SaDeliverItemsExt;
|
|||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.third.pay.ext.TOnlineRefundExt;
|
||||
import com.hzs.sale.index.vo.CuMemberMyMarketDetailVO;
|
||||
import com.hzs.sale.index.vo.CuMemberMyMarketVO;
|
||||
import com.hzs.sale.order.param.*;
|
||||
|
@ -111,6 +112,8 @@ public interface SaOrderMapper extends BaseMapper<SaOrder> {
|
|||
@Param("memberId") Long memberId,
|
||||
@Param("pkCountry") Integer pkCountry);
|
||||
|
||||
List<TOnlineRefundExt> queryRefundList(@Param("userId") Long userId);
|
||||
|
||||
/**
|
||||
* 自助撤单列表
|
||||
**/
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.hzs.sale.order.param;
|
|||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.hzs.common.core.constant.msg.MemberMsgConstants;
|
||||
import com.hzs.common.domain.scm.ic.ext.IcAvailableNumExt;
|
||||
import com.hzs.sale.shopping.vo.ShoppingCartRedis;
|
||||
import com.hzs.sale.ticket.param.BuyTicketParam;
|
||||
import jdk.nashorn.internal.ir.annotations.Ignore;
|
||||
|
@ -295,11 +294,6 @@ public class OrderParam implements Serializable {
|
|||
*/
|
||||
private List<OrderItemsParam> orderItemsParams;
|
||||
|
||||
/**
|
||||
* 用于下单时更新可用量
|
||||
*/
|
||||
private List<IcAvailableNumExt> availableNumList;
|
||||
|
||||
/**
|
||||
* 是否首单
|
||||
*/
|
||||
|
|
|
@ -166,4 +166,13 @@ public class SaOrderServiceProvider implements ISaOrderServiceApi {
|
|||
return R.ok(ComputeUtil.computeAdd(saOrder.getOrderAmount(), saOrder.getPostage()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<SaOrderExt> queryOrderByCode(String orderCode, Long pkMember) {
|
||||
SaOrderExt saOrder = redisService.getCacheObject(CacheConstants.TEMP_ORDER + pkMember + orderCode);
|
||||
if (null == saOrder) {
|
||||
// 直销订单
|
||||
saOrder = iSaOrderService.queryOrderByCode(orderCode, null);
|
||||
}
|
||||
return R.ok(saOrder);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,8 +8,8 @@ import com.hzs.common.domain.member.ext.CuMemberExt;
|
|||
import com.hzs.common.domain.sale.ext.*;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.sale.order.SaOrderItems;
|
||||
import com.hzs.common.domain.scm.ic.ext.IcAvailableNumExt;
|
||||
import com.hzs.common.domain.system.config.BdGrade;
|
||||
import com.hzs.common.domain.third.pay.ext.TOnlineRefundExt;
|
||||
import com.hzs.sale.index.vo.CuMemberMyMarketVO;
|
||||
import com.hzs.sale.order.param.*;
|
||||
import com.hzs.sale.order.vo.*;
|
||||
|
@ -188,11 +188,6 @@ public interface ISaOrderService extends IService<SaOrder> {
|
|||
Boolean payRegSaOrder(SaOrderExt saOrderExt, CuMember newCuMember,
|
||||
CuMemberAccountExt cuMemberAccountExt, Boolean isHaiFun);
|
||||
|
||||
/*
|
||||
* 发送更新可用量的消息
|
||||
**/
|
||||
void convertAvailableNumMsg(List<IcAvailableNumExt> availableNumList);
|
||||
|
||||
/**
|
||||
* 支付升级订单
|
||||
*
|
||||
|
@ -385,6 +380,8 @@ public interface ISaOrderService extends IService<SaOrder> {
|
|||
*/
|
||||
List<SaOrderExt> myOrderList(MyOrderParam param, Long memberId, Integer pkCountry);
|
||||
|
||||
List<TOnlineRefundExt> queryRefundList();
|
||||
|
||||
/**
|
||||
* 自助撤单列表
|
||||
**/
|
||||
|
|
|
@ -2647,15 +2647,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
|
|||
// 新旧订单的订单明细全部插入新订单中,并且变更为未删除
|
||||
iSaOrderItemsService.copyDeductionItems(deductionDTO.getPkOrderOld(), deductionDTO.getPkOrderNew(), userId, nowDate);
|
||||
|
||||
// 推送MQ处理库存(新订单明细回退)
|
||||
newOrder.setPkModified(userId);
|
||||
rabbitTemplate.convertAndSend(RabbitMqConstants.AVAILABLE_NMU_BACK_EXCHANGE, RabbitMqConstants.AVAILABLE_NMU_BACK_KEY, newOrder);
|
||||
|
||||
// 推送MQ处理库存(老订单明细扣减)
|
||||
oldOrder.setDeductFlag(true);
|
||||
oldOrder.setPkModified(userId);
|
||||
rabbitTemplate.convertAndSend(RabbitMqConstants.AVAILABLE_NMU_BACK_EXCHANGE, RabbitMqConstants.AVAILABLE_NMU_BACK_KEY, oldOrder);
|
||||
|
||||
return null;
|
||||
}
|
||||
return "订单金额、业绩、BV存在不相同,不能进行抵扣";
|
||||
|
|
|
@ -32,11 +32,11 @@ import com.hzs.common.domain.member.ext.CuMemberExt;
|
|||
import com.hzs.common.domain.sale.ext.*;
|
||||
import com.hzs.common.domain.sale.order.*;
|
||||
import com.hzs.common.domain.sale.wares.BdWares;
|
||||
import com.hzs.common.domain.scm.ic.ext.IcAvailableNumExt;
|
||||
import com.hzs.common.domain.system.base.BdCountry;
|
||||
import com.hzs.common.domain.system.base.ext.BdProductStorehouseExt;
|
||||
import com.hzs.common.domain.system.config.BdAwards;
|
||||
import com.hzs.common.domain.system.config.BdGrade;
|
||||
import com.hzs.common.domain.third.pay.ext.TOnlineRefundExt;
|
||||
import com.hzs.common.security.service.UserTokenService;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.common.util.TransactionUtils;
|
||||
|
@ -60,7 +60,6 @@ import com.hzs.sale.order.service.*;
|
|||
import com.hzs.sale.order.vo.*;
|
||||
import com.hzs.sale.product.service.IBdProductExtendService;
|
||||
import com.hzs.sale.wares.service.*;
|
||||
import com.hzs.scm.pub.IScmBillServiceApi;
|
||||
import com.hzs.system.base.IAreaServiceApi;
|
||||
import com.hzs.system.base.ICountryServiceApi;
|
||||
import com.hzs.system.base.ICurrencyServiceApi;
|
||||
|
@ -799,21 +798,10 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void convertAvailableNumMsg(List<IcAvailableNumExt> availableNumList) {
|
||||
if (EYesNo.NO.getIntValue() == BdConfig.getEnable()) {
|
||||
return;
|
||||
}
|
||||
log.info("生产活动消息,activity.exchange:{}", JSONUtil.toJsonStr(availableNumList));
|
||||
rabbitTemplate.convertAndSend(RabbitMqConstants.AVAILABLE_NMU_EXCHANGE, RabbitMqConstants.AVAILABLE_NMU_KEY, availableNumList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 尝试重新换位置
|
||||
*
|
||||
* @param newCuMember 修改的会员
|
||||
* @Description: 尝试重新换位置
|
||||
* @return: CuMember
|
||||
* @Author: sui q
|
||||
* @Date: 2022/10/26 9:00
|
||||
*/
|
||||
private synchronized CuMember repeatTry(CuMember newCuMember, Boolean isFirstAchieve) {
|
||||
CuMember cuMember = obtainLastResettleByRecommend(newCuMember, isFirstAchieve, null);
|
||||
|
@ -828,19 +816,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
return cuMember;
|
||||
}
|
||||
|
||||
private void insertSaOrder(SaOrderExt saOrderExt) {
|
||||
redisService.lockKeyMany(CacheConstants.MEMBER_ORDER + saOrderExt.getOrderCode());
|
||||
try {
|
||||
this.save(saOrderExt);
|
||||
for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) {
|
||||
saOrderItems.setPkOrder(saOrderExt.getPkId());
|
||||
}
|
||||
saOrderItemsService.saveBatch(saOrderExt.getOrderItemsList());
|
||||
} finally {
|
||||
redisService.unlock(CacheConstants.MEMBER_ORDER + saOrderExt.getOrderCode());
|
||||
}
|
||||
}
|
||||
|
||||
private void updateSaOrder(SaOrderExt saOrderExt) {
|
||||
redisService.lockKeyMany(CacheConstants.MEMBER_ORDER + saOrderExt.getOrderCode());
|
||||
try {
|
||||
|
@ -1637,6 +1612,11 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
return baseMapper.myOrderList(param, memberId, pkCountry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TOnlineRefundExt> queryRefundList() {
|
||||
return baseMapper.queryRefundList(SecurityUtils.getUserId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SaOrderExt> selfRevokeOrderList(MyOrderParam param, Long memberId, Integer pkCountry) {
|
||||
return baseMapper.selfRevokeOrderList(param, memberId, pkCountry);
|
||||
|
@ -2632,7 +2612,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
* @return
|
||||
*/
|
||||
private BigDecimal handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade, List<BdGrade> gradeList, List<String> boxWaresList,
|
||||
Integer systemType) {
|
||||
Integer systemType) {
|
||||
// 升级盒数基数
|
||||
BigDecimal baseBoxNum = BigDecimal.ZERO;
|
||||
// 会员所有升级记录
|
||||
|
|
|
@ -33,8 +33,6 @@ import com.hzs.sale.product.vo.ProductSpecsVo;
|
|||
import com.hzs.sale.product.vo.ProductVo;
|
||||
import com.hzs.sale.product.vo.SupplierProductCensusVo;
|
||||
import com.hzs.sale.wares.service.IBdWaresDetailService;
|
||||
import com.hzs.scm.product.IProductBasServiceApi;
|
||||
import com.hzs.scm.product.dto.ProductBasDTO;
|
||||
import com.hzs.system.base.ISystemConfigServiceApi;
|
||||
import com.hzs.system.base.dto.BdCubasdocDTO;
|
||||
import com.hzs.system.sys.dto.LoginUser;
|
||||
|
@ -73,8 +71,6 @@ public class BdProductController extends BaseController {
|
|||
|
||||
@DubboReference
|
||||
ISystemConfigServiceApi systemConfigServiceApi;
|
||||
@DubboReference
|
||||
IProductBasServiceApi productBasServiceApi;
|
||||
|
||||
/**
|
||||
* 查询产品列表
|
||||
|
@ -526,43 +522,6 @@ public class BdProductController extends BaseController {
|
|||
return AjaxResult.success(productParams);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询产品详情 根据产品基本信息主键
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/product-bas-detail")
|
||||
public AjaxResult productBasDetail(Integer pkProductBas) {
|
||||
R<ProductBasDTO> productBas = productBasServiceApi.getProductBasById(pkProductBas);
|
||||
BdProduct product = productService.getOne(new LambdaQueryWrapper<BdProduct>().eq(BdProduct::getPkProductBas, pkProductBas).eq(BdProduct::getPkCountry, SecurityUtils.getPkCountry()));
|
||||
|
||||
if (productBas.getData() == null) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(ProductMsgConstants.PRODUCT_NOT_REQUIRED));
|
||||
}
|
||||
ProductParams productParams = BeanUtil.copyProperties(productBas.getData(), ProductParams.class);
|
||||
BdProductExtend productExtend = productExtendService.getProductExtend(product.getPkId());
|
||||
productParams.setIsPickUp(productExtend.getIsPickUp());
|
||||
productParams.setIsPrize(productExtend.getIsPrize());
|
||||
productParams.setIsBarCode(productExtend.getIsBarCode());
|
||||
productParams.setRepurchaseType(productExtend.getRepurchaseType());
|
||||
productParams.setIsMerge(productExtend.getIsMerge());
|
||||
productParams.setIsGift(productExtend.getIsGift());
|
||||
productParams.setIsLandTrans(productExtend.getIsLandTrans());
|
||||
productParams.setIsAirTrans(productExtend.getIsAirTrans());
|
||||
productParams.setIsOceanTrans(productExtend.getIsOceanTrans());
|
||||
productParams.setSort(productExtend.getSort());
|
||||
LambdaQueryWrapper<BdProductSpecs> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(BdProductSpecs::getPkProduct, product.getPkId());
|
||||
List<Integer> pkSpecsType = new ArrayList<>();
|
||||
List<BdProductSpecs> productSpecList = productSpecsService.list(queryWrapper);
|
||||
for (BdProductSpecs bdProductSpecs : productSpecList) {
|
||||
pkSpecsType.add(bdProductSpecs.getPkSpecsType());
|
||||
}
|
||||
productParams.setPkSpecsType(pkSpecsType);
|
||||
productParams.setPkProductBas(productBas.getData().getPkId());
|
||||
return AjaxResult.success(productParams);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return
|
||||
*/
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.hzs.sale.shopping.service.impl;
|
|||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.hzs.common.core.constant.CacheConstants;
|
||||
import com.hzs.common.core.domain.R;
|
||||
|
@ -133,7 +134,7 @@ public class ShoppingCartServiceImpl implements IShoppingCartService {
|
|||
for (String innkey : innerShopMap.keySet()) {
|
||||
String mapValue = innerShopMap.get(innkey);
|
||||
ShoppingCartRedis scr = JSONUtil.toBean(mapValue, ShoppingCartRedis.class);
|
||||
if (scr.getSpecialArea() == value.getValue()) {
|
||||
if (ObjectUtil.isNotEmpty(scr.getSpecialArea()) && scr.getSpecialArea() == value.getValue()) {
|
||||
scv.setSpecialArea(value.getValue());
|
||||
scv.setSpecialAreaVal(value.getLabel());
|
||||
if (pkCountry.equals(scr.getPkCountry())) {
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
package com.hzs.sale.wares.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.member.base.CuMember;
|
||||
import com.hzs.common.domain.sale.ext.BdWaresDetailExt;
|
||||
import com.hzs.common.domain.sale.wares.BdWaresDetail;
|
||||
import com.hzs.common.domain.scm.ic.IcAvailableNum;
|
||||
import com.hzs.sale.order.param.OrderItemsParam;
|
||||
import com.hzs.sale.product.vo.WaresDetailVo;
|
||||
import com.hzs.sale.wares.param.CuProductParams;
|
||||
|
@ -25,15 +23,6 @@ public interface IBdWaresDetailService extends IService<BdWaresDetail> {
|
|||
*/
|
||||
List<BdWaresDetailExt> queryWaresDetailByCondition(Integer specialArea, Integer transType, List<OrderItemsParam> orderItemsParams, Integer systemTyype);
|
||||
|
||||
/**
|
||||
* 根据条件查询商品信息
|
||||
*
|
||||
* @param specialArea 专区
|
||||
* @param orderItemsParams 参数
|
||||
*/
|
||||
List<IcAvailableNum> queryWaresDetailSpecsByCondition(Integer specialArea, Integer pkCountry, Integer pkCorp, Integer pkStorehouse, Integer province,
|
||||
String parentCode, CuMember cuMember, List<OrderItemsParam> orderItemsParams);
|
||||
|
||||
/**
|
||||
* 查询商品编号
|
||||
*
|
||||
|
|
|
@ -3,15 +3,8 @@ package com.hzs.sale.wares.service.impl;
|
|||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.activity.base.service.IActivityService;
|
||||
import com.hzs.common.core.enums.EShippingChannel;
|
||||
import com.hzs.common.core.utils.ComputeUtil;
|
||||
import com.hzs.common.domain.member.base.CuMember;
|
||||
import com.hzs.common.domain.sale.ext.BdWaresDetailExt;
|
||||
import com.hzs.common.domain.sale.wares.BdWaresDetail;
|
||||
import com.hzs.common.domain.scm.ic.IcAvailableNum;
|
||||
import com.hzs.common.domain.scm.pub.ScmItemSpecs;
|
||||
import com.hzs.common.domain.system.base.ext.BdProductStorehouseExt;
|
||||
import com.hzs.sale.order.param.OrderItemsParam;
|
||||
import com.hzs.sale.order.param.WaresItemsParam;
|
||||
import com.hzs.sale.product.vo.WaresDetailVo;
|
||||
|
@ -19,9 +12,6 @@ import com.hzs.sale.wares.mapper.BdWaresDetailMapper;
|
|||
import com.hzs.sale.wares.param.CuProductParams;
|
||||
import com.hzs.sale.wares.service.IBdWaresDetailService;
|
||||
import com.hzs.sale.wares.vo.WaresProductDetailVo;
|
||||
import com.hzs.system.base.IAreaServiceApi;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
@ -36,18 +26,6 @@ import java.util.Map;
|
|||
@Service
|
||||
public class BdWaresDetailServiceImpl extends ServiceImpl<BdWaresDetailMapper, BdWaresDetail> implements IBdWaresDetailService {
|
||||
|
||||
@DubboReference
|
||||
IAreaServiceApi iAreaServiceApi;
|
||||
|
||||
@Autowired
|
||||
private IActivityService iActivityService;
|
||||
|
||||
/**
|
||||
* 根据条件查询商品信息
|
||||
*
|
||||
* @param specialArea 专区
|
||||
* @param transType 运输方式
|
||||
*/
|
||||
@Override
|
||||
public List<BdWaresDetailExt> queryWaresDetailByCondition(Integer specialArea, Integer transType, List<OrderItemsParam> orderItemsParams, Integer systemType) {
|
||||
List<BdWaresDetailExt> bdWaresDetailExtList = new ArrayList<>();
|
||||
|
@ -82,137 +60,24 @@ public class BdWaresDetailServiceImpl extends ServiceImpl<BdWaresDetailMapper, B
|
|||
return bdWaresDetailExtList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<IcAvailableNum> queryWaresDetailSpecsByCondition(Integer specialArea, Integer pkCountry, Integer pkCorp, Integer pkStorehouse, Integer province,
|
||||
String parentCode, CuMember cuMember, List<OrderItemsParam> orderItemsParams) {
|
||||
List<BdWaresDetailExt> bdWaresDetailExtList = new ArrayList<>();
|
||||
for (OrderItemsParam orderItemsParam : orderItemsParams) {
|
||||
for (WaresItemsParam waresItemsParam : orderItemsParam.getWaresItemsParamList()) {
|
||||
BdWaresDetailExt bdWaresDetailExt = BdWaresDetailExt.builder()
|
||||
.waresCode(orderItemsParam.getWaresCode())
|
||||
.pkWaresSpecsSku(waresItemsParam.getPkWaresSpecsSku())
|
||||
.waresQuantity(orderItemsParam.getQuantity())
|
||||
.build();
|
||||
bdWaresDetailExt.setQuantity(waresItemsParam.getQuantity());
|
||||
bdWaresDetailExtList.add(bdWaresDetailExt);
|
||||
}
|
||||
}
|
||||
List<BdWaresDetailExt> waresDetailExtList = baseMapper.queryWaresDetailSpecsByCondition(specialArea, orderItemsParams);
|
||||
if (CollectionUtil.isNotEmpty(waresDetailExtList)) {
|
||||
Map<String, BdWaresDetailExt> bdWaresDetailExtMap = new HashMap<>();
|
||||
waresDetailExtList.forEach(waresDetailExt -> {
|
||||
bdWaresDetailExtMap.put(waresDetailExt.getWaresCode() + waresDetailExt.getPkWaresSpecsSku(), waresDetailExt);
|
||||
});
|
||||
bdWaresDetailExtList.forEach(waresDetailExt -> {
|
||||
String key = waresDetailExt.getWaresCode() + waresDetailExt.getPkWaresSpecsSku();
|
||||
if (bdWaresDetailExtMap.containsKey(key)) {
|
||||
BeanUtil.copyProperties(bdWaresDetailExtMap.get(key), waresDetailExt, "waresQuantity", "quantity");
|
||||
}
|
||||
waresDetailExt.setQuantity(waresDetailExt.getWaresQuantity() * waresDetailExt.getQuantity());
|
||||
});
|
||||
}
|
||||
|
||||
// 活动赠品 赠送封装
|
||||
List<BdWaresDetailExt> newWaresDetailExtList = iActivityService.generateActivityGiftWaresAchieve(specialArea, pkCountry, bdWaresDetailExtList,
|
||||
parentCode, cuMember);
|
||||
if (newWaresDetailExtList.size() > 0) {
|
||||
bdWaresDetailExtList.addAll(newWaresDetailExtList);
|
||||
}
|
||||
|
||||
Map<String, IcAvailableNum> availableNumHashMap = new HashMap<>();
|
||||
// key为产品id
|
||||
List<Integer> productIdList = new ArrayList<>();
|
||||
for (BdWaresDetailExt bdWaresDetailExt : bdWaresDetailExtList) {
|
||||
// 三方品目前不控制库存
|
||||
if (EShippingChannel.A_PIECE.getValue().equals(bdWaresDetailExt.getShippingChannel())) {
|
||||
continue;
|
||||
}
|
||||
if (null != bdWaresDetailExt.getPkProduct()) {
|
||||
// 存在产品信息,才进行后续处理
|
||||
String key = bdWaresDetailExt.getWaresCode() + "_" + bdWaresDetailExt.getPkWaresSpecsSku() + "_" + bdWaresDetailExt.getPkProduct();
|
||||
if (availableNumHashMap.containsKey(key)) {
|
||||
IcAvailableNum availableNum = availableNumHashMap.get(key);
|
||||
availableNum.setAvailableNum(ComputeUtil.computeAdd(availableNum.getAvailableNum(), BigDecimal.valueOf(bdWaresDetailExt.getQuantity())));
|
||||
} else {
|
||||
IcAvailableNum availableNum = IcAvailableNum.builder()
|
||||
.availableNum(BigDecimal.valueOf(bdWaresDetailExt.getQuantity()))
|
||||
.pkProduct(bdWaresDetailExt.getPkProduct())
|
||||
.pkCorp(pkCorp)
|
||||
.pkProductBas(bdWaresDetailExt.getPkProductBas())
|
||||
.pkUnit(bdWaresDetailExt.getPkUnit())
|
||||
.pkStorehouse(pkStorehouse)
|
||||
.preSaleStatus(bdWaresDetailExt.getPreSaleStatus())
|
||||
.build();
|
||||
productIdList.add(bdWaresDetailExt.getPkProduct());
|
||||
List<ScmItemSpecs> scmItemSpecs = BeanUtil.copyToList(bdWaresDetailExt.getWaresSpecsList(), ScmItemSpecs.class);
|
||||
availableNum.setScmItemSpecsList(scmItemSpecs);
|
||||
availableNumHashMap.put(key, availableNum);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (productIdList.size() > 0 && province != null) {
|
||||
// 根据产品,省查看是否由仓库,有仓库的话修改仓库
|
||||
List<BdProductStorehouseExt> bdProductStorehouseList = iAreaServiceApi.queryBdProductStorehouseByCondition(productIdList, province).getData();
|
||||
Map<Integer, BdProductStorehouseExt> bdProductStorehouseMap = new HashMap<>();
|
||||
if (CollectionUtil.isNotEmpty(bdProductStorehouseList)) {
|
||||
bdProductStorehouseList.forEach(bdProductStorehouse -> bdProductStorehouseMap.put(bdProductStorehouse.getPkProduct(), bdProductStorehouse));
|
||||
for (String key : availableNumHashMap.keySet()) {
|
||||
IcAvailableNum icAvailableNum = availableNumHashMap.get(key);
|
||||
if (bdProductStorehouseMap.containsKey(icAvailableNum.getPkProduct())) {
|
||||
BdProductStorehouseExt bdProductStorehouseExt = bdProductStorehouseMap.get(icAvailableNum.getPkProduct());
|
||||
icAvailableNum.setPkCorp(bdProductStorehouseExt.getPkCorp());
|
||||
icAvailableNum.setPkStorehouse(bdProductStorehouseExt.getPkStorehouse().intValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return new ArrayList<>(availableNumHashMap.values());
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询商品编号
|
||||
*
|
||||
* @param waresCode
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<CuProductParams> selectByWaresCode(String waresCode, Integer specialArea, Integer isGift) {
|
||||
return baseMapper.selectByWaresCode(waresCode, specialArea, isGift);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据商品主键查询
|
||||
*
|
||||
* @param pkWares
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<BdWaresDetailExt> selectByPkWares(Integer pkWares) {
|
||||
return baseMapper.selectByPkWares(pkWares);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据产品主键查询商品列表
|
||||
*
|
||||
* @param pkProduct
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<WaresDetailVo> listByPkProduct(List<Integer> pkProduct) {
|
||||
return baseMapper.listByPkProduct(pkProduct);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 商品下产品查询
|
||||
*
|
||||
* @param pkWares
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<WaresProductDetailVo> selectByList(Integer pkWares) {
|
||||
return baseMapper.selectByList(pkWares);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -573,6 +573,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
productList.addAll(productResultList);
|
||||
|
||||
waresDetailVO.setProductList(productList);
|
||||
waresDetailVO.setSpecialArea(param.getSpecialArea());
|
||||
return waresDetailVO;
|
||||
}
|
||||
return null;
|
||||
|
|
|
@ -70,7 +70,7 @@ dubbo:
|
|||
payload: 10485760
|
||||
cloud:
|
||||
# 订阅服务
|
||||
subscribed-services: bd-system, bd-member, bd-third, bd-bonus, bd-scm
|
||||
subscribed-services: bd-system, bd-member, bd-third, bd-bonus
|
||||
scan:
|
||||
# dubbo 服务扫描包(开启之后才会对外提供服务)
|
||||
base-packages: com.hzs
|
||||
|
|
|
@ -535,41 +535,6 @@
|
|||
order by sd.pk_id desc
|
||||
</select>
|
||||
|
||||
<!-- 查询发货单+明细列表 -->
|
||||
<select id="queryDeliverAndItemsList" resultMap="deliverExtMap">
|
||||
select sd.*,
|
||||
sdi.pk_id ITEMS_ID,
|
||||
sdi.pk_order,
|
||||
sdi.pk_order_items,
|
||||
sdi.pk_product,
|
||||
sdi.quantity,
|
||||
sdi.pk_wares_specs_sku,
|
||||
sdi.pk_wares_detail,
|
||||
sdi.exchange_Goods,
|
||||
sdi.specs_name,
|
||||
sdi.specs_name_id
|
||||
from sa_deliver sd
|
||||
left join sa_deliver_items sdi
|
||||
on sdi.pk_deliver = sd.pk_id
|
||||
and sdi.del_flag = 0
|
||||
where sd.del_flag = 0
|
||||
<if test="pkCountry != null">
|
||||
and sd.pk_country = #{pkCountry}
|
||||
</if>
|
||||
and (sd.pk_id in
|
||||
<foreach collection="idList" item="item" index="index" open="(" close=")">
|
||||
<if test="index != 0">
|
||||
<choose>
|
||||
<when test="index % 500 == 0">) or sd.pk_id IN (</when>
|
||||
<otherwise>,</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
#{item}
|
||||
</foreach>
|
||||
)
|
||||
order by sd.pk_id
|
||||
</select>
|
||||
|
||||
<!-- 获取指定日期最大批次 -->
|
||||
<select id="getMaxBatch" resultType="integer">
|
||||
select nvl(max(sd.day_batch), 0) last_day_batch
|
||||
|
@ -606,22 +571,4 @@
|
|||
)
|
||||
</update>
|
||||
|
||||
<!-- 批量查询发货单数据 -->
|
||||
<select id="listDataBatch" resultType="com.hzs.common.domain.sale.deliver.SaDeliver">
|
||||
select sd.pk_id, sd.deliver_code
|
||||
from sa_deliver sd
|
||||
where sd.del_flag = 0
|
||||
and (sd.pk_id in
|
||||
<foreach collection="idList" item="item" index="index" open="(" close=")">
|
||||
<if test="index != 0">
|
||||
<choose>
|
||||
<when test="index % 500 == 0">) or sd.pk_id IN (</when>
|
||||
<otherwise>,</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
#{item}
|
||||
</foreach>
|
||||
)
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -1443,4 +1443,29 @@
|
|||
and so.box_num != 0
|
||||
</select>
|
||||
|
||||
<select id="queryRefundList" resultType="com.hzs.common.domain.third.pay.ext.TOnlineRefundExt">
|
||||
select cm.member_code,
|
||||
cm.member_name,
|
||||
top.business_type pay_business_type,
|
||||
top.business_code pay_business_code,
|
||||
tor.business_code,
|
||||
tor.refund_status,
|
||||
tor.refund_money,
|
||||
tor.finish_money,
|
||||
tor.creation_time,
|
||||
tor.finish_time,
|
||||
tor.refund_channel,
|
||||
tor.refund_code,
|
||||
tor.error_msg
|
||||
from T_ONLINE_REFUND tor
|
||||
inner join T_ONLINE_PAYMENT top
|
||||
on top.pk_id = tor.pk_online_payment
|
||||
left join cu_member cm
|
||||
on cm.pk_id = top.pk_creator
|
||||
where tor.del_flag = 0
|
||||
<if test="userId != null">
|
||||
and tor.PK_CREATOR = #{userId}
|
||||
</if>
|
||||
order by creation_time desc
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
@ -1,71 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.bd</groupId>
|
||||
<artifactId>bd-business</artifactId>
|
||||
<version>1.1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>bd-business-scm</artifactId>
|
||||
|
||||
<description>
|
||||
bd-business-scm进销存服务
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.bd</groupId>
|
||||
<artifactId>bd-business-common</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- 订单服务接口 -->
|
||||
<dependency>
|
||||
<groupId>com.bd</groupId>
|
||||
<artifactId>bd-api-sale</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- 进销存服务接口 -->
|
||||
<dependency>
|
||||
<groupId>com.bd</groupId>
|
||||
<artifactId>bd-api-scm</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.bd</groupId>
|
||||
<artifactId>bd-common-aop</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.bd</groupId>
|
||||
<artifactId>bd-common-domain</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.amqp</groupId>
|
||||
<artifactId>spring-rabbit</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<version>2.3.12.RELEASE</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
|
@ -1,25 +0,0 @@
|
|||
package com.hzs;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import com.hzs.common.security.annotation.EnableCustomConfig;
|
||||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
|
||||
/**
|
||||
* 进销存服务
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
@EnableDiscoveryClient
|
||||
@EnableCustomConfig
|
||||
@SpringBootApplication
|
||||
@EnableScheduling
|
||||
public class ScmApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(ScmApplication.class, args);
|
||||
System.out.println("ScmApplication 进销存服务启动成功");
|
||||
}
|
||||
|
||||
}
|
|
@ -1,117 +0,0 @@
|
|||
package com.hzs.ground.margin.controller;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.hzs.common.core.annotation.Log;
|
||||
import com.hzs.common.core.constant.msg.ScmMsgConstants;
|
||||
import com.hzs.common.core.enums.*;
|
||||
import com.hzs.common.core.utils.StringUtils;
|
||||
import com.hzs.common.core.web.controller.BaseController;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
import com.hzs.common.domain.ground.margin.ThMargin;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.common.util.TransactionUtils;
|
||||
import com.hzs.ground.margin.service.IThMarginService;
|
||||
import com.hzs.ground.margin.vo.ThMarginVO;
|
||||
import com.hzs.ground.supplier.service.IThSupplierApplyService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 保证金缴纳 前端控制器
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/manage/th-margin")
|
||||
public class ThMarginController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private IThMarginService iThMarginService;
|
||||
@Autowired
|
||||
private IThSupplierApplyService iThSupplierApplyService;
|
||||
|
||||
/**
|
||||
* 保证金缴纳列表
|
||||
**/
|
||||
@GetMapping("/list")
|
||||
@Log(module = EOperationModule.TH_SUPPLIER_APPLY, business = EOperationBusiness.TH_SUPPLIER_APPLY, method = EOperationMethod.SELECT)
|
||||
public TableDataInfo listGeneralIn(ThMarginVO thMarginVO) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
thMarginVO.setPkCountry(SecurityUtils.getPkCountry());
|
||||
Integer checkUser = iThSupplierApplyService.queryThSupplierApplyUserList(userId);
|
||||
if (checkUser > 0) {
|
||||
thMarginVO.setPkCreator(userId);
|
||||
}
|
||||
startPage();
|
||||
List<ThMarginVO> thSupplierApplyList = iThMarginService.queryThMarginList(thMarginVO);
|
||||
return getDataTable(thSupplierApplyList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加保证金缴纳
|
||||
**/
|
||||
@PostMapping("/save")
|
||||
public AjaxResult save(@RequestBody ThMarginVO thMarginVO) {
|
||||
int pkCountry = SecurityUtils.getPkCountry();
|
||||
// 验证必填信息
|
||||
if (StringUtils.isNull(thMarginVO.getMargin())) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(ScmMsgConstants.TH_MARGIN_MARGIN));
|
||||
}
|
||||
thMarginVO.setPkCountry(pkCountry);
|
||||
thMarginVO.setPkCreator(SecurityUtils.getUserId());
|
||||
thMarginVO.setCreationTime(new Date());
|
||||
QueryWrapper<ThMargin> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("PK_SUPPLIER", thMarginVO.getPkSupplier());
|
||||
List thList = iThMarginService.list(queryWrapper);
|
||||
if (CollectionUtil.isNotEmpty(thList)) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(ScmMsgConstants.TH_MARGIN_REPEAT));
|
||||
}
|
||||
iThMarginService.saveThMargin(thMarginVO);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改保证金缴纳
|
||||
**/
|
||||
@PostMapping("/update")
|
||||
public AjaxResult update(@RequestBody ThMarginVO thMarginVO) {
|
||||
int pkCountry = SecurityUtils.getPkCountry();
|
||||
// 验证必填信息
|
||||
if (StringUtils.isNull(thMarginVO.getMargin())) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(ScmMsgConstants.TH_MARGIN_MARGIN));
|
||||
}
|
||||
QueryWrapper<ThMargin> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("PK_SUPPLIER", thMarginVO.getPkSupplier());
|
||||
queryWrapper.ne("PK_ID", thMarginVO.getPkId());
|
||||
List thList = iThMarginService.list(queryWrapper);
|
||||
if (CollectionUtil.isNotEmpty(thList)) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(ScmMsgConstants.TH_MARGIN_REPEAT));
|
||||
}
|
||||
thMarginVO.setPkCountry(pkCountry);
|
||||
thMarginVO.setPkCreator(SecurityUtils.getUserId());
|
||||
thMarginVO.setCreationTime(new Date());
|
||||
iThMarginService.updateThMargin(thMarginVO);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询保证金缴纳
|
||||
**/
|
||||
@GetMapping("/getOne/{pkId}")
|
||||
public AjaxResult getOne(@PathVariable Long pkId) {
|
||||
ThMargin tsa = iThMarginService.getById(pkId);
|
||||
return AjaxResult.success(tsa);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除保证金缴纳
|
||||
**/
|
||||
@DeleteMapping("/{pkId}")
|
||||
public AjaxResult delete(@PathVariable Long pkId) {
|
||||
return AjaxResult.success(iThMarginService.delThMargin(pkId));
|
||||
}
|
||||
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
package com.hzs.ground.margin.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.ground.margin.ThMargin;
|
||||
import com.hzs.ground.margin.vo.ThMarginVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 保证金缴纳 Mapper 接口
|
||||
*/
|
||||
public interface ThMarginMapper extends BaseMapper<ThMargin> {
|
||||
|
||||
/**
|
||||
* 保证金缴纳列表
|
||||
**/
|
||||
List<ThMarginVO> queryThMarginList(ThMarginVO thMarginVO);
|
||||
|
||||
/**
|
||||
* 保证金缴纳审批查看
|
||||
**/
|
||||
List<ThMarginVO> queryThMarginByCode(@Param("businessCode") String businessCode,
|
||||
@Param("pkCountry") Integer pkCountry);
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
package com.hzs.ground.margin.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.ground.margin.ThMargin;
|
||||
import com.hzs.ground.margin.vo.ThMarginVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 保证金缴纳 服务类
|
||||
*/
|
||||
public interface IThMarginService extends IService<ThMargin> {
|
||||
|
||||
/**
|
||||
* 保证金缴纳列表
|
||||
**/
|
||||
List<ThMarginVO> queryThMarginList(ThMarginVO thMarginVO);
|
||||
|
||||
/**
|
||||
* 添加保证金缴纳
|
||||
**/
|
||||
boolean saveThMargin(ThMarginVO thMarginVO);
|
||||
|
||||
/**
|
||||
* 修改保证金缴纳
|
||||
**/
|
||||
boolean updateThMargin(ThMarginVO thMarginVO);
|
||||
|
||||
/**
|
||||
* 删除保证金缴纳
|
||||
**/
|
||||
boolean delThMargin(Long pkId);
|
||||
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
package com.hzs.ground.margin.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.common.core.enums.*;
|
||||
import com.hzs.common.domain.ground.margin.ThMargin;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.ground.margin.mapper.ThMarginMapper;
|
||||
import com.hzs.ground.margin.service.IThMarginService;
|
||||
import com.hzs.ground.margin.vo.ThMarginVO;
|
||||
import com.hzs.ground.product.service.IThApprovalLogService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 保证金缴纳 服务实现类
|
||||
*/
|
||||
@Service
|
||||
public class ThMarginServiceImpl extends ServiceImpl<ThMarginMapper, ThMargin> implements IThMarginService {
|
||||
|
||||
@Autowired
|
||||
IThApprovalLogService iThApprovalLogService;
|
||||
|
||||
@Override
|
||||
public List<ThMarginVO> queryThMarginList(ThMarginVO thMarginVO) {
|
||||
return baseMapper.queryThMarginList(thMarginVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean saveThMargin(ThMarginVO thMarginVO) {
|
||||
ThMargin tm = BeanUtil.copyProperties(thMarginVO, ThMargin.class);
|
||||
baseMapper.insert(tm);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateThMargin(ThMarginVO thMarginVO) {
|
||||
ThMargin tm = BeanUtil.copyProperties(thMarginVO, ThMargin.class);
|
||||
baseMapper.updateById(tm);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delThMargin(Long pkId) {
|
||||
UpdateWrapper<ThMargin> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.eq("PK_ID", pkId);
|
||||
updateWrapper.set("PK_MODIFIED", SecurityUtils.getUserId());
|
||||
updateWrapper.set("MODIFIED_TIME", new Date());
|
||||
updateWrapper.set("DEL_FLAG", EDelFlag.DELETE.getValue());
|
||||
baseMapper.update(null, updateWrapper);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,205 +0,0 @@
|
|||
package com.hzs.ground.margin.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.hzs.common.core.annotation.Excel;
|
||||
import com.hzs.common.core.annotation.Transaction;
|
||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
||||
import com.hzs.common.core.web.domain.BaseApprovalEntity;
|
||||
import com.hzs.system.sys.dto.LoginUser;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 保证金缴纳VO
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2024-03-21
|
||||
*/
|
||||
@Data
|
||||
public class ThMarginVO extends BaseApprovalEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private Integer pkId;
|
||||
private String pkIdListStr;
|
||||
private List<Integer> pkIdList;
|
||||
/**
|
||||
* 会员编号
|
||||
*/
|
||||
private String memberCode;
|
||||
/**
|
||||
* 会员名称
|
||||
*/
|
||||
private String memberName;
|
||||
/**
|
||||
* 客商编号
|
||||
*/
|
||||
private String custCode;
|
||||
/**
|
||||
* 客商名称
|
||||
*/
|
||||
private String custName;
|
||||
/**
|
||||
* 供应商类型
|
||||
*/
|
||||
private Integer custType;
|
||||
|
||||
/**
|
||||
* 供应商简称
|
||||
*/
|
||||
private String shortName;
|
||||
|
||||
/**
|
||||
* 法人
|
||||
*/
|
||||
private String legalBody;
|
||||
|
||||
/**
|
||||
* 联系人
|
||||
*/
|
||||
private String linkMan;
|
||||
|
||||
/**
|
||||
* 纳税人登记号
|
||||
*/
|
||||
private String taxpayerid;
|
||||
|
||||
/**
|
||||
* 省
|
||||
*/
|
||||
private Integer province;
|
||||
/**
|
||||
* 省
|
||||
*/
|
||||
private String provinceName;
|
||||
|
||||
/**
|
||||
* 市
|
||||
*/
|
||||
private Integer city;
|
||||
/**
|
||||
* 市
|
||||
*/
|
||||
private String cityName;
|
||||
|
||||
/**
|
||||
* 区
|
||||
*/
|
||||
private Integer county;
|
||||
/**
|
||||
* 区
|
||||
*/
|
||||
private String countyName;
|
||||
|
||||
/**
|
||||
* 地址
|
||||
*/
|
||||
private String address;
|
||||
/**
|
||||
* 经营范围
|
||||
*/
|
||||
private String tradeScope;
|
||||
/**
|
||||
* 会员id
|
||||
*/
|
||||
private Long pkMember;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 缴纳供应商
|
||||
*/
|
||||
private Integer pkSupplier;
|
||||
|
||||
/**
|
||||
* 缴纳日期
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date billDate;
|
||||
|
||||
/**
|
||||
* 销售类型 引用现在销售大类 来源枚举 ESaleType
|
||||
*/
|
||||
@Transaction(transactionKey = EnumsPrefixConstants.E_SALE_TYPE)
|
||||
private Integer saleType;
|
||||
/**
|
||||
* 销售类型 引用现在销售大类 来源枚举 ESaleType
|
||||
*/
|
||||
private String saleTypeVal;
|
||||
|
||||
/**
|
||||
* 销售范围
|
||||
*/
|
||||
private Integer saleScope;
|
||||
|
||||
/**
|
||||
* 联系电话
|
||||
*/
|
||||
private String phone;
|
||||
|
||||
|
||||
/**
|
||||
* 保证金金额
|
||||
*/
|
||||
private BigDecimal margin;
|
||||
|
||||
/**
|
||||
* 创建人ID
|
||||
*/
|
||||
private Long pkCreator;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Excel(name = "创建时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date creationTime;
|
||||
|
||||
/**
|
||||
* 逻辑删除 (0=未删除,1已删除)
|
||||
*/
|
||||
private Integer delFlag;
|
||||
|
||||
/**
|
||||
* 国家
|
||||
*/
|
||||
private Integer pkCountry;
|
||||
/**
|
||||
* 登录用户信息
|
||||
*/
|
||||
private LoginUser loginUser;
|
||||
/**
|
||||
* 审批业务类型 来源枚举 EApprovalBusiness
|
||||
*/
|
||||
private Integer editType;
|
||||
|
||||
/**
|
||||
* 审核状态 来源枚举 EApproveStatus
|
||||
*/
|
||||
@Transaction(transactionKey = EnumsPrefixConstants.APPROVE_STATUS)
|
||||
private Integer approveStatus;
|
||||
/**
|
||||
* 审核状态 来源枚举 EApproveStatus
|
||||
*/
|
||||
private String approveStatusVal;
|
||||
|
||||
/**
|
||||
* 修改记录单号
|
||||
*/
|
||||
private String thBusinessCode;
|
||||
/**
|
||||
* 保证金缴纳集合
|
||||
*/
|
||||
private List<ThMarginVO> thMarginVOList;
|
||||
|
||||
|
||||
}
|
|
@ -1,221 +0,0 @@
|
|||
package com.hzs.ground.order.controller.manage;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hzs.common.core.annotation.Log;
|
||||
import com.hzs.common.core.constant.msg.ScmMsgConstants;
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.*;
|
||||
import com.hzs.common.core.utils.poi.ExcelUtil;
|
||||
import com.hzs.common.core.web.controller.BaseController;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
import com.hzs.common.domain.ground.order.ext.SaOrderSettleExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.ground.order.param.OrderItemsParam;
|
||||
import com.hzs.ground.order.param.OrderQueryParam;
|
||||
import com.hzs.ground.order.service.ISaOrderSettleService;
|
||||
import com.hzs.ground.order.service.ISupplierOrderService;
|
||||
import com.hzs.ground.order.vo.SaOrderSettleVo;
|
||||
import com.hzs.system.base.ISystemConfigServiceApi;
|
||||
import com.hzs.system.base.dto.BdCubasdocDTO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单控制类
|
||||
*
|
||||
* @author: sui q
|
||||
* @time: 2022/8/27 16:20
|
||||
* @description:
|
||||
* @classname: OrderController
|
||||
* @package_name: com.hzs.sale.order.controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/manage/order")
|
||||
@Slf4j
|
||||
public class SupplierOrderController extends BaseController {
|
||||
|
||||
@DubboReference
|
||||
private ISystemConfigServiceApi systemConfigServiceApi;
|
||||
|
||||
@Autowired
|
||||
private ISupplierOrderService supplierOrderService;
|
||||
|
||||
@Autowired
|
||||
private ISaOrderSettleService saOrderSettleService;
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
*
|
||||
* @return cubasdocParam 入参
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public TableDataInfo listSupplierOrder(@RequestBody OrderQueryParam orderQueryParam) {
|
||||
// 根据登录人获取供应商,根据登录账号查找绑定的供应商,查询供应商表
|
||||
R<BdCubasdocDTO> bdCubasdocDate = systemConfigServiceApi.queryBdCubasdocByUser(SecurityUtils.getUserId());
|
||||
if (!bdCubasdocDate.isSuccess() || bdCubasdocDate.getData() == null) {
|
||||
return getDataTable(Collections.emptyList());
|
||||
}
|
||||
orderQueryParam.setPkSupplier(bdCubasdocDate.getData().getPkSupplier());
|
||||
// 根据供应商查询可以查询到的订单
|
||||
startPage();
|
||||
orderQueryParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||
List<SaOrderExt> orderList = supplierOrderService.querySaOrderByCondition(orderQueryParam);
|
||||
for (SaOrderExt saOrderExt : orderList) {
|
||||
for (EOrderStatus value : EOrderStatus.values()) {
|
||||
if (value.getValue() == saOrderExt.getOrderStatus()) {
|
||||
saOrderExt.setOrderStatusVal(value.getLabel());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return getDataTable(orderList);
|
||||
}
|
||||
|
||||
@PostMapping("/send")
|
||||
public AjaxResult sendGood(@RequestBody List<OrderItemsParam> orderItemsParamList) {
|
||||
// 验证是否有该产品的权限,验证订单是否已经发货
|
||||
R<BdCubasdocDTO> bdCubasdocDate = systemConfigServiceApi.queryBdCubasdocByUser(SecurityUtils.getUserId());
|
||||
if (!bdCubasdocDate.isSuccess() || bdCubasdocDate.getData() == null) {
|
||||
return AjaxResult.error("该账号没有绑定供应商");
|
||||
}
|
||||
for (OrderItemsParam orderItemsParam : orderItemsParamList) {
|
||||
if (orderItemsParam.getLogisticsCode() == null || orderItemsParam.getLogisticsCompany() == null) {
|
||||
return AjaxResult.error("请输入物流单号,物流公司");
|
||||
}
|
||||
}
|
||||
OrderQueryParam orderQueryParam = new OrderQueryParam();
|
||||
orderQueryParam.setPkSupplier(bdCubasdocDate.getData().getPkSupplier());
|
||||
orderQueryParam.setOrderItemsParamList(orderItemsParamList);
|
||||
orderQueryParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||
orderQueryParam.setPkCreator(SecurityUtils.getUserId());
|
||||
List<SaOrderExt> orderList = supplierOrderService.querySaOrderByCondition(orderQueryParam);
|
||||
if (orderList == null) {
|
||||
return AjaxResult.error("存在不属于该用户的产品,不能发货");
|
||||
}
|
||||
int size = 0;
|
||||
for (SaOrderExt saOrderExt : orderList) {
|
||||
size += saOrderExt.getOrderItemsExtList().size();
|
||||
}
|
||||
if (size < orderItemsParamList.size()) {
|
||||
return AjaxResult.error("存在不属于该用户的产品,不能发货");
|
||||
}
|
||||
supplierOrderService.sendGood(orderQueryParam, orderItemsParamList, orderList);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
*
|
||||
* @return cubasdocParam 入参
|
||||
*/
|
||||
@PostMapping("/list-settle")
|
||||
@Log(module = EOperationModule.SUPPLIER_SETTLE_ORDER, business = EOperationBusiness.SUPPLIER_SETTLE_ORDER, method = EOperationMethod.SELECT)
|
||||
public TableDataInfo listSettleOrder(@RequestBody OrderQueryParam orderQueryParam) {
|
||||
// 根据登录人获取供应商,根据登录账号查找绑定的供应商,查询供应商表
|
||||
R<BdCubasdocDTO> bdCubasdocDate = systemConfigServiceApi.queryBdCubasdocByUser(SecurityUtils.getUserId());
|
||||
if (bdCubasdocDate != null && bdCubasdocDate.getData() != null) {
|
||||
orderQueryParam.setPkSupplier(bdCubasdocDate.getData().getPkSupplier());
|
||||
}
|
||||
// 根据供应商查询可以查询到的订单
|
||||
startPage();
|
||||
orderQueryParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||
List<SaOrderSettleExt> orderSettleExtList = saOrderSettleService.querySaOrderSettle(orderQueryParam);
|
||||
return getDataTable(orderSettleExtList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询会员某个时间段内的奖金汇总
|
||||
*/
|
||||
@PostMapping("/export-list")
|
||||
@Log(module = EOperationModule.SUPPLIER_SETTLE_ORDER, business = EOperationBusiness.SUPPLIER_SETTLE_ORDER, method = EOperationMethod.EXPORT)
|
||||
public void exportSettleOrder(HttpServletResponse response, OrderQueryParam orderQueryParam){
|
||||
// 根据登录人获取供应商,根据登录账号查找绑定的供应商,查询供应商表
|
||||
R<BdCubasdocDTO> bdCubasdocDate = systemConfigServiceApi.queryBdCubasdocByUser(SecurityUtils.getUserId());
|
||||
if (bdCubasdocDate != null && bdCubasdocDate.getData() != null) {
|
||||
orderQueryParam.setPkSupplier(bdCubasdocDate.getData().getPkSupplier());
|
||||
}
|
||||
// 根据供应商查询可以查询到的订单
|
||||
orderQueryParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||
List<SaOrderSettleExt> orderSettleExtList = saOrderSettleService.querySaOrderSettle(orderQueryParam);
|
||||
List<SaOrderSettleVo> saOrderSettleVoList = packageScmExportVo(orderSettleExtList);
|
||||
ExcelUtil<SaOrderSettleVo> util = new ExcelUtil<>(SaOrderSettleVo.class);
|
||||
util.exportExcel(response, saOrderSettleVoList, "订单结算导出");
|
||||
}
|
||||
|
||||
private List<SaOrderSettleVo> packageScmExportVo(List<SaOrderSettleExt> orderSettleExtList) {
|
||||
List<SaOrderSettleVo> saOrderSettleVoList = new ArrayList<>();
|
||||
for (SaOrderSettleExt saOrderSettleExt : orderSettleExtList) {
|
||||
SaOrderSettleVo saOrderSettleVo = BeanUtil.copyProperties(saOrderSettleExt, SaOrderSettleVo.class);
|
||||
if(EDealerYesNo.YES.getValue() == saOrderSettleExt.getSettleStatus()){
|
||||
saOrderSettleVo.setSettleStatusVal(EDealerYesNo.YES.getLabel());
|
||||
}else{
|
||||
saOrderSettleVo.setSettleStatusVal(EDealerYesNo.NO.getLabel());
|
||||
}
|
||||
saOrderSettleVoList.add(saOrderSettleVo);
|
||||
}
|
||||
return saOrderSettleVoList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 结算订单
|
||||
*
|
||||
* @return cubasdocParam 入参
|
||||
*/
|
||||
@PostMapping("/settle-order")
|
||||
@Log(module = EOperationModule.SUPPLIER_SETTLE_ORDER, business = EOperationBusiness.SUPPLIER_SETTLE_ORDER, method = EOperationMethod.SETTLE)
|
||||
public AjaxResult settleOrder(@RequestBody OrderQueryParam orderQueryParam) {
|
||||
orderQueryParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||
List<SaOrderSettleExt> orderSettleExtList = saOrderSettleService.querySaOrderSettle(orderQueryParam);
|
||||
if (CollectionUtil.isEmpty(orderSettleExtList)) {
|
||||
return AjaxResult.error(ScmMsgConstants.SETTLE_ORDER_NOT_EXISTS);
|
||||
}
|
||||
// 分为线上线下2部分
|
||||
for (SaOrderSettleExt saOrderSettleExt : orderSettleExtList) {
|
||||
// 验证状态
|
||||
if (EYesNo.YES.getIntValue() == saOrderSettleExt.getSettleStatus()) {
|
||||
return AjaxResult.error(ScmMsgConstants.SETTLE_ORDER_HAS_SETTLE);
|
||||
}
|
||||
}
|
||||
saOrderSettleService.updateSaOrderSettle(orderSettleExtList);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 撤销订单并入库(走签呈),签呈页面点击确定按钮
|
||||
// *
|
||||
// * @param scmApproveParam 参数
|
||||
// */
|
||||
// @PostMapping("/submit")
|
||||
// @Log(module = EOperationModule.SUPPLIER_SETTLE_ORDER, business = EOperationBusiness.SUPPLIER_SETTLE_ORDER, method = EOperationMethod.UPDATE)
|
||||
// public AjaxResult submitSettleOrder(@RequestBody ScmApproveParam scmApproveParam) {
|
||||
// scmApproveParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||
// if(scmApproveParam.getPkId() == null){
|
||||
// return AjaxResult.error(TransactionUtils.getContent(ScmMsgConstants.IC_GENERAL_IN_NOT_EXIST));
|
||||
// }
|
||||
// IcGeneralInHExt generalInhExt = generalInhService.queryGeneralInById(scmApproveParam.getPkId(), EScmOrderStatus.SAVE.getValue());
|
||||
// if (generalInhExt == null) {
|
||||
// return AjaxResult.error(TransactionUtils.getContent(ScmMsgConstants.IC_GENERAL_IN_NOT_EXIST));
|
||||
// }
|
||||
// // 验证该订单是否存在签呈,存在待审核的签呈不能再次发起
|
||||
// List<ScmOrderApproveLog> scmOrderApproveLogs = scmOrderApproveLogService.queryScmOrderApproveLogByCondition(scmApproveParam.getPkId(), EApprovalBusiness.IC_GENERAL_IN_APPROVE.getValue(), null);
|
||||
// if(CollectionUtil.isNotEmpty(scmOrderApproveLogs)){
|
||||
// return AjaxResult.error(TransactionUtils.getContent(ScmMsgConstants.PURCHASE_EXISTS_AGENT));
|
||||
// }
|
||||
// generalInhService.auditGeneralInByApproveParamSubmit(scmApproveParam, userTokenService.getLoginUser());
|
||||
// return AjaxResult.success();
|
||||
// }
|
||||
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
package com.hzs.ground.order.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.ground.order.SaOrderSettle;
|
||||
import com.hzs.common.domain.ground.order.ext.SaOrderSettleExt;
|
||||
import com.hzs.ground.order.param.OrderQueryParam;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 销售订单-三方结算表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2024-04-15
|
||||
*/
|
||||
public interface SaOrderSettleMapper extends BaseMapper<SaOrderSettle> {
|
||||
|
||||
/*
|
||||
* @description:
|
||||
* @author: sui q
|
||||
* @date: 2024/4/15 15:37
|
||||
* @param: null null
|
||||
**/
|
||||
List<SaOrderSettleExt> querySaOrderSettle(@Param("queryParam") OrderQueryParam queryParam);
|
||||
|
||||
/*
|
||||
* @description: 结算操作
|
||||
* @author: sui q
|
||||
* @date: 2024/4/16 10:23
|
||||
* @param: null null
|
||||
**/
|
||||
void updateSaOrderSettle(@Param("orderSettleExtList") List<SaOrderSettleExt> orderSettleExtList);
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
package com.hzs.ground.order.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrderItems;
|
||||
import com.hzs.ground.order.param.OrderQueryParam;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description: 供应商查询顶顶那
|
||||
* @author: sui q
|
||||
* @time: 2024/3/23 14:01
|
||||
* @classname: SupplierOrdeMapper
|
||||
* @package_name: com.hzs.ground.order.mapper
|
||||
* version 1.0.0
|
||||
*/
|
||||
public interface SupplierOrderMapper extends BaseMapper<SaOrderItems> {
|
||||
|
||||
/*
|
||||
* @description: 供应商查询订单
|
||||
* @author: sui q
|
||||
* @date: 2024/3/23 14:32
|
||||
* @param: null null
|
||||
**/
|
||||
List<SaOrderExt> querySaOrderByCondition(@Param("orderQueryParam") OrderQueryParam orderQueryParam);
|
||||
}
|
|
@ -1,35 +0,0 @@
|
|||
package com.hzs.ground.order.param;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import lombok.Data;
|
||||
import org.apache.ibatis.type.JdbcType;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @description: 发货信息
|
||||
* @author: sui q
|
||||
* @time: 2024/3/23 15:18
|
||||
* @classname: OrderItemsParam
|
||||
* @package_name: com.hzs.ground.order.param
|
||||
* version 1.0.0
|
||||
*/
|
||||
@Data
|
||||
public class OrderItemsParam implements Serializable {
|
||||
|
||||
/**
|
||||
* 子表主键
|
||||
*/
|
||||
private Long pkId;
|
||||
|
||||
/**
|
||||
* 物流单号
|
||||
*/
|
||||
private String logisticsCode;
|
||||
|
||||
/**
|
||||
* 物流公司
|
||||
*/
|
||||
private String logisticsCompany;
|
||||
}
|
|
@ -1,87 +0,0 @@
|
|||
package com.hzs.ground.order.param;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 订单查询参数
|
||||
* @Author: sui q
|
||||
* @Time: 2022/10/19 16:49
|
||||
* @Classname: OrderQueryParam
|
||||
* @PackageName: com.hzs.sale.order.param
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class OrderQueryParam implements Serializable {
|
||||
|
||||
/**
|
||||
* 收货人
|
||||
*/
|
||||
private String recName;
|
||||
|
||||
/**
|
||||
* 收货电话
|
||||
*/
|
||||
private String recPhone;
|
||||
|
||||
/**
|
||||
* 开始支付时间
|
||||
*/
|
||||
private Date startTime;
|
||||
|
||||
/**
|
||||
* 结束支付时间
|
||||
*/
|
||||
private Date endTime;
|
||||
|
||||
/**
|
||||
* 订单编号
|
||||
*/
|
||||
private String orderCode;
|
||||
|
||||
/**
|
||||
* 国家
|
||||
*/
|
||||
private Integer pkCountry;
|
||||
|
||||
private Long pkCreator;
|
||||
|
||||
/**
|
||||
* 供应商
|
||||
*/
|
||||
private Integer pkSupplier;
|
||||
|
||||
/**
|
||||
* 产品编号
|
||||
*/
|
||||
private String productCode;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 发货渠道 1 总仓发货 2 一件代发
|
||||
*/
|
||||
private Integer shippingChannel;
|
||||
|
||||
/**
|
||||
* 订单状态 (0=待支付,1=已支付)
|
||||
*/
|
||||
private Integer orderStatus;
|
||||
|
||||
private List<Long> idList;
|
||||
|
||||
private List<OrderItemsParam> orderItemsParamList;
|
||||
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
package com.hzs.ground.order.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.ground.order.SaOrderSettle;
|
||||
import com.hzs.common.domain.ground.order.ext.SaOrderSettleExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.ground.order.param.OrderQueryParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 销售订单-三方结算表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2024-04-15
|
||||
*/
|
||||
public interface ISaOrderSettleService extends IService<SaOrderSettle> {
|
||||
|
||||
/*
|
||||
* @description: 保存结算单,发货完成后生成订单结算单
|
||||
* @author: sui q
|
||||
* @date: 2024/4/15 14:12
|
||||
* @param: null null
|
||||
**/
|
||||
void saveOrderSettleByOrder(OrderQueryParam orderQueryParam, List<SaOrderExt> orderList);
|
||||
|
||||
/*
|
||||
* @description:
|
||||
* @author: sui q
|
||||
* @date: 2024/4/15 15:37
|
||||
* @param: null null
|
||||
**/
|
||||
List<SaOrderSettleExt> querySaOrderSettle(OrderQueryParam queryParam);
|
||||
|
||||
/*
|
||||
* @description: 结算操作
|
||||
* @author: sui q
|
||||
* @date: 2024/4/16 10:23
|
||||
* @param: null null
|
||||
**/
|
||||
void updateSaOrderSettle(List<SaOrderSettleExt> orderSettleExtList);
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
package com.hzs.ground.order.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.sale.order.SaOrderItems;
|
||||
import com.hzs.ground.order.param.OrderItemsParam;
|
||||
import com.hzs.ground.order.param.OrderQueryParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description: 用于查询供应商订单,发货
|
||||
* @author: sui q
|
||||
* @time: 2024/3/23 13:59
|
||||
* @classname: SupplierOrderService
|
||||
* @package_name: com.hzs.ground.order.service
|
||||
* version 1.0.0
|
||||
*/
|
||||
public interface ISupplierOrderService extends IService<SaOrderItems> {
|
||||
|
||||
/*
|
||||
* @description: 供应商查询订单
|
||||
* @author: sui q
|
||||
* @date: 2024/3/23 14:32
|
||||
* @param: null null
|
||||
**/
|
||||
List<SaOrderExt> querySaOrderByCondition(OrderQueryParam orderQueryParam);
|
||||
|
||||
/*
|
||||
* @description: 发货
|
||||
* @author: sui q
|
||||
* @date: 2024/3/23 15:36
|
||||
* @param: null null
|
||||
**/
|
||||
void sendGood(OrderQueryParam orderQueryParam, List<OrderItemsParam> orderItemsParamList, List<SaOrderExt> orderList);
|
||||
}
|
|
@ -1,105 +0,0 @@
|
|||
package com.hzs.ground.order.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.common.core.enums.ESettleType;
|
||||
import com.hzs.common.core.enums.EYesNo;
|
||||
import com.hzs.common.core.utils.ComputeUtil;
|
||||
import com.hzs.common.core.utils.DateUtils;
|
||||
import com.hzs.common.domain.ground.order.SaOrderSettle;
|
||||
import com.hzs.common.domain.ground.order.ext.SaOrderSettleExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||
import com.hzs.common.domain.scm.postage.ext.ThSupplierPostageExt;
|
||||
import com.hzs.ground.order.mapper.SaOrderSettleMapper;
|
||||
import com.hzs.ground.order.param.OrderQueryParam;
|
||||
import com.hzs.ground.order.service.ISaOrderSettleService;
|
||||
import com.hzs.ground.postage.service.IThSupplierPostageService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 销售订单-三方结算表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2024-04-15
|
||||
*/
|
||||
@Service
|
||||
public class SaOrderSettleServiceImpl extends ServiceImpl<SaOrderSettleMapper, SaOrderSettle> implements ISaOrderSettleService {
|
||||
|
||||
@Autowired
|
||||
private IThSupplierPostageService supplierPostageService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveOrderSettleByOrder(OrderQueryParam orderQueryParam, List<SaOrderExt> orderList) {
|
||||
List<SaOrderSettle> saOrderSettleList = new ArrayList<>();
|
||||
List<SaOrderItemsExt> orderItemsExtList = new ArrayList<>();
|
||||
for (SaOrderExt saOrderExt : orderList) {
|
||||
for (SaOrderItemsExt saOrderItems : saOrderExt.getOrderItemsExtList()) {
|
||||
SaOrderSettle saOrderSettle = SaOrderSettle.builder()
|
||||
.pkOrder(saOrderExt.getPkId())
|
||||
.pkOrderItems(saOrderItems.getPkId())
|
||||
.settleStatus(EYesNo.NO.getIntValue())
|
||||
.price(saOrderItems.getSupplyPrice())
|
||||
.quantity(saOrderItems.getQuantity())
|
||||
.pkSupplier(orderQueryParam.getPkSupplier())
|
||||
.postage(BigDecimal.ZERO)
|
||||
.totalPrice(ComputeUtil.computeMultiply(saOrderItems.getSupplyPrice(), saOrderItems.getQuantity()))
|
||||
.build();
|
||||
saOrderSettle.setPkCountry(orderQueryParam.getPkCountry());
|
||||
saOrderSettle.setPkCreator(orderQueryParam.getPkCreator());
|
||||
saOrderSettleList.add(saOrderSettle);
|
||||
saOrderItems.setPkSupplier(orderQueryParam.getPkSupplier());
|
||||
orderItemsExtList.add(saOrderItems);
|
||||
}
|
||||
}
|
||||
List<ThSupplierPostageExt> thSupplierPostageExtList = supplierPostageService.querySupplierPostageByOrder(orderItemsExtList);
|
||||
if (saOrderSettleList.size() > 0) {
|
||||
Map<Long, ThSupplierPostageExt> supplierPostageExtMap = new HashMap<>();
|
||||
if(thSupplierPostageExtList.size()>0){
|
||||
thSupplierPostageExtList.forEach(thSupplierPostageExt -> supplierPostageExtMap.put(thSupplierPostageExt.getPkOrder(), thSupplierPostageExt));
|
||||
}
|
||||
for (SaOrderSettle saOrderSettle : saOrderSettleList) {
|
||||
if(supplierPostageExtMap.containsKey(saOrderSettle.getPkOrder())){
|
||||
saOrderSettle.setPostage(supplierPostageExtMap.get(saOrderSettle.getPkOrder()).getPostage());
|
||||
saOrderSettle.setTotalPrice(ComputeUtil.computeAdd(saOrderSettle.getTotalPrice(), saOrderSettle.getPostage()));
|
||||
supplierPostageExtMap.remove(saOrderSettle.getPkOrder());
|
||||
}
|
||||
}
|
||||
saveBatch(saOrderSettleList);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SaOrderSettleExt> querySaOrderSettle(OrderQueryParam queryParam) {
|
||||
if (queryParam.getEndTime() != null) {
|
||||
queryParam.setEndTime(DateUtils.afterDate(1, ChronoUnit.DAYS, queryParam.getEndTime()));
|
||||
}
|
||||
return baseMapper.querySaOrderSettle(queryParam);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateSaOrderSettle(List<SaOrderSettleExt> orderSettleExtList) {
|
||||
// 分为线上线下2部分
|
||||
List<SaOrderSettleExt> onlineSaOrderSettleList = new ArrayList<>();
|
||||
for (SaOrderSettleExt saOrderSettleExt : orderSettleExtList) {
|
||||
if(ESettleType.ONLINE.getValue() == saOrderSettleExt.getSettleType()){
|
||||
onlineSaOrderSettleList.add(saOrderSettleExt);
|
||||
}
|
||||
}
|
||||
// 批量更新结算状态
|
||||
baseMapper.updateSaOrderSettle(orderSettleExtList);
|
||||
// 为账号发放结算金额,这个可能会发2份,待确认
|
||||
}
|
||||
}
|
|
@ -1,61 +0,0 @@
|
|||
package com.hzs.ground.order.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.common.core.constant.SaOrderFieldConstants;
|
||||
import com.hzs.common.core.constant.SystemFieldConstants;
|
||||
import com.hzs.common.core.enums.EOrderStatus;
|
||||
import com.hzs.common.core.utils.DateUtils;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.sale.order.SaOrderItems;
|
||||
import com.hzs.ground.order.mapper.SupplierOrderMapper;
|
||||
import com.hzs.ground.order.param.OrderItemsParam;
|
||||
import com.hzs.ground.order.param.OrderQueryParam;
|
||||
import com.hzs.ground.order.service.ISaOrderSettleService;
|
||||
import com.hzs.ground.order.service.ISupplierOrderService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description: 供应商查询订单
|
||||
* @author: sui q
|
||||
* @time: 2024/3/23 13:59
|
||||
* @classname: SupplierOrderServiceImpl
|
||||
* @package_name: com.hzs.ground.order.service.impl
|
||||
* version 1.0.0
|
||||
*/
|
||||
@Service
|
||||
public class SupplierOrderServiceImpl extends ServiceImpl<SupplierOrderMapper, SaOrderItems> implements ISupplierOrderService {
|
||||
|
||||
@Autowired
|
||||
private ISaOrderSettleService saOrderSettleService;
|
||||
|
||||
@Override
|
||||
public List<SaOrderExt> querySaOrderByCondition(OrderQueryParam orderQueryParam) {
|
||||
if (orderQueryParam.getEndTime() != null) {
|
||||
orderQueryParam.setEndTime(DateUtils.afterDate(1, ChronoUnit.DAYS, orderQueryParam.getEndTime()));
|
||||
}
|
||||
return baseMapper.querySaOrderByCondition(orderQueryParam);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void sendGood(OrderQueryParam orderQueryParam , List<OrderItemsParam> orderItemsParamList, List<SaOrderExt> orderList) {
|
||||
for (OrderItemsParam orderItemsParam : orderItemsParamList) {
|
||||
UpdateWrapper<SaOrderItems> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.eq(SystemFieldConstants.PK_ID, orderItemsParam.getPkId());
|
||||
updateWrapper.eq(SaOrderFieldConstants.ORDER_STATUS, EOrderStatus.PAY.getValue());
|
||||
updateWrapper.set("LOGISTICS_CODE", orderItemsParam.getLogisticsCode());
|
||||
updateWrapper.set("LOGISTICS_COMPANY", orderItemsParam.getLogisticsCompany());
|
||||
updateWrapper.set(SaOrderFieldConstants.ORDER_STATUS, EOrderStatus.DELIVERED.getValue());
|
||||
update(updateWrapper);
|
||||
}
|
||||
// 发货完成自动生成待结算单据
|
||||
saOrderSettleService.saveOrderSettleByOrder(orderQueryParam, orderList);
|
||||
}
|
||||
}
|
|
@ -1,69 +0,0 @@
|
|||
package com.hzs.ground.order.vo;
|
||||
|
||||
import com.hzs.common.core.annotation.Excel;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @description: 订单结算vo
|
||||
* @author: sui q
|
||||
* @time: 2024/5/8 11:04
|
||||
* @classname: SaOrderSettleVo
|
||||
* @package_name: com.hzs.ground.order.vo
|
||||
* version 1.0.0
|
||||
*/
|
||||
@Data
|
||||
public class SaOrderSettleVo implements Serializable {
|
||||
|
||||
@Excel(name = "订单编号")
|
||||
private String orderCode;
|
||||
|
||||
/**
|
||||
* 产品编号
|
||||
*/
|
||||
@Excel(name = "产品编号")
|
||||
private String productCode;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
@Excel(name = "产品名称")
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
@Excel(name = "数量")
|
||||
private Integer quantity;
|
||||
|
||||
/**
|
||||
* 价格
|
||||
*/
|
||||
@Excel(name = "结算单价",scale = 2)
|
||||
private BigDecimal price;
|
||||
|
||||
@Excel(name = "结算状态")
|
||||
private String settleStatusVal;
|
||||
|
||||
/**
|
||||
* 供应商名称
|
||||
*/
|
||||
@Excel(name = "供应商")
|
||||
private String supplyName;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Excel(name = "创建时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date creationTime;
|
||||
|
||||
|
||||
/**
|
||||
* 支付时间
|
||||
*/
|
||||
@Excel(name = "支付时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date payTime;
|
||||
}
|
|
@ -1,124 +0,0 @@
|
|||
package com.hzs.ground.postage.controller.manage;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.hzs.common.core.constant.HttpStatus;
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.utils.DateUtils;
|
||||
import com.hzs.common.core.utils.poi.ExcelUtil;
|
||||
import com.hzs.common.core.web.controller.BaseController;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
import com.hzs.common.domain.scm.postage.ThSupplierPostage;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.ground.postage.param.SupplierPostageParam;
|
||||
import com.hzs.ground.postage.service.IThSupplierPostageService;
|
||||
import com.hzs.ground.postage.vo.SupplierPostageVo;
|
||||
import com.hzs.system.base.ISystemConfigServiceApi;
|
||||
import com.hzs.system.base.dto.BdCubasdocDTO;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/manage/supplier-postage")
|
||||
public class SupplierPostageController extends BaseController {
|
||||
@Autowired
|
||||
private IThSupplierPostageService supplierPostageService;
|
||||
@DubboReference
|
||||
private ISystemConfigServiceApi systemConfigServiceApi;
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("list")
|
||||
public TableDataInfo list(SupplierPostageParam supplierPostageParam){
|
||||
startPage();
|
||||
|
||||
// 下面代码需要使用 坐等随工提交此方法 取消注释
|
||||
R<BdCubasdocDTO> bdCubasdocDate = systemConfigServiceApi.queryBdCubasdocByUser(SecurityUtils.getUserId());
|
||||
Integer pkSupplier = null;
|
||||
if(bdCubasdocDate.getCode() == HttpStatus.SUCCESS){
|
||||
BdCubasdocDTO bdCubasdoc = bdCubasdocDate.getData();
|
||||
if(bdCubasdoc == null){
|
||||
pkSupplier = 1;
|
||||
}else {
|
||||
pkSupplier = bdCubasdoc.getPkSupplier();
|
||||
}
|
||||
}
|
||||
supplierPostageParam.setPkCubasdoc(pkSupplier);
|
||||
List<SupplierPostageVo> list = supplierPostageService.selectByQueryList(supplierPostageParam);
|
||||
return getDataTable(list);
|
||||
}
|
||||
/**
|
||||
* 查询列表
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("export")
|
||||
public void export(SupplierPostageParam supplierPostageParam,HttpServletResponse response){
|
||||
|
||||
// 下面代码需要使用 坐等随工提交此方法 取消注释
|
||||
R<BdCubasdocDTO> bdCubasdocDate = systemConfigServiceApi.queryBdCubasdocByUser(SecurityUtils.getUserId());
|
||||
Integer pkSupplier = null;
|
||||
if(bdCubasdocDate.getCode() == HttpStatus.SUCCESS){
|
||||
BdCubasdocDTO bdCubasdoc = bdCubasdocDate.getData();
|
||||
if(bdCubasdoc == null){
|
||||
pkSupplier = 1;
|
||||
}else {
|
||||
pkSupplier = bdCubasdoc.getPkSupplier();
|
||||
}
|
||||
}
|
||||
supplierPostageParam.setPkCubasdoc(pkSupplier);
|
||||
List<SupplierPostageVo> list = supplierPostageService.selectByQueryList(supplierPostageParam);
|
||||
ExcelUtil<SupplierPostageVo> util = new ExcelUtil<>(SupplierPostageVo.class);
|
||||
util.exportExcel(response, list, "商品信息导出");
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("save")
|
||||
public AjaxResult save(@RequestBody ThSupplierPostage supplierPostage){
|
||||
supplierPostage.setCreationTime(DateUtils.currentDateTime());
|
||||
supplierPostage.setPkCreator(SecurityUtils.getUserId());
|
||||
supplierPostage.setPkCountry(SecurityUtils.getPkCountry());
|
||||
supplierPostageService.save(supplierPostage);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*/
|
||||
@PostMapping("update")
|
||||
public AjaxResult update(@RequestBody ThSupplierPostage supplierPostage){
|
||||
supplierPostageService.updateById(supplierPostage);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询详情
|
||||
*/
|
||||
@GetMapping("detail")
|
||||
public AjaxResult detail(Integer pkSupplierPostage){
|
||||
|
||||
SupplierPostageVo supplierPostageVo = supplierPostageService.selectByPkId(pkSupplierPostage);
|
||||
|
||||
return AjaxResult.success(supplierPostageVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
* @param pkSupplierPostage
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("remove")
|
||||
public AjaxResult remove(Integer pkSupplierPostage){
|
||||
supplierPostageService.removeById(pkSupplierPostage);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
package com.hzs.ground.postage.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||
import com.hzs.common.domain.scm.postage.ThSupplierPostage;
|
||||
import com.hzs.common.domain.scm.postage.ext.ThSupplierPostageExt;
|
||||
import com.hzs.ground.postage.param.SupplierPostageParam;
|
||||
import com.hzs.ground.postage.vo.SupplierPostageVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2024-04-19
|
||||
*/
|
||||
public interface ThSupplierPostageMapper extends BaseMapper<ThSupplierPostage> {
|
||||
|
||||
/*
|
||||
* @description: 根据订单批量查询供应商邮费
|
||||
* @author: sui q
|
||||
* @date: 2024/4/19 16:29
|
||||
* @param: null null
|
||||
**/
|
||||
List<ThSupplierPostageExt> querySupplierPostageByOrder(@Param("orderItemsExtList") List<SaOrderItemsExt> orderItemsExtList);
|
||||
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
* @return
|
||||
*/
|
||||
List<SupplierPostageVo> selectByQueryList(SupplierPostageParam supplierPostageParam);
|
||||
|
||||
/**
|
||||
* 根据id 查询
|
||||
* @param pkSupplierPostage
|
||||
* @return
|
||||
*/
|
||||
SupplierPostageVo selectByPkId(@Param("pkSupplierPostage") Integer pkSupplierPostage);
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue