diff --git a/bd-api/bd-api-member/src/main/java/com/hzs/retail/member/IMemberRetailApi.java b/bd-api/bd-api-member/src/main/java/com/hzs/retail/member/IMemberRetailApi.java
index cf060659..e994f225 100644
--- a/bd-api/bd-api-member/src/main/java/com/hzs/retail/member/IMemberRetailApi.java
+++ b/bd-api/bd-api-member/src/main/java/com/hzs/retail/member/IMemberRetailApi.java
@@ -5,11 +5,7 @@ import com.hzs.common.core.domain.R;
import java.util.List;
/**
- * @Description: 新零售会员dubbo服务
- * @Author: jiang chao
- * @Time: 2024/12/31 13:40
- * @Classname: IMemberRetailApi
- * @PackageName: com.hzs.retail.member
+ * 新零售会员dubbo服务
*/
public interface IMemberRetailApi {
@@ -20,7 +16,6 @@ public interface IMemberRetailApi {
*/
R> checkRegion();
-
/**
* 取消收益区域
*
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java
index 3eb97515..0c2ef6e4 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java
@@ -42,7 +42,7 @@ public class CuMemberTreeServiceImpl extends ServiceImpl {
/**
* 根据等级更新会员等级
*/
- void updateCuMemberGradeByPeriod(List cuMemberGradeList, Integer period);
+ void updateCuMemberGradeByPeriod(Integer period);
/**
* 查询会员等级
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java
index 28c23a76..877d608e 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java
@@ -50,7 +50,7 @@ public class CuMemberServiceImpl extends ServiceImpl i
}
@Override
- public void updateCuMemberGradeByPeriod(List cuMemberGradeList, Integer period) {
+ public void updateCuMemberGradeByPeriod(Integer period) {
baseMapper.updateCuMemberGrade(period);
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/manage/CuMemberSpeRetailController.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/manage/CuMemberSpeRetailController.java
index 28b1f008..c2335b02 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/manage/CuMemberSpeRetailController.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/manage/CuMemberSpeRetailController.java
@@ -68,7 +68,8 @@ public class CuMemberSpeRetailController extends BaseController {
return AjaxResult.error("会员信息不存在");
}
//校验团队总盒数大于小区盒数
- if (retailAreaParam.getTeamBoxNum() < retailAreaParam.getSmallBoxNum()) {
+// if (retailAreaParam.getTeamBoxNum() < retailAreaParam.getSmallBoxNum()) {
+ if (retailAreaParam.getTeamBoxNum().compareTo(retailAreaParam.getSmallBoxNum()) < 0) {
return AjaxResult.error("团队盒数需大于小区盒数");
}
//校验结算日期是否为空
@@ -146,7 +147,8 @@ public class CuMemberSpeRetailController extends BaseController {
continue;
}
//校验团队总盒数大于小区盒数
- if (cma.getTeamBoxNum() < cma.getSmallBoxNum()) {
+// if (cma.getTeamBoxNum() < cma.getSmallBoxNum()) {
+ if (cma.getTeamBoxNum().compareTo(cma.getSmallBoxNum()) < 0) {
cma.setMsg("团队盒数需大于小区盒数");
errorlist.add(cma);
continue;
@@ -248,7 +250,8 @@ public class CuMemberSpeRetailController extends BaseController {
return AjaxResult.error("会员信息不存在");
}
//校验团队总盒数大于小区盒数
- if (retailAreaParam.getTeamBoxNum() < retailAreaParam.getSmallBoxNum()) {
+// if (retailAreaParam.getTeamBoxNum() < retailAreaParam.getSmallBoxNum()) {
+ if (retailAreaParam.getTeamBoxNum().compareTo(retailAreaParam.getSmallBoxNum()) < 0) {
return AjaxResult.error("团队盒数需大于小区盒数");
}
//校验结算日期是否为空
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/BdWaresBonusItemsMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/BdWaresBonusItemsMapper.java
index 21327fe0..ab2c8434 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/BdWaresBonusItemsMapper.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/BdWaresBonusItemsMapper.java
@@ -4,12 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.bonus.BdWaresBonusItems;
/**
- *
* 特殊商品分配ev奖金明细 Mapper 接口
- *
- *
- * @author hzs
- * @since 2024-10-30
*/
public interface BdWaresBonusItemsMapper extends BaseMapper {
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusCoachMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusCoachMapper.java
index cf604fad..3ce3c4d4 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusCoachMapper.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusCoachMapper.java
@@ -9,48 +9,35 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
- *
* 会员奖金-辅导收益明细表 Mapper 接口
- *
- *
- * @author hzs
- * @since 2022-11-15
*/
public interface CuMemberBonusCoachMapper extends BaseMapper {
/**
* 删除会员奖金汇总表
+ *
* @param period 结算期间
- * @return: void
- * @Author: sui q
- * @Date: 2022/12/13 11:54
*/
void deleteCuMemberBonusCoach(Integer period);
/**
* 批量插入会员奖金主表
+ *
* @param cuMemberBonusCoachList 会员奖金
- * @return: void
- * @Author: sui q
- * @Date: 2022/12/13 13:56
*/
void batchInsertCuMemberBonusCoach(@Param("cuMemberBonusCoachList") List> cuMemberBonusCoachList);
/**
* 根据查询条件查询固定的奖金明细
+ *
* @param bonusParam 查询条件
- * @return: List
- * @Author: sui q
- * @Date: 2023/1/14 11:18
*/
List queryMemberBonusCoachByBonusItems(BonusParam bonusParam);
/**
* 根据查询条件查询固定的奖金明细
+ *
* @param bonusParam 查询条件
- * @return: List
- * @Author: sui q
- * @Date: 2023/1/14 11:18
*/
List queryMemberBonusCoachByBonusItemsForServer(@Param("bonusParam") BonusParam bonusParam);
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusDetailMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusDetailMapper.java
index e447c118..04dc1814 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusDetailMapper.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusDetailMapper.java
@@ -9,76 +9,49 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
- *
* 会员奖金-奖金收益明细表(报单费) Mapper 接口
- *
- *
- * @author hzs
- * @since 2022-11-17
*/
public interface CuMemberBonusDetailMapper extends BaseMapper {
/**
* 删除会员奖金汇总表
+ *
* @param period 结算期间
- * @return: void
- * @Author: sui q
- * @Date: 2022/12/13 11:54
*/
void deleteCuMemberBonusDetail(Integer period);
/**
* 批量插入会员奖金主表
+ *
* @param cuMemberBonusDetailList 会员奖金
- * @return: void
- * @Author: sui q
- * @Date: 2022/12/13 13:56
*/
void batchInsertCuMemberBonusDetail(@Param("cuMemberBonusDetailList") List> cuMemberBonusDetailList);
- /**
- * 批量插入会员奖金主表
- *
- * @param cuMemberBonusDetail 会员奖金
- * @return: void
- * @Author: sui q
- * @Date: 2022/12/13 13:56
- */
- void insertCuMemberBonusDetail(@Param("item") CuMemberBonusDetail cuMemberBonusDetail);
-
/**
* 根据查询条件查询会员奖金明细
+ *
* @param bonusParam 查询条件
- * @return: List
- * @Author: sui q
- * @Date: 2023/1/14 9:18
*/
List queryMemberBonusDetailByCondition(BonusParam bonusParam);
/**
* 会员端根据查询条件查询会员奖金明细
+ *
* @param bonusParam 查询条件
- * @return: List
- * @Author: sui q
- * @Date: 2023/1/14 9:18
*/
List queryMemberBonusDetailByConditionForServer(@Param("bonusParam") BonusParam bonusParam);
/**
* 根据查询条件查询固定的奖金明细
+ *
* @param bonusParam 查询条件
- * @return: List
- * @Author: sui q
- * @Date: 2023/1/14 11:18
- */
+ */
List queryMemberBonusDetailByBonusItems(BonusParam bonusParam);
/**
* 根据查询条件查询固定的奖金明细
+ *
* @param bonusParam 查询条件
- * @return: List
- * @Author: sui q
- * @Date: 2023/1/14 11:18
*/
List queryMemberBonusDetailByBonusItemsForServer(@Param("bonusParam") BonusParam bonusParam);
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusExpandMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusExpandMapper.java
index bbeec528..eff30d4b 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusExpandMapper.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusExpandMapper.java
@@ -9,12 +9,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
- *
* 会员奖金-拓展收益明细表 Mapper 接口
- *
- *
- * @author hzs
- * @since 2022-11-15
*/
public interface CuMemberBonusExpandMapper extends BaseMapper {
@@ -22,9 +17,6 @@ public interface CuMemberBonusExpandMapper extends BaseMapper cuMemberBonusExpandList);
- /**
- * 批量插入会员奖金,拓展
- *
- * @param cuMemberBonusExpandList 会员奖金
- * @return: void
- * @Author: sui q
- * @Date: 2022/12/13 13:56
- */
- void insertCuMemberBonusExpand(List cuMemberBonusExpandList);
-
-
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
- * @return: List
- * @Author: sui q
- * @Date: 2023/1/14 11:18
*/
List queryMemberBonusExpandByBonusItems(BonusParam bonusParam);
@@ -63,9 +38,6 @@ public interface CuMemberBonusExpandMapper extends BaseMapper
- * @Author: sui q
- * @Date: 2023/1/14 11:18
*/
List queryMemberBonusExpandByBonusItemsForServer(@Param("bonusParam") BonusParam bonusParam);
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java
index 4b9fa3e5..6b9d96aa 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusMapper.java
@@ -20,13 +20,6 @@ public interface CuMemberBonusMapper extends BaseMapper {
*/
List batchQueryCuMemberBonusSeq(Integer rowNum);
- /**
- * 根据查询条件查询会员奖金
- *
- * @param bonusParam 查询条件
- */
- List queryMemberBonusTotalByCondition(BonusParam bonusParam);
-
/**
* 根据查询条件查询会员奖金
*
@@ -46,7 +39,6 @@ public interface CuMemberBonusMapper extends BaseMapper {
**/
CuMemberBonusExt queryMemberBonusByConditionForServerSum(@Param("bonusParam") BonusParam bonusParam);
-
/**
* 根据查询条件查询会员奖金
*
@@ -90,10 +82,5 @@ public interface CuMemberBonusMapper extends BaseMapper {
*/
void mergeBackRangeBonusIncome(@Param("pkOrder") Long pkOrder, @Param("bonusValue") Integer bonusValue);
- /**
- * 查询会员一周周期的拓展累计,复购拓展累计
- */
- List queryWeekMemberBonus(@Param("startPeriod") int startPeriod, @Param("endPeriod") int endPeriod);
-
void recalculateTeamNewBoxNum(@Param("pkId") Long pkId, @Param("retailsTableName") String retailsTableName);
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusPushHisMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusPushHisMapper.java
deleted file mode 100644
index 8c5524c9..00000000
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberBonusPushHisMapper.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.hzs.bonus.bonus.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.hzs.common.domain.member.bonus.CuMemberBonusPushHis;
-
-/**
- *
- * 会员奖金-直推历史轮次记录 Mapper 接口
- *
- *
- * @author hzs
- * @since 2023-09-10
- */
-public interface CuMemberBonusPushHisMapper extends BaseMapper {
-
-}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberShareBonusMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberShareBonusMapper.java
index 83e18f22..3e559148 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberShareBonusMapper.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberShareBonusMapper.java
@@ -6,20 +6,12 @@ import com.hzs.common.domain.member.ext.CuMemberShareBonusExt;
import org.apache.ibatis.annotations.Param;
/**
- *
* 会员奖金-分红奖金配置 Mapper 接口
- *
- *
- * @author hzs
- * @since 2023-07-03
*/
public interface CuMemberShareBonusMapper extends BaseMapper {
/*
- * @description: 查询会员分享奖金
- * @author: sui q
- * @date: 2023/7/3 15:28
- * @param: null null
+ * 查询会员分享奖金
**/
CuMemberShareBonusExt queryCuMemberShareBonus(@Param("pkCountry") Integer pkCountry, @Param("settleMonth") String settleMonth);
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberShareDetailMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberShareDetailMapper.java
index 3793719b..3df67329 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberShareDetailMapper.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberShareDetailMapper.java
@@ -8,28 +8,13 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
- *
* 会员奖金-分红奖金配置明细 Mapper 接口
- *
- *
- * @author hzs
- * @since 2023-07-03
*/
public interface CuMemberShareDetailMapper extends BaseMapper {
/*
- * @description: 更新分享明细
- * @author: sui q
- * @date: 2023/7/3 14:11
- * @param: null null
+ * 更新分享明细
**/
void saveMemberShareBonus(@Param("cuMemberShareDetailList") List cuMemberShareDetailList);
- /*
- * @description: 根据期间查询对应的奖衔 period当前月第一天
- * @author: sui q
- * @date: 2023/8/11 15:42
- * @param: null null
- **/
- List queryCuMemberShareBonusByPeriod(Integer period);
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberShareMaxMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberShareMaxMapper.java
deleted file mode 100644
index ebc7abd0..00000000
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/mapper/CuMemberShareMaxMapper.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.hzs.bonus.bonus.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.hzs.common.domain.member.bonus.CuMemberShareMax;
-
-/**
- *
- * 会员奖金-最大分红奖金 Mapper 接口
- *
- *
- * @author hzs
- * @since 2023-01-06
- */
-public interface CuMemberShareMaxMapper extends BaseMapper {
-
- /**
- * 物理删除理论最大分红金额
- * @param period 期间
- * @return: void
- * @Author: sui q
- * @Date: 2023/1/7 10:31
- */
- void deleteCuMemberShareMax(Integer period);
-}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/param/RetailAreaParam.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/param/RetailAreaParam.java
index b727007b..5ba6f194 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/param/RetailAreaParam.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/param/RetailAreaParam.java
@@ -22,12 +22,12 @@ public class RetailAreaParam implements Serializable {
* 团队总盒数
*/
@Excel(name = "团队总盒数")
- private Integer teamBoxNum = 0;
+ private BigDecimal teamBoxNum = BigDecimal.ZERO;
/**
* 小区盒数
*/
@Excel(name = "小区盒数")
- private Integer smallBoxNum = 0;
+ private BigDecimal smallBoxNum = BigDecimal.ZERO;
/**
* 结算日期
@@ -56,7 +56,7 @@ public class RetailAreaParam implements Serializable {
/**
* 个人消费盒数
*/
- private Integer consumeBoxNum;
+ private BigDecimal consumeBoxNum;
/**
* 结算开始日期
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBdWaresBonusItemsService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBdWaresBonusItemsService.java
index ec7c8444..b4b9cb29 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBdWaresBonusItemsService.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBdWaresBonusItemsService.java
@@ -6,36 +6,22 @@ import com.hzs.common.domain.member.bonus.BdWaresBonusItems;
import java.util.List;
/**
- *
* 特殊商品分配ev奖金明细 服务类
- *
- *
- * @author hzs
- * @since 2024-10-30
*/
public interface IBdWaresBonusItemsService extends IService {
/*
- * @description: 插入奖金特殊项奖金
- * @author: sui q
- * @date: 2024/11/7 15:04
- * @param: null null
+ * 插入奖金特殊项奖金
**/
void insetWaresBonusItems(List waresBonusItemsList);
/*
- * @description: 插入奖金特殊项奖金
- * @author: sui q
- * @date: 2024/11/7 15:04
- * @param: null null
+ * 插入奖金特殊项奖金
**/
void updateWaresBonusItems(List waresBonusItemsList);
/*
- * @description: 插入奖金特殊项奖金
- * @author: sui q
- * @date: 2024/11/7 15:04
- * @param: null null
+ * 插入奖金特殊项奖金
**/
void deleteWaresBonusItems(List waresBonusItemsList, Long pkWaresBonus, Long userId);
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusCoachService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusCoachService.java
index 241fcf7c..876debdf 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusCoachService.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusCoachService.java
@@ -7,30 +7,21 @@ import java.util.List;
import java.util.Set;
/**
- *
* 会员奖金-辅导收益明细表 服务类
- *
- *
- * @author hzs
- * @since 2022-11-15
*/
public interface ICuMemberBonusCoachService extends IService {
/**
* 删除会员奖金汇总表
+ *
* @param period 结算期间
- * @return: void
- * @Author: sui q
- * @Date: 2022/12/13 11:54
*/
void deleteCuMemberBonusCoach(Integer period);
/**
* 批量插入会员奖金主表
+ *
* @param cuMemberBonusCoachList 会员奖金
- * @return: void
- * @Author: sui q
- * @Date: 2022/12/13 13:56
*/
void batchInsertCuMemberBonusCoach(List cuMemberBonusCoachList, Set memberIdSet);
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusDetailService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusDetailService.java
index 522bddd7..677069ac 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusDetailService.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusDetailService.java
@@ -7,12 +7,7 @@ import java.util.List;
import java.util.Set;
/**
- *
* 会员奖金-奖金收益明细表(报单费) 服务类
- *
- *
- * @author hzs
- * @since 2022-11-17
*/
public interface ICuMemberBonusDetailService extends IService {
@@ -20,9 +15,6 @@ public interface ICuMemberBonusDetailService extends IService cuMemberBonusDetailList, Set memberIdSet);
- /**
- * 批量插入会员奖金主表
- *
- * @param cuMemberBonusDetail 会员奖金
- * @return: void
- * @Author: sui q
- * @Date: 2022/12/13 13:56
- */
- void insertCuMemberBonusDetail(CuMemberBonusDetail cuMemberBonusDetail);
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusExpandService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusExpandService.java
index ee0a56b0..9143331f 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusExpandService.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusExpandService.java
@@ -7,12 +7,7 @@ import java.util.List;
import java.util.Set;
/**
- *
* 会员奖金-拓展收益明细表 服务类
- *
- *
- * @author hzs
- * @since 2022-11-15
*/
public interface ICuMemberBonusExpandService extends IService {
@@ -20,9 +15,6 @@ public interface ICuMemberBonusExpandService extends IService cuMemberBonusExpandList, Set memberIdSet);
- /**
- * 批量插入会员奖金主表
- *
- * @param cuMemberBonusExpandList 会员奖金
- * @return: void
- * @Author: sui q
- * @Date: 2022/12/13 13:56
- */
- void insertCuMemberBonusExpand(List cuMemberBonusExpandList);
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusPushHisService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusPushHisService.java
deleted file mode 100644
index a2cf7cce..00000000
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusPushHisService.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.hzs.bonus.bonus.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.hzs.common.domain.member.bonus.CuMemberBonusPushHis;
-
-import java.util.List;
-
-/**
- *
- * 会员奖金-直推历史轮次记录 服务类
- *
- *
- * @author hzs
- * @since 2023-09-10
- */
-public interface ICuMemberBonusPushHisService extends IService {
-
- /*
- * @description: 查询会员历史推荐
- * @author: sui q
- * @date: 2023/9/10 14:23
- * @param: null null
- **/
- List queryCuMemberBonusPushHis(Long pkMember);
-}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java
index 412b9329..4eb22b9a 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusService.java
@@ -8,7 +8,6 @@ import com.hzs.common.domain.member.ext.CuMemberBonusExt;
import java.util.Date;
import java.util.List;
-import java.util.Map;
import java.util.Set;
/**
@@ -141,11 +140,6 @@ public interface ICuMemberBonusService extends IService {
*/
void mergeBackMemberBonusIncome(Long pkOrder);
- /**
- * 查询会员一周周期的拓展累计,复购拓展累计
- */
- Map queryWeekMemberBonus(int startPeriod, int endPeriod);
-
void calculateBonusTotal(CuMemberBonusExt cuMemberBonusExt, CuMemberBonusExt memberBonusExt);
CuMemberBonusExt initCuMemberBonus();
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberShareBonusService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberShareBonusService.java
index ec2be654..3998d935 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberShareBonusService.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberShareBonusService.java
@@ -6,28 +6,17 @@ import com.hzs.common.domain.member.ext.CuMemberShareBonusExt;
import com.hzs.bonus.bonus.param.CuMemberShareBonusParam;
/**
- *
* 会员奖金-分红奖金配置 服务类
- *
- *
- * @author hzs
- * @since 2023-07-03
*/
public interface ICuMemberShareBonusService extends IService {
/*
- * @description: 保存会员分红奖金及明细
- * @author: sui q
- * @date: 2023/7/3 14:04
- * @param: null null
+ * 保存会员分红奖金及明细
**/
void saveMemberShareBonus(CuMemberShareBonusParam cuMemberShareBonusParam);
/*
- * @description: 查询分红配置的参数
- * @author: sui q
- * @date: 2023/7/3 15:24
- * @param: null null
+ * 查询分红配置的参数
**/
CuMemberShareBonusExt queryCuMemberShareBonus(Integer pkCountry, String settleMonth);
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberShareDetailService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberShareDetailService.java
index cd39d1e3..c29b99a1 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberShareDetailService.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberShareDetailService.java
@@ -8,29 +8,13 @@ import java.util.List;
import java.util.Map;
/**
- *
* 会员奖金-分红奖金配置明细 服务类
- *
- *
- * @author hzs
- * @since 2023-07-03
*/
public interface ICuMemberShareDetailService extends IService {
/*
- * @description: 更新分享明细
- * @author: sui q
- * @date: 2023/7/3 14:11
- * @param: null null
+ * 更新分享明细
**/
void saveMemberShareBonus(List cuMemberShareDetailList);
- /*
- * @description: 根据期间查询奖衔设置的分红配置
- * key 国家+奖衔 明细
- * @author: sui q
- * @date: 2023/8/11 15:35
- * @param: null null
- **/
- Map queryCuMemberShareBonusByPeriod(Integer period);
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberShareMaxService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberShareMaxService.java
deleted file mode 100644
index 8e4f0024..00000000
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberShareMaxService.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.hzs.bonus.bonus.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.hzs.common.domain.member.bonus.CuMemberShareMax;
-
-/**
- *
- * 会员奖金-最大分红奖金 服务类
- *
- *
- * @author hzs
- * @since 2023-01-06
- */
-public interface ICuMemberShareMaxService extends IService {
-
- /**
- * 插入理论最大的可以进行分红的奖金
- * @param cuMemberShareMax 最大分红的奖金
- * @return: void
- * @Author: sui q
- * @Date: 2023/1/6 17:23
- */
- void insertMaxShareBonus(CuMemberShareMax cuMemberShareMax);
-}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BdWaresBonusItemsServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BdWaresBonusItemsServiceImpl.java
index 8cb99f7a..c73d56db 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BdWaresBonusItemsServiceImpl.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BdWaresBonusItemsServiceImpl.java
@@ -11,18 +11,13 @@ import com.hzs.common.domain.member.bonus.BdWaresBonusItems;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
- *
* 特殊商品分配ev奖金明细 服务实现类
- *
*
- * @author hzs
- * @since 2024-10-30
*/
@Service
public class BdWaresBonusItemsServiceImpl extends ServiceImpl implements IBdWaresBonusItemsService {
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java
index f06c436f..e0bcb830 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java
@@ -91,7 +91,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 等级列表
List retaiGradeList = bonusConfigDTO.getRetaiGradeList();
for (BdGrade bdGrade : retaiGradeList) {
- if (bdGrade.getBoxTotal() > 0) {
+ if (bdGrade.getBoxTotal().compareTo(BigDecimal.ZERO) > 0) {
retailTeamGradeMap.put(bdGrade.getGradeValue(), bdGrade);
}
gradeMap.put(bdGrade.getGradeValue(), bdGrade);
@@ -115,23 +115,27 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
// 先算等级 注册、升级计算等级
// 订单指定产品盒数
- int boxNum = 0;
- for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
- if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
- boxNum += saOrderItems.getWaresQuantity();
- }
- }
- saOrderExt.setBoxNum(boxNum);
+ BigDecimal boxNum = saOrderExt.getBoxNum();
+// BigDecimal boxNum = BigDecimal.ZERO;
+// for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
+// if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
+// boxNum = boxNum.add(saOrderItems.getWaresBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity())));
+// }
+// }
+// saOrderExt.setBoxNum(boxNum);
// 订单业绩
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
// 注册、升级、复购、重消,盒数、业绩算个人累计数据(盒数、业绩)
- sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() + boxNum);
- sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() + boxNum);
- sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum() + boxNum);
+ sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum().add(boxNum));
+ sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum().add(boxNum));
+ sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum().add(boxNum));
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getConsumePv(), orderAchieve));
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
+ // 累计盒数、业绩,不管激活不激活都处理,兼容不激活判断显示有问题
+ sourceMemberRangeExt.setAllNewBoxNum(sourceMemberRangeExt.getAllNewBoxNum().add(boxNum));
+ sourceMemberRangeExt.setAllNewConsumePv(sourceMemberRangeExt.getAllNewConsumePv().add(orderAchieve));
// 会员等级升级记录
List cuMemberGradeList = new ArrayList<>();
@@ -151,7 +155,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
) {
// 注册、升级订单,计算奖金: 直推级差收益 + 平级收益
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
- if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
+ if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())
+ && EDelFlag.UN_DELETE.getValue() == saOrderItems.getDelFlag()) {
// 指定盒数商品
// 计算直推级差收益 + 平级收益
cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, currentPeriod, saOrderItems, saOrderExt));
@@ -159,11 +164,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
}
- // 查询区域配置
- Map countyRangeExtMap = new HashMap<>();
+ // 区域处理
List countyRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailSecondRangeByCounty(rangeTableName, secondRangeTableName, saOrderExt.getRecCounty());
+ // 区域会员map(key:区域分组ID + 区ID ,value: 区域会员结算数据)
+ Map countyRangeExtMap = new HashMap<>();
countyRangeExtList.forEach(cuMemberRetailRangeExt ->
- countyRangeExtMap.put(cuMemberRetailRangeExt.getSystemType() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
+ countyRangeExtMap.put(cuMemberRetailRangeExt.getRegionVertexPkId() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
// 计算区域奖
CuMemberBonusDetail cuMemberBonusDetail = calculateRetailAreaBonus(countyRangeExtMap, bonusConfigDTO, currentPeriod, memberRangeExtMap, cuMemberBonusMap, saOrderExt);
if (cuMemberBonusDetail != null) {
@@ -200,8 +206,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 当天的撤单
List memberRetailRangeExtList;
String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + beforePeriod;
+ // 是否当天
+ boolean isSecond = DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate());
- if (DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) {
+ if (isSecond) {
// 当天撤单
// 实时网体查询血缘伞上会员,更新秒结表等级、奖衔
iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(secondRangeTableName, saOrderExt.getPkMember(), EYesNo.YES.getIntValue());
@@ -233,7 +241,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
List retailGradeList = bonusConfigDTO.getRetaiGradeList();
// 等级
for (BdGrade bdGrade : retailGradeList) {
- if (bdGrade.getBoxTotal() > 0) {
+ if (bdGrade.getBoxTotal().compareTo(BigDecimal.ZERO) > 0) {
retailTeamGradeMap.put(bdGrade.getGradeValue(), bdGrade);
}
gradeIdMap.put(bdGrade.getPkId(), bdGrade);
@@ -253,23 +261,30 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 计算自消费奖衔
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
// 先算等级 注册、升级计算等级
- int boxNum = 0;
- for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
- if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
- boxNum += saOrderItems.getWaresQuantity();
- }
- }
- saOrderExt.setBoxNum(boxNum);
+ BigDecimal boxNum = saOrderExt.getBoxNum();
+// BigDecimal boxNum = BigDecimal.ZERO;
+// for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
+// if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
+// boxNum = boxNum.add(saOrderItems.getWaresBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity())));
+// }
+// }
+// saOrderExt.setBoxNum(boxNum);
// 订单业绩
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
// 复购、重消,盒数、业绩算个人累计数据(盒数、业绩)
- sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() - boxNum);
- sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() - boxNum);
- sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum() - boxNum);
+ sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum().subtract(boxNum));
+ sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum().subtract(boxNum));
+ sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum().subtract(boxNum));
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getConsumePv(), orderAchieve));
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeSubtract(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
+ if (isSecond) {
+ // 当天
+ // 累计盒数、业绩,不管激活不激活都处理,兼容不激活判断显示有问题
+ sourceMemberRangeExt.setAllNewBoxNum(sourceMemberRangeExt.getAllNewBoxNum().subtract(boxNum));
+ sourceMemberRangeExt.setAllNewConsumePv(sourceMemberRangeExt.getAllNewConsumePv().subtract(orderAchieve));
+ }
// 会员等级map
Map cuMemberGradeMap = new HashMap<>();
@@ -282,12 +297,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap, sourceMemberRangeExt);
// 计算团队业绩、盒数,计算等级、奖衔
List cuMemberRetailRangeExtList = calculateRetailBackRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap,
- secondRangeTableName, boxNum, cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap);
+ secondRangeTableName, boxNum, cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap, isSecond);
cuMemberRetailRangeExtList.add(sourceMemberRangeExt);
- // 查询期间的等级
+ // 查询期间的等级(来源 cu_member_grade)
List memberGradeList = iCuMemberGradeService.queryCuMemberGrade(cuMemberRetailRangeExtList, currentPeriod);
- // 查询最大的手动奖衔
+ // 查询最大的手动等级(来源 cu_member_grade)
List cuMemberGradeList1 = iCuMemberGradeService.queryCuMemberGradeByList(currentPeriod, memberRetailRangeExtList);
if (cuMemberGradeList1.size() > 0) {
Map memberGradeMap = new HashMap<>();
@@ -325,9 +340,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
}
if (cuMemberGradeList.size() > 0) {
- // 删除等级
+ // 删除等级(cu_member_grade)
iCuMemberGradeService.deleteCuMemberGrade(cuMemberGradeList, currentPeriod);
- // 批量更新会员等级
+ // 批量更新会员等级(更新 cu_member)
iCuMemberService.updateCuMemberMinGradeByList(cuMemberGradeList, currentPeriod);
}
}
@@ -461,7 +476,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 等级列表
List retaiGradeList = bonusConfigDTO.getRetaiGradeList();
for (BdGrade bdGrade : retaiGradeList) {
- if (bdGrade.getBoxTotal() > 0) {
+ if (bdGrade.getBoxTotal().compareTo(BigDecimal.ZERO) > 0) {
retailTeamGradeMap.put(bdGrade.getGradeValue(), bdGrade);
}
gradeMap.put(bdGrade.getGradeValue(), bdGrade);
@@ -481,10 +496,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 区域处理
List countyRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailRangeByCounty(rangeTableName);
- // 区域会员map(key:系统+区ID ,value: 区域会员结算数据)
+ // 区域会员map(key:区域分组ID + 区ID ,value: 区域会员结算数据)
Map countyRangeExtMap = new HashMap<>();
countyRangeExtList.forEach(cuMemberRetailRangeExt ->
- countyRangeExtMap.put(cuMemberRetailRangeExt.getSystemType() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
+ countyRangeExtMap.put(cuMemberRetailRangeExt.getRegionVertexPkId() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
// 会员等级升级记录
List cuMemberGradeList = new ArrayList<>();
@@ -510,21 +525,24 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
// 订单指定产品盒数(计算等级使用)
- int boxNum = 0;
- for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
- if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
- boxNum += saOrderItems.getWaresQuantity();
- }
- }
+ BigDecimal boxNum = saOrderExt.getBoxNum();
+// BigDecimal boxNum = BigDecimal.ZERO;
+// for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
+// if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
+// boxNum = boxNum.add(saOrderItems.getWaresBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity())));
+// }
+// }
+
// 个人累计消费pv
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
// 复购、重消,盒数、业绩算个人累计数据(盒数、业绩)
- sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() + boxNum);
- sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() + boxNum);
- sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum() + boxNum);
+ sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum().add(boxNum));
+ sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum().add(boxNum));
+ sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getMonthBoxNum().add(boxNum));
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getConsumePv(), orderAchieve));
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
+
// 计算自己等级、奖衔等
calculateGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap,
null, cuMemberGradeList, cuMemberAwardsList, sourceMemberRangeExt, activateMap);
@@ -535,27 +553,26 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 计算奖金 直推级差 + 平级收益
if ((EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType())
- && boxNum > 0
+ && boxNum.compareTo(BigDecimal.ZERO) > 0
) {
// 注册或升级订单并且存在盒数产品,才有 直推级差收益 和 平级收益
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
- // 直推级差 + 平级收益
- cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt));
+ if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())
+ && EDelFlag.UN_DELETE.getValue() == saOrderItems.getDelFlag()) {
+ // 盒数商品 计算 直推级差 + 平级收益
+ cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt));
+ }
+ }
- // 计算完奖金算等级
- if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
- || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
- // 订单存在升级记录
- if (memberLevelMap.containsKey(saOrderExt.getPkId())) {
- CuMemberLevel cuMemberLevel = memberLevelMap.get(saOrderExt.getPkId());
- if (gradeIdMap.containsKey(cuMemberLevel.getNewLevel())) {
- BdGrade bdGrade = gradeIdMap.get(cuMemberLevel.getNewLevel());
- if (bdGrade.getGradeValue() > sourceMemberRangeExt.getGradeValue()) {
- sourceMemberRangeExt.setPkGrade(bdGrade.getPkId());
- sourceMemberRangeExt.setGradeValue(bdGrade.getGradeValue());
- sourceMemberRangeExt.setGradeName(bdGrade.getGradeName());
- }
- }
+ // 订单存在升级记录
+ if (memberLevelMap.containsKey(saOrderExt.getPkId())) {
+ CuMemberLevel cuMemberLevel = memberLevelMap.get(saOrderExt.getPkId());
+ if (gradeIdMap.containsKey(cuMemberLevel.getNewLevel())) {
+ BdGrade bdGrade = gradeIdMap.get(cuMemberLevel.getNewLevel());
+ if (bdGrade.getGradeValue() > sourceMemberRangeExt.getGradeValue()) {
+ sourceMemberRangeExt.setPkGrade(bdGrade.getPkId());
+ sourceMemberRangeExt.setGradeValue(bdGrade.getGradeValue());
+ sourceMemberRangeExt.setGradeName(bdGrade.getGradeName());
}
}
}
@@ -590,9 +607,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
if (cuMemberGradeList.size() > 0) {
// 批量插入会员等级记录
iCuMemberGradeService.insertCuMemberGrade(cuMemberGradeList);
- // 更新会员表等级数据(来源 cu_member_grade)
- iCuMemberService.updateCuMemberGradeByPeriod(cuMemberGradeList, period);
- // 更新会员表等级数据(来源 cu_member_level)
+ // 更新会员表(cu_member)等级数据(来源 cu_member_grade)
+ iCuMemberService.updateCuMemberGradeByPeriod(period);
+ // 更新会员表(cu_member)等级数据(来源 cu_member_level)
iCuMemberService.updateCuMemberLevel(settleStartDate, settleEndDate);
}
// 更新网体
@@ -601,11 +618,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
/**
- * 计算团队极差奖衔
+ * 计算团队等级、奖衔 -- 秒结、日结
*/
public List calculateRetailRangeGradeAwards(Integer period, Map memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt,
Map retailTeamGradeMap, Map retailAwardsMap, String secondRangeTableName,
- Integer boxNum, List cuMemberGradeList, Map activateMap) {
+ BigDecimal boxNum, List cuMemberGradeList, Map activateMap) {
// 会员奖衔升级列表
List cuMemberAwardsList = new ArrayList<>();
// 订单会员
@@ -623,20 +640,28 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
targetMemberRangeExt.setEnableStatus(EYesNo.YES.getIntValue());
}
+ // 累计盒数、业绩,不管激活不激活都处理,兼容不激活判断显示有问题
+ targetMemberRangeExt.setAllTeamNewBoxNum(targetMemberRangeExt.getAllTeamNewBoxNum().add(boxNum));
+ targetMemberRangeExt.setAllTeamBoxNum(targetMemberRangeExt.getAllTeamBoxNum().add(boxNum));
+ targetMemberRangeExt.setAllTeamMonthBoxNum(targetMemberRangeExt.getAllTeamMonthBoxNum().add(boxNum));
+ targetMemberRangeExt.setAllTeamNewPv(targetMemberRangeExt.getAllTeamNewPv().add(orderAchieve));
+ targetMemberRangeExt.setAllTeamConsumePv(targetMemberRangeExt.getAllTeamConsumePv().add(orderAchieve));
+ targetMemberRangeExt.setAllTeamMonthPv(targetMemberRangeExt.getAllTeamMonthPv().add(orderAchieve));
+
// 激活的账号才能累计业绩和盒数(有注册、升级订单)
if (targetMemberRangeExt.getEnableStatus() == EYesNo.YES.getIntValue()) {
- // 累计金额
- targetMemberRangeExt.setTeamNewAmount(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamNewAmount(), orderAmount));
- targetMemberRangeExt.setTeamConsumeAmount(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamConsumeAmount(), orderAmount));
- targetMemberRangeExt.setTeamMonthAmount(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthAmount(), orderAmount));
+ // 累计盒数
+ targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum().add(boxNum));
+ targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum().add(boxNum));
+ targetMemberRangeExt.setTeamMonthBoxNum(targetMemberRangeExt.getTeamMonthBoxNum().add(boxNum));
// 累计业绩
targetMemberRangeExt.setTeamNewPv(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamNewPv(), orderAchieve));
targetMemberRangeExt.setTeamConsumePv(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamConsumePv(), orderAchieve));
targetMemberRangeExt.setTeamMonthPv(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), orderAchieve));
- // 累计盒数
- targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum() + boxNum);
- targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum() + boxNum);
- targetMemberRangeExt.setTeamMonthBoxNum(targetMemberRangeExt.getTeamMonthBoxNum() + boxNum);
+ // 累计金额
+ targetMemberRangeExt.setTeamNewAmount(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamNewAmount(), orderAmount));
+ targetMemberRangeExt.setTeamConsumeAmount(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamConsumeAmount(), orderAmount));
+ targetMemberRangeExt.setTeamMonthAmount(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthAmount(), orderAmount));
// 计算等级
calculateGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap,
secondRangeTableName, cuMemberGradeList, cuMemberAwardsList, targetMemberRangeExt, activateMap);
@@ -647,7 +672,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
/**
- * 计算等级、奖衔
+ * 计算等级、奖衔 -- 日结、秒结
*/
private void calculateGradeAwards(Integer period, Map memberRangeExtMap, String rangeTableName,
SaOrderExt saOrderExt, Map retailTeamGradeMap, Map retailAwardsMap,
@@ -663,15 +688,15 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
for (Integer gradeValue : retailTeamGradeMap.keySet()) {
BdGrade bdGrade = retailTeamGradeMap.get(gradeValue);
- // 如果等级值 大于 当前会员等级值 并且 等级要求累计盒数 小于等于 团队累计盒数 + 累计消费盒数,则可以进行升级
+ // 如果等级值 大于 当前会员等级值 并且 等级要求累计盒数 小于等于 团队累计盒数 + 累计消费盒数 + 大区注水 + 小区注水,则可以进行升级
if (bdGrade.getGradeValue() > targetMemberRangeExt.getGradeValue()
- && bdGrade.getBoxTotal() <= (
- targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum()
- + targetMemberRangeExt.getBigBoxNum() + targetMemberRangeExt.getSmallBoxNum()
- )) {
+ && bdGrade.getBoxTotal().compareTo(
+ targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum())
+ ) <= 0
+ ) {
// 验证小区,计算小区累计盒数 查询伞下会员
List cuMemberRangeExtList;
- if (secondRangeTableName != null) {
+ if (null != secondRangeTableName) {
// 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
} else {
@@ -681,12 +706,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// new 新逻辑确认:注水 2 个虚拟区,自己消费 1 个虚拟区,伞下直推,所有的最大
// 大区盒数(默认为自己累计消费盒数)
- int bigBoxNum = targetMemberRangeExt.getConsumeBoxNum();
- if (targetMemberRangeExt.getBigBoxNum() > bigBoxNum) {
+ BigDecimal bigBoxNum = targetMemberRangeExt.getConsumeBoxNum();
+ if (targetMemberRangeExt.getBigBoxNum().compareTo(bigBoxNum) > 0) {
// 注水大区如果大则使用注水盒数为大区
bigBoxNum = targetMemberRangeExt.getBigBoxNum();
}
- if (targetMemberRangeExt.getSmallBoxNum() > bigBoxNum) {
+ if (targetMemberRangeExt.getSmallBoxNum().compareTo(bigBoxNum) > 0) {
// 注水小区如果大则使用注水盒数为大区
bigBoxNum = targetMemberRangeExt.getSmallBoxNum();
}
@@ -696,17 +721,16 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
}
// 伞下团队累计盒数 + 自己消费盒数
- int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum();
- if (areaBoxNum > bigBoxNum) {
+ BigDecimal areaBoxNum = cuMemberRetailRangeExt.getAllTeamBoxNum().add(cuMemberRetailRangeExt.getConsumeBoxNum());
+ if (areaBoxNum.compareTo(bigBoxNum) > 0) {
// 实际订单累计盒数 大于 累计消费盒数,实际订单累计盒数为大区
bigBoxNum = areaBoxNum;
}
}
// 小区盒数(团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数)
- int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum()
- + targetMemberRangeExt.getBigBoxNum() + targetMemberRangeExt.getSmallBoxNum() - bigBoxNum;
- if (smallBoxNum >= bdGrade.getBoxSmallTotal()) {
+ BigDecimal smallBoxNum = targetMemberRangeExt.getAllTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()).subtract(bigBoxNum);
+ if (smallBoxNum.compareTo(bdGrade.getBoxSmallTotal()) >= 0) {
// 小区盒数 大于等于 升级小区盒数
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
cuMemberGradeList.add(cuMemberGrade);
@@ -716,6 +740,20 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
}
}
+
+ if (null != secondRangeTableName) {
+ if (targetMemberRangeExt.getPkMember().equals(saOrderExt.getPkMember())) {
+ // new 兼容购买等级多送2级的问题,秒结处理V4 V5方式不一样,会出现秒结等级和实际等级不匹配
+ CuMemberRetailRangeExt memberRetailLevel = iCuMemberGradeService.getMemberLevel(saOrderExt.getPkMember(), saOrderExt.getPkId());
+ if (null != memberRetailLevel) {
+ if (memberRetailLevel.getGradeValue() > targetMemberRangeExt.getGradeValue()) {
+ targetMemberRangeExt.setPkGrade(memberRetailLevel.getPkGrade());
+ targetMemberRangeExt.setGradeValue(memberRetailLevel.getGradeValue());
+ }
+ }
+ }
+ }
+
// 计算当月奖衔
while (true) {
// 当月奖衔值 + 5,获取下一个奖衔值
@@ -736,6 +774,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
break;
}
+
+ // 校验大小区会员数据
+ List cuMemberRangeExtList = null;
+ // 校验累计小部门会员数据
+ List cuMemberRetailRangeExtList = null;
// 计算分红奖衔
while (true) {
// 当月奖衔值 + 5,获取下一个奖衔值
@@ -745,13 +788,14 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 先验证累计业绩
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getShareTotalCheck())) {
// 再验证小区,计算小区业绩(拉取直推会员数据)
- List cuMemberRangeExtList;
- if (secondRangeTableName != null) {
- // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据
- cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
- } else {
- // 昨日结算表,查询订单会员直推数据
- cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
+ if (null == cuMemberRangeExtList) {
+ if (null != secondRangeTableName) {
+ // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据
+ cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
+ } else {
+ // 昨日结算表,查询订单会员直推数据
+ cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
+ }
}
// 本人月消费业绩(默认为大区)
BigDecimal consumeBigPv = targetMemberRangeExt.getMonthConsumePv();
@@ -760,7 +804,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
}
// 月累计业绩 = 本人月消费业绩 + 团队月消费业绩
- BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv());
+ BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getAllTeamMonthPv());
if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) {
// 月累计业绩 > 大区业绩,则月累计就成为大区了
consumeBigPv = consumePv;
@@ -773,14 +817,15 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 小区业绩 >= 小区考核业绩
if (bdAwards.getPlaceDeptNum() > 0) {
// 验证是否有多个区满足业绩
- List cuMemberRetailRangeExtList;
- // 非秒结需要查询日结相关数据,秒结表使用上面查出的数据就可以
- if (secondRangeTableName != null) {
- // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据
- cuMemberRetailRangeExtList = cuMemberRangeExtList;
- } else {
- // 昨日结算表,查询订单会员直推数据
- cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMemberRangeExt.getPkMember(), bdAwards.getShareCommunityCheck());
+ if (null == cuMemberRetailRangeExtList) {
+ // 非秒结需要查询日结相关数据,秒结表使用上面查出的数据就可以
+ if (null != secondRangeTableName) {
+ // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据
+ cuMemberRetailRangeExtList = cuMemberRangeExtList;
+ } else {
+ // 昨日结算表,查询订单会员直推数据
+ cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMemberRangeExt.getPkMember(), bdAwards.getShareCommunityCheck());
+ }
}
int enoughNum = 0;
@@ -791,7 +836,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
}
- if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()), bdAwards.getShareCommunityCheck())) {
+ if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getAllTeamMonthPv()), bdAwards.getShareCommunityCheck())) {
// 本人月消费业绩 + 团队月消费业绩 >= 小区考核业绩,则满足条件小部门 +1
enoughNum += 1;
}
@@ -812,11 +857,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
/**
- * 计算团队极差奖衔
+ * 计算团队极差奖衔 -- 退单秒结
*/
public List calculateRetailBackRangeGradeAwards(Integer period, Map memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt,
- Map retailTeamGradeMap, Map retailAwardsMap, String secondRangeTableName, Integer boxNum,
- Map cuMemberGradeMap, Map cuMemberAwardsMap, Map cuMemberShareAwardsMap) {
+ Map retailTeamGradeMap, Map retailAwardsMap, String secondRangeTableName, BigDecimal boxNum,
+ Map cuMemberGradeMap, Map cuMemberAwardsMap, Map cuMemberShareAwardsMap,
+ boolean isSecond) {
List cuMemberRetailRangeExtList = new ArrayList<>();
// 订单会员
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
@@ -826,20 +872,35 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
BigDecimal orderAmount = saOrderExt.getOrderAmount();
while (targetMemberRangeExt != null) {
+ // 累计盒数、业绩,不管激活不激活都处理,兼容不激活判断显示有问题
+ if (isSecond) {
+ // 当天,秒结处理
+ targetMemberRangeExt.setAllTeamNewBoxNum(targetMemberRangeExt.getAllTeamNewBoxNum().subtract(boxNum));
+ targetMemberRangeExt.setAllTeamNewPv(targetMemberRangeExt.getAllTeamNewPv().subtract(orderAchieve));
+ } else {
+ // 非当天,日结处理
+ targetMemberRangeExt.setAllTeamNewBoxNum(targetMemberRangeExt.getAllTeamNewBoxNum().subtract(boxNum));
+ targetMemberRangeExt.setAllTeamBoxNum(targetMemberRangeExt.getAllTeamBoxNum().subtract(boxNum));
+ targetMemberRangeExt.setAllTeamMonthBoxNum(targetMemberRangeExt.getAllTeamMonthBoxNum().subtract(boxNum));
+ targetMemberRangeExt.setAllTeamNewPv(targetMemberRangeExt.getAllTeamNewPv().subtract(orderAchieve));
+ targetMemberRangeExt.setAllTeamConsumePv(targetMemberRangeExt.getAllTeamConsumePv().subtract(orderAchieve));
+ targetMemberRangeExt.setAllTeamMonthPv(targetMemberRangeExt.getAllTeamMonthPv().subtract(orderAchieve));
+ }
+
// 激活的账号才能累计业绩和盒数(有注册、升级订单)
if (targetMemberRangeExt.getEnableStatus() == EYesNo.YES.getIntValue()) {
- // 累计业绩
- targetMemberRangeExt.setTeamNewPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewPv(), orderAchieve));
- targetMemberRangeExt.setTeamConsumePv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumePv(), orderAchieve));
- targetMemberRangeExt.setTeamMonthPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), orderAchieve));
+ // 累计盒数
+ targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum().subtract(boxNum));
+ targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum().subtract(boxNum));
+ targetMemberRangeExt.setTeamMonthBoxNum(targetMemberRangeExt.getTeamMonthBoxNum().subtract(boxNum));
// 累计金额
targetMemberRangeExt.setTeamNewAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewAmount(), orderAmount));
targetMemberRangeExt.setTeamConsumeAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumeAmount(), orderAmount));
targetMemberRangeExt.setTeamMonthAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthAmount(), orderAmount));
- // 累计盒数
- targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum() - boxNum);
- targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum() - boxNum);
- targetMemberRangeExt.setTeamMonthBoxNum(targetMemberRangeExt.getTeamMonthBoxNum() - boxNum);
+ // 累计业绩
+ targetMemberRangeExt.setTeamNewPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewPv(), orderAchieve));
+ targetMemberRangeExt.setTeamConsumePv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumePv(), orderAchieve));
+ targetMemberRangeExt.setTeamMonthPv(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), orderAchieve));
// 计算等级
calculateBackGrade(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName,
cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap, targetMemberRangeExt);
@@ -859,10 +920,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
for (Integer gradeValue : retailTeamGradeMap.keySet()) {
BdGrade bdGrade = retailTeamGradeMap.get(gradeValue);
- if (bdGrade.getBoxTotal() <= (
- targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum()
- + targetMemberRangeExt.getBigBoxNum() + targetMemberRangeExt.getSmallBoxNum()
- )) {
+ if (bdGrade.getBoxTotal().compareTo(targetMemberRangeExt.getTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum())) <= 0) {
// 验证小区,计算小区累计盒数 查询伞下会员
List cuMemberRangeExtList;
if (secondRangeTableName != null) {
@@ -875,12 +933,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// new 新逻辑确认:注水 2 个虚拟区,自己消费 1 个虚拟区,伞下直推,所有的最大
// 大区盒数(默认为自己累计消费盒数)
- int bigBoxNum = targetMemberRangeExt.getConsumeBoxNum();
- if (targetMemberRangeExt.getBigBoxNum() > bigBoxNum) {
+ BigDecimal bigBoxNum = targetMemberRangeExt.getConsumeBoxNum();
+ if (targetMemberRangeExt.getBigBoxNum().compareTo(bigBoxNum) > 0) {
// 注水大区如果大则使用注水盒数为大区
bigBoxNum = targetMemberRangeExt.getBigBoxNum();
}
- if (targetMemberRangeExt.getSmallBoxNum() > bigBoxNum) {
+ if (targetMemberRangeExt.getSmallBoxNum().compareTo(bigBoxNum) > 0) {
// 注水小区如果大则使用注水盒数为大区
bigBoxNum = targetMemberRangeExt.getSmallBoxNum();
}
@@ -890,17 +948,16 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
}
// 伞下团队累计盒数 + 自己消费盒数
- int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum();
- if (areaBoxNum > bigBoxNum) {
+ BigDecimal areaBoxNum = cuMemberRetailRangeExt.getAllTeamBoxNum().add(cuMemberRetailRangeExt.getConsumeBoxNum());
+ if (areaBoxNum.compareTo(bigBoxNum) > 0) {
// 实际订单累计盒数 大于 累计消费盒数,实际订单累计盒数为大区
bigBoxNum = areaBoxNum;
}
}
// 小区盒数(团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数)
- int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum()
- + targetMemberRangeExt.getBigBoxNum() + targetMemberRangeExt.getSmallBoxNum() - bigBoxNum;
- if (smallBoxNum >= bdGrade.getBoxSmallTotal()) {
+ BigDecimal smallBoxNum = targetMemberRangeExt.getAllTeamBoxNum().add(targetMemberRangeExt.getConsumeBoxNum()).add(targetMemberRangeExt.getBigBoxNum()).add(targetMemberRangeExt.getSmallBoxNum()).subtract(bigBoxNum);
+ if (smallBoxNum.compareTo(bdGrade.getBoxSmallTotal()) >= 0) {
// 小区盒数 大于等于 升级小区盒数
CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade);
cuMemberGradeMap.put(cuMemberGrade.getPkMember() + "_" + cuMemberGrade.getNewLevel(), cuMemberGrade);
@@ -955,7 +1012,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
}
// 月累计业绩 = 本人月消费业绩 + 团队月消费业绩
- BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv());
+ BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getAllTeamMonthPv());
if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) {
// 月累计业绩 > 大区业绩,则月累计就成为大区了
consumeBigPv = consumePv;
@@ -985,7 +1042,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
}
- if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()), bdAwards.getShareCommunityCheck())) {
+ if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getAllTeamMonthPv()), bdAwards.getShareCommunityCheck())) {
// 本人月消费业绩 + 团队月消费业绩 >= 小区考核业绩,则满足条件小部门 +1
enoughNum += 1;
}
@@ -1315,14 +1372,14 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
if (saOrder.getOrderType().equals(EOrderType.RETAIL_CONSUME.getValue())) {
return null;
}
- // 区域分红根据商品盒数来,如果没有盒数,直接返回为空
- if (saOrder.getBoxNum() == 0) {
- return null;
- }
+// // 区域分红根据商品盒数来,如果没有盒数,直接返回为空
+// if (saOrder.getBoxNum().compareTo(BigDecimal.ZERO) == 0) {
+// return null;
+// }
CuMemberRetailRangeExt sourceRetailRangeExt = memberRangeExtMap.get(saOrder.getPkMember());
// 获取对应区域会员
- CuMemberRetailRangeExt cuMemberRetailRangeExt = countyRangeExtMap.get(sourceRetailRangeExt.getSystemType() + "_" + saOrder.getRecCounty());
+ CuMemberRetailRangeExt cuMemberRetailRangeExt = countyRangeExtMap.get(sourceRetailRangeExt.getRegionVertexPkId() + "_" + saOrder.getRecCounty());
if (null == cuMemberRetailRangeExt) {
return null;
}
@@ -1364,13 +1421,22 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType()) {
// 复购订单, 区域收益 = 复购区域分红 * 商品数量
for (SaOrderWaresExt saOrderWaresExt : saOrder.getOrderWaresExtList()) {
- benefitIncome = benefitIncome.add(saOrderWaresExt.getAreaIncome().multiply(new BigDecimal(saOrderWaresExt.getWaresQuantity())));
+ if (EDelFlag.UN_DELETE.getValue() == saOrderWaresExt.getDelFlag()) {
+ if (ERatioType.VALUE.getValue() == saOrderWaresExt.getAreaIncomeType()) {
+ // 按比值处理
+ benefitIncome = benefitIncome.add(saOrderWaresExt.getAreaIncome().multiply(new BigDecimal(saOrderWaresExt.getWaresQuantity())));
+ } else {
+ // 按比率处理
+ benefitIncome = benefitIncome.add(saOrderWaresExt.getWaresPrice().multiply(saOrderWaresExt.getAreaIncome()).divide(new BigDecimal("100"), 6, BigDecimal.ROUND_HALF_UP));
+ }
+ }
}
}
+
CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, null, RetailConstants.SAME_RATIO, benefitIncome,
cuMemberRetailRangeExt, EBonusItems.RETAIL_AREA_INCOME.getValue(), BonusMsgConstants.RETAIL_AREA_INCOME);
// 计算业绩以盒数做为基础
- cuMemberBonusDetail.setCalAchieve(new BigDecimal(saOrder.getBoxNum()));
+ cuMemberBonusDetail.setCalAchieve(saOrder.getBoxNum());
cuMemberBonusDetail.setPkOrder(saOrder.getPkId());
String remark = String.format(BonusMsgConstants.RETAIL_AREA_INCOME, saOrder.getOrderCode(),
memberRangeExtMap.get(saOrder.getPkMember()).getMemberCode() + memberRangeExtMap.get(saOrder.getPkMember()).getMemberName(),
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java
index 650747c8..a2aeb266 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java
@@ -126,7 +126,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
bonusSettleRangeHandle.calculateRetailBonusByDay(settleDate, cuMemberBonusMap, bonusConfigDTO, recordDetailVO,
period, yesterdayPeriod, isSameMonth);
- // TODO new 每月1号,需要计算4个月奖
+ // new 每月1号,需要计算4个月奖
if (EEnv.TEST.getValue().equals(BdConfig.getEnv())) {
// 测试环境,每天都执行
// 计算新零售团队福利、福利分红等奖金
@@ -135,6 +135,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
// 非测试环境
if (settleDate.endsWith("01")) {
// 计算新零售团队福利、福利分红等奖金
+ log.info("正式处理:{}", settleDate);
bonusSettleRangeHandle.calculateRetailShareBonus(settleDate, bonusConfigDTO, period, recordDetailVO, cuMemberBonusMap);
}
}
@@ -142,7 +143,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
Date currentDate = DateUtils.afterDate(1, ChronoUnit.DAYS, DateUtils.parseStringToDate(settleDate));
String afterDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, currentDate);
if (afterDate.endsWith("01")) {
- // TODO new 区域考核处理
// 计算完月奖,计算考核(区域6个月要达到蓝宝以上)
String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + period;
cuRegionAssessService.assessRegionByEveryMonth(settleDate, rangeTableName);
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusCoachServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusCoachServiceImpl.java
index fbfcc117..6d8fc67c 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusCoachServiceImpl.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusCoachServiceImpl.java
@@ -13,22 +13,13 @@ import java.util.List;
import java.util.Set;
/**
- *
* 会员奖金-辅导收益明细表 服务实现类
- *
- *
- * @author hzs
- * @since 2022-11-15
*/
@Service
public class CuMemberBonusCoachServiceImpl extends ServiceImpl implements ICuMemberBonusCoachService {
- private CuMemberBonusSettle cuMemberBonusSettle;
-
@Autowired
- public void setCuMemberBonusSettle(CuMemberBonusSettle cuMemberBonusSettle) {
- this.cuMemberBonusSettle = cuMemberBonusSettle;
- }
+ private CuMemberBonusSettle cuMemberBonusSettle;
@Override
public void deleteCuMemberBonusCoach(Integer period) {
@@ -37,16 +28,16 @@ public class CuMemberBonusCoachServiceImpl extends ServiceImpl cuMemberBonusCoachList, Set memberIdSet) {
- if(cuMemberBonusCoachList.size() == 0){
+ if (cuMemberBonusCoachList.size() == 0) {
return;
}
List cuMemberBonusCoaches = new ArrayList<>();
for (CuMemberBonusCoach cuMemberBonusCoach : cuMemberBonusCoachList) {
- if(memberIdSet.contains(cuMemberBonusCoach.getPkBonus())){
+ if (memberIdSet.contains(cuMemberBonusCoach.getPkBonus())) {
cuMemberBonusCoaches.add(cuMemberBonusCoach);
}
}
- if(cuMemberBonusCoaches.size()==0){
+ if (cuMemberBonusCoaches.size() == 0) {
return;
}
List> lists = cuMemberBonusSettle.handleCutList(cuMemberBonusCoaches);
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusDetailServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusDetailServiceImpl.java
index b64edc9d..31393c29 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusDetailServiceImpl.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusDetailServiceImpl.java
@@ -13,22 +13,13 @@ import java.util.List;
import java.util.Set;
/**
- *
* 会员奖金-奖金收益明细表(报单费) 服务实现类
- *
- *
- * @author hzs
- * @since 2022-11-17
*/
@Service
public class CuMemberBonusDetailServiceImpl extends ServiceImpl implements ICuMemberBonusDetailService {
- private CuMemberBonusSettle cuMemberBonusSettle;
-
@Autowired
- public void setCuMemberBonusSettle(CuMemberBonusSettle cuMemberBonusSettle) {
- this.cuMemberBonusSettle = cuMemberBonusSettle;
- }
+ private CuMemberBonusSettle cuMemberBonusSettle;
@Override
public void deleteCuMemberBonusDetail(Integer period) {
@@ -37,16 +28,16 @@ public class CuMemberBonusDetailServiceImpl extends ServiceImpl cuMemberBonusDetailList, Set memberIdSet) {
- if(cuMemberBonusDetailList.size() == 0){
+ if (cuMemberBonusDetailList.size() == 0) {
return;
}
List cuMemberBonusDetails = new ArrayList<>();
for (CuMemberBonusDetail cuMemberBonusDetail : cuMemberBonusDetailList) {
- if(memberIdSet.contains(cuMemberBonusDetail.getPkBonus())){
+ if (memberIdSet.contains(cuMemberBonusDetail.getPkBonus())) {
cuMemberBonusDetails.add(cuMemberBonusDetail);
}
}
- if(cuMemberBonusDetails.size()==0){
+ if (cuMemberBonusDetails.size() == 0) {
return;
}
List> lists = cuMemberBonusSettle.handleCutList(cuMemberBonusDetails);
@@ -54,8 +45,4 @@ public class CuMemberBonusDetailServiceImpl extends ServiceImpl
* 会员奖金-拓展收益明细表 服务实现类
- *
- *
- * @author hzs
- * @since 2022-11-15
*/
@Service
public class CuMemberBonusExpandServiceImpl extends ServiceImpl implements ICuMemberBonusExpandService {
@@ -37,16 +32,16 @@ public class CuMemberBonusExpandServiceImpl extends ServiceImpl cuMemberBonusExpandList, Set memberIdSet) {
- if(cuMemberBonusExpandList.size() == 0){
+ if (cuMemberBonusExpandList.size() == 0) {
return;
}
List memberBonusExpands = new ArrayList<>();
for (CuMemberBonusExpand cuMemberBonusExpand : cuMemberBonusExpandList) {
- if(memberIdSet.contains(cuMemberBonusExpand.getPkBonus())){
+ if (memberIdSet.contains(cuMemberBonusExpand.getPkBonus())) {
memberBonusExpands.add(cuMemberBonusExpand);
}
}
- if(memberBonusExpands.size()==0){
+ if (memberBonusExpands.size() == 0) {
return;
}
List> lists = cuMemberBonusSettle.handleCutList(memberBonusExpands);
@@ -54,9 +49,5 @@ public class CuMemberBonusExpandServiceImpl extends ServiceImpl cuMemberBonusExpandList) {
- baseMapper.insertCuMemberBonusExpand(cuMemberBonusExpandList);
- }
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusPushHisServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusPushHisServiceImpl.java
deleted file mode 100644
index f160257b..00000000
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusPushHisServiceImpl.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.hzs.bonus.bonus.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.hzs.bonus.bonus.service.ICuMemberBonusPushHisService;
-import com.hzs.common.core.constant.MemberFieldConstants;
-import com.hzs.common.domain.member.bonus.CuMemberBonusPushHis;
-import com.hzs.bonus.bonus.mapper.CuMemberBonusPushHisMapper;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- *
- * 会员奖金-直推历史轮次记录 服务实现类
- *
- *
- * @author hzs
- * @since 2023-09-10
- */
-@Service
-public class CuMemberBonusPushHisServiceImpl extends ServiceImpl implements ICuMemberBonusPushHisService {
-
- @Override
- public List queryCuMemberBonusPushHis(Long pkMember) {
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.select("(round+1) round,second,cal_achieve");
- queryWrapper.eq(MemberFieldConstants.PK_MEMBER, pkMember);
- queryWrapper.orderByDesc("round,second");
- return baseMapper.selectList(queryWrapper);
- }
-}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java
index c1d89216..635df5f3 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java
@@ -621,14 +621,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl queryWeekMemberBonus(int startPeriod, int endPeriod) {
- List cuMemberBonusList = baseMapper.queryWeekMemberBonus(startPeriod, endPeriod);
- Map cuMemberBonusMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuMemberBonusList.size()));
- cuMemberBonusList.forEach(cuMemberBonus -> cuMemberBonusMap.put(cuMemberBonus.getPkMember(), cuMemberBonus));
- return cuMemberBonusMap;
- }
-
@Override
public void recalculateTeamNewBoxNum(List pkIdList) {
String retailsTableName = getDayTableName();
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberShareBonusServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberShareBonusServiceImpl.java
index c4ac873f..23e727c5 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberShareBonusServiceImpl.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberShareBonusServiceImpl.java
@@ -36,21 +36,17 @@ import java.math.BigDecimal;
import java.util.*;
/**
- *
* 会员奖金-分红奖金配置 服务实现类
- *
- *
- * @author hzs
- * @since 2023-07-03
*/
@Service
public class CuMemberShareBonusServiceImpl extends ServiceImpl implements ICuMemberShareBonusService {
@DubboReference
- private ISaOrderServiceApi saOrderServiceApi;
-
+ ISaOrderServiceApi saOrderServiceApi;
@DubboReference
- private IAwardsServiceApi awardsServiceApi;
+ IAwardsServiceApi awardsServiceApi;
+ @DubboReference
+ ICurrencyServiceApi currencyServiceApi;
private ICuMemberShareDetailService cuMemberShareDetailService;
@@ -60,9 +56,6 @@ public class CuMemberShareBonusServiceImpl extends ServiceImpl cuMemberShareDetailParamMap = new HashMap<>();
cuMemberShareBonusParam.getCuMemberShareDetailList().forEach(cuMemberShareDetailParam ->
cuMemberShareDetailParamMap.put(cuMemberShareDetailParam.getPkAwards(), cuMemberShareDetailParam));
Date currentDateTime = DateUtils.currentDateTime();
- for(CuMemberShareDetailExt cuMemberShareDetail : cuMemberShareBonusExt.getCuMemberShareDetailList()){
- if(cuMemberShareDetailParamMap.containsKey(cuMemberShareDetail.getPkAwards())){
+ for (CuMemberShareDetailExt cuMemberShareDetail : cuMemberShareBonusExt.getCuMemberShareDetailList()) {
+ if (cuMemberShareDetailParamMap.containsKey(cuMemberShareDetail.getPkAwards())) {
CuMemberShareDetailParam cuMemberShareDetailParam = cuMemberShareDetailParamMap.get(cuMemberShareDetail.getPkAwards());
cuMemberShareDetail.setRealShareIncome(cuMemberShareDetailParam.getRealShareIncome());
cuMemberShareDetail.setRealShareSubtotal(ComputeUtil.computeMultiply(cuMemberShareDetailParam.getRealShareIncome(), cuMemberShareDetail.getReachTotal()));
}
- if(cuMemberShareDetail.getPkId() == null){
+ if (cuMemberShareDetail.getPkId() == null) {
cuMemberShareDetail.setPkCountry(cuMemberShareBonusParam.getPkCountry());
cuMemberShareDetail.setPkShareBonus(cuMemberShareBonus.getPkId());
cuMemberShareDetail.setCreationTime(currentDateTime);
cuMemberShareDetail.setPkCreator(cuMemberShareBonusParam.getPkCreator());
- }else{
+ } else {
cuMemberShareDetail.setPkModified(cuMemberShareBonusParam.getPkCreator());
cuMemberShareDetail.setModifiedTime(DateUtils.currentDateTime());
}
@@ -129,7 +122,7 @@ public class CuMemberShareBonusServiceImpl extends ServiceImpl 0) {
+ if (count > 0) {
cuMemberShareDetail.setExpectShareSubtotal(ComputeUtil.computeDivide(cuMemberShareBonusExt.getExpectShareTotal(), BigDecimal.valueOf(count)));
cuMemberShareDetail.setExpectShareIncome(ComputeUtil.computeDivide(cuMemberShareDetail.getExpectShareSubtotal(), BigDecimal.valueOf(cuMemberShareDetail.getPromoteTotal())));
- }else{
+ } else {
cuMemberShareDetail.setExpectShareSubtotal(BigDecimal.ZERO);
cuMemberShareDetail.setExpectShareIncome(BigDecimal.ZERO);
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberShareDetailServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberShareDetailServiceImpl.java
index bba51a65..11371e81 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberShareDetailServiceImpl.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberShareDetailServiceImpl.java
@@ -1,25 +1,16 @@
package com.hzs.bonus.bonus.service.impl;
-import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.bonus.service.ICuMemberShareDetailService;
-import com.hzs.common.core.utils.ComputeUtil;
import com.hzs.common.domain.member.bonus.CuMemberShareDetail;
import com.hzs.common.domain.member.ext.CuMemberShareDetailExt;
import com.hzs.bonus.bonus.mapper.CuMemberShareDetailMapper;
import org.springframework.stereotype.Service;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
/**
- *
* 会员奖金-分红奖金配置明细 服务实现类
- *
- *
- * @author hzs
- * @since 2023-07-03
*/
@Service
public class CuMemberShareDetailServiceImpl extends ServiceImpl implements ICuMemberShareDetailService {
@@ -29,23 +20,4 @@ public class CuMemberShareDetailServiceImpl extends ServiceImpl queryCuMemberShareBonusByPeriod(Integer period){
- List cuMemberShareDetailList = baseMapper.queryCuMemberShareBonusByPeriod(period);
- Map cuMemberShareDetailMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuMemberShareDetailList.size()));
- if(CollectionUtil.isNotEmpty(cuMemberShareDetailList)){
- for (CuMemberShareDetail cuMemberShareDetail : cuMemberShareDetailList) {
- String key =cuMemberShareDetail.getPkCountry().toString() + cuMemberShareDetail.getPkAwards();
- cuMemberShareDetailMap.put(key, cuMemberShareDetail);
- }
- }
- return cuMemberShareDetailMap;
- }
-
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberShareMaxServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberShareMaxServiceImpl.java
deleted file mode 100644
index a55ed63e..00000000
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberShareMaxServiceImpl.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.hzs.bonus.bonus.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.hzs.bonus.bonus.service.ICuMemberShareMaxService;
-import com.hzs.common.domain.member.bonus.CuMemberShareMax;
-import com.hzs.bonus.bonus.mapper.CuMemberShareMaxMapper;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- *
- * 会员奖金-最大分红奖金 服务实现类
- *
- *
- * @author hzs
- * @since 2023-01-06
- */
-@Service
-public class CuMemberShareMaxServiceImpl extends ServiceImpl implements ICuMemberShareMaxService {
-
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void insertMaxShareBonus(CuMemberShareMax cuMemberShareMax) {
- // 删除
- baseMapper.deleteCuMemberShareMax(cuMemberShareMax.getPeriod());
- baseMapper.insert(cuMemberShareMax);
- }
-}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java
index a9aec85e..65f51744 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java
@@ -38,7 +38,7 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
/**
* 商城重消
*/
- @BigDecimalFormat
+ @BigDecimalFormat("#0.0000")
private BigDecimal backPoints;
//
// /**
@@ -75,55 +75,55 @@ public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO {
/**
* 新零售直推收益
*/
- @BigDecimalFormat
+ @BigDecimalFormat("#0.0000")
private BigDecimal retailRangeIncome;
/**
* 新零售平级收益
*/
- @BigDecimalFormat
+ @BigDecimalFormat("#0.0000")
private BigDecimal retailSameLevelIncome;
/**
* 新零售区域分红
*/
- @BigDecimalFormat
+ @BigDecimalFormat("#0.0000")
private BigDecimal retailAreaIncome;
/**
* 福利级差收益
*/
- @BigDecimalFormat
+ @BigDecimalFormat("#0.0000")
private BigDecimal retailBenefitRangeIncome;
/**
* 复购级差收益
*/
- @BigDecimalFormat
+ @BigDecimalFormat("#0.0000")
private BigDecimal retailMonthRepurchaseIncome;
/**
* 培育津贴
*/
- @BigDecimalFormat
+ @BigDecimalFormat("#0.0000")
private BigDecimal coachIncome;
/**
* 福利分红收益总计
*/
- @BigDecimalFormat
+ @BigDecimalFormat("#0.0000")
private BigDecimal retailBenefitIncomeTotal;
/**
* 新零售收益小计
*/
- @BigDecimalFormat
+ @BigDecimalFormat("#0.0000")
private BigDecimal retailRealSubtotal;
/**
* 实发收益总计
*/
- @BigDecimalFormat
+ @BigDecimalFormat("#0.0000")
private BigDecimal realIncomeTotal;
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusVO.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusVO.java
index a58a007e..0d0e6fd3 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusVO.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusVO.java
@@ -93,7 +93,7 @@ public class MemberBonusVO implements Serializable {
/**
* 商城重消
*/
- @BigDecimalFormat
+ @BigDecimalFormat("#0.0000")
private BigDecimal backPoints;
/**
@@ -114,7 +114,7 @@ public class MemberBonusVO implements Serializable {
/**
* 实发收益总计
*/
- @BigDecimalFormat
+ @BigDecimalFormat("#0.0000")
private BigDecimal realIncomeTotal;
/**
@@ -130,19 +130,19 @@ public class MemberBonusVO implements Serializable {
/**
* 新零售直推级差收益
*/
- @BigDecimalFormat
+ @BigDecimalFormat("#0.0000")
private BigDecimal retailRangeIncome;
/**
* 新零售平级收益
*/
- @BigDecimalFormat
+ @BigDecimalFormat("#0.0000")
private BigDecimal retailSameLevelIncome;
/**
* 新零售区域收益
*/
- @BigDecimalFormat
+ @BigDecimalFormat("#0.0000")
private BigDecimal retailAreaIncome;
/**
@@ -163,7 +163,7 @@ public class MemberBonusVO implements Serializable {
/**
* 新零售收益小计
*/
- @BigDecimalFormat
+ @BigDecimalFormat("#0.0000")
private BigDecimal retailRealSubtotal;
/**
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberGradeMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberGradeMapper.java
index ca523fdb..dcf20b69 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberGradeMapper.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberGradeMapper.java
@@ -39,6 +39,15 @@ public interface CuMemberGradeMapper extends BaseMapper {
*/
void updateCuMemberGradeLevel(@Param("rangeTableName") String rangeTableName, @Param("pkOrder") Long pkOrder);
+ /**
+ * 查询订单升级记录
+ *
+ * @param pkMember
+ * @param pkOrder
+ * @return
+ */
+ CuMemberRetailRangeExt getMemberLevel(@Param("pkMember") Long pkMember, @Param("pkOrder") Long pkOrder);
+
/**
* 删除等级
*/
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessDetailMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessDetailMapper.java
index c64e2b86..25efdea9 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessDetailMapper.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessDetailMapper.java
@@ -8,78 +8,51 @@ import java.util.Date;
import java.util.List;
/**
- *
* 新零售会员区域考核明细表 Mapper 接口
- *
- *
- * @author hzs
- * @since 2025-01-13
*/
public interface CuRegionAssessDetailMapper extends BaseMapper {
/*
- * @description: 考核开始日期
- * @author: sui q
- * @date: 2025/1/13 17:13
- * @param: null null
+ * 考核开始日期
**/
void deleteAssessRegionDetailByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessPeriod") Integer assessPeriod);
/*
- * @description: 删除重复的数据
- * @author: sui q
- * @date: 2025/1/15 16:11
- * @param: null null
+ * 删除重复的数据
**/
void updateAssessRegionDetailByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessEndDate") Date assessEndDate);
+ /**
+ * 批量生成考核明细seq
+ *
+ * @param rowNum
+ * @return
+ */
List batchQueryCuRegionAssessDetailSeq(Integer rowNum);
/*
- * @description: 批量插入区域考核数据
- * @author: sui q
- * @date: 2025/1/14 14:31
- * @param: null null
+ * 批量插入区域考核数据
**/
void batchInsertCuRegionAssessDetail(@Param("cuRegionAssessDetailList") List> cuRegionAssessDetailList);
/*
- * @description: 根据上月数据更新考核明细数据
- * @author: sui q
- * @date: 2025/1/14 16:44
- * @param: null null
+ * 根据上月数据更新考核明细数据
**/
void mergeCuRegionAssessDetailTeamPv(@Param("rangeTableName") String rangeTableName, @Param("assessDate") Date assessDate);
/*
- * @description: 根据上月数据更新考核明细数据
- * @author: sui q
- * @date: 2025/1/14 16:44
- * @param: null null
+ * 根据上月数据更新考核明细数据
**/
void mergeCuRegionAssessDetailSmallAreaPv(@Param("rangeTableName") String rangeTableName, @Param("assessDate") Date assessDate);
/*
- * @description: 初始化考核,先置为考核失败
- * @author: sui q
- * @date: 2025/1/14 17:30
- * @param: null null
+ * 初始化考核,先置为考核失败
**/
void updateCuRegionAssessDetailInit(@Param("assessDate") Date assessDate);
/*
- * @description: 根据月后业绩考核,汇总满足30w,小区10w
- * @author: sui q
- * @date: 2025/1/14 17:36
- * @param: null null
+ * 根据月后业绩考核,汇总满足30w,小区10w
**/
void updateCuRegionAssessDetailByPv(@Param("assessDate") Date assessDate);
- /*
- * @description: 根据月后业绩考核,汇总满足30w,小区10w
- * @author: sui q
- * @date: 2025/1/14 17:36
- * @param: null null
- **/
- void updateCuRegionAssessDetailByHand(@Param("assessDate") Date assessDate);
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessMapper.java
index 63b8f9ae..005d38f5 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessMapper.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuRegionAssessMapper.java
@@ -11,36 +11,22 @@ import java.util.Date;
import java.util.List;
/**
- *
* 新零售会员区域考核 Mapper 接口
- *
- *
- * @author hzs
- * @since 2025-01-13
*/
public interface CuRegionAssessMapper extends BaseMapper {
/*
- * @description: 查询考核结果
- * @author: sui q
- * @date: 2025/1/15 17:22
- * @param: null null
+ * 查询考核结果
**/
List queryRegionAssessByCondition(@Param("regionAssessParam") CuRegionAssessParam regionAssessParam);
/*
- * @description: 考核开始日期
- * @author: sui q
- * @date: 2025/1/13 17:13
- * @param: null null
+ * 考核开始日期
**/
void deleteAssessRegionByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessPeriod") Integer assessPeriod);
/*
- * @description: 考核开始日期
- * @author: sui q
- * @date: 2025/1/13 17:13
- * @param: null null
+ * 考核开始日期
**/
void updateAssessRegionByDate(@Param("assessStartDate") Date assessStartDate, @Param("assessEndDate") Date assessEndDate);
@@ -48,49 +34,31 @@ public interface CuRegionAssessMapper extends BaseMapper {
* 批量获取cuMemberBonus主键
*
* @param rowNum 数量
- * @return: List
- * @Author: sui q
- * @Date: 2022/12/13 13:47
*/
List batchQueryCuRegionAssessSeq(Integer rowNum);
/*
- * @description: 批量插入区域考核数据
- * @author: sui q
- * @date: 2025/1/14 14:31
- * @param: null null
+ * 批量插入区域考核数据
**/
void batchInsertCuRegionAssess(@Param("cuRegionAssessList") List> cuRegionAssessList);
/*
- * @description: 更新达标次数
- * @author: sui q
- * @date: 2025/1/15 10:44
- * @param: null null
+ * 更新达标次数
**/
void mergeCuRegionAssess(@Param("assessDate") Date assessDate);
/*
- * @description: 查询待考核的区域
- * @author: sui q
- * @date: 2025/1/13 17:31
- * @param: null null
+ * 查询待考核的区域
**/
List queryCuMemberRetailRegion(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
/*
- * @description: 查询到期日期是上个月的区域
- * @author: sui q
- * @date: 2025/2/25 15:45
- * @param: null null
+ * 查询到期日期是上个月的区域
**/
List queryDueCuMemberRetailRegion(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
/*
- * @description: 查询手动设置考核的近6个月考核记录
- * @author: sui q
- * @date: 2025/2/26 9:21
- * @param: null null
+ * 查询手动设置考核的近6个月考核记录
**/
List queryRegionAssessByDate(@Param("memberRetailRegionList") List memberRetailRegionList, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberGradeService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberGradeService.java
index 79968315..42165197 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberGradeService.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberGradeService.java
@@ -36,6 +36,15 @@ public interface ICuMemberGradeService extends IService {
*/
void updateCuMemberGrade(String rangeTableName, Long pkOrder);
+ /**
+ * 查询订单升级记录
+ *
+ * @param pkMember
+ * @param pkOrder
+ * @return
+ */
+ CuMemberRetailRangeExt getMemberLevel(Long pkMember, Long pkOrder);
+
/**
* 插入会员等级升级记录
*/
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessDetailService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessDetailService.java
index 168dbe0c..f0e47195 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessDetailService.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessDetailService.java
@@ -7,46 +7,29 @@ import java.util.Date;
import java.util.List;
/**
- *
* 新零售会员区域考核明细表 服务类
- *
- *
- * @author hzs
- * @since 2025-01-13
*/
public interface ICuRegionAssessDetailService extends IService {
/*
- * @description: 考核开始日期
- * @author: sui q
- * @date: 2025/1/13 17:13
- * @param: null null
+ * 考核开始日期
**/
void deleteAssessRegionDetailByDate(Date assessStartDate, Integer assessPeriod);
/*
- * @description: 删除重复的数据
- * @author: sui q
- * @date: 2025/1/15 16:11
- * @param: null null
+ * 删除重复的数据
**/
void updateAssessRegionDetailByDate(Date assessStartDate, Date assessEndDate);
List batchQueryCuRegionAssessDetailSeq(Integer rowNum);
/*
- * @description: 批量插入区域考核数据
- * @author: sui q
- * @date: 2025/1/14 14:31
- * @param: null null
+ * 批量插入区域考核数据
**/
void batchInsertCuRegionAssessDetail(List> cuRegionAssessDetailList);
/*
- * @description: 根据上月数据考核区域
- * @author: sui q
- * @date: 2025/1/14 16:44
- * @param: null null
+ * 根据上月数据考核区域
**/
void assessCuRegionAssessDetail(String rangeTableName, Date assessDate);
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessService.java
index 0f5fe7c0..29a77c3d 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessService.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuRegionAssessService.java
@@ -5,51 +5,34 @@ import com.hzs.bonus.detail.vo.CuRegionAssessVO;
import com.hzs.bonus.param.CuRegionAssessParam;
import com.hzs.common.domain.member.detail.CuRegionAssess;
import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt;
-import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
- *
* 新零售会员区域考核 服务类
- *
- *
- * @author hzs
- * @since 2025-01-13
*/
public interface ICuRegionAssessService extends IService {
/*
- * @description: 每月考核区域是否达标
- * @author: sui q
- * @date: 2025/1/13 16:46
- * @param: null null
+ * 每月考核区域是否达标
**/
void assessRegionByEveryMonth(String settleDate, String rangeTableName);
/**
- * @description: 定时处理会员收益区域(处理前三天)
- * @author: zhang jing
- * @date: 2025/3/7 10:08
- * @param: [startDate]
+ * 定时处理会员收益区域(处理前三天)
+ *
* @return: void
**/
- void validateHandAreaAssess(Date startDate,Date endDate);
+ void validateHandAreaAssess(Date startDate, Date endDate);
/*
- * @description: 考核开始日期
- * @author: sui q
- * @date: 2025/1/13 17:13
- * @param: null null
+ * 考核开始日期
**/
void deleteAssessRegionByDate(Date assessStartDate, Integer assessPeriod);
/*
- * @description: 查询考核结果
- * @author: sui q
- * @date: 2025/1/15 17:22
- * @param: null null
+ * 查询考核结果
**/
List queryRegionAssessByCondition(CuRegionAssessParam regionAssessParam);
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberGradeServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberGradeServiceImpl.java
index e1370a2c..34cfd152 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberGradeServiceImpl.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberGradeServiceImpl.java
@@ -7,7 +7,6 @@ import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
import com.hzs.common.domain.member.detail.CuMemberGrade;
import com.hzs.common.domain.member.detail.CuMemberLevel;
import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
@@ -42,7 +41,11 @@ public class CuMemberGradeServiceImpl extends ServiceImpl cuMemberGradeList) {
saveBatch(cuMemberGradeList);
}
diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuRegionAssessDetailServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuRegionAssessDetailServiceImpl.java
index 2897177b..89306255 100644
--- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuRegionAssessDetailServiceImpl.java
+++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuRegionAssessDetailServiceImpl.java
@@ -10,12 +10,7 @@ import java.util.Date;
import java.util.List;
/**
- *
* 新零售会员区域考核明细表 服务实现类
- *
- *
- * @author hzs
- * @since 2025-01-13
*/
@Service
public class CuRegionAssessDetailServiceImpl extends ServiceImpl implements ICuRegionAssessDetailService {
@@ -50,8 +45,5 @@ public class CuRegionAssessDetailServiceImpl extends ServiceImpl
* 新零售会员区域考核 服务实现类
- *
- *
- * @author hzs
- * @since 2025-01-13
*/
+@Slf4j
@Service
public class CuRegionAssessServiceImpl extends ServiceImpl implements ICuRegionAssessService {
@DubboReference
- private IMemberRetailApi memberRetailApi;
+ IMemberRetailApi iMemberRetailApi;
@Autowired
- private ICuRegionAssessDetailService cuRegionAssessDetailService;
+ private ICuRegionAssessDetailService iCuRegionAssessDetailService;
@Autowired
private CuMemberBonusSettle cuMemberBonusSettle;
@@ -54,56 +48,97 @@ public class CuRegionAssessServiceImpl extends ServiceImpl memberRetailRegionList = baseMapper.queryCuMemberRetailRegion(startDate, assessDate);
if (memberRetailRegionList.size() > 0) {
Map regionAssessMap = new HashMap<>();
List regionAssessDetailList = new ArrayList<>();
for (CuMemberRetailRegion cuMemberRetailRegion : memberRetailRegionList) {
- CuRegionAssess cuRegionAssess = CuRegionAssess.builder()
- .pkMember(cuMemberRetailRegion.getPkMember())
- .pkRegion(cuMemberRetailRegion.getPkId())
- .assessPeriod(1)
- .assessStartDate(assessDate)
- .assessEndDate(DateUtils.currentMonthFirstDate(DateUtils.afterMonthDate(5, assessDate)))
- .source(cuMemberRetailRegion.getSource())
- .build();
- cuRegionAssess.setPkCreator(MagicNumberConstants.PK_ADMIN);
- cuRegionAssess.setPkCountry(cuMemberRetailRegion.getPkCountry());
- regionAssessMap.put(cuRegionAssess.getPkMember(), cuRegionAssess);
- // 保存明细
- for (int i = 0; i < 6; i++) {
- CuRegionAssessDetail cuRegionAssessDetail = CuRegionAssessDetail.builder()
- .pkRegionAssess(cuRegionAssess.getPkMember())
- .assessDate(DateUtils.afterMonthDate(i, assessDate))
- .pkMember(cuRegionAssess.getPkMember())
+
+ if (null != cuMemberRetailRegion.getEffectiveEndDate()) {
+ // 设置过生效结束时间
+ CuRegionAssess cuRegionAssess = CuRegionAssess.builder()
+ .pkMember(cuMemberRetailRegion.getPkMember())
+ .pkRegion(cuMemberRetailRegion.getPkId())
+ .assessPeriod(1)
+ .assessStartDate(assessDate)
+ // 考核结束期
+ .assessEndDate(DateUtils.currentMonthFirstDate(DateUtils.afterMonthDate(1, cuMemberRetailRegion.getEffectiveEndDate())))
+ .source(cuMemberRetailRegion.getSource())
.build();
- cuRegionAssessDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
- cuRegionAssessDetail.setPkCountry(cuMemberRetailRegion.getPkCountry());
- regionAssessDetailList.add(cuRegionAssessDetail);
+ cuRegionAssess.setPkCreator(MagicNumberConstants.PK_ADMIN);
+ cuRegionAssess.setPkCountry(cuMemberRetailRegion.getPkCountry());
+ regionAssessMap.put(cuRegionAssess.getPkMember(), cuRegionAssess);
+ while (assessDate.compareTo(cuRegionAssess.getAssessEndDate()) <= 0) {
+ CuRegionAssessDetail cuRegionAssessDetail = CuRegionAssessDetail.builder()
+ .pkRegionAssess(cuRegionAssess.getPkMember())
+ .assessDate(assessDate)
+ .pkMember(cuRegionAssess.getPkMember())
+ .build();
+ cuRegionAssessDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
+ cuRegionAssessDetail.setPkCountry(cuMemberRetailRegion.getPkCountry());
+ regionAssessDetailList.add(cuRegionAssessDetail);
+
+ assessDate = DateUtils.afterMonthDate(1, assessDate);
+ }
+ } else {
+ CuRegionAssess cuRegionAssess = CuRegionAssess.builder()
+ .pkMember(cuMemberRetailRegion.getPkMember())
+ .pkRegion(cuMemberRetailRegion.getPkId())
+ .assessPeriod(1)
+ .assessStartDate(assessDate)
+ // 考核结束期
+ .assessEndDate(DateUtils.currentMonthFirstDate(DateUtils.afterMonthDate(5, assessDate)))
+ .source(cuMemberRetailRegion.getSource())
+ .build();
+ cuRegionAssess.setPkCreator(MagicNumberConstants.PK_ADMIN);
+ cuRegionAssess.setPkCountry(cuMemberRetailRegion.getPkCountry());
+ regionAssessMap.put(cuRegionAssess.getPkMember(), cuRegionAssess);
+ // 保存明细
+ for (int i = 0; i < 6; i++) {
+ CuRegionAssessDetail cuRegionAssessDetail = CuRegionAssessDetail.builder()
+ .pkRegionAssess(cuRegionAssess.getPkMember())
+ .assessDate(DateUtils.afterMonthDate(i, assessDate))
+ .pkMember(cuRegionAssess.getPkMember())
+ .build();
+ cuRegionAssessDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
+ cuRegionAssessDetail.setPkCountry(cuMemberRetailRegion.getPkCountry());
+ regionAssessDetailList.add(cuRegionAssessDetail);
+ }
}
+
}
saveCuRegionAssess(regionAssessMap, regionAssessDetailList);
}
- cuRegionAssessDetailService.assessCuRegionAssessDetail(rangeTableName, assessDate);
+ iCuRegionAssessDetailService.assessCuRegionAssessDetail(rangeTableName, assessDate);
baseMapper.mergeCuRegionAssess(assessDate);
+
+ // 取消区域列表
+ List cancelRegionList = new ArrayList<>();
// 开始考核,将 上月最后一天,奖衔、业绩同步到考核表中
// 查询主表考核结束日期=考核日期的,这部分需要生成下6期,最后一期结算完,验证是否达标,达标后继续生成下一期,不达标取消区域
// 查询考核结束日期次数不达标的区域,进行区域取消处理
List cuRegionAssessList = queryCuRegionAssessByEndDate(assessDate);
- List cancelRegionList = new ArrayList<>();
Map regionAssessMap = new HashMap<>();
List regionAssessDetailList = new ArrayList<>();
for (CuRegionAssess cuRegionAssess : cuRegionAssessList) {
- // 手动开区域的不参与考核,只有会员端选区域的参与考核
- if (cuRegionAssess.getReachNum() < 3 && cuRegionAssess.getSource() == 1) {
+ if (cuRegionAssess.getReachNum() < 3) {
cancelRegionList.add(cuRegionAssess.getPkRegion());
continue;
}
@@ -136,16 +171,13 @@ public class CuRegionAssessServiceImpl extends ServiceImpl 0) {
- if (!memberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
+ if (!iMemberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
throw new RuntimeException("区域更新失败");
}
}
}
}
- /**
- * 定时处理会员收益区域(处理前三天)
- **/
@Override
public void validateHandAreaAssess(Date startDate, Date endDate) {
List cancelRegionList = new ArrayList<>();
@@ -169,7 +201,7 @@ public class CuRegionAssessServiceImpl extends ServiceImpl 0) {
- if (!memberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
+ if (!iMemberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
throw new RuntimeException("区域更新失败");
}
}
@@ -193,21 +225,20 @@ public class CuRegionAssessServiceImpl extends ServiceImpl> lists = cuMemberBonusSettle.handleCutList(cuRegionAssessList);
- lists.forEach(list ->
- baseMapper.batchInsertCuRegionAssess(list));
- List idList = cuRegionAssessDetailService.batchQueryCuRegionAssessDetailSeq(regionAssessDetailList.size());
+ lists.forEach(list -> baseMapper.batchInsertCuRegionAssess(list));
+
+ List idList = iCuRegionAssessDetailService.batchQueryCuRegionAssessDetailSeq(regionAssessDetailList.size());
for (int j = 0; j < regionAssessDetailList.size(); j++) {
regionAssessDetailList.get(j).setPkId(idList.get(j));
}
// 明细表
List> detailList = cuMemberBonusSettle.handleCutList(regionAssessDetailList);
- detailList.forEach(detail ->
- cuRegionAssessDetailService.batchInsertCuRegionAssessDetail(detail));
+ detailList.forEach(detail -> iCuRegionAssessDetailService.batchInsertCuRegionAssessDetail(detail));
}
List queryCuRegionAssessByEndDate(Date settleDate) {
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("ASSESS_END_DATE", settleDate);
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(CuRegionAssess::getAssessEndDate, settleDate);
return baseMapper.selectList(queryWrapper);
}
@@ -215,7 +246,7 @@ public class CuRegionAssessServiceImpl extends ServiceImpl
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -90,7 +99,13 @@
big_box_num = 0,
small_box_num = 0,
big_team_pv = 0,
- small_team_pv = 0
+ small_team_pv = 0,
+ all_team_new_box_num = 0,
+ all_team_box_num = 0,
+ all_team_month_box_num = 0,
+ all_team_new_pv = 0,
+ all_team_consume_pv = 0,
+ all_team_month_pv = 0
@@ -103,7 +118,9 @@
team_new_pv, team_consume_pv, team_month_pv,
team_new_amount, team_consume_amount, team_month_amount,
recommend_num, team_num,
- big_box_num, small_box_num, big_team_pv, small_team_pv
+ big_box_num, small_box_num, big_team_pv, small_team_pv,
+ all_team_new_box_num, all_team_box_num, all_team_month_box_num,
+ all_team_new_pv, all_team_consume_pv, all_team_month_pv
from ${yesterdayRangeTableName}
) b
on (a.pk_member = b.pk_member)
@@ -118,13 +135,19 @@
a.pk_grade = b.pk_grade,
a.enable_status = b.enable_status,
a.big_box_num = b.big_box_num, a.small_box_num = b.small_box_num,
- a.big_team_pv = b.big_team_pv, a.small_team_pv = b.small_team_pv
+ a.big_team_pv = b.big_team_pv, a.small_team_pv = b.small_team_pv,
+ a.all_team_new_box_num = b.all_team_new_box_num,
+ a.all_team_box_num = b.all_team_box_num,
+ a.all_team_new_pv = b.all_team_new_pv,
+ a.all_team_consume_pv = b.all_team_consume_pv
,a.month_box_num = b.month_box_num
,a.month_consume_pv = b.month_consume_pv
,a.team_month_box_num = b.team_month_box_num
,a.team_month_pv = b.team_month_pv
,a.team_month_amount = b.team_month_amount
+ ,a.all_team_month_box_num = b.all_team_month_box_num
+ ,a.all_team_month_pv = b.all_team_month_pv
@@ -138,7 +161,10 @@
#{item.teamNewBoxNum} team_new_box_num, #{item.teamBoxNum} team_box_num, #{item.teamMonthBoxNum} team_month_box_num,
#{item.teamNewPv} team_new_pv, #{item.teamConsumePv} team_consume_pv, #{item.teamMonthPv} team_month_pv,
#{item.teamNewAmount} team_new_amount, #{item.teamConsumeAmount} team_consume_amount, #{item.teamMonthAmount} team_month_amount,
- #{item.recommendNum} recommend_num, #{item.teamNum} team_num, #{item.enableStatus} enable_status
+ #{item.recommendNum} recommend_num, #{item.teamNum} team_num, #{item.enableStatus} enable_status,
+ #{item.allTeamNewBoxNum} all_team_new_box_num, #{item.allTeamNewPv} all_team_new_pv,
+ #{item.allTeamBoxNum} all_team_box_num, #{item.allTeamConsumePv} all_team_consume_pv,
+ #{item.allTeamMonthBoxNum} all_team_month_box_num, #{item.allTeamMonthPv} all_team_month_pv
from dual
) b
@@ -150,7 +176,10 @@
a.team_new_box_num = b.team_new_box_num, a.team_box_num = b.team_box_num, a.team_month_box_num = b.team_month_box_num,
a.team_new_pv = b.team_new_pv, a.team_consume_pv = b.team_consume_pv, a.team_month_pv = b.team_month_pv,
a.team_new_amount = b.team_new_amount, a.team_consume_amount = b.team_consume_amount, a.team_month_amount = b.team_month_amount,
- a.recommend_num = b.recommend_num, a.team_num = b.team_num, a.enable_status = b.enable_status
+ a.recommend_num = b.recommend_num, a.team_num = b.team_num, a.enable_status = b.enable_status,
+ a.all_team_new_box_num = b.all_team_new_box_num, a.all_team_new_pv = b.all_team_new_pv,
+ a.all_team_box_num = b.all_team_box_num, a.all_team_consume_pv = b.all_team_consume_pv,
+ a.all_team_month_box_num = b.all_team_month_box_num, a.all_team_month_pv = b.all_team_month_pv
@@ -214,16 +243,21 @@
#{item.pkAwards} pk_awards, #{item.pkShareAwards} pk_share_awards,
#{item.newBoxNum} new_box_num, #{item.newConsumePv} new_consume_pv,
#{item.teamNewBoxNum} team_new_box_num, #{item.teamNewPv} team_new_pv,
- #{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status
+ #{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status,
+ #{item.allNewBoxNum} all_new_box_num, #{item.allNewConsumePv} all_new_consume_pv,
+ #{item.allTeamNewBoxNum} all_team_new_box_num, #{item.allTeamNewPv} all_team_new_pv
from dual
) b
on (a.pk_member = b.pk_member)
when matched then
- update set a.pk_grade = b.pk_grade, a.pk_awards = b.pk_awards, a.pk_share_awards = b.pk_share_awards,
+ update set
+ a.pk_grade = b.pk_grade, a.pk_awards = b.pk_awards, a.pk_share_awards = b.pk_share_awards,
a.new_box_num = b.new_box_num, a.new_consume_pv = b.new_consume_pv,
a.team_new_box_num = b.team_new_box_num, a.team_new_pv = b.team_new_pv,
- a.team_new_amount = b.team_new_amount, a.enable_status = b.enable_status
+ a.team_new_amount = b.team_new_amount, a.enable_status = b.enable_status,
+ a.all_new_box_num = b.all_new_box_num, a.all_new_consume_pv = b.all_new_consume_pv,
+ a.all_team_new_box_num = b.all_team_new_box_num, a.all_team_new_pv = b.all_team_new_pv
@@ -353,11 +387,18 @@
a.small_box_num,
a.big_team_pv,
a.small_team_pv,
+ a.all_team_new_box_num,
+ a.all_team_box_num,
+ a.all_team_month_box_num,
+ a.all_team_new_pv,
+ a.all_team_consume_pv,
+ a.all_team_month_pv,
bw.range_ratio,
bw.month_repurchase_ratio,
bw.benefit_avg_ratio,
bw.benefit_share_ratio,
- br.name country_name
+ br.name country_name,
+ bv.region_vertex_pk_id
from (
select * from ${tableName}
start with pk_member = #{item}
@@ -371,6 +412,8 @@
on bwa.pk_id = a.pk_share_awards and bwa.del_flag = 0
left join bd_area br
on br.pk_id = a.region_address and br.del_flag = 0
+ left join bd_vertex bv
+ on bv.pk_id = a.pk_vertex
where ba.del_flag = 0 and bw.del_flag = 0
@@ -398,6 +441,10 @@
a.big_team_pv,
a.small_team_pv,
a.system_type,
+ a.all_team_box_num,
+ a.all_team_month_box_num,
+ a.all_team_consume_pv,
+ a.all_team_month_pv,
new_box_num,
consume_box_num,
month_box_num,
@@ -526,10 +573,11 @@
diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml
index 24a237c2..1e31483c 100644
--- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml
+++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml
@@ -463,70 +463,80 @@
create table ${tableName}
(
- pk_member NUMBER(20) not null,
- pk_parent NUMBER(20) not null,
- pk_grade NUMBER(4) not null,
- pk_awards number(4) default 10 not null,
- pk_share_awards number(4) default 10 not null,
- enable_status number(2) default 1 not null,
- system_type NUMBER(2) default 2 not null,
- new_box_num number(8) default 0 not null,
- new_consume_pv number(17,6) default 0 not null,
- team_new_box_num number(8) default 0 not null,
- team_new_pv number(17,6) default 0 not null,
- team_new_amount number(17,6) default 0 not null
+ pk_member NUMBER(20) not null,
+ pk_parent NUMBER(20) not null,
+ pk_grade NUMBER(4) not null,
+ pk_awards number(4) default 10 not null,
+ pk_share_awards number(4) default 10 not null,
+ enable_status number(2) default 1 not null,
+ system_type NUMBER(2) default 2 not null,
+ new_box_num number(10,2) default 0 not null,
+ new_consume_pv number(17,6) default 0 not null,
+ team_new_box_num number(10,2) default 0 not null,
+ team_new_pv number(17,6) default 0 not null,
+ team_new_amount number(17,6) default 0 not null,
+ all_new_box_num number(10,2) default 0 not null,
+ all_new_consume_pv number(17,6) default 0 not null,
+ all_team_new_box_num number(10,2) default 0 not null,
+ all_team_new_pv number(17,6) default 0 not null
)
create table ${tableName}
(
- pk_member NUMBER(20) not null,
- pk_parent NUMBER(20) not null,
- member_code VARCHAR2(30) not null,
- member_name VARCHAR2(100) not null,
- customer_type NUMBER(2) not null,
- phone VARCHAR2(40) not null,
- pk_grade NUMBER(4) not null,
- pk_awards number(4) default 10 not null,
- pk_share_awards number(4) default 10 not null,
- enable_status number(2) default 1 not null,
- account_status number(1) default 0 not null,
- pay_status NUMBER(2) default 0 not null,
- pay_time DATE,
- category number(2) default 0 not null,
- purchase_status number(2) default 0 not null,
- income_status number(2) default 0 not null,
- pk_team_code number(20),
- pk_center_code number(20),
- pk_vertex number(20),
- pk_settle_country number(4) not null,
- is_real_name NUMBER(1) default 1 not null,
- pk_country number(4) default 1 not null,
- system_type NUMBER(2) default 2 not null,
- pk_rate NUMBER(6),
- new_box_num number(8) default 0 not null,
- consume_box_num number(8) default 0 not null,
- month_box_num number(8) default 0 not null,
- new_consume_pv number(17,6) default 0 not null,
- consume_pv number(17,6) default 0 not null,
- month_consume_pv number(17,6) default 0 not null,
- team_new_box_num number(8) default 0 not null,
- team_box_num number(8) default 0 not null,
- team_month_box_num number(8) default 0 not null,
- team_new_pv number(17,6) default 0 not null,
- team_consume_pv number(17,6) default 0 not null,
- team_month_pv number(17,6) default 0 not null,
- team_new_amount number(17,6) default 0 not null,
- team_consume_amount number(17,6) default 0 not null,
- team_month_amount number(17,6) default 0 not null,
- recommend_num number(8) default 0 not null,
- team_num number(8) default 0 not null,
- region_address number(8) default 0 not null,
- big_box_num number(8) default 0 not null,
- small_box_num number(8) default 0 not null,
- big_team_pv number(17,6) default 0 not null,
- small_team_pv number(17,6) default 0 not null
+ pk_member NUMBER(20) not null,
+ pk_parent NUMBER(20) not null,
+ member_code VARCHAR2(30) not null,
+ member_name VARCHAR2(100) not null,
+ customer_type NUMBER(2) not null,
+ phone VARCHAR2(40) not null,
+ pk_grade NUMBER(4) not null,
+ pk_awards number(4) default 10 not null,
+ pk_share_awards number(4) default 10 not null,
+ enable_status number(2) default 1 not null,
+ account_status number(1) default 0 not null,
+ pay_status NUMBER(2) default 0 not null,
+ pay_time DATE,
+ category number(2) default 0 not null,
+ purchase_status number(2) default 0 not null,
+ income_status number(2) default 0 not null,
+ pk_team_code number(20),
+ pk_center_code number(20),
+ pk_vertex number(20),
+ pk_settle_country number(4) not null,
+ is_real_name NUMBER(1) default 1 not null,
+ pk_country number(4) default 1 not null,
+ system_type NUMBER(2) default 2 not null,
+ pk_rate NUMBER(6),
+ new_box_num number(10,2) default 0 not null,
+ consume_box_num number(10,2) default 0 not null,
+ month_box_num number(10,2) default 0 not null,
+ new_consume_pv number(17,6) default 0 not null,
+ consume_pv number(17,6) default 0 not null,
+ month_consume_pv number(17,6) default 0 not null,
+ team_new_box_num number(10,2) default 0 not null,
+ team_box_num number(10,2) default 0 not null,
+ team_month_box_num number(10,2) default 0 not null,
+ team_new_pv number(17,6) default 0 not null,
+ team_consume_pv number(17,6) default 0 not null,
+ team_month_pv number(17,6) default 0 not null,
+ team_new_amount number(17,6) default 0 not null,
+ team_consume_amount number(17,6) default 0 not null,
+ team_month_amount number(17,6) default 0 not null,
+ recommend_num number(8) default 0 not null,
+ team_num number(8) default 0 not null,
+ region_address number(8) default 0 not null,
+ big_box_num number(10,2) default 0 not null,
+ small_box_num number(10,2) default 0 not null,
+ big_team_pv number(17,6) default 0 not null,
+ small_team_pv number(17,6) default 0 not null,
+ all_team_new_box_num number(12,2) default 0 not null,
+ all_team_box_num number(12,2) default 0 not null,
+ all_team_month_box_num number(12,2) default 0 not null,
+ all_team_new_pv number(17,6) default 0 not null,
+ all_team_consume_pv number(17,6) default 0 not null,
+ all_team_month_pv number(17,6) default 0 not null
)
diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml
index c297f892..9cd6958b 100644
--- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml
+++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml
@@ -307,15 +307,16 @@
merge into cu_member a
using (
- select pk_member, min(pk_grade) pk_grade from(
+ select pk_member, min(pk_grade) pk_grade from (
- select #{item.pkMember} pk_member,#{item.newLevel} pk_grade from dual
- )
+ select #{item.pkMember} pk_member, #{item.newLevel} pk_grade from dual
+
+ )
group by pk_member
) b
on (a.pk_id = b.pk_member)
when matched then
- update set a.pk_settle_grade = b.pk_grade,a.modified_time = sysdate
+ update set a.pk_settle_grade = b.pk_grade, a.modified_time = sysdate
diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/BdWaresBonusItemsMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/BdWaresBonusItemsMapper.xml
index d5c6eb60..6bfc1ee1 100644
--- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/BdWaresBonusItemsMapper.xml
+++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/BdWaresBonusItemsMapper.xml
@@ -4,16 +4,16 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusDetailMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusDetailMapper.xml
index cda1b68d..c4ace8f4 100644
--- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusDetailMapper.xml
+++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusDetailMapper.xml
@@ -72,17 +72,6 @@
SELECT 1 FROM dual
-
- insert into cu_member_bonus_detail(pk_bonus, pk_order, pk_bonus_items, income_status,
- cal_type, cal_achieve, cal_value, pretax_income,
- income_tax, real_income, remark,
- income_ratio, income_dial_ratio, order_dial_ratio, pk_country, pk_creator)
- values (#{item.pkBonus}, #{item.pkOrder}, #{item.pkBonusItems}, #{item.incomeStatus},
- #{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})
-
delete
from CU_MEMBER_BONUS_DETAIL
diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusExpandMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusExpandMapper.xml
index 2279de06..db88bc0e 100644
--- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusExpandMapper.xml
+++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusExpandMapper.xml
@@ -77,19 +77,7 @@
SELECT 1 FROM dual
-
- insert into cu_member_bonus_expand(pk_bonus, pk_order, pk_bonus_items, income_status,
- cal_type, cal_achieve, cal_value, pretax_income,
- income_tax, real_income, current_touch, expand_touch, expand_no_capping,
- expand_capping, expand_normal_half, expand_normal_real, remark,
- income_ratio, income_dial_ratio, order_dial_ratio, pk_country, pk_creator)
- values (#{item.pkBonus}, #{item.pkOrder}, #{item.pkBonusItems}, #{item.incomeStatus},
- #{item.calType}, #{item.calAchieve}, #{item.calValue}, #{item.pretaxIncome},
- #{item.incomeTax}, #{item.realIncome}, #{item.currentTouch}, #{item.expandTouch},
- #{item.expandNoCapping}, #{item.expandCapping}, #{item.expandNormalHalf}, #{item.expandNormalReal},
- #{item.remark}, #{item.incomeRatio}, #{item.incomeDialRatio}, #{item.orderDialRatio},
- #{item.pkCountry}, #{item.pkCreator})
-
+
delete
from CU_MEMBER_BONUS_EXPAND
diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml
index a5abeba2..7291d327 100644
--- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml
+++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml
@@ -244,37 +244,6 @@
b.retail_real_subtotal)
-
-
-
-
MERGE INTO ${retailsTableName} s
USING (
diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusPushHisMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusPushHisMapper.xml
deleted file mode 100644
index 842c7eaf..00000000
--- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusPushHisMapper.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberShareBonusMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberShareBonusMapper.xml
index 5d21bf66..a261fa85 100644
--- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberShareBonusMapper.xml
+++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberShareBonusMapper.xml
@@ -4,51 +4,53 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
-
-
- DEL_FLAG,
- CREATION_TIME,
- MODIFIED_TIME,
- PK_COUNTRY,
- PK_CREATOR,
- PK_MODIFIED,
- PK_ID, PERIOD, PK_RATE, SETTLE_MONTH, EXPECT_SHARE_TOTAL, REAL_SHARE_TOTAL
-
diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberShareDetailMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberShareDetailMapper.xml
index 638b8e49..690f8b9d 100644
--- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberShareDetailMapper.xml
+++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberShareDetailMapper.xml
@@ -4,62 +4,45 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- DEL_FLAG,
- CREATION_TIME,
- MODIFIED_TIME,
- PK_COUNTRY,
- PK_CREATOR,
- PK_MODIFIED,
- PK_ID, PK_AWARDS,PK_SHARE_BONUS, PROMOTE_TOTAL, REACH_TOTAL, EXPECT_SHARE_INCOME, EXPECT_SHARE_SUBTOTAL, REAL_SHARE_INCOME, REAL_SHARE_SUBTOTAL
-
merge into cu_member_share_detail a
using(
-
- select #{item.pkAwards} pk_awards,#{item.pkShareBonus} pk_share_bonus,#{item.promoteTotal} promote_total,#{item.reachTotal} reach_total,
- #{item.expectShareIncome} expect_share_income,#{item.expectShareSubtotal} expect_share_subtotal,
- #{item.realShareIncome} real_share_income,#{item.realShareSubtotal} real_share_subtotal,
- #{item.creationTime, jdbcType=TIMESTAMP} creation_time,#{item.pkCountry} pk_country,#{item.pkCreator,jdbcType=BIGINT} pk_creator,
- #{item.modifiedTime, jdbcType=TIMESTAMP} modified_time,#{item.pkModified,jdbcType=BIGINT} pk_modified from dual
-
- ) b
+
+ select #{item.pkAwards} pk_awards,#{item.pkShareBonus} pk_share_bonus,#{item.promoteTotal} promote_total,#{item.reachTotal} reach_total,
+ #{item.expectShareIncome} expect_share_income,#{item.expectShareSubtotal} expect_share_subtotal,
+ #{item.realShareIncome} real_share_income,#{item.realShareSubtotal} real_share_subtotal,
+ #{item.creationTime, jdbcType=TIMESTAMP} creation_time,#{item.pkCountry} pk_country,#{item.pkCreator,jdbcType=BIGINT} pk_creator,
+ #{item.modifiedTime, jdbcType=TIMESTAMP} modified_time,#{item.pkModified,jdbcType=BIGINT} pk_modified from dual
+
+ ) b
on (a.pk_share_bonus=b.pk_share_bonus and a.pk_awards=b.pk_awards)
WHEN NOT MATCHED THEN
insert(pk_awards,pk_share_bonus, promote_total, reach_total, expect_share_income, expect_share_subtotal, real_share_income,
- real_share_subtotal,creation_time,pk_country,pk_creator)
+ real_share_subtotal,creation_time,pk_country,pk_creator)
values
(b.pk_awards,b.pk_share_bonus,b.promote_total,b.reach_total, b.expect_share_income, b.expect_share_subtotal, b.real_share_income,
b.real_share_subtotal,b.creation_time,b.pk_country,b.pk_creator)
when matched then
update set a.promote_total=b.promote_total,a.reach_total=b.reach_total,a.expect_share_income=b.expect_share_income,
- a.expect_share_subtotal=b.expect_share_subtotal,a.real_share_income=b.real_share_income,
- a.real_share_subtotal=b.real_share_subtotal,a.modified_time=b.modified_time,a.pk_modified=b.pk_modified
+ a.expect_share_subtotal=b.expect_share_subtotal,a.real_share_income=b.real_share_income,
+ a.real_share_subtotal=b.real_share_subtotal,a.modified_time=b.modified_time,a.pk_modified=b.pk_modified
-
diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberShareMaxMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberShareMaxMapper.xml
deleted file mode 100644
index 97bbbc0a..00000000
--- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberShareMaxMapper.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- delete from CU_MEMBER_SHARE_MAX where period = #{period} and del_flag=0
-
-
-
diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberGradeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberGradeMapper.xml
index a10f74e5..5fce0844 100644
--- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberGradeMapper.xml
+++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberGradeMapper.xml
@@ -85,6 +85,18 @@
a.pk_grade = b.pk_grade
+
+
+
update cu_member_grade
diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuRegionAssessDetailMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuRegionAssessDetailMapper.xml
index e736e20b..bfebe81c 100644
--- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuRegionAssessDetailMapper.xml
+++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuRegionAssessDetailMapper.xml
@@ -4,101 +4,133 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
insert ALL
-
- into cu_region_assess_detail(pk_id,pk_member,pk_region_assess,assess_date,pk_creator,pk_country) values
- (
- #{item.pkId},#{item.pkMember},#{item.pkRegionAssess},#{item.assessDate},#{item.pkCreator},#{item.pkCountry}
- )
+
+ into cu_region_assess_detail (
+ pk_id, pk_member, pk_region_assess, assess_date,
+ pk_creator, pk_country)
+ values (
+ #{item.pkId}, #{item.pkMember}, #{item.pkRegionAssess}, #{item.assessDate},
+ #{item.pkCreator}, #{item.pkCountry})
SELECT 1 FROM dual
+
merge into cu_region_assess_detail a
- using(
- select cd.pk_id,cr.pk_member,cr.pk_awards,
- (cr.month_consume_pv+cr.team_month_pv) team_month_pv from cu_region_assess_detail cd
- inner join ${rangeTableName} cr
- on cd.pk_member=cr.pk_member
- where cd.del_flag=0 and cd.assess_date = #{assessDate, jdbcType=DATE}
+ using (
+ select cd.pk_id,
+ cr.pk_member,
+ cr.pk_awards,
+ (cr.month_consume_pv + cr.team_month_pv) team_month_pv
+ from cu_region_assess_detail cd
+ inner join ${rangeTableName} cr
+ on cd.pk_member = cr.pk_member
+ where cd.del_flag = 0
+ and cd.assess_date = #{assessDate, jdbcType=DATE}
) b
- on(a.pk_id=b.pk_id)
+ on (a.pk_id = b.pk_id)
when matched then
- update set a.pk_awards=b.pk_awards,a.team_month_pv=b.team_month_pv
- WHERE a.pk_awards != b.pk_awards OR a.team_month_pv != b.team_month_pv
+ update set a.pk_awards = b.pk_awards, a.team_month_pv = b.team_month_pv
+ WHERE a.pk_awards != b.pk_awards
+ OR a.team_month_pv != b.team_month_pv
+
merge into cu_region_assess_detail a
- using(
- select pk_id,max(big_area_pv) big_area_pv from(
- select cd.pk_id,b.* from cu_region_assess_detail cd
- inner join(
- select pk_parent pk_member,(month_consume_pv+team_month_pv) big_area_pv from ${rangeTableName}
- union
- select pk_member,month_consume_pv big_area_pv from ${rangeTableName}) b
- on cd.pk_member=b.pk_member
- where cd.del_flag=0 and cd.assess_date = #{assessDate, jdbcType=DATE}
- )
+ using (
+ select pk_id, max(big_area_pv) big_area_pv
+ from (
+ select cd.pk_id, b.*
+ from cu_region_assess_detail cd
+ inner join (
+ select pk_parent pk_member, (month_consume_pv + team_month_pv) big_area_pv
+ from ${rangeTableName}
+ union
+ select pk_member, month_consume_pv big_area_pv
+ from ${rangeTableName}
+ ) b
+ on cd.pk_member = b.pk_member
+ where cd.del_flag = 0
+ and cd.assess_date = #{assessDate, jdbcType=DATE}
+ )
group by pk_id
) b
- on(a.pk_id=b.pk_id)
+ on (a.pk_id = b.pk_id)
when matched then
- update set a.small_area_pv=a.team_month_pv-b.big_area_pv
+ update set a.small_area_pv = a.team_month_pv - b.big_area_pv
+
- update cu_region_assess_detail set assess_status=2 where del_flag=0 and assess_date=#{assessDate, jdbcType=DATE}
-
-
- update cu_region_assess_detail set assess_status=0
- where del_flag=0 and team_month_pv>=46875 and small_area_pv>=15625
+ update cu_region_assess_detail
+ set assess_status = 2
+ where del_flag = 0
and assess_date = #{assessDate, jdbcType=DATE}
-
- update cu_region_assess_detail set assess_status=0
- where del_flag=0 and assess_date = #{assessDate, jdbcType=DATE}
- and pk_region_assess in(select pk_id from cu_region_assess where del_flag=0 and source=2)
+
+
+ update cu_region_assess_detail
+ set assess_status = 0
+ where del_flag = 0
+ and team_month_pv >= 300000
+ and small_area_pv >= 100000
+ and assess_date = #{assessDate, jdbcType=DATE}
+
- update cu_region_assess_detail set del_flag=1,modified_time=sysdate where pk_region_assess in(
- select ca.pk_id from cu_region_assess ca
- inner join (
- select pk_id from cu_member_retail_region
- where effective=0 and del_flag=0
- and nvl(modified_time,creation_time)>= #{assessStartDate,jdbcType=DATE}
- and nvl(modified_time,creation_time) < #{assessEndDate,jdbcType=DATE}
- ) b
- on ca.pk_region =b.pk_id
- where ca.del_flag=0 and ca.assess_start_date !=#{assessEndDate,jdbcType=DATE})
+ update cu_region_assess_detail
+ set del_flag = 1,
+ modified_time = sysdate
+ where pk_region_assess in (
+ select ca.pk_id
+ from cu_region_assess ca
+ inner join (
+ select pk_id
+ from cu_member_retail_region
+ where effective = 0
+ and del_flag = 0
+ and nvl(modified_time, creation_time) >= #{assessStartDate, jdbcType=DATE}
+ and nvl(modified_time, creation_time) < #{assessEndDate, jdbcType=DATE}
+ ) b
+ on ca.pk_region = b.pk_id
+ where ca.del_flag = 0
+ and ca.assess_start_date != #{assessEndDate,jdbcType=DATE})
+
- delete from cu_region_assess_detail where del_flag=0 and
- pk_region_assess in(
- select pk_id from cu_region_assess where del_flag=0 and
- assess_start_date=#{assessStartDate, jdbcType=DATE}
-
- and assess_period=#{assessPeriod}
- and assess_period >= #{assessPeriod}
-
+ delete from cu_region_assess_detail
+ where del_flag = 0 and
+ pk_region_assess in (
+ select pk_id from cu_region_assess
+ where del_flag = 0
+ and assess_start_date = #{assessStartDate, jdbcType=DATE}
+
+ and assess_period = #{assessPeriod}
+ and assess_period >= #{assessPeriod}
+
)
+
diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuRegionAssessMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuRegionAssessMapper.xml
index c80c17d6..94f79635 100644
--- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuRegionAssessMapper.xml
+++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuRegionAssessMapper.xml
@@ -4,96 +4,137 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
insert ALL
-
- into cu_region_assess(pk_id,pk_member,assess_period,pk_region,assess_start_date,assess_end_date,
- source,pk_creator,pk_country) values
- (
- #{item.pkId},#{item.pkMember},#{item.assessPeriod},#{item.pkRegion},#{item.assessStartDate},#{item.assessEndDate},
- #{item.source},#{item.pkCreator},#{item.pkCountry}
- )
+
+ into cu_region_assess (
+ pk_id, pk_member, assess_period, pk_region,
+ assess_start_date, assess_end_date,
+ source, pk_creator, pk_country)
+ values (
+ #{item.pkId}, #{item.pkMember}, #{item.assessPeriod}, #{item.pkRegion},
+ #{item.assessStartDate}, #{item.assessEndDate},
+ #{item.source}, #{item.pkCreator}, #{item.pkCountry})
SELECT 1 FROM dual
+
merge into CU_REGION_ASSESS a
- using(
- select cd.pk_region_assess,sum(1) REACH_NUM from cu_region_assess_detail cd
- inner join cu_region_assess ca
- on cd.pk_region_assess=ca.pk_id
- where cd.ASSESS_STATUS=0 and cd.del_flag=0 and ca.del_flag=0
- and ca.assess_start_date <= #{assessDate,jdbcType=DATE}
- and ca.assess_end_date >= #{assessDate,jdbcType=DATE}
+ using (
+ select cd.pk_region_assess, sum(1) REACH_NUM
+ from cu_region_assess_detail cd
+ inner join cu_region_assess ca
+ on cd.pk_region_assess = ca.pk_id
+ inner join cu_member_retail_region cmrr
+ on cmrr.pk_id = ca.pk_region
+ where cd.ASSESS_STATUS = 0
+ and cd.del_flag = 0
+ and ca.del_flag = 0
+ and ca.assess_start_date <= #{assessDate,jdbcType=DATE}
+ and ca.assess_end_date >= #{assessDate,jdbcType=DATE}
+ and cmrr.del_flag = 0
+ and cmrr.effective_end_date is null
+ group by cd.pk_region_assess
+ union
+
+ select cd.pk_region_assess, sum(1) REACH_NUM
+ from cu_region_assess_detail cd
+ inner join cu_region_assess ca
+ on cd.pk_region_assess = ca.pk_id
+ inner join CU_MEMBER_RETAIL_REGION cmrr
+ on cmrr.pk_id = ca.pk_region
+ where cd.del_flag = 0
+ and ca.del_flag = 0
+ and cmrr.del_flag = 0
+ and cmrr.effective_end_date is not null
+ and cd.assess_date > ADD_MONTHS(cmrr.effective_end_date, -6)
group by cd.pk_region_assess
) b
- on (a.pk_id=b.pk_region_assess)
+ on (a.pk_id = b.pk_region_assess)
when matched then
- update set a.REACH_NUM=b.REACH_NUM
+ update set a.REACH_NUM = b.REACH_NUM
+
- update cu_region_assess set del_flag=1,modified_time=sysdate where pk_id in(
- select ca.pk_id from cu_region_assess ca
- inner join (
- select pk_id from cu_member_retail_region
- where effective=0 and del_flag=0
- and nvl(modified_time,creation_time)>= #{assessStartDate,jdbcType=DATE}
- and nvl(modified_time,creation_time) < #{assessEndDate,jdbcType=DATE}
- ) b
- on ca.pk_region =b.pk_id
- where ca.del_flag=0 and ca.assess_start_date !=#{assessEndDate,jdbcType=DATE})
+ update cu_region_assess
+ set del_flag = 1,
+ modified_time = sysdate
+ where pk_id in (
+ select ca.pk_id
+ from cu_region_assess ca
+ inner join (
+ select pk_id
+ from cu_member_retail_region
+ where effective = 0
+ and del_flag = 0
+ and nvl(modified_time, creation_time) >= #{assessStartDate,jdbcType=DATE}
+ and nvl(modified_time, creation_time) < #{assessEndDate,jdbcType=DATE}
+ ) b
+ on ca.pk_region = b.pk_id
+ where ca.del_flag = 0
+ and ca.assess_start_date !=#{assessEndDate,jdbcType=DATE})
+
delete from cu_region_assess where del_flag=0 and
- assess_start_date=#{assessStartDate, jdbcType=DATE}
+ assess_start_date=#{assessStartDate, jdbcType=DATE}
and assess_period=#{assessPeriod}
and assess_period >= #{assessPeriod}
+
+
+
diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml
index 7a6db564..b9e09a19 100644
--- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml
+++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/order/BonusOrderMapper.xml
@@ -61,6 +61,8 @@
+
+
@@ -153,15 +155,79 @@
nvl(st.pk_order,0) pk_order,
nvl(st.pk_wares,0) pk_wares,
nvl(st.wares_price,0) wares_price,
- nvl(bw.wares_code,'~') wares_code,
nvl(st.wares_quantity,0) wares_quantity,
- nvl(bw.area_income, 0) area_income
+ nvl(bw.wares_code,'~') wares_code,
+ nvl(bw.area_income, 0) area_income,
+ nvl(bw.area_income_type, 0) area_income_type,
+ nvl(bw.box_num, 0) wares_box_num
from sa_order so
left join sa_order_wares st
on so.pk_id = st.pk_order and st.wares_price > 0
left join bd_wares bw
on bw.pk_id = st.pk_wares and bw.del_flag = 0
where so.order_status = 1
+ and so.order_type in (41, 42)
+
+ and so.order_code=#{orderCode}
+
+ and so.pay_time >= #{startDate}
+ and so.pay_time < #{endDate}
+ union
+ select so.pk_id,
+ so.pk_member,
+ so.order_code,
+ so.order_type,
+ so.pk_rate,
+ so.rec_province,
+ so.rec_city,
+ so.rec_county,
+ so.order_amount,
+ so.order_achieve,
+ so.order_ass_achieve,
+ so.upload_achieve,
+ so.pk_reference,
+ so.pk_vertex,
+ so.pk_country,
+ so.del_flag,
+ so.pay_time,
+ so.pk_creator,
+ so.consume_amount,
+ so.box_num,
+ soi.items_id,
+ soi.pk_order,
+ soi.pk_wares,
+ soi.wares_price,
+ soi.wares_quantity,
+ nvl(bw.wares_code, '~') wares_code,
+ nvl(bw.area_income, 0) area_income,
+ nvl(bw.area_income_type, 0) area_income_type,
+ nvl(bw.box_num, 0) wares_box_num
+ from sa_order so
+ left join (
+ select max(soi.pk_id) items_id,
+ nvl(soi.pk_order, 0) pk_order,
+ nvl(soi.pk_wares, 0) pk_wares,
+ sum(soi.achievement * soi.quantity) wares_price,
+ max(soi.wares_quantity) wares_quantity
+ from sa_order so
+ left join sa_order_items soi
+ on soi.pk_order = so.pk_id
+ and soi.is_gift = 1
+ where so.order_status = 1
+ and so.order_type in (43, 44)
+
+ and so.order_code=#{orderCode}
+
+ and so.pay_time >= #{startDate}
+ and so.pay_time < #{endDate}
+ group by soi.pk_order, soi.pk_wares
+ ) soi
+ on soi.pk_order = so.pk_id
+ left join bd_wares bw
+ on bw.pk_id = soi.pk_wares
+ and bw.del_flag = 0
+ where so.order_status = 1
+ and so.order_type in (43, 44)
and so.order_code=#{orderCode}
diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java
index 34435c2f..7ba33038 100644
--- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java
+++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java
@@ -2521,10 +2521,13 @@ public class CuMemberServiceImpl extends ServiceImpl i
Set waresAuthorityParentParamList = new HashSet<>();
// 安置查询
Set waresAuthorityPlaceParamList = new HashSet<>();
+ // 指定会员
+ Set pkMemberList = new HashSet<>();
for (ShowWaresDTO showWaresDTO : showWaresDTOS) {
for (BdWaresAuthority bw : showWaresDTO.getWaresAuthorityList()) {
if (bw.getAuthorityType() == EWaresPermissionType.BLOOD_ALLOW.getValue() || bw.getAuthorityType() == EWaresPermissionType.BLOOD_STOP.getValue()) {
+ // 血缘关系
WaresAuthorityParentParam waresAuthorityParentParam = WaresAuthorityParentParam.builder()
.pkMember(bw.getPkMember())
.loginMember(showWaresDTO.getLoginMember())
@@ -2532,12 +2535,17 @@ public class CuMemberServiceImpl extends ServiceImpl i
waresAuthorityParentParamList.add(waresAuthorityParentParam);
}
if (bw.getAuthorityType() == EWaresPermissionType.PLACE_ALLWO.getValue() || bw.getAuthorityType() == EWaresPermissionType.PLACE_STOP.getValue()) {
+ // 安置关系
WaresAuthorityParentParam waresAuthorityParentParam = WaresAuthorityParentParam.builder()
.pkMember(bw.getPkMember())
.loginMember(showWaresDTO.getLoginMember())
.build();
waresAuthorityPlaceParamList.add(waresAuthorityParentParam);
}
+ if (bw.getAuthorityType() == EWaresPermissionType.MEMBER.getValue()) {
+ // 指定会员可见
+ pkMemberList.add(bw.getPkMember());
+ }
}
}
@@ -2568,6 +2576,9 @@ public class CuMemberServiceImpl extends ServiceImpl i
} else if (bdWaresAuthority.getAuthorityType() == EWaresPermissionType.PLACE_STOP.getValue()) {
// 安置禁止
isShowWares = !waresAuthorityPlaceList.contains(bdWaresAuthority.getPkMember());
+ } else if (bdWaresAuthority.getAuthorityType() == EWaresPermissionType.MEMBER.getValue()) {
+ // 指定会员可见
+ isShowWares = pkMemberList.contains(showWaresDTO.getLoginMember());
}
}
resultMap.put(showWaresDTO.getPkWares(), isShowWares);
diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/ApiRetailHomePageController.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/ApiRetailHomePageController.java
index e0812932..f5bcd896 100644
--- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/ApiRetailHomePageController.java
+++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/ApiRetailHomePageController.java
@@ -1,6 +1,7 @@
package com.hzs.retail.member.controller.api;
+import cn.hutool.core.util.ObjectUtil;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.core.web.page.TableDataInfo;
@@ -44,6 +45,9 @@ public class ApiRetailHomePageController extends BaseController {
Long pkMember = SecurityUtils.getUserId();
Integer pkCountry = SecurityUtils.getPkCountry();
Integer systemType = SecurityUtils.getSystemType();
+ if(ObjectUtil.isEmpty(systemType)){
+ systemType = 2;
+ }
CuMemberRetailDataStatisticsResultVO result = retailAchieveService.getRetailDataStatisticsDetail(pkMember, pkCountry, systemType);
CuMemberRetailAchieveVO vo = CuMemberRetailAchieveVO.builder()
.totalBox(result.getTotalBoxNum())
diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java
index aad87a29..c44dda3c 100644
--- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java
+++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java
@@ -240,7 +240,7 @@ public class RetailMemberController extends BaseController {
// return AjaxResult.error("当前区域已经被占用");
// }
// }
- int cuMemberRetailRegion = iCuMemberRetailRegionService.validateBindCount(param, EYesNo.YES.getIntValue(), SecurityUtils.getSystemType(), param.getPkMember());
+ int cuMemberRetailRegion = iCuMemberRetailRegionService.validateBindCount(param, EYesNo.YES.getIntValue(), SecurityUtils.getSystemType(), userId);
if (cuMemberRetailRegion > 0) {
return AjaxResult.error("当前区域已经被占用");
}
diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/provider/MemberRetailProvider.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/provider/MemberRetailProvider.java
index dddd4b2e..8e78ffa0 100644
--- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/provider/MemberRetailProvider.java
+++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/provider/MemberRetailProvider.java
@@ -10,11 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
/**
- * @Description: 新零售会员dubbo服务
- * @Author: jiang chao
- * @Time: 2024/12/31 13:40
- * @Classname: MemberRetailProvider
- * @PackageName: com.hzs.retail.member.provider
+ * 新零售会员dubbo服务
*/
@Slf4j
@DubboService
diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailAchieveServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailAchieveServiceImpl.java
index d5d90390..8b707c7c 100644
--- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailAchieveServiceImpl.java
+++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailAchieveServiceImpl.java
@@ -267,6 +267,14 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl memberAchieveList, BigDecimal rate) {
//查询最大业绩
+ if(ObjectUtil.isEmpty(memberAchieveList)){
+ return null;
+ }
+ for (CuMemberRetailAchieveVO cuMemberRetailAchieveVO : memberAchieveList) {
+ if(ObjectUtil.isEmpty(cuMemberRetailAchieveVO.getArealPv())){
+ cuMemberRetailAchieveVO.setArealPv(BigDecimal.ZERO);
+ }
+ }
CuMemberRetailAchieveVO maxAchieveVO = memberAchieveList.stream().max(Comparator.comparing(CuMemberRetailAchieveVO::getArealPv)).get();
//查询小区业绩
BigDecimal smallAreaPv = memberAchieveList.stream().filter(achieveVO -> !achieveVO.getPkMember().equals(maxAchieveVO.getPkMember())).map(vo -> null == vo.getArealPv() ? BigDecimal.ZERO : vo.getArealPv()).reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -607,6 +615,9 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType);
+ if(CollUtil.isEmpty(pkMemberList)){
+ return new PageResult(0, new ArrayList<>());
+ }
param.setPkIdList(pkMemberList);
List detailVOList = baseMapper.getMarketDynamicsDetail(param);
log.info("detailVOList : {}", JSONUtil.toJsonStr(detailVOList));
diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/utils/DataStatisticsUtil.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/utils/DataStatisticsUtil.java
index ca99cc39..e78da820 100644
--- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/utils/DataStatisticsUtil.java
+++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/utils/DataStatisticsUtil.java
@@ -250,7 +250,8 @@ public class DataStatisticsUtil {
MarketDynamicsDetailVO bigRange = null;
if(param.getQueryType().equals(1)){
bigRange = detailVOList.stream()
- .max(Comparator.comparingInt(MarketDynamicsDetailVO::getTotalBoxNum))
+// .max(Comparator.comparingInt(MarketDynamicsDetailVO::getTotalBoxNum))
+ .max(Comparator.comparing(MarketDynamicsDetailVO::getTotalBoxNum, BigDecimal::compareTo))
.orElse(null);
}else{
bigRange = detailVOList.stream()
diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailAchieveVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailAchieveVO.java
index de2229d0..593613bd 100644
--- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailAchieveVO.java
+++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailAchieveVO.java
@@ -62,17 +62,20 @@ public class CuMemberRetailAchieveVO implements Serializable {
/**
* 总盒数
*/
+ @BigDecimalFormat
private BigDecimal totalBox;
/**
* 小市场盒数
*/
+ @BigDecimalFormat
private BigDecimal smallAreaBox;
/**
* 大市场盒数
*/
+ @BigDecimalFormat
private BigDecimal bigAreaBox;
/**
diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/MarketDynamicsDetailVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/MarketDynamicsDetailVO.java
index fc0ac86b..c7624c93 100644
--- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/MarketDynamicsDetailVO.java
+++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/MarketDynamicsDetailVO.java
@@ -64,22 +64,27 @@ public class MarketDynamicsDetailVO implements Serializable {
/**
* 今日盒数
*/
- private Integer todayBoxNum;
+ @BigDecimalFormat
+ private BigDecimal todayBoxNum;
/**
* 昨日盒数
*/
- private Integer yesterdayBoxNum;
+ @BigDecimalFormat
+ private BigDecimal yesterdayBoxNum;
/**
* 本月盒数
*/
- private Integer currentMonthBoxNum;
+ @BigDecimalFormat
+ private BigDecimal currentMonthBoxNum;
/**
* 上月盒数
*/
- private Integer lastMonthBoxNum;
+ @BigDecimalFormat
+ private BigDecimal lastMonthBoxNum;
/**
* 累计消费盒数
*/
- private Integer totalBoxNum;
+ @BigDecimalFormat
+ private BigDecimal totalBoxNum;
}
diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberRetailRangeMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberRetailRangeMapper.xml
index 51a94956..e1e94369 100644
--- a/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberRetailRangeMapper.xml
+++ b/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberRetailRangeMapper.xml
@@ -445,7 +445,7 @@
@@ -289,6 +281,7 @@
and cmrr.del_flag = 0
AND cmrr.PK_MEMBER IN (select pk_id from CU_MEMBER where PK_VERTEX in (select pk_id from BD_VERTEX where REGION_VERTEX_PK_ID in (select REGION_VERTEX_PK_ID from BD_VERTEX where pk_id in (select PK_VERTEX FROM cu_member WHERE PK_ID = #{pkId} )) and DEL_FLAG = 0))
+ AND cmrr.PK_MEMBER != #{pkId}
+
CREATE INDEX ${indexName} ON ${tableName} (pk_member)
-
-
merge into ${tableName} cmab
using (
- SELECT
- nvl(t.SUM_AMOUNT+ nvl(cmr.SUM_AMOUNT,0),0) SUM_AMOUNT,
- nvl(t.REG_AMOUNT+ nvl(cmr.REG_AMOUNT,0),0) REG_AMOUNT,
- nvl(t.UPG_AMOUNT+ nvl(cmr.UPG_AMOUNT,0),0) UPG_AMOUNT,
- nvl(t.REP_AMOUNT+ nvl(cmr.REP_AMOUNT,0),0) REP_AMOUNT,
- nvl(t.CON_AMOUNT+ nvl(cmr.CON_AMOUNT,0),0) CON_AMOUNT,
+ SELECT nvl(t.SUM_AMOUNT + nvl(cmr.SUM_AMOUNT, 0), 0) SUM_AMOUNT,
+ nvl(t.REG_AMOUNT + nvl(cmr.REG_AMOUNT, 0), 0) REG_AMOUNT,
+ nvl(t.UPG_AMOUNT + nvl(cmr.UPG_AMOUNT, 0), 0) UPG_AMOUNT,
+ nvl(t.REP_AMOUNT + nvl(cmr.REP_AMOUNT, 0), 0) REP_AMOUNT,
+ nvl(t.CON_AMOUNT + nvl(cmr.CON_AMOUNT, 0), 0) CON_AMOUNT,
- nvl(t.SUM_PV+ nvl(cmr.SUM_PV,0),0)SUM_PV,
- nvl(t.REG_PV+ nvl(cmr.REG_PV,0),0)REG_PV,
- nvl(t.UPG_PV+ nvl(cmr.UPG_PV,0),0)UPG_PV,
- nvl(t.REP_PV+ nvl(cmr.REP_PV,0),0)REP_PV,
- nvl(t.CON_PV+ nvl(cmr.CON_PV,0),0)CON_PV,
+ nvl(t.SUM_PV + nvl(cmr.SUM_PV, 0), 0) SUM_PV,
+ nvl(t.REG_PV + nvl(cmr.REG_PV, 0), 0) REG_PV,
+ nvl(t.UPG_PV + nvl(cmr.UPG_PV, 0), 0) UPG_PV,
+ nvl(t.REP_PV + nvl(cmr.REP_PV, 0), 0) REP_PV,
+ nvl(t.CON_PV + nvl(cmr.CON_PV, 0), 0) CON_PV,
- nvl(t.SUM_BOX+ nvl(cmr.SUM_BOX,0),0) SUM_BOX,
- nvl(t.REG_BOX+ nvl(cmr.REG_BOX,0),0) REG_BOX,
- nvl(t.UPG_BOX+ nvl(cmr.UPG_BOX,0),0) UPG_BOX,
- nvl(t.REP_BOX+ nvl(cmr.REP_BOX,0),0) REP_BOX,
- nvl(t.CON_BOX+ nvl(cmr.CON_BOX,0),0) CON_BOX,
+ nvl(t.SUM_BOX + nvl(cmr.SUM_BOX, 0), 0) SUM_BOX,
+ nvl(t.REG_BOX + nvl(cmr.REG_BOX, 0), 0) REG_BOX,
+ nvl(t.UPG_BOX + nvl(cmr.UPG_BOX, 0), 0) UPG_BOX,
+ nvl(t.REP_BOX + nvl(cmr.REP_BOX, 0), 0) REP_BOX,
+ nvl(t.CON_BOX + nvl(cmr.CON_BOX, 0), 0) CON_BOX,
- t.pk_member,
- t.pk_parent,
- t.BIG_BOX_NUM,
- t.SMALL_BOX_NUM,
- t.PK_COUNTRY,
- nvl(cmr.team_sum_amount,0) team_sum_amount,
- nvl(cmr.team_REG_amount,0) team_REG_amount,
- nvl(cmr.team_UPG_amount,0) team_UPG_amount,
- nvl(cmr.team_REP_amount,0) team_REP_amount,
- nvl(cmr.team_CON_amount,0) team_CON_amount,
+ t.pk_member,
+ t.pk_parent,
+ t.BIG_BOX_NUM,
+ t.SMALL_BOX_NUM,
+ t.PK_COUNTRY,
+ nvl(cmr.team_sum_amount, 0) team_sum_amount,
+ nvl(cmr.team_REG_amount, 0) team_REG_amount,
+ nvl(cmr.team_UPG_amount, 0) team_UPG_amount,
+ nvl(cmr.team_REP_amount, 0) team_REP_amount,
+ nvl(cmr.team_CON_amount, 0) team_CON_amount,
- nvl(cmr.team_sum_pv,0) team_sum_pv,
- nvl(cmr.team_REG_pv,0) team_REG_pv,
- nvl(cmr.team_UPG_pv,0) team_UPG_pv,
- nvl(cmr.team_REP_pv,0) team_REP_pv,
- nvl(cmr.team_CON_pv,0) team_CON_pv,
+ nvl(cmr.team_sum_pv, 0) team_sum_pv,
+ nvl(cmr.team_REG_pv, 0) team_REG_pv,
+ nvl(cmr.team_UPG_pv, 0) team_UPG_pv,
+ nvl(cmr.team_REP_pv, 0) team_REP_pv,
+ nvl(cmr.team_CON_pv, 0) team_CON_pv,
- nvl(cmr.team_sum_box,0) team_sum_box,
- nvl(cmr.team_REG_box,0) team_REG_box,
- nvl(cmr.team_UPG_box,0) team_UPG_box,
- nvl(cmr.team_REP_box,0) team_REP_box,
- nvl(cmr.team_CON_box,0) team_CON_box
- FROM (
- SELECT SUM(nvl(so.ORDER_AMOUNT,0)) SUM_AMOUNT,
- SUM(CASE WHEN so.order_type = 41 THEN nvl(so.ORDER_AMOUNT, 0) ELSE 0 END) AS REG_AMOUNT,
- SUM(CASE WHEN so.order_type = 42 THEN nvl(so.ORDER_AMOUNT, 0) ELSE 0 END) AS UPG_AMOUNT,
- SUM(CASE WHEN so.order_type = 43 THEN nvl(so.ORDER_AMOUNT, 0) ELSE 0 END) AS REP_AMOUNT,
- SUM(CASE WHEN so.order_type = 44 THEN nvl(so.ORDER_AMOUNT, 0) ELSE 0 END) AS CON_AMOUNT,
+ nvl(cmr.team_sum_box, 0) team_sum_box,
+ nvl(cmr.team_REG_box, 0) team_REG_box,
+ nvl(cmr.team_UPG_box, 0) team_UPG_box,
+ nvl(cmr.team_REP_box, 0) team_REP_box,
+ nvl(cmr.team_CON_box, 0) team_CON_box
+ FROM (
+ SELECT SUM(nvl(so.ORDER_AMOUNT, 0)) SUM_AMOUNT,
+ SUM(CASE WHEN so.order_type = 41 THEN nvl(so.ORDER_AMOUNT, 0) ELSE 0 END) AS REG_AMOUNT,
+ SUM(CASE WHEN so.order_type = 42 THEN nvl(so.ORDER_AMOUNT, 0) ELSE 0 END) AS UPG_AMOUNT,
+ SUM(CASE WHEN so.order_type = 43 THEN nvl(so.ORDER_AMOUNT, 0) ELSE 0 END) AS REP_AMOUNT,
+ SUM(CASE WHEN so.order_type = 44 THEN nvl(so.ORDER_AMOUNT, 0) ELSE 0 END) AS CON_AMOUNT,
- SUM(nvl(so.ORDER_ACHIEVE,0)) SUM_PV,
- SUM(CASE WHEN so.order_type = 41 THEN nvl(so.ORDER_ACHIEVE, 0) ELSE 0 END) AS REG_PV,
- SUM(CASE WHEN so.order_type = 42 THEN nvl(so.ORDER_ACHIEVE, 0) ELSE 0 END) AS UPG_PV,
- SUM(CASE WHEN so.order_type = 43 THEN nvl(so.ORDER_ACHIEVE, 0) ELSE 0 END) AS REP_PV,
- SUM(CASE WHEN so.order_type = 44 THEN nvl(so.ORDER_ACHIEVE, 0) ELSE 0 END) AS CON_PV,
+ SUM(nvl(so.ORDER_ACHIEVE, 0)) SUM_PV,
+ SUM(CASE WHEN so.order_type = 41 THEN nvl(so.ORDER_ACHIEVE, 0) ELSE 0 END) AS REG_PV,
+ SUM(CASE WHEN so.order_type = 42 THEN nvl(so.ORDER_ACHIEVE, 0) ELSE 0 END) AS UPG_PV,
+ SUM(CASE WHEN so.order_type = 43 THEN nvl(so.ORDER_ACHIEVE, 0) ELSE 0 END) AS REP_PV,
+ SUM(CASE WHEN so.order_type = 44 THEN nvl(so.ORDER_ACHIEVE, 0) ELSE 0 END) AS CON_PV,
- SUM(nvl(so.BOX_NUM,0)) SUM_BOX,
- SUM(CASE WHEN so.order_type = 41 THEN nvl(so.BOX_NUM, 0) ELSE 0 END) AS REG_BOX,
- SUM(CASE WHEN so.order_type = 42 THEN nvl(so.BOX_NUM, 0) ELSE 0 END) AS UPG_BOX,
- SUM(CASE WHEN so.order_type = 43 THEN nvl(so.BOX_NUM, 0) ELSE 0 END) AS REP_BOX,
- SUM(CASE WHEN so.order_type = 44 THEN nvl(so.BOX_NUM, 0) ELSE 0 END) AS CON_BOX,
- rag.pk_member,
- rag.pk_parent,
- SUM(nvl(rag.BIG_BOX_NUM,0)) BIG_BOX_NUM,
- SUM(nvl(rag.SMALL_BOX_NUM,0)) SMALL_BOX_NUM,
- rag.PK_COUNTRY
- FROM ${rangeTabeName} rag
- left join sa_order so on rag.pk_member=so.pk_member and so.del_flag=0 AND so.ORDER_STATUS=1
- AND so.PAY_TIME >= to_date(#{staDate}, 'yyyy-mm-dd')
- AND so.PAY_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
- GROUP BY rag.pk_member, rag.pk_parent,rag.PK_COUNTRY
- ) t
- left JOIN ${beforeTabeName} cmr ON cmr.pk_member=t.pk_member
- ) tmp
+ SUM(nvl(so.BOX_NUM, 0)) SUM_BOX,
+ SUM(CASE WHEN so.order_type = 41 THEN nvl(so.BOX_NUM, 0) ELSE 0 END) AS REG_BOX,
+ SUM(CASE WHEN so.order_type = 42 THEN nvl(so.BOX_NUM, 0) ELSE 0 END) AS UPG_BOX,
+ SUM(CASE WHEN so.order_type = 43 THEN nvl(so.BOX_NUM, 0) ELSE 0 END) AS REP_BOX,
+ SUM(CASE WHEN so.order_type = 44 THEN nvl(so.BOX_NUM, 0) ELSE 0 END) AS CON_BOX,
+ rag.pk_member,
+ rag.pk_parent,
+ SUM(nvl(rag.BIG_BOX_NUM, 0)) BIG_BOX_NUM,
+ SUM(nvl(rag.SMALL_BOX_NUM, 0)) SMALL_BOX_NUM,
+ rag.PK_COUNTRY
+ FROM ${rangeTabeName} rag
+ left join sa_order so on rag.pk_member = so.pk_member and so.del_flag = 0 AND so.ORDER_STATUS = 1
+ AND so.PAY_TIME >= to_date(#{staDate}, 'yyyy-mm-dd')
+ AND so.PAY_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
+ GROUP BY rag.pk_member, rag.pk_parent, rag.PK_COUNTRY
+ ) t
+ left JOIN ${beforeTabeName} cmr ON cmr.pk_member = t.pk_member
+ ) tmp
on (cmab.pk_member = tmp.pk_member)
when not matched then
insert
- (PK_MEMBER,PK_PARENT,SUM_AMOUNT,REG_AMOUNT,UPG_AMOUNT,REP_AMOUNT,CON_AMOUNT,
- SUM_BOX,REG_BOX,UPG_BOX,REP_BOX,CON_BOX,
- SUM_PV,REG_PV,UPG_PV,REP_PV,CON_PV,
- PK_COUNTRY,
- TEAM_SUM_AMOUNT,TEAM_REG_AMOUNT,TEAM_UPG_AMOUNT,TEAM_REP_AMOUNT,TEAM_CON_AMOUNT,
- TEAM_SUM_BOX,TEAM_REG_BOX,TEAM_UPG_BOX,TEAM_REP_BOX,TEAM_CON_BOX,
- TEAM_SUM_PV,TEAM_REG_PV,TEAM_UPG_PV,TEAM_REP_PV,TEAM_CON_PV,BIG_BOX,SMALL_BOX
- )
+ (PK_MEMBER, PK_PARENT, SUM_AMOUNT, REG_AMOUNT, UPG_AMOUNT, REP_AMOUNT, CON_AMOUNT,
+ SUM_BOX, REG_BOX, UPG_BOX, REP_BOX, CON_BOX,
+ SUM_PV, REG_PV, UPG_PV, REP_PV, CON_PV,
+ PK_COUNTRY,
+ TEAM_SUM_AMOUNT, TEAM_REG_AMOUNT, TEAM_UPG_AMOUNT, TEAM_REP_AMOUNT, TEAM_CON_AMOUNT,
+ TEAM_SUM_BOX, TEAM_REG_BOX, TEAM_UPG_BOX, TEAM_REP_BOX, TEAM_CON_BOX,
+ TEAM_SUM_PV, TEAM_REG_PV, TEAM_UPG_PV, TEAM_REP_PV, TEAM_CON_PV, BIG_BOX, SMALL_BOX
+ )
values (tmp.pk_member,
tmp.PK_PARENT,
tmp.SUM_AMOUNT,
@@ -1667,13 +1549,11 @@
tmp.UPG_AMOUNT,
tmp.REP_AMOUNT,
tmp.CON_AMOUNT,
-
tmp.SUM_BOX,
tmp.REG_BOX,
tmp.UPG_BOX,
tmp.REP_BOX,
tmp.CON_BOX,
-
tmp.SUM_PV,
tmp.REG_PV,
tmp.UPG_PV,
@@ -1685,64 +1565,59 @@
tmp.TEAM_UPG_AMOUNT,
tmp.TEAM_REP_AMOUNT,
tmp.TEAM_CON_AMOUNT,
-
tmp.TEAM_SUM_BOX,
tmp.TEAM_REG_BOX,
tmp.TEAM_UPG_BOX,
tmp.TEAM_REP_BOX,
tmp.TEAM_CON_BOX,
-
tmp.TEAM_SUM_PV,
tmp.TEAM_REG_PV,
tmp.TEAM_UPG_PV,
tmp.TEAM_REP_PV,
tmp.TEAM_CON_PV,
tmp.BIG_BOX_NUM,
- tmp.SMALL_BOX_NUM
- )
+ tmp.SMALL_BOX_NUM)
when matched then
update set
- cmab.SUM_AMOUNT = tmp.SUM_AMOUNT,
- cmab.REG_AMOUNT = tmp.REG_AMOUNT,
- cmab.UPG_AMOUNT = tmp.UPG_AMOUNT,
- cmab.REP_AMOUNT = tmp.REP_AMOUNT,
- cmab.CON_AMOUNT = tmp.CON_AMOUNT,
+ cmab.SUM_AMOUNT = tmp.SUM_AMOUNT,
+ cmab.REG_AMOUNT = tmp.REG_AMOUNT,
+ cmab.UPG_AMOUNT = tmp.UPG_AMOUNT,
+ cmab.REP_AMOUNT = tmp.REP_AMOUNT,
+ cmab.CON_AMOUNT = tmp.CON_AMOUNT,
- cmab.SUM_BOX = tmp.SUM_BOX,
- cmab.REG_BOX = tmp.REG_BOX,
- cmab.UPG_BOX = tmp.UPG_BOX,
- cmab.REP_BOX = tmp.REP_BOX,
- cmab.CON_BOX = tmp.CON_BOX,
+ cmab.SUM_BOX = tmp.SUM_BOX,
+ cmab.REG_BOX = tmp.REG_BOX,
+ cmab.UPG_BOX = tmp.UPG_BOX,
+ cmab.REP_BOX = tmp.REP_BOX,
+ cmab.CON_BOX = tmp.CON_BOX,
- cmab.SUM_PV = tmp.SUM_PV,
- cmab.REG_PV = tmp.REG_PV,
- cmab.UPG_PV = tmp.UPG_PV,
- cmab.REP_PV = tmp.REP_PV,
- cmab.CON_PV = tmp.CON_PV,
+ cmab.SUM_PV = tmp.SUM_PV,
+ cmab.REG_PV = tmp.REG_PV,
+ cmab.UPG_PV = tmp.UPG_PV,
+ cmab.REP_PV = tmp.REP_PV,
+ cmab.CON_PV = tmp.CON_PV,
- cmab.TEAM_SUM_AMOUNT = tmp.TEAM_SUM_AMOUNT,
- cmab.TEAM_REG_AMOUNT = tmp.TEAM_REG_AMOUNT,
- cmab.TEAM_UPG_AMOUNT = tmp.TEAM_UPG_AMOUNT,
- cmab.TEAM_REP_AMOUNT = tmp.TEAM_REP_AMOUNT,
- cmab.TEAM_CON_AMOUNT = tmp.TEAM_CON_AMOUNT,
+ cmab.TEAM_SUM_AMOUNT = tmp.TEAM_SUM_AMOUNT,
+ cmab.TEAM_REG_AMOUNT = tmp.TEAM_REG_AMOUNT,
+ cmab.TEAM_UPG_AMOUNT = tmp.TEAM_UPG_AMOUNT,
+ cmab.TEAM_REP_AMOUNT = tmp.TEAM_REP_AMOUNT,
+ cmab.TEAM_CON_AMOUNT = tmp.TEAM_CON_AMOUNT,
- cmab.TEAM_SUM_BOX = tmp.TEAM_SUM_BOX,
- cmab.TEAM_REG_BOX = tmp.TEAM_REG_BOX,
- cmab.TEAM_UPG_BOX = tmp.TEAM_UPG_BOX,
- cmab.TEAM_REP_BOX = tmp.TEAM_REP_BOX,
- cmab.TEAM_CON_BOX = tmp.TEAM_CON_BOX,
-
- cmab.TEAM_SUM_PV = tmp.TEAM_SUM_PV,
- cmab.TEAM_REG_PV = tmp.TEAM_REG_PV,
- cmab.TEAM_UPG_PV = tmp.TEAM_UPG_PV,
- cmab.TEAM_REP_PV = tmp.TEAM_REP_PV,
- cmab.TEAM_CON_PV = tmp.TEAM_CON_PV,
- cmab.BIG_BOX = tmp.BIG_BOX_NUM,
- cmab.SMALL_BOX = tmp.SMALL_BOX_NUM
+ cmab.TEAM_SUM_BOX = tmp.TEAM_SUM_BOX,
+ cmab.TEAM_REG_BOX = tmp.TEAM_REG_BOX,
+ cmab.TEAM_UPG_BOX = tmp.TEAM_UPG_BOX,
+ cmab.TEAM_REP_BOX = tmp.TEAM_REP_BOX,
+ cmab.TEAM_CON_BOX = tmp.TEAM_CON_BOX,
+ cmab.TEAM_SUM_PV = tmp.TEAM_SUM_PV,
+ cmab.TEAM_REG_PV = tmp.TEAM_REG_PV,
+ cmab.TEAM_UPG_PV = tmp.TEAM_UPG_PV,
+ cmab.TEAM_REP_PV = tmp.TEAM_REP_PV,
+ cmab.TEAM_CON_PV = tmp.TEAM_CON_PV,
+ cmab.BIG_BOX = tmp.BIG_BOX_NUM,
+ cmab.SMALL_BOX = tmp.SMALL_BOX_NUM
-
merge into ${tableName} cmab
@@ -1798,66 +1673,73 @@
cmab.TEAM_REP_PV = tmp.TEAM_REP_PV,
cmab.TEAM_CON_PV = tmp.TEAM_CON_PV
-
-
- select
- sum(so.order_amount) orderAmount,
- SUM(CASE WHEN so.order_type = 41 THEN so.order_amount ELSE 0 END) AS orderAmountReg,
- SUM(CASE WHEN so.order_type = 42 THEN so.order_amount ELSE 0 END) AS orderAmountUpg,
- SUM(CASE WHEN so.order_type = 43 THEN so.order_amount ELSE 0 END) AS orderAmountRep,
- SUM(CASE WHEN so.order_type = 44 THEN so.order_amount ELSE 0 END) AS orderAmountCon,
- sum(so.order_achieve) orderAchieve,
- SUM(CASE WHEN so.order_type = 41 THEN so.order_achieve ELSE 0 END) AS orderAchieveReg,
- SUM(CASE WHEN so.order_type = 42 THEN so.order_achieve ELSE 0 END) AS orderAchieveUpg,
- SUM(CASE WHEN so.order_type = 43 THEN so.order_achieve ELSE 0 END) AS orderAchieveRep,
- SUM(CASE WHEN so.order_type = 44 THEN so.order_achieve ELSE 0 END) AS orderAchieveCon,
- sum(so.box_num) boxNum,
- SUM(CASE WHEN so.order_type = 41 THEN so.box_num ELSE 0 END) AS boxNumReg,
- SUM(CASE WHEN so.order_type = 42 THEN so.box_num ELSE 0 END) AS boxNumUpg,
- SUM(CASE WHEN so.order_type = 43 THEN so.box_num ELSE 0 END) AS boxNumRep,
- SUM(CASE WHEN so.order_type = 44 THEN so.box_num ELSE 0 END) AS boxNumCon,
- so.pk_member pkMember
- FROM sa_order so
- WHERE so.del_flag = 0
- AND so.ORDER_STATUS = 1
- AND so.PAY_TIME >= to_date(#{staDate}, 'yyyy-mm-dd')
- AND so.PAY_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
- GROUP BY so.pk_member
-
-
+
+
+
+ select sum(so.order_amount) orderAmount,
+ SUM(CASE WHEN so.order_type = 41 THEN so.order_amount ELSE 0 END) AS orderAmountReg,
+ SUM(CASE WHEN so.order_type = 42 THEN so.order_amount ELSE 0 END) AS orderAmountUpg,
+ SUM(CASE WHEN so.order_type = 43 THEN so.order_amount ELSE 0 END) AS orderAmountRep,
+ SUM(CASE WHEN so.order_type = 44 THEN so.order_amount ELSE 0 END) AS orderAmountCon,
+ sum(so.order_achieve) orderAchieve,
+ SUM(CASE WHEN so.order_type = 41 THEN so.order_achieve ELSE 0 END) AS orderAchieveReg,
+ SUM(CASE WHEN so.order_type = 42 THEN so.order_achieve ELSE 0 END) AS orderAchieveUpg,
+ SUM(CASE WHEN so.order_type = 43 THEN so.order_achieve ELSE 0 END) AS orderAchieveRep,
+ SUM(CASE WHEN so.order_type = 44 THEN so.order_achieve ELSE 0 END) AS orderAchieveCon,
+ sum(so.box_num) boxNum,
+ SUM(CASE WHEN so.order_type = 41 THEN so.box_num ELSE 0 END) AS boxNumReg,
+ SUM(CASE WHEN so.order_type = 42 THEN so.box_num ELSE 0 END) AS boxNumUpg,
+ SUM(CASE WHEN so.order_type = 43 THEN so.box_num ELSE 0 END) AS boxNumRep,
+ SUM(CASE WHEN so.order_type = 44 THEN so.box_num ELSE 0 END) AS boxNumCon,
+ so.pk_member pkMember
+ FROM sa_order so
+ WHERE so.del_flag = 0
+ AND so.ORDER_STATUS = 1
+ AND so.PAY_TIME >= to_date(#{staDate}, 'yyyy-mm-dd')
+ AND so.PAY_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
+ GROUP BY so.pk_member
+
+
+
- delete from ${tableName}
+ delete
+ from ${tableName}
- update ${tableName} set SUM_BOX=0,TEAM_SUM_BOX=0 where PK_MEMBER in(
- select PK_MEMBER from ${rangeTabeName} rag where enable_status=1
+ update ${tableName}
+ set SUM_BOX = 0,
+ TEAM_SUM_BOX = 0
+ where PK_MEMBER in (
+ select PK_MEMBER
+ from ${rangeTabeName} rag
+ where enable_status = 1
)
-
+
merge into ${tableName} cmab
- using ( SELECT rag.pk_member,
- rag.pk_parent,
- rag.CONSUME_PV SUM_PV,
- rag.CONSUME_BOX_NUM SUM_BOX,
- rag.TEAM_CONSUME_PV TEAM_SUM_PV,
- rag.TEAM_BOX_NUM TEAM_SUM_BOX,
- rag.TEAM_CONSUME_AMOUNT TEAM_SUM_AMOUNT,
- rag.BIG_BOX_NUM AS INFLATE_BIG_BOX,
- rag.SMALL_BOX_NUM AS INFLATE_SMALL_BOX,
- rag.PK_COUNTRY
- FROM ${rangeTabeName} rag
- ) tmp
+ using (SELECT rag.pk_member,
+ rag.pk_parent,
+ rag.CONSUME_PV SUM_PV,
+ rag.CONSUME_BOX_NUM SUM_BOX,
+ rag.TEAM_CONSUME_PV TEAM_SUM_PV,
+ rag.TEAM_BOX_NUM TEAM_SUM_BOX,
+ rag.TEAM_CONSUME_AMOUNT TEAM_SUM_AMOUNT,
+ rag.BIG_BOX_NUM AS INFLATE_BIG_BOX,
+ rag.SMALL_BOX_NUM AS INFLATE_SMALL_BOX,
+ rag.PK_COUNTRY
+ FROM ${rangeTabeName} rag
+ ) tmp
on (cmab.pk_member = tmp.pk_member)
when not matched then
insert
- (PK_MEMBER,PK_PARENT,SUM_PV,SUM_BOX,TEAM_SUM_PV,TEAM_SUM_BOX,TEAM_SUM_AMOUNT,
- INFLATE_BIG_BOX,
- INFLATE_SMALL_BOX,
- PK_COUNTRY)
+ (PK_MEMBER, PK_PARENT, SUM_PV, SUM_BOX, TEAM_SUM_PV, TEAM_SUM_BOX, TEAM_SUM_AMOUNT,
+ INFLATE_BIG_BOX,
+ INFLATE_SMALL_BOX,
+ PK_COUNTRY)
values (tmp.pk_member,
tmp.PK_PARENT,
tmp.SUM_PV,
@@ -1867,92 +1749,34 @@
tmp.TEAM_SUM_AMOUNT,
tmp.INFLATE_BIG_BOX,
tmp.INFLATE_SMALL_BOX,
- tmp.PK_COUNTRY
- )
+ tmp.PK_COUNTRY)
when matched then
update set cmab.SUM_BOX = tmp.SUM_BOX,
- cmab.SUM_PV = tmp.SUM_PV,
- cmab.TEAM_SUM_PV=tmp.TEAM_SUM_PV,
- cmab.TEAM_SUM_BOX=tmp.TEAM_SUM_BOX,
- cmab.TEAM_SUM_AMOUNT=tmp.TEAM_SUM_AMOUNT,
- cmab.INFLATE_BIG_BOX=tmp.INFLATE_BIG_BOX,
- cmab.INFLATE_SMALL_BOX=tmp.INFLATE_SMALL_BOX
+ cmab.SUM_PV = tmp.SUM_PV,
+ cmab.TEAM_SUM_PV = tmp.TEAM_SUM_PV,
+ cmab.TEAM_SUM_BOX = tmp.TEAM_SUM_BOX,
+ cmab.TEAM_SUM_AMOUNT = tmp.TEAM_SUM_AMOUNT,
+ cmab.INFLATE_BIG_BOX = tmp.INFLATE_BIG_BOX,
+ cmab.INFLATE_SMALL_BOX = tmp.INFLATE_SMALL_BOX
-
-
-
- SELECT min(t0.enable_status) enableStatus,
- #{pkMember} pkMember
- FROM (SELECT mr.enable_status
- FROM ${dpb.memberRetailTable} mr
- where mr.pk_member = #{pkMember}
-
- union all
- SELECT mrs.enable_status
- FROM ${dpb.memberRetailSTable} mrs
- where mrs.pk_member = #{pkMember}
-
- ) t0
-
-
-
-
-
- SELECT nvl(sum(totalAreaBox), 0) totalAreaBox
- FROM (SELECT NVL(mr.team_box_num + mr.consume_box_num, 0) totalAreaBox
- FROM ${memberRetailTable} mr
- WHERE mr.category = 0
- AND mr.pk_member = #{pkMember}
-
+
+
+
+ SELECT min(t0.enable_status) enableStatus,
+ #{pkMember} pkMember
+ FROM (SELECT mr.enable_status
+ FROM ${dpb.memberRetailTable} mr
+ where mr.pk_member = #{pkMember}
+
union all
- select NVL(rs.new_box_num + rs.team_new_box_num, 0) totalAreaBox
- from ${memberRetailSTable} rs
- where rs.pk_member = #{pkMember}
+ SELECT mrs.enable_status
+ FROM ${dpb.memberRetailSTable} mrs
+ where mrs.pk_member = #{pkMember}
- )
-
+ ) t0
+
-
- SELECT count(1)
- FROM (SELECT sr.team_box_num, sr.small_box_num, sr.period_date
- FROM cu_member_spe_retail sr
- where sr.del_flag = 0
- and sr.pk_country = 1
- and sr.period_date < TRUNC(SYSDATE)
- and sr.member_code = #{memberCode}
- ORDER BY sr.period_date desc) t0
- where rownum = 1
-
-
-
- SELECT NVL(mr.big_box_num, 0) smallAreaBox
- FROM ${memberRetailTable} mr
- WHERE mr.category = 0
- AND mr.pk_member = #{pkMember}
-
-
-
- SELECT nvl(max(smallAreaBox), 0) smallareabox
- from
- (
-
-
- union all
-
- SELECT nvl(sum(smallAreaBox), 0) smallAreaBox
- FROM (SELECT NVL(mr.consume_box_num, 0) smallAreaBox
- FROM ${memberRetailTable} mr
- WHERE mr.category = 0
- AND mr.pk_member = #{pkMember}
-
- union all
- select rs.new_box_num smallAreaBox
- from ${memberRetailSTable} rs
- where rs.pk_member = #{pkMember}
-
- )
- )
@@ -2003,6 +1827,4 @@
-
-
diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java
index cc89b47f..c4b592b2 100644
--- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java
+++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java
@@ -599,7 +599,6 @@ public class ApiRetailOrderController {
.channel(shoppingCartRedis.getSource())
.waresCode(shoppingCartRedis.getWaresCode())
.quantity(shoppingCartRedis.getNumber())
- .pkMakerSpace(shoppingCartRedis.getPkMakerSpace())
.build();
List waresItemsParamList = new ArrayList<>(shoppingCartRedis.getProductGroup().size());
for (ProductGroup productGroup : shoppingCartRedis.getProductGroup()) {
diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java
index a1e5bfa2..d6a50ced 100644
--- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java
+++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java
@@ -20,6 +20,7 @@ import com.hzs.common.domain.sale.ext.SaOrderWaresLimitExt;
import com.hzs.common.domain.sale.order.*;
import com.hzs.common.domain.sale.wares.BdWaresRange;
import com.hzs.common.domain.system.base.BdStorehouse;
+import com.hzs.common.domain.system.config.BdAwards;
import com.hzs.common.domain.system.config.BdGrade;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.account.IMemberAccountServiceApi;
@@ -40,6 +41,7 @@ import com.hzs.sale.wares.service.IBdWaresExtendService;
import com.hzs.sale.wares.service.IBdWaresRangeService;
import com.hzs.system.base.ICurrencyServiceApi;
import com.hzs.system.base.dto.CurrencyDTO;
+import com.hzs.system.config.IAwardsServiceApi;
import com.hzs.system.config.IGradeServiceApi;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
@@ -90,6 +92,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
@DubboReference
IGradeServiceApi iGradeServiceApi;
@DubboReference
+ IAwardsServiceApi iAwardsServiceApi;
+ @DubboReference
ICurrencyServiceApi iCurrencyServiceApi;
@DubboReference
IMemberServiceApi iMemberServiceApi;
@@ -217,8 +221,16 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 会员信息
if (null != cuMember) {
cuMember.setPkSettleGrade(newGrade.getPkId());
- if (cuMember.getPkAwards() == null) {
+ if (null == cuMember.getPkAwards()) {
+ // 新会员没有奖衔,则进行赋值
cuMember.setPkAwards(newGrade.getPkAwards());
+ } else {
+ // 老会员奖衔如果为无,也进行赋值
+ BdAwards bdAwards = iAwardsServiceApi.getAwardsOne(cuMember.getPkAwards()).getData();
+ if (EAwards.MEMBER.getValue() == bdAwards.getAwardsValue()
+ && EAwards.MEMBER.getValue() != newGrade.getPkAwards()) {
+ cuMember.setPkAwards(newGrade.getPkAwards());
+ }
}
}
}
@@ -226,37 +238,11 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
return saOrderExt;
}
- /**
- * 获取升级价格
- *
- * @param gradeList 等级列表
- * @param boxNum 购买盒数
- * @param baseBoxNum 基础盒数
- * @param updateGrade 升级等级
- * @return
- */
- private BigDecimal getUpGradePrice(List gradeList, int boxNum, int baseBoxNum, BdGrade updateGrade) {
- BigDecimal price;
- if (null != updateGrade) {
- // V4、V5直接给固定价格,不会因升级变动
- if (updateGrade.getGradeValue() == EGrade.S_VIP.getValue()) {
- price = ERetailWaresPrice.V5.getPrice();
- } else if (updateGrade.getGradeValue() == EGrade.VIP.getValue()) {
- price = ERetailWaresPrice.V4.getPrice();
- } else {
- price = this.getWaresPrice(baseBoxNum + boxNum, gradeList);
- }
- } else {
- price = this.getWaresPrice(baseBoxNum + boxNum, gradeList);
- }
- return price;
- }
-
@Override
public List createSaOrderItems(RetailOrderParam orderParam, List gradeList,
CuMember cuMember, SaOrderExt saOrderExt, CurrencyDTO currency) {
// 需要查询盒数商品
- List boxProductList = BoxProductUtil.getBoxProductListBySystemType(null);
+ List boxWaresList = BoxProductUtil.getBoxWaresListBySystemType(null);
// 订单明细信息
List orderItemsList = new ArrayList<>();
@@ -291,7 +277,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// }
// 当前盒数
- int boxNum = 0;
+ BigDecimal boxNum = BigDecimal.ZERO;
// // 2025.03.11 添加需求,复购专区、重消专区,指定盒数商品每用户每月限购50件
// this.checkWaresLimit(cuMember.getPkId(), orderParam.getSpecialArea(), waresDetailExtList, boxProductList);
@@ -315,9 +301,9 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
saOrderHandle.setPostageTmpMap(orderParam.getTranType(), postageMap, waresDetailExt, orderItems);
}
- if (boxProductList.contains(waresDetailExt.getWaresCode())) {
+ if (boxWaresList.contains(waresDetailExt.getWaresCode())) {
// 商品是盒数商品,需要累计数量
- boxNum += orderItems.getWaresQuantity();
+ boxNum = boxNum.add(waresDetailExt.getBoxNum().multiply(new BigDecimal(orderItems.getWaresQuantity())));
}
}
@@ -478,26 +464,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
}
}
- /**
- * 根据购买盒数,返回商品价格
- *
- * @param boxNum 盒数
- * @param gradeList 等级列表(倒序排序)
- * @return
- */
- private BigDecimal getWaresPrice(int boxNum, List gradeList) {
- // 去掉升级条件带有累计盒数的(V4,V5)并且升级购买合数小于等于订单商品盒数的,再进行等级值倒序排序
- gradeList = gradeList.stream().filter(tmpGrade -> tmpGrade.getBoxTotal() == 0 && tmpGrade.getBoxNumber() <= boxNum).sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed()).collect(Collectors.toList());
-
- for (BdGrade bdGrade : gradeList) {
- if (boxNum > bdGrade.getBoxNumber()) {
- // 盒数大于等于购买盒数
- return ERetailWaresPrice.getEnumByValue(bdGrade.getGradeValue()).getPrice();
- }
- }
- return ERetailWaresPrice.V0.getPrice();
- }
-
/**
* 封装订单信息
*
@@ -807,7 +773,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
Map waresLimitMap = new HashMap<>();
// 盒数商品
- List boxProductList = BoxProductUtil.getBoxProductListBySystemType(saOrderExt.getSystemType());
+ List boxProductList = BoxProductUtil.getBoxWaresListBySystemType(saOrderExt.getSystemType());
for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) {
saOrderItems.setPkOrder(saOrderExt.getPkId());
@@ -933,7 +899,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
&& (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType() || EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType())
) {
// 会员激活状态为空 或 未激活,并且是 注册、升级 订单,判断会员是否激活
- if (saOrder.getBoxNum() > 0) {
+ if (saOrder.getBoxNum().compareTo(BigDecimal.ZERO) > 0) {
// 存在指定盒数商品
cuMember.setIsActivate(EYesNo.YES.getIntValue());
if (EPayStatus.UNPAID.getValue() == cuMember.getPayStatus()) {
diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/ParentOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/ParentOrderController.java
index 18753424..5820e39d 100644
--- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/ParentOrderController.java
+++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/ParentOrderController.java
@@ -40,7 +40,6 @@ 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 com.hzs.system.base.dto.CurrencyDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
@@ -98,24 +97,19 @@ public abstract class ParentOrderController extends BaseController {
return orderItemsService;
}
-
/**
+ * 根据code、编码获取值
+ *
* @param code 查询的code
- * @Description: 根据code、编码获取值
- * @return: CuMember
- * @Author: sui q
- * @Date: 2022/8/30 8:48
*/
protected CuMember getCuMemberByCode(String code) {
return orderService.getCuMemberByCode(code);
}
/**
+ * 验证字段是否必输
+ *
* @param fieldList 需要验证的字段
- * @Description: 验证字段是否必输
- * @return: boolean
- * @Author: sui q
- * @Date: 2022/8/29 11:13
*/
protected boolean validateFieldNotNull(OrderParam orderParam, List fieldList) {
return fieldList.stream().anyMatch(field -> {
@@ -125,11 +119,9 @@ public abstract class ParentOrderController extends BaseController {
}
/**
+ * 验证手机号+姓名
+ *
* @param orderParam 手机号、姓名、安置人必输
- * @Description: 验证手机号+姓名
- * @return: AjaxResult
- * @Author: sui q
- * @Date: 2022/8/27 16:51
*/
protected AjaxResult validatePhone(OrderParam orderParam) {
if (StringUtils.isEmpty(orderParam.getPhone()) || StringUtils.isEmpty(orderParam.getMemberName())) {
@@ -190,11 +182,9 @@ public abstract class ParentOrderController extends BaseController {
}
/**
+ * 验证推荐编号,成功后返回姓名,如果首单返回安置人、安置部门
+ *
* @param orderParam 必须推荐人
- * @Description: 验证推荐编号,成功后返回姓名,如果首单返回安置人、安置部门
- * @return: AjaxResult
- * @Author: sui q
- * @Date: 2022/8/27 16:53
*/
protected AjaxResult validateReferenceRelation(OrderParam orderParam) {
if (StringUtils.isEmpty(orderParam.getParent())) {
@@ -264,11 +254,9 @@ public abstract class ParentOrderController extends BaseController {
}
/**
+ * 验证安置编号、安置部门,成功后返回姓名
+ *
* @param orderParam 必须安置人
- * @Description: 验证安置编号、安置部门,成功后返回姓名
- * @return: AjaxResult
- * @Author: sui q
- * @Date: 2022/8/27 16:53
*/
protected AjaxResult validatePlaceParentMemberCode(OrderParam orderParam) {
if (StringUtils.isEmpty(orderParam.getParent())) {
@@ -341,11 +329,9 @@ public abstract class ParentOrderController extends BaseController {
}
/**
+ * 验证需要注册的信息, 订单保存时需要调用的验证
+ *
* @param orderParam 所有信息
- * @Description: 验证需要注册的信息, 订单保存时需要调用的验证
- * @return: AjaxResult
- * @Author: sui q
- * @Date: 2022/9/2 16:15
*/
protected AjaxResult validateSaveMember(OrderParam orderParam) {
// 安置编号
@@ -375,9 +361,6 @@ public abstract class ParentOrderController extends BaseController {
/*
* 验证可用量,可用量不足,不能下单
- * @author: sui q
- * @date: 2023/12/14 17:49
- * @param: null null
**/
protected String validateAvailableNum(OrderParam orderParam, String orderCode) {
// 验证是否控制进销存
@@ -468,12 +451,10 @@ public abstract class ParentOrderController extends BaseController {
}
/**
+ * 对安置位置进行加锁预防位置重复
+ *
* @param placeParentId 安置人
* @param placeDept 安置位置
- * @Description: 对安置位置进行加锁预防位置重复
- * @return: void
- * @Author: sui q
- * @Date: 2022/9/5 9:20
*/
protected boolean validatePlacePosition(Long placeParentId, Integer placeDept) {
// 验证通过对安置人,安置部门加锁,防止同时安置引起错误,最后解锁
@@ -483,10 +464,6 @@ public abstract class ParentOrderController extends BaseController {
/**
* @param placeParentId 安置位置
* @param placeDept 安置部门
- * @Description:
- * @return: String
- * @Author: sui q
- * @Date: 2022/9/5 10:35
*/
private String getLockKey(Long placeParentId, Integer placeDept) {
return CacheConstants.POSITION +
@@ -495,11 +472,9 @@ public abstract class ParentOrderController extends BaseController {
}
/**
+ * 空单注册 验证权限,验证编号是否有报单权限
+ *
* @param centerCodeId 验证的权限
- * @Description: 空单注册 验证权限,验证编号是否有报单权限
- * @return: AjaxResult
- * @Author: sui q
- * @Date: 2022/8/27 16:53
*/
protected AjaxResult validateRegisterAuthority(Long centerCodeId, Integer specialArea) {
// 前台登录验证登录会员,后台空点验证输入的报单人
@@ -580,10 +555,6 @@ public abstract class ParentOrderController extends BaseController {
* 验证手机号注册次数
*
* @param cuMemberExtList 会员数量
- * @Description:
- * @return: Boolean
- * @Author: sui q
- * @Date: 2022/8/29 11:38
*/
private Boolean validatePhoneCount(List cuMemberExtList) {
// 判断次数,获取系统参数,从redis中获取系统参数
@@ -621,11 +592,9 @@ public abstract class ParentOrderController extends BaseController {
}
/**
+ * 验证升级关系,只能给自己或者自己安置伞下升级
+ *
* @param orderParam 前台传递的参数
- * @Description: 验证升级关系,只能给自己或者自己安置伞下升级
- * @return: boolean
- * @Author: sui q
- * @Date: 2023/1/10 14:05
*/
protected AjaxResult validateUpgradeRelation(OrderParam orderParam) {
CuMember upgradeMember = orderService.getCuMemberByCode(orderParam.getUpgradeMemberCode());
@@ -659,27 +628,16 @@ public abstract class ParentOrderController extends BaseController {
}
/**
+ * 查询订单返回值,用于支付
+ *
* @param saOrder 订单
* @param orderParam 参数
- * @Description: 查询订单返回值,用于支付
- * @return: OrderReturn
- * @Author: sui q
- * @Date: 2023/2/2 11:11
*/
protected OrderReturn getOrderReturn(SaOrder saOrder, OrderParam orderParam) {
// 封装订单信息
long maxPayTime = getOrderService().getIsToBePayTime(orderParam.getPkSettleCountry(), saOrder.getOrderType());
- // 剩余支付秒数
//查询带关闭参数
- // 获取行政区划map
- Integer pkLoginCountry = orderParam.getPkLoginSettleCountry();
BigDecimal orderAmount = saOrder.getOrderAmount();
- if (!Objects.equals(pkLoginCountry, saOrder.getPkCountry())) {
- // 结算国当地币 转美金 美金登录当地币
- CurrencyDTO loginCountryCurrency = currencyServiceApi.getCurrency(pkLoginCountry).getData();
- CurrencyDTO settleCountryCurrency = currencyServiceApi.getCurrency(saOrder.getPkCountry()).getData();
- orderAmount = ComputeUtil.computeMultiply(ComputeUtil.computeDivide(orderAmount, settleCountryCurrency.getInExchangeRate()), loginCountryCurrency.getInExchangeRate());
- }
Map areaMap = iAreaServiceApi.getAreaMap(orderParam.getPkSettleCountry()).getData();
OrderReturn orderReturn = OrderReturn.builder()
.orderCode(saOrder.getOrderCode())
@@ -724,7 +682,6 @@ public abstract class ParentOrderController extends BaseController {
.channel(shoppingCartRedis.getSource())
.waresCode(shoppingCartRedis.getWaresCode())
.quantity(shoppingCartRedis.getNumber())
- .pkMakerSpace(shoppingCartRedis.getPkMakerSpace())
.build();
List waresItemsParamList = new ArrayList<>(shoppingCartRedis.getProductGroup().size());
for (ProductGroup productGroup : shoppingCartRedis.getProductGroup()) {
diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java
index 401f32db..7f33d91f 100644
--- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java
+++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderBusinessController.java
@@ -671,11 +671,11 @@ public class SaOrderBusinessController extends BaseController {
return AjaxResult.error(checkStr);
}
- // 校验盒数商品与非盒数商品不能互换
- checkStr = iOrderBusinessService.checkOrderRetailProduct(param);
- if (null != checkStr) {
- return AjaxResult.error(checkStr);
- }
+// // 校验盒数商品与非盒数商品不能互换
+// checkStr = iOrderBusinessService.checkOrderRetailProduct(param);
+// if (null != checkStr) {
+// return AjaxResult.error(checkStr);
+// }
// 确认调换货物并发起审批
String str = iOrderBusinessService.changeProductApprovalSubmit(param, userTokenService.getLoginUser());
@@ -722,11 +722,11 @@ public class SaOrderBusinessController extends BaseController {
return AjaxResult.error(checkStr);
}
- // 校验盒数商品与非盒数商品不能互换
- checkStr = iOrderBusinessService.checkOrderRetailProduct(param);
- if (null != checkStr) {
- return AjaxResult.error(checkStr);
- }
+// // 校验盒数商品与非盒数商品不能互换
+// checkStr = iOrderBusinessService.checkOrderRetailProduct(param);
+// if (null != checkStr) {
+// return AjaxResult.error(checkStr);
+// }
// 调换货物不走签呈
String str = iOrderBusinessService.changeProductApprovalFreeSign(param, userTokenService.getLoginUser());
diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderItemsMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderItemsMapper.java
index caa08a22..f47c79d2 100644
--- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderItemsMapper.java
+++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderItemsMapper.java
@@ -14,6 +14,7 @@ import com.hzs.sale.order.param.WaresOrderParam;
import com.hzs.sale.order.vo.WaresOrderVo;
import org.apache.ibatis.annotations.Param;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -259,22 +260,6 @@ public interface SaOrderItemsMapper extends BaseMapper {
*/
List selectByWaresCodeList(@Param("orderCode") String orderCode);
- /**
- * 查询新零售购买指定商品数量
- *
- * @param pkMember 会员ID
- * @param waresCodeList 商品编号列表
- * @param payTime 支付时间(可为null)
- * @param orderTypeList 订单类型列表
- * @param systemType 系统类型(可为null)
- * @return
- */
- int getRetailWaresQuantity(@Param("pkMember") Long pkMember,
- @Param("waresCodeList") List waresCodeList,
- @Param("payTime") Date payTime,
- @Param("orderTypeList") List orderTypeList,
- @Param("systemType") Integer systemType);
-
/**
* 查询新零售购买指定商品数量(新)
*
@@ -285,11 +270,11 @@ public interface SaOrderItemsMapper extends BaseMapper {
* @param systemType 系统类型(可为null)
* @return
*/
- int getRetailWaresQuantityNew(@Param("pkMember") Long pkMember,
- @Param("waresCodeList") List waresCodeList,
- @Param("payTime") Date payTime,
- @Param("orderTypeList") List orderTypeList,
- @Param("systemType") Integer systemType);
+ BigDecimal getRetailWaresQuantityNew(@Param("pkMember") Long pkMember,
+ @Param("waresCodeList") List waresCodeList,
+ @Param("payTime") Date payTime,
+ @Param("orderTypeList") List orderTypeList,
+ @Param("systemType") Integer systemType);
/**
* 订单发货数量
diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/param/OrderItemsParam.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/param/OrderItemsParam.java
index 1440a51a..9d0a68eb 100644
--- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/param/OrderItemsParam.java
+++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/param/OrderItemsParam.java
@@ -6,6 +6,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.util.List;
/**
@@ -40,9 +41,9 @@ public class OrderItemsParam implements Serializable {
private Integer quantity;
/**
- * 创客空间id
+ * 商品盒数
*/
- private Long pkMakerSpace;
+ private BigDecimal boxNum;
/**
* 商品明细
diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderItemsService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderItemsService.java
index 63d71342..ff3d19e8 100644
--- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderItemsService.java
+++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderItemsService.java
@@ -14,6 +14,7 @@ import com.hzs.sale.order.param.WaresOrderParam;
import com.hzs.sale.order.vo.WaresOrderVo;
import org.apache.ibatis.annotations.Param;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -227,18 +228,6 @@ public interface ISaOrderItemsService extends IService {
*/
List selectByWaresCodeList(String orderCode);
- /**
- * 查询新零售购买指定商品数量
- *
- * @param pkMember 会员ID
- * @param waresCodeList 商品编号列表
- * @param payTime 支付时间(可为null)
- * @param orderTypeList 订单类型列表
- * @param systemType 系统类型(可为null)
- * @return
- */
- int getRetailWaresQuantity(Long pkMember, List waresCodeList, Date payTime, List orderTypeList, Integer systemType);
-
/**
* 查询新零售购买指定商品数量(新)
*
@@ -249,7 +238,7 @@ public interface ISaOrderItemsService extends IService {
* @param systemType 系统类型(可为null)
* @return
*/
- int getRetailWaresQuantityNew(Long pkMember, List waresCodeList, Date payTime, List orderTypeList, Integer systemType);
+ BigDecimal getRetailWaresQuantityNew(Long pkMember, List waresCodeList, Date payTime, List orderTypeList, Integer systemType);
/**
* 订单发货数量
diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java
index f1af7b88..3ad20739 100644
--- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java
+++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java
@@ -154,14 +154,14 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
@Override
public String checkOrderRetailProduct(OrderProductParam param) {
// 盒数商品对应的产品列表
- List pkProductList = iBdWaresService.listBoxProduct(BoxProductUtil.getBoxProductListBySystemType(null));
+ List pkProductList = iBdWaresService.listBoxProduct(BoxProductUtil.getBoxWaresListBySystemType(null));
// 换货产品列表
List paramProductList = param.getItemList().stream().map(OrderProductDetailParam::getPkProduct).collect(Collectors.toList());
SaOrder saOrder = iSaOrderService.getOne(Wrappers.lambdaQuery()
.eq(SaOrder::getOrderCode, param.getOrderCode())
);
- if (saOrder.getBoxNum() > 0) {
+ if (saOrder.getBoxNum().compareTo(BigDecimal.ZERO) > 0) {
// 盒数商品订单,换货的产品是否都是盒数商品下的,如果是则可以进行更换,如果不是则不能更换
for (Integer pkProduct : paramProductList) {
if (!pkProductList.contains(pkProduct)) {
@@ -2288,7 +2288,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
saOrderItems.setPkWaresSpecsSku(0);
// 2025.02.11 如果是盒数商品换货,需要更新成最新的盒数商品ID
- List tmpList = iBdWaresService.listBoxProductAndWares(BoxProductUtil.getBoxProductListBySystemType(null), saOrderItems.getPkProduct(), ESpecialArea.getRetailSpecialAreaValue(saOrder.getOrderType()));
+ List tmpList = iBdWaresService.listBoxProductAndWares(BoxProductUtil.getBoxWaresListBySystemType(null), saOrderItems.getPkProduct(), ESpecialArea.getRetailSpecialAreaValue(saOrder.getOrderType()));
if (CollectionUtil.isNotEmpty(tmpList)) {
saOrderItems.setPkWares(tmpList.get(0).getPkWares());
}
@@ -2313,9 +2313,10 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
// 调换货物选择不同产品,没有商品信息,此处先全部按默认值来处理
// 2025.02.11 如果盒数商品,历史商品ID不变,非盒数商品进行处理
- if (saOrder.getBoxNum() == 0) {
+ if (saOrder.getBoxNum().compareTo(BigDecimal.ZERO) == 0) {
saOrderItems.setPkWares(0);
}
+ saOrderItems.setPkWares(0);
saOrderItems.setPkWaresDetail(0);
saOrderItems.setPkWaresSpecsSku(0);
updateOrderItemsList.add(saOrderItems);
diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderItemsServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderItemsServiceImpl.java
index ce3f48ec..5b95d922 100644
--- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderItemsServiceImpl.java
+++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderItemsServiceImpl.java
@@ -20,6 +20,7 @@ import com.hzs.sale.order.vo.WaresOrderVo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.math.BigDecimal;
import java.util.*;
/**
@@ -189,12 +190,7 @@ public class SaOrderItemsServiceImpl extends ServiceImpl waresCodeList, Date payTime, List orderTypeList, Integer systemType) {
- return baseMapper.getRetailWaresQuantity(pkMember, waresCodeList, payTime, orderTypeList, systemType);
- }
-
- @Override
- public int getRetailWaresQuantityNew(Long pkMember, List waresCodeList, Date payTime, List orderTypeList, Integer systemType) {
+ public BigDecimal getRetailWaresQuantityNew(Long pkMember, List waresCodeList, Date payTime, List orderTypeList, Integer systemType) {
return baseMapper.getRetailWaresQuantityNew(pkMember, waresCodeList, payTime, orderTypeList, systemType);
}
diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java
index 12a8c761..7cad8626 100644
--- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java
+++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java
@@ -132,9 +132,9 @@ public class SaOrderServiceImpl extends ServiceImpl impl
IGradeServiceApi iGradeServiceApi;
@Autowired
- private IBdWaresService waresService;
+ private IBdWaresService iBdWaresService;
@Autowired
- private IBdWaresExtendService waresExtendService;
+ private IBdWaresExtendService iBdWaresExtendService;
@Autowired
private SaOrderHandle saOrderHandle;
@Autowired
@@ -1284,7 +1284,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl
List orderItems = orderBlankRegParams.getOrderItems();
for (SaOrderItems orderItem : orderItems) {
orderItem.setPkOrder(saOrder.getPkId());
- BdWares wares = waresService.getWares(orderItem.getPkWares());
+ BdWares wares = iBdWaresService.getWares(orderItem.getPkWares());
BdProductExtendExt productExtend = iBdProductExtendService.queryExtendAndProduct(orderItem.getPkProduct());
orderItem.setPkWares(wares.getPkId());
orderItem.setPrice(wares.getWaresPrice().multiply(new BigDecimal(orderItem.getQuantity())));
@@ -1922,7 +1922,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl
@Override
public void waresSalesAccrual(List waresNumberParamList) {
try {
- waresExtendService.updateWaresSalesAccrual(waresNumberParamList);
+ iBdWaresExtendService.updateWaresSalesAccrual(waresNumberParamList);
} catch (Exception e) {
e.printStackTrace();
}
@@ -2011,7 +2011,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl
}
}
if (waresCodeList.size() > 0) {
- List waresPreSaleVoList = waresExtendService.selectByWaresCodeList(waresCodeList, orderParam.getSpecialArea());
+ List waresPreSaleVoList = iBdWaresExtendService.selectByWaresCodeList(waresCodeList, orderParam.getSpecialArea());
if (CollectionUtil.isNotEmpty(waresPreSaleVoList)) {
Map waresPreSaleMap = waresPreSaleVoList.stream().collect(Collectors.toMap(WaresPreSaleVo::getWaresCode, Function.identity()));
for (OrderItemsParam orderItemsParam : orderParam.getOrderItemsParams()) {
@@ -2052,7 +2052,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl
}
}
if (waresCodeList.size() > 0) {
- List waresPreSaleVoList = waresExtendService.selectByWaresCodeList(waresCodeList, specialArea);
+ List waresPreSaleVoList = iBdWaresExtendService.selectByWaresCodeList(waresCodeList, specialArea);
if (CollectionUtil.isNotEmpty(waresPreSaleVoList)) {
Map waresPreSaleMap = waresPreSaleVoList.stream().collect(Collectors.toMap(WaresPreSaleVo::getWaresCode, Function.identity()));
for (OrderItemsParam orderItemsParam : orderItemsList) {
@@ -2066,7 +2066,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl
// 预售数量不足
return false;
} else {
- waresService.updatePreSaleQuantityByWaresCode(waresCode, orderItemsParam.getQuantity());
+ iBdWaresService.updatePreSaleQuantityByWaresCode(waresCode, orderItemsParam.getQuantity());
return true;
}
}
@@ -2412,7 +2412,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl
saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue());
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
// 复购订单存在盒数商品撤单,需要处理降级操作
- if (saOrderExt.getBoxNum() > 0) {
+ if (saOrderExt.getBoxNum().compareTo(BigDecimal.ZERO) > 0) {
// TODO 目前只有注册、升级才能激活,复购不进行处理
// Date firstDate = baseMapper.getFirstPayTime(cuMember.getPkId());
// if (null == firstDate) {
@@ -2462,7 +2462,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType() ||
EOrderType.RETAIL_CONSUME.getValue() == saOrderExt.getOrderType()) {
// 需要查询盒数商品
- List boxProductList = BoxProductUtil.getBoxProductListBySystemType(saOrderExt.getSystemType());
+ List boxProductList = BoxProductUtil.getBoxWaresListBySystemType(saOrderExt.getSystemType());
// 复购、重消订单处理限购
iSaOrderWaresLimitService.updateCancelOrder(saOrderExt.getPkId(), saOrderExt.getPkMember(), saOrderExt.getModifiedTime(), boxProductList);
}
@@ -2502,16 +2502,18 @@ public class SaOrderServiceImpl extends ServiceImpl impl
gradeList = iGradeServiceApi.getRetailGradeList().getData();
}
- // 盒数产品
- List boxProductList = BoxProductUtil.getBoxProductListBySystemType(systemType);
+ // 盒数商品
+ List boxWaresList = BoxProductUtil.getBoxWaresListBySystemType(systemType);
// 当前产品盒数
- int boxNum = 0;
+ BigDecimal boxNum = BigDecimal.ZERO;
+ // 处理商品盒数
+ this.handleWaresBoxNum(specialArea, orderItemsParams);
// 判断订单明细中指定产品数量,校验等级
for (OrderItemsParam orderItemsParam : orderItemsParams) {
- if (boxProductList.contains(orderItemsParam.getWaresCode())) {
+ if (boxWaresList.contains(orderItemsParam.getWaresCode())) {
// 存在指定商品,需要累计盒数
- boxNum += orderItemsParam.getQuantity();
+ boxNum = boxNum.add(orderItemsParam.getBoxNum().multiply(new BigDecimal(orderItemsParam.getQuantity())));
}
}
@@ -2528,7 +2530,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl
}
} else if (ESpecialArea.RETAIL_UPGRADE.getValue() == specialArea) {
// 升级专区,一次性补差升级
- if (boxNum == 0) {
+ if (boxNum.compareTo(BigDecimal.ZERO) == 0) {
// 不满足升级条件
throw new ServiceException("不满足升级条件");
}
@@ -2545,9 +2547,9 @@ public class SaOrderServiceImpl extends ServiceImpl impl
}
// 获取升级盒数基数
- int baseBoxNum = this.handleBaseBoxNum(updateGradeMember, memberGrade, gradeList, boxProductList, systemType);
+ BigDecimal baseBoxNum = this.handleBaseBoxNum(updateGradeMember, memberGrade, gradeList, boxWaresList, systemType);
// 计算等级
- bdGrade = this.getGradeByBox(boxNum + baseBoxNum, gradeList, memberGrade, true);
+ bdGrade = this.getGradeByBox(boxNum.add(baseBoxNum), gradeList, memberGrade, true);
if (bdGrade.getGradeValue().equals(memberGrade.getGradeValue())
&& (EGrade.HAI_FAN.getValue() == bdGrade.getGradeValue() || EGrade.YOU_KE.getValue() == bdGrade.getGradeValue())
@@ -2580,7 +2582,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl
* @param checkUpgrade 校验升级
* @return
*/
- private BdGrade getGradeByBox(final Integer boxTotal, List gradeList, BdGrade memberGrade, boolean checkUpgrade) {
+ private BdGrade getGradeByBox(final BigDecimal boxTotal, List gradeList, BdGrade memberGrade, boolean checkUpgrade) {
if (CollectionUtil.isEmpty(gradeList)) {
gradeList = iGradeServiceApi.getRetailGradeList().getData();
}
@@ -2589,7 +2591,7 @@ public class SaOrderServiceImpl extends ServiceImpl impl
// 注册处理
// 去掉 V4,V5 升级盒数小于购买盒数的最大一个等级为注册等级
return gradeList.stream()
- .filter(tmpGrade -> tmpGrade.getGradeValue() != EGrade.VIP.getValue() && tmpGrade.getGradeValue() != EGrade.S_VIP.getValue() && tmpGrade.getBoxNumber() <= boxTotal)
+ .filter(tmpGrade -> tmpGrade.getGradeValue() != EGrade.VIP.getValue() && tmpGrade.getGradeValue() != EGrade.S_VIP.getValue() && tmpGrade.getBoxNumber().compareTo(boxTotal) <= 0)
.max(Comparator.comparingInt(BdGrade::getGradeValue)).get();
} else {
// 非注册处理
@@ -2612,8 +2614,8 @@ public class SaOrderServiceImpl extends ServiceImpl impl
// new 2025.06.25 V1-V3升级多送两级,需要支持送完还能买,此处暂时注释掉
// .filter(tmpGrade -> tmpGrade.getGradeValue() > memberGrade.getGradeValue())
.sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed())
- .filter(tmpGrade -> tmpGrade.getBoxNumber() != 0)
- .filter(tmpGrade -> tmpGrade.getBoxNumber() <= boxTotal).findFirst();
+ .filter(tmpGrade -> tmpGrade.getBoxNumber().compareTo(BigDecimal.ZERO) > 0)
+ .filter(tmpGrade -> tmpGrade.getBoxNumber().compareTo(boxTotal) <= 0).findFirst();
return gradeOptional.orElse(memberGrade);
}
}
@@ -2622,17 +2624,17 @@ public class SaOrderServiceImpl extends ServiceImpl impl
/**
* 处理升级盒数基数
*
- * @param cuMember 会员信息
- * @param memberGrade 会员等级信息
- * @param gradeList 等级列表
- * @param boxProductList 盒数商品列表
- * @param systemType 所属系统
+ * @param cuMember 会员信息
+ * @param memberGrade 会员等级信息
+ * @param gradeList 等级列表
+ * @param boxWaresList 盒数商品列表
+ * @param systemType 所属系统
* @return
*/
- private int handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade, List gradeList, List boxProductList,
+ private BigDecimal handleBaseBoxNum(CuMember cuMember, BdGrade memberGrade, List gradeList, List boxWaresList,
Integer systemType) {
// 升级盒数基数
- int baseBoxNum = 0;
+ BigDecimal baseBoxNum = BigDecimal.ZERO;
// 会员所有升级记录
List memberLevelList = iCuMemberDetailServiceApi.getUpgradeList(cuMember.getPkId()).getData();
if (CollectionUtil.isNotEmpty(memberLevelList)) {
@@ -2646,11 +2648,18 @@ public class SaOrderServiceImpl extends ServiceImpl impl
throw new ServiceException("当前已经是可以购买的最高等级");
}
// 盒数基数 = 手动升级盒数 + 手动升级之后的升级订单盒数
- baseBoxNum = lastUpdateGrade.getBoxNumber()
- + saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxProductList, lastMemberLevel.getUpgradeTime(), Collections.singletonList(EOrderType.RETAIL_UPGRADE.getValue()), systemType);
+ BigDecimal oldBoxNum = saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, lastMemberLevel.getUpgradeTime(), Collections.singletonList(EOrderType.RETAIL_UPGRADE.getValue()), systemType);
+ if (null != oldBoxNum) {
+ baseBoxNum = lastUpdateGrade.getBoxNumber().add(oldBoxNum);
+ } else {
+ baseBoxNum = lastUpdateGrade.getBoxNumber();
+ }
} else {
// 没有手动升级记录
- baseBoxNum = saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxProductList, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()), systemType);
+ BigDecimal oldBoxNum = saOrderItemsService.getRetailWaresQuantityNew(cuMember.getPkId(), boxWaresList, null, Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue()), systemType);
+ if (null != oldBoxNum) {
+ baseBoxNum = oldBoxNum;
+ }
}
}
return baseBoxNum;
@@ -2722,626 +2731,626 @@ public class SaOrderServiceImpl extends ServiceImpl impl
// return 0;
}
- /**
- * 处理日升级新
- *
- * @param cuMember 会员信息
- * @param oldLevel 旧等级
- * @param lastLevel 新等级(可为null)
- * @param manualUpgradeLevel 手动升级等级(可为null)
- * @param queryStartTime 查询开始时间
- * @param queryEndTime 查询结束时间
- * @param gradeList 等级列表
- * @param createLevelList 创建升级记录列表
- * @return
- */
- private BdGrade handleTodayGrade(CuMember cuMember, Integer oldLevel, Integer lastLevel, Integer manualUpgradeLevel, Date queryStartTime, Date queryEndTime,
- List gradeList, List createLevelList) {
- // 升级之前对应的等级(如果有值则是等级值,如果没有默认V0)
- Optional tmpGradeOptional = gradeList.stream().filter(tmp -> tmp.getPkId().equals(oldLevel)).findFirst();
- BdGrade oldGrade = tmpGradeOptional.orElseGet(() -> this.getGrade(EGrade.START_UP, gradeList));
- // 最终计算等级(如果没有默认为V3)
- BdGrade endGrade = null != lastLevel ? this.getGrade(lastLevel, gradeList) : this.getGrade(EGrade.MAKER, gradeList);
- // 获取需要处理的等级(大于升级记录的旧等级,小于等于升级记录的新等级)
- List lowGradeList = gradeList.stream()
- .filter(tmp -> (tmp.getGradeValue() > oldGrade.getGradeValue() && tmp.getGradeValue() <= endGrade.getGradeValue()))
- .collect(Collectors.toList());
+// /**
+// * 处理日升级新
+// *
+// * @param cuMember 会员信息
+// * @param oldLevel 旧等级
+// * @param lastLevel 新等级(可为null)
+// * @param manualUpgradeLevel 手动升级等级(可为null)
+// * @param queryStartTime 查询开始时间
+// * @param queryEndTime 查询结束时间
+// * @param gradeList 等级列表
+// * @param createLevelList 创建升级记录列表
+// * @return
+// */
+// private BdGrade handleTodayGrade(CuMember cuMember, Integer oldLevel, Integer lastLevel, Integer manualUpgradeLevel, Date queryStartTime, Date queryEndTime,
+// List gradeList, List createLevelList) {
+// // 升级之前对应的等级(如果有值则是等级值,如果没有默认V0)
+// Optional tmpGradeOptional = gradeList.stream().filter(tmp -> tmp.getPkId().equals(oldLevel)).findFirst();
+// BdGrade oldGrade = tmpGradeOptional.orElseGet(() -> this.getGrade(EGrade.START_UP, gradeList));
+// // 最终计算等级(如果没有默认为V3)
+// BdGrade endGrade = null != lastLevel ? this.getGrade(lastLevel, gradeList) : this.getGrade(EGrade.MAKER, gradeList);
+// // 获取需要处理的等级(大于升级记录的旧等级,小于等于升级记录的新等级)
+// List lowGradeList = gradeList.stream()
+// .filter(tmp -> (tmp.getGradeValue() > oldGrade.getGradeValue() && tmp.getGradeValue() <= endGrade.getGradeValue()))
+// .collect(Collectors.toList());
+//
+// BdGrade newGrade = oldGrade;
+//
+// if (CollectionUtil.isNotEmpty(lowGradeList)) {
+// // 查询撤单当天的注册、复购订单
+// List orderList = this.list(Wrappers.lambdaQuery()
+// .eq(SaOrder::getPkMember, cuMember.getPkId())
+// .eq(SaOrder::getOrderStatus, EPayStatus.PAID.getValue())
+// .in(SaOrder::getOrderType, EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_REPURCHASE.getValue())
+// .ge(SaOrder::getPayTime, queryStartTime)
+// .le(SaOrder::getPayTime, queryEndTime)
+// .orderByAsc(SaOrder::getPayTime)
+// );
+//
+// if (CollectionUtil.isNotEmpty(orderList)) {
+// // 订单购买时间和手动升级记录之间有订单,需要重算中间的等级
+// // 取倒序(V3,V2,V1)
+// lowGradeList.sort(Comparator.comparing(BdGrade::getGradeValue).reversed());
+//
+// SaOrder orderV1 = null;
+// SaOrder orderV2 = null;
+// SaOrder orderV3 = null;
+// // 旧等级盒数
+// int oldGradeBox = oldGrade.getBoxNumber();
+// // 如果存在手动升级,则以手动升级为基数
+// if (null != manualUpgradeLevel) {
+// int tmpBox = this.getGrade(manualUpgradeLevel, gradeList).getBoxNumber();
+// if (tmpBox != 0) {
+// oldGradeBox = tmpBox;
+// }
+// }
+//
+// orderFor:
+// for (SaOrder saOrder : orderList) {
+// // 累积盒数,校验等级
+// oldGradeBox += saOrder.getBoxNum();
+//
+// for (BdGrade tmpGrade : lowGradeList) {
+// if (oldGradeBox >= tmpGrade.getBoxNumber()) {
+// if (EGrade.MAKER.getValue() == tmpGrade.getGradeValue()) {
+// // V3订单
+// orderV3 = saOrder;
+// // 达到V3等级,直接结束
+// break orderFor;
+// } else if (null == orderV2 && EGrade.YOU_KE.getValue() == tmpGrade.getGradeValue()) {
+// // V2订单
+// orderV2 = saOrder;
+// // 达到V2等级,V1就不需要处理了,直接处理下次订单
+// break;
+// } else if (null == orderV1 && EGrade.HAI_FAN.getValue() == tmpGrade.getGradeValue()) {
+// // V1订单
+// orderV1 = saOrder;
+// }
+// }
+// }
+// }
+//
+// BdGrade gradeV1 = this.getGrade(EGrade.HAI_FAN, gradeList);
+// BdGrade gradeV2 = this.getGrade(EGrade.YOU_KE, gradeList);
+// BdGrade gradeV3 = this.getGrade(EGrade.MAKER, gradeList);
+// if (null != orderV1) {
+// // V1等级订单
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
+// newGrade = gradeV1;
+// if (null != orderV2) {
+// // V2等级订单
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV2, gradeV1.getPkId(), gradeV2.getPkId()));
+// newGrade = gradeV2;
+// if (null != orderV3) {
+// // V3等级订单
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+// } else {
+// // 没有V2等级订单
+// if (null != orderV3) {
+// // V3等级订单
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV1.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+// }
+// } else if (null != orderV2) {
+// // V2等级订单
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
+// newGrade = gradeV2;
+// if (null != orderV3) {
+// // V3等级订单
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+// } else if (null != orderV3) {
+// // V3等级订单
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+// }
+// }
+//
+// return newGrade;
+// }
- BdGrade newGrade = oldGrade;
+// /**
+// * 处理日升级后每天升级
+// *
+// * @param cuMember
+// * @param oldGrade
+// * @param queryStartTime
+// * @param queryEndTime
+// * @param memberLevelList
+// * @param gradeList
+// * @param createLevelList
+// * @param deleteLevelList
+// * @return
+// */
+// private BdGrade handleTodayNextNew(CuMember cuMember, BdGrade oldGrade, Date queryStartTime, Date queryEndTime,
+// List memberLevelList, List gradeList,
+// List createLevelList, List deleteLevelList) {
+// if (queryStartTime.compareTo(new Date()) >= 0) {
+// // 查询时间大于等于当前时间了,则结束处理
+// return oldGrade;
+// }
+//
+// // 订单购买当天所有升级记录
+// List todayLevelList = memberLevelList.stream()
+// .filter(tmp -> (tmp.getUpgradeTime().compareTo(queryStartTime) >= 0 && tmp.getUpgradeTime().compareTo(queryEndTime) <= 0))
+// .collect(Collectors.toList());
+// if (CollectionUtil.isNotEmpty(todayLevelList)) {
+// // 处理当日等级
+// Integer oldLevel = oldGrade.getPkId();
+// Integer lastLevel = todayLevelList.get(todayLevelList.size() - 1).getNewLevel();
+// // 手动升级记录
+// Integer manualUpgradeLevel = null;
+//
+// // 当天最后一条手动升级记录
+// Optional manualUpgradeOptional = todayLevelList.stream()
+// .filter(tmp -> EUpgradeType.MANUAL_UPGRADE.getValue() == tmp.getUpType())
+// .max(Comparator.comparing(CuMemberLevel::getUpgradeTime));
+// if (manualUpgradeOptional.isPresent()) {
+// // 存在手动升级记录(计算等级为手动升级盒数为基数 + 当天购买的订单盒数)
+// // 删除升级记录时,只删除非手动升级的
+// deleteLevelList.addAll(todayLevelList.stream()
+// .filter(tmp -> EUpgradeType.MANUAL_UPGRADE.getValue() != tmp.getUpType())
+// .collect(Collectors.toList()));
+// // 重算订单当天升级记录(存在手动升级)
+// manualUpgradeLevel = manualUpgradeOptional.get().getNewLevel();
+// } else {
+// // 不存在手动升级记录(当天购买的订单盒数)
+// deleteLevelList.addAll(todayLevelList);
+// }
+//
+// // 今天重算等级
+// oldGrade = this.handleTodayGrade(cuMember, oldLevel, lastLevel, manualUpgradeLevel,
+// queryStartTime, queryEndTime, gradeList, createLevelList);
+// if (lastLevel.equals(oldGrade.getPkId())) {
+// // 重算之后和重算之前等级一致,直接返回当前会员等级
+// return oldGrade;
+// }
+// }
+//
+// return this.handleTodayNextNew(cuMember, oldGrade, DateUtils.addDays(queryStartTime, 1), DateUtils.addDays(queryEndTime, 1),
+// memberLevelList, gradeList, createLevelList, deleteLevelList);
+// }
- if (CollectionUtil.isNotEmpty(lowGradeList)) {
- // 查询撤单当天的注册、复购订单
- List orderList = this.list(Wrappers.lambdaQuery()
- .eq(SaOrder::getPkMember, cuMember.getPkId())
- .eq(SaOrder::getOrderStatus, EPayStatus.PAID.getValue())
- .in(SaOrder::getOrderType, EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_REPURCHASE.getValue())
- .ge(SaOrder::getPayTime, queryStartTime)
- .le(SaOrder::getPayTime, queryEndTime)
- .orderByAsc(SaOrder::getPayTime)
- );
+// /**
+// * 处理首日升级
+// *
+// * @param cuMember 会员信息
+// * @param oldLevel 旧等级
+// * @param lastLevel 最大等级
+// * @param queryTime 查询开始时间
+// * @param queryEndTime 查询结束时间
+// * @param gradeList 等级列表
+// * @param createLevelList 创建升级记录
+// * @return
+// */
+// private BdGrade handleToday(CuMember cuMember, Integer oldLevel, Integer lastLevel, Date queryTime, Date queryEndTime,
+// List gradeList, List createLevelList) {
+// // 存在手动升级,只需要重算手动升级之前的
+// // 升级之前对应的等级(如果有值则是等级值,如果没有默认V0)
+// Optional tmpGradeOptional = gradeList.stream().filter(tmp -> tmp.getPkId().equals(oldLevel)).findFirst();
+// BdGrade oldGrade = tmpGradeOptional.orElseGet(() -> this.getGrade(EGrade.START_UP, gradeList));
+// // 最终计算等级(如果没有默认为V3)
+// BdGrade endGrade = null != lastLevel ? this.getGrade(lastLevel, gradeList) : this.getGrade(EGrade.MAKER, gradeList);
+// // 获取需要处理的等级(大于升级记录的旧等级,小于等于升级记录的新等级)
+// List lowGradeList = gradeList.stream()
+// .filter(tmp -> (tmp.getGradeValue() > oldGrade.getGradeValue() && tmp.getGradeValue() <= endGrade.getGradeValue()))
+// .collect(Collectors.toList());
+//
+// BdGrade newGrade = oldGrade;
+//
+// if (CollectionUtil.isNotEmpty(lowGradeList)) {
+// // 查询大于升级时间,小于当天手动升级时间,全部订单
+// List orderList = this.list(Wrappers.lambdaQuery()
+// .eq(SaOrder::getPkMember, cuMember.getPkId())
+// .eq(SaOrder::getOrderStatus, EPayStatus.PAID.getValue())
+// .eq(SaOrder::getOrderType, EOrderType.RETAIL_REPURCHASE.getValue())
+// .ge(SaOrder::getPayTime, queryTime)
+// .le(SaOrder::getPayTime, queryEndTime)
+// .orderByAsc(SaOrder::getPayTime)
+// );
+//
+// if (CollectionUtil.isNotEmpty(orderList)) {
+// // 订单购买时间和手动升级记录之间有订单,需要重算中间的等级
+// // 取倒序(V3,V2,V1)
+// lowGradeList.sort(Comparator.comparing(BdGrade::getGradeValue).reversed());
+//
+// SaOrder orderV1 = null;
+// SaOrder orderV2 = null;
+// SaOrder orderV3 = null;
+// // 旧等级盒数
+// int oldGradeBox = oldGrade.getBoxNumber();
+//
+// orderFor:
+// for (SaOrder saOrder : orderList) {
+// // 累积盒数,校验等级
+// oldGradeBox += saOrder.getBoxNum();
+//
+// for (BdGrade tmpGrade : lowGradeList) {
+// if (oldGradeBox >= tmpGrade.getBoxNumber()) {
+// if (EGrade.MAKER.getValue() == tmpGrade.getGradeValue()) {
+// // V3订单
+// orderV3 = saOrder;
+// // 达到V3等级,直接结束
+// break orderFor;
+// } else if (null == orderV2 && EGrade.YOU_KE.getValue() == tmpGrade.getGradeValue()) {
+// // V2订单
+// orderV2 = saOrder;
+// // 达到V2等级,V1就不需要处理了,直接处理下次订单
+// break;
+// } else if (null == orderV1 && EGrade.HAI_FAN.getValue() == tmpGrade.getGradeValue()) {
+// // V1订单
+// orderV1 = saOrder;
+// }
+// }
+//
+// }
+// }
+//
+// BdGrade gradeV1 = this.getGrade(EGrade.HAI_FAN, gradeList);
+// BdGrade gradeV2 = this.getGrade(EGrade.YOU_KE, gradeList);
+// BdGrade gradeV3 = this.getGrade(EGrade.MAKER, gradeList);
+// if (null != orderV1) {
+// // V1等级订单
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
+// newGrade = gradeV1;
+// if (null != orderV2) {
+// // V2等级订单
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV2, gradeV1.getPkId(), gradeV2.getPkId()));
+// newGrade = gradeV2;
+// if (null != orderV3) {
+// // V3等级订单
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+// } else {
+// // 没有V2等级订单
+// if (null != orderV3) {
+// // V3等级订单
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV1.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+// }
+// } else if (null != orderV2) {
+// // V2等级订单
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
+// newGrade = gradeV2;
+// if (null != orderV3) {
+// // V3等级订单
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+// } else if (null != orderV3) {
+// // V3等级订单
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+// }
+// }
+// return newGrade;
+// }
- if (CollectionUtil.isNotEmpty(orderList)) {
- // 订单购买时间和手动升级记录之间有订单,需要重算中间的等级
- // 取倒序(V3,V2,V1)
- lowGradeList.sort(Comparator.comparing(BdGrade::getGradeValue).reversed());
+// /**
+// * 首日等级有变化,处理次日升级
+// *
+// * @param cuMember 会员信息
+// * @param oldLevel 旧等级
+// * @param lastLevel 最大等级
+// * @param queryTime 查询开始时间
+// * @param queryEndTime 查询结束时间
+// * @param gradeList 等级列表
+// * @param createLevelList 创建升级记录
+// * @return
+// */
+// private BdGrade handleTodayNext(CuMember cuMember, Integer oldLevel, Integer lastLevel, Date queryTime, Date queryEndTime,
+// List gradeList, List createLevelList) {
+// // 次日升级之前的等级
+// BdGrade oldGrade = this.getGrade(oldLevel, gradeList);
+// // 最终计算等级(如果没有默认为V3)
+// BdGrade endGrade = null != lastLevel ? this.getGrade(lastLevel, gradeList) : this.getGrade(EGrade.MAKER, gradeList);
+// // 获取需要处理的等级(大于升级记录的旧等级,小于等于升级记录的新等级)
+// List lowGradeList = gradeList.stream()
+// .filter(tmp -> (tmp.getGradeValue() > oldGrade.getGradeValue() && tmp.getGradeValue() <= endGrade.getGradeValue()))
+// .collect(Collectors.toList());
+//
+// BdGrade newGrade = oldGrade;
+//
+// if (CollectionUtil.isNotEmpty(lowGradeList)) {
+// // 查询大于升级时间,小于当天手动升级时间,全部订单
+// List orderList = this.list(Wrappers.lambdaQuery()
+// .eq(SaOrder::getPkMember, cuMember.getPkId())
+// .eq(SaOrder::getOrderStatus, EPayStatus.PAID.getValue())
+// .eq(SaOrder::getOrderType, EOrderType.RETAIL_REPURCHASE.getValue())
+// .ge(SaOrder::getPayTime, queryTime)
+// .le(SaOrder::getPayTime, null != queryEndTime ? queryEndTime : new Date())
+// .orderByAsc(SaOrder::getPayTime)
+// );
+//
+// if (CollectionUtil.isNotEmpty(orderList)) {
+// // 升级记录以后有订单,才进行级别处理
+// // 取倒序(V3,V2,V1)
+// lowGradeList.sort(Comparator.comparing(BdGrade::getGradeValue).reversed());
+//
+// SaOrder orderV1 = null;
+// SaOrder orderV2 = null;
+// SaOrder orderV3 = null;
+// // 旧等级盒数
+// int oldGradeBox = oldGrade.getBoxNumber();
+//
+// orderFor:
+// for (SaOrder saOrder : orderList) {
+// for (BdGrade tmpGrade : lowGradeList) {
+// if (saOrder.getBoxNum() >= (tmpGrade.getBoxNumber() - oldGradeBox)) {
+// if (EGrade.MAKER.getValue() == tmpGrade.getGradeValue()) {
+// // V3订单
+// orderV3 = saOrder;
+// // 达到V3等级,直接结束
+// break orderFor;
+// } else if (null == orderV2 && EGrade.YOU_KE.getValue() == tmpGrade.getGradeValue()) {
+// // V2订单
+// orderV2 = saOrder;
+// oldGradeBox = tmpGrade.getBoxNumber();
+// // 达到V2等级,V1就不需要处理了,直接处理下次订单
+// break;
+// } else if (null == orderV1 && EGrade.HAI_FAN.getValue() == tmpGrade.getGradeValue()) {
+// // V1订单
+// orderV1 = saOrder;
+// oldGradeBox = tmpGrade.getBoxNumber();
+// }
+// }
+// }
+// }
+//
+// BdGrade gradeV1 = this.getGrade(EGrade.HAI_FAN, gradeList);
+// BdGrade gradeV2 = this.getGrade(EGrade.YOU_KE, gradeList);
+// BdGrade gradeV3 = this.getGrade(EGrade.MAKER, gradeList);
+// if (null != orderV1) {
+// // 有V1等级订单
+// if (null != orderV2) {
+// // 有V2等级订单
+// if (orderV1.getPkId().equals(orderV2.getPkId())) {
+// // V1和V2订单相同,只处理V2
+// if (null != orderV3) {
+// // 有V3等级订单
+// if (orderV2.getPkId().equals(orderV3.getPkId())) {
+// // V2和V3订单相同,只处理V3
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// } else {
+// // V2和V3订单不相同,先处理V2,再处理V3
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+// } else {
+// // 没有V3等级订单,只处理V2
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
+// newGrade = gradeV2;
+// }
+// } else {
+// // V1和V2订单不相同
+// if (null != orderV3) {
+// // 有V3等级订单
+// if (orderV2.getPkId().equals(orderV3.getPkId())) {
+// // V2和V3等级相同,先处理V1,再处理V3
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV1.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// } else {
+// // V2和V3等级不相同,先处理V1,再处理V2,最后处理V3
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV2, gradeV1.getPkId(), gradeV2.getPkId()));
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+// } else {
+// // 没有V3等级订单,处理V1 V2
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV2, gradeV1.getPkId(), gradeV2.getPkId()));
+// newGrade = gradeV2;
+// }
+// }
+// } else {
+// // 没有V2等级订单,只处理V1
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
+// newGrade = gradeV1;
+// }
+// } else if (null != orderV2) {
+// // 有V2等级订单,V1没有
+// if (null != orderV3) {
+// // 有V3等级订单
+// if (orderV2.getPkId().equals(orderV3.getPkId())) {
+// // V2和V3订单相同,只处理V3
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// } else {
+// // V2和V3订单不相同,先处理V2,再处理V3
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+// } else {
+// // 没有V3,只处理V2
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
+// newGrade = gradeV2;
+// }
+// } else if (null != orderV3) {
+// // 有V3等级订单,V1、V2没有
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+// }
+// }
+//
+// return newGrade;
+// }
- SaOrder orderV1 = null;
- SaOrder orderV2 = null;
- SaOrder orderV3 = null;
- // 旧等级盒数
- int oldGradeBox = oldGrade.getBoxNumber();
- // 如果存在手动升级,则以手动升级为基数
- if (null != manualUpgradeLevel) {
- int tmpBox = this.getGrade(manualUpgradeLevel, gradeList).getBoxNumber();
- if (tmpBox != 0) {
- oldGradeBox = tmpBox;
- }
- }
-
- orderFor:
- for (SaOrder saOrder : orderList) {
- // 累积盒数,校验等级
- oldGradeBox += saOrder.getBoxNum();
-
- for (BdGrade tmpGrade : lowGradeList) {
- if (oldGradeBox >= tmpGrade.getBoxNumber()) {
- if (EGrade.MAKER.getValue() == tmpGrade.getGradeValue()) {
- // V3订单
- orderV3 = saOrder;
- // 达到V3等级,直接结束
- break orderFor;
- } else if (null == orderV2 && EGrade.YOU_KE.getValue() == tmpGrade.getGradeValue()) {
- // V2订单
- orderV2 = saOrder;
- // 达到V2等级,V1就不需要处理了,直接处理下次订单
- break;
- } else if (null == orderV1 && EGrade.HAI_FAN.getValue() == tmpGrade.getGradeValue()) {
- // V1订单
- orderV1 = saOrder;
- }
- }
- }
- }
-
- BdGrade gradeV1 = this.getGrade(EGrade.HAI_FAN, gradeList);
- BdGrade gradeV2 = this.getGrade(EGrade.YOU_KE, gradeList);
- BdGrade gradeV3 = this.getGrade(EGrade.MAKER, gradeList);
- if (null != orderV1) {
- // V1等级订单
- createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
- newGrade = gradeV1;
- if (null != orderV2) {
- // V2等级订单
- createLevelList.add(this.packageMemberLevel(cuMember, orderV2, gradeV1.getPkId(), gradeV2.getPkId()));
- newGrade = gradeV2;
- if (null != orderV3) {
- // V3等级订单
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
- } else {
- // 没有V2等级订单
- if (null != orderV3) {
- // V3等级订单
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV1.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
- }
- } else if (null != orderV2) {
- // V2等级订单
- createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
- newGrade = gradeV2;
- if (null != orderV3) {
- // V3等级订单
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
- } else if (null != orderV3) {
- // V3等级订单
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
- }
- }
-
- return newGrade;
- }
-
- /**
- * 处理日升级后每天升级
- *
- * @param cuMember
- * @param oldGrade
- * @param queryStartTime
- * @param queryEndTime
- * @param memberLevelList
- * @param gradeList
- * @param createLevelList
- * @param deleteLevelList
- * @return
- */
- private BdGrade handleTodayNextNew(CuMember cuMember, BdGrade oldGrade, Date queryStartTime, Date queryEndTime,
- List memberLevelList, List gradeList,
- List createLevelList, List deleteLevelList) {
- if (queryStartTime.compareTo(new Date()) >= 0) {
- // 查询时间大于等于当前时间了,则结束处理
- return oldGrade;
- }
-
- // 订单购买当天所有升级记录
- List todayLevelList = memberLevelList.stream()
- .filter(tmp -> (tmp.getUpgradeTime().compareTo(queryStartTime) >= 0 && tmp.getUpgradeTime().compareTo(queryEndTime) <= 0))
- .collect(Collectors.toList());
- if (CollectionUtil.isNotEmpty(todayLevelList)) {
- // 处理当日等级
- Integer oldLevel = oldGrade.getPkId();
- Integer lastLevel = todayLevelList.get(todayLevelList.size() - 1).getNewLevel();
- // 手动升级记录
- Integer manualUpgradeLevel = null;
-
- // 当天最后一条手动升级记录
- Optional manualUpgradeOptional = todayLevelList.stream()
- .filter(tmp -> EUpgradeType.MANUAL_UPGRADE.getValue() == tmp.getUpType())
- .max(Comparator.comparing(CuMemberLevel::getUpgradeTime));
- if (manualUpgradeOptional.isPresent()) {
- // 存在手动升级记录(计算等级为手动升级盒数为基数 + 当天购买的订单盒数)
- // 删除升级记录时,只删除非手动升级的
- deleteLevelList.addAll(todayLevelList.stream()
- .filter(tmp -> EUpgradeType.MANUAL_UPGRADE.getValue() != tmp.getUpType())
- .collect(Collectors.toList()));
- // 重算订单当天升级记录(存在手动升级)
- manualUpgradeLevel = manualUpgradeOptional.get().getNewLevel();
- } else {
- // 不存在手动升级记录(当天购买的订单盒数)
- deleteLevelList.addAll(todayLevelList);
- }
-
- // 今天重算等级
- oldGrade = this.handleTodayGrade(cuMember, oldLevel, lastLevel, manualUpgradeLevel,
- queryStartTime, queryEndTime, gradeList, createLevelList);
- if (lastLevel.equals(oldGrade.getPkId())) {
- // 重算之后和重算之前等级一致,直接返回当前会员等级
- return oldGrade;
- }
- }
-
- return this.handleTodayNextNew(cuMember, oldGrade, DateUtils.addDays(queryStartTime, 1), DateUtils.addDays(queryEndTime, 1),
- memberLevelList, gradeList, createLevelList, deleteLevelList);
- }
-
- /**
- * 处理首日升级
- *
- * @param cuMember 会员信息
- * @param oldLevel 旧等级
- * @param lastLevel 最大等级
- * @param queryTime 查询开始时间
- * @param queryEndTime 查询结束时间
- * @param gradeList 等级列表
- * @param createLevelList 创建升级记录
- * @return
- */
- private BdGrade handleToday(CuMember cuMember, Integer oldLevel, Integer lastLevel, Date queryTime, Date queryEndTime,
- List gradeList, List createLevelList) {
- // 存在手动升级,只需要重算手动升级之前的
- // 升级之前对应的等级(如果有值则是等级值,如果没有默认V0)
- Optional tmpGradeOptional = gradeList.stream().filter(tmp -> tmp.getPkId().equals(oldLevel)).findFirst();
- BdGrade oldGrade = tmpGradeOptional.orElseGet(() -> this.getGrade(EGrade.START_UP, gradeList));
- // 最终计算等级(如果没有默认为V3)
- BdGrade endGrade = null != lastLevel ? this.getGrade(lastLevel, gradeList) : this.getGrade(EGrade.MAKER, gradeList);
- // 获取需要处理的等级(大于升级记录的旧等级,小于等于升级记录的新等级)
- List lowGradeList = gradeList.stream()
- .filter(tmp -> (tmp.getGradeValue() > oldGrade.getGradeValue() && tmp.getGradeValue() <= endGrade.getGradeValue()))
- .collect(Collectors.toList());
-
- BdGrade newGrade = oldGrade;
-
- if (CollectionUtil.isNotEmpty(lowGradeList)) {
- // 查询大于升级时间,小于当天手动升级时间,全部订单
- List orderList = this.list(Wrappers.lambdaQuery()
- .eq(SaOrder::getPkMember, cuMember.getPkId())
- .eq(SaOrder::getOrderStatus, EPayStatus.PAID.getValue())
- .eq(SaOrder::getOrderType, EOrderType.RETAIL_REPURCHASE.getValue())
- .ge(SaOrder::getPayTime, queryTime)
- .le(SaOrder::getPayTime, queryEndTime)
- .orderByAsc(SaOrder::getPayTime)
- );
-
- if (CollectionUtil.isNotEmpty(orderList)) {
- // 订单购买时间和手动升级记录之间有订单,需要重算中间的等级
- // 取倒序(V3,V2,V1)
- lowGradeList.sort(Comparator.comparing(BdGrade::getGradeValue).reversed());
-
- SaOrder orderV1 = null;
- SaOrder orderV2 = null;
- SaOrder orderV3 = null;
- // 旧等级盒数
- int oldGradeBox = oldGrade.getBoxNumber();
-
- orderFor:
- for (SaOrder saOrder : orderList) {
- // 累积盒数,校验等级
- oldGradeBox += saOrder.getBoxNum();
-
- for (BdGrade tmpGrade : lowGradeList) {
- if (oldGradeBox >= tmpGrade.getBoxNumber()) {
- if (EGrade.MAKER.getValue() == tmpGrade.getGradeValue()) {
- // V3订单
- orderV3 = saOrder;
- // 达到V3等级,直接结束
- break orderFor;
- } else if (null == orderV2 && EGrade.YOU_KE.getValue() == tmpGrade.getGradeValue()) {
- // V2订单
- orderV2 = saOrder;
- // 达到V2等级,V1就不需要处理了,直接处理下次订单
- break;
- } else if (null == orderV1 && EGrade.HAI_FAN.getValue() == tmpGrade.getGradeValue()) {
- // V1订单
- orderV1 = saOrder;
- }
- }
-
- }
- }
-
- BdGrade gradeV1 = this.getGrade(EGrade.HAI_FAN, gradeList);
- BdGrade gradeV2 = this.getGrade(EGrade.YOU_KE, gradeList);
- BdGrade gradeV3 = this.getGrade(EGrade.MAKER, gradeList);
- if (null != orderV1) {
- // V1等级订单
- createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
- newGrade = gradeV1;
- if (null != orderV2) {
- // V2等级订单
- createLevelList.add(this.packageMemberLevel(cuMember, orderV2, gradeV1.getPkId(), gradeV2.getPkId()));
- newGrade = gradeV2;
- if (null != orderV3) {
- // V3等级订单
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
- } else {
- // 没有V2等级订单
- if (null != orderV3) {
- // V3等级订单
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV1.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
- }
- } else if (null != orderV2) {
- // V2等级订单
- createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
- newGrade = gradeV2;
- if (null != orderV3) {
- // V3等级订单
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
- } else if (null != orderV3) {
- // V3等级订单
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
- }
- }
- return newGrade;
- }
-
- /**
- * 首日等级有变化,处理次日升级
- *
- * @param cuMember 会员信息
- * @param oldLevel 旧等级
- * @param lastLevel 最大等级
- * @param queryTime 查询开始时间
- * @param queryEndTime 查询结束时间
- * @param gradeList 等级列表
- * @param createLevelList 创建升级记录
- * @return
- */
- private BdGrade handleTodayNext(CuMember cuMember, Integer oldLevel, Integer lastLevel, Date queryTime, Date queryEndTime,
- List gradeList, List createLevelList) {
- // 次日升级之前的等级
- BdGrade oldGrade = this.getGrade(oldLevel, gradeList);
- // 最终计算等级(如果没有默认为V3)
- BdGrade endGrade = null != lastLevel ? this.getGrade(lastLevel, gradeList) : this.getGrade(EGrade.MAKER, gradeList);
- // 获取需要处理的等级(大于升级记录的旧等级,小于等于升级记录的新等级)
- List lowGradeList = gradeList.stream()
- .filter(tmp -> (tmp.getGradeValue() > oldGrade.getGradeValue() && tmp.getGradeValue() <= endGrade.getGradeValue()))
- .collect(Collectors.toList());
-
- BdGrade newGrade = oldGrade;
-
- if (CollectionUtil.isNotEmpty(lowGradeList)) {
- // 查询大于升级时间,小于当天手动升级时间,全部订单
- List orderList = this.list(Wrappers.lambdaQuery()
- .eq(SaOrder::getPkMember, cuMember.getPkId())
- .eq(SaOrder::getOrderStatus, EPayStatus.PAID.getValue())
- .eq(SaOrder::getOrderType, EOrderType.RETAIL_REPURCHASE.getValue())
- .ge(SaOrder::getPayTime, queryTime)
- .le(SaOrder::getPayTime, null != queryEndTime ? queryEndTime : new Date())
- .orderByAsc(SaOrder::getPayTime)
- );
-
- if (CollectionUtil.isNotEmpty(orderList)) {
- // 升级记录以后有订单,才进行级别处理
- // 取倒序(V3,V2,V1)
- lowGradeList.sort(Comparator.comparing(BdGrade::getGradeValue).reversed());
-
- SaOrder orderV1 = null;
- SaOrder orderV2 = null;
- SaOrder orderV3 = null;
- // 旧等级盒数
- int oldGradeBox = oldGrade.getBoxNumber();
-
- orderFor:
- for (SaOrder saOrder : orderList) {
- for (BdGrade tmpGrade : lowGradeList) {
- if (saOrder.getBoxNum() >= (tmpGrade.getBoxNumber() - oldGradeBox)) {
- if (EGrade.MAKER.getValue() == tmpGrade.getGradeValue()) {
- // V3订单
- orderV3 = saOrder;
- // 达到V3等级,直接结束
- break orderFor;
- } else if (null == orderV2 && EGrade.YOU_KE.getValue() == tmpGrade.getGradeValue()) {
- // V2订单
- orderV2 = saOrder;
- oldGradeBox = tmpGrade.getBoxNumber();
- // 达到V2等级,V1就不需要处理了,直接处理下次订单
- break;
- } else if (null == orderV1 && EGrade.HAI_FAN.getValue() == tmpGrade.getGradeValue()) {
- // V1订单
- orderV1 = saOrder;
- oldGradeBox = tmpGrade.getBoxNumber();
- }
- }
- }
- }
-
- BdGrade gradeV1 = this.getGrade(EGrade.HAI_FAN, gradeList);
- BdGrade gradeV2 = this.getGrade(EGrade.YOU_KE, gradeList);
- BdGrade gradeV3 = this.getGrade(EGrade.MAKER, gradeList);
- if (null != orderV1) {
- // 有V1等级订单
- if (null != orderV2) {
- // 有V2等级订单
- if (orderV1.getPkId().equals(orderV2.getPkId())) {
- // V1和V2订单相同,只处理V2
- if (null != orderV3) {
- // 有V3等级订单
- if (orderV2.getPkId().equals(orderV3.getPkId())) {
- // V2和V3订单相同,只处理V3
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- } else {
- // V2和V3订单不相同,先处理V2,再处理V3
- createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
- } else {
- // 没有V3等级订单,只处理V2
- createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
- newGrade = gradeV2;
- }
- } else {
- // V1和V2订单不相同
- if (null != orderV3) {
- // 有V3等级订单
- if (orderV2.getPkId().equals(orderV3.getPkId())) {
- // V2和V3等级相同,先处理V1,再处理V3
- createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV1.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- } else {
- // V2和V3等级不相同,先处理V1,再处理V2,最后处理V3
- createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
- createLevelList.add(this.packageMemberLevel(cuMember, orderV2, gradeV1.getPkId(), gradeV2.getPkId()));
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
- } else {
- // 没有V3等级订单,处理V1 V2
- createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
- createLevelList.add(this.packageMemberLevel(cuMember, orderV2, gradeV1.getPkId(), gradeV2.getPkId()));
- newGrade = gradeV2;
- }
- }
- } else {
- // 没有V2等级订单,只处理V1
- createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
- newGrade = gradeV1;
- }
- } else if (null != orderV2) {
- // 有V2等级订单,V1没有
- if (null != orderV3) {
- // 有V3等级订单
- if (orderV2.getPkId().equals(orderV3.getPkId())) {
- // V2和V3订单相同,只处理V3
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- } else {
- // V2和V3订单不相同,先处理V2,再处理V3
- createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
- } else {
- // 没有V3,只处理V2
- createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
- newGrade = gradeV2;
- }
- } else if (null != orderV3) {
- // 有V3等级订单,V1、V2没有
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
- }
- }
-
- return newGrade;
- }
-
- /**
- * 处理次日一次性升级
- *
- * @param cuMember 会员信息
- * @param queryStartTime 升级查询开始时间
- * @param queryEndTime 升级查询结束时间
- * @param oldGrade 升级旧等级
- * @param lowGradeList 需要处理的升级等级
- * @param gradeList 等级列表
- * @param createLevelList 需要新増的升级记录
- */
- private BdGrade handleNextDay(CuMember cuMember, Date queryStartTime, Date queryEndTime, BdGrade oldGrade, List lowGradeList,
- List gradeList, List createLevelList) {
- BdGrade newGrade = oldGrade;
-
- if (CollectionUtil.isNotEmpty(lowGradeList)) {
- // 查询大于升级时间,订单盒数大于等于升级盒数的订单
- List orderList = this.list(Wrappers.lambdaQuery()
- .eq(SaOrder::getPkMember, cuMember.getPkId())
- .eq(SaOrder::getOrderStatus, EPayStatus.PAID.getValue())
- .eq(SaOrder::getOrderType, EOrderType.RETAIL_REPURCHASE.getValue())
- .ge(SaOrder::getBoxNum, lowGradeList.get(0).getBoxNumber())
- .ge(SaOrder::getPayTime, queryStartTime)
- .le(null != queryEndTime, SaOrder::getPayTime, queryEndTime)
- .orderByAsc(SaOrder::getPayTime)
- );
-
- if (CollectionUtil.isNotEmpty(orderList)) {
- // 升级记录以后有订单,才进行级别处理
- // 取倒序(V3,V2,V1)
- lowGradeList.sort(Comparator.comparing(BdGrade::getGradeValue).reversed());
-
- SaOrder orderV1 = null;
- SaOrder orderV2 = null;
- SaOrder orderV3 = null;
- // 旧等级盒数
- int oldGradeBox = oldGrade.getBoxNumber();
-
- orderFor:
- for (SaOrder saOrder : orderList) {
- for (BdGrade tmpGrade : lowGradeList) {
- if (saOrder.getBoxNum() >= (tmpGrade.getBoxNumber() - oldGradeBox)) {
- if (EGrade.MAKER.getValue() == tmpGrade.getGradeValue()) {
- // V3订单
- orderV3 = saOrder;
- // 达到V3等级,直接结束
- break orderFor;
- } else if (null == orderV2 && EGrade.YOU_KE.getValue() == tmpGrade.getGradeValue()) {
- // V2订单
- orderV2 = saOrder;
- oldGradeBox = tmpGrade.getBoxNumber();
- // 达到V2等级,V1就不需要处理了,直接处理下次订单
- break;
- } else if (null == orderV1 && EGrade.HAI_FAN.getValue() == tmpGrade.getGradeValue()) {
- // V1订单
- orderV1 = saOrder;
- oldGradeBox = tmpGrade.getBoxNumber();
- }
- }
- }
- }
-
- BdGrade gradeV1 = this.getGrade(EGrade.HAI_FAN, gradeList);
- BdGrade gradeV2 = this.getGrade(EGrade.YOU_KE, gradeList);
- BdGrade gradeV3 = this.getGrade(EGrade.MAKER, gradeList);
- if (null != orderV1) {
- // 有V1等级订单
- if (null != orderV2) {
- // 有V2等级订单
- if (orderV1.getPkId().equals(orderV2.getPkId())) {
- // V1和V2订单相同,只处理V2
- if (null != orderV3) {
- // 有V3等级订单
- if (orderV2.getPkId().equals(orderV3.getPkId())) {
- // V2和V3订单相同,只处理V3
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- } else {
- // V2和V3订单不相同,先处理V2,再处理V3
- createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
- } else {
- // 没有V3等级订单,只处理V2
- createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
- newGrade = gradeV2;
- }
- } else {
- // V1和V2订单不相同
- if (null != orderV3) {
- // 有V3等级订单
- if (orderV2.getPkId().equals(orderV3.getPkId())) {
- // V2和V3等级相同,先处理V1,再处理V3
- createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV1.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- } else {
- // V2和V3等级不相同,先处理V1,再处理V2,最后处理V3
- createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
- createLevelList.add(this.packageMemberLevel(cuMember, orderV2, gradeV1.getPkId(), gradeV2.getPkId()));
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
- } else {
- // 没有V3等级订单,处理V1 V2
- createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
- createLevelList.add(this.packageMemberLevel(cuMember, orderV2, gradeV1.getPkId(), gradeV2.getPkId()));
- newGrade = gradeV2;
- }
- }
- } else {
- // 没有V2等级订单
- if (null != orderV3) {
- // 有V3等级订单
- if (orderV1.getPkId().equals(orderV3.getPkId())) {
- // V1和V3相同,只处理V3
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- } else {
- // V1和V3不相同,先处理V1,再处理V3
- createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV1.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
- } else {
- // 没有V3等级订单,只处理V1
- createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
- newGrade = gradeV1;
- }
- }
- } else if (null != orderV2) {
- // 有V2等级订单,V1没有
- if (null != orderV3) {
- // 有V3等级订单
- if (orderV2.getPkId().equals(orderV3.getPkId())) {
- // V2和V3订单相同,只处理V3
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- } else {
- // V2和V3订单不相同,先处理V2,再处理V3
- createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
- } else {
- // 没有V3,只处理V2
- createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
- newGrade = gradeV2;
- }
- } else if (null != orderV3) {
- // 有V3等级订单,V1、V2没有
- createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
- newGrade = gradeV3;
- }
-
- }
- }
- return newGrade;
- }
+// /**
+// * 处理次日一次性升级
+// *
+// * @param cuMember 会员信息
+// * @param queryStartTime 升级查询开始时间
+// * @param queryEndTime 升级查询结束时间
+// * @param oldGrade 升级旧等级
+// * @param lowGradeList 需要处理的升级等级
+// * @param gradeList 等级列表
+// * @param createLevelList 需要新増的升级记录
+// */
+// private BdGrade handleNextDay(CuMember cuMember, Date queryStartTime, Date queryEndTime, BdGrade oldGrade, List lowGradeList,
+// List gradeList, List createLevelList) {
+// BdGrade newGrade = oldGrade;
+//
+// if (CollectionUtil.isNotEmpty(lowGradeList)) {
+// // 查询大于升级时间,订单盒数大于等于升级盒数的订单
+// List orderList = this.list(Wrappers.lambdaQuery()
+// .eq(SaOrder::getPkMember, cuMember.getPkId())
+// .eq(SaOrder::getOrderStatus, EPayStatus.PAID.getValue())
+// .eq(SaOrder::getOrderType, EOrderType.RETAIL_REPURCHASE.getValue())
+// .ge(SaOrder::getBoxNum, lowGradeList.get(0).getBoxNumber())
+// .ge(SaOrder::getPayTime, queryStartTime)
+// .le(null != queryEndTime, SaOrder::getPayTime, queryEndTime)
+// .orderByAsc(SaOrder::getPayTime)
+// );
+//
+// if (CollectionUtil.isNotEmpty(orderList)) {
+// // 升级记录以后有订单,才进行级别处理
+// // 取倒序(V3,V2,V1)
+// lowGradeList.sort(Comparator.comparing(BdGrade::getGradeValue).reversed());
+//
+// SaOrder orderV1 = null;
+// SaOrder orderV2 = null;
+// SaOrder orderV3 = null;
+// // 旧等级盒数
+// int oldGradeBox = oldGrade.getBoxNumber();
+//
+// orderFor:
+// for (SaOrder saOrder : orderList) {
+// for (BdGrade tmpGrade : lowGradeList) {
+// if (saOrder.getBoxNum() >= (tmpGrade.getBoxNumber() - oldGradeBox)) {
+// if (EGrade.MAKER.getValue() == tmpGrade.getGradeValue()) {
+// // V3订单
+// orderV3 = saOrder;
+// // 达到V3等级,直接结束
+// break orderFor;
+// } else if (null == orderV2 && EGrade.YOU_KE.getValue() == tmpGrade.getGradeValue()) {
+// // V2订单
+// orderV2 = saOrder;
+// oldGradeBox = tmpGrade.getBoxNumber();
+// // 达到V2等级,V1就不需要处理了,直接处理下次订单
+// break;
+// } else if (null == orderV1 && EGrade.HAI_FAN.getValue() == tmpGrade.getGradeValue()) {
+// // V1订单
+// orderV1 = saOrder;
+// oldGradeBox = tmpGrade.getBoxNumber();
+// }
+// }
+// }
+// }
+//
+// BdGrade gradeV1 = this.getGrade(EGrade.HAI_FAN, gradeList);
+// BdGrade gradeV2 = this.getGrade(EGrade.YOU_KE, gradeList);
+// BdGrade gradeV3 = this.getGrade(EGrade.MAKER, gradeList);
+// if (null != orderV1) {
+// // 有V1等级订单
+// if (null != orderV2) {
+// // 有V2等级订单
+// if (orderV1.getPkId().equals(orderV2.getPkId())) {
+// // V1和V2订单相同,只处理V2
+// if (null != orderV3) {
+// // 有V3等级订单
+// if (orderV2.getPkId().equals(orderV3.getPkId())) {
+// // V2和V3订单相同,只处理V3
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// } else {
+// // V2和V3订单不相同,先处理V2,再处理V3
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+// } else {
+// // 没有V3等级订单,只处理V2
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
+// newGrade = gradeV2;
+// }
+// } else {
+// // V1和V2订单不相同
+// if (null != orderV3) {
+// // 有V3等级订单
+// if (orderV2.getPkId().equals(orderV3.getPkId())) {
+// // V2和V3等级相同,先处理V1,再处理V3
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV1.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// } else {
+// // V2和V3等级不相同,先处理V1,再处理V2,最后处理V3
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV2, gradeV1.getPkId(), gradeV2.getPkId()));
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+// } else {
+// // 没有V3等级订单,处理V1 V2
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV2, gradeV1.getPkId(), gradeV2.getPkId()));
+// newGrade = gradeV2;
+// }
+// }
+// } else {
+// // 没有V2等级订单
+// if (null != orderV3) {
+// // 有V3等级订单
+// if (orderV1.getPkId().equals(orderV3.getPkId())) {
+// // V1和V3相同,只处理V3
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// } else {
+// // V1和V3不相同,先处理V1,再处理V3
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV1.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+// } else {
+// // 没有V3等级订单,只处理V1
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV1, oldGrade.getPkId(), gradeV1.getPkId()));
+// newGrade = gradeV1;
+// }
+// }
+// } else if (null != orderV2) {
+// // 有V2等级订单,V1没有
+// if (null != orderV3) {
+// // 有V3等级订单
+// if (orderV2.getPkId().equals(orderV3.getPkId())) {
+// // V2和V3订单相同,只处理V3
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// } else {
+// // V2和V3订单不相同,先处理V2,再处理V3
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, gradeV2.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+// } else {
+// // 没有V3,只处理V2
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV2, oldGrade.getPkId(), gradeV2.getPkId()));
+// newGrade = gradeV2;
+// }
+// } else if (null != orderV3) {
+// // 有V3等级订单,V1、V2没有
+// createLevelList.add(this.packageMemberLevel(cuMember, orderV3, oldGrade.getPkId(), gradeV3.getPkId()));
+// newGrade = gradeV3;
+// }
+//
+// }
+// }
+// return newGrade;
+// }
/**
* 获取等级(没有则返回V0)
@@ -3418,4 +3427,28 @@ public class SaOrderServiceImpl extends ServiceImpl impl
return tmpGrade;
}
+ /**
+ * 处理商品盒数
+ *
+ * @param orderItemsParams
+ */
+ private void handleWaresBoxNum(Integer specialArea, List orderItemsParams) {
+ if (CollectionUtil.isNotEmpty(orderItemsParams)) {
+ List waresCodeList = orderItemsParams.stream().map(OrderItemsParam::getWaresCode).collect(Collectors.toList());
+ List waresList = iBdWaresService.list(Wrappers.lambdaQuery()
+ .eq(BdWares::getSpecialArea, specialArea)
+ .in(BdWares::getWaresCode, waresCodeList)
+ );
+ if (CollectionUtil.isNotEmpty(waresList)) {
+ for (OrderItemsParam orderItemsParam : orderItemsParams) {
+ for (BdWares bdWares : waresList) {
+ if (orderItemsParam.getWaresCode().equals(bdWares.getWaresCode())) {
+ orderItemsParam.setBoxNum(bdWares.getBoxNum());
+ }
+ }
+ }
+ }
+ }
+ }
+
}
diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/product/mapper/BdProductExtendMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/product/mapper/BdProductExtendMapper.java
index f7e7defb..e4d9d77b 100644
--- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/product/mapper/BdProductExtendMapper.java
+++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/product/mapper/BdProductExtendMapper.java
@@ -7,11 +7,9 @@ import org.apache.ibatis.annotations.Param;
/**
* 商品拓展表 Mapper 接口
- *
- * @author hzs
- * @since 2022-09-01
*/
public interface BdProductExtendMapper extends BaseMapper {
+
/**
* 根据产品id查询产品拓展
*
diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/product/service/IBdProductExtendService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/product/service/IBdProductExtendService.java
index d0813163..3fca501c 100644
--- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/product/service/IBdProductExtendService.java
+++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/product/service/IBdProductExtendService.java
@@ -5,12 +5,7 @@ import com.hzs.common.domain.sale.ext.BdProductExtendExt;
import com.hzs.common.domain.sale.product.BdProductExtend;
/**
- *
* 商品拓展表 服务类
- *
- *
- * @author hzs
- * @since 2022-09-01
*/
public interface IBdProductExtendService extends IService {
@@ -20,7 +15,7 @@ public interface IBdProductExtendService extends IService {
* @param productId
* @return
*/
- public BdProductExtend getProductExtend(Integer productId);
+ BdProductExtend getProductExtend(Integer productId);
/**
* 根据产品id 查找当前商品的上一位商品排序
diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/product/service/impl/BdProductExtendServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/product/service/impl/BdProductExtendServiceImpl.java
index 72569e1c..4cb5e176 100644
--- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/product/service/impl/BdProductExtendServiceImpl.java
+++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/product/service/impl/BdProductExtendServiceImpl.java
@@ -1,87 +1,43 @@
package com.hzs.sale.product.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.hzs.common.core.constant.CacheConstants;
-import com.hzs.common.core.service.RedisService;
import com.hzs.common.domain.sale.ext.BdProductExtendExt;
import com.hzs.common.domain.sale.product.BdProductExtend;
import com.hzs.sale.product.mapper.BdProductExtendMapper;
import com.hzs.sale.product.service.IBdProductExtendService;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
- *
* 商品拓展表 服务实现类
- *
- *
- * @author hzs
- * @since 2022-09-01
*/
@Service
public class BdProductExtendServiceImpl extends ServiceImpl implements IBdProductExtendService {
- @Autowired
- private RedisService redisService;
-
- /**
- * 根据产品id查询产品拓展
- *
- * @param productId
- * @return
- */
@Override
public BdProductExtend getProductExtend(Integer productId) {
return baseMapper.selectByProductId(productId);
}
- /**
- * 根据产品id 查找当前商品的上一位商品排序
- *
- * @param productId
- * @return
- */
@Override
public Integer selectByMoveUpSort(Integer productId) {
return baseMapper.selectByMoveUpSort(productId);
}
- /**
- * 大于传入编号的全部上移1
- *
- * @param sort
- */
@Override
public void updateMoveUpBySort(Integer sort) {
baseMapper.updateMoveUpBySort(sort);
}
- /**
- * 根据id 查询当前商品的下一位商品排序
- *
- * @param productId
- * @return
- */
@Override
public Integer selectByMoveDownSort(Integer productId) {
return baseMapper.selectByMoveDownSort(productId);
}
- /**
- * 大于传入编号的全部下移1
- *
- * @param sort
- */
@Override
public void updateMoveDownBySort(Integer sort) {
baseMapper.updateMoveDownBySort(sort);
}
- /**
- * 查询排序最大值
- *
- * @return
- */
@Override
public Integer getMaxProductSort() {
return baseMapper.getMaxProductSort();
diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java
index 33361086..a4ab0b76 100644
--- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java
+++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/controller/manage/BdWaresController.java
@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hzs.common.core.annotation.AccessPermissions;
import com.hzs.common.core.annotation.Log;
-import com.hzs.common.core.constant.EnumsPrefixConstants;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.utils.CreateNormsCodeUtils;
@@ -26,8 +25,6 @@ import com.hzs.common.domain.sale.wares.*;
import com.hzs.common.domain.system.config.ext.BdRangeExt;
import com.hzs.common.security.service.UserTokenService;
import com.hzs.common.security.utils.SecurityUtils;
-
-import com.hzs.common.service.ITransactionCommonService;
import com.hzs.sale.product.service.IBdAreaClassifyService;
import com.hzs.sale.product.service.IBdProductExtendService;
import com.hzs.sale.product.service.IBdProductService;
@@ -36,8 +33,6 @@ import com.hzs.sale.wares.param.WaresDetailParams;
import com.hzs.sale.wares.param.*;
import com.hzs.sale.wares.service.*;
import com.hzs.sale.wares.vo.*;
-import com.hzs.system.base.ICurrencyServiceApi;
-import com.hzs.system.base.dto.CurrencyDTO;
import com.hzs.system.config.IRangeServiceApi;
import com.hzs.system.sys.dto.LoginUser;
import lombok.extern.slf4j.Slf4j;
@@ -52,61 +47,50 @@ import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
-/**
- * @Description:
- * @Author: yuhui
- * @Time: 2022/9/8 17:04
- * @Classname: BdWaresController
- * @PackageName: com.hzs.sale.wares.controller.manage
- */
@Slf4j
@RestController
@RequestMapping("/manage/wares")
public class BdWaresController extends BaseController {
@DubboReference
- ICurrencyServiceApi currencyServiceApi;
- @DubboReference
- IRangeServiceApi rangeServiceApi;
+ IRangeServiceApi iRangeServiceApi;
@Autowired
- private IBdWaresAuthorizeService waresAuthorizeService;
+ private IBdWaresAuthorizeService iBdWaresAuthorizeService;
@Autowired
- private IBdWaresAwardsService waresAwardsService;
+ private IBdWaresAwardsService iBdWaresAwardsService;
@Autowired
- private ITransactionCommonService iTransactionCommonService;
+ private IBdWaresGradeService iBdWaresGradeService;
@Autowired
- private IBdWaresGradeService waresGradeService;
+ private IBdProductExtendService iBdProductExtendService;
@Autowired
- private IBdProductExtendService productExtendService;
+ private IBdSpecsService iBdSpecsService;
@Autowired
- private IBdSpecsService specsService;
+ private IBdWaresRangeService iBdWaresRangeService;
@Autowired
- private IBdWaresRangeService waresRangeService;
+ private IBdProductService iBdProductService;
@Autowired
- private IBdProductService productService;
+ private IBdWaresSpecsPackService iBdWaresSpecsPackService;
@Autowired
- private IBdWaresSpecsPackService waresSpecsPackService;
+ private IBdWaresService iBdWaresService;
@Autowired
- private IBdWaresService waresService;
+ private IBdWaresLabelService iBdWaresLabelService;
@Autowired
- private IBdWaresLabelService waresLabelService;
+ private IBdWaresExtendService iBdWaresExtendService;
@Autowired
- private IBdWaresExtendService waresExtendService;
+ private IBdWaresDetailService iBdWaresDetailService;
@Autowired
- private IBdWaresDetailService waresDetailService;
+ private IBdWaresSpecsSkuService iBdWaresSpecsSkuService;
@Autowired
- private IBdWaresSpecsSkuService waresSpecsSkuService;
+ private IBdWaresSpecsRelationService iBdWaresSpecsRelationService;
@Autowired
- private IBdWaresSpecsRelationService waresSpecsRelationService;
+ private IBdWaresSpecsService iBdWaresSpecsService;
@Autowired
- private IBdWaresSpecsService waresSpecsService;
+ private IBdWaresAuthorityService iBdWaresAuthorityService;
@Autowired
- private IBdWaresAuthorityService waresAuthorityService;
+ private IBdAreaClassifyService iBdAreaClassifyService;
@Autowired
private UserTokenService userTokenService;
- @Autowired
- private IBdAreaClassifyService areaClassifyService;
/**
* 查询列表
@@ -121,26 +105,20 @@ public class BdWaresController extends BaseController {
waresParams.setSystemType(SecurityUtils.getSystemType());
startPage();
- List resultList = waresService.selectByWaresInfo(waresParams);
+ List resultList = iBdWaresService.selectByWaresInfo(waresParams);
if (CollectionUtil.isNotEmpty(resultList)) {
- R currencyDto = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
-
resultList.parallelStream().forEach(waresVo -> {
- WaresAuthorityVo waresAuthorityVo = waresService.getWaresAuthorityFirst(waresVo.getPkWares());
+ WaresAuthorityVo waresAuthorityVo = iBdWaresService.getWaresAuthorityFirst(waresVo.getPkWares());
if (waresAuthorityVo != null) {
waresVo.setAuthorityType(waresAuthorityVo.getAuthorityType());
- waresVo.setAuthorityTypeVal(EWaresPermissionType.getEnumByValue(waresAuthorityVo.getAuthorityType()).getLabel());
+ waresVo.setAuthorityTypeVal(EWaresPermissionType.getEnumLabelByValue(waresAuthorityVo.getAuthorityType()));
waresVo.setMemberCode(waresAuthorityVo.getMemberCode());
waresVo.setMemberName(waresAuthorityVo.getMemberName());
}
- List waresDetailList = waresDetailService.selectByList(waresVo.getPkWares());
+ List waresDetailList = iBdWaresDetailService.selectByList(waresVo.getPkWares());
waresVo.setWaresDetailList(waresDetailList);
if (waresVo.getIsMakerGift() != null) {
- waresVo.setIsMakerGiftVal(EWaresType.getEnumByValue(waresVo.getIsMakerGift()).getLabel());
- }
- if (null != waresVo.getMakerIncome()) {
- // 处理发起人收益
- waresVo.setMakerIncome(waresVo.getMakerIncome().multiply(currencyDto.getData().getInExchangeRate()));
+ waresVo.setIsMakerGiftVal(EWaresType.getEnumLabelByValue(waresVo.getIsMakerGift()));
}
});
}
@@ -156,28 +134,24 @@ public class BdWaresController extends BaseController {
waresParams.setPkCountry(SecurityUtils.getPkCountry());
waresParams.setSystemType(SecurityUtils.getSystemType());
- List resultList = waresService.selectByWaresInfo(waresParams);
+ List resultList = iBdWaresService.selectByWaresInfo(waresParams);
if (CollectionUtil.isNotEmpty(resultList)) {
- R currencyDto = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
- // 获取需要翻译的枚举翻译
- Map transactionMap = iTransactionCommonService.exportEnumTransaction(ESpecialArea.values(), EYesNo.values(), ESupplyWay.values(), EPresaleStatus.values());
-
resultList.parallelStream().forEach(waresVo -> {
// 所属专区
- waresVo.setSpecialAreaVal(transactionMap.get(EnumsPrefixConstants.SPECIAL_AREA + waresVo.getSpecialArea()));
+ waresVo.setSpecialAreaVal(ESpecialArea.getESpecialArea(waresVo.getSpecialArea()));
// 供应方式
- waresVo.setOperateScopeVal(transactionMap.get(EnumsPrefixConstants.SUPPLY_WAY + waresVo.getOperateScope()));
+ waresVo.setOperateScopeVal(ESupplyWay.getEnumLabelByValue(waresVo.getOperateScope()));
// 预售状态
- waresVo.setPreSaleStatusVal(transactionMap.get(EnumsPrefixConstants.PRESALE_STATUS + waresVo.getPreSaleStatus()));
+ waresVo.setPreSaleStatusVal(EPresaleStatus.getEnumLabelByValue(waresVo.getPreSaleStatus()));
- WaresAuthorityVo waresAuthorityVo = waresService.getWaresAuthorityFirst(waresVo.getPkWares());
+ WaresAuthorityVo waresAuthorityVo = iBdWaresService.getWaresAuthorityFirst(waresVo.getPkWares());
if (waresAuthorityVo != null) {
waresVo.setAuthorityType(waresAuthorityVo.getAuthorityType());
- waresVo.setAuthorityTypeVal(EWaresPermissionType.getEnumByValue(waresAuthorityVo.getAuthorityType()).getLabel());
+ waresVo.setAuthorityTypeVal(EWaresPermissionType.getEnumLabelByValue(waresAuthorityVo.getAuthorityType()));
waresVo.setMemberCode(waresAuthorityVo.getMemberCode());
waresVo.setMemberName(waresAuthorityVo.getMemberName());
}
- List waresDetailList = waresDetailService.selectByList(waresVo.getPkWares());
+ List waresDetailList = iBdWaresDetailService.selectByList(waresVo.getPkWares());
waresVo.setWaresDetailList(waresDetailList);
if (waresDetailList.size() > 0) {
StringBuilder productNames = new StringBuilder();
@@ -192,13 +166,9 @@ public class BdWaresController extends BaseController {
waresVo.setProductCodes(productCodes.toString());
waresVo.setProductQuantitys(productQuantitys.toString());
if (waresVo.getIsMakerGift() != null) {
- waresVo.setIsMakerGiftVal(EWaresType.getEnumByValue(waresVo.getIsMakerGift()).getLabel());
+ waresVo.setIsMakerGiftVal(EWaresType.getEnumLabelByValue(waresVo.getIsMakerGift()));
}
}
- if (null != waresVo.getMakerIncome()) {
- // 处理发起人收益
- waresVo.setMakerIncome(waresVo.getMakerIncome().multiply(currencyDto.getData().getInExchangeRate()));
- }
});
}
ExcelUtil util = new ExcelUtil<>(WaresVo.class);
@@ -216,27 +186,27 @@ public class BdWaresController extends BaseController {
if (StringUtils.isBlank(wares.getWaresName())) {
return AjaxResult.error("商品名称不存在");
}
- // 预售状态必传
if (wares.getPreSaleStatus() == null) {
return AjaxResult.error("预售状态必传");
}
if (wares.getWaresPrice() == null) {
return AjaxResult.error("商品价格必填");
}
- if (StringUtils.isNotBlank(wares.getWaresCode())) {
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(BdWares::getWaresCode, wares.getWaresCode());
- queryWrapper.eq(BdWares::getSpecialArea, wares.getSpecialArea());
- if (waresService.count(queryWrapper) > 0) {
- return AjaxResult.error("商品编号重复");
- }
- }
if (wares.getPkAreaClassify() == null) {
return AjaxResult.error("商品分类不能为空");
}
if (wares.getCover1() == null) {
return AjaxResult.error("商品图片必传");
}
+ if (StringUtils.isNotBlank(wares.getWaresCode())) {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(BdWares::getWaresCode, wares.getWaresCode());
+ queryWrapper.eq(BdWares::getSpecialArea, wares.getSpecialArea());
+ if (iBdWaresService.count(queryWrapper) > 0) {
+ return AjaxResult.error("商品编号重复");
+ }
+ }
+
// 是否陆运
int isLandTrans = 1;
// 是否空运
@@ -245,7 +215,7 @@ public class BdWaresController extends BaseController {
int isOceanTrans = 1;
if (wares.getWaresDetailList().size() > 0) {
for (WaresDetailParams waresDetailParams : wares.getWaresDetailList()) {
- BdProductExtend productExtend = productExtendService.getProductExtend(waresDetailParams.getPkProduct());
+ BdProductExtend productExtend = iBdProductExtendService.getProductExtend(waresDetailParams.getPkProduct());
// 是否陆运
if (productExtend.getIsLandTrans() == EYesNo.YES.getIntValue()) {
isLandTrans = EYesNo.YES.getIntValue();
@@ -328,7 +298,7 @@ public class BdWaresController extends BaseController {
return AjaxResult.error("产品规格至少有一个上架");
}
wares.setSort(0);
- waresService.saveWares(wares, userTokenService.getLoginUser());
+ iBdWaresService.saveWares(wares, userTokenService.getLoginUser());
return AjaxResult.success(wares.getWaresCode());
}
@@ -341,8 +311,6 @@ public class BdWaresController extends BaseController {
@PostMapping("/update")
@Log(module = EOperationModule.WARES_LIST, business = EOperationBusiness.WARES_LIST, method = EOperationMethod.UPDATE)
public AjaxResult update(@RequestBody WaresParams waresParams) {
- waresParams.setPkCountry(SecurityUtils.getPkCountry());
- waresParams.setSystemType(SecurityUtils.getSystemType());
if (StringUtils.isBlank(waresParams.getWaresCode())) {
return AjaxResult.error("商品编号不存在");
}
@@ -350,16 +318,6 @@ public class BdWaresController extends BaseController {
if (waresParams.getPreSaleStatus() == null) {
return AjaxResult.error("预售状态必传");
}
- // 商品编号 重复
- if (StringUtils.isNotBlank(waresParams.getWaresCode())) {
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(BdWares::getWaresCode, waresParams.getWaresCode());
- queryWrapper.eq(BdWares::getSpecialArea, waresParams.getSpecialArea());
- queryWrapper.notIn(BdWares::getPkId, waresParams.getWaresId());
- if (waresService.count(queryWrapper) > 0) {
- return AjaxResult.error("商品编号重复");
- }
- }
if (StringUtils.isBlank(waresParams.getWaresName())) {
return AjaxResult.error("商品名称不存在");
}
@@ -372,6 +330,19 @@ public class BdWaresController extends BaseController {
if (waresParams.getCover1() == null) {
return AjaxResult.error("商品图片必传");
}
+ // 商品编号 重复
+ if (StringUtils.isNotBlank(waresParams.getWaresCode())) {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(BdWares::getWaresCode, waresParams.getWaresCode());
+ queryWrapper.eq(BdWares::getSpecialArea, waresParams.getSpecialArea());
+ queryWrapper.notIn(BdWares::getPkId, waresParams.getWaresId());
+ if (iBdWaresService.count(queryWrapper) > 0) {
+ return AjaxResult.error("商品编号重复");
+ }
+ }
+
+ waresParams.setPkCountry(SecurityUtils.getPkCountry());
+ waresParams.setSystemType(SecurityUtils.getSystemType());
// 是否陆运
int isLandTrans = 1;
@@ -381,7 +352,7 @@ public class BdWaresController extends BaseController {
int isOceanTrans = 1;
if (waresParams.getWaresDetailList().size() > 0) {
for (WaresDetailParams waresDetailParams : waresParams.getWaresDetailList()) {
- BdProductExtend productExtend = productExtendService.getProductExtend(waresDetailParams.getPkProduct());
+ BdProductExtend productExtend = iBdProductExtendService.getProductExtend(waresDetailParams.getPkProduct());
// 是否陆运
if (productExtend.getIsLandTrans() == EYesNo.YES.getIntValue()) {
isLandTrans = EYesNo.YES.getIntValue();
@@ -459,7 +430,7 @@ public class BdWaresController extends BaseController {
}
waresParams.setSort(0);
- waresService.updateWares(waresParams, userTokenService.getLoginUser());
+ iBdWaresService.updateWares(waresParams, userTokenService.getLoginUser());
return AjaxResult.success(waresParams.getWaresCode());
}
@@ -472,7 +443,7 @@ public class BdWaresController extends BaseController {
@DeleteMapping("/{pkId}")
@Log(module = EOperationModule.WARES_LIST, business = EOperationBusiness.THIRD_WARES_LIST, method = EOperationMethod.DELETE)
public AjaxResult remove(@PathVariable Integer pkId) {
- waresService.removeWares(pkId, userTokenService.getLoginUser());
+ iBdWaresService.removeWares(pkId, userTokenService.getLoginUser());
return AjaxResult.success();
}
@@ -484,14 +455,14 @@ public class BdWaresController extends BaseController {
*/
@GetMapping("/detail")
public AjaxResult detail(Long pkId) {
- R> rangeDto = rangeServiceApi.queryRange(SecurityUtils.getPkCountry());
+ R> rangeDto = iRangeServiceApi.queryRange(SecurityUtils.getPkCountry());
List rsList = rangeDto.getData();
Map rangeMap = rsList.stream().collect(Collectors.toMap(BdRangeExt::getPkId, Function.identity()));
- BdWares wares = waresService.getById(pkId);
+ BdWares wares = iBdWaresService.getById(pkId);
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdWaresExtend::getPkWares, pkId);
- BdWaresExtend waresExtend = waresExtendService.getOne(queryWrapper);
+ BdWaresExtend waresExtend = iBdWaresExtendService.getOne(queryWrapper);
WaresParams waresParams = new WaresParams();
waresParams.setWaresId(wares.getPkId());
waresParams.setIsPreSale(wares.getIsPreSale());
@@ -542,12 +513,10 @@ public class BdWaresController extends BaseController {
waresParams.setSortStatus(wares.getSortStatus());
waresParams.setSystemType(waresExtend.getSystemType());
waresParams.setAreaIncome(wares.getAreaIncome());
- if (waresExtend.getMakerIncome() != null) {
- R currencyDto = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
- waresParams.setMakerIncome(waresExtend.getMakerIncome().multiply(currencyDto.getData().getInExchangeRate()));
- }
+ waresParams.setAreaIncomeType(wares.getAreaIncomeType());
+ waresParams.setBoxNum(wares.getBoxNum());
- BdAreaClassify parentAreaClassify = areaClassifyService.getAreaClassify(wares.getPkAreaClassify());
+ BdAreaClassify parentAreaClassify = iBdAreaClassifyService.getAreaClassify(wares.getPkAreaClassify());
if (parentAreaClassify != null) {
if (parentAreaClassify.getPkParent() == 0) {
waresParams.setParentPkAreaClassify(null);
@@ -558,7 +527,7 @@ public class BdWaresController extends BaseController {
// 标签
LambdaQueryWrapper waresLabelWrapper = new LambdaQueryWrapper<>();
waresLabelWrapper.eq(BdWaresLabel::getPkWares, pkId);
- List labelList = waresLabelService.list(waresLabelWrapper);
+ List labelList = iBdWaresLabelService.list(waresLabelWrapper);
// 保证标签
List pkGuaranteeLabel = new ArrayList<>();
// 卖点标签
@@ -587,7 +556,7 @@ public class BdWaresController extends BaseController {
//包装和规格
LambdaQueryWrapper waresSpecsPackWrapper = new LambdaQueryWrapper<>();
waresSpecsPackWrapper.eq(BdWaresSpecsPack::getPkWares, pkId);
- List list = waresSpecsPackService.list(waresSpecsPackWrapper);
+ List list = iBdWaresSpecsPackService.list(waresSpecsPackWrapper);
List waresSpecsPackList = new ArrayList<>();
for (BdWaresSpecsPack bdWaresSpecsPack : list) {
WaresSpecsPackParams waresSpecsPackParams = BeanUtil.copyProperties(bdWaresSpecsPack, WaresSpecsPackParams.class);
@@ -598,14 +567,14 @@ public class BdWaresController extends BaseController {
//产品详情列表
LambdaQueryWrapper waresDetailWrapper = new LambdaQueryWrapper<>();
waresDetailWrapper.eq(BdWaresDetail::getPkWares, pkId);
- List waresDetailList = waresDetailService.list(waresDetailWrapper);
+ List waresDetailList = iBdWaresDetailService.list(waresDetailWrapper);
// 商品详情
List detailList = new ArrayList<>();
// 商品sku
List waresSpecsSkuList = new ArrayList<>();
for (BdWaresDetail bd : waresDetailList) {
WaresDetailParams waresDetailParams = BeanUtil.copyProperties(bd, WaresDetailParams.class);
- BdProduct product = productService.getProduct(bd.getPkProduct());
+ BdProduct product = iBdProductService.getProduct(bd.getPkProduct());
if (product != null) {
waresDetailParams.setProductCode(product.getProductCode());
waresDetailParams.setProductName(product.getProductName());
@@ -617,7 +586,7 @@ public class BdWaresController extends BaseController {
LambdaQueryWrapper specsSku = new LambdaQueryWrapper<>();
specsSku.eq(BdWaresSpecsSku::getPkWares, pkId);
specsSku.eq(BdWaresSpecsSku::getPkWaresDetail, bd.getPkId());
- List specsSkuList = waresSpecsSkuService.list(specsSku);
+ List specsSkuList = iBdWaresSpecsSkuService.list(specsSku);
for (BdWaresSpecsSku bdWaresSpecsSku : specsSkuList) {
WaresSpecsSkuParams specsSkuParams = new WaresSpecsSkuParams();
specsSkuParams.setPkWaresSpecsSku(bdWaresSpecsSku.getPkId());
@@ -634,10 +603,10 @@ public class BdWaresController extends BaseController {
List waresSpecsList = new ArrayList<>();
LambdaQueryWrapper waresSpecsRelation = new LambdaQueryWrapper<>();
waresSpecsRelation.eq(BdWaresSpecsRelation::getPkWaresSpecsSku, bdWaresSpecsSku.getPkId());
- List rslist = waresSpecsRelationService.list(waresSpecsRelation);
+ List rslist = iBdWaresSpecsRelationService.list(waresSpecsRelation);
for (BdWaresSpecsRelation bdWaresSpecsRelation : rslist) {
- BdWaresSpecs waresSpecs = waresSpecsService.getById(bdWaresSpecsRelation.getPkWaresSpecs());
- BdSpecs specs = specsService.getSpecs(waresSpecs.getPkSpecs());
+ BdWaresSpecs waresSpecs = iBdWaresSpecsService.getById(bdWaresSpecsRelation.getPkWaresSpecs());
+ BdSpecs specs = iBdSpecsService.getSpecs(waresSpecs.getPkSpecs());
if (specs != null) {
waresSpecs.setSpecsName(specs.getSpecsName());
}
@@ -652,7 +621,7 @@ public class BdWaresController extends BaseController {
// 团队配置
LambdaQueryWrapper