3
0
Fork 0

Compare commits

..

8 Commits

11 changed files with 146 additions and 80 deletions

View File

@ -212,6 +212,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
BigDecimal boxNum = saOrderExt.getBoxNum();
// 个人累计消费pv
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
// 个人累计消费金额
BigDecimal orderAmount = saOrderExt.getOrderAmount();
// 复购重消盒数业绩算个人累计数据盒数业绩
sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum().add(boxNum));
sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum().add(boxNum));
@ -219,6 +221,15 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getNewConsumePv(), orderAchieve));
sourceMemberRangeExt.setConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getConsumePv(), orderAchieve));
sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve));
sourceMemberRangeExt.setNewConsumeAmount(ComputeUtil.computeAdd(sourceMemberRangeExt.getNewConsumeAmount(), orderAmount));
sourceMemberRangeExt.setConsumeAmount(ComputeUtil.computeAdd(sourceMemberRangeExt.getConsumeAmount(), orderAmount));
sourceMemberRangeExt.setMonthConsumeAmount(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthConsumeAmount(), orderAmount));
if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
// 复购
sourceMemberRangeExt.setMonthRepBoxNum(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthRepBoxNum(), boxNum));
sourceMemberRangeExt.setMonthRepConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthRepConsumePv(), orderAchieve));
sourceMemberRangeExt.setMonthRepConsumeAmount(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthRepConsumeAmount(), orderAmount));
}
if (EYesNo.NO.getIntValue() == sourceMemberRangeExt.getEnableStatus()
&& activateMap.containsKey(sourceMemberRangeExt.getPkMember())) {
// 存在手动激活

View File

@ -62,30 +62,36 @@
<update id="mergeMemberRetailRangeInit">
update ${rangeTableName}
set new_box_num = 0,
consume_box_num = 0,
month_box_num = 0,
new_consume_pv = 0,
consume_pv = 0,
month_consume_pv = 0,
team_new_box_num = 0,
team_box_num = 0,
team_month_box_num = 0,
team_new_pv = 0,
team_consume_pv = 0,
team_month_pv = 0,
team_new_amount = 0,
team_consume_amount = 0,
team_month_amount = 0,
recommend_num = 0,
team_num = 0,
enable_status = 1,
pk_grade = (select pk_id from bd_grade where del_flag = 0 and grade_value = 20),
region_address = 0,
big_box_num = 0,
small_box_num = 0,
big_team_pv = 0,
small_team_pv = 0
set new_box_num = 0,
consume_box_num = 0,
month_box_num = 0,
new_consume_pv = 0,
consume_pv = 0,
month_consume_pv = 0,
new_consume_amount = 0,
consume_amount = 0,
month_consume_amount = 0,
team_new_box_num = 0,
team_box_num = 0,
team_month_box_num = 0,
team_new_pv = 0,
team_consume_pv = 0,
team_month_pv = 0,
team_new_amount = 0,
team_consume_amount = 0,
team_month_amount = 0,
month_rep_box_num = 0,
month_rep_consume_pv = 0,
month_rep_consume_amount = 0,
recommend_num = 0,
team_num = 0,
enable_status = 1,
pk_grade = (select pk_id from bd_grade where del_flag = 0 and grade_value = 20),
region_address = 0,
big_box_num = 0,
small_box_num = 0,
big_team_pv = 0,
small_team_pv = 0
</update>
<update id="mergeMemberRetailRangeByYesterday">
@ -94,9 +100,11 @@
select pk_member, pk_grade, pk_awards, pk_share_awards, enable_status,
new_box_num, consume_box_num, month_box_num,
new_consume_pv, consume_pv, month_consume_pv,
new_consume_amount, consume_amount, month_consume_amount,
team_new_box_num, team_box_num, team_month_box_num,
team_new_pv, team_consume_pv, team_month_pv,
team_new_amount, team_consume_amount, team_month_amount,
month_rep_box_num, month_rep_consume_pv, month_rep_consume_amount,
recommend_num, team_num,
big_box_num, small_box_num, big_team_pv, small_team_pv
from ${yesterdayRangeTableName}
@ -106,6 +114,7 @@
update set
a.consume_box_num = b.consume_box_num,
a.consume_pv = b.consume_pv,
a.consume_amount = b.consume_amount,
a.team_box_num = b.team_box_num,
a.team_consume_pv = b.team_consume_pv,
a.team_consume_amount = b.team_consume_amount,
@ -117,9 +126,13 @@
<if test="isSameMonth == 0">
,a.month_box_num = b.month_box_num
,a.month_consume_pv = b.month_consume_pv
,a.month_consume_amount = b.month_consume_amount
,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.month_rep_box_num = b.month_rep_box_num
,a.month_rep_consume_pv = b.month_rep_consume_pv
,a.month_rep_consume_amount = b.month_rep_consume_amount
</if>
</update>
@ -130,9 +143,11 @@
select #{item.pkMember} pk_member, #{item.pkGrade} pk_grade,
#{item.newBoxNum} new_box_num, #{item.consumeBoxNum} consume_box_num, #{item.monthBoxNum} month_box_num,
#{item.newConsumePv} new_consume_pv, #{item.consumePv} consume_pv, #{item.monthConsumePv} month_consume_pv,
#{item.newConsumeAmount} new_consume_amount, #{item.consumeAmount} consume_amount, #{item.monthConsumeAmount} month_consume_amount,
#{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.monthRepBoxNum} month_rep_box_num, #{item.monthRepConsumePv} month_rep_consume_pv, #{item.monthRepConsumeAmount} month_rep_consume_amount,
#{item.recommendNum} recommend_num, #{item.teamNum} team_num, #{item.enableStatus} enable_status
from dual
</foreach>
@ -142,9 +157,11 @@
update set a.pk_grade = b.pk_grade,
a.new_box_num = b.new_box_num, a.consume_box_num = b.consume_box_num, a.month_box_num = b.month_box_num,
a.new_consume_pv = b.new_consume_pv, a.consume_pv = b.consume_pv, a.month_consume_pv = b.month_consume_pv,
a.new_consume_amount = b.new_consume_amount, a.consume_amount = b.consume_amount, a.month_consume_amount = b.month_consume_amount,
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.month_rep_box_num = b.month_rep_box_num, a.month_rep_consume_pv = b.month_rep_consume_pv, a.month_rep_consume_amount = b.month_rep_consume_amount,
a.recommend_num = b.recommend_num, a.team_num = b.team_num, a.enable_status = b.enable_status
</update>
@ -172,6 +189,9 @@
new_consume_pv,
consume_pv,
month_consume_pv,
new_consume_amount,
consume_amount,
month_consume_amount,
team_new_box_num,
team_box_num,
team_month_box_num,
@ -181,6 +201,9 @@
team_new_amount,
team_consume_amount,
team_month_amount,
month_rep_box_num,
month_rep_consume_pv,
month_rep_consume_amount,
recommend_num,
team_num,
ba.grade_value,

View File

@ -440,6 +440,9 @@
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,
new_consume_amount number(17,6) default 0 not null,
consume_amount number(17,6) default 0 not null,
month_consume_amount 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,
@ -455,7 +458,10 @@
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
small_team_pv number(17,6) default 0 not null,
month_rep_box_num number(17,6) default 0 not null,
month_rep_consume_pv number(17,6) default 0 not null,
month_rep_consume_amount number(17,6) default 0 not null
)
</update>

View File

@ -275,6 +275,8 @@ public class RetailMemberController extends BaseController {
List<CuMemberExt> cuMemberExtList = iCuMemberService.listRecommend(SecurityUtils.getUserId());
if (CollectionUtil.isNotEmpty(cuMemberExtList)) {
for (CuMemberExt cuMemberExt : cuMemberExtList) {
// 2025.09.05 数据改为按金额显示
cuMemberExt.setConsumeAchieve(cuMemberExt.getConsumeMoney());
resultList.add(BeanUtil.copyProperties(cuMemberExt, RecommendListVO.class));
}
}

View File

@ -524,10 +524,12 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
pkMemberList = baseMapper.selectDirectPushByPkMember(member.getPkId(), SecurityUtils.getSystemType());
}
List<PerformanceVO> meList = baseMapper.getPerformanceList(settleTable, Collections.singletonList(member.getPkId()), targetDayStart, targetDayEnd);
formatAmount(meList);
PageUtils.startPage(param.getPageNum(), param.getPageSize());
List<PerformanceVO> otherList = new ArrayList<>();
if(CollUtil.isNotEmpty(pkMemberList)){
otherList = baseMapper.getPerformanceList(settleTable, pkMemberList, targetDayStart, targetDayEnd);
formatAmount(otherList);
}
PageUtils.clearPage();
if(param.getPageNum() == 1){
@ -537,6 +539,18 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
return otherList;
}
}
private void formatAmount(List<PerformanceVO> list){
for (PerformanceVO performanceVO : list) {
// debug
performanceVO.setCurrentMonthPv(performanceVO.getCurrentMonthAmount());
performanceVO.setRepurchasePv(performanceVO.getRepurchaseAmount());
performanceVO.setRepurchasePv(DataStatisticsUtil.formatPV(performanceVO.getRepurchasePv()));
performanceVO.setRepurchaseAmount(DataStatisticsUtil.formatPV(performanceVO.getRepurchaseAmount()));
performanceVO.setCurrentMonthPv(DataStatisticsUtil.formatPV(performanceVO.getCurrentMonthPv()));
performanceVO.setCurrentMonthAmount(DataStatisticsUtil.formatPV(performanceVO.getCurrentMonthAmount()));
}
}
public static boolean isCurrentMonth(String yearStr, String monthStr) {
if (yearStr == null || monthStr == null || yearStr.trim().isEmpty() || monthStr.trim().isEmpty()) {
throw new IllegalArgumentException("年份和月份不能为空");

View File

@ -27,8 +27,13 @@ public class PerformanceVO implements Serializable {
/**
* 当月业绩
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal currentMonthPv;
/**
* 当月金额
*/
@BigDecimalFormat("#0.0000")
private BigDecimal currentMonthAmount;
/**
* 当月盒数
*/
@ -36,8 +41,13 @@ public class PerformanceVO implements Serializable {
/**
* 复购业绩
*/
@BigDecimalFormat
@BigDecimalFormat("#0.0000")
private BigDecimal repurchasePv;
/**
* 复购金额
*/
@BigDecimalFormat("#0.0000")
private BigDecimal repurchaseAmount;
/**
* 复购盒数
*/

View File

@ -744,29 +744,16 @@
currentMonth.ENABLE_STATUS,
NVL( currentMonth.MONTH_CONSUME_PV + currentMonth.TEAM_MONTH_PV, 0 ) currentMonthPv,
NVL( currentMonth.MONTH_BOX_NUM + currentMonth.TEAM_MONTH_BOX_NUM, 0 ) currentMonthBoxNum,
NVL( repurchasePv, 0 ) repurchasePv,
NVL( repurchaseBox, 0 ) repurchaseBox
NVL( currentMonth.MONTH_CONSUME_AMOUNT + currentMonth.TEAM_MONTH_AMOUNT, 0 ) currentMonthAmount,
NVL( currentMonth.MONTH_REP_CONSUME_PV, 0 ) repurchasePv,
NVL( currentMonth.MONTH_REP_CONSUME_AMOUNT, 0 ) repurchaseAmount,
NVL( currentMonth.MONTH_REP_BOX_NUM, 0 ) repurchaseBox
FROM
cu_member cu
LEFT JOIN ${tableName} currentMonth ON cu.PK_ID = currentMonth.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
LEFT JOIN (
SELECT
PK_MEMBER,
sum( ORDER_ACHIEVE ) repurchasePv,
sum( BOX_NUM ) repurchaseBox
FROM
sa_order
WHERE
ORDER_TYPE = 43
AND DEL_FLAG = 0
AND ORDER_STATUS = 1
AND PAY_TIME BETWEEN #{targetDayStart} and #{targetDayEnd}
GROUP BY
PK_MEMBER
) fg ON fg.pk_member = cu.pk_id
WHERE cu.pk_id in
<foreach collection="memberIdList" item="memberId" separator="," open="(" close=")">
#{memberId}

View File

@ -2332,6 +2332,7 @@
cm.member_name,
cm.nick_name,
cm.consume_achieve,
cm.consume_money,
cm.creation_time,
cm.phone,
bg.grade_name AS settle_grade_val,

View File

@ -577,12 +577,12 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
// 查询订单信息
SaOrderExt saOrder = iSaOrderService.queryOrderByCode(orderCode, pkCountry);
if (null == saOrder) {
return TransactionUtils.getContent(CommonMsgConstants.OPERATION_FAILED) + "" + orderCode + SaOrderMsgConstants.ORDER_NOT_EXIST;
return CommonMsgConstants.OPERATION_FAILED + "" + orderCode + SaOrderMsgConstants.ORDER_NOT_EXIST;
}
// 订单支付日期 < 当前日期-7天
Date beforeDate = DateUtils.addDate(DateUtils.getStartTime(nowDate), -7);
if (beforeDate.compareTo(saOrder.getPayTime()) > 0) {
return TransactionUtils.getContent(DocumentMsgConstants.DOCUMENT_ORDER_SETTLED);
return DocumentMsgConstants.DOCUMENT_ORDER_SETTLED;
}
// 操作日志内容
@ -648,16 +648,13 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
return "订单已经发货,不能进行调换货物";
}
// 是否扣款
boolean orderCostFlag = false;
// 修改前的订单金额 + 邮费
BigDecimal beforeAmount = saOrder.getOrderAmount().add(saOrder.getPostage()).setScale(2, BigDecimal.ROUND_HALF_UP);
// 修改后的订单金额 + 邮费
BigDecimal afterAmount = afterData.getOrderAmount().add(param.getPostage()).setScale(2, BigDecimal.ROUND_HALF_UP);
// 对比修改前后订单价格处理是否补差价
// 校验订单原订单价格和调换完货之后的价格不相同不进行换货
if (beforeAmount.compareTo(afterAmount) != 0) {
// 修改前后金额不相同则进行处理
orderCostFlag = true;
return CommonMsgConstants.OPERATION_FAILED + "" + param.getOrderCode() + SaOrderMsgConstants.PRODUCT_CONFIRM_PRICE;
}
if (iSaOrderChargeLogService.save(saOrderChargeLog)) {
@ -666,13 +663,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
changeIdList, noChangeIdList,
userId, pkCountry, nowDate);
if (orderCostFlag) {
// 订单调换货物扣费处理
R resultR = iMemberAccountServiceApi.orderChangeProduct(saOrder, updateOrder, userId, dto);
if (!resultR.isSuccess()) {
throw new BaseException(resultR.getMsg());
}
} else if (null != dto) {
if (null != dto) {
// 订单总价未变化但是需要手续费
R resultR = iMemberAccountServiceApi.orderChangeProduct(null, null, userId, dto);
if (!resultR.isSuccess()) {
@ -705,12 +696,12 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
// 查询订单收货地址信息
SaOrderExt saOrder = iSaOrderService.queryOrderByCode(orderCode, pkCountry);
if (null == saOrder) {
return TransactionUtils.getContent(CommonMsgConstants.OPERATION_FAILED) + "" + orderCode + SaOrderMsgConstants.ORDER_NOT_EXIST;
return CommonMsgConstants.OPERATION_FAILED + "" + orderCode + SaOrderMsgConstants.ORDER_NOT_EXIST;
}
// 订单支付日期 < 当前日期-7天
Date beforeDate = DateUtils.addDate(DateUtils.getStartTime(nowDate), -7);
if (beforeDate.compareTo(saOrder.getPayTime()) > 0) {
return TransactionUtils.getContent(DocumentMsgConstants.DOCUMENT_ORDER_SETTLED);
return DocumentMsgConstants.DOCUMENT_ORDER_SETTLED;
}
// 涉及会员ID列表
@ -755,24 +746,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
BigDecimal beforeAmount = saOrder.getOrderAmount().add(saOrder.getPostage()).setScale(2, BigDecimal.ROUND_HALF_UP);
// 修改后的订单金额 + 邮费
BigDecimal afterAmount = afterData.getOrderAmount().add(param.getPostage()).setScale(2, BigDecimal.ROUND_HALF_UP);
// 对比修改前后订单价格处理是否补差价
if (beforeAmount.compareTo(afterAmount) < 0) {
// 存在差额
// 封装订单数据
SaOrder updateOrder = BeanUtil.copyProperties(saOrder, SaOrder.class);
updateOrder.setPkId(saOrder.getPkId());
updateOrder.setOrderAmount(afterData.getOrderAmount());
updateOrder.setOrderAchieve(afterData.getOrderAchieve());
updateOrder.setOrderAssAchieve(afterData.getOrderAssAchieve());
updateOrder.setPostage(param.getPostage());
updateOrder.setPkModified(userId);
updateOrder.setModifiedTime(nowDate);
// 校验订单支付金额是否足够
R resultR = iMemberAccountServiceApi.orderChangeProductPre(saOrder, updateOrder);
if (!resultR.isSuccess()) {
return resultR.getMsg();
}
//校验订单原订单价格和调换完货之后的价格不相同不进行换货
if (beforeAmount.compareTo(afterAmount) != 0) {
return CommonMsgConstants.OPERATION_FAILED + "" + param.getOrderCode() + SaOrderMsgConstants.PRODUCT_CONFIRM_PRICE;
}
if (iSaOrderChargeLogService.save(saOrderChargeLog)) {
@ -786,7 +762,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
}
return submitStr;
}
return TransactionUtils.getContent(CommonMsgConstants.OPERATION_FAILED);
return CommonMsgConstants.OPERATION_FAILED;
}
@Transactional(rollbackFor = Exception.class)
@ -2015,7 +1991,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService {
BigDecimal afterOrderAssAchieve = BigDecimal.ZERO;
// 修改后明细数据
List<OrderChangeProductDetailDTO> afterDetailList = new ArrayList<>();
// 产品ID列表
List<Integer> productIdList = param.getItemList().stream().map(OrderProductDetailParam::getPkProduct).collect(Collectors.toList());
// 查询产品列表

View File

@ -163,4 +163,9 @@ public class SaOrderMsgConstants {
*/
public static final String CHECK_MEMBER_LOWER_EXIST = "该会员推荐存在会员不能撤单";
/**
* 原订单价格和调换完货之后的价格不相同 -- 不允许货物调换
*/
public static final String PRODUCT_CONFIRM_PRICE = "原订单价格和调换完货之后的价格不相同";
}

View File

@ -145,6 +145,38 @@ public class CuMemberRetailRange extends BaseEntity {
@TableField("MONTH_CONSUME_PV")
private BigDecimal monthConsumePv;
/**
* 本人当天新消费金额
*/
@TableField("NEW_CONSUME_AMOUNT")
private BigDecimal newConsumeAmount;
/**
* 本人累计消费金额
*/
@TableField("CONSUME_AMOUNT")
private BigDecimal consumeAmount;
/**
* 本人月累计消费金额
*/
@TableField("MONTH_CONSUME_AMOUNT")
private BigDecimal monthConsumeAmount;
/**
* 本人月复购累计盒数
*/
@TableField("MONTH_REP_BOX_NUM")
private BigDecimal monthRepBoxNum;
/**
* 本人月复购累计消费pv
*/
@TableField("MONTH_REP_CONSUME_PV")
private BigDecimal monthRepConsumePv;
/**
* 本人月复购累计消费金额
*/
@TableField("MONTH_REP_CONSUME_AMOUNT")
private BigDecimal monthRepConsumeAmount;
// @TableField("own_box_num")
// private Integer ownBoxNum;