Compare commits

..

5 Commits

18 changed files with 214 additions and 45 deletions

View File

@ -121,7 +121,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
boxNum += saOrderItems.getWaresQuantity();
break;
}
}
saOrderExt.setBoxNum(boxNum);
@ -259,7 +258,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
boxNum += saOrderItems.getWaresQuantity();
break;
}
}
saOrderExt.setBoxNum(boxNum);
@ -486,7 +484,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
if (RetailConstants.ALL_BOX_WARES_LIST.contains(saOrderItems.getWaresCode())) {
boxNum += saOrderItems.getWaresQuantity();
break;
}
}
// 个人累计消费pv
@ -1599,14 +1596,26 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
return null;
}
// 区域收益商品价格 * 0.5% * 商品数量
// 处理区域收益 -- 计算比例为 0.5%
BigDecimal benefitIncome = BigDecimal.ZERO;
// 计算业绩此处作为比例
BigDecimal calAchieve = BigDecimal.ZERO;
for (SaOrderWaresExt saOrderWaresExt : saOrder.getOrderWaresExtList()) {
benefitIncome = benefitIncome.add(saOrderWaresExt.getWaresPrice().multiply(RetailConstants.SAME_RATIO)).setScale(6, BigDecimal.ROUND_HALF_UP);
calAchieve = calAchieve.add(saOrderWaresExt.getWaresPrice());
if (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()) {
// 注册升级订单 区域收益 = 商品价格 * 0.5% * 商品数量
for (SaOrderWaresExt saOrderWaresExt : saOrder.getOrderWaresExtList()) {
// 商品最终价格
BigDecimal waresPrice = saOrderWaresExt.getWaresPrice();
// 商品数量
BigDecimal waresQuantityBig = new BigDecimal(saOrderWaresExt.getWaresQuantity());
// 单个商品价格
BigDecimal waresOnePrice = waresPrice.divide(waresQuantityBig, 6, RoundingMode.FLOOR);
benefitIncome = benefitIncome.add(waresOnePrice.multiply(RetailConstants.SAME_RATIO).setScale(6, BigDecimal.ROUND_HALF_UP).multiply(waresQuantityBig));
}
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType()) {
// 复购订单 区域收益 = 复购区域分红 * 商品数量
for (SaOrderWaresExt saOrderWaresExt : saOrder.getOrderWaresExtList()) {
benefitIncome = benefitIncome.add(saOrderWaresExt.getAreaIncome().multiply(new BigDecimal(saOrderWaresExt.getWaresQuantity())));
}
}
CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, null, RetailConstants.SAME_RATIO, benefitIncome,
cuMemberRetailRangeExt, EBonusItems.RETAIL_AREA_INCOME.getValue(), BonusMsgConstants.RETAIL_AREA_INCOME);

View File

@ -60,6 +60,7 @@
<result column="PK_WARES" property="pkWares"/>
<result column="WARES_PRICE" property="waresPrice"/>
<result column="WARES_CODE" property="waresCode"/>
<result column="AREA_INCOME" property="areaIncome"/>
</collection>
<collection property="orderItemsExtList" ofType="com.hzs.common.domain.sale.ext.SaOrderItemsExt">
<result column="SI_ITEMS_ID" property="pkId"/>
@ -153,7 +154,8 @@
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(st.wares_quantity,0) wares_quantity,
nvl(bw.area_income, 0) area_income
from sa_order so
left join sa_order_wares st
on so.pk_id = st.pk_order and st.wares_price > 0

View File

@ -181,7 +181,6 @@ public class ApiRetailHomePageController extends BaseController {
*/
@PostMapping("/market-dynamics")
public AjaxResult getMarketDynamics(@RequestBody MarketDynamicsQueryDateParam param) {
retailAchieveService.getMarketDynamics(param);
return AjaxResult.success();
return AjaxResult.success(retailAchieveService.getMarketDynamics(param));
}
}

View File

@ -2,8 +2,10 @@ package com.hzs.retail.member.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
import com.hzs.retail.member.param.MarketDynamicsQueryDateParam;
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
import com.hzs.retail.member.vo.MarketDynamicsDetailVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -174,6 +176,8 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
*/
List<CuMemberRetailDataStatisticsDetailVO> getRetailDataStatisticsDetail(CuMemberRetailAchieveVO cuMemberAchieveVO);
List<MarketDynamicsDetailVO> getMarketDynamicsDetail(@Param("param") MarketDynamicsQueryDateParam param);
/**
* 查询当天自己新增盒数
*

View File

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
@Data
@AllArgsConstructor
@ -17,6 +18,7 @@ import java.io.Serializable;
public class MarketDynamicsQueryDateParam implements Serializable {
private Long pkId;
private String nowDate;
private String yesterdayDate;
private String lastMonthDate;
/**
@ -24,10 +26,12 @@ public class MarketDynamicsQueryDateParam implements Serializable {
*/
private String currentMonthTableName;
/**
*
*
*/
private String lastMonthTableName;
private String currentDayTableName;
private List<Long> pkIdList;
/**
* 查询条件 (会员编号/会员姓名)
*/

View File

@ -3,6 +3,7 @@ package com.hzs.retail.member.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
import com.hzs.retail.member.param.MarketDynamicsQueryDateParam;
import com.hzs.retail.member.utils.PageResult;
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
@ -114,5 +115,5 @@ public interface ICuMemberRetailAchieveService extends IService<CuMemberRetailRa
*/
CuMemberRetailDataStatisticsResultVO getRetailDataStatisticsDetail(Long pkMember, Integer pkCountry, Integer systemType);
List<MarketDynamicsDetailVO> getMarketDynamics(MarketDynamicsQueryDateParam param);
PageResult<MarketDynamicsDetailVO> getMarketDynamics(MarketDynamicsQueryDateParam param);
}

View File

@ -19,6 +19,7 @@ import com.hzs.retail.member.mapper.CuMemberRetailRangeMapper;
import com.hzs.retail.member.param.MarketDynamicsQueryDateParam;
import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
import com.hzs.retail.member.utils.DataStatisticsUtil;
import com.hzs.retail.member.utils.PageResult;
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
@ -307,18 +308,20 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
*/
private String getTableName() {
String localDate = LocalDate.now().minus(1, ChronoUnit.DAYS).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate).getPkId();
if(ObjectUtil.isEmpty(period)){
CuMemberSettlePeriod cuMemberSettlePeriod =iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate);
if(ObjectUtil.isEmpty(cuMemberSettlePeriod)){
return null;
}
int period = cuMemberSettlePeriod.getPkId();
return TableNameConstants.CU_MEMBER_RETAIL_RANGE + period;
}
private String getDayTableName() {
String localDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
int period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate).getPkId();
if(ObjectUtil.isEmpty(period)){
CuMemberSettlePeriod cuMemberSettlePeriod =iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate);
if(ObjectUtil.isEmpty(cuMemberSettlePeriod)){
return null;
}
int period = cuMemberSettlePeriod.getPkId();
return TableNameConstants.CU_MEMBER_RETAIL_S + period;
}
@ -586,19 +589,26 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
}
@Override
public List<MarketDynamicsDetailVO> getMarketDynamics(MarketDynamicsQueryDateParam param) {
public PageResult<MarketDynamicsDetailVO> getMarketDynamics(MarketDynamicsQueryDateParam param) {
Long pkMember = SecurityUtils.getUserId();
Integer systemType = SecurityUtils.getSystemType();
DataStatisticsUtil.setQueryDateParam(param);
param.setCurrentDayTableName(getDayTableName());
param.setCurrentMonthTableName(getDayTableName(param.getNowDate()));
param.setCurrentDayTableName(getDayTableName(param.getLastMonthDate()));
param.setCurrentMonthTableName(getDayTableName(param.getYesterdayDate()));
param.setLastMonthTableName(getDayTableName(param.getLastMonthDate()));
log.info("MarketDynamicsQueryDateParam : {}", JSONUtil.toJsonStr(param));
return Collections.emptyList();
List<Long> pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType);
param.setPkIdList(pkMemberList);
List<MarketDynamicsDetailVO> detailVOList = baseMapper.getMarketDynamicsDetail(param);
log.info("detailVOList : {}", JSONUtil.toJsonStr(detailVOList));
return DataStatisticsUtil.getMarketDynamicsAssemblyData(detailVOList, param);
}
private String getDayTableName(String localDate) {
CuMemberSettlePeriod cuMemberSettlePeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate);
if(ObjectUtil.isEmpty(cuMemberSettlePeriod)){
return null;
return TableNameConstants.CU_MEMBER_RETAIL_RANGE;
}
int period = cuMemberSettlePeriod.getPkId();
return TableNameConstants.CU_MEMBER_RETAIL_RANGE + period;

View File

@ -1,11 +1,13 @@
package com.hzs.retail.member.utils;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.retail.member.param.MarketDynamicsQueryDateParam;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
import com.hzs.retail.member.vo.MarketDynamicsDetailVO;
import java.math.BigDecimal;
import java.math.RoundingMode;
@ -17,6 +19,7 @@ import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 用户统计数据工具
@ -49,7 +52,8 @@ public class DataStatisticsUtil {
calcDetailVOTotalField(detailVOList, pkId);
addVirtualBranch(detailVOList, pkId);
CuMemberRetailDataStatisticsDetailVO total = getDetailVOByPKID(detailVOList, pkId);
CuMemberRetailDataStatisticsDetailVO bigRange = getBigRangeDetailVO(detailVOList, pkId);
CuMemberRetailDataStatisticsDetailVO bigRangeBox = getBigRangeBoxDetailVO(detailVOList, pkId);
CuMemberRetailDataStatisticsDetailVO bigRangePv = getBigRangePVDetailVO(detailVOList, pkId);
if(EYesNo.NO.getIntValue() == cuMember.getIsActivate()){
// 昨日非激活 排除昨日日结表数据
excludeDailySettlementData(detailVOList);
@ -57,19 +61,19 @@ public class DataStatisticsUtil {
// 排除注水数据
excludeWaterInjectionData(detailVOList, pkId);
}
Integer smallRangeTotalBoxNum = total.getTotalBoxNum() - bigRange.getTotalBoxNum();
Integer smallRangeTotalBoxNum = total.getTotalBoxNum() - bigRangeBox.getTotalBoxNum();
if(smallRangeTotalBoxNum < 0){
smallRangeTotalBoxNum = 0;
}
BigDecimal smallRangeTotalPv = total.getTotalPv().subtract(bigRange.getTotalPv());
BigDecimal smallRangeTotalPv = total.getTotalPv().subtract(bigRangePv.getTotalPv());
if(smallRangeTotalPv.compareTo(BigDecimal.ZERO) < 0){
smallRangeTotalPv = BigDecimal.ZERO;
}
return CuMemberRetailDataStatisticsResultVO.builder()
.totalBoxNum(total.getTotalBoxNum())
.totalPv(formatPV(total.getTotalPv()))
.bigRangeTotalBoxNum(bigRange.getTotalBoxNum())
.bigRangeTotalPv(formatPV(bigRange.getTotalPv()))
.bigRangeTotalBoxNum(bigRangeBox.getTotalBoxNum())
.bigRangeTotalPv(formatPV(bigRangePv.getTotalPv()))
.smallRangeTotalBoxNum(smallRangeTotalBoxNum)
.smallRangeTotalPv(formatPV(smallRangeTotalPv))
.build();
@ -79,7 +83,7 @@ public class DataStatisticsUtil {
* @param detailVOList
*/
public static void calcDetailVOTotalField(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
detailVOList.parallelStream().forEach(detailVO -> {
detailVOList.stream().forEach(detailVO -> {
detailVO.setTotalBoxNum(
detailVO.getConsumeBoxNum() // 个人累计消费盒数(日结)
// + detailVO.getNewBoxNum() // 个人新增盒数(日结)
@ -106,7 +110,7 @@ public class DataStatisticsUtil {
* @param detailVOList
*/
public static void excludeDailySettlementData(List<CuMemberRetailDataStatisticsDetailVO> detailVOList){
detailVOList.parallelStream().forEach(detailVO -> {
detailVOList.stream().forEach(detailVO -> {
detailVO.setTotalBoxNum(
detailVO.getTotalBoxNum()
- detailVO.getTeamBoxNum() // 团队累计消费盒数(日结)
@ -123,7 +127,7 @@ public class DataStatisticsUtil {
* @param detailVOList
*/
public static void excludeWaterInjectionData(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
detailVOList.parallelStream().forEach(detailVO -> {
detailVOList.stream().forEach(detailVO -> {
if(!detailVO.getPkId().equals(pkId)){
detailVO.setTotalBoxNum(
detailVO.getTotalBoxNum()
@ -216,22 +220,45 @@ public class DataStatisticsUtil {
* @return
*/
public static CuMemberRetailDataStatisticsDetailVO getDetailVOByPKID(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
return detailVOList.parallelStream().filter(o -> o.getPkId().equals(pkId)).findFirst().orElse(null);
return detailVOList.stream().filter(o -> o.getPkId().equals(pkId)).findFirst().orElse(null);
}
/**
* 组装市场动态列表数据
* @param detailVOList
*/
public static PageResult<MarketDynamicsDetailVO> getMarketDynamicsAssemblyData(List<MarketDynamicsDetailVO> detailVOList, MarketDynamicsQueryDateParam param){
if(StrUtil.isNotEmpty(param.getKeyWords())){
detailVOList = detailVOList.stream().filter(o -> o.getMemberCode().contains(param.getKeyWords()) || o.getMemberName().contains(param.getKeyWords())).collect(Collectors.toList());
}
MarketDynamicsDetailVO bigRange = detailVOList.stream()
.max(Comparator.comparingInt(MarketDynamicsDetailVO::getTotalBoxNum))
.orElse(null);
detailVOList = detailVOList.stream().filter(o -> !o.getPkId().equals(bigRange.getPkId())).collect(Collectors.toList());
PageResult<MarketDynamicsDetailVO> result = MemoryPageUtils.paginate(detailVOList, param.getPageNum(), param.getPageSize());
result.setBigRange(bigRange);
return result;
}
private static Integer getMaxTotalBoxNum(List<CuMemberRetailDataStatisticsDetailVO> detailVOList) {
return detailVOList.parallelStream()
return detailVOList.stream()
.map(CuMemberRetailDataStatisticsDetailVO::getTotalBoxNum)
.filter(Objects::nonNull)
.max(Integer::compare)
.orElse(null);
}
private static CuMemberRetailDataStatisticsDetailVO getBigRangeDetailVO(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
return detailVOList.parallelStream()
private static CuMemberRetailDataStatisticsDetailVO getBigRangeBoxDetailVO(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
return detailVOList.stream()
.filter(vo -> vo.getTotalBoxNum() != null && !vo.getPkId().equals(pkId))
.max(Comparator.comparingInt(CuMemberRetailDataStatisticsDetailVO::getTotalBoxNum))
.orElse(null);
}
private static CuMemberRetailDataStatisticsDetailVO getBigRangePVDetailVO(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
return detailVOList.stream()
.filter(vo -> vo.getTotalBoxNum() != null && !vo.getPkId().equals(pkId))
.max(Comparator.comparing(CuMemberRetailDataStatisticsDetailVO::getTotalPv))
.orElse(null);
}
public static BigDecimal formatPV(BigDecimal pv){
return pv.divide(
new BigDecimal("10000"),
@ -242,9 +269,11 @@ public class DataStatisticsUtil {
public static void setQueryDateParam(MarketDynamicsQueryDateParam param){
LocalDate.now(ZoneId.of("Asia/Shanghai"));
LocalDate currentDate = LocalDate.now();
LocalDate yesterdayDate = currentDate.minusDays(1);
LocalDate previousMonthDate = currentDate.minusMonths(1);
LocalDate lastDayOfPreviousMonth = previousMonthDate.with(TemporalAdjusters.lastDayOfMonth());
param.setNowDate(currentDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
param.setYesterdayDate(yesterdayDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
param.setLastMonthDate(lastDayOfPreviousMonth.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
// System.out.println("当前日期: " + currentDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
// System.out.println("上一个月最后一天: " + lastDayOfPreviousMonth.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));

View File

@ -0,0 +1,24 @@
package com.hzs.retail.member.utils;
import java.util.ArrayList;
import java.util.List;
public class MemoryPageUtils {
public static <T> PageResult<T> paginate(List<T> dataList, int pageNum, int pageSize) {
// 校验参数有效性
if (pageNum <= 0) pageNum = 1;
if (pageSize <= 0) pageSize = 10; // 默认每页10条
int total = dataList.size();
int start = (pageNum - 1) * pageSize;
if (start >= total) {
return new PageResult<>(total, new ArrayList<>());
}
// 计算结束索引避免超出列表长度
int end = Math.min(start + pageSize, total);
List<T> pageData = dataList.subList(start, end);
return new PageResult<>(total, pageData);
}
}

View File

@ -0,0 +1,20 @@
package com.hzs.retail.member.utils;
import com.hzs.retail.member.vo.MarketDynamicsDetailVO;
import lombok.Data;
import java.util.List;
@Data
public class PageResult<T> {
private long total;
private List<T> rows;
private MarketDynamicsDetailVO bigRange;
public PageResult(long total, List<T> rows) {
this.total = total;
this.rows = rows;
}
// getter/setter 省略
}

View File

@ -105,5 +105,13 @@ public class CuMemberRetailDataStatisticsDetailVO implements Serializable {
*/
private Integer smallBoxNum;
@Override
public CuMemberRetailDataStatisticsDetailVO clone() {
try {
return (CuMemberRetailDataStatisticsDetailVO) super.clone();
} catch (CloneNotSupportedException e) {
throw new AssertionError();
}
}
}

View File

@ -17,6 +17,10 @@ import java.math.BigDecimal;
* 市场动态列表对象
*/
public class MarketDynamicsDetailVO implements Serializable {
/**
* 用户ID
*/
private Long pkId;
/**
* 用户编号
*/
@ -28,11 +32,13 @@ public class MarketDynamicsDetailVO implements Serializable {
/**
* 结算等级
*/
private String pkSettleGrade;
private Integer pkSettleGrade;
private String gradeName;
/**
* 真实奖衔
*/
private String pkAwards;
private Integer pkAwards;
private String awardsName;
/**
* 今日业绩
@ -71,4 +77,9 @@ public class MarketDynamicsDetailVO implements Serializable {
* 上月盒数
*/
private Integer lastMonthBoxNum;
/**
* 累计消费盒数
*/
private Integer totalBoxNum;
}

View File

@ -872,4 +872,40 @@
</if>
</where>
</select>
<select id="getMarketDynamicsDetail" resultType="com.hzs.retail.member.vo.MarketDynamicsDetailVO">
SELECT
cu.pk_id,
cu.MEMBER_CODE,
cu.MEMBER_NAME,
cu.PK_SETTLE_GRADE,
grade.GRADE_NAME,
cu.PK_AWARDS,
awards.AWARDS_NAME,
currentMonth.ENABLE_STATUS,
NVL( currentDay.NEW_CONSUME_PV + currentDay.TEAM_NEW_PV, 0 ) todayPv,
NVL( currentDay.NEW_BOX_NUM + currentDay.TEAM_NEW_BOX_NUM, 0 ) todayBoxNum,
NVL( currentMonth.NEW_CONSUME_PV + currentMonth.TEAM_NEW_PV, 0 ) yesterdayPv,
NVL( currentMonth.NEW_BOX_NUM + currentMonth.TEAM_NEW_BOX_NUM, 0 ) yesterdayBoxNum,
NVL( currentMonth.MONTH_CONSUME_PV, 0 ) currentMonthPv,
NVL( currentMonth.MONTH_BOX_NUM , 0 ) currentMonthBoxNum,
NVL( lastMonth.MONTH_CONSUME_PV, 0 ) lastMonthPv,
NVL( lastMonth.MONTH_BOX_NUM, 0 ) lastMonthBoxNum,
NVL( currentMonth.CONSUME_BOX_NUM + currentDay.NEW_BOX_NUM + currentDay.TEAM_NEW_BOX_NUM, 0 ) totalBoxNum
FROM
cu_member cu
LEFT JOIN ${param.currentDayTableName} currentDay ON cu.PK_ID = currentDay.PK_MEMBER
LEFT JOIN ${param.currentMonthTableName} currentMonth ON cu.PK_ID = currentMonth.PK_MEMBER AND cu.CATEGORY = 0
LEFT JOIN ${param.lastMonthTableName} lastMonth ON cu.PK_ID = lastMonth.PK_MEMBER AND cu.CATEGORY = 0
LEFT JOIN BD_GRADE grade on grade.PK_ID = cu.PK_SETTLE_GRADE
LEFT JOIN BD_AWARDS awards on awards.PK_ID = cu.PK_AWARDS
<where>
<if test="param.pkIdList != null and param.pkIdList.size > 0">
cu.pk_id in
<foreach collection="param.pkIdList" item="pkMember" separator="," open="(" close=")">
#{pkMember}
</foreach>
</if>
</where>
order by totalBoxNum desc, todayPv desc, cu.CREATION_TIME desc, cu.pk_id asc
</select>
</mapper>

View File

@ -541,6 +541,7 @@ public class BdWaresController extends BaseController {
waresParams.setPkSpecialCurrency(waresExtend.getPkSpecialCurrency());
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()));

View File

@ -9,13 +9,6 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @Description:
* @Author: yuhui
* @Time: 2022/9/9 14:14
* @Classname: WaresParams
* @PackageName: com.hzs.sale.wares.controller.manage.params
*/
@Data
public class WaresParams implements Serializable {
/**
@ -416,4 +409,9 @@ public class WaresParams implements Serializable {
*/
private Integer waresStatus;
/**
* 复购区域分红
*/
private BigDecimal areaIncome;
}

View File

@ -46,9 +46,9 @@
<result column="DETAILS_TYPE" property="detailsType"/>
<result column="AFTER_GUARANTEE" property="afterGuarantee"/>
<result column="giftNames" property="giftNames"/>
<result column="maker_income" property="makerIncome"/>
<result column="PK_SPECIAL_CURRENCY" property="pkSpecialCurrency"/>
<result column="SYSTEM_TYPE" property="systemType"/>
<result column="AREA_INCOME" property="areaIncome"/>
</resultMap>
<resultMap id="resultMap" type="com.hzs.sale.wares.vo.WaresVo">

View File

@ -4,6 +4,8 @@ import com.hzs.common.domain.sale.order.SaOrderWares;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
@EqualsAndHashCode(callSuper = true)
@Data
public class SaOrderWaresExt extends SaOrderWares {
@ -13,4 +15,9 @@ public class SaOrderWaresExt extends SaOrderWares {
*/
private String waresCode;
/**
* 复购区域分红
*/
private BigDecimal areaIncome;
}

View File

@ -216,4 +216,10 @@ public class BdWares extends BaseEntity {
@TableField("SYSTEM_TYPE")
private Integer systemType;
/**
* 复购区域分红
*/
@TableField("AREA_INCOME")
private BigDecimal areaIncome;
}