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

# Conflicts:
#	bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java
#	bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java
#	bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java
#	bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuRegionAssessServiceImpl.java
#	bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml
#	bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml
#	bd-business/bd-business-member/src/main/java/com/hzs/retail/member/controller/api/RetailMemberController.java
#	bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailAchieveVO.java
#	bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailRegionMapper.xml
#	bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java
#	bd-third/src/main/java/com/hzs/third/job/controller/JobTestController.java
This commit is contained in:
cabbage 2025-07-09 09:20:11 +08:00
commit 2417962cd0
136 changed files with 2539 additions and 3550 deletions

View File

@ -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();
/**
* 取消收益区域
*

View File

@ -42,7 +42,7 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
baseMapper.createCuMemberTreeParentIndex(settleTableName);
baseMapper.createCuMemberTreePlaceIndex(settleTableName);
}
// 创建新零售差结算记录表
// 创建新零售差结算记录表
String retailRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + period;
number = baseMapper.queryExistOracleTable(retailRangeTableName);
if (number == null || number <= 0) {

View File

@ -51,7 +51,7 @@ public interface ICuMemberService extends IService<CuMember> {
/**
* 根据等级更新会员等级
*/
void updateCuMemberGradeByPeriod(List<CuMemberGrade> cuMemberGradeList, Integer period);
void updateCuMemberGradeByPeriod(Integer period);
/**
* 查询会员等级

View File

@ -50,7 +50,7 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
}
@Override
public void updateCuMemberGradeByPeriod(List<CuMemberGrade> cuMemberGradeList, Integer period) {
public void updateCuMemberGradeByPeriod(Integer period) {
baseMapper.updateCuMemberGrade(period);
}

View File

@ -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("团队盒数需大于小区盒数");
}
//校验结算日期是否为空

View File

@ -4,12 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.bonus.BdWaresBonusItems;
/**
* <p>
* 特殊商品分配ev奖金明细 Mapper 接口
* </p>
*
* @author hzs
* @since 2024-10-30
*/
public interface BdWaresBonusItemsMapper extends BaseMapper<BdWaresBonusItems> {

View File

@ -9,48 +9,35 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 会员奖金-辅导收益明细表 Mapper 接口
* </p>
*
* @author hzs
* @since 2022-11-15
*/
public interface CuMemberBonusCoachMapper extends BaseMapper<CuMemberBonusCoach> {
/**
* 删除会员奖金汇总表
*
* @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<CuMemberBonusDetail>
* @Author: sui q
* @Date: 2023/1/14 11:18
*/
List<CuMemberBonusCoachExt> queryMemberBonusCoachByBonusItems(BonusParam bonusParam);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
* @return: List<CuMemberBonusDetail>
* @Author: sui q
* @Date: 2023/1/14 11:18
*/
List<CuMemberBonusCoachExt> queryMemberBonusCoachByBonusItemsForServer(@Param("bonusParam") BonusParam bonusParam);
}

View File

@ -9,76 +9,49 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 会员奖金-奖金收益明细表(报单费) Mapper 接口
* </p>
*
* @author hzs
* @since 2022-11-17
*/
public interface CuMemberBonusDetailMapper extends BaseMapper<CuMemberBonusDetail> {
/**
* 删除会员奖金汇总表
*
* @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<CuMemberBonusDetail>
* @Author: sui q
* @Date: 2023/1/14 9:18
*/
List<CuMemberBonusDetailExt> queryMemberBonusDetailByCondition(BonusParam bonusParam);
/**
* 会员端根据查询条件查询会员奖金明细
*
* @param bonusParam 查询条件
* @return: List<CuMemberBonusDetail>
* @Author: sui q
* @Date: 2023/1/14 9:18
*/
List<CuMemberBonusDetailExt> queryMemberBonusDetailByConditionForServer(@Param("bonusParam") BonusParam bonusParam);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
* @return: List<CuMemberBonusDetail>
* @Author: sui q
* @Date: 2023/1/14 11:18
*/
*/
List<CuMemberBonusDetailExt> queryMemberBonusDetailByBonusItems(BonusParam bonusParam);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
* @return: List<CuMemberBonusDetail>
* @Author: sui q
* @Date: 2023/1/14 11:18
*/
List<CuMemberBonusDetailExt> queryMemberBonusDetailByBonusItemsForServer(@Param("bonusParam") BonusParam bonusParam);
}

View File

@ -9,12 +9,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 会员奖金-拓展收益明细表 Mapper 接口
* </p>
*
* @author hzs
* @since 2022-11-15
*/
public interface CuMemberBonusExpandMapper extends BaseMapper<CuMemberBonusExpand> {
@ -22,9 +17,6 @@ public interface CuMemberBonusExpandMapper extends BaseMapper<CuMemberBonusExpan
* 删除会员奖金汇总表
*
* @param period 结算期间
* @return: void
* @Author: sui q
* @Date: 2022/12/13 11:54
*/
void deleteCuMemberBonusExpand(Integer period);
@ -32,30 +24,13 @@ public interface CuMemberBonusExpandMapper extends BaseMapper<CuMemberBonusExpan
* 批量插入会员奖金主表
*
* @param cuMemberBonusExpandList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void batchInsertCuMemberBonusExpand(@Param("cuMemberBonusExpandList") List<?> cuMemberBonusExpandList);
/**
* 批量插入会员奖金,拓展
*
* @param cuMemberBonusExpandList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void insertCuMemberBonusExpand(List<CuMemberBonusExpand> cuMemberBonusExpandList);
/**
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
* @return: List<CuMemberBonusDetail>
* @Author: sui q
* @Date: 2023/1/14 11:18
*/
List<CuMemberBonusExpandExt> queryMemberBonusExpandByBonusItems(BonusParam bonusParam);
@ -63,9 +38,6 @@ public interface CuMemberBonusExpandMapper extends BaseMapper<CuMemberBonusExpan
* 根据查询条件查询固定的奖金明细
*
* @param bonusParam 查询条件
* @return: List<CuMemberBonusDetail>
* @Author: sui q
* @Date: 2023/1/14 11:18
*/
List<CuMemberBonusExpandExt> queryMemberBonusExpandByBonusItemsForServer(@Param("bonusParam") BonusParam bonusParam);
}

View File

@ -20,13 +20,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
*/
List<Long> batchQueryCuMemberBonusSeq(Integer rowNum);
/**
* 根据查询条件查询会员奖金
*
* @param bonusParam 查询条件
*/
List<CuMemberBonus> queryMemberBonusTotalByCondition(BonusParam bonusParam);
/**
* 根据查询条件查询会员奖金
*
@ -46,7 +39,6 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
**/
CuMemberBonusExt queryMemberBonusByConditionForServerSum(@Param("bonusParam") BonusParam bonusParam);
/**
* 根据查询条件查询会员奖金
*
@ -90,10 +82,5 @@ public interface CuMemberBonusMapper extends BaseMapper<CuMemberBonus> {
*/
void mergeBackRangeBonusIncome(@Param("pkOrder") Long pkOrder, @Param("bonusValue") Integer bonusValue);
/**
* 查询会员一周周期的拓展累计复购拓展累计
*/
List<CuMemberBonus> queryWeekMemberBonus(@Param("startPeriod") int startPeriod, @Param("endPeriod") int endPeriod);
void recalculateTeamNewBoxNum(@Param("pkId") Long pkId, @Param("retailsTableName") String retailsTableName);
}

View File

@ -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;
/**
* <p>
* 会员奖金-直推历史轮次记录 Mapper 接口
* </p>
*
* @author hzs
* @since 2023-09-10
*/
public interface CuMemberBonusPushHisMapper extends BaseMapper<CuMemberBonusPushHis> {
}

View File

@ -6,20 +6,12 @@ import com.hzs.common.domain.member.ext.CuMemberShareBonusExt;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* 会员奖金-分红奖金配置 Mapper 接口
* </p>
*
* @author hzs
* @since 2023-07-03
*/
public interface CuMemberShareBonusMapper extends BaseMapper<CuMemberShareBonus> {
/*
* @description: 查询会员分享奖金
* @author: sui q
* @date: 2023/7/3 15:28
* @param: null null
* 查询会员分享奖金
**/
CuMemberShareBonusExt queryCuMemberShareBonus(@Param("pkCountry") Integer pkCountry, @Param("settleMonth") String settleMonth);
}

View File

@ -8,28 +8,13 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 会员奖金-分红奖金配置明细 Mapper 接口
* </p>
*
* @author hzs
* @since 2023-07-03
*/
public interface CuMemberShareDetailMapper extends BaseMapper<CuMemberShareDetail> {
/*
* @description: 更新分享明细
* @author: sui q
* @date: 2023/7/3 14:11
* @param: null null
* 更新分享明细
**/
void saveMemberShareBonus(@Param("cuMemberShareDetailList") List<CuMemberShareDetailExt> cuMemberShareDetailList);
/*
* @description: 根据期间查询对应的奖衔 period当前月第一天
* @author: sui q
* @date: 2023/8/11 15:42
* @param: null null
**/
List<CuMemberShareDetail> queryCuMemberShareBonusByPeriod(Integer period);
}

View File

@ -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;
/**
* <p>
* 会员奖金-最大分红奖金 Mapper 接口
* </p>
*
* @author hzs
* @since 2023-01-06
*/
public interface CuMemberShareMaxMapper extends BaseMapper<CuMemberShareMax> {
/**
* 物理删除理论最大分红金额
* @param period 期间
* @return: void
* @Author: sui q
* @Date: 2023/1/7 10:31
*/
void deleteCuMemberShareMax(Integer period);
}

View File

@ -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;
/**
* 结算开始日期

View File

@ -6,36 +6,22 @@ import com.hzs.common.domain.member.bonus.BdWaresBonusItems;
import java.util.List;
/**
* <p>
* 特殊商品分配ev奖金明细 服务类
* </p>
*
* @author hzs
* @since 2024-10-30
*/
public interface IBdWaresBonusItemsService extends IService<BdWaresBonusItems> {
/*
* @description: 插入奖金特殊项奖金
* @author: sui q
* @date: 2024/11/7 15:04
* @param: null null
* 插入奖金特殊项奖金
**/
void insetWaresBonusItems(List<BdWaresBonusItems> waresBonusItemsList);
/*
* @description: 插入奖金特殊项奖金
* @author: sui q
* @date: 2024/11/7 15:04
* @param: null null
* 插入奖金特殊项奖金
**/
void updateWaresBonusItems(List<BdWaresBonusItems> waresBonusItemsList);
/*
* @description: 插入奖金特殊项奖金
* @author: sui q
* @date: 2024/11/7 15:04
* @param: null null
* 插入奖金特殊项奖金
**/
void deleteWaresBonusItems(List<BdWaresBonusItems> waresBonusItemsList, Long pkWaresBonus, Long userId);

View File

@ -7,30 +7,21 @@ import java.util.List;
import java.util.Set;
/**
* <p>
* 会员奖金-辅导收益明细表 服务类
* </p>
*
* @author hzs
* @since 2022-11-15
*/
public interface ICuMemberBonusCoachService extends IService<CuMemberBonusCoach> {
/**
* 删除会员奖金汇总表
*
* @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<CuMemberBonusCoach> cuMemberBonusCoachList, Set<Long> memberIdSet);
}

View File

@ -7,12 +7,7 @@ import java.util.List;
import java.util.Set;
/**
* <p>
* 会员奖金-奖金收益明细表(报单费) 服务类
* </p>
*
* @author hzs
* @since 2022-11-17
*/
public interface ICuMemberBonusDetailService extends IService<CuMemberBonusDetail> {
@ -20,9 +15,6 @@ public interface ICuMemberBonusDetailService extends IService<CuMemberBonusDetai
* 删除会员奖金汇总表
*
* @param period 结算期间
* @return: void
* @Author: sui q
* @Date: 2022/12/13 11:54
*/
void deleteCuMemberBonusDetail(Integer period);
@ -30,19 +22,7 @@ public interface ICuMemberBonusDetailService extends IService<CuMemberBonusDetai
* 批量插入会员奖金主表
*
* @param cuMemberBonusDetailList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void batchInsertCuMemberBonusDetail(List<CuMemberBonusDetail> cuMemberBonusDetailList, Set<Long> memberIdSet);
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusDetail 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void insertCuMemberBonusDetail(CuMemberBonusDetail cuMemberBonusDetail);
}

View File

@ -7,12 +7,7 @@ import java.util.List;
import java.util.Set;
/**
* <p>
* 会员奖金-拓展收益明细表 服务类
* </p>
*
* @author hzs
* @since 2022-11-15
*/
public interface ICuMemberBonusExpandService extends IService<CuMemberBonusExpand> {
@ -20,9 +15,6 @@ public interface ICuMemberBonusExpandService extends IService<CuMemberBonusExpan
* 删除会员奖金汇总表
*
* @param period 结算期间
* @return: void
* @Author: sui q
* @Date: 2022/12/13 11:54
*/
void deleteCuMemberBonusExpand(Integer period);
@ -30,19 +22,7 @@ public interface ICuMemberBonusExpandService extends IService<CuMemberBonusExpan
* 批量插入会员奖金主表
*
* @param cuMemberBonusExpandList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void batchInsertCuMemberBonusExpand(List<CuMemberBonusExpand> cuMemberBonusExpandList, Set<Long> memberIdSet);
/**
* 批量插入会员奖金主表
*
* @param cuMemberBonusExpandList 会员奖金
* @return: void
* @Author: sui q
* @Date: 2022/12/13 13:56
*/
void insertCuMemberBonusExpand(List<CuMemberBonusExpand> cuMemberBonusExpandList);
}

View File

@ -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;
/**
* <p>
* 会员奖金-直推历史轮次记录 服务类
* </p>
*
* @author hzs
* @since 2023-09-10
*/
public interface ICuMemberBonusPushHisService extends IService<CuMemberBonusPushHis> {
/*
* @description: 查询会员历史推荐
* @author: sui q
* @date: 2023/9/10 14:23
* @param: null null
**/
List<CuMemberBonusPushHis> queryCuMemberBonusPushHis(Long pkMember);
}

View File

@ -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<CuMemberBonus> {
*/
void mergeBackMemberBonusIncome(Long pkOrder);
/**
* 查询会员一周周期的拓展累计复购拓展累计
*/
Map<Long, CuMemberBonus> queryWeekMemberBonus(int startPeriod, int endPeriod);
void calculateBonusTotal(CuMemberBonusExt cuMemberBonusExt, CuMemberBonusExt memberBonusExt);
CuMemberBonusExt initCuMemberBonus();

View File

@ -6,28 +6,17 @@ import com.hzs.common.domain.member.ext.CuMemberShareBonusExt;
import com.hzs.bonus.bonus.param.CuMemberShareBonusParam;
/**
* <p>
* 会员奖金-分红奖金配置 服务类
* </p>
*
* @author hzs
* @since 2023-07-03
*/
public interface ICuMemberShareBonusService extends IService<CuMemberShareBonus> {
/*
* @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);

View File

@ -8,29 +8,13 @@ import java.util.List;
import java.util.Map;
/**
* <p>
* 会员奖金-分红奖金配置明细 服务类
* </p>
*
* @author hzs
* @since 2023-07-03
*/
public interface ICuMemberShareDetailService extends IService<CuMemberShareDetail> {
/*
* @description: 更新分享明细
* @author: sui q
* @date: 2023/7/3 14:11
* @param: null null
* 更新分享明细
**/
void saveMemberShareBonus(List<CuMemberShareDetailExt> cuMemberShareDetailList);
/*
* @description: 根据期间查询奖衔设置的分红配置
* key 国家+奖衔 明细
* @author: sui q
* @date: 2023/8/11 15:35
* @param: null null
**/
Map<String, CuMemberShareDetail> queryCuMemberShareBonusByPeriod(Integer period);
}

View File

@ -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;
/**
* <p>
* 会员奖金-最大分红奖金 服务类
* </p>
*
* @author hzs
* @since 2023-01-06
*/
public interface ICuMemberShareMaxService extends IService<CuMemberShareMax> {
/**
* 插入理论最大的可以进行分红的奖金
* @param cuMemberShareMax 最大分红的奖金
* @return: void
* @Author: sui q
* @Date: 2023/1/6 17:23
*/
void insertMaxShareBonus(CuMemberShareMax cuMemberShareMax);
}

View File

@ -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;
/**
* <p>
* 特殊商品分配ev奖金明细 服务实现类
* </p>
*
* @author hzs
* @since 2024-10-30
*/
@Service
public class BdWaresBonusItemsServiceImpl extends ServiceImpl<BdWaresBonusItemsMapper, BdWaresBonusItems> implements IBdWaresBonusItemsService {

View File

@ -91,7 +91,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 等级列表
List<BdGrade> 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<CuMemberGrade> 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<String, CuMemberRetailRangeExt> countyRangeExtMap = new HashMap<>();
// 区域处理
List<CuMemberRetailRangeExt> countyRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailSecondRangeByCounty(rangeTableName, secondRangeTableName, saOrderExt.getRecCounty());
// 区域会员mapkey:区域分组ID + 区ID ,value: 区域会员结算数据
Map<String, CuMemberRetailRangeExt> 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<CuMemberRetailRangeExt> 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<BdGrade> 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<String, CuMemberGrade> cuMemberGradeMap = new HashMap<>();
@ -282,12 +297,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap, sourceMemberRangeExt);
// 计算团队业绩盒数计算等级奖衔
List<CuMemberRetailRangeExt> 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<CuMemberGrade> memberGradeList = iCuMemberGradeService.queryCuMemberGrade(cuMemberRetailRangeExtList, currentPeriod);
// 查询最大的手动奖衔
// 查询最大的手动等级来源 cu_member_grade
List<CuMemberGrade> cuMemberGradeList1 = iCuMemberGradeService.queryCuMemberGradeByList(currentPeriod, memberRetailRangeExtList);
if (cuMemberGradeList1.size() > 0) {
Map<Long, CuMemberGrade> 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<BdGrade> 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<CuMemberRetailRangeExt> countyRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailRangeByCounty(rangeTableName);
// 区域会员mapkey:系统+区ID ,value: 区域会员结算数据
// 区域会员mapkey:区域分组ID + 区ID ,value: 区域会员结算数据
Map<String, CuMemberRetailRangeExt> countyRangeExtMap = new HashMap<>();
countyRangeExtList.forEach(cuMemberRetailRangeExt ->
countyRangeExtMap.put(cuMemberRetailRangeExt.getSystemType() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
countyRangeExtMap.put(cuMemberRetailRangeExt.getRegionVertexPkId() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
// 会员等级升级记录
List<CuMemberGrade> 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<CuMemberAwards> calculateRetailRangeGradeAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt,
Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName,
Integer boxNum, List<CuMemberGrade> cuMemberGradeList, Map<Long, Date> activateMap) {
BigDecimal boxNum, List<CuMemberGrade> cuMemberGradeList, Map<Long, Date> activateMap) {
// 会员奖衔升级列表
List<CuMemberAwards> 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<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName,
SaOrderExt saOrderExt, Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> 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<CuMemberRetailRangeExt> 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<CuMemberRetailRangeExt> cuMemberRangeExtList = null;
// 校验累计小部门会员数据
List<CuMemberRetailRangeExt> 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<CuMemberRetailRangeExt> 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<CuMemberRetailRangeExt> 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<CuMemberRetailRangeExt> calculateRetailBackRangeGradeAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt,
Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName, Integer boxNum,
Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap, Map<String, CuMemberAwards> cuMemberShareAwardsMap) {
Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName, BigDecimal boxNum,
Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap, Map<String, CuMemberAwards> cuMemberShareAwardsMap,
boolean isSecond) {
List<CuMemberRetailRangeExt> 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<CuMemberRetailRangeExt> 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(),

View File

@ -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);

View File

@ -13,22 +13,13 @@ import java.util.List;
import java.util.Set;
/**
* <p>
* 会员奖金-辅导收益明细表 服务实现类
* </p>
*
* @author hzs
* @since 2022-11-15
*/
@Service
public class CuMemberBonusCoachServiceImpl extends ServiceImpl<CuMemberBonusCoachMapper, CuMemberBonusCoach> 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<CuMemberBonusCoac
@Override
public void batchInsertCuMemberBonusCoach(List<CuMemberBonusCoach> cuMemberBonusCoachList, Set<Long> memberIdSet) {
if(cuMemberBonusCoachList.size() == 0){
if (cuMemberBonusCoachList.size() == 0) {
return;
}
List<CuMemberBonusCoach> 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<List<?>> lists = cuMemberBonusSettle.handleCutList(cuMemberBonusCoaches);

View File

@ -13,22 +13,13 @@ import java.util.List;
import java.util.Set;
/**
* <p>
* 会员奖金-奖金收益明细表(报单费) 服务实现类
* </p>
*
* @author hzs
* @since 2022-11-17
*/
@Service
public class CuMemberBonusDetailServiceImpl extends ServiceImpl<CuMemberBonusDetailMapper, CuMemberBonusDetail> 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<CuMemberBonusDet
@Override
public void batchInsertCuMemberBonusDetail(List<CuMemberBonusDetail> cuMemberBonusDetailList, Set<Long> memberIdSet) {
if(cuMemberBonusDetailList.size() == 0){
if (cuMemberBonusDetailList.size() == 0) {
return;
}
List<CuMemberBonusDetail> 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<List<?>> lists = cuMemberBonusSettle.handleCutList(cuMemberBonusDetails);
@ -54,8 +45,4 @@ public class CuMemberBonusDetailServiceImpl extends ServiceImpl<CuMemberBonusDet
baseMapper.batchInsertCuMemberBonusDetail(list));
}
@Override
public void insertCuMemberBonusDetail(CuMemberBonusDetail cuMemberBonusDetail) {
baseMapper.insertCuMemberBonusDetail(cuMemberBonusDetail);
}
}

View File

@ -13,12 +13,7 @@ import java.util.List;
import java.util.Set;
/**
* <p>
* 会员奖金-拓展收益明细表 服务实现类
* </p>
*
* @author hzs
* @since 2022-11-15
*/
@Service
public class CuMemberBonusExpandServiceImpl extends ServiceImpl<CuMemberBonusExpandMapper, CuMemberBonusExpand> implements ICuMemberBonusExpandService {
@ -37,16 +32,16 @@ public class CuMemberBonusExpandServiceImpl extends ServiceImpl<CuMemberBonusExp
@Override
public void batchInsertCuMemberBonusExpand(List<CuMemberBonusExpand> cuMemberBonusExpandList, Set<Long> memberIdSet) {
if(cuMemberBonusExpandList.size() == 0){
if (cuMemberBonusExpandList.size() == 0) {
return;
}
List<CuMemberBonusExpand> 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<List<?>> lists = cuMemberBonusSettle.handleCutList(memberBonusExpands);
@ -54,9 +49,5 @@ public class CuMemberBonusExpandServiceImpl extends ServiceImpl<CuMemberBonusExp
baseMapper.batchInsertCuMemberBonusExpand(list));
}
@Override
public void insertCuMemberBonusExpand(List<CuMemberBonusExpand> cuMemberBonusExpandList) {
baseMapper.insertCuMemberBonusExpand(cuMemberBonusExpandList);
}
}

View File

@ -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;
/**
* <p>
* 会员奖金-直推历史轮次记录 服务实现类
* </p>
*
* @author hzs
* @since 2023-09-10
*/
@Service
public class CuMemberBonusPushHisServiceImpl extends ServiceImpl<CuMemberBonusPushHisMapper, CuMemberBonusPushHis> implements ICuMemberBonusPushHisService {
@Override
public List<CuMemberBonusPushHis> queryCuMemberBonusPushHis(Long pkMember) {
QueryWrapper<CuMemberBonusPushHis> 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);
}
}

View File

@ -621,14 +621,6 @@ public class CuMemberBonusServiceImpl extends ServiceImpl<CuMemberBonusMapper, C
baseMapper.mergeBackRangeBonusIncome(pkOrder, EBonusItems.RETAIL_AREA_INCOME.getValue());
}
@Override
public Map<Long, CuMemberBonus> queryWeekMemberBonus(int startPeriod, int endPeriod) {
List<CuMemberBonus> cuMemberBonusList = baseMapper.queryWeekMemberBonus(startPeriod, endPeriod);
Map<Long, CuMemberBonus> cuMemberBonusMap = new HashMap<>(ComputeUtil.mapInitCapacity(cuMemberBonusList.size()));
cuMemberBonusList.forEach(cuMemberBonus -> cuMemberBonusMap.put(cuMemberBonus.getPkMember(), cuMemberBonus));
return cuMemberBonusMap;
}
@Override
public void recalculateTeamNewBoxNum(List<Long> pkIdList) {
String retailsTableName = getDayTableName();

View File

@ -36,21 +36,17 @@ import java.math.BigDecimal;
import java.util.*;
/**
* <p>
* 会员奖金-分红奖金配置 服务实现类
* </p>
*
* @author hzs
* @since 2023-07-03
*/
@Service
public class CuMemberShareBonusServiceImpl extends ServiceImpl<CuMemberShareBonusMapper, CuMemberShareBonus> 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<CuMemberShareBonu
private ICuMemberSettlePeriodService cuMemberSettlePeriodService;
@DubboReference
private ICurrencyServiceApi currencyServiceApi;
@Autowired
public void setCuMemberSettlePeriodService(ICuMemberSettlePeriodService cuMemberSettlePeriodService) {
this.cuMemberSettlePeriodService = cuMemberSettlePeriodService;
@ -88,7 +81,7 @@ public class CuMemberShareBonusServiceImpl extends ServiceImpl<CuMemberShareBonu
public void saveMemberShareBonus(CuMemberShareBonusParam cuMemberShareBonusParam) {
CuMemberShareBonusExt cuMemberShareBonusExt = queryCuMemberShareBonus(cuMemberShareBonusParam.getPkCountry(), cuMemberShareBonusParam.getSettleMonth());
CuMemberShareBonus cuMemberShareBonus = BeanUtil.copyProperties(cuMemberShareBonusExt, CuMemberShareBonus.class);
if(cuMemberShareBonus.getPkId() == null){
if (cuMemberShareBonus.getPkId() == null) {
cuMemberShareBonus.setPkCountry(cuMemberShareBonusParam.getPkCountry());
cuMemberShareBonus.setPkCreator(cuMemberShareBonusParam.getPkCreator());
CuMemberSettlePeriod cuMemberSettlePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(cuMemberShareBonusExt.getSettleMonth() + "-01");
@ -96,28 +89,28 @@ public class CuMemberShareBonusServiceImpl extends ServiceImpl<CuMemberShareBonu
CurrencyDTO currencyDTO = currencyServiceApi.getCurrency(cuMemberShareBonusParam.getPkCountry()).getData();
cuMemberShareBonus.setPkRate(currencyDTO.getPkId());
baseMapper.insert(cuMemberShareBonus);
}else{
} else {
cuMemberShareBonus.setPkModified(cuMemberShareBonusParam.getPkCreator());
cuMemberShareBonus.setModifiedTime(DateUtils.currentDateTime());
baseMapper.updateById(cuMemberShareBonus);
}
if(CollectionUtil.isNotEmpty(cuMemberShareBonusExt.getCuMemberShareDetailList())){
if (CollectionUtil.isNotEmpty(cuMemberShareBonusExt.getCuMemberShareDetailList())) {
Map<Integer, CuMemberShareDetailParam> 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<CuMemberShareBonu
@Override
public CuMemberShareBonusExt queryCuMemberShareBonus(Integer pkCountry, String settleMonth) {
CuMemberShareBonusExt cuMemberShareBonusExt = baseMapper.queryCuMemberShareBonus(pkCountry, settleMonth);
if(cuMemberShareBonusExt == null){
if (cuMemberShareBonusExt == null) {
cuMemberShareBonusExt = new CuMemberShareBonusExt();
cuMemberShareBonusExt.setSettleMonth(settleMonth);
Date endDate = DateUtils.parseDate(settleMonth + "-01");
@ -149,7 +142,7 @@ public class CuMemberShareBonusServiceImpl extends ServiceImpl<CuMemberShareBonu
cuMemberAssMap.put(cuMemberAssess.getPkAwards(), cuMemberAssess.getAssessStatus()));
// 查询奖衔 达标人数
for (BdAwards bdAwards : bdAwardsList) {
if(EAwards.MEMBER.getValue() == bdAwards.getAwardsValue()){
if (EAwards.MEMBER.getValue() == bdAwards.getAwardsValue()) {
continue;
}
shareRatio = ComputeUtil.computeAdd(shareRatio, bdAwards.getAbonusRatio());
@ -162,10 +155,10 @@ public class CuMemberShareBonusServiceImpl extends ServiceImpl<CuMemberShareBonu
cuMemberShareDetail.setExpectShareSubtotal(BigDecimal.ZERO);
cuMemberShareDetail.setRealShareIncome(BigDecimal.ZERO);
cuMemberShareDetail.setRealShareSubtotal(BigDecimal.ZERO);
if(cuMemberMap.containsKey(bdAwards.getPkId())){
if (cuMemberMap.containsKey(bdAwards.getPkId())) {
cuMemberShareDetail.setPromoteTotal(cuMemberMap.get(bdAwards.getPkId()));
}
if(cuMemberAssMap.containsKey(bdAwards.getPkId())){
if (cuMemberAssMap.containsKey(bdAwards.getPkId())) {
cuMemberShareDetail.setReachTotal(cuMemberAssMap.get(bdAwards.getPkId()));
}
cuMemberShareDetailList.add(cuMemberShareDetail);
@ -175,10 +168,10 @@ public class CuMemberShareBonusServiceImpl extends ServiceImpl<CuMemberShareBonu
// 处理预发金额 预发合计
for (CuMemberShareDetail cuMemberShareDetail : cuMemberShareDetailList) {
int count = bdAwardsList.size();
if(count > 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);
}

View File

@ -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;
/**
* <p>
* 会员奖金-分红奖金配置明细 服务实现类
* </p>
*
* @author hzs
* @since 2023-07-03
*/
@Service
public class CuMemberShareDetailServiceImpl extends ServiceImpl<CuMemberShareDetailMapper, CuMemberShareDetail> implements ICuMemberShareDetailService {
@ -29,23 +20,4 @@ public class CuMemberShareDetailServiceImpl extends ServiceImpl<CuMemberShareDet
baseMapper.saveMemberShareBonus(cuMemberShareDetailList);
}
/*
* @description: 根据期间查询奖衔设置的分红配置
* @author: sui q
* @date: 2023/8/11 15:35
* @param: null null
**/
@Override
public Map<String, CuMemberShareDetail> queryCuMemberShareBonusByPeriod(Integer period){
List<CuMemberShareDetail> cuMemberShareDetailList = baseMapper.queryCuMemberShareBonusByPeriod(period);
Map<String, CuMemberShareDetail> 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;
}
}

View File

@ -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;
/**
* <p>
* 会员奖金-最大分红奖金 服务实现类
* </p>
*
* @author hzs
* @since 2023-01-06
*/
@Service
public class CuMemberShareMaxServiceImpl extends ServiceImpl<CuMemberShareMaxMapper, CuMemberShareMax> implements ICuMemberShareMaxService {
@Override
@Transactional(rollbackFor = Exception.class)
public void insertMaxShareBonus(CuMemberShareMax cuMemberShareMax) {
// 删除
baseMapper.deleteCuMemberShareMax(cuMemberShareMax.getPeriod());
baseMapper.insert(cuMemberShareMax);
}
}

View File

@ -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;
}

View File

@ -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;
/**

View File

@ -39,6 +39,15 @@ public interface CuMemberGradeMapper extends BaseMapper<CuMemberGrade> {
*/
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);
/**
* 删除等级
*/

View File

@ -8,78 +8,51 @@ import java.util.Date;
import java.util.List;
/**
* <p>
* 新零售会员区域考核明细表 Mapper 接口
* </p>
*
* @author hzs
* @since 2025-01-13
*/
public interface CuRegionAssessDetailMapper extends BaseMapper<CuRegionAssessDetail> {
/*
* @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<Long> 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);
}

View File

@ -11,36 +11,22 @@ import java.util.Date;
import java.util.List;
/**
* <p>
* 新零售会员区域考核 Mapper 接口
* </p>
*
* @author hzs
* @since 2025-01-13
*/
public interface CuRegionAssessMapper extends BaseMapper<CuRegionAssess> {
/*
* @description: 查询考核结果
* @author: sui q
* @date: 2025/1/15 17:22
* @param: null null
* 查询考核结果
**/
List<CuRegionAssessExt> 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<CuRegionAssess> {
* 批量获取cuMemberBonus主键
*
* @param rowNum 数量
* @return: List<Integer>
* @Author: sui q
* @Date: 2022/12/13 13:47
*/
List<Long> 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<CuMemberRetailRegion> queryCuMemberRetailRegion(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
/*
* @description: 查询到期日期是上个月的区域
* @author: sui q
* @date: 2025/2/25 15:45
* @param: null null
* 查询到期日期是上个月的区域
**/
List<CuMemberRetailRegion> 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<CuRegionAssessExt> queryRegionAssessByDate(@Param("memberRetailRegionList") List<CuMemberRetailRegion> memberRetailRegionList, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
}

View File

@ -36,6 +36,15 @@ public interface ICuMemberGradeService extends IService<CuMemberGrade> {
*/
void updateCuMemberGrade(String rangeTableName, Long pkOrder);
/**
* 查询订单升级记录
*
* @param pkMember
* @param pkOrder
* @return
*/
CuMemberRetailRangeExt getMemberLevel(Long pkMember, Long pkOrder);
/**
* 插入会员等级升级记录
*/

View File

@ -7,46 +7,29 @@ import java.util.Date;
import java.util.List;
/**
* <p>
* 新零售会员区域考核明细表 服务类
* </p>
*
* @author hzs
* @since 2025-01-13
*/
public interface ICuRegionAssessDetailService extends IService<CuRegionAssessDetail> {
/*
* @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<Long> 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);
}

View File

@ -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;
/**
* <p>
* 新零售会员区域考核 服务类
* </p>
*
* @author hzs
* @since 2025-01-13
*/
public interface ICuRegionAssessService extends IService<CuRegionAssess> {
/*
* @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<CuRegionAssessExt> queryRegionAssessByCondition(CuRegionAssessParam regionAssessParam);

View File

@ -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<CuMemberGradeMapper, C
}
@Override
@Transactional(rollbackFor = Exception.class)
public CuMemberRetailRangeExt getMemberLevel(Long pkMember, Long pkOrder) {
return baseMapper.getMemberLevel(pkMember, pkOrder);
}
@Override
public void insertCuMemberGrade(List<CuMemberGrade> cuMemberGradeList) {
saveBatch(cuMemberGradeList);
}

View File

@ -10,12 +10,7 @@ import java.util.Date;
import java.util.List;
/**
* <p>
* 新零售会员区域考核明细表 服务实现类
* </p>
*
* @author hzs
* @since 2025-01-13
*/
@Service
public class CuRegionAssessDetailServiceImpl extends ServiceImpl<CuRegionAssessDetailMapper, CuRegionAssessDetail> implements ICuRegionAssessDetailService {
@ -50,8 +45,5 @@ public class CuRegionAssessDetailServiceImpl extends ServiceImpl<CuRegionAssessD
baseMapper.updateCuRegionAssessDetailInit(assessDate);
// 验证汇总业绩和小区业绩是否满足条件汇总业绩满足30000小区满足100000变更为考核通过
baseMapper.updateCuRegionAssessDetailByPv(assessDate);
// 手动开区域由免考修改为正常考核到期后验证近6个月的考核结果达标3次继续有奖衔否则没有
// baseMapper.updateCuRegionAssessDetailByHand(assessDate);
// 更新主表更新达标次数
}
}

View File

@ -1,9 +1,8 @@
package com.hzs.bonus.detail.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle;
import com.hzs.bonus.detail.mapper.CuRegionAssessMapper;
import com.hzs.bonus.detail.service.ICuRegionAssessDetailService;
@ -12,14 +11,13 @@ import com.hzs.bonus.detail.vo.CuRegionAssessDetailVO;
import com.hzs.bonus.detail.vo.CuRegionAssessVO;
import com.hzs.bonus.param.CuRegionAssessParam;
import com.hzs.common.core.constant.MagicNumberConstants;
import com.hzs.common.core.constant.TableNameConstants;
import com.hzs.common.core.enums.EDataSource;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.member.detail.CuRegionAssess;
import com.hzs.common.domain.member.detail.CuRegionAssessDetail;
import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt;
import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
import com.hzs.retail.member.IMemberRetailApi;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -29,21 +27,17 @@ import java.time.temporal.ChronoUnit;
import java.util.*;
/**
* <p>
* 新零售会员区域考核 服务实现类
* </p>
*
* @author hzs
* @since 2025-01-13
*/
@Slf4j
@Service
public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper, CuRegionAssess> 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<CuRegionAssessMapper,
// 每月1号进行考核结算上月最后一期的时候进行区域达标考核
Date assDate = DateUtils.parseStringToDate(settleDate);
Date assessDate = DateUtils.afterDate(1, ChronoUnit.DAYS, assDate);
log.info("assDate : {}", DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, assDate));
log.info("assessDate : {}", DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, assessDate));
if (DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, assessDate).endsWith("01")) {
// 当月第一天
Date startDate = DateUtils.currentMonthFirstDate(assDate);
// 清空数据7天内重算查找结算开始日期相同的是第一次考核,清空明细表主表
// 清空数据之前有区域然后掉区域了新的月份又有了 update
cuRegionAssessDetailService.updateAssessRegionDetailByDate(startDate, assessDate);
log.info("startDate : {}", DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, startDate));
// 清空 1 号到 今天 的考核数据
iCuRegionAssessDetailService.updateAssessRegionDetailByDate(startDate, assessDate);
baseMapper.updateAssessRegionByDate(startDate, assessDate);
deleteAssessRegionByDate(assessDate, 1);
// 生成6期待考核数据查询上月的区域第一次考核的时候明细生成6期
// 查询目前有效的区域配置
List<CuMemberRetailRegion> memberRetailRegionList = baseMapper.queryCuMemberRetailRegion(startDate, assessDate);
if (memberRetailRegionList.size() > 0) {
Map<Long, CuRegionAssess> regionAssessMap = new HashMap<>();
List<CuRegionAssessDetail> 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<Long> cancelRegionList = new ArrayList<>();
// 开始考核 上月最后一天奖衔业绩同步到考核表中
// 查询主表考核结束日期=考核日期的这部分需要生成下6期,最后一期结算完验证是否达标达标后继续生成下一期不达标取消区域
// 查询考核结束日期次数不达标的区域进行区域取消处理
List<CuRegionAssess> cuRegionAssessList = queryCuRegionAssessByEndDate(assessDate);
List<Long> cancelRegionList = new ArrayList<>();
Map<Long, CuRegionAssess> regionAssessMap = new HashMap<>();
List<CuRegionAssessDetail> 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<CuRegionAssessMapper,
// 查询到期日期的区域验证近6个月的达标次数不达标取消
// validateHandAreaAssess(assessDate, startDate, cancelRegionList);
if (cancelRegionList.size() > 0) {
if (!memberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
if (!iMemberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
throw new RuntimeException("区域更新失败");
}
}
}
}
/**
* 定时处理会员收益区域处理前三天
**/
@Override
public void validateHandAreaAssess(Date startDate, Date endDate) {
List<Long> cancelRegionList = new ArrayList<>();
@ -169,7 +201,7 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
}
}
if (cancelRegionList.size() > 0) {
if (!memberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
if (!iMemberRetailApi.cancelRegion(cancelRegionList).isSuccess()) {
throw new RuntimeException("区域更新失败");
}
}
@ -193,21 +225,20 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
}
// 主表
List<List<?>> lists = cuMemberBonusSettle.handleCutList(cuRegionAssessList);
lists.forEach(list ->
baseMapper.batchInsertCuRegionAssess(list));
List<Long> idList = cuRegionAssessDetailService.batchQueryCuRegionAssessDetailSeq(regionAssessDetailList.size());
lists.forEach(list -> baseMapper.batchInsertCuRegionAssess(list));
List<Long> idList = iCuRegionAssessDetailService.batchQueryCuRegionAssessDetailSeq(regionAssessDetailList.size());
for (int j = 0; j < regionAssessDetailList.size(); j++) {
regionAssessDetailList.get(j).setPkId(idList.get(j));
}
// 明细表
List<List<?>> detailList = cuMemberBonusSettle.handleCutList(regionAssessDetailList);
detailList.forEach(detail ->
cuRegionAssessDetailService.batchInsertCuRegionAssessDetail(detail));
detailList.forEach(detail -> iCuRegionAssessDetailService.batchInsertCuRegionAssessDetail(detail));
}
List<CuRegionAssess> queryCuRegionAssessByEndDate(Date settleDate) {
QueryWrapper<CuRegionAssess> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ASSESS_END_DATE", settleDate);
LambdaQueryWrapper<CuRegionAssess> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CuRegionAssess::getAssessEndDate, settleDate);
return baseMapper.selectList(queryWrapper);
}
@ -215,7 +246,7 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
@Transactional(rollbackFor = Exception.class)
public void deleteAssessRegionByDate(Date assessStartDate, Integer assessPeriod) {
// 7天内重算
cuRegionAssessDetailService.deleteAssessRegionDetailByDate(assessStartDate, assessPeriod);
iCuRegionAssessDetailService.deleteAssessRegionDetailByDate(assessStartDate, assessPeriod);
baseMapper.deleteAssessRegionByDate(assessStartDate, assessPeriod);
}

View File

@ -52,17 +52,26 @@
<result column="SHARE_AWARDS_VALUE" property="shareAwardsValue"/>
<result column="RANGE_RATIO" property="rangeRatio"/>
<result column="MONTH_REPURCHASE_RATIO" property="monthRepurchaseRatio"/>
<result column="BENEFIT_AVG_RATIO" property="benefitAvgRatio"/>
<result column="BENEFIT_SHARE_RATIO" property="benefitShareRatio"/>
<result column="coach_algebra" property="coachAlgebra"/>
<result column="coach_ratio" property="coachRatio"/>
<result column="COUNTRY_NAME" property="countryName"/>
<result column="big_box_num" property="bigBoxNum"/>
<result column="small_box_num" property="smallBoxNum"/>
<result column="big_team_pv" property="bigTeamPv"/>
<result column="small_team_pv" property="smallTeamPv"/>
<result column="region_vertex_pk_id" property="regionVertexPkId"/>
<result column="all_new_box_num" property="allNewBoxNum"/>
<result column="all_new_consume_pv" property="allNewConsumePv"/>
<result column="all_team_new_box_num" property="allTeamNewBoxNum"/>
<result column="all_team_new_pv" property="allTeamNewPv"/>
<result column="all_team_box_num" property="allTeamBoxNum"/>
<result column="all_team_month_box_num" property="allTeamMonthBoxNum"/>
<result column="all_team_consume_pv" property="allTeamConsumePv"/>
<result column="all_team_month_pv" property="allTeamMonthPv"/>
</resultMap>
<update id="mergeMemberRetailRangeInit">
@ -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
</update>
<update id="mergeMemberRetailRangeByYesterday">
@ -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
<if test="isSameMonth == 0">
,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
</if>
</update>
@ -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
</foreach>
) 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
</update>
<!-- 当前网体更新极差秒接表 -->
@ -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
</foreach>
) 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
</update>
<update id="mergeMemberRetailGradeByMember">
@ -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
</foreach>
</select>
@ -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 @@
</select>
<select id="batchQueryMemberRetailRangeByCounty" resultMap="CuMemberRetailRangeExt">
select pk_member,
pk_parent,
member_code,
member_name,
select a.pk_member,
a.pk_parent,
a.member_code,
a.member_name,
a.pk_vertex,
a.pk_rate,
a.pk_grade,
a.pk_awards,
@ -539,19 +587,30 @@
a.pk_country,
a.pk_settle_country,
a.region_address,
ba.name country_name,
ba.name country_name,
bg.grade_value,
bg.grade_name,
bw.awards_value,
bw.awards_name,
bwa.awards_value share_awards_value,
a.big_box_num,
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,
a.account_status,
a.category,
bw.range_ratio,
bw.month_repurchase_ratio,
bw.benefit_avg_ratio,
bw.benefit_share_ratio,
a.system_type
a.system_type,
bv.region_vertex_pk_id
from ${rangeTableName} a
inner join bd_awards bw
on bw.pk_id = a.pk_awards
@ -561,6 +620,8 @@
on bg.pk_id = a.pk_grade
inner join bd_area ba
on ba.pk_id = a.region_address
left join bd_vertex bv
on bv.pk_id = a.pk_vertex
where bw.del_flag = 0
and bg.del_flag = 0
and ba.del_flag = 0
@ -591,7 +652,9 @@
bw.month_repurchase_ratio,
bw.benefit_avg_ratio,
bw.benefit_share_ratio,
nvl(nvl(sc.enable_status, r.enable_status), 1) enable_status
nvl(nvl(sc.enable_status, r.enable_status), 1) enable_status,
bt.pk_id pk_rate,
bv.region_vertex_pk_id
from cu_member cm
inner join bd_awards bw
on bw.pk_id = cm.pk_awards
@ -607,6 +670,8 @@
on r.pk_member = cm.pk_id
left join ${secondRangeTableName} sc
on sc.pk_member = cm.pk_id
left join bd_vertex bv
on bv.pk_id = cm.pk_vertex
where bw.del_flag = 0
and bg.del_flag = 0
and ba.del_flag = 0
@ -629,28 +694,36 @@
a.pk_share_awards,
cm.income_status,
cm.pay_time,
b.pk_rate,
nvl(cm.is_activate, a.enable_status) enable_status,
nvl(b.pk_rate, bt.pk_id) pk_rate,
nvl(cm.is_activate, a.enable_status) enable_status,
a.new_box_num,
nvl(b.consume_box_num, 0) + a.new_box_num consume_box_num,
nvl(b.month_box_num, 0) + a.new_box_num month_box_num,
nvl(b.consume_box_num, 0) + nvl(a.new_box_num, 0) consume_box_num,
nvl(b.month_box_num, 0) + nvl(a.new_box_num, 0) month_box_num,
a.new_consume_pv,
nvl(b.consume_pv, 0) + a.new_consume_pv consume_pv,
nvl(b.month_consume_pv, 0) + a.new_consume_pv month_consume_pv,
nvl(b.consume_pv, 0) + nvl(a.new_consume_pv, 0) consume_pv,
nvl(b.month_consume_pv, 0) + nvl(a.new_consume_pv, 0) month_consume_pv,
a.team_new_box_num,
nvl(b.team_box_num, 0) + a.team_new_box_num team_box_num,
nvl(b.team_month_box_num, 0) + a.team_new_box_num team_month_box_num,
nvl(b.team_box_num, 0) + nvl(a.team_new_box_num, 0) team_box_num,
nvl(b.team_month_box_num, 0) + nvl(a.team_new_box_num, 0) team_month_box_num,
a.team_new_pv,
nvl(b.team_consume_pv, 0) + a.team_new_pv team_consume_pv,
nvl(b.team_month_pv, 0) + a.team_new_pv team_month_pv,
nvl(b.team_consume_pv, 0) + nvl(a.team_new_pv, 0) team_consume_pv,
nvl(b.team_month_pv, 0) + nvl(a.team_new_pv, 0) team_month_pv,
a.team_new_amount,
nvl(b.team_consume_amount, 0) + a.team_new_amount team_consume_amount,
nvl(b.team_month_amount, 0) + a.team_new_amount team_month_amount,
nvl(b.big_box_num, 0) big_box_num,
nvl(b.small_box_num, 0) small_box_num,
nvl(b.big_team_pv, 0) big_team_pv,
nvl(b.small_team_pv, 0) small_team_pv,
nvl(b.team_consume_amount, 0) + nvl(a.team_new_amount, 0) team_consume_amount,
nvl(b.team_month_amount, 0) + nvl(a.team_new_amount, 0) team_month_amount,
nvl(b.big_box_num, 0) big_box_num,
nvl(b.small_box_num, 0) small_box_num,
nvl(b.big_team_pv, 0) big_team_pv,
nvl(b.small_team_pv, 0) small_team_pv,
a.system_type,
a.all_new_box_num,
a.all_new_consume_pv,
a.all_team_new_box_num,
a.all_team_new_pv,
nvl(b.all_team_box_num, 0) + nvl(a.all_team_new_box_num, 0) all_team_box_num,
nvl(b.all_team_month_box_num, 0) + nvl(a.all_team_new_pv, 0) all_team_month_box_num,
nvl(b.all_team_consume_pv, 0) + nvl(a.all_team_new_box_num, 0) all_team_consume_pv,
nvl(b.all_team_month_pv, 0) + nvl(a.all_team_new_pv, 0) all_team_month_pv,
bg.grade_value,
bg.grade_name,
bw.awards_value,
@ -659,9 +732,10 @@
bw.month_repurchase_ratio,
bw.benefit_avg_ratio,
bw.benefit_share_ratio,
bws.awards_value share_awards_value,
br.name country_name,
cr.county region_address
bws.awards_value share_awards_value,
br.name country_name,
cr.county region_address,
bv.region_vertex_pk_id
from (
select *
from ${secondTableName} start with pk_member = #{pkMember}
@ -681,81 +755,33 @@
on cr.pk_member = cm.pk_id and cr.effective = 0 and cr.del_flag = 0
left join bd_area br
on br.pk_id = cr.county and br.del_flag = 0
left join bd_vertex bv
on bv.pk_id = cm.pk_vertex
inner join bd_currency bt
on bt.pk_country = cm.pk_settle_country
where bg.del_flag = 0
</select>
<select id="queryCuMemberSecondRangeExtByParent" resultMap="CuMemberRetailRangeExt">
select cm.pk_id pk_member,
cm.pk_parent,
nvl(b.month_consume_pv, 0) + nvl(a.new_consume_pv, 0) month_consume_pv,
nvl(b.team_month_pv, 0) + nvl(a.team_new_pv, 0) team_month_pv,
nvl(b.consume_box_num, 0) + nvl(a.new_box_num, 0) consume_box_num,
nvl(b.team_box_num, 0) + nvl(a.team_new_box_num, 0) team_box_num,
nvl(b.big_box_num, 0) big_box_num,
nvl(b.small_box_num, 0) small_box_num
select cm.pk_id pk_member,
cm.pk_parent,
nvl(b.month_consume_pv, 0) + nvl(a.new_consume_pv, 0) month_consume_pv,
nvl(b.team_month_pv, 0) + nvl(a.team_new_pv, 0) team_month_pv,
nvl(b.consume_box_num, 0) + nvl(a.new_box_num, 0) consume_box_num,
nvl(b.team_box_num, 0) + nvl(a.team_new_box_num, 0) team_box_num,
nvl(b.big_box_num, 0) big_box_num,
nvl(b.small_box_num, 0) small_box_num,
nvl(b.all_team_box_num, 0) + nvl(a.all_team_new_box_num, 0) all_team_box_num,
nvl(b.all_team_month_box_num, 0) + nvl(a.all_team_new_pv, 0) all_team_month_box_num,
nvl(b.all_team_consume_pv, 0) + nvl(a.all_team_new_box_num, 0) all_team_consume_pv,
nvl(b.all_team_month_pv, 0) + nvl(a.all_team_new_pv, 0) all_team_month_pv
from cu_member cm
left join ${secondTableName} a
on cm.pk_id = a.pk_member
left join ${rangeTableName} b
on cm.pk_id = b.pk_member
where cm.pk_parent = #{pkMember}
and cm.del_flag = 0
<!--
select a.pk_member,
cm.member_code,
cm.member_name,
a.pk_parent,
cm.pk_settle_country,
cm.category,
cm.account_status,
a.pk_grade,
a.pk_awards,
cm.income_status,
nvl(b.consume_box_num, 0) + a.new_box_num consume_box_num,
a.new_box_num,
nvl(b.team_box_num, 0) + a.team_new_box_num team_box_num,
nvl(b.month_box_num, 0) + a.team_new_box_num month_box_num,
a.team_new_box_num,
nvl(b.consume_pv, 0) + a.new_consume_pv consume_pv,
nvl(month_consume_pv, 0) + a.new_consume_pv month_consume_pv,
a.new_consume_pv,
nvl(b.team_consume_amount, 0) + a.team_new_amount team_consume_amount,
nvl(b.team_consume_pv, 0) + a.team_new_pv team_consume_pv,
nvl(b.team_month_amount, 0) + a.team_new_amount team_month_amount,
nvl(b.team_month_pv, 0) + a.team_new_pv team_month_pv,
a.team_new_amount,
a.team_new_pv,
bg.grade_value,
bg.grade_name,
bw.awards_value,
bw.awards_name,
nvl(b.big_box_num, 0) big_box_num,
nvl(b.small_box_num, 0) small_box_num,
nvl(b.big_team_pv, 0) big_team_pv,
nvl(b.small_team_pv, 0) small_team_pv,
a.system_type,
bw.range_ratio,
bw.benefit_avg_ratio,
bw.benefit_share_ratio,
br.name country_name
from ${secondTableName} a
left join ${secondTableName} a
on cm.pk_id = a.pk_member
left join ${rangeTableName} b
on a.pk_member = b.pk_member
inner join cu_member cm
on cm.pk_id = a.pk_member
inner join bd_awards bw
on bw.pk_id = a.pk_awards
inner join bd_grade bg
on bg.pk_id = a.pk_grade
left join cu_member_retail_region cr
on cr.pk_member = cm.pk_id and cr.effective = 0 and cr.del_flag = 0
left join bd_area br
on br.pk_id = cr.county and br.del_flag = 0
where bw.del_flag = 0
and bg.del_flag = 0
and a.pk_parent = #{pkMember}
-->
on cm.pk_id = b.pk_member
where cm.pk_parent = #{pkMember}
and cm.del_flag = 0
</select>
<select id="queryCuMemberRetailRangeEnoughAchieve" resultType="com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt">
@ -779,7 +805,11 @@
big_box_num,
small_box_num,
big_team_pv,
small_team_pv
small_team_pv,
all_team_box_num,
all_team_month_box_num,
all_team_consume_pv,
all_team_month_pv
from ${tableName}
where pk_parent = #{pkParent}
</select>

View File

@ -463,70 +463,80 @@
<update id="createCuMemberRetailRangeSecondTable">
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
)
</update>
<update id="createCuMemberRetailRangeTable">
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
)
</update>

View File

@ -307,15 +307,16 @@
<update id="updateCuMemberMinGradeByList">
merge into cu_member a
using (
select pk_member, min(pk_grade) pk_grade from(
select pk_member, min(pk_grade) pk_grade from (
<foreach item="item" index="index" collection="cuMemberGradeList" separator=" union ">
select #{item.pkMember} pk_member,#{item.newLevel} pk_grade from dual
</foreach>)
select #{item.pkMember} pk_member, #{item.newLevel} pk_grade from dual
</foreach>
)
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
</update>
<update id="updateCuMemberLevel">

View File

@ -4,16 +4,16 @@
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.member.bonus.BdWaresBonusItems">
<id column="PK_ID" property="pkId" />
<result column="DEL_FLAG" property="delFlag" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="CREATION_TIME" property="creationTime" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="PK_WARES_BONUS" property="pkWaresBonus" />
<result column="ASS_ACHIEVE" property="assAchieve" />
<result column="ALGEBRA" property="algebra" />
<id column="PK_ID" property="pkId"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="PK_WARES_BONUS" property="pkWaresBonus"/>
<result column="ASS_ACHIEVE" property="assAchieve"/>
<result column="ALGEBRA" property="algebra"/>
</resultMap>
</mapper>

View File

@ -72,17 +72,6 @@
SELECT 1 FROM dual
</insert>
<insert id="insertCuMemberBonusDetail">
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})
</insert>
<delete id="deleteCuMemberBonusDetail">
delete
from CU_MEMBER_BONUS_DETAIL

View File

@ -77,19 +77,7 @@
</foreach>
SELECT 1 FROM dual
</insert>
<insert id="insertCuMemberBonusExpand">
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})
</insert>
<delete id="deleteCuMemberBonusExpand">
delete
from CU_MEMBER_BONUS_EXPAND

View File

@ -244,37 +244,6 @@
b.retail_real_subtotal)
</insert>
<select id="queryMemberBonusTotalByCondition" resultMap="CuMemberBonus">
select cb.period,sum(direct_income) direct_income,sum(expand_income) expand_income,sum(expand_no_capping) expand_no_capping,
sum(expand_capping) expand_capping,sum(coach_income) coach_income,sum(share_income) share_income,
sum(service_income) service_income,sum(back_points) back_points,sum(service_spend) service_spend,
sum(pur_real_subtotal) pur_real_subtotal,sum(repur_range_income) repur_range_income,sum(repur_expand_income) repur_expand_income,
sum(repur_real_subtotal) repur_real_subtotal,sum(cloud_direct_income) cloud_direct_income,sum(cloud_pur_income) cloud_pur_income,
sum(cloud_repur_income) cloud_repur_income,sum(cloud_real_subtotal) cloud_real_subtotal,sum(repur_coupon) repur_coupon,
sum(repur_coupon_share) repur_coupon_share,sum(repur_coupon_subtotal) repur_coupon_subtotal,
sum(global_points) global_points,sum(car_award_points) car_award_points,sum(hi_fun_income) hi_fun_income,
sum(real_income_total) real_income_total,cp.settle_date from cu_member_bonus cb
inner join cu_member cm
on cb.pk_member = cm.pk_id
inner join cu_member_settle_period cp
on cb.period = cp.pk_id
where cb.del_flag=0 and cm.del_flag=0
and cp.del_flag=0 and cb.income_status=0
<if test="pkVertex != null and pkVertex != ''">
and cm.pk_vertex = #{pkVertex}
</if>
<if test="pkTeamCode != null and pkTeamCode != ''">
and cm.pk_team_code = #{pkTeamCode}
</if>
<if test="startDate != null">
and cp.settle_date >=#{startDate, jdbcType=DATE}
</if>
<if test="endDate != null">
and cp.settle_date &lt; #{endDate, jdbcType=DATE}
</if>
group by cb.period,cp.settle_date
</select>
<select id="queryMemberBonusByCondition" resultMap="CuMemberBonus">
select cp.settle_date,
cb.direct_income,
@ -591,18 +560,6 @@
from dual connect by rownum &lt;= #{rowNum}
</select>
<select id="queryWeekMemberBonus" resultMap="CuMemberBonus">
select cb.pk_member, sum(expand_income) expand_income, sum(repur_expand_income) repur_expand_income
from cu_member_bonus cb
inner join BD_SYSTEM_CONFIG sy
on cb.pk_country = sy.pk_country
where sy.key = 'EXPAND_CAP_METHOD1'
and sy.value = '2'
and cb.period >= #{startPeriod}
and cb.period &lt; #{endPeriod}
group by cb.pk_member
</select>
<update id="recalculateTeamNewBoxNum">
MERGE INTO ${retailsTableName} s
USING (

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.bonus.bonus.mapper.CuMemberBonusPushHisMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.member.bonus.CuMemberBonusPushHis">
<id column="PK_ID" property="pkId" />
<result column="DEL_FLAG" property="delFlag" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="CREATION_TIME" property="creationTime" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_MEMBER" property="pkMember" />
<result column="CAL_ACHIEVE" property="calAchieve" />
<result column="ROUND" property="round" />
<result column="SECOND" property="second" />
</resultMap>
</mapper>

View File

@ -4,51 +4,53 @@
<!-- 通用查询映射结果 -->
<resultMap id="CuMemberShareBonusExt" type="com.hzs.common.domain.member.ext.CuMemberShareBonusExt">
<id column="PK_ID" property="pkId" />
<result column="DEL_FLAG" property="delFlag" />
<result column="CREATION_TIME" property="creationTime" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="PERIOD" property="period" />
<result column="PK_RATE" property="pkRate" />
<result column="SETTLE_MONTH" property="settleMonth" />
<result column="EXPECT_SHARE_TOTAL" property="expectShareTotal" />
<result column="REAL_SHARE_TOTAL" property="realShareTotal" />
<id column="PK_ID" property="pkId"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="PERIOD" property="period"/>
<result column="PK_RATE" property="pkRate"/>
<result column="SETTLE_MONTH" property="settleMonth"/>
<result column="EXPECT_SHARE_TOTAL" property="expectShareTotal"/>
<result column="REAL_SHARE_TOTAL" property="realShareTotal"/>
<collection property="cuMemberShareDetailList" ofType="com.hzs.common.domain.member.ext.CuMemberShareDetailExt">
<result column="PK_DETAIL_ID" property="pkId" />
<result column="PK_SHARE_BONUS" property="pkShareBonus" />
<result column="PK_AWARDS" property="pkAwards" />
<result column="pk_awards_val" property="pkAwardsVal" />
<result column="PROMOTE_TOTAL" property="promoteTotal" />
<result column="REACH_TOTAL" property="reachTotal" />
<result column="EXPECT_SHARE_INCOME" property="expectShareIncome" />
<result column="EXPECT_SHARE_SUBTOTAL" property="expectShareSubtotal" />
<result column="REAL_SHARE_INCOME" property="realShareIncome" />
<result column="REAL_SHARE_SUBTOTAL" property="realShareSubtotal" />
<result column="PK_DETAIL_ID" property="pkId"/>
<result column="PK_SHARE_BONUS" property="pkShareBonus"/>
<result column="PK_AWARDS" property="pkAwards"/>
<result column="pk_awards_val" property="pkAwardsVal"/>
<result column="PROMOTE_TOTAL" property="promoteTotal"/>
<result column="REACH_TOTAL" property="reachTotal"/>
<result column="EXPECT_SHARE_INCOME" property="expectShareIncome"/>
<result column="EXPECT_SHARE_SUBTOTAL" property="expectShareSubtotal"/>
<result column="REAL_SHARE_INCOME" property="realShareIncome"/>
<result column="REAL_SHARE_SUBTOTAL" property="realShareSubtotal"/>
</collection>
</resultMap>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
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
</sql>
<select id="queryCuMemberShareBonus" resultMap="CuMemberShareBonusExt">
select cb.*,cb.pk_id pk_detail_id,cd.pk_awards,pk_share_bonus,promote_total,reach_total,expect_share_income,
expect_share_subtotal,real_share_income,real_share_subtotal,ba.awards_name pk_awards_val from cu_member_share_bonus cb
inner join cu_member_share_detail cd
on cb.pk_id = cd.pk_share_bonus
left join bd_awards ba
on cd.pk_awards = ba.pk_id
where cb.del_flag=0 and cd.del_flag=0 and
cb.settle_month = #{settleMonth} and cb.pk_country = #{pkCountry}
select cb.*,
cb.pk_id pk_detail_id,
cd.pk_awards,
pk_share_bonus,
promote_total,
reach_total,
expect_share_income,
expect_share_subtotal,
real_share_income,
real_share_subtotal,
ba.awards_name pk_awards_val
from cu_member_share_bonus cb
inner join cu_member_share_detail cd
on cb.pk_id = cd.pk_share_bonus
left join bd_awards ba
on cd.pk_awards = ba.pk_id
where cb.del_flag = 0
and cd.del_flag = 0
and cb.settle_month = #{settleMonth}
and cb.pk_country = #{pkCountry}
order by pk_awards
</select>

View File

@ -4,62 +4,45 @@
<!-- 通用查询映射结果 -->
<resultMap id="CuMemberShareDetail" type="com.hzs.common.domain.member.bonus.CuMemberShareDetail">
<id column="PK_ID" property="pkId" />
<result column="PK_SHARE_BONUS" property="pkShareBonus" />
<result column="DEL_FLAG" property="delFlag" />
<result column="CREATION_TIME" property="creationTime" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="PK_AWARDS" property="pkAwards" />
<result column="PROMOTE_TOTAL" property="promoteTotal" />
<result column="REACH_TOTAL" property="reachTotal" />
<result column="EXPECT_SHARE_INCOME" property="expectShareIncome" />
<result column="EXPECT_SHARE_SUBTOTAL" property="expectShareSubtotal" />
<result column="REAL_SHARE_INCOME" property="realShareIncome" />
<result column="REAL_SHARE_SUBTOTAL" property="realShareSubtotal" />
<id column="PK_ID" property="pkId"/>
<result column="PK_SHARE_BONUS" property="pkShareBonus"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="PK_AWARDS" property="pkAwards"/>
<result column="PROMOTE_TOTAL" property="promoteTotal"/>
<result column="REACH_TOTAL" property="reachTotal"/>
<result column="EXPECT_SHARE_INCOME" property="expectShareIncome"/>
<result column="EXPECT_SHARE_SUBTOTAL" property="expectShareSubtotal"/>
<result column="REAL_SHARE_INCOME" property="realShareIncome"/>
<result column="REAL_SHARE_SUBTOTAL" property="realShareSubtotal"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
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
</sql>
<update id="saveMemberShareBonus">
merge into cu_member_share_detail a
using(
<foreach collection="cuMemberShareDetailList" item="item" separator=" union ">
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
</foreach>
) b
<foreach collection="cuMemberShareDetailList" item="item" separator=" union ">
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
</foreach>
) 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
</update>
<select id="queryCuMemberShareBonusByPeriod" resultMap="CuMemberShareDetail">
select cd.* from CU_MEMBER_SHARE_BONUS ch
inner join CU_MEMBER_SHARE_DETAIL cd
on ch.pk_id =cd.pk_share_bonus
where ch.del_flag=0 and cd.del_flag=0
and ch.period=#{period}
</select>
</mapper>

View File

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.bonus.bonus.mapper.CuMemberShareMaxMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.member.bonus.CuMemberShareMax">
<id column="PK_ID" property="pkId" />
<result column="DEL_FLAG" property="delFlag" />
<result column="CREATION_TIME" property="creationTime" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="PERIOD" property="period" />
<result column="PK_RATE" property="pkRate" />
<result column="ORDER_ACHIEVE" property="orderAchieve" />
<result column="SHARE_INCOME" property="shareIncome" />
</resultMap>
<delete id="deleteCuMemberShareMax">
delete from CU_MEMBER_SHARE_MAX where period = #{period} and del_flag=0
</delete>
</mapper>

View File

@ -85,6 +85,18 @@
a.pk_grade = b.pk_grade
</update>
<!-- 查询订单升级记录 -->
<select id="getMemberLevel" resultType="com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt">
select cml.pk_member, bg.pk_id pk_grade, bg.grade_value
from cu_member_level cml
left join bd_grade bg
on bg.pk_id = cml.new_level
where cml.del_flag = 0
and cml.up_type = 4
and cml.pk_member = #{pkMember}
and cml.pk_order = #{pkOrder}
</select>
<!-- 删除等级 -->
<delete id="deleteCuMemberGrade">
update cu_member_grade

View File

@ -4,101 +4,133 @@
<!-- 通用查询映射结果 -->
<resultMap id="CuRegionAssessDetail" type="com.hzs.common.domain.member.detail.CuRegionAssessDetail">
<id column="PK_ID" property="pkId" />
<result column="PK_MEMBER" property="pkMember" />
<result column="DEL_FLAG" property="delFlag" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="CREATION_TIME" property="creationTime" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="PK_REGION_ASSESS" property="pkRegionAssess" />
<result column="ASSESS_DATE" property="assessDate" />
<result column="PK_AWARDS" property="pkAwards" />
<result column="TEAM_MONTH_PV" property="teamMonthPv" />
<result column="SMALL_AREA_PV" property="smallAreaPv" />
<result column="ASSESS_STATUS" property="assessStatus" />
<id column="PK_ID" property="pkId"/>
<result column="PK_MEMBER" property="pkMember"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="PK_REGION_ASSESS" property="pkRegionAssess"/>
<result column="ASSESS_DATE" property="assessDate"/>
<result column="PK_AWARDS" property="pkAwards"/>
<result column="TEAM_MONTH_PV" property="teamMonthPv"/>
<result column="SMALL_AREA_PV" property="smallAreaPv"/>
<result column="ASSESS_STATUS" property="assessStatus"/>
</resultMap>
<insert id="batchInsertCuRegionAssessDetail">
insert ALL
<foreach item="item" index="index" collection="cuRegionAssessDetailList" separator=" " >
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}
)
<foreach item="item" index="index" collection="cuRegionAssessDetailList" separator=" ">
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})
</foreach>
SELECT 1 FROM dual
</insert>
<update id="mergeCuRegionAssessDetailTeamPv">
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
</update>
<update id="mergeCuRegionAssessDetailSmallAreaPv">
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>
<update id="updateCuRegionAssessDetailInit">
update cu_region_assess_detail set assess_status=2 where del_flag=0 and assess_date=#{assessDate, jdbcType=DATE}
</update>
<update id="updateCuRegionAssessDetailByPv">
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>
<update id="updateCuRegionAssessDetailByHand">
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 id="updateCuRegionAssessDetailByPv">
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>
<update id="updateAssessRegionDetailByDate">
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) &lt; #{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) &lt; #{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>
<delete id="deleteAssessRegionDetailByDate">
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}
<choose>
<when test="assessPeriod == 1">and assess_period=#{assessPeriod}</when>
<otherwise>and assess_period >= #{assessPeriod}</otherwise>
</choose>
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}
<choose>
<when test="assessPeriod == 1">and assess_period = #{assessPeriod}</when>
<otherwise>and assess_period >= #{assessPeriod}</otherwise>
</choose>
)
</delete>
<select id="batchQueryCuRegionAssessDetailSeq" resultType="java.lang.Long">
select cu_region_assess_detail_seq.nextval from dual connect by rownum &lt;= #{rowNum}
select cu_region_assess_detail_seq.nextval
from dual connect by rownum &lt;= #{rowNum}
</select>
</mapper>

View File

@ -4,96 +4,137 @@
<!-- 通用查询映射结果 -->
<resultMap id="CuRegionAssessExt" type="com.hzs.common.domain.member.detail.ext.CuRegionAssessExt">
<id column="PK_ID" property="pkId" />
<result column="DEL_FLAG" property="delFlag" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="CREATION_TIME" property="creationTime" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="PK_MEMBER" property="pkMember" />
<result column="PK_REGION" property="pkRegion" />
<result column="ASSESS_PERIOD" property="assessPeriod" />
<result column="ASSESS_START_DATE" property="assessStartDate" />
<result column="ASSESS_END_DATE" property="assessEndDate" />
<result column="REACH_NUM" property="reachNum" />
<result column="SOURCE" property="source" />
<result column="MEMBER_CODE" property="memberCode" />
<result column="MEMBER_NAME" property="memberName" />
<result column="PROVINCE_NAME" property="provinceName" />
<result column="CITY_NAME" property="cityName" />
<result column="COUNTY_NAME" property="countyName" />
<result column="ASSESS_ADDRESS" property="assessAddress" />
<id column="PK_ID" property="pkId"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="PK_MEMBER" property="pkMember"/>
<result column="PK_REGION" property="pkRegion"/>
<result column="ASSESS_PERIOD" property="assessPeriod"/>
<result column="ASSESS_START_DATE" property="assessStartDate"/>
<result column="ASSESS_END_DATE" property="assessEndDate"/>
<result column="REACH_NUM" property="reachNum"/>
<result column="SOURCE" property="source"/>
<result column="MEMBER_CODE" property="memberCode"/>
<result column="MEMBER_NAME" property="memberName"/>
<result column="PROVINCE_NAME" property="provinceName"/>
<result column="CITY_NAME" property="cityName"/>
<result column="COUNTY_NAME" property="countyName"/>
<result column="ASSESS_ADDRESS" property="assessAddress"/>
<collection property="cuRegionAssessDetailList" ofType="com.hzs.common.domain.member.detail.CuRegionAssessDetail">
<result column="ASSESS_DATE" property="assessDate" />
<result column="PK_AWARDS" property="pkAwards" />
<result column="TEAM_MONTH_PV" property="teamMonthPv" />
<result column="SMALL_AREA_PV" property="smallAreaPv" />
<result column="ASSESS_STATUS" property="assessStatus" />
<result column="ASSESS_DATE" property="assessDate"/>
<result column="PK_AWARDS" property="pkAwards"/>
<result column="TEAM_MONTH_PV" property="teamMonthPv"/>
<result column="SMALL_AREA_PV" property="smallAreaPv"/>
<result column="ASSESS_STATUS" property="assessStatus"/>
</collection>
</resultMap>
<insert id="batchInsertCuRegionAssess">
insert ALL
<foreach item="item" index="index" collection="cuRegionAssessList" separator=" " >
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}
)
<foreach item="item" index="index" collection="cuRegionAssessList" separator=" ">
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})
</foreach>
SELECT 1 FROM dual
</insert>
<update id="mergeCuRegionAssess">
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 &lt;= #{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 &lt;= #{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
<!-- 手动开通的只查询手效期前6个月的数据 -->
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>
<update id="updateAssessRegionByDate">
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) &lt; #{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) &lt; #{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>
<delete id="deleteAssessRegionByDate">
delete from cu_region_assess where del_flag=0 and
assess_start_date=#{assessStartDate, jdbcType=DATE}
assess_start_date=#{assessStartDate, jdbcType=DATE}
<choose>
<when test="assessPeriod == 1">and assess_period=#{assessPeriod}</when>
<otherwise>and assess_period >= #{assessPeriod}</otherwise>
</choose>
</delete>
<select id="queryCuMemberRetailRegion" resultType="com.hzs.common.domain.retail.member.CuMemberRetailRegion">
select * from cu_member_retail_region where effective=0 and del_flag=0
and nvl(modified_time,creation_time)>= #{startDate, jdbcType=DATE}
and nvl(modified_time,creation_time) &lt; #{endDate, jdbcType=DATE}
select *
from cu_member_retail_region
where effective = 0
and del_flag = 0
and nvl(modified_time, creation_time) >= #{startDate, jdbcType=DATE}
and nvl(modified_time, creation_time) &lt; #{endDate, jdbcType=DATE}
</select>
<select id="batchQueryCuRegionAssessSeq" resultType="java.lang.Long">
select cu_region_assess_seq.nextval from dual connect by rownum &lt;= #{rowNum}
select cu_region_assess_seq.nextval
from dual connect by rownum &lt;= #{rowNum}
</select>
<select id="queryRegionAssessByCondition" resultMap="CuRegionAssessExt">
select cm.member_code,cm.member_name,ca.reach_num,ca.assess_period,
ca.assess_start_date,ca.assess_end_date,ca.reach_num,
(province.name||city.name||county.name) assess_address,
cd.assess_date,cd.assess_status,cd.team_month_pv,cd.small_area_pv,
cd.assess_status /* province.name,city.name,county.name,*/
from cu_region_assess ca
ca.assess_start_date,ca.assess_end_date,ca.reach_num,
(province.name||city.name||county.name) assess_address,
cd.assess_date,cd.assess_status,cd.team_month_pv,cd.small_area_pv,
cd.assess_status /* province.name,city.name,county.name,*/
from cu_region_assess ca
inner join cu_region_assess_detail cd
on ca.pk_id=cd.pk_region_assess
inner join cu_member cm
@ -103,7 +144,7 @@
left join bd_area province on province.PK_ID=cr.province
left join bd_area city on city.PK_ID=cr.city
left join bd_area county on county.PK_ID=cr.county
where ca.del_flag=0 and cd.del_flag=0 and cm.del_flag=0 and cr.del_flag=0
where ca.del_flag=0 and cd.del_flag=0 and cm.del_flag=0 and cr.del_flag=0
<if test="regionAssessParam.assessDate != null">
and cd.assess_date &lt;= #{regionAssessParam.assessDate,jdbcType=DATE}
</if>
@ -121,22 +162,25 @@
</if>
</select>
<select id="queryDueCuMemberRetailRegion" resultType="com.hzs.common.domain.retail.member.CuMemberRetailRegion">
select * from cu_member_retail_region where effective=0 and del_flag=0
and effective_end_date>= #{startDate, jdbcType=DATE}
and effective_end_date &lt; #{endDate, jdbcType=DATE}
select *
from cu_member_retail_region
where effective = 0
and del_flag = 0
and effective_end_date >= #{startDate, jdbcType=DATE}
and effective_end_date &lt; #{endDate, jdbcType=DATE}
</select>
<select id="queryRegionAssessByDate"
resultType="com.hzs.common.domain.member.detail.ext.CuRegionAssessExt">
select cd.pk_member,count(cd.pk_id) pk_id from cu_region_assess ca
inner join cu_region_assess_detail cd
on ca.pk_id=cd.pk_region_assess
inner join cu_region_assess_detail cd
on ca.pk_id=cd.pk_region_assess
where ca.del_flag=0 and cd.del_flag=0
and cd.assess_date>=#{startDate, jdbcType=DATE} and cd.assess_date &lt;=#{endDate, jdbcType=DATE}
and assess_status=0 and ca.pk_member in
and cd.assess_date>=#{startDate, jdbcType=DATE} and cd.assess_date &lt;=#{endDate, jdbcType=DATE}
and assess_status=0 and ca.pk_member in
<foreach collection="memberRetailRegionList" item="item" open="(" close=")" separator=",">
#{item.pkMember}
</foreach>
group by cd.pk_member
group by cd.pk_member
</select>
</mapper>

View File

@ -61,6 +61,8 @@
<result column="WARES_PRICE" property="waresPrice"/>
<result column="WARES_CODE" property="waresCode"/>
<result column="AREA_INCOME" property="areaIncome"/>
<result column="AREA_INCOME_TYPE" property="areaIncomeType"/>
<result column="WARES_BOX_NUM" property="waresBoxNum"/>
</collection>
<collection property="orderItemsExtList" ofType="com.hzs.common.domain.sale.ext.SaOrderItemsExt">
<result column="SI_ITEMS_ID" property="pkId"/>
@ -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)
<if test="orderCode != null and orderCode != ''">
and so.order_code=#{orderCode}
</if>
and so.pay_time >= #{startDate}
and so.pay_time &lt; #{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)
<if test="orderCode != null and orderCode != ''">
and so.order_code=#{orderCode}
</if>
and so.pay_time >= #{startDate}
and so.pay_time &lt; #{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)
<if test="orderCode != null and orderCode != ''">
and so.order_code=#{orderCode}
</if>

View File

@ -2521,10 +2521,13 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
Set<WaresAuthorityParentParam> waresAuthorityParentParamList = new HashSet<>();
// 安置查询
Set<WaresAuthorityParentParam> waresAuthorityPlaceParamList = new HashSet<>();
// 指定会员
Set<Long> 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<CuMemberMapper, CuMember> 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<CuMemberMapper, CuMember> 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);

View File

@ -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())

View File

@ -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("当前区域已经被占用");
}

View File

@ -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

View File

@ -267,6 +267,14 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
*/
private CuMemberRetailAchieveVO getMemberBigAndSmallAchieve(List<CuMemberRetailAchieveVO> 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<CuMemberRetail
param.setLastMonthTableName(getDayTableName(param.getLastMonthDate()));
log.info("MarketDynamicsQueryDateParam : {}", JSONUtil.toJsonStr(param));
List<Long> pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType);
if(CollUtil.isEmpty(pkMemberList)){
return new PageResult<MarketDynamicsDetailVO>(0, new ArrayList<>());
}
param.setPkIdList(pkMemberList);
List<MarketDynamicsDetailVO> detailVOList = baseMapper.getMarketDynamicsDetail(param);
log.info("detailVOList : {}", JSONUtil.toJsonStr(detailVOList));

View File

@ -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()

View File

@ -62,17 +62,20 @@ public class CuMemberRetailAchieveVO implements Serializable {
/**
* 总盒数
*/
@BigDecimalFormat
private BigDecimal totalBox;
/**
* 小市场盒数
*/
@BigDecimalFormat
private BigDecimal smallAreaBox;
/**
* 大市场盒数
*/
@BigDecimalFormat
private BigDecimal bigAreaBox;
/**

View File

@ -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;
}

View File

@ -445,7 +445,7 @@
<!--开始大小区业绩 以累计为准 -->
<select id="selectMemberOrderSumAchieveByPkMember" resultType="com.hzs.retail.member.vo.CuMemberRetailAchieveVO">
SELECT sum(arealPv) arealPv
FROM (SELECT NVL(mr.CONSUME_PV, 0) arealPv
FROM (SELECT (NVL(mr.CONSUME_PV, 0) + NVL( mr.TEAM_CONSUME_PV, 0 )) arealPv
FROM ${memberRetailTable} mr
WHERE mr.category = 0
AND mr.pk_member = #{pkMember}
@ -496,13 +496,13 @@
<foreach collection="pkMemberList" item="pkMember" separator="union all">
SELECT SUM(t1.arealPv) arealPv ,#{pkMember} pkMember
FROM (
SELECT NVL(mr.CONSUME_PV + mr.TEAM_CONSUME_PV,0) arealPv
SELECT NVL(mr.CONSUME_PV + mr.ALL_TEAM_CONSUME_PV,0) arealPv
FROM ${memberRetailTable} mr
WHERE mr.category = 0
AND mr.pk_member = #{pkMember}
UNION ALL
SELECT
NVL( mrs.NEW_CONSUME_PV + mrs.TEAM_NEW_PV, 0 ) arealPv
NVL( mrs.NEW_CONSUME_PV + mrs.ALL_TEAM_NEW_PV, 0 ) arealPv
FROM
${memberRetailSTable} mrs
WHERE mrs.pk_member = #{pkMember}
@ -844,21 +844,21 @@
mr.ENABLE_STATUS,
NVL( mr.CONSUME_PV, 0 ) consumePv,
NVL( mr.NEW_CONSUME_PV, 0 ) newConsumePv,
NVL( mr.TEAM_CONSUME_PV, 0 ) teamConsumePv,
NVL( mr.TEAM_NEW_PV, 0 ) teamNewPv,
NVL( mr.All_TEAM_CONSUME_PV, 0 ) teamConsumePv,
NVL( mr.All_TEAM_NEW_PV, 0 ) teamNewPv,
NVL( mr.CONSUME_BOX_NUM, 0 ) consumeBoxNum,
NVL( mr.NEW_BOX_NUM, 0 ) newBoxNum,
NVL( mr.TEAM_BOX_NUM, 0 ) teamBoxNum,
NVL( mr.TEAM_NEW_BOX_NUM, 0 ) teamNewBoxNum,
NVL( mr.All_TEAM_BOX_NUM, 0 ) teamBoxNum,
NVL( mr.All_TEAM_NEW_BOX_NUM, 0 ) teamNewBoxNum,
NVL( mr.BIG_BOX_NUM, 0 ) bigBoxNum,
NVL( mr.SMALL_BOX_NUM, 0 ) smallBoxNum,
NVL( mrs.NEW_BOX_NUM, 0 ) sNewBoxNum,
NVL( mrs.TEAM_NEW_BOX_NUM, 0 ) sTeamNewBoxNum,
NVL( mrs.NEW_CONSUME_PV, 0 ) sNewConsumePv,
NVL( mrs.TEAM_NEW_PV, 0 ) sTeamNewPv
NVL( mrs.ALL_NEW_BOX_NUM, 0 ) sNewBoxNum,
NVL( mrs.ALL_TEAM_NEW_BOX_NUM, 0 ) sTeamNewBoxNum,
NVL( mrs.ALL_NEW_CONSUME_PV, 0 ) sNewConsumePv,
NVL( mrs.ALL_TEAM_NEW_PV, 0 ) sTeamNewPv
FROM
cu_member cu
left join ${memberRetailTable} mr on cu.PK_ID = mr.PK_MEMBER and mr.CATEGORY = 0
@ -882,15 +882,15 @@
cu.PK_AWARDS,
awards.AWARDS_NAME,
currentMonth.ENABLE_STATUS,
NVL( NVL( currentDay.NEW_CONSUME_PV, 0 ) + NVL( currentDay.TEAM_NEW_PV, 0 ), 0 ) todayPv,
NVL( NVL( currentDay.NEW_BOX_NUM, 0 ) + NVL( currentDay.TEAM_NEW_BOX_NUM, 0 ), 0 ) todayBoxNum,
NVL( NVL( currentDay.ALL_NEW_CONSUME_PV, 0 ) + NVL( currentDay.ALL_TEAM_NEW_PV, 0 ), 0 ) todayPv,
NVL( NVL( currentDay.ALL_NEW_BOX_NUM, 0 ) + NVL( currentDay.ALL_TEAM_NEW_BOX_NUM, 0 ), 0 ) todayBoxNum,
NVL( NVL( currentMonth.NEW_CONSUME_PV, 0 ) + NVL( currentMonth.TEAM_NEW_PV, 0 ), 0 ) yesterdayPv,
NVL( NVL( currentMonth.NEW_BOX_NUM, 0 ) + NVL( currentMonth.TEAM_NEW_BOX_NUM, 0 ), 0 ) yesterdayBoxNum,
NVL( NVL( currentMonth.MONTH_CONSUME_PV, 0 ) + NVL( currentDay.NEW_CONSUME_PV, 0 ) + NVL( currentDay.TEAM_NEW_PV, 0 ), 0 ) currentMonthPv,
NVL( NVL( currentMonth.MONTH_BOX_NUM, 0 ) + NVL( currentMonth.TEAM_MONTH_BOX_NUM, 0 ) + NVL( currentDay.NEW_BOX_NUM, 0 ) + NVL( currentDay.TEAM_NEW_BOX_NUM, 0 ), 0 ) currentMonthBoxNum,
NVL( NVL( currentMonth.MONTH_CONSUME_PV, 0 ) + NVL( currentDay.ALL_NEW_CONSUME_PV, 0 ) + NVL( currentDay.ALL_TEAM_NEW_PV, 0 ), 0 ) currentMonthPv,
NVL( NVL( currentMonth.MONTH_BOX_NUM, 0 ) + NVL( currentMonth.TEAM_MONTH_BOX_NUM, 0 ) + NVL( currentDay.ALL_NEW_BOX_NUM, 0 ) + NVL( currentDay.ALL_TEAM_NEW_BOX_NUM, 0 ), 0 ) currentMonthBoxNum,
NVL( lastMonth.MONTH_CONSUME_PV, 0 ) lastMonthPv,
NVL( lastMonth.MONTH_BOX_NUM, 0 ) lastMonthBoxNum,
NVL( NVL( currentMonth.CONSUME_BOX_NUM, 0 ) + NVL( currentDay.NEW_BOX_NUM, 0 ) + NVL( currentDay.TEAM_NEW_BOX_NUM, 0 ), 0 ) totalBoxNum
NVL( NVL( currentMonth.CONSUME_BOX_NUM, 0 ) + NVL( currentDay.ALL_NEW_BOX_NUM, 0 ) + NVL( currentDay.ALL_TEAM_NEW_BOX_NUM, 0 ), 0 ) totalBoxNum
FROM
cu_member cu
LEFT JOIN ${param.currentDayTableName} currentDay ON cu.PK_ID = currentDay.PK_MEMBER

View File

@ -51,16 +51,8 @@
LEFT JOIN BD_VERTEX bv ON cm.PK_VERTEX = bv.PK_ID
LEFT JOIN BD_REGION_VERTEX brv ON bv.REGION_VERTEX_PK_ID = brv.PK_ID
where 1=1
and cm.pk_id = ${userId}
and cmrr.system_type = #{systemType}
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 = #{userId} )) and DEL_FLAG = 0))
)
and ba.pk_id not in (select cmrr.county
from cu_member_retail_region cmrr
where cmrr.del_flag = 0
and cmrr.pk_country = 1
and cmrr.effective = 0
and cmrr.system_type = #{systemType}
)
</select>
<!-- 插入收益区域 -->
@ -289,6 +281,7 @@
</if>
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}
</select>
<select id="validateBindCountB" resultType="java.lang.Integer">
SELECT
@ -313,6 +306,7 @@
</if>
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}
<!--
GROUP BY
NVL(TO_CHAR(brv.PK_ID), 'NULL_GROUP')

View File

@ -7,15 +7,8 @@ import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* @BelongsProject: hzs_cloud
* @BelongsPackage: com.hzs.report.member.mapper
* @Author: yh
* @CreateTime: 2023-08-26 09:53
* @Description: TODO
* @Version: 1.0
*/
public interface MemberReportMapper {
/**
* 查询伞下直推新增业绩-查询会员
*
@ -27,31 +20,22 @@ public interface MemberReportMapper {
@Param("endPayTime") Date endPayTime);
/**
* @description: 查询伞下直推新增业绩-业绩
* @author: zhang jing
* @date: 2023/9/6 14:10
* @param: [pkMember, memberName, pkAwards, pkTeamCode, pkCountry, startPayTime, endPayTime, pkVertex]
* @return: java.util.List<com.hzs.report.member.vo.DirectPushNewVo>
* 查询伞下直推新增业绩-业绩
*
**/
List<DirectPushNewVo> directPushNewAchieList(@Param("dpo") DirectPushNewVo dpo,
@Param("pkMemberList") List<Long> pkMemberList);
/**
* @description: 查询会员总盒数
* @author: zhang jing
* @date: 2025/2/14 15:02
* @param: [dpb, pkMemberList]
* @return: java.util.List<com.hzs.report.member.vo.DirectPushBoxVo>
* 查询会员总盒数
*
**/
List<DirectPushBoxVo> directPushNewBoxList(@Param("dpo") DirectPushBoxVo dpb,
@Param("dpbList") List<DirectPushBoxVo> dpbList);
/**
* @description: 查询伞下直推新增业绩-业绩
* @author: zhang jing
* @date: 2024/3/18 15:41
* @param: [pkMember, startPayTime, endPayTime, pkCountry, monthList]
* @return: java.util.List<com.hzs.report.member.vo.DirectPushNewVo>
* 查询伞下直推新增业绩-业绩
*
**/
List<DirectPushNewVo> directPushNewAchieUpList(@Param("dpo") DirectPushNewVo dpo,
@Param("pkMemberList") List<Long> pkMemberList);
@ -76,11 +60,8 @@ public interface MemberReportMapper {
List<MemberResettleAchieveVo> memberResettleAchieve(@Param("pkMember") Long pkMember, @Param("memberName") String memberName, @Param("startPayTime") Date startPayTime, @Param("endPayTime") Date endPayTime, @Param("pkVertex") Integer pkVertex, @Param("pkTeamCode") Integer pkTeamCode, @Param("pkCountry") Integer pkCountry, @Param("pkAwards") Integer pkAwards, @Param("orderTypeList") List<Integer> orderTypeList);
/**
* @description: 伞下新增安置业绩
* @author: zhang jing
* @date: 2024/3/12 16:57
* @param: [pkMember, memberName, startPayTime, endPayTime, pkVertex, pkTeamCode, pkCountry, pkAwards, orderTypeList]
* @return: java.util.List<com.hzs.report.member.vo.MemberResettleAchieveVo>
* 伞下新增安置业绩
*
**/
List<MemberResettleAchieveVo> selectBrollyNewABAchieve(@Param("pkMember") Long pkMember,
@Param("memberName") String memberName,
@ -165,14 +146,6 @@ public interface MemberReportMapper {
*/
List<ReportSummaryVo> reportSummaryList(ReportSummaryVo reportSummaryVo);
/**
* 查询会员伞下订单左右区业绩
*
* @param pkMember
* @return
*/
List<MemberPerformanceVo> brollyBelowResettle(@Param("pkMember") Long pkMember, @Param("startPayTime") Date startPayTime, @Param("endPayTime") Date endPayTime, @Param("orderTypeList") List<Integer> orderTypeList);
/**
* 出货明细汇总统计详情
*
@ -244,76 +217,39 @@ public interface MemberReportMapper {
Integer sumQuantity(@Param("productName") String productName, @Param("pkClassify") Integer pkClassify, @Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("pkCountry") Integer pkCountry, @Param("orderTypeList") List<Integer> orderTypeList);
/**
* @description: 查询表是否存在
* @author: zhang jing
* @date: 2024/4/7 16:10
* @param: [tableName]
* @return: java.lang.Integer
* 查询表是否存在
**/
Integer selectExistTable(String tableName);
/**
* @description: 查询直推会员
* @author: zhang jing
* @date: 2025/2/7 16:10
* @param: [pkMember]
* @return: java.util.List<java.lang.Long>
* 查询直推会员
**/
List<Long> selectDirectPushByPkMember(@Param("pkMember") Long pkMember);
/**
* @description: 查询会员业绩
* @author: zhang jing
* @date: 2025/2/7 16:08
* @param: [directPushNewVo]
* @return: com.hzs.report.member.vo.DirectPushNewVo
* 查询会员业绩
**/
DirectPushNewVo selectMemberOrderAchieveByPkMember(DirectPushNewVo directPushNewVo);
/**
* @description: 查询会员个人业绩金额
* @author: zhang jing
* @date: 2025/2/13 11:31
* @param: [directPushNewVo]
* @return: com.hzs.report.member.vo.DirectPushNewVo
**/
DirectPushNewVo querMemberAchieveAmount(DirectPushNewVo directPushNewVo);
List<DirectPushNewVo> selectMemberAchieve(DirectPushNewVo directPushNewVo);
/**
* @description: 查询会员直推伞下业绩金额
* @author: zhang jing
* @date: 2025/2/13 13:34
* @param: [directPushNewVo]
* @return: java.util.List<com.hzs.report.member.vo.DirectPushNewVo>
* 查询会员直推伞下业绩金额
**/
List<DirectPushNewVo> querMemberAchieveAmountTeam(DirectPushNewVo directPushNewVo);
/**
* @description: 添加新的表
* @author: zhang jing
* @date: 2025/2/25 16:20
* @param: [tableName]
* @return: void
* 添加新的表
**/
void createCuMemberAmountBoxTable(String tableName);
/**
* @description: 创建表字段索引
* @author: zhang jing
* @date: 2025/2/25 16:20
* @param: [tableName]
* @return: void
* 创建表字段索引
**/
void createPkMemberIndex (@Param("indexName")String indexName,@Param("tableName")String tableName);
void createPkMemberIndex(@Param("indexName") String indexName, @Param("tableName") String tableName);
/**
* @description: 查询订单金额业绩盒数批量添加会员个人操作
* @author: zhang jing
* @date: 2025/2/12 11:35
* @param: [staDate, endDate, tableName, beforeTabeName, rangeTabeName]
* @return: int
* 查询订单金额业绩盒数批量添加会员个人操作
**/
int innertMemberAmountBoxTable(@Param("staDate") String staDate,
@Param("endDate") String endDate,
@ -322,11 +258,7 @@ public interface MemberReportMapper {
@Param("rangeTabeName") String rangeTabeName);
/**
* @description: 查询订单金额业绩盒数批量添加会员伞下操作
* @author: zhang jing
* @date: 2025/2/12 11:36
* @param: [staDate, endDate, tableName, beforeTabeName, rangeTabeName]
* @return: int
* 查询订单金额业绩盒数批量添加会员伞下操作
**/
int innertTeamAmountBoxTable(@Param("apb") DirectPushAmountPvBoxVo apb,
@Param("staDate") String staDate,
@ -336,92 +268,33 @@ public interface MemberReportMapper {
@Param("rangeTabeName") String rangeTabeName);
/**
* @description: 查询会员订单
* @author: zhang jing
* @date: 2025/2/12 15:59
* @param: [staDate, endDate]
* @return: java.util.List<com.hzs.report.member.vo.DirectPushAmountPvBoxVo>
* 查询会员订单
**/
List<DirectPushAmountPvBoxVo> querMemberOrder(@Param("staDate") String staDate, @Param("endDate") String endDate);
/**
* @description: 7天重算删除会员统计业绩金额盒数表数据
* @author: zhang jing
* @date: 2025/2/12 15:58
* @param: [tableName]
* @return: void
* 7天重算删除会员统计业绩金额盒数表数据
**/
void delMemberAmountBox(@Param("tableName") String tableName);
/**
* @description: 初始化会员直推金额业绩盒数数据
* @author: zhang jing
* @date: 2025/2/14 17:41
* @param: [tableName, rangeTabeName]
* @return: void
* 初始化会员直推金额业绩盒数数据
**/
void washMemberAmountBox(@Param("tableName") String tableName,@Param("rangeTabeName") String rangeTabeName);
void washMemberAmountBox(@Param("tableName") String tableName, @Param("rangeTabeName") String rangeTabeName);
/**
* @description: 将未激活的会员盒数更新为0
* @author: zhang jing
* @date: 2025/2/14 17:41
* @param: [tableName, rangeTabeName]
* @return: void
* 将未激活的会员盒数更新为0
**/
void updMemberBox (@Param("tableName") String tableName,@Param("rangeTabeName") String rangeTabeName);
void updMemberBox(@Param("tableName") String tableName, @Param("rangeTabeName") String rangeTabeName);
/**
* @description: 秒结表查询会员是否激活
* @author: zhang jing
* @date: 2025/2/14 10:25
* @param: [directPushBoxVo]
* @return: java.lang.Integer
* 秒结表查询会员是否激活
**/
List<DirectPushBoxVo> selectMemberActiveState(@Param("dpb") DirectPushBoxVo dpb,
@Param("pkMemberList") List<Long> pkMemberList);
/**
* @description: 查询结束日期总盒数
* @author: zhang jing
* @date: 2025/2/14 12:00
* @param: [directPushBoxVo]
* @return: java.lang.Integer
**/
Integer selectMemberTotalBox(DirectPushBoxVo directPushBoxVo);
/**
* 根据会员编号查询注水
*
* @param memberCode 会员编号
* @return Integer
*/
Integer selectWaterInjection(@Param("memberCode") String memberCode);
/**
* @description: 查询会员注水的大区盒数
* @author: zhang jing
* @date: 2025/2/14 13:22
* @param: [directPushBoxVo]
* @return: java.lang.Integer
**/
Integer selectMemberBoxWaterInjection(DirectPushBoxVo directPushBoxVo);
/**
* @description: 查询会员没有注水的大区盒数
* @author: zhang jing
* @date: 2025/2/14 13:24
* @param: [directPushBoxVo]
* @return: java.lang.Integer
**/
Integer selectMemberBoxNoWaterInjection(DirectPushBoxVo directPushBoxVo);
/**
* @description: 查询直推会员信息
* @author: zhang jing
* @date: 2025/2/17 15:49
* @param: [directPushNewVo]
* @return: java.util.List<com.hzs.report.member.vo.DirectPushNewVo>
* 查询直推会员信息
**/
List<DirectPushNewVo> querDirectPushDetails(DirectPushNewVo directPushNewVo);

View File

@ -107,7 +107,6 @@ public interface MemberReportService {
*/
List<OrderDistribution> getByDistrictOrderDistribution(Date startTime, Date endTime, Integer pkCountry);
/**
* 出货明细汇总
*

View File

@ -184,7 +184,7 @@ public class MemberReportServiceImpl implements MemberReportService {
* @return List<MonthAchieveVO>
*/
private List<MonthAchieveVO> getAchieveMonthTable(String startDate, String endDate) {
MonthAchieveVO monthAchieveVO = null;
MonthAchieveVO monthAchieveVO;
List<MonthAchieveVO> monthAchieveVOList = new ArrayList<>();
LocalDate startLocalDate = DateUtils.getStringToLocalDate(startDate);
LocalDate endLocalDate = DateUtils.getStringToLocalDate(endDate);
@ -347,11 +347,6 @@ public class MemberReportServiceImpl implements MemberReportService {
/**
* 查询伞下业绩金额
*
* @author: zhang jing
* @date: 2025/2/25 15:40
* @param: [dpo]
* @return: java.util.List<com.hzs.report.member.vo.DirectPushNewVo>
**/
private List<DirectPushNewVo> querMemberAchieveAmountTeam(DirectPushNewVo dpo) {
return memberReportMapper.querMemberAchieveAmountTeam(dpo);
@ -359,11 +354,6 @@ public class MemberReportServiceImpl implements MemberReportService {
/**
* 获取直推大区业绩小区业绩
*
* @author: zhang jing
* @date: 2025/2/7 16:21
* @param: [memberAchieveList, rate]
* @return: com.hzs.report.member.vo.DirectPushNewVo
**/
private DirectPushNewVo getMemberBigAndSmallAchieve(List<DirectPushNewVo> memberAchieveList, BigDecimal rate) {
//查询最大业绩
@ -384,14 +374,8 @@ public class MemberReportServiceImpl implements MemberReportService {
/**
* 根据大业绩查询大小区盒数
*
* @author: zhang jing
* @date: 2025/2/25 16:36
* @param: [memberAchieveList, rate]
* @return: com.hzs.report.member.vo.DirectPushNewVo
**/
private DirectPushBoxVo getMemberBigAndSmallBox(List<DirectPushBoxVo> memberAchieveList) {
// 2. 找到 ArealPv 最大的对象
DirectPushBoxVo maxAchieveVO = memberAchieveList.stream()
.max(Comparator.comparing(DirectPushBoxVo::getArealPv))
@ -576,17 +560,6 @@ public class MemberReportServiceImpl implements MemberReportService {
}
}
/**
* 查询会员当日极差秒表名
*
* @return String
*/
private String getTableSName() {
String localDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate).getPkId();
return TableNameConstants.CU_MEMBER_RETAIL_S + period;
}
@Override
public List<DirectPushBoxVo> selectMemberActiveState(DirectPushBoxVo dpbVo, List<Long> pkMemberList) {
return memberReportMapper.selectMemberActiveState(dpbVo, pkMemberList);

View File

@ -9,11 +9,7 @@ import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* @description: 伞下直推查询会员大小区金额业绩盒数
* @author: zhang jing
* @date: 2025/2/10 18:00
* @param:
* @return:
* 伞下直推查询会员大小区金额业绩盒数
**/
@AllArgsConstructor
@NoArgsConstructor
@ -21,7 +17,6 @@ import java.math.BigDecimal;
@Data
public class DirectPushAmountPvBoxVo {
private Long pkMember;
/**
* 金额
@ -42,65 +37,59 @@ public class DirectPushAmountPvBoxVo {
* 金额
*/
@BigDecimalFormat()
private BigDecimal orderAmountReg=BigDecimal.ZERO;
private BigDecimal orderAmountReg = BigDecimal.ZERO;
/**
* 金额
*/
@BigDecimalFormat()
private BigDecimal orderAmountUpg=BigDecimal.ZERO;
private BigDecimal orderAmountUpg = BigDecimal.ZERO;
/**
* 金额
*/
@BigDecimalFormat()
private BigDecimal orderAmountRep=BigDecimal.ZERO;
private BigDecimal orderAmountRep = BigDecimal.ZERO;
/**
* 金额
*/
@BigDecimalFormat()
private BigDecimal orderAmountCon=BigDecimal.ZERO;
private BigDecimal orderAmountCon = BigDecimal.ZERO;
/**
* 业绩
*/
@BigDecimalFormat()
private BigDecimal orderAchieveReg=BigDecimal.ZERO;
private BigDecimal orderAchieveReg = BigDecimal.ZERO;
/**
* 业绩
*/
@BigDecimalFormat()
private BigDecimal orderAchieveUpg=BigDecimal.ZERO;
private BigDecimal orderAchieveUpg = BigDecimal.ZERO;
/**
* 业绩
*/
@BigDecimalFormat()
private BigDecimal orderAchieveRep=BigDecimal.ZERO;
private BigDecimal orderAchieveRep = BigDecimal.ZERO;
/**
* 业绩
*/
@BigDecimalFormat()
private BigDecimal orderAchieveCon=BigDecimal.ZERO;
private BigDecimal orderAchieveCon = BigDecimal.ZERO;
/**
* 盒数
*/
private int boxNumReg;
private BigDecimal boxNumReg;
/**
* 盒数
*/
private int boxNumUpg;
private BigDecimal boxNumUpg;
/**
* 盒数
*/
private int boxNumRep;
private BigDecimal boxNumRep;
/**
* 盒数
*/
private int boxNumCon;
private BigDecimal boxNumCon;
}

View File

@ -38,23 +38,23 @@
TEAM_REP_AMOUNT NUMBER(17,6) default 0 not null,
TEAM_CON_AMOUNT NUMBER(17,6) default 0 not null,
SUM_BOX NUMBER(8) default 0,
BIG_BOX NUMBER(8) default 0,
SMALL_BOX NUMBER(8) default 0,
REG_BOX NUMBER(8) default 0,
UPG_BOX NUMBER(8) default 0,
REP_BOX NUMBER(8) default 0,
CON_BOX NUMBER(8) default 0,
INFLATE_BIG_BOX NUMBER(8) default 0,
INFLATE_SMALL_BOX NUMBER(8) default 0,
SUM_BOX NUMBER(10,2) default 0,
BIG_BOX NUMBER(10,2) default 0,
SMALL_BOX NUMBER(10,2) default 0,
REG_BOX NUMBER(10,2) default 0,
UPG_BOX NUMBER(10,2) default 0,
REP_BOX NUMBER(10,2) default 0,
CON_BOX NUMBER(10,2) default 0,
INFLATE_BIG_BOX NUMBER(10,2) default 0,
INFLATE_SMALL_BOX NUMBER(10,2) default 0,
TEAM_SUM_BOX NUMBER(18) default 0,
TEAM_BIG_BOX NUMBER(18) default 0,
TEAM_SMALL_BOX NUMBER(8) default 0,
TEAM_REG_BOX NUMBER(18) default 0,
TEAM_UPG_BOX NUMBER(18) default 0,
TEAM_REP_BOX NUMBER(18) default 0,
TEAM_CON_BOX NUMBER(18) default 0,
TEAM_SUM_BOX NUMBER(18,2) default 0,
TEAM_BIG_BOX NUMBER(18,2) default 0,
TEAM_SMALL_BOX NUMBER(10,2) default 0,
TEAM_REG_BOX NUMBER(18,2) default 0,
TEAM_UPG_BOX NUMBER(18,2) default 0,
TEAM_REP_BOX NUMBER(18,2) default 0,
TEAM_CON_BOX NUMBER(18,2) default 0,
SUM_PV NUMBER(17,6) default 0 not null,
BIG_PV NUMBER(17,6) default 0 not null,
@ -74,6 +74,7 @@
PK_COUNTRY NUMBER(4) not null
</sql>
<!-- 查询伞下直推新增业绩 -会员 -->
<select id="directPushNewList" resultType="com.hzs.report.member.vo.DirectPushNewVo">
select
@ -704,45 +705,6 @@
</select>
<select id="brollyBelowResettle" resultType="com.hzs.report.member.vo.MemberPerformanceVo">
select 1 placeDept , nvl(sum(so.ORDER_ACHIEVE),0) achieve
from SA_ORDER so
left join cu_member t on so.PK_CREATOR = t.pk_id and t.PLACE_DEPT = 1
where so.del_flag = 0 and so.ORDER_STATUS = 1
<if test="orderTypeList != null">
and SO.ORDER_TYPE in
<foreach collection="orderTypeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="startPayTime != null">
and to_char(so.PAY_TIME, 'yyyy-mm-dd hh24:mi:ss') &gt;= to_char(#{startPayTime}, 'yyyy-mm-dd hh24:mi:ss')
</if>
<if test="endPayTime != null">
and to_char(so.PAY_TIME, 'yyyy-mm-dd hh24:mi:ss') &lt;= to_char(#{endPayTime}, 'yyyy-mm-dd hh24:mi:ss')
</if>
union all
select 2 placeDept , nvl(sum(so.ORDER_ACHIEVE),0) achieve
from SA_ORDER so
left join cu_member t on so.PK_CREATOR = t.pk_id and t.PLACE_DEPT = 2
where so.del_flag = 0 and so.ORDER_STATUS = 1
<if test="orderTypeList != null">
and SO.ORDER_TYPE in
<foreach collection="orderTypeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="startPayTime != null">
and to_char(so.PAY_TIME, 'yyyy-mm-dd hh24:mi:ss') &gt;= to_char(#{startPayTime}, 'yyyy-mm-dd hh24:mi:ss')
</if>
<if test="endPayTime != null">
and to_char(so.PAY_TIME, 'yyyy-mm-dd hh24:mi:ss') &lt;= to_char(#{endPayTime}, 'yyyy-mm-dd hh24:mi:ss')
</if>
</select>
<select id="productShippingDetailsList" resultType="com.hzs.report.member.vo.ProductShippingDetailsInfoVo">
select bp.PRODUCT_CODE productCode,bp.PRODUCT_NAME productName,bc.NAME classifyName,oi.PK_AWARDS pkAwards,oi.QUANTITY quantity,
oi.PRICE price,bw.AWARDS_NAME awardsName
@ -1358,44 +1320,6 @@
AND so.pk_member = #{pkMember})
</select>
<!-- 查询会员个人业绩金额-->
<select id="querMemberAchieveAmount" resultType="com.hzs.report.member.vo.DirectPushNewVo">
SELECT
NVL(MR1.arealPv, 0) - NVL(MR2.SUM_PV, 0) AS arealPv,
NVL(MR1.arealAm, 0) - NVL(MR2.SUM_AMOUNT, 0) AS arealAm
FROM
(
SELECT sum(arealPv) arealPv,
sum(arealAm) arealAm,
#{pkMember} pkMember
FROM (SELECT NVL(mr.SUM_PV, 0) arealPv,
NVL(mr.SUM_AMOUNT, 0) arealAm
FROM ${achieveTableNameEnd} mr
WHERE mr.pk_member = #{pkMember}
<if test="payTime!=null and payTime!=''">
union all
SELECT NVL(SUM(so.order_achieve), 0) arealPv,
NVL(SUM(so.ORDER_AMOUNT), 0) arealAm
FROM sa_order so
WHERE so.del_flag = 0
AND so.order_status = 1
AND so.order_type in (41, 42, 43, 44)
AND so.pay_time >= #{endPayTime}
AND so.pay_time &lt;= #{zonpayTime}
AND so.pk_member = #{pkMember}
</if>
)
) MR1
FULL OUTER JOIN
${achieveTableNameSta} MR2
ON
MR1.pkMember = MR2.PK_MEMBER
WHERE
MR1.pkMember = #{pkMember}
OR MR2.PK_MEMBER = #{pkMember}
</select>
<select id="selectMemberAchieve" resultType="com.hzs.report.member.vo.DirectPushNewVo">
<foreach collection="pkMemberList" item="pkMember" separator="union all">
SELECT SUM(t1.arealPv) arealPv ,#{pkMember} pkMember
@ -1427,43 +1351,6 @@
</foreach>
</select>
<select id="querMemberAchieveAmount" resultType="com.hzs.report.member.vo.DirectPushNewVo">
SELECT
NVL(MR1.arealPv, 0) - NVL(MR2.SUM_PV, 0) AS arealPv,
NVL(MR1.arealAm, 0) - NVL(MR2.SUM_AMOUNT, 0) AS arealAm
FROM
(
SELECT sum(arealPv) arealPv,
sum(arealAm) arealAm,
#{pkMember} pkMember
FROM (SELECT NVL(mr.SUM_PV, 0) arealPv,
NVL(mr.SUM_AMOUNT, 0) arealAm
FROM ${achieveTableNameEnd} mr
WHERE mr.pk_member = #{pkMember}
<if test="payTime!=null and payTime!=''">
union all
SELECT NVL(SUM(so.order_achieve), 0) arealPv,
NVL(SUM(so.ORDER_AMOUNT), 0) arealAm
FROM sa_order so
WHERE so.del_flag = 0
AND so.order_status = 1
AND so.order_type in (41, 42, 43, 44)
AND so.pay_time >= #{endPayTime}
AND so.pay_time &lt;= #{zonpayTime}
AND so.pk_member = #{pkMember}
</if>
)
) MR1
FULL OUTER JOIN
${achieveTableNameSta} MR2
ON
MR1.pkMember = MR2.PK_MEMBER
WHERE
MR1.pkMember = #{pkMember}
OR MR2.PK_MEMBER = #{pkMember}
</select>
<!-- 查询会员直推伞下业绩金额盒数-->
<select id="querMemberAchieveAmountTeam" resultType="com.hzs.report.member.vo.DirectPushNewVo">
<!-- <foreach collection="pkMemberList" item="pkMember" separator="union all">-->
@ -1553,9 +1440,6 @@
) MR2 ON MR1.pkMember = MR2.PK_MEMBER
<!-- </foreach>-->
</select>
@ -1566,100 +1450,98 @@
<include refid="CuMemberAmountBoxTable"></include>
)
</update>
<!-- 创建表字段索引-->
<update id="createPkMemberIndex">
CREATE INDEX ${indexName} ON ${tableName} (pk_member)
</update>
<!-- 查询订单金额,业绩,盒数,批量添加会员个人操作 -->
<update id="innertMemberAmountBoxTable">
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 &lt;= 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 &lt;= 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
</update>
<!-- 查询订单金额,业绩,盒数,批量添加会员伞下操作 -->
<update id="innertTeamAmountBoxTable">
merge into ${tableName} cmab
@ -1798,66 +1673,73 @@
cmab.TEAM_REP_PV = tmp.TEAM_REP_PV,
cmab.TEAM_CON_PV = tmp.TEAM_CON_PV
</update>
<!-- 查询会员订单-->
<select id="querMemberOrder" resultType="com.hzs.report.member.vo.DirectPushAmountPvBoxVo">
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 &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
GROUP BY so.pk_member
</select>
<!-- 7天重算删除会员统计业绩金额盒数表数据-->
<!-- 查询会员订单-->
<select id="querMemberOrder" resultType="com.hzs.report.member.vo.DirectPushAmountPvBoxVo">
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 &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
GROUP BY so.pk_member
</select>
<!-- 7天重算删除会员统计业绩金额盒数表数据-->
<update id="delMemberAmountBox">
delete from ${tableName}
delete
from ${tableName}
</update>
<!-- 未激活的会员盒数为零-->
<update id="updMemberBox">
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
)
</update>
<!-- 初始化会员直推金额业绩盒数数据-->
<!-- 初始化会员直推金额业绩盒数数据-->
<update id="washMemberAmountBox">
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
</update>
<!-- 秒结表查询会员是否激活-->
<select id="selectMemberActiveState" resultType="com.hzs.report.member.vo.DirectPushBoxVo">
<foreach collection="pkMemberList" item="pkMember" separator="union all">
SELECT min(t0.enable_status) enableStatus,
#{pkMember} pkMember
FROM (SELECT mr.enable_status
FROM ${dpb.memberRetailTable} mr
where mr.pk_member = #{pkMember}
<if test="dpb.payTime!=null and dpb.payTime!=''">
union all
SELECT mrs.enable_status
FROM ${dpb.memberRetailSTable} mrs
where mrs.pk_member = #{pkMember}
</if>
) t0
</foreach>
</select>
<!-- 查询总盒数-->
<select id="selectMemberTotalBox" resultType="integer">
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}
<if test="payTime!=null and payTime!=''">
<!-- 秒结表查询会员是否激活-->
<select id="selectMemberActiveState" resultType="com.hzs.report.member.vo.DirectPushBoxVo">
<foreach collection="pkMemberList" item="pkMember" separator="union all">
SELECT min(t0.enable_status) enableStatus,
#{pkMember} pkMember
FROM (SELECT mr.enable_status
FROM ${dpb.memberRetailTable} mr
where mr.pk_member = #{pkMember}
<if test="dpb.payTime!=null and dpb.payTime!=''">
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}
</if>
)
</select>
) t0
</foreach>
<select id="selectWaterInjection" resultType="integer">
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 &lt; TRUNC(SYSDATE)
and sr.member_code = #{memberCode}
ORDER BY sr.period_date desc) t0
where rownum = 1
</select>
<select id="selectMemberBoxWaterInjection" resultType="integer">
SELECT NVL(mr.big_box_num, 0) smallAreaBox
FROM ${memberRetailTable} mr
WHERE mr.category = 0
AND mr.pk_member = #{pkMember}
</select>
<select id="selectMemberBoxNoWaterInjection" resultType="integer">
SELECT nvl(max(smallAreaBox), 0) smallareabox
from
(
<if test="pkMemberList != null and pkMemberList.size > 0">
<include refid="selectMemberDirectPushBox"/>
union all
</if>
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}
<if test="payTime!=null and payTime!=''">
union all
select rs.new_box_num smallAreaBox
from ${memberRetailSTable} rs
where rs.pk_member = #{pkMember}
</if>
)
)
</select>
<sql id="selectMemberDirectPushBox">
@ -2003,6 +1827,4 @@
</if>
</select>
</mapper>

View File

@ -599,7 +599,6 @@ public class ApiRetailOrderController {
.channel(shoppingCartRedis.getSource())
.waresCode(shoppingCartRedis.getWaresCode())
.quantity(shoppingCartRedis.getNumber())
.pkMakerSpace(shoppingCartRedis.getPkMakerSpace())
.build();
List<WaresItemsParam> waresItemsParamList = new ArrayList<>(shoppingCartRedis.getProductGroup().size());
for (ProductGroup productGroup : shoppingCartRedis.getProductGroup()) {

View File

@ -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<BdGrade> gradeList, int boxNum, int baseBoxNum, BdGrade updateGrade) {
BigDecimal price;
if (null != updateGrade) {
// V4V5直接给固定价格不会因升级变动
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<SaOrderItems> createSaOrderItems(RetailOrderParam orderParam, List<BdGrade> gradeList,
CuMember cuMember, SaOrderExt saOrderExt, CurrencyDTO currency) {
// 需要查询盒数商品
List<String> boxProductList = BoxProductUtil.getBoxProductListBySystemType(null);
List<String> boxWaresList = BoxProductUtil.getBoxWaresListBySystemType(null);
// 订单明细信息
List<SaOrderItems> 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<BdGrade> 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<Integer, Integer> waresLimitMap = new HashMap<>();
// 盒数商品
List<String> boxProductList = BoxProductUtil.getBoxProductListBySystemType(saOrderExt.getSystemType());
List<String> 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()) {

View File

@ -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<String> 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<CuMemberExt> 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<Integer, String> 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<WaresItemsParam> waresItemsParamList = new ArrayList<>(shoppingCartRedis.getProductGroup().size());
for (ProductGroup productGroup : shoppingCartRedis.getProductGroup()) {

View File

@ -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());

View File

@ -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<SaOrderItems> {
*/
List<OrderItemsParam> 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<String> waresCodeList,
@Param("payTime") Date payTime,
@Param("orderTypeList") List<Integer> orderTypeList,
@Param("systemType") Integer systemType);
/**
* 查询新零售购买指定商品数量
*
@ -285,11 +270,11 @@ public interface SaOrderItemsMapper extends BaseMapper<SaOrderItems> {
* @param systemType 系统类型可为null
* @return
*/
int getRetailWaresQuantityNew(@Param("pkMember") Long pkMember,
@Param("waresCodeList") List<String> waresCodeList,
@Param("payTime") Date payTime,
@Param("orderTypeList") List<Integer> orderTypeList,
@Param("systemType") Integer systemType);
BigDecimal getRetailWaresQuantityNew(@Param("pkMember") Long pkMember,
@Param("waresCodeList") List<String> waresCodeList,
@Param("payTime") Date payTime,
@Param("orderTypeList") List<Integer> orderTypeList,
@Param("systemType") Integer systemType);
/**
* 订单发货数量

View File

@ -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;
/**
* 商品明细

View File

@ -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<SaOrderItems> {
*/
List<OrderItemsParam> selectByWaresCodeList(String orderCode);
/**
* 查询新零售购买指定商品数量
*
* @param pkMember 会员ID
* @param waresCodeList 商品编号列表
* @param payTime 支付时间可为null
* @param orderTypeList 订单类型列表
* @param systemType 系统类型可为null
* @return
*/
int getRetailWaresQuantity(Long pkMember, List<String> waresCodeList, Date payTime, List<Integer> orderTypeList, Integer systemType);
/**
* 查询新零售购买指定商品数量
*
@ -249,7 +238,7 @@ public interface ISaOrderItemsService extends IService<SaOrderItems> {
* @param systemType 系统类型可为null
* @return
*/
int getRetailWaresQuantityNew(Long pkMember, List<String> waresCodeList, Date payTime, List<Integer> orderTypeList, Integer systemType);
BigDecimal getRetailWaresQuantityNew(Long pkMember, List<String> waresCodeList, Date payTime, List<Integer> orderTypeList, Integer systemType);
/**
* 订单发货数量

View File

@ -154,14 +154,14 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
@Override
public String checkOrderRetailProduct(OrderProductParam param) {
// 盒数商品对应的产品列表
List<Integer> pkProductList = iBdWaresService.listBoxProduct(BoxProductUtil.getBoxProductListBySystemType(null));
List<Integer> pkProductList = iBdWaresService.listBoxProduct(BoxProductUtil.getBoxWaresListBySystemType(null));
// 换货产品列表
List<Integer> paramProductList = param.getItemList().stream().map(OrderProductDetailParam::getPkProduct).collect(Collectors.toList());
SaOrder saOrder = iSaOrderService.getOne(Wrappers.<SaOrder>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<BdWaresDetail> tmpList = iBdWaresService.listBoxProductAndWares(BoxProductUtil.getBoxProductListBySystemType(null), saOrderItems.getPkProduct(), ESpecialArea.getRetailSpecialAreaValue(saOrder.getOrderType()));
List<BdWaresDetail> 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);

View File

@ -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<SaOrderItemsMapper, SaO
}
@Override
public int getRetailWaresQuantity(Long pkMember, List<String> waresCodeList, Date payTime, List<Integer> orderTypeList, Integer systemType) {
return baseMapper.getRetailWaresQuantity(pkMember, waresCodeList, payTime, orderTypeList, systemType);
}
@Override
public int getRetailWaresQuantityNew(Long pkMember, List<String> waresCodeList, Date payTime, List<Integer> orderTypeList, Integer systemType) {
public BigDecimal getRetailWaresQuantityNew(Long pkMember, List<String> waresCodeList, Date payTime, List<Integer> orderTypeList, Integer systemType) {
return baseMapper.getRetailWaresQuantityNew(pkMember, waresCodeList, payTime, orderTypeList, systemType);
}

View File

@ -7,11 +7,9 @@ import org.apache.ibatis.annotations.Param;
/**
* 商品拓展表 Mapper 接口
*
* @author hzs
* @since 2022-09-01
*/
public interface BdProductExtendMapper extends BaseMapper<BdProductExtend> {
/**
* 根据产品id查询产品拓展
*

View File

@ -5,12 +5,7 @@ import com.hzs.common.domain.sale.ext.BdProductExtendExt;
import com.hzs.common.domain.sale.product.BdProductExtend;
/**
* <p>
* 商品拓展表 服务类
* </p>
*
* @author hzs
* @since 2022-09-01
*/
public interface IBdProductExtendService extends IService<BdProductExtend> {
@ -20,7 +15,7 @@ public interface IBdProductExtendService extends IService<BdProductExtend> {
* @param productId
* @return
*/
public BdProductExtend getProductExtend(Integer productId);
BdProductExtend getProductExtend(Integer productId);
/**
* 根据产品id 查找当前商品的上一位商品排序

View File

@ -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;
/**
* <p>
* 商品拓展表 服务实现类
* </p>
*
* @author hzs
* @since 2022-09-01
*/
@Service
public class BdProductExtendServiceImpl extends ServiceImpl<BdProductExtendMapper, BdProductExtend> 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();

View File

@ -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<WaresVo> resultList = waresService.selectByWaresInfo(waresParams);
List<WaresVo> resultList = iBdWaresService.selectByWaresInfo(waresParams);
if (CollectionUtil.isNotEmpty(resultList)) {
R<CurrencyDTO> 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<WaresProductDetailVo> waresDetailList = waresDetailService.selectByList(waresVo.getPkWares());
List<WaresProductDetailVo> 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<WaresVo> resultList = waresService.selectByWaresInfo(waresParams);
List<WaresVo> resultList = iBdWaresService.selectByWaresInfo(waresParams);
if (CollectionUtil.isNotEmpty(resultList)) {
R<CurrencyDTO> currencyDto = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
// 获取需要翻译的枚举翻译
Map<String, String> 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<WaresProductDetailVo> waresDetailList = waresDetailService.selectByList(waresVo.getPkWares());
List<WaresProductDetailVo> 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<WaresVo> 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<BdWares> 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<BdWares> 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<BdWares> 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<BdWares> 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<List<BdRangeExt>> rangeDto = rangeServiceApi.queryRange(SecurityUtils.getPkCountry());
R<List<BdRangeExt>> rangeDto = iRangeServiceApi.queryRange(SecurityUtils.getPkCountry());
List<BdRangeExt> rsList = rangeDto.getData();
Map<Integer, BdRangeExt> rangeMap = rsList.stream().collect(Collectors.toMap(BdRangeExt::getPkId, Function.identity()));
BdWares wares = waresService.getById(pkId);
BdWares wares = iBdWaresService.getById(pkId);
LambdaQueryWrapper<BdWaresExtend> 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> 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<BdWaresLabel> waresLabelWrapper = new LambdaQueryWrapper<>();
waresLabelWrapper.eq(BdWaresLabel::getPkWares, pkId);
List<BdWaresLabel> labelList = waresLabelService.list(waresLabelWrapper);
List<BdWaresLabel> labelList = iBdWaresLabelService.list(waresLabelWrapper);
// 保证标签
List<Integer> pkGuaranteeLabel = new ArrayList<>();
// 卖点标签
@ -587,7 +556,7 @@ public class BdWaresController extends BaseController {
//包装和规格
LambdaQueryWrapper<BdWaresSpecsPack> waresSpecsPackWrapper = new LambdaQueryWrapper<>();
waresSpecsPackWrapper.eq(BdWaresSpecsPack::getPkWares, pkId);
List<BdWaresSpecsPack> list = waresSpecsPackService.list(waresSpecsPackWrapper);
List<BdWaresSpecsPack> list = iBdWaresSpecsPackService.list(waresSpecsPackWrapper);
List<WaresSpecsPackParams> waresSpecsPackList = new ArrayList<>();
for (BdWaresSpecsPack bdWaresSpecsPack : list) {
WaresSpecsPackParams waresSpecsPackParams = BeanUtil.copyProperties(bdWaresSpecsPack, WaresSpecsPackParams.class);
@ -598,14 +567,14 @@ public class BdWaresController extends BaseController {
//产品详情列表
LambdaQueryWrapper<BdWaresDetail> waresDetailWrapper = new LambdaQueryWrapper<>();
waresDetailWrapper.eq(BdWaresDetail::getPkWares, pkId);
List<BdWaresDetail> waresDetailList = waresDetailService.list(waresDetailWrapper);
List<BdWaresDetail> waresDetailList = iBdWaresDetailService.list(waresDetailWrapper);
// 商品详情
List<WaresDetailParams> detailList = new ArrayList<>();
// 商品sku
List<WaresSpecsSkuParams> 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<BdWaresSpecsSku> specsSku = new LambdaQueryWrapper<>();
specsSku.eq(BdWaresSpecsSku::getPkWares, pkId);
specsSku.eq(BdWaresSpecsSku::getPkWaresDetail, bd.getPkId());
List<BdWaresSpecsSku> specsSkuList = waresSpecsSkuService.list(specsSku);
List<BdWaresSpecsSku> 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<BdWaresSpecs> waresSpecsList = new ArrayList<>();
LambdaQueryWrapper<BdWaresSpecsRelation> waresSpecsRelation = new LambdaQueryWrapper<>();
waresSpecsRelation.eq(BdWaresSpecsRelation::getPkWaresSpecsSku, bdWaresSpecsSku.getPkId());
List<BdWaresSpecsRelation> rslist = waresSpecsRelationService.list(waresSpecsRelation);
List<BdWaresSpecsRelation> 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<BdWaresAuthority> authorityWrapper = new LambdaQueryWrapper<>();
authorityWrapper.eq(BdWaresAuthority::getPkWares, pkId);
List<BdWaresAuthority> authList = waresAuthorityService.list(authorityWrapper);
List<BdWaresAuthority> authList = iBdWaresAuthorityService.list(authorityWrapper);
List<WaresAuthorityParam> waresAuthorityList = new ArrayList<>();
for (BdWaresAuthority bdWaresAuthority : authList) {
WaresAuthorityParam waresAuthorityParam = BeanUtil.copyProperties(bdWaresAuthority, WaresAuthorityParam.class);
@ -661,10 +630,10 @@ public class BdWaresController extends BaseController {
waresParams.setWaresAuthorityList(waresAuthorityList);
// 极差
List<WaresRangeParams> waresRangeList = new ArrayList<>();
List<BdWaresRange> rangeList = waresRangeService.queryWaresList(pkId, SecurityUtils.getPkCountry());
List<BdWaresRange> rangeList = iBdWaresRangeService.queryWaresList(pkId, SecurityUtils.getPkCountry());
LambdaQueryWrapper<BdWaresRange> waresRangeWrapper = new LambdaQueryWrapper<>();
waresRangeWrapper.eq(BdWaresRange::getPkWares, pkId);
int waresRangeCount = waresRangeService.count(waresRangeWrapper);
int waresRangeCount = iBdWaresRangeService.count(waresRangeWrapper);
List<Integer> rgList = new ArrayList<>();
for (BdWaresRange bdWaresRange : rangeList) {
if (bdWaresRange.getPkId() != null) {
@ -675,10 +644,10 @@ public class BdWaresController extends BaseController {
List<BdWaresSpecs> waresSpecsList = new ArrayList<>();
LambdaQueryWrapper<BdWaresSpecsRelation> waresSpecsRelation = new LambdaQueryWrapper<>();
waresSpecsRelation.eq(BdWaresSpecsRelation::getPkWaresSpecsSku, bdWaresRange.getPkWaresSpecsSku());
List<BdWaresSpecsRelation> rslist = waresSpecsRelationService.list(waresSpecsRelation);
List<BdWaresSpecsRelation> 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());
}
@ -691,7 +660,7 @@ public class BdWaresController extends BaseController {
} else {
waresRangeParams.setRangeName(null);
}
BdProduct product = productService.getProduct(bdWaresRange.getPkProduct());
BdProduct product = iBdProductService.getProduct(bdWaresRange.getPkProduct());
waresRangeParams.setProductCode(product.getProductCode());
waresRangeParams.setProductName(product.getProductName());
waresRangeParams.setProductCover(product.getCover());
@ -711,7 +680,7 @@ public class BdWaresController extends BaseController {
for (BdWaresDetail bdWaresDetail : waresDetailList) {
WaresRangeParams waresRangeParams = new WaresRangeParams();
waresRangeParams.setPkRange(rg);
BdProduct product = productService.getProduct(bdWaresDetail.getPkProduct());
BdProduct product = iBdProductService.getProduct(bdWaresDetail.getPkProduct());
waresRangeParams.setPkProduct(product.getPkId());
waresRangeParams.setProductCode(product.getProductCode());
waresRangeParams.setProductName(product.getProductName());
@ -725,16 +694,16 @@ public class BdWaresController extends BaseController {
LambdaQueryWrapper<BdWaresRange> qe = new LambdaQueryWrapper<>();
qe.eq(BdWaresRange::getPkWares, bdWaresDetail.getPkWares());
qe.eq(BdWaresRange::getPkWaresDetail, bdWaresDetail.getPkId());
List<BdWaresRange> wrList = waresRangeService.list(qe);
List<BdWaresRange> wrList = iBdWaresRangeService.list(qe);
// 查询每一个sku 的所有规格
List<BdWaresSpecs> waresSpecsList = new ArrayList<>();
for (BdWaresRange bdWaresRange : wrList) {
LambdaQueryWrapper<BdWaresSpecsRelation> waresSpecsRelation = new LambdaQueryWrapper<>();
waresSpecsRelation.eq(BdWaresSpecsRelation::getPkWaresSpecsSku, bdWaresRange.getPkWaresSpecsSku());
List<BdWaresSpecsRelation> rslist = waresSpecsRelationService.list(waresSpecsRelation);
List<BdWaresSpecsRelation> 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());
}
@ -755,19 +724,19 @@ public class BdWaresController extends BaseController {
// 查询商品级别
LambdaQueryWrapper<BdWaresGrade> qw = new LambdaQueryWrapper<>();
qw.eq(BdWaresGrade::getPkWares, pkId);
List<BdWaresGrade> waresGradeIds = waresGradeService.list(qw);
List<BdWaresGrade> waresGradeIds = iBdWaresGradeService.list(qw);
List<Integer> ids = waresGradeIds.stream().map(BdWaresGrade::getPkRange).collect(Collectors.toList());
waresParams.setWaresGradeIds(ids);
// 查询商品奖衔
LambdaQueryWrapper<BdWaresAwards> qe = new LambdaQueryWrapper<>();
qe.eq(BdWaresAwards::getPkWares, pkId);
List<BdWaresAwards> waresAwardsIds = waresAwardsService.list(qe);
List<BdWaresAwards> waresAwardsIds = iBdWaresAwardsService.list(qe);
List<Integer> waresAwardsArray = waresAwardsIds.stream().map(BdWaresAwards::getPkAwards).collect(Collectors.toList());
waresParams.setWaresAwardsIds(waresAwardsArray);
// 查询商品权限配置
LambdaQueryWrapper<BdWaresAuthorize> qa = new LambdaQueryWrapper<>();
qa.eq(BdWaresAuthorize::getPkWares, pkId);
List<BdWaresAuthorize> waresAuthoritys = waresAuthorizeService.list(qa);
List<BdWaresAuthorize> waresAuthoritys = iBdWaresAuthorizeService.list(qa);
List<Integer> waresAuthorizeList = waresAuthoritys.stream().map(BdWaresAuthorize::getValue).collect(Collectors.toList());
waresParams.setWaresMemberAuthorizeList(waresAuthorizeList);
return AjaxResult.success(waresParams);
@ -784,7 +753,7 @@ public class BdWaresController extends BaseController {
@Log(module = EOperationModule.WARES_LIST, business = EOperationBusiness.THIRD_WARES_LIST, method = EOperationMethod.UP_MOVE)
public AjaxResult move(Integer waresId, Integer waresMoveType, Integer specialArea) {
LoginUser loginUser = userTokenService.getLoginUser();
waresService.waresMove(waresId, waresMoveType, loginUser, specialArea);
iBdWaresService.waresMove(waresId, waresMoveType, loginUser, specialArea);
return AjaxResult.success();
}
@ -799,7 +768,7 @@ public class BdWaresController extends BaseController {
@Log(module = EOperationModule.WARES_LIST, business = EOperationBusiness.THIRD_WARES_LIST, method = EOperationMethod.TOP)
public AjaxResult floatingRoof(Integer waresId) {
LoginUser loginUser = userTokenService.getLoginUser();
waresService.floatingRoof(waresId, loginUser);
iBdWaresService.floatingRoof(waresId, loginUser);
return AjaxResult.success();
}
@ -811,7 +780,7 @@ public class BdWaresController extends BaseController {
@GetMapping("/botton-up")
public AjaxResult bottomUp(Integer waresId) {
LoginUser loginUser = userTokenService.getLoginUser();
waresService.bottomUp(waresId, loginUser);
iBdWaresService.bottomUp(waresId, loginUser);
return AjaxResult.success();
}
@ -822,7 +791,7 @@ public class BdWaresController extends BaseController {
*/
@GetMapping("/create-wares-code")
public AjaxResult createWaresCode() {
String waresCode = CreateNormsCodeUtils.createWaresCode(waresService.getLastWaresCode());
String waresCode = CreateNormsCodeUtils.createWaresCode(iBdWaresService.getLastWaresCode());
return AjaxResult.success(waresCode);
}
@ -834,7 +803,7 @@ public class BdWaresController extends BaseController {
@GetMapping("/create-wares-sort")
public AjaxResult createWaresSort() {
Integer pkCountry = SecurityUtils.getPkCountry();
Integer maxSort = waresService.getMaxSort(pkCountry);
Integer maxSort = iBdWaresService.getMaxSort(pkCountry);
if (maxSort == null) {
maxSort = 0;
}
@ -851,7 +820,7 @@ public class BdWaresController extends BaseController {
queryWrapper.eq(BdWares::getWaresName, waresName);
}
queryWrapper.eq(BdWares::getPkCountry, SecurityUtils.getPkCountry());
List<BdWares> list = waresService.list(queryWrapper);
List<BdWares> list = iBdWaresService.list(queryWrapper);
List<WaresEntnyOrderVo> resultList = new ArrayList<>();
for (BdWares bdWares : list) {
WaresEntnyOrderVo waresEntnyOrderVo = new WaresEntnyOrderVo();
@ -862,7 +831,7 @@ public class BdWaresController extends BaseController {
waresEntnyOrderVo.setWaresPrice(bdWares.getWaresPrice());
waresEntnyOrderVo.setWaresAchieve(bdWares.getWaresAchieve());
List<BdWaresDetailExt> waresDetailList = waresDetailService.selectByPkWares(bdWares.getPkId());
List<BdWaresDetailExt> waresDetailList = iBdWaresDetailService.selectByPkWares(bdWares.getPkId());
List<ProductEntnyOrderVo> productEntnyOrderList = new ArrayList<>();
for (BdWaresDetailExt bdWaresDetail : waresDetailList) {
ProductEntnyOrderVo productEntnyOrderVo = new ProductEntnyOrderVo();
@ -871,12 +840,12 @@ public class BdWaresController extends BaseController {
productEntnyOrderVo.setProductName(bdWaresDetail.getProductName());
LambdaQueryWrapper<BdWaresSpecsSku> qw = new LambdaQueryWrapper<>();
qw.eq(BdWaresSpecsSku::getPkWaresDetail, bdWaresDetail.getPkId());
List<BdWaresSpecsSku> waresSpecsSkuList = waresSpecsSkuService.list(qw);
List<BdWaresSpecsSku> waresSpecsSkuList = iBdWaresSpecsSkuService.list(qw);
List<WaresSpecsEntnyOrterVo> waresSpecsEntnyOrterVoList = new ArrayList<>();
for (BdWaresSpecsSku bdWaresSpecsSku : waresSpecsSkuList) {
WaresSpecsEntnyOrterVo waresSpecsEntnyOrterVo = new WaresSpecsEntnyOrterVo();
List<BdWaresSpecsRelationExt> waresSpecsRelation = waresSpecsRelationService.selectByWaresSpecsSku(bdWaresSpecsSku.getPkId());
List<BdWaresSpecsRelationExt> waresSpecsRelation = iBdWaresSpecsRelationService.selectByWaresSpecsSku(bdWaresSpecsSku.getPkId());
List<String> specsList = new ArrayList<>();
List<Integer> specsIds = new ArrayList<>();
for (BdWaresSpecsRelationExt bdWaresSpecsRelation : waresSpecsRelation) {
@ -906,7 +875,7 @@ public class BdWaresController extends BaseController {
public AjaxResult getEmptyOrderWares(@RequestBody EmptyOrderWares emptyOrderWares) {
List<EmptyOrderWares> resultList = new ArrayList<>();
for (int i = 0; i < emptyOrderWares.getPkWaresSpecsSkus().size(); i++) {
BdWaresSpecsSkuExt ws = waresSpecsSkuService.selectByPkWaresSpecsSku(emptyOrderWares.getPkWaresSpecsSkus().get(i).getPkWaresSpecsSku());
BdWaresSpecsSkuExt ws = iBdWaresSpecsSkuService.selectByPkWaresSpecsSku(emptyOrderWares.getPkWaresSpecsSkus().get(i).getPkWaresSpecsSku());
EmptyOrderWares eo = new EmptyOrderWares();
eo.setSort(i + 1);
eo.setPkWares(ws.getPkWares());
@ -925,10 +894,10 @@ public class BdWaresController extends BaseController {
eo.setProductName(ws.getProductName());
LambdaQueryWrapper<BdWaresSpecsRelation> qer = new LambdaQueryWrapper<>();
qer.eq(BdWaresSpecsRelation::getPkWaresSpecsSku, ws.getPkId());
List<BdWaresSpecsRelation> waresSpecsRelation = waresSpecsRelationService.list(qer);
List<BdWaresSpecsRelation> waresSpecsRelation = iBdWaresSpecsRelationService.list(qer);
List<String> specsList = new ArrayList<>();
for (BdWaresSpecsRelation bdWaresSpecsRelation : waresSpecsRelation) {
BdWaresSpecs waresSpecs = waresSpecsService.selectByPkId(bdWaresSpecsRelation.getPkWaresSpecs());
BdWaresSpecs waresSpecs = iBdWaresSpecsService.selectByPkId(bdWaresSpecsRelation.getPkWaresSpecs());
specsList.add(waresSpecs.getSpecsName());
}
eo.setSpecsName(StringUtils.join(specsList, ","));
@ -953,7 +922,7 @@ public class BdWaresController extends BaseController {
}
queryWrapper.eq(BdWares::getPkCountry, SecurityUtils.getPkCountry());
queryWrapper.eq(BdWares::getSystemType, SecurityUtils.getSystemType());
List<BdWares> list = waresService.list(queryWrapper);
List<BdWares> list = iBdWaresService.list(queryWrapper);
return AjaxResult.success(list);
}
@ -965,7 +934,7 @@ public class BdWaresController extends BaseController {
for (ComputeWaresPrice computeWaresPrice : computhParams.getComputeWaresPriceList()) {
computeWaresPrice.setPkWares(computhParams.getPkWares());
}
return AjaxResult.success(waresService.computeWaresPrice(computhParams.getComputeWaresPriceList(), computhParams.getSpecialArea()));
return AjaxResult.success(iBdWaresService.computeWaresPrice(computhParams.getComputeWaresPriceList(), computhParams.getSpecialArea()));
}
/**
@ -977,7 +946,7 @@ public class BdWaresController extends BaseController {
@Log(module = EOperationModule.WARES_LIST, business = EOperationBusiness.WARES_LIST, method = EOperationMethod.APPROVAL, remark = "商品新増审批")
@PostMapping("/wares-approve")
public AjaxResult waresApprove(@Valid @RequestBody WaresApproveParam param) {
waresService.update(Wrappers.<BdWares>lambdaUpdate()
iBdWaresService.update(Wrappers.<BdWares>lambdaUpdate()
.eq(BdWares::getPkId, param.getPkWares())
.eq(BdWares::getWaresStatus, EApproveStatus.ALREADY_SUBMIT.getValue())
.set(BdWares::getWaresStatus, EApproveStatus.FINISH.getValue())

View File

@ -16,9 +16,6 @@ import java.util.List;
/**
* 商品 Mapper 接口
*
* @author hzs
* @since 2022-09-08
*/
public interface BdWaresMapper extends BaseMapper<BdWares> {
@ -32,9 +29,6 @@ public interface BdWaresMapper extends BaseMapper<BdWares> {
* @param waresCodeInList 包含的商品编号列表 -- 可为null
* @param waresCodeNotInList 不包含的商品编号列表 -- 可为null
* @param pkCountry 所属国家
* @return: List<BdWaresExt>
* @Author: sui q
* @Date: 2022/9/16 11:13
*/
List<BdWaresExt> queryWaresByCondition(@Param("specialArea") Integer specialArea,
@Param("pkAreaClassify") Integer pkAreaClassify,
@ -115,9 +109,6 @@ public interface BdWaresMapper extends BaseMapper<BdWares> {
* @param pkAreaClassify 所属分类
* @param waresName 名称
* @param pkCountry 所属国家
* @return: List<BdWaresExt>
* @Author: sui q
* @Date: 2022/9/19 9:05
*/
List<BdWaresExt> queryRecommendWaresByCondition(@Param("specialArea") Integer specialArea, @Param("pkAreaClassify") Integer pkAreaClassify,
@Param("waresCode") String waresCode, @Param("waresName") String waresName, @Param("pkCountry") Integer pkCountry);
@ -141,7 +132,7 @@ public interface BdWaresMapper extends BaseMapper<BdWares> {
/**
* 新零售查询商品列表
*
* @param param 查询参数
* @param param 查询参数
* @return
*/
List<BdWaresExt> listRetailWaresByCondition(@Param("param") RetailWaresParam param);

View File

@ -394,11 +394,6 @@ public class WaresParams implements Serializable {
*/
private Integer sortStatus;
/**
* 发起人收益目前复购使用
*/
private BigDecimal makerIncome;
/**
* 系统类型2=新零售3=美业
*/
@ -414,4 +409,14 @@ public class WaresParams implements Serializable {
*/
private BigDecimal areaIncome;
/**
* 复购区域分红方式(1=比率,2=比值)
*/
private Integer areaIncomeType;
/**
* 商品上传盒数
*/
private BigDecimal boxNum;
}

View File

@ -20,9 +20,6 @@ import java.util.Map;
/**
* 商品 服务类
*
* @author hzs
* @since 2022-09-08
*/
public interface IBdWaresService extends IService<BdWares> {
@ -58,9 +55,6 @@ public interface IBdWaresService extends IService<BdWares> {
* @param waresCodeInList 包含的商品编号列表 -- 可为null
* @param waresCodeNotInList 不包含的商品编号列表 -- 可为null
* @param pkCountry 所属国家
* @return: List<BdWaresExt>
* @Author: sui q
* @Date: 2022/9/19 9:05
*/
List<BdWaresExt> queryWaresByCondition(Integer specialArea,
Integer pkAreaClassify,
@ -76,9 +70,6 @@ public interface IBdWaresService extends IService<BdWares> {
* @param pkAreaClassify 所属分类
* @param waresName 名称
* @param pkCountry 所属国家
* @return: List<BdWaresExt>
* @Author: sui q
* @Date: 2022/9/19 9:05
*/
List<BdWaresExt> queryRecommendWaresByCondition(Integer specialArea, Integer pkAreaClassify, String waresName, Integer pkCountry);
@ -147,11 +138,7 @@ public interface IBdWaresService extends IService<BdWares> {
void updateByAutoStartAndAutoStart(Date currentTime);
/**
* @description: 修改商品预售状态
* @author: zhang jing
* @date: 2024/10/24 16:10
* @param: []
* @return: void
* 修改商品预售状态
**/
void waresPreSale();

View File

@ -57,7 +57,6 @@ public class BdWaresDetailServiceImpl extends ServiceImpl<BdWaresDetailMapper, B
.waresCode(orderItemsParam.getWaresCode())
.pkWaresSpecsSku(waresItemsParam.getPkWaresSpecsSku())
.waresQuantity(orderItemsParam.getQuantity())
.pkMakerSpace(orderItemsParam.getPkMakerSpace())
.price(BigDecimal.ZERO)
.achieve(BigDecimal.ZERO)
.build();

View File

@ -27,9 +27,6 @@ import com.hzs.sale.wares.param.WaresDetailParams;
import com.hzs.sale.wares.mapper.BdWaresMapper;
import com.hzs.sale.wares.service.*;
import com.hzs.sale.wares.vo.*;
import com.hzs.system.base.ICurrencyServiceApi;
import com.hzs.system.base.ITransactionServiceApi;
import com.hzs.system.base.dto.CurrencyDTO;
import com.hzs.system.config.IAwardsServiceApi;
import com.hzs.system.config.ILabelServiceApi;
import com.hzs.system.config.IRangeServiceApi;
@ -54,9 +51,9 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
@Autowired
private RabbitTemplate rabbitTemplate;
@Autowired
private IBdSpecsService specsService;
@Autowired
private IBdWaresAuthorizeService waresAuthorizeService;
@Autowired
@ -83,17 +80,13 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
private IBdWaresAuthorityService waresAuthorityService;
@DubboReference
ILabelServiceApi labelService;
ILabelServiceApi iLabelServiceApi;
@DubboReference
IMemberServiceApi memberServiceApi;
IMemberServiceApi iMemberServiceApi;
@DubboReference
ICurrencyServiceApi currencyServiceApi;
IAwardsServiceApi iAwardsServiceApi;
@DubboReference
IAwardsServiceApi awardsServiceApi;
@DubboReference
IRangeServiceApi rangeServiceApi;
@DubboReference
ITransactionServiceApi transactionServiceApi;
IRangeServiceApi iRangeServiceApi;
@Override
@Transactional(rollbackFor = Exception.class)
@ -101,9 +94,7 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
// 设置 wares 对象的值
BdWares wares = BeanUtil.copyProperties(waresParams, BdWares.class);
wares.setPkId(waresParams.getWaresId());
R<Integer> transaction = transactionServiceApi.createTransaction(user.getDataCountry(), ETransactionKey.SPEC, waresParams.getWaresName(), EYesNo.NO, EYesNo.NO);
wares.setWaresCode(waresParams.getWaresCode());
wares.setPkTransaction(transaction.getData());
wares.setPkCreator(user.getUserId());
wares.setPkCountry(user.getDataCountry());
wares.setSystemType(user.getSystemType());
@ -115,17 +106,9 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
wares.setRemovalTime(DateUtils.currentDateTime());
}
this.save(wares);
// 商品拓展表
BdWaresExtend waresExtend = BeanUtil.copyProperties(waresParams, BdWaresExtend.class);
// 存入要转化美金
if (!waresParams.getSpecialArea().equals(ESpecialArea.REPURCHASE_AREA.getValue())) {
waresParams.setMakerIncome(BigDecimal.ZERO);
}
if (null != waresParams.getMakerIncome()) {
R<CurrencyDTO> currencyDto = currencyServiceApi.getCurrency(user.getDataCountry());
waresExtend.setMakerIncome(waresParams.getMakerIncome().divide(currencyDto.getData().getInExchangeRate(), 6, BigDecimal.ROUND_HALF_UP));
}
// 处理系统类型
waresExtend.setSystemType(user.getSystemType());
waresExtend.setPkWares(wares.getPkId());
waresExtend.setPkCreator(user.getUserId());
@ -148,9 +131,9 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
}
}
waresExtendService.save(waresExtend);
// 标签关联记录
saveWaresLabel(wares, prefixLabel, coolLabel, waresParams.getPkGuaranteeLabel(), waresParams.getPkSellingPoint(), user);
// 生成产品明细
saveWaresDetail(wares, waresParams.getWaresDetailList(), user);
// 生成规格sku
@ -363,7 +346,7 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
for (WaresAuthorityParam waresAuthorityParam : waresAuthorityList) {
Long memberId = null;
if (StringUtils.isNotBlank(waresAuthorityParam.getMemberCode())) {
R<CuMember> member = memberServiceApi.getMember(waresAuthorityParam.getMemberCode());
R<CuMember> member = iMemberServiceApi.getMember(waresAuthorityParam.getMemberCode());
if (member.getData() == null) {
throw new BaseException("查询会员失败");
}
@ -524,19 +507,11 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
}
}
/**
* 修改商品基础信息
*
* @param waresParams
* @param user
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void updateWares(WaresParams waresParams, LoginUser user) {
BdWares wares = BeanUtil.copyProperties(waresParams, BdWares.class);
wares.setPkId(waresParams.getWaresId());
R<Integer> transaction = transactionServiceApi.createTransaction(user.getDataCountry(), ETransactionKey.SPEC, waresParams.getWaresName(), EYesNo.NO, EYesNo.NO);
wares.setPkTransaction(transaction.getData());
if (waresParams.getIsPutOn().equals(EYesNo.YES.getIntValue())) {
wares.setListingTime(DateUtils.currentDateTime());
}
@ -550,19 +525,11 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
// 商品拓展表
BdWaresExtend waresExtend = BeanUtil.copyProperties(waresParams, BdWaresExtend.class);
// 存入要转化美金
if (!waresParams.getSpecialArea().equals(ESpecialArea.REPURCHASE_AREA.getValue())) {
waresParams.setMakerIncome(BigDecimal.ZERO);
}
if (null != waresParams.getMakerIncome()) {
R<CurrencyDTO> currencyDto = currencyServiceApi.getCurrency(user.getDataCountry());
waresExtend.setMakerIncome(waresParams.getMakerIncome().divide(currencyDto.getData().getInExchangeRate(), 6, BigDecimal.ROUND_HALF_UP));
}
// 处理系统类型
waresExtend.setSystemType(user.getSystemType());
waresExtend.setPkWares(wares.getPkId());
waresExtend.setPkModified(user.getUserId());
waresExtend.setModifiedTime(new Date());
// 根据商品id 修改信息
LambdaQueryWrapper<BdWaresExtend> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdWaresExtend::getPkWares, wares.getPkId());
@ -593,12 +560,11 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
saveWaresLabel(wares, prefixLabel, coolLabel, waresParams.getPkGuaranteeLabel(), waresParams.getPkSellingPoint(), user);
// 生成产品明细
saveWaresDetail(wares, waresParams.getWaresDetailList(), user);
// 生成规格sku
saveWaresSpecsSku(wares, waresParams.getWaresSpecsSkuList(), user);
// 团队配置
saveWaresAuthority(wares, waresParams.getWaresAuthorityList(), user);
// 生成商品级差
saveWaresRange(wares, waresParams.getWaresRangeList(), user);
// 产品包装新增
@ -626,7 +592,7 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
queryWrapper1.eq(BdWaresAwards::getPkWares, wares.getPkId());
waresAwardsService.remove(queryWrapper1);
// 校验奖衔id 是否存在
R<List<BdAwards>> awardsDto = awardsServiceApi.queryAwards(waresParams.getPkCountry());
R<List<BdAwards>> awardsDto = iAwardsServiceApi.queryAwards(waresParams.getPkCountry());
List<BdAwards> awardsList = awardsDto.getData();
List<Integer> waresAwardsIdList = new ArrayList<>();
for (BdAwards bdAwards : awardsList) {
@ -752,11 +718,6 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
rabbitTemplate.convertAndSend(RabbitMqConstants.BUSINESS_LOG_EXCHANGE, RabbitMqConstants.BUSINESS_LOG_KEY, log);
}
/**
* 删除商品
*
* @param pkId
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void removeWares(Integer pkId, LoginUser loginUser) {
@ -846,22 +807,11 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
}
}
/**
* 根据商品外键查询商品
*
* @param waresId
* @return
*/
@Override
public BdWares getWares(Integer waresId) {
return baseMapper.selectById(waresId);
}
/**
* 查询最末商品编号
*
* @return
*/
@Override
public String getLastWaresCode() {
return baseMapper.getLastWaresCode();
@ -872,13 +822,6 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
return baseMapper.selectByWaresInfo(waresParams);
}
/**
* 上移 下移
*
* @param waresId
* @param waresMoveType
* @param specialArea 所属专区
*/
@Override
public void waresMove(Integer waresId, Integer waresMoveType, LoginUser loginUser, Integer specialArea) {
BdWares bdWares = baseMapper.selectById(waresId);
@ -975,13 +918,6 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
return baseMapper.selectByMoveDownSort(waresId, specialArea);
}
/**
* 置顶
*
* @param waresId
* @param loginUser
*/
@Override
public void floatingRoof(Integer waresId, LoginUser loginUser) {
BdWares bdWares = new BdWares();
@ -990,22 +926,11 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
this.updateById(bdWares);
}
/**
* 获取最大商品序号
*
* @return
*/
@Override
public Integer getMaxSort(Integer pkCountry) {
return baseMapper.getMaxSort(pkCountry);
}
/**
* 根据商品编号查询商品信息
*
* @param waresCodeList
* @return
*/
@Override
public List<BdAgreement> selectByWaresCodeList(List<String> waresCodeList) {
return baseMapper.selectByWaresCodeList(waresCodeList);
@ -1017,17 +942,6 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
return baseMapper.queryWaresByCondition(specialArea, pkAreaClassify, null, waresName, waresCodeInList, waresCodeNotInList, pkCountry);
}
/**
* 根据条件查询推荐商品 专区商品列表
*
* @param specialArea 所属专区
* @param pkAreaClassify 所属分类
* @param waresName 名称
* @param pkCountry 所属国家
* @return: List<BdWaresExt>
* @Author: sui q
* @Date: 2022/9/19 9:05
*/
@Override
public List<BdWaresExt> queryRecommendWaresByCondition(Integer specialArea, Integer pkAreaClassify, String waresName, Integer pkCountry) {
return baseMapper.queryRecommendWaresByCondition(specialArea, pkAreaClassify, null, waresName, pkCountry);
@ -1035,7 +949,7 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
private BdLabel getBdLabel(Integer pkId) {
BdLabel bdLabel;
R<LabelConfigDTO> result = labelService.getByPkId(pkId);
R<LabelConfigDTO> result = iLabelServiceApi.getByPkId(pkId);
if (result.isSuccess()) {
bdLabel = BeanUtil.copyProperties(result.getData(), BdLabel.class);
} else {
@ -1044,53 +958,30 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
return bdLabel;
}
/**
* 修改自动上下架状态自动上架
*
* @param currentTime 当前时间
*/
@Override
public void updateByAutoStartAndAutoStart(Date currentTime) {
baseMapper.updateByAutoStartAndAutoStart(currentTime);
}
/**
* @description: 修改商品预售状态
* @author: zhang jing
* @date: 2024/10/24 16:10
* @param: []
* @return: void
**/
@Override
public void waresPreSale() {
baseMapper.waresPreSale();
}
/**
* 修改自动上下架状态自动下架
*
* @param currentTime 当前时间
*/
@Override
public void updateByAutoStartAndAutoEnd(Date currentTime) {
baseMapper.updateByAutoStartAndAutoEnd(currentTime);
}
/**
* 计算商品业绩
*/
@Override
public List<ComputeWaresPrice> computeWaresPrice(List<ComputeWaresPrice> computeWaresPriceList, Integer specialArea) {
// 极差
R<List<BdRangeExt>> rangeDto = rangeServiceApi.queryRange(SecurityUtils.getPkCountry());
R<List<BdRangeExt>> rangeDto = iRangeServiceApi.queryRange(SecurityUtils.getPkCountry());
List<BdRangeExt> rangeList = rangeDto.getData();
rangeList = rangeList.stream().filter(range -> range.getSystemType().equals(ESystemType.DEFAULT.getValue())).collect(Collectors.toList());
return computeWaresPrice(computeWaresPriceList, rangeList);
}
/**
* 计算商品业绩
*/
@Override
public List<ComputeWaresPrice> computeWaresPrice(List<ComputeWaresPrice> computeWaresPriceList, List<BdRangeExt> rangeList) {
// 极差

View File

@ -1,21 +1,7 @@
package com.hzs.sale.wares.vo;/**
* @Description:
* @Author: yuhui
* @Time: 2024/9/11 13:24
* @Classname: WaresDetailVo
* @PackageName: com.hzs.sale.wares.vo
*/
package com.hzs.sale.wares.vo;
import lombok.Data;
/**
*@BelongsProject: hzs_cloud
*@BelongsPackage: com.hzs.sale.wares.vo
*@Author: yh
*@CreateTime: 2024-09-11 13:24
*@Description: TODO
*@Version: 1.0
*/
@Data
public class WaresProductDetailVo {
/**

View File

@ -11,13 +11,6 @@ import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @Description:
* @Author: yuhui
* @Time: 2022/11/9 11:02
* @Classname: WaresVo
* @PackageName: com.hzs.sale.wares.vo
*/
@Data
public class WaresVo {
@ -65,14 +58,6 @@ public class WaresVo {
@BigDecimalFormat("#0.0000")
private BigDecimal waresAchieve;
/**
* 发起人收益目前复购使用
*/
@Excel(name = "发起人收益(¥)", scale = 2)
@BigDecimalFormat
private BigDecimal makerIncome;
/**
* 支付比例名称
*/
@ -116,16 +101,17 @@ public class WaresVo {
*/
@Excel(name = "产品数量")
private String productQuantitys;
/**
* 所属专区
*/
private Integer specialArea;
/**
* 所属专区
*/
@Excel(name = "所属专区")
private String specialAreaVal;
/**
* 是否单品
*/
@ -163,16 +149,17 @@ public class WaresVo {
* 是否推荐
*/
private String isRecommendVal;
/**
* 供应方式经营范围
*/
private Integer operateScope;
/**
* 供应方式经营范围
*/
@Excel(name = "供应方式")
private String operateScopeVal;
/**
* 是否出售
*/
@ -184,12 +171,11 @@ public class WaresVo {
*/
@Excel(name = "上架状态", readConverterExp = "0=上架,1=下架")
private Integer isPutOn;
/**
* 预售状态
*/
private Integer preSaleStatus;
/**
* 预售状态
*/
@ -305,4 +291,14 @@ public class WaresVo {
*/
private Date waresApprovalTime;
/**
* 复购区域分红
*/
private BigDecimal areaIncome;
/**
* 商品上传盒数
*/
private BigDecimal boxNum;
}

View File

@ -1130,38 +1130,9 @@
and so.ORDER_CODE = #{orderCode}
</select>
<!-- 查询新零售购买指定商品数量 -->
<select id="getRetailWaresQuantity" resultType="int">
select nvl(sum(soi.wares_quantity), 0) wares_quantity
from sa_order so
left join sa_order_items soi
on soi.pk_order = so.pk_id
and soi.del_flag = 0
and soi.is_gift = 1
left join bd_wares bw
on bw.pk_id = soi.pk_wares
where so.del_flag = 0
and so.order_status = 1
and so.pk_member = #{pkMember}
<if test="systemType != null">
and so.system_type = #{systemType}
</if>
and so.order_type in
<foreach collection="orderTypeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
and bw.wares_code in
<foreach collection="waresCodeList" item="items" open="(" close=")" separator=",">
#{items}
</foreach>
<if test="payTime != null">
and so.pay_time > #{payTime}
</if>
</select>
<!-- 查询新零售购买指定商品数量(新) -->
<select id="getRetailWaresQuantityNew" resultType="int">
select nvl(sum(soi.wares_quantity), 0) wares_quantity
<select id="getRetailWaresQuantityNew" resultType="decimal">
select sum(nvl(soi.wares_quantity, 0) * bw.box_num) wares_quantity
from sa_order so
left join sa_order_items soi
on soi.pk_order = so.pk_id

View File

@ -114,7 +114,6 @@
<result column="IS_MAKER_GIFT" property="isMakerGift"/>
<result column="EDIT_FLAG" property="editFlag"/>
<result column="WARES_CODE" property="waresCode"/>
<result column="MAKER_INCOME" property="makerIncome"/>
<result column="ITEM_PK_STOREHOUSE" property="pkStorehouse"/>
</collection>
</resultMap>

View File

@ -4,39 +4,56 @@
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.sale.product.BdProductExtend">
<id column="PK_ID" property="pkId" />
<result column="PK_PRODUCT" property="pkProduct" />
<result column="IS_PICK_UP" property="isPickUp" />
<result column="IS_PRIZE" property="isPrize" />
<result column="IS_BAR_CODE" property="isBarCode" />
<result column="IS_MERGE" property="isMerge" />
<result column="IS_GIFT" property="isGift" />
<result column="IS_PUT_ON" property="isPutOn" />
<result column="WARNING_QUANTITY" property="warningQuantity" />
<id column="PK_ID" property="pkId"/>
<result column="PK_PRODUCT" property="pkProduct"/>
<result column="IS_PICK_UP" property="isPickUp"/>
<result column="IS_PRIZE" property="isPrize"/>
<result column="IS_BAR_CODE" property="isBarCode"/>
<result column="IS_MERGE" property="isMerge"/>
<result column="IS_GIFT" property="isGift"/>
<result column="IS_PUT_ON" property="isPutOn"/>
<result column="WARNING_QUANTITY" property="warningQuantity"/>
</resultMap>
<select id="selectByProductId" resultMap="BaseResultMap">
select * from BD_PRODUCT_EXTEND where PK_PRODUCT = #{pkProduct} and DEL_FLAG = '0'
select *
from BD_PRODUCT_EXTEND
where PK_PRODUCT = #{pkProduct}
and DEL_FLAG = '0'
</select>
<select id="selectByMoveUpSort" resultType="integer">
select min(ex.SORT) FROM BD_PRODUCT_EXTEND ex where ex.SORT &gt; (select sort from BD_PRODUCT_EXTEND pe where pe.pk_product = #{pkProduct} ) and DEL_FLAG = '0'
select min(ex.SORT)
FROM BD_PRODUCT_EXTEND ex
where ex.SORT &gt; (select sort from BD_PRODUCT_EXTEND pe where pe.pk_product = #{pkProduct})
and DEL_FLAG = '0'
</select>
<update id="updateMoveUpBySort">
update BD_PRODUCT_EXTEND set sort = sort+1 where sort &gt;= #{sort} and DEL_FLAG = '0'
update BD_PRODUCT_EXTEND
set sort = sort + 1
where sort &gt;= #{sort}
and DEL_FLAG = '0'
</update>
<select id="selectByMoveDownSort" resultType="integer">
select max(ex.SORT) FROM BD_PRODUCT_EXTEND ex where ex.SORT &lt; (select sort from BD_PRODUCT_EXTEND pe where pe.pk_product = #{pkProduct} ) and DEL_FLAG = '0'
select max(ex.SORT)
FROM BD_PRODUCT_EXTEND ex
where ex.SORT &lt; (select sort from BD_PRODUCT_EXTEND pe where pe.pk_product = #{pkProduct})
and DEL_FLAG = '0'
</select>
<update id="updateMoveDownBySort">
update BD_PRODUCT_EXTEND set sort = sort-1 where sort &lt;= #{sort} and DEL_FLAG = '0'
update BD_PRODUCT_EXTEND
set sort = sort - 1
where sort &lt;= #{sort}
and DEL_FLAG = '0'
</update>
<select id="getMaxProductSort" resultType="integer">
select max(sort) from BD_PRODUCT_EXTEND where DEL_FLAG = '0'
select max(sort)
from BD_PRODUCT_EXTEND
where DEL_FLAG = '0'
</select>
<!-- 查询产品扩展以及产品信息 -->

Some files were not shown because too many files have changed in this diff Show More