Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
42ede2b927
|
@ -8,11 +8,7 @@ import com.hzs.common.domain.member.detail.ext.CuMemberAwardsExt;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 会员升级记录dubbo服务
|
||||
* @Author: jiang chao
|
||||
* @Time: 2024/1/30 17:24
|
||||
* @Classname: ICuMemberLevelServiceApi
|
||||
* @PackageName: com.hzs.member.detail
|
||||
* 会员升级记录dubbo服务
|
||||
*/
|
||||
public interface ICuMemberDetailServiceApi {
|
||||
|
||||
|
|
|
@ -1,37 +1,20 @@
|
|||
package com.hzs.report.stat;
|
||||
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.EApprovalBusiness;
|
||||
import com.hzs.report.stat.dto.StatisticalLogDTO;
|
||||
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description: 统计分析
|
||||
* @author: zhang jing
|
||||
* @date: 2025/2/12 15:22
|
||||
* @param:
|
||||
* @return:
|
||||
* 统计分析
|
||||
**/
|
||||
public interface IMemberReportServiceApi {
|
||||
|
||||
/**
|
||||
* 定时任务批量处理统计会员以及伞下金额业绩盒数
|
||||
**/
|
||||
R<?> pushAmountBoxmethod();
|
||||
|
||||
/**
|
||||
* @description: 定时任务批量处理统计会员以及伞下金额业绩盒数
|
||||
* @author: zhang jing
|
||||
* @date: 2025/2/13 10:41
|
||||
* @param: []
|
||||
* @return: com.hzs.common.core.domain.R
|
||||
* 定时任务7天重算直推会员金额业绩盒数
|
||||
**/
|
||||
R pushAmountBoxmethod();
|
||||
/**
|
||||
* @description: 定时任务7天重算直推会员金额业绩盒数
|
||||
* @author: zhang jing
|
||||
* @date: 2025/2/13 10:41
|
||||
* @param: [startDateStr, endDateStr]
|
||||
* @return: com.hzs.common.core.domain.R
|
||||
**/
|
||||
R repeatPushAmountBoxmethod(String startDateStr, String endDateStr);
|
||||
R<?> repeatPushAmountBoxmethod(String startDateStr, String endDateStr);
|
||||
|
||||
}
|
||||
|
|
|
@ -7,20 +7,13 @@ import org.apache.ibatis.annotations.Param;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 秒接日志记录表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2024-12-27
|
||||
*/
|
||||
public interface CuMemberRetailLogMapper extends BaseMapper<CuMemberRetailLog> {
|
||||
|
||||
/*
|
||||
* @description: 更新会员日志
|
||||
* @author: sui q
|
||||
* @date: 2024/12/31 13:44
|
||||
* @param: null null
|
||||
* 更新会员日志
|
||||
**/
|
||||
void updateCuMemberRetailLogByList(@Param("cuMemberRetailLogs") List<CuMemberRetailLog> cuMemberRetailLogs);
|
||||
|
||||
}
|
||||
|
|
|
@ -30,27 +30,22 @@ import java.util.List;
|
|||
public class MemberSettleBonusProvider implements IMemberSettleBonusApi {
|
||||
|
||||
@Autowired
|
||||
private ICuMemberMonthAchieveService cuMemberMonthAchieveService;
|
||||
|
||||
private ICuMemberMonthAchieveService iCuMemberMonthAchieveService;
|
||||
@Autowired
|
||||
private IBonusSettleService bonusSettleService;
|
||||
|
||||
private IBonusSettleService iBonusSettleService;
|
||||
@Autowired
|
||||
private ICuMemberBonusService cuMemberBonusService;
|
||||
|
||||
private IBonusGrantService iBonusGrantService;
|
||||
@Autowired
|
||||
private IBonusGrantService bonusGrantService;
|
||||
|
||||
private ICuMemberBonusService iCuMemberBonusService;
|
||||
@Autowired
|
||||
private ICuMemberAchieveService cuMemberAchieveService;
|
||||
|
||||
private ICuMemberAchieveService iCuMemberAchieveService;
|
||||
@Autowired
|
||||
private ICuMemberRetailLogService cuMemberRetailLogService;
|
||||
private ICuMemberRetailLogService iCuMemberRetailLogService;
|
||||
|
||||
@Override
|
||||
public R<Boolean> calculateCumberBonusBySecond(String orderCode) {
|
||||
try {
|
||||
bonusSettleService.calculateCumberBonusBySecond(orderCode);
|
||||
iBonusSettleService.calculateCumberBonusBySecond(orderCode);
|
||||
} catch (Exception e) {
|
||||
return R.fail();
|
||||
}
|
||||
|
@ -69,7 +64,7 @@ public class MemberSettleBonusProvider implements IMemberSettleBonusApi {
|
|||
|
||||
@Override
|
||||
public void backupsSettleBonusEveryday() {
|
||||
cuMemberBonusService.backupsSettleBonusEveryday();
|
||||
iCuMemberBonusService.backupsSettleBonusEveryday();
|
||||
}
|
||||
|
||||
class BonusCalculateBonus extends Thread {
|
||||
|
@ -82,55 +77,53 @@ public class MemberSettleBonusProvider implements IMemberSettleBonusApi {
|
|||
|
||||
@Override
|
||||
public void run() {
|
||||
if (DateUtils.compareDateBefore(settleDate, DateUtils.parseStringToDate("2023-09-04"))) {
|
||||
return;
|
||||
}
|
||||
Date settleEndDate = DateUtils.afterDate(1, ChronoUnit.DAYS, settleDate);
|
||||
log.info("奖金结算完成,结算时间:{}", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, settleDate));
|
||||
log.info("奖金结算开始, 结算时间:{}", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, settleDate));
|
||||
// 奖金结算
|
||||
try {
|
||||
cuMemberBonusService.autoCalculateBonus(settleDate, settleEndDate);
|
||||
iCuMemberBonusService.autoCalculateBonus(settleDate, settleEndDate);
|
||||
log.info("奖金结算结束");
|
||||
} catch (Exception e) {
|
||||
log.info("BonusCalculateBonus error: ", e);
|
||||
log.error("奖金结算异常,结算时间:{}", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, settleDate), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertCuMemberAchieveByEveryDay() {
|
||||
cuMemberMonthAchieveService.insertCuMemberAchieveByEveryDay(DateUtils.beforeDate(1, ChronoUnit.DAYS));
|
||||
iCuMemberMonthAchieveService.insertCuMemberAchieveByEveryDay(DateUtils.beforeDate(1, ChronoUnit.DAYS));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void autoPublishBonus() {
|
||||
bonusGrantService.publishBonusByPeriodEveryDay();
|
||||
iBonusGrantService.publishBonusByPeriodEveryDay();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void autoGrantBonus() {
|
||||
bonusGrantService.grantWithdrawBonusByPeriodEveryDay();
|
||||
iBonusGrantService.grantWithdrawBonusByPeriodEveryDay();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean chargeBackSaOrder(SaOrder saOrder) {
|
||||
return cuMemberAchieveService.chargeBackSaOrder(saOrder);
|
||||
return iCuMemberAchieveService.chargeBackSaOrder(saOrder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void calculateCuMemberRetailRangeBonusBySaOrder() {
|
||||
List<CuMemberRetailLog> cuMemberRetailLogs = cuMemberRetailLogService.queryCuMemberRetailLog();
|
||||
List<CuMemberRetailLog> cuMemberRetailLogs = iCuMemberRetailLogService.queryCuMemberRetailLog();
|
||||
if (cuMemberRetailLogs.size() > 0) {
|
||||
List<CuMemberRetailLog> successLogList = new ArrayList<>();
|
||||
try {
|
||||
for (CuMemberRetailLog cuMemberRetailLog : cuMemberRetailLogs) {
|
||||
bonusSettleService.calculateCuMemberRetailRangeBonusBySaOrder(cuMemberRetailLog.getOrderCode());
|
||||
iBonusSettleService.calculateCuMemberRetailRangeBonusBySaOrder(cuMemberRetailLog.getOrderCode());
|
||||
successLogList.add(cuMemberRetailLog);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if (successLogList.size() > 0) {
|
||||
cuMemberRetailLogService.updateCuMemberRetailLogByList(successLogList);
|
||||
iCuMemberRetailLogService.updateCuMemberRetailLogByList(successLogList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -138,6 +131,6 @@ public class MemberSettleBonusProvider implements IMemberSettleBonusApi {
|
|||
|
||||
@Override
|
||||
public R<CuMemberRetail> queryValidateBoxOrAchieve(Long pkMember) {
|
||||
return R.ok(bonusSettleService.queryValidateBoxOrAchieve(pkMember));
|
||||
return R.ok(iBonusSettleService.queryValidateBoxOrAchieve(pkMember));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,27 +1,20 @@
|
|||
package com.hzs.bonus.bonus.service;
|
||||
|
||||
import com.hzs.common.domain.member.bonus.CuMemberRetail;
|
||||
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 奖金结算服务类
|
||||
* @Author: sui q
|
||||
* @Time: 2022/11/3 18:49
|
||||
* @Classname: IBonusSettleService
|
||||
* @PackageName: com.hzs.member.achieve.service
|
||||
* 奖金结算服务类
|
||||
*/
|
||||
public interface IBonusSettleService {
|
||||
|
||||
/**
|
||||
* 根据秒结算会员奖金
|
||||
*
|
||||
* @param orderCode 订单
|
||||
* @return: List<SaOrderExt>
|
||||
* @Author: sui q
|
||||
* @Date: 2023/2/1 21:27
|
||||
*/
|
||||
*/
|
||||
void calculateCumberBonusBySecond(String orderCode);
|
||||
|
||||
/**
|
||||
|
@ -29,32 +22,22 @@ public interface IBonusSettleService {
|
|||
*
|
||||
* @param date 结算日期
|
||||
* @param saOrderExtList 订单
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/3 13:56
|
||||
*/
|
||||
void calculateCuMemberBonus(String date, List<SaOrderExt> saOrderExtList);
|
||||
|
||||
/*
|
||||
* @description: 根据订单计算新零售奖金
|
||||
* @author: sui q
|
||||
* @date: 2024/12/12 9:39
|
||||
* @param: null null
|
||||
* 根据订单计算新零售奖金
|
||||
**/
|
||||
void calculateCuMemberRetailRangeBonusBySaOrder(String orderCode);
|
||||
|
||||
/*
|
||||
* @description: 4-n配置修改后,重算首购奖金
|
||||
* @author: sui q
|
||||
* @date: 2024/7/23 11:15
|
||||
* @param: null null
|
||||
* 4-n配置修改后,重算首购奖金
|
||||
**/
|
||||
void repeatCuMemberBonusByExpand(String settleDate, List<SaOrderExt> saOrderExtList);
|
||||
|
||||
/*
|
||||
* @description: 根据会员查询会员的 大小区盒数、业绩
|
||||
* @author: sui q
|
||||
* @date: 2025/2/20 15:10
|
||||
* @param: null null
|
||||
* 根据会员查询会员的 大小区盒数、业绩
|
||||
**/
|
||||
CuMemberRetail queryValidateBoxOrAchieve(Long pkMember);
|
||||
|
||||
}
|
||||
|
|
|
@ -6,28 +6,18 @@ import com.hzs.common.domain.member.bonus.CuMemberRetailLog;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 秒接日志记录表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2024-12-27
|
||||
*/
|
||||
public interface ICuMemberRetailLogService extends IService<CuMemberRetailLog> {
|
||||
|
||||
/*
|
||||
* @description: 查询24小时之内失败的记录,重试
|
||||
* @author: sui q
|
||||
* @date: 2024/12/31 13:35
|
||||
* @param: null null
|
||||
* 查询24小时之内失败的记录,重试
|
||||
**/
|
||||
List<CuMemberRetailLog> queryCuMemberRetailLog();
|
||||
|
||||
/*
|
||||
* @description: 更新会员日志
|
||||
* @author: sui q
|
||||
* @date: 2024/12/31 13:44
|
||||
* @param: null null
|
||||
* 更新会员日志
|
||||
**/
|
||||
void updateCuMemberRetailLogByList(List<CuMemberRetailLog> cuMemberRetailLogs);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
package com.hzs.bonus.bonus.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hzs.bonus.achieve.param.MemberAchieveParam;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberAchieveService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberTreeService;
|
||||
import com.hzs.bonus.base.service.ICuMemberService;
|
||||
import com.hzs.bonus.bonus.service.ICuBonusExpandService;
|
||||
import com.hzs.bonus.detail.service.ICuMemberAssessService;
|
||||
import com.hzs.common.core.constant.BonusFieldConstants;
|
||||
import com.hzs.common.core.constant.CountryConstants;
|
||||
|
@ -18,7 +14,6 @@ import com.hzs.common.core.utils.ComputeUtil;
|
|||
import com.hzs.common.core.utils.DateUtils;
|
||||
import com.hzs.common.core.utils.reflect.ReflectUtils;
|
||||
import com.hzs.common.domain.bonus.BdBonusDeduct;
|
||||
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
|
||||
import com.hzs.common.domain.member.achieve.CuMemberTree;
|
||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRangeExt;
|
||||
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
|
||||
|
@ -28,7 +23,6 @@ import com.hzs.common.domain.member.detail.CuMemberAssess;
|
|||
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.order.SaOrder;
|
||||
import com.hzs.common.domain.sale.order.SaOrderBonus;
|
||||
import com.hzs.common.domain.system.config.BdAwards;
|
||||
import com.hzs.common.domain.system.config.BdGrade;
|
||||
import com.hzs.common.domain.system.config.ext.BdBonusItemsExt;
|
||||
|
@ -47,27 +41,18 @@ import org.springframework.stereotype.Component;
|
|||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: sui q
|
||||
* @Time: 2022/11/16 11:24
|
||||
* @Classname: BonusSettleHandle
|
||||
* @PackageName: com.hzs.member.achieve.service.impl
|
||||
*/
|
||||
@Component
|
||||
public abstract class BonusSettleHandle {
|
||||
|
||||
protected ICuMemberTreeService cuMemberTreeService;
|
||||
|
||||
@DubboReference
|
||||
protected ISaOrderServiceApi saOrderServiceApi;
|
||||
|
||||
@DubboReference
|
||||
protected IBonusItemsServiceApi bonusItemsServiceApi;
|
||||
|
||||
@DubboReference
|
||||
private ICurrencyServiceApi currencyServiceApi;
|
||||
|
||||
protected ICuMemberTreeService cuMemberTreeService;
|
||||
|
||||
@Autowired
|
||||
public void setCuMemberTreeService(ICuMemberTreeService cuMemberTreeService) {
|
||||
this.cuMemberTreeService = cuMemberTreeService;
|
||||
|
@ -148,14 +133,12 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 获得国家对应的4-n参数比例
|
||||
*
|
||||
* @param bonusConfigDTO 奖金配置汇总
|
||||
* @param memberSettleExt 会员
|
||||
* @param endTouch 4-n的次数
|
||||
* @param bdGrade 等级
|
||||
* @Description: 获得国家对应的4-n参数比例
|
||||
* @return: BigDecimal
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/16 11:27
|
||||
*/
|
||||
protected BigDecimal getCountryExpand(BonusConfigDTO bonusConfigDTO, CuMemberSettleExt memberSettleExt, Integer endTouch, BdGrade bdGrade,
|
||||
BigDecimal addTouch, BigDecimal editExpandRatio) {
|
||||
|
@ -175,14 +158,12 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 获得国家对应的4-n参数比例
|
||||
*
|
||||
* @param bonusConfigDTO 奖金配置汇总
|
||||
* @param memberSettleExt 会员
|
||||
* @param endTouch 4-n的次数
|
||||
* @param bdGrade 等级
|
||||
* @Description: 获得国家对应的4-n参数比例
|
||||
* @return: BigDecimal
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/16 11:27
|
||||
*/
|
||||
protected BigDecimal getCountryRepurchaseExpand(BonusConfigDTO bonusConfigDTO, CuMemberSettleExt memberSettleExt, Integer endTouch, BdGrade bdGrade, BigDecimal addTouch, BigDecimal editExpandRatio) {
|
||||
BonusExpandDTO bonusExpand = bonusConfigDTO.getBonusExpandMap().get(memberSettleExt.getPkSettleCountry());
|
||||
|
@ -728,14 +709,12 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 获得 报单服务费收益的备注
|
||||
*
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusRange 报单服务费
|
||||
* @param sourceMemberRangeExt 提供奖金的人
|
||||
* @param targetMemberRangeExt 获得奖金的人
|
||||
* @Description: 获得 报单服务费收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void rangeBenefitRetailRemark(SaOrder saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRetailRangeExt sourceMemberRangeExt,
|
||||
CuMemberRetailRangeExt targetMemberRangeExt) {
|
||||
|
@ -747,14 +726,12 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 获得 报单服务费收益的备注
|
||||
*
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusRange 报单服务费
|
||||
* @param sourceMemberRangeExt 提供奖金的人
|
||||
* @param targetMemberRangeExt 获得奖金的人
|
||||
* @Description: 获得 报单服务费收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void oriRangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberRangeExt sourceMemberRangeExt,
|
||||
CuMemberRangeExt targetMemberRangeExt) {
|
||||
|
@ -785,33 +762,29 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 获得 报单服务费收益的备注
|
||||
*
|
||||
* @param saOrderExt 订单编号
|
||||
* @param cuMemberBonusRange 报单服务费
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 报单服务费收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void xueRangeRemark(SaOrderExt saOrderExt, CuMemberBonusRange cuMemberBonusRange, CuMemberSettleExt sourceCuMemberSettleExt,
|
||||
CuMemberSettleExt targetCuMemberSettleExt) {
|
||||
String remark = String.format(BonusMsgConstants.LE_XUE_SHARE_RANGE, saOrderExt.getOrderCode(),
|
||||
sourceCuMemberSettleExt.getMemberCode() + sourceCuMemberSettleExt.getMemberName(),
|
||||
targetCuMemberSettleExt.getMemberCode() + targetCuMemberSettleExt.getMemberName(),
|
||||
ComputeUtil.computeDivide(targetCuMemberSettleExt.getRetailPrice(), BigDecimal.valueOf(6.4)), targetCuMemberSettleExt.getGradeValue());
|
||||
ComputeUtil.computeDivide(targetCuMemberSettleExt.getRetailPrice(), BigDecimal.ONE), targetCuMemberSettleExt.getGradeValue());
|
||||
cuMemberBonusRange.setRemark(remark);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得 报单服务费收益的备注
|
||||
*
|
||||
* @param saOrder 订单编号
|
||||
* @param cuMemberBonusDetail 云代首购
|
||||
* @param sourceCuMemberSettleExt 提供奖金的人
|
||||
* @param targetCuMemberSettleExt 获得奖金的人
|
||||
* @Description: 获得 报单服务费收益的备注
|
||||
* @return: String
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/17 11:22
|
||||
*/
|
||||
protected void cloudAgentRemark(SaOrder saOrder, CuMemberBonusDetail cuMemberBonusDetail, CuMemberSettleExt sourceCuMemberSettleExt,
|
||||
CuMemberSettleExt targetCuMemberSettleExt, String msg) {
|
||||
|
@ -1206,13 +1179,11 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 设置奖金扣项,计算税前收益,扣税,实际收益, 设置明细表
|
||||
*
|
||||
* @param cuMemberDetail 奖金明细
|
||||
* @param orderAmount 订单金额
|
||||
* @param exchangeRate 入汇率
|
||||
* @Description: 设置奖金扣项,计算税前收益,扣税,实际收益, 设置明细表
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/11 11:17
|
||||
*/
|
||||
protected BdBonusDeduct setBonusDetailDeduct(BonusConfigDTO bonusConfigDTO, Object cuMemberDetail, BigDecimal orderAmount, BigDecimal exchangeRate) {
|
||||
Integer pkBonusItems = ReflectUtils.invokeGetter(cuMemberDetail, BonusFieldConstants.PK_BONUS_ITEMS);
|
||||
|
|
|
@ -724,12 +724,12 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
|
|||
cuMemberBonusRange.setCalAchieve(saOrderItemsExt.getAchievement());
|
||||
cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
|
||||
cuMemberBonusRange.setPretaxIncome(ComputeUtil.computeMultiply(BigDecimal.valueOf(saOrderItemsExt.getWaresQuantity()),
|
||||
ComputeUtil.computeDivide(targetMemberSettleExt.getRetailPrice(), BigDecimal.valueOf(6.4))));
|
||||
ComputeUtil.computeDivide(targetMemberSettleExt.getRetailPrice(), BigDecimal.ONE)));
|
||||
String key = targetMemberSettleExt.getPkSettleCountry().toString() + ERangeType.GRADE.getValue() + targetMemberSettleExt.getPkGrade();
|
||||
cuMemberBonusRange.setPkRange(rangeDtoMap.get(key).getPkRange());
|
||||
String beforeKey = targetMemberSettleExt.getPkSettleCountry().toString() + ERangeType.GRADE.getValue() + targetMemberSettleExt.getPkGrade();
|
||||
cuMemberBonusRange.setPkBeforeRange(rangeDtoMap.get(beforeKey).getPkRange());
|
||||
cuMemberBonusRange.setIncomeRatio(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(cuMemberBonusRange.getPretaxIncome(), BigDecimal.valueOf(6.4)), saOrderExt.getOrderAmount()));
|
||||
cuMemberBonusRange.setIncomeRatio(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(cuMemberBonusRange.getPretaxIncome(), BigDecimal.ONE), saOrderExt.getOrderAmount()));
|
||||
cuMemberBonusRange.setPkOrderItems(0L);
|
||||
// 计算比例
|
||||
cuMemberBonusRange.setPkBonusItems(getPkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.REPURCHASE_RANGE_INCOME.getValue()));
|
||||
|
|
|
@ -3,9 +3,6 @@ package com.hzs.bonus.bonus.service.impl;
|
|||
import com.hzs.bonus.achieve.service.ICuMemberRangeService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService;
|
||||
import com.hzs.bonus.base.service.ICuMemberService;
|
||||
import com.hzs.bonus.bonus.param.BdWaresBonusParam;
|
||||
import com.hzs.bonus.bonus.service.IBdWaresBonusService;
|
||||
import com.hzs.bonus.bonus.service.ICuMemberSpeRetailService;
|
||||
import com.hzs.bonus.bonus.vo.BonusRecordDetailVO;
|
||||
import com.hzs.bonus.detail.service.ICuMemberAwardsService;
|
||||
import com.hzs.bonus.detail.service.ICuMemberGradeService;
|
||||
|
@ -31,9 +28,7 @@ import com.hzs.common.domain.sale.order.SaOrder;
|
|||
import com.hzs.common.domain.system.config.BdAwards;
|
||||
import com.hzs.common.domain.system.config.BdGrade;
|
||||
import com.hzs.common.domain.system.config.BdRangeAwards;
|
||||
import com.hzs.system.config.IAwardsServiceApi;
|
||||
import com.hzs.system.config.dto.BonusConfigDTO;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
@ -42,51 +37,33 @@ import java.time.temporal.ChronoUnit;
|
|||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @description: 计算乐享极差收益
|
||||
* @author: sui q
|
||||
* @time: 2024/10/15 13:53
|
||||
* @classname: BonusSettleRangeHandle
|
||||
* @package_name: com.hzs.bonus.bonus.service.impl
|
||||
* version 1.0.0
|
||||
* 计算乐享极差收益
|
||||
*/
|
||||
@Component
|
||||
public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||
|
||||
@DubboReference
|
||||
private IAwardsServiceApi awardsServiceApi;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberRangeService cuMemberRangeService;
|
||||
|
||||
private ICuMemberRangeService iCuMemberRangeService;
|
||||
@Autowired
|
||||
private ICuMemberRetailRangeService cuMemberRetailRangeService;
|
||||
|
||||
private ICuMemberRetailRangeService iCuMemberRetailRangeService;
|
||||
@Autowired
|
||||
private ICuMemberAwardsService cuMemberAwardsService;
|
||||
|
||||
private ICuMemberAwardsService iCuMemberAwardsService;
|
||||
@Autowired
|
||||
private ICuMemberGradeService cuMemberGradeService;
|
||||
|
||||
private ICuMemberGradeService iCuMemberGradeService;
|
||||
@Autowired
|
||||
private ICuMemberService cuMemberService;
|
||||
private ICuMemberService iCuMemberService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberSpeRetailService cuMemberSpeRetailService;
|
||||
|
||||
/*
|
||||
* @description: 实时计算当月奖衔
|
||||
* @author: sui q
|
||||
* @date: 2024/10/22 15:16
|
||||
* @param: null null
|
||||
**/
|
||||
/**
|
||||
* 实时计算当月奖衔
|
||||
*/
|
||||
List<CuMemberBonusRange> calculateCuMemberRetailRangeBonusBySecond(String settleDate, SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO,
|
||||
String secondRangeTableName, int beforePeriod, int currentPeriod,
|
||||
Map<Long, CuMemberBonus> cuMemberBonusMap, List<CuMemberBonusDetail> cuMemberBonusDetailList) {
|
||||
String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + beforePeriod;
|
||||
cuMemberRetailRangeService.mergeMemberSecondRetailRangeByRange(rangeTableName, secondRangeTableName, saOrderExt.getPkMember());
|
||||
cuMemberGradeService.updateCuMemberGradeSecond(secondRangeTableName, currentPeriod);
|
||||
iCuMemberRetailRangeService.mergeMemberSecondRetailRangeByRange(rangeTableName, secondRangeTableName, saOrderExt.getPkMember());
|
||||
iCuMemberGradeService.updateCuMemberGradeSecond(secondRangeTableName, currentPeriod);
|
||||
// 按照血缘,查询该会员所有伞上会员
|
||||
List<CuMemberRetailRangeExt> memberRetailRangeExtList = cuMemberRetailRangeService.queryCuMemberSecondRangeParent(rangeTableName, secondRangeTableName, saOrderExt.getPkMember());
|
||||
List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeParent(rangeTableName, secondRangeTableName, saOrderExt.getPkMember());
|
||||
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
||||
|
||||
Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
|
||||
|
@ -175,7 +152,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
}
|
||||
Map<String, CuMemberRetailRangeExt> countyRangeExtMap = new HashMap<>();
|
||||
List<CuMemberRetailRangeExt> countyRangeExtList = cuMemberRetailRangeService.batchQueryMemberRetailSecondRangeByCounty(rangeTableName, secondRangeTableName, saOrderExt.getRecCounty());
|
||||
List<CuMemberRetailRangeExt> countyRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailSecondRangeByCounty(rangeTableName, secondRangeTableName, saOrderExt.getRecCounty());
|
||||
countyRangeExtList.forEach(cuMemberRetailRangeExt ->
|
||||
countyRangeExtMap.put(cuMemberRetailRangeExt.getSystemType() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
|
||||
// 计算区域奖
|
||||
|
@ -183,28 +160,25 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
if (cuMemberBonusDetail != null) {
|
||||
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
||||
}
|
||||
cuMemberGradeService.updateCuMemberGrade(secondRangeTableName, saOrderExt.getPkId());
|
||||
iCuMemberGradeService.updateCuMemberGrade(secondRangeTableName, saOrderExt.getPkId());
|
||||
if (cuMemberAwardsList.size() > 0) {
|
||||
cuMemberAwardsService.saveBatchCuMemberAwards(cuMemberAwardsList);
|
||||
iCuMemberAwardsService.saveBatchCuMemberAwards(cuMemberAwardsList);
|
||||
// 更新会员表,更新奖衔
|
||||
cuMemberService.updateCuMemberRetailRangeByList(cuMemberAwardsList, currentPeriod);
|
||||
iCuMemberService.updateCuMemberRetailRangeByList(cuMemberAwardsList, currentPeriod);
|
||||
}
|
||||
if (cuMemberGradeList.size() > 0) {
|
||||
cuMemberGradeService.insertCuMemberGrade(cuMemberGradeList);
|
||||
cuMemberService.updateCuMemberGradeByList(cuMemberGradeList, currentPeriod);
|
||||
iCuMemberGradeService.insertCuMemberGrade(cuMemberGradeList);
|
||||
iCuMemberService.updateCuMemberGradeByList(cuMemberGradeList, currentPeriod);
|
||||
}
|
||||
if (memberRetailRangeExtList.size() > 0) {
|
||||
cuMemberRetailRangeService.updateCuMemberSecondRange(secondRangeTableName, memberRangeExtMap);
|
||||
iCuMemberRetailRangeService.updateCuMemberSecondRange(secondRangeTableName, memberRangeExtMap);
|
||||
}
|
||||
return cuMemberBonusRangeList;
|
||||
}
|
||||
|
||||
/*
|
||||
* @description: 实时计算当月奖衔
|
||||
* @author: sui q
|
||||
* @date: 2024/10/22 15:16
|
||||
* @param: null null
|
||||
**/
|
||||
/**
|
||||
* 实时计算当月奖衔
|
||||
*/
|
||||
void calculateCuMemberBackRetailIncome(SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO,
|
||||
String secondRangeTableName, int beforePeriod, int currentPeriod) {
|
||||
// 当天的撤单
|
||||
|
@ -212,18 +186,18 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + beforePeriod;
|
||||
if (DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) {
|
||||
// 按照血缘,查询该会员所有伞上会员
|
||||
cuMemberRetailRangeService.mergeMemberRetailGradeByMember(secondRangeTableName, saOrderExt.getPkMember());
|
||||
iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(secondRangeTableName, saOrderExt.getPkMember());
|
||||
// 恢复奖衔
|
||||
cuMemberAwardsService.mergeCuMemberBackAwards(secondRangeTableName, saOrderExt.getPkMember(), currentPeriod);
|
||||
memberRetailRangeExtList = cuMemberRetailRangeService.queryCuMemberSecondRangeParent(rangeTableName, secondRangeTableName, saOrderExt.getPkMember());
|
||||
iCuMemberAwardsService.mergeCuMemberBackAwards(secondRangeTableName, saOrderExt.getPkMember(), currentPeriod);
|
||||
memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeParent(rangeTableName, secondRangeTableName, saOrderExt.getPkMember());
|
||||
} else {
|
||||
rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + currentPeriod;
|
||||
List<SaOrderExt> retailOrderList = new ArrayList<>();
|
||||
retailOrderList.add(saOrderExt);
|
||||
cuMemberRetailRangeService.mergeMemberRetailGradeByMember(rangeTableName, saOrderExt.getPkMember());
|
||||
iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(rangeTableName, saOrderExt.getPkMember());
|
||||
// 恢复奖衔
|
||||
cuMemberAwardsService.mergeCuMemberBackAwards(rangeTableName, saOrderExt.getPkMember(), beforePeriod);
|
||||
memberRetailRangeExtList = cuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList);
|
||||
iCuMemberAwardsService.mergeCuMemberBackAwards(rangeTableName, saOrderExt.getPkMember(), beforePeriod);
|
||||
memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList);
|
||||
}
|
||||
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
||||
|
||||
|
@ -278,9 +252,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = calculateRetailBackRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeMap, cuMemberAwardsMap);
|
||||
cuMemberRetailRangeExtList.add(sourceMemberRangeExt);
|
||||
// 查询期间的等级和奖衔
|
||||
List<CuMemberGrade> memberGradeList = cuMemberGradeService.queryCuMemberGrade(cuMemberRetailRangeExtList, currentPeriod);
|
||||
List<CuMemberGrade> memberGradeList = iCuMemberGradeService.queryCuMemberGrade(cuMemberRetailRangeExtList, currentPeriod);
|
||||
// 查询最大的手动奖衔
|
||||
List<CuMemberGrade> cuMemberGradeList1 = cuMemberGradeService.queryCuMemberGradeByList(currentPeriod, memberRetailRangeExtList);
|
||||
List<CuMemberGrade> cuMemberGradeList1 = iCuMemberGradeService.queryCuMemberGradeByList(currentPeriod, memberRetailRangeExtList);
|
||||
if (cuMemberGradeList1.size() > 0) {
|
||||
Map<Long, CuMemberGrade> memberGradeMap = new HashMap<>();
|
||||
for (CuMemberGrade cuMemberGrade : cuMemberGradeList1) {
|
||||
|
@ -316,11 +290,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
}
|
||||
if (cuMemberGradeList.size() > 0) {
|
||||
cuMemberGradeService.deleteCuMemberGrade(cuMemberGradeList, currentPeriod);
|
||||
cuMemberService.updateCuMemberMinGradeByList(cuMemberGradeList, currentPeriod);
|
||||
iCuMemberGradeService.deleteCuMemberGrade(cuMemberGradeList, currentPeriod);
|
||||
iCuMemberService.updateCuMemberMinGradeByList(cuMemberGradeList, currentPeriod);
|
||||
}
|
||||
}
|
||||
List<CuMemberAwards> memberAwardsList = cuMemberAwardsService.queryCuMemberAwards(cuMemberRetailRangeExtList, currentPeriod);
|
||||
List<CuMemberAwards> memberAwardsList = iCuMemberAwardsService.queryCuMemberAwards(cuMemberRetailRangeExtList, currentPeriod);
|
||||
if (memberAwardsList.size() > 0) {
|
||||
List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
|
||||
for (CuMemberAwards cuMemberAwards : memberAwardsList) {
|
||||
|
@ -340,17 +314,17 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
// 处理等级、奖衔
|
||||
if (cuMemberAwardsList.size() > 0) {
|
||||
cuMemberAwardsService.deleteCuMemberAwards(cuMemberAwardsList, currentPeriod);
|
||||
iCuMemberAwardsService.deleteCuMemberAwards(cuMemberAwardsList, currentPeriod);
|
||||
// 更新会员表,更新奖衔
|
||||
cuMemberService.updateCuMemberMinAwardsByList(cuMemberAwardsList, currentPeriod);
|
||||
iCuMemberService.updateCuMemberMinAwardsByList(cuMemberAwardsList, currentPeriod);
|
||||
}
|
||||
}
|
||||
// 处理业绩
|
||||
if (memberRangeExtMap.size() > 0) {
|
||||
if (DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) {
|
||||
cuMemberRetailRangeService.updateCuMemberSecondRange(secondRangeTableName, memberRangeExtMap);
|
||||
iCuMemberRetailRangeService.updateCuMemberSecondRange(secondRangeTableName, memberRangeExtMap);
|
||||
} else {
|
||||
cuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap);
|
||||
iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -368,13 +342,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
return cuMemberGrade;
|
||||
}
|
||||
|
||||
/*
|
||||
* @description: 计算新零售团队的奖金,极差、平级、福利、福利分红、区域
|
||||
* 订单: HZS30720290
|
||||
* @author: sui q
|
||||
* @date: 2024/10/15 13:55
|
||||
* @param: null null
|
||||
**/
|
||||
/**
|
||||
* 计算新零售团队的奖金,极差、平级、福利、福利分红、区域
|
||||
*/
|
||||
void calculateRetailBonusByDay(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, BonusRecordDetailVO bonusRecordDetailVO,
|
||||
Integer period, Integer yesterdayPeriod, Boolean isSameMonth) {
|
||||
Date settleStartDate = DateUtils.parseStringToDate(settleDate);
|
||||
|
@ -392,19 +362,19 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + period;
|
||||
String yesterdayRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + yesterdayPeriod;
|
||||
// 回退奖衔,将奖衔回退到结算前状态
|
||||
cuMemberAwardsService.calculateCuMemberRetailRangeAwardsInit(settleDate, period, rangeTableName);
|
||||
iCuMemberAwardsService.calculateCuMemberRetailRangeAwardsInit(settleDate, period, rangeTableName);
|
||||
// 更新网体
|
||||
cuMemberRetailRangeService.mergeMemberRetailRangeByYesterday(settleEndDate, rangeTableName, yesterdayRangeTableName, isSameMonth);
|
||||
List<CuMemberLevel> memberLevelList = cuMemberGradeService.calculateCuMemberRetailGradeInit(period, settleStartDate, settleEndDate, rangeTableName);
|
||||
iCuMemberRetailRangeService.mergeMemberRetailRangeByYesterday(settleEndDate, rangeTableName, yesterdayRangeTableName, isSameMonth);
|
||||
List<CuMemberLevel> memberLevelList = iCuMemberGradeService.calculateCuMemberRetailGradeInit(period, settleStartDate, settleEndDate, rangeTableName);
|
||||
Map<Long, CuMemberLevel> memberLevelMap = new HashMap<>();
|
||||
memberLevelList.forEach(cuMemberLevel -> memberLevelMap.put(cuMemberLevel.getPkOrder(), cuMemberLevel));
|
||||
// 回退历史注水
|
||||
cuMemberRetailRangeService.mergeCuMemberRetailBackBoxBySpecial(rangeTableName, yesterdayRangeTableName, period);
|
||||
iCuMemberRetailRangeService.mergeCuMemberRetailBackBoxBySpecial(rangeTableName, yesterdayRangeTableName, period);
|
||||
// 更新注水
|
||||
cuMemberRetailRangeService.mergeCuMemberRetailRangeBySpecial(rangeTableName, period);
|
||||
iCuMemberRetailRangeService.mergeCuMemberRetailRangeBySpecial(rangeTableName, period);
|
||||
if (retailOrderList.size() > 0) {
|
||||
// 按照血缘,查询该会员所有伞上会员
|
||||
List<CuMemberRetailRangeExt> memberRetailRangeExtList = cuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList);
|
||||
List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList);
|
||||
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
||||
Map<Integer, BdGrade> retaiBuyGradeMap = new TreeMap<>();
|
||||
Map<Integer, BdGrade> retailTeamGradeMap = new TreeMap<>();
|
||||
|
@ -450,7 +420,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
}
|
||||
Map<String, CuMemberRetailRangeExt> countyRangeExtMap = new HashMap<>();
|
||||
List<CuMemberRetailRangeExt> countyRangeExtList = cuMemberRetailRangeService.batchQueryMemberRetailRangeByCounty(rangeTableName);
|
||||
List<CuMemberRetailRangeExt> countyRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailRangeByCounty(rangeTableName);
|
||||
countyRangeExtList.forEach(cuMemberRetailRangeExt ->
|
||||
countyRangeExtMap.put(cuMemberRetailRangeExt.getSystemType() + "_" + cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
|
||||
// 奖衔升级记录
|
||||
|
@ -496,37 +466,31 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 团队业绩,计算奖衔
|
||||
calculateGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, null, cuMemberGradeList, cuMemberAwardsList, sourceMemberRangeExt);
|
||||
cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, null, boxNum, cuMemberGradeList));
|
||||
// 美业订单计算极差收益,没有平级收益
|
||||
if (EOrderType.RETAIL_SHOP_ORDER.getValue() == saOrderExt.getOrderType()) {
|
||||
for (SaOrderItemsExt saOrderItems : saOrderExt.getOrderItemsExtList()) {
|
||||
// cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt));
|
||||
}
|
||||
} else {
|
||||
// 计算奖金 计算极差平级收益
|
||||
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
||||
for (String waresCode : RetailProductConstants.ALL_BOX_WARES_LIST) {
|
||||
if (saOrderItems.getWaresCode() != null && saOrderItems.getWaresCode().equals(waresCode)) {
|
||||
int waresQuantity = saOrderItems.getWaresQuantity();
|
||||
cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt));
|
||||
// 计算完奖金算等级
|
||||
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() ||
|
||||
EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType() ||
|
||||
|
||||
// 计算奖金 计算极差平级收益
|
||||
for (SaOrderWaresExt saOrderItems : saOrderExt.getOrderWaresExtList()) {
|
||||
for (String waresCode : RetailProductConstants.ALL_BOX_WARES_LIST) {
|
||||
if (saOrderItems.getWaresCode() != null && saOrderItems.getWaresCode().equals(waresCode)) {
|
||||
int waresQuantity = saOrderItems.getWaresQuantity();
|
||||
cuMemberBonusRangeList.addAll(calculateRetailRangeBonus(memberRangeExtMap, cuMemberBonusMap, gradeMap, bonusConfigDTO, period, saOrderItems, saOrderExt));
|
||||
// 计算完奖金算等级
|
||||
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() ||
|
||||
EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType() ||
|
||||
EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
||||
// 计算个人等级,消费等级
|
||||
int buyBoxNum = sourceMemberRangeExt.getBuyNum() + waresQuantity;
|
||||
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.setGradeValue(bdGrade.getGradeValue());
|
||||
sourceMemberRangeExt.setPkGrade(bdGrade.getPkId());
|
||||
sourceMemberRangeExt.setGradeName(bdGrade.getGradeName());
|
||||
if (sourceMemberRangeExt.getSameDate() == EYesNo.NO.getIntValue()) {
|
||||
sourceMemberRangeExt.setBuyNum(bdGrade.getBoxNumber());
|
||||
} else {
|
||||
sourceMemberRangeExt.setBuyNum(buyBoxNum);
|
||||
}
|
||||
// 计算个人等级,消费等级
|
||||
int buyBoxNum = sourceMemberRangeExt.getBuyNum() + waresQuantity;
|
||||
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.setGradeValue(bdGrade.getGradeValue());
|
||||
sourceMemberRangeExt.setPkGrade(bdGrade.getPkId());
|
||||
sourceMemberRangeExt.setGradeName(bdGrade.getGradeName());
|
||||
if (sourceMemberRangeExt.getSameDate() == EYesNo.NO.getIntValue()) {
|
||||
sourceMemberRangeExt.setBuyNum(bdGrade.getBoxNumber());
|
||||
} else {
|
||||
sourceMemberRangeExt.setBuyNum(buyBoxNum);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -559,32 +523,29 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
}
|
||||
if (cuMemberAwardsList.size() > 0) {
|
||||
cuMemberAwardsService.saveBatchCuMemberAwards(cuMemberAwardsList);
|
||||
iCuMemberAwardsService.saveBatchCuMemberAwards(cuMemberAwardsList);
|
||||
// 更新会员表,更新奖衔
|
||||
cuMemberService.updateCuMemberRetailRangeByPeriod(cuMemberAwardsList, period);
|
||||
iCuMemberService.updateCuMemberRetailRangeByPeriod(cuMemberAwardsList, period);
|
||||
}
|
||||
if (cuMemberGradeList.size() > 0) {
|
||||
cuMemberGradeService.insertCuMemberGrade(cuMemberGradeList);
|
||||
cuMemberService.updateCuMemberGradeByPeriod(cuMemberGradeList, period);
|
||||
iCuMemberGradeService.insertCuMemberGrade(cuMemberGradeList);
|
||||
iCuMemberService.updateCuMemberGradeByPeriod(cuMemberGradeList, period);
|
||||
// 根据cu_member_level更新cu_member
|
||||
cuMemberService.updateCuMemberLevel(settleStartDate, settleEndDate);
|
||||
iCuMemberService.updateCuMemberLevel(settleStartDate, settleEndDate);
|
||||
}
|
||||
// 更新网体
|
||||
cuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap);
|
||||
iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* @description: 查询会员验证大小区,区域算法2种条件,1 实际满足V5 1种是满足 30w 小区10w
|
||||
* @author: sui q
|
||||
* @date: 2025/2/20 15:22
|
||||
* @param: null null
|
||||
**/
|
||||
/**
|
||||
* 查询会员验证大小区,区域算法2种条件,1 实际满足V5 1种是满足 30w 小区10w
|
||||
*/
|
||||
CuMemberRetail queryValidateBoxOrAchieve(int currentPeriod, int beforePeriod, Long pkMember) {
|
||||
CuMemberRetail cuMemberRetail = new CuMemberRetail();
|
||||
String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + beforePeriod;
|
||||
String secondRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_S + currentPeriod;
|
||||
List<CuMemberRetailRangeExt> memberRetailRangeExtList = cuMemberRetailRangeService.queryCuMemberSecondRange(rangeTableName, secondRangeTableName, pkMember);
|
||||
List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRange(rangeTableName, secondRangeTableName, pkMember);
|
||||
List<CuMemberRetailRangeExt> cuMemberRangeExtList = new ArrayList<>();
|
||||
CuMemberRetailRangeExt targetMemberRangeExt = null;
|
||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
||||
|
@ -724,14 +685,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* @description: 先计算奖衔,奖衔计算分为2种,先计算自己消费足够的,S1-S3,S4以上的另一种方式,自消费的只有购买人,其他的都是根据业绩,注意,有人可以直接是S4
|
||||
/**
|
||||
* 先计算奖衔,奖衔计算分为2种,先计算自己消费足够的,S1-S3,S4以上的另一种方式,自消费的只有购买人,其他的都是根据业绩,注意,有人可以直接是S4
|
||||
* 先验证团队业绩,小区业绩,验证小市场需要从上往下走 s1只能通过自消费,除了购买人其他人丛S2开始升级
|
||||
* 计算个人消费奖项
|
||||
* @author: sui q
|
||||
* @date: 2024/10/15 17:10
|
||||
* @param: null null
|
||||
**/
|
||||
*/
|
||||
public List<CuMemberAwards> calculateConsumeRangeAwards(Integer period, Map<Long, List<CuMemberRangeExt>> parentRangeExtMap, Map<Long, CuMemberRangeExt> memberRangeExtMap, String rangeTableName,
|
||||
CuMemberRangeExt sourceMemberRangeExt, SaOrderExt saOrderExt,
|
||||
Map<Integer, BdRangeAwards> consumeRangeAwardsMap) {
|
||||
|
@ -745,7 +703,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 去结算表种查询该会员下所有会员,会员团队业绩+消费业绩是业绩 计算小区业绩 团队业绩-小区业绩 验证小区、直推必有一种
|
||||
// 如果需要验证小区
|
||||
if (ComputeUtil.compareValue(bdRangeAwards.getCommunityCheck())) {
|
||||
List<CuMemberRangeExt> cuMemberRangeExtList = cuMemberRangeService.queryCuMemberRangeExtByParent(rangeTableName, sourceMemberRangeExt.getPkMember(), saOrderExt.getPayTime());
|
||||
List<CuMemberRangeExt> cuMemberRangeExtList = iCuMemberRangeService.queryCuMemberRangeExtByParent(rangeTableName, sourceMemberRangeExt.getPkMember(), saOrderExt.getPayTime());
|
||||
// 需要验证团队业绩,小区业绩
|
||||
if (calculateAwards(parentRangeExtMap, memberRangeExtMap, sourceMemberRangeExt, bdRangeAwards, cuMemberRangeExtList, false)) {
|
||||
break;
|
||||
|
@ -768,12 +726,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
return cuMemberAwardsList;
|
||||
}
|
||||
|
||||
/*
|
||||
* @description: 计算团队极差奖衔
|
||||
* @author: sui q
|
||||
* @date: 2024/10/15 17:10
|
||||
* @param: null null
|
||||
**/
|
||||
/**
|
||||
* 计算团队极差奖衔
|
||||
*/
|
||||
public List<CuMemberAwards> calculateBloodRangeAwards(Integer period, Map<Long, List<CuMemberRangeExt>> parentRangeExtMap, Map<Long, CuMemberRangeExt> memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt,
|
||||
Map<Integer, BdRangeAwards> bloodRangeAwardsMap, long pkParent, String secondRangeTableName) {
|
||||
// 计算血缘奖衔,一级一级升级,分为2段,s2、s3 一级,s3以上一级,先验证团队总业绩,
|
||||
|
@ -808,9 +763,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 去结算表种查询该会员下所有会员,会员团队业绩+消费业绩是业绩 计算小区业绩 团队业绩-小区业绩 验证小区、直推必有一种
|
||||
List<CuMemberRangeExt> cuMemberRangeExtList;
|
||||
if (secondRangeTableName != null) {
|
||||
cuMemberRangeExtList = cuMemberRangeService.querySecondCuMemberRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
||||
cuMemberRangeExtList = iCuMemberRangeService.querySecondCuMemberRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
||||
} else {
|
||||
cuMemberRangeExtList = cuMemberRangeService.queryCuMemberRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember(), saOrderExt.getPayTime());
|
||||
cuMemberRangeExtList = iCuMemberRangeService.queryCuMemberRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember(), saOrderExt.getPayTime());
|
||||
}
|
||||
if (cuMemberRangeExtList.size() > 0) {
|
||||
if (calculateAwards(parentRangeExtMap, memberRangeExtMap, targetMemberRangeExt, bdRangeAwards, cuMemberRangeExtList, true)) {
|
||||
|
@ -820,17 +775,17 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 当日的实时奖衔,这个位置直接在会员表中计算就可以
|
||||
if (bdRangeAwards.getPlaceNum() > 0) {
|
||||
if (secondRangeTableName != null) {
|
||||
cuMemberRangeService.mergeSecondCuMemberRangeExt(secondRangeTableName, parentRangeExtMap.get(targetMemberRangeExt.getPkMember()));
|
||||
iCuMemberRangeService.mergeSecondCuMemberRangeExt(secondRangeTableName, parentRangeExtMap.get(targetMemberRangeExt.getPkMember()));
|
||||
// 验证
|
||||
Integer placeNum = cuMemberRangeService.validateSecondCuMemberPlaceAwards(secondRangeTableName, cuMemberRangeExtList, bdRangeAwards.getCheckAwards());
|
||||
Integer placeNum = iCuMemberRangeService.validateSecondCuMemberPlaceAwards(secondRangeTableName, cuMemberRangeExtList, bdRangeAwards.getCheckAwards());
|
||||
if (bdRangeAwards.getPlaceNum() > placeNum) {
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
// 更新网体,更新伞下
|
||||
cuMemberRangeService.mergeCuMemberRangeExt(rangeTableName, parentRangeExtMap.get(targetMemberRangeExt.getPkMember()));
|
||||
iCuMemberRangeService.mergeCuMemberRangeExt(rangeTableName, parentRangeExtMap.get(targetMemberRangeExt.getPkMember()));
|
||||
// 验证
|
||||
Integer placeNum = cuMemberRangeService.validateCuMemberPlaceAwards(rangeTableName, cuMemberRangeExtList, bdRangeAwards.getCheckAwards(), saOrderExt.getPayTime());
|
||||
Integer placeNum = iCuMemberRangeService.validateCuMemberPlaceAwards(rangeTableName, cuMemberRangeExtList, bdRangeAwards.getCheckAwards(), saOrderExt.getPayTime());
|
||||
if (bdRangeAwards.getPlaceNum() > placeNum) {
|
||||
break;
|
||||
}
|
||||
|
@ -853,12 +808,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
return cuMemberAwardsList;
|
||||
}
|
||||
|
||||
/*
|
||||
* @description: 计算团队极差奖衔
|
||||
* @author: sui q
|
||||
* @date: 2024/10/15 17:10
|
||||
* @param: null null
|
||||
**/
|
||||
/**
|
||||
* 计算团队极差奖衔
|
||||
*/
|
||||
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) {
|
||||
|
@ -897,9 +849,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 验证小区,计算小区累计盒数 查询伞下会员
|
||||
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
||||
if (secondRangeTableName != null) {
|
||||
cuMemberRangeExtList = cuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
||||
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
||||
} else {
|
||||
cuMemberRangeExtList = cuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
||||
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
||||
}
|
||||
// 有注水的,大区无限大,新增全算小区
|
||||
int bigBoxNum = targetMemberRangeExt.getConsumeBoxNum();
|
||||
|
@ -939,9 +891,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// // 验证小区,计算小区业绩
|
||||
// List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
||||
// if (secondRangeTableName != null) {
|
||||
// cuMemberRangeExtList = cuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
||||
// cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
||||
// } else {
|
||||
// cuMemberRangeExtList = cuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
||||
// cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
||||
// }
|
||||
// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
|
||||
// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||
|
@ -976,7 +928,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 先验证累计业绩
|
||||
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getShareTotalCheck())) {
|
||||
// 验证小区,计算小区业绩
|
||||
List<CuMemberRetailRangeExt> cuMemberRangeExtList = cuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
||||
List<CuMemberRetailRangeExt> cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
||||
BigDecimal consumeBigPv = targetMemberRangeExt.getMonthConsumePv();
|
||||
// if (ComputeUtil.compareGreaterThan(targetMemberRangeExt.getBigTeamPv(), consumeBigPv)) {
|
||||
// consumeBigPv = targetMemberRangeExt.getBigTeamPv();
|
||||
|
@ -994,14 +946,14 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getShareCommunityCheck())) {
|
||||
if (bdAwards.getPlaceDeptNum() > 0) {
|
||||
// 验证是否有多个区满足业绩
|
||||
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = cuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMemberRangeExt.getPkMember(), bdAwards.getShareCommunityCheck());
|
||||
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMemberRangeExt.getPkMember(), bdAwards.getShareCommunityCheck());
|
||||
int enoughNum = 0;
|
||||
for(CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRetailRangeExtList){
|
||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRetailRangeExtList) {
|
||||
if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||
cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
||||
}
|
||||
if(ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()), bdAwards.getShareCommunityCheck())){
|
||||
enoughNum+=1;
|
||||
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()), bdAwards.getShareCommunityCheck())) {
|
||||
enoughNum += 1;
|
||||
}
|
||||
}
|
||||
if (bdAwards.getPlaceDeptNum() > enoughNum) {
|
||||
|
@ -1019,12 +971,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* @description: 计算团队极差奖衔
|
||||
* @author: sui q
|
||||
* @date: 2024/10/15 17:10
|
||||
* @param: null null
|
||||
**/
|
||||
/**
|
||||
* 计算团队极差奖衔
|
||||
*/
|
||||
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) {
|
||||
|
@ -1062,9 +1011,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 验证小区,计算小区累计盒数 查询伞下会员
|
||||
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
||||
if (secondRangeTableName != null) {
|
||||
cuMemberRangeExtList = cuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
||||
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
||||
} else {
|
||||
cuMemberRangeExtList = cuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
||||
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
||||
}
|
||||
int bigBoxNum = targetMemberRangeExt.getConsumeBoxNum();
|
||||
if (targetMemberRangeExt.getBigBoxNum() > 0) {
|
||||
|
@ -1101,9 +1050,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 验证小区,计算小区业绩
|
||||
List<CuMemberRetailRangeExt> cuMemberRangeExtList;
|
||||
if (secondRangeTableName != null) {
|
||||
cuMemberRangeExtList = cuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
||||
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
|
||||
} else {
|
||||
cuMemberRangeExtList = cuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
||||
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
|
||||
}
|
||||
BigDecimal consumeBigPv = BigDecimal.ZERO;
|
||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
|
||||
|
@ -1130,12 +1079,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* @description: 计算奖衔,验证小区业绩和推荐数量是否满足
|
||||
* @author: sui q
|
||||
* @date: 2024/10/16 16:31
|
||||
* @param: null null
|
||||
**/
|
||||
/**
|
||||
* 计算奖衔,验证小区业绩和推荐数量是否满足
|
||||
*/
|
||||
private boolean calculateAwards(Map<Long, List<CuMemberRangeExt>> parentRangeExtMap, Map<Long, CuMemberRangeExt> memberRangeExtMap, CuMemberRangeExt targetMemberRangeExt, BdRangeAwards bdRangeAwards, List<CuMemberRangeExt> cuMemberRangeExtList, Boolean isRecommend) {
|
||||
BigDecimal bigAreaPv = BigDecimal.ZERO;
|
||||
Integer recommendNum = 0;
|
||||
|
@ -1171,7 +1117,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
// /*
|
||||
// * @description: 计算幸运奖,先计算有效代数,所有有效代数均分,比例10%
|
||||
// * 计算幸运奖,先计算有效代数,所有有效代数均分,比例10%
|
||||
// * @author: sui q
|
||||
// * @date: 2024/10/17 11:34
|
||||
// * @param: null null
|
||||
|
@ -1221,12 +1167,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// return memberBonusCoachList;
|
||||
// }
|
||||
|
||||
/*
|
||||
* @description: 计算极差收益,根据极差收益计算平级收益
|
||||
* @author: sui q
|
||||
* @date: 2024/10/17 14:31
|
||||
* @param: null null
|
||||
**/
|
||||
/**
|
||||
* 计算极差收益,根据极差收益计算平级收益
|
||||
*/
|
||||
List<CuMemberBonusRange> calculateRetailRangeBonus(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, Map<Long, CuMemberBonus> cuMemberBonusMap, Map<Integer, BdGrade> gradeMap, BonusConfigDTO bonusConfigDTO,
|
||||
Integer period, SaOrderWaresExt saOrderItems, SaOrderExt saOrderExt) {
|
||||
List<CuMemberBonusRange> memberBonusRangeList = new ArrayList<>();
|
||||
|
@ -1252,7 +1195,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
continue;
|
||||
}
|
||||
// 推荐V1 有额外100
|
||||
// CuMemberRetailRangeExt parentMemberRangeExt = memberRangeExtMap.get(memberRangeExtMap.get(saOrderExt.getPkMember()).getPkParent());
|
||||
int calGradeValue = targetMemberRangeExt.getGradeValue();
|
||||
// 如果价格是209,代表是第一单激活,只有平级收益,只有V5有平级收益
|
||||
if (beginBuyPrice.equals(BigDecimal.valueOf(209))) {
|
||||
|
@ -1272,7 +1214,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_RANGE_INCOME.getValue());
|
||||
CuMemberBonusRange cuMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
||||
cuMemberBonusRange.setCalValue(BigDecimal.ZERO);
|
||||
cuMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(ComputeUtil.computeSubtract(ComputeUtil.computeSubtract(beginBuyPrice, buyPrice), calBonusIncome), saOrderItems.getWaresQuantity()), BigDecimal.valueOf(6.4)));
|
||||
cuMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(ComputeUtil.computeSubtract(ComputeUtil.computeSubtract(beginBuyPrice, buyPrice), calBonusIncome), saOrderItems.getWaresQuantity()), BigDecimal.ONE));
|
||||
cuMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
||||
cuMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
||||
cuMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
|
||||
|
@ -1313,7 +1255,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
BigDecimal sameBuyPrice = gradeMap.get(calGradeValue).getBuyPrice();
|
||||
// 有平级
|
||||
// if (calGradeValue < beginGradeValue) {
|
||||
if(ComputeUtil.compareGreaterThan(sameBuyPrice, comBuyPrice)){
|
||||
if (ComputeUtil.compareGreaterThan(sameBuyPrice, comBuyPrice)) {
|
||||
lastPkParent = targetMemberRangeExt.getPkParent();
|
||||
pkParent = targetMemberRangeExt.getPkParent();
|
||||
j--;
|
||||
|
@ -1342,13 +1284,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
} else if (j == 2) {
|
||||
bonusIncome = bdGrade.getThirdAlgebra();
|
||||
}
|
||||
if (/*calGradeValue == beginGradeValue && */ComputeUtil.compareEqual(beginBuyPrice, sameBuyPrice)) {
|
||||
if (ComputeUtil.compareEqual(beginBuyPrice, sameBuyPrice)) {
|
||||
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, targetMemberRangeExt.getPkMember(),
|
||||
targetMemberRangeExt.getIncomeStatus(), targetMemberRangeExt.getPkSettleCountry(), targetMemberRangeExt.getPkRate() == null ? saOrderExt.getPkRate() : targetMemberRangeExt.getPkRate());
|
||||
int pkBonusItems = getPkBonusItems(bonusConfigDTO, targetMemberRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_SAME_LEVEL_INCOME.getValue());
|
||||
CuMemberBonusRange oriMemberBonusRange = getCuMemberRetailBonusRange(saOrderExt, targetMemberRangeExt, cuMemberBonus, pkBonusItems);
|
||||
oriMemberBonusRange.setCalValue(BigDecimal.valueOf(10));
|
||||
oriMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(bonusIncome, saOrderItems.getWaresQuantity()), BigDecimal.valueOf(6.4)));
|
||||
oriMemberBonusRange.setPretaxIncome(ComputeUtil.computeDivide(ComputeUtil.computeMultiply(bonusIncome, saOrderItems.getWaresQuantity()), BigDecimal.ONE));
|
||||
oriMemberBonusRange.setPkRange(targetMemberRangeExt.getPkGrade());
|
||||
oriMemberBonusRange.setPkBeforeRange(sourceMemberRangeExt.getPkGrade());
|
||||
oriMemberBonusRange.setPkOrderItems(saOrderItems.getPkId());
|
||||
|
@ -1417,10 +1359,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
|
||||
/**
|
||||
* 计算某条订单的推荐奖金
|
||||
*
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/2/4 13:57
|
||||
*/
|
||||
CuMemberBonusPush calculatePushBonusOne(CuMemberRangeExt sourceMemberRangeExt, Map<Long, CuMemberRangeExt> cuMemberRangeExtMap, BonusConfigDTO bonusConfigDTO, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
||||
SaOrderExt saOrderExt, int algebra, BigDecimal orderAssAchieve, List<CuMemberBonusPush> cuMemberBonusPushList) {
|
||||
|
@ -1500,10 +1438,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* @Description: 计算服务中心奖
|
||||
* @return: CuMemberBonusDetail
|
||||
* @Author: sui q
|
||||
* @Date: 2023/2/8 17:22
|
||||
* 计算服务中心奖
|
||||
*/
|
||||
CuMemberBonusDetail calculateRangeStoreBonusOne(Map<Long, CuMemberRangeExt> cuMemberRangeExtMap, CuMemberRangeExt targetMemberRangeExt, BonusConfigDTO bonusConfigDTO, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, SaOrderExt saOrderExt) {
|
||||
CuMemberRangeExt sourceMemberRangeExt = cuMemberRangeExtMap.get(saOrderExt.getPkMember());
|
||||
|
@ -1535,10 +1470,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
|
||||
/**
|
||||
* @param settleDateStr 结算日期
|
||||
* @Desccription: 计算新零售的月奖,区域、福利、福利分红
|
||||
* @return: Map<Long, CuMemberSettleExt> 需要更新的
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/10 17:40
|
||||
*/
|
||||
void calculateRetailShareBonus(String settleDateStr, BonusConfigDTO bonusConfigDTO,
|
||||
Integer period, BonusRecordDetailVO bonusRecordDetailVO, Map<Long, CuMemberBonus> cuMemberBonusMap) {
|
||||
|
@ -1570,7 +1501,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
if (totalMonthOrderList.size() > 0) {
|
||||
Set<Long> pkMemberSet = new HashSet<>();
|
||||
totalMonthOrderList.forEach(saOrder -> pkMemberSet.add(saOrder.getPkMember()));
|
||||
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = cuMemberRetailRangeService.batchQueryMemberRetailRangeByMemberPk(rangeTableName, pkMemberSet);
|
||||
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailRangeByMemberPk(rangeTableName, pkMemberSet);
|
||||
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap = new HashMap<>();
|
||||
cuMemberRetailRangeExtList.forEach(cuMemberRetailRangeExt ->
|
||||
memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt));
|
||||
|
@ -1632,7 +1563,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
cuMemberBonusRange.setPkBeforeRange(sourceMemberRetailRangeExt.getPkGrade());
|
||||
cuMemberBonusRange.setPkOrderItems(0L);
|
||||
rangeBenefitRetailRemark(saOrder, cuMemberBonusRange, sourceMemberRetailRangeExt, targetMemberRangeExt);
|
||||
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrder.getOrderAmount(), BigDecimal.valueOf(6.4));
|
||||
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrder.getOrderAmount(), BigDecimal.ONE);
|
||||
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
|
||||
cuMemberBonus.setRetailBenefitRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailBenefitRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
|
||||
setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
|
||||
|
@ -1645,9 +1576,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
// CAR_AWARD_POINTS 福利平均收益 SHARE_INCOME 福利收益
|
||||
// 查询v5 等级 且奖衔>=S4的
|
||||
List<CuMemberRetailRangeExt> memberRetailRangeExtList = cuMemberRetailRangeService.batchQueryMemberRetailRangeByAwards(rangeTableName);
|
||||
List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailRangeByAwards(rangeTableName);
|
||||
if (memberRetailRangeExtList.size() > 0) {
|
||||
List<CuMemberRetailRangeExt> retailRangeExtList = cuMemberRetailRangeService.batchQueryMemberRetailRangeByParent(rangeTableName, memberRetailRangeExtList);
|
||||
List<CuMemberRetailRangeExt> retailRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailRangeByParent(rangeTableName, memberRetailRangeExtList);
|
||||
Map<Long, List<CuMemberRetailRangeExt>> parentMemberRangeExtMap = new HashMap<>();
|
||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : retailRangeExtList) {
|
||||
if (parentMemberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkParent())) {
|
||||
|
@ -1737,7 +1668,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
// for (SaOrder saOrder : totalMonthOrderList) {
|
||||
// Map<Integer, CuMemberRetailRangeExt> countyRangeExtMap = new HashMap<>();
|
||||
// List<CuMemberRetailRangeExt> countyRangeExtList = cuMemberRetailRangeService.batchQueryMemberRetailRangeByCounty(rangeTableName);
|
||||
// List<CuMemberRetailRangeExt> countyRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailRangeByCounty(rangeTableName);
|
||||
// countyRangeExtList.forEach(cuMemberRetailRangeExt ->
|
||||
// countyRangeExtMap.put(cuMemberRetailRangeExt.getRegionAddress(), cuMemberRetailRangeExt));
|
||||
// // 计算区域,获取所有有区域的会员
|
||||
|
@ -1784,7 +1715,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusDetail.getIncomeStatus()) {
|
||||
if (bonusItemsValue == EBonusItems.RETAIL_AREA_INCOME.getValue()) {
|
||||
cuMemberBonus.setRetailAreaIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailAreaIncome(), cuMemberBonusDetail.getPretaxIncome()));
|
||||
}else if(bonusItemsValue == EBonusItems.RETAIL_BENEFIT_AVG_INCOME.getValue()) {
|
||||
} else if (bonusItemsValue == EBonusItems.RETAIL_BENEFIT_AVG_INCOME.getValue()) {
|
||||
cuMemberBonus.setRetailBenefitAvgIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailBenefitAvgIncome(), cuMemberBonusDetail.getPretaxIncome()));
|
||||
} else {
|
||||
cuMemberBonus.setRetailBenefitIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailBenefitIncome(), cuMemberBonusDetail.getPretaxIncome()));
|
||||
|
@ -1885,11 +1816,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 记录需要修改的会员结算表数据, 安置的
|
||||
*
|
||||
* @param memberRangeMap 查询出来的结算数据
|
||||
* @Description: 记录需要修改的会员结算表数据, 安置的
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/15 9:52
|
||||
*/
|
||||
private Map<Long, CuMemberRangeExt> getMemberSettle(Map<Long, List<CuMemberRangeExt>> memberRangeMap) {
|
||||
Map<Long, CuMemberRangeExt> memberRangeExtMap = new HashMap<>();
|
||||
|
@ -1949,12 +1878,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 奖金明细 报单服务费、分红、云代首购、云代复购、海豆收益
|
||||
*
|
||||
* @param saOrderExt 订单
|
||||
* @param cuMemberBonus 奖金主表
|
||||
* @Description: 奖金明细 报单服务费、分红、云代首购、云代复购、海豆收益
|
||||
* @return: CuMemberBonusDetail
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/5 16:31
|
||||
*/
|
||||
private CuMemberBonusDetail getCuMemberBonusDetail(SaOrder saOrderExt, Integer incomeStatus, Integer pkCountry, CuMemberBonus cuMemberBonus) {
|
||||
CuMemberBonusDetail cuMemberBonusDetail = CuMemberBonusDetail.builder()
|
||||
|
|
|
@ -58,17 +58,17 @@ import java.util.*;
|
|||
public class BonusSettleServiceImpl implements IBonusSettleService {
|
||||
|
||||
@DubboReference
|
||||
IGradeServiceApi gradeServiceApi;
|
||||
ISystemConfigServiceApi iSystemConfigServiceApi;
|
||||
@DubboReference
|
||||
IAwardsServiceApi awardsServiceApi;
|
||||
IGradeServiceApi iGradeServiceApi;
|
||||
@DubboReference
|
||||
ISystemConfigServiceApi systemConfigServiceApi;
|
||||
IAwardsServiceApi iAwardsServiceApi;
|
||||
@DubboReference
|
||||
IRangeServiceApi rangeServiceApi;
|
||||
IRangeServiceApi iRangeServiceApi;
|
||||
@DubboReference
|
||||
IBonusItemsServiceApi bonusItemsServiceApi;
|
||||
ISaOrderServiceApi iSaOrderServiceApi;
|
||||
@DubboReference
|
||||
ISaOrderServiceApi saOrderServiceApi;
|
||||
IBonusItemsServiceApi iBonusItemsServiceApi;
|
||||
|
||||
@Autowired
|
||||
private ICuRegionAssessService cuRegionAssessService;
|
||||
|
@ -143,10 +143,10 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
public void calculateCumberBonusBySecond(String orderCode) {
|
||||
log.info("开始执行秒接,订单编号:{}", orderCode);
|
||||
Date startDate = DateUtils.currentDate();
|
||||
SaOrderExt saOrderExt = saOrderServiceApi.querySaOrderByDay(startDate,
|
||||
SaOrderExt saOrderExt = iSaOrderServiceApi.querySaOrderByDay(startDate,
|
||||
DateUtils.afterDate(1, ChronoUnit.DAYS, startDate), orderCode).getData();
|
||||
Map<String, String> systemConfigMap = systemConfigServiceApi.getBonusSystemConfig().getData();
|
||||
Map<String, RangeDTO> rangeDtoMap = rangeServiceApi.queryRangeDto().getData();
|
||||
Map<String, String> systemConfigMap = iSystemConfigServiceApi.getBonusSystemConfig().getData();
|
||||
Map<String, RangeDTO> rangeDtoMap = iRangeServiceApi.queryRangeDto().getData();
|
||||
// 处理奖金结算秒结表,判断是否存在当天结算的秒接表,从cu_member中获取网体,从昨日结算表中获取累计、结余数据
|
||||
String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, saOrderExt.getPayTime());
|
||||
String beforeDay = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS, saOrderExt.getPayTime()));
|
||||
|
@ -160,7 +160,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 前天
|
||||
String yesSettleTableName = TableNameConstants.CU_MEMBER_SETTLE + beforeYesPeriod;
|
||||
Map<Long, CuMemberBonus> cuMemberBonusMap = new HashMap<>(MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM);
|
||||
BonusConfigDTO bonusConfigDTO = bonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
Map<Long, CuMemberSettleExt> cuMemberSettleExtMap = new HashMap<>();
|
||||
Map<Long, CuAwardsControl> cuAwardsControlMap = getCuAwardsControlMap();
|
||||
// 计算奖金
|
||||
|
@ -185,8 +185,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
bonusSettleFirstPurchaseHandle.getSecondMemberSettle(cuMemberSettleExtMap, cuMemberSettleExtList);
|
||||
// 计算奖金
|
||||
// 计算直推奖
|
||||
List<GradeDTO> gradeDtoList = gradeServiceApi.queryGradeConfigByCondition(saOrderExt.getPkCountry()).getData();
|
||||
CuMemberBonusPush cuMemberBonusPush = bonusSettleFirstPurchaseHandle.calculatePushBonusOne(cuMemberSettleExtMap, bonusConfigDTO, systemConfigMap, period, cuMemberBonusMap, saOrderExt, awardsServiceApi.getAwards().getData(), gradeDtoList);
|
||||
List<GradeDTO> gradeDtoList = iGradeServiceApi.queryGradeConfigByCondition(saOrderExt.getPkCountry()).getData();
|
||||
CuMemberBonusPush cuMemberBonusPush = bonusSettleFirstPurchaseHandle.calculatePushBonusOne(cuMemberSettleExtMap, bonusConfigDTO, systemConfigMap, period, cuMemberBonusMap, saOrderExt, iAwardsServiceApi.getAwards().getData(), gradeDtoList);
|
||||
log.info("获得直推奖,奖金为:{}", JSONUtil.toJsonStr(cuMemberBonusPush));
|
||||
// 计算量奖
|
||||
// 所有需要计算的父节点,只计算新增
|
||||
|
@ -266,7 +266,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
List<CuMemberBonusExpand> cuMemberBonusExpandList = bonusSettlePurchaseHandle.calculateRepurchaseExpandSecondBonus(riskControlMap, settleTableName,
|
||||
cuMemberSettleExtMap, bonusConfigDTO, systemConfigMap, period, weekMemberBonusMap, cuMemberBonusMap, saOrderExt, cuMemberSettleExtList, settleDate, BigDecimal.ZERO, BigDecimal.ZERO, 0);
|
||||
// c)增加奖衔记录表
|
||||
Map<String, BdAwards> awardsMap = awardsServiceApi.getAwards().getData();
|
||||
Map<String, BdAwards> awardsMap = iAwardsServiceApi.getAwards().getData();
|
||||
List<CuMemberBonusRange> cuMemberBonusRangeList = bonusSettlePurchaseHandle.calculateRepurchaseRangeBonus(cuMemberSettleExtMap, settleTableName, settleDate, rangeDtoMap, awardsMap,
|
||||
bonusConfigDTO, Collections.singletonList(saOrderExt), period, cuMemberBonusMap, cuAwardsControlMap, new LeXueRangeParam());
|
||||
if (cuMemberBonusMap.size() > 0) {
|
||||
|
@ -325,9 +325,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 每日计算会员奖金,最终的奖金
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void calculateCuMemberBonus(String settleDate, List<SaOrderExt> saOrderExtList) {
|
||||
|
@ -338,7 +335,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 将删除的订单的点位变为死点
|
||||
//********************************* 更新当天最新的业绩*************************/
|
||||
// 获取所有国家的奖金项 key = 国家 + 奖金项的值
|
||||
BonusConfigDTO bonusConfigDTO = bonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
Map<Long, CuMemberBonus> cuMemberBonusMap = new HashMap<>();
|
||||
BonusRecordDetailVO recordDetailVO = new BonusRecordDetailVO();
|
||||
Boolean isSameMonth = DateUtils.getMonth(settleDate).equals(DateUtils.getMonth(yesterday));
|
||||
|
@ -367,8 +364,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
@Override
|
||||
public void calculateCuMemberRetailRangeBonusBySaOrder(String orderCode) {
|
||||
Map<Long, CuMemberBonus> cuMemberBonusMap = new HashMap<>(MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM);
|
||||
BonusConfigDTO bonusConfigDTO = bonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
List<SaOrderExt> retailOrderList = saOrderServiceApi.queryRetailSaOrderByDay(DateUtils.beforeDate(6, ChronoUnit.DAYS), DateUtils.afterDate(1, ChronoUnit.DAYS), orderCode).getData();
|
||||
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
List<SaOrderExt> retailOrderList = iSaOrderServiceApi.queryRetailSaOrderByDay(DateUtils.beforeDate(6, ChronoUnit.DAYS), DateUtils.afterDate(1, ChronoUnit.DAYS), orderCode).getData();
|
||||
if (retailOrderList != null && retailOrderList.size() > 0) {
|
||||
SaOrderExt saOrderExt = retailOrderList.get(0);
|
||||
// 处理奖金结算秒结表,判断是否存在当天结算的秒接表,从cu_member中获取网体,从昨日结算表中获取累计、结余数据
|
||||
|
@ -415,14 +412,14 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
Integer yesterdayPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday).getPkId();
|
||||
String yesterdayTableName = TableNameConstants.CU_MEMBER_SETTLE + yesterdayPeriod;
|
||||
cuMemberTreeService.initCuMemberExpandTreeTable(yesterdayTableName, currentSettleTableName);
|
||||
BonusConfigDTO bonusConfigDTO = bonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData();
|
||||
Map<Long, CuMemberSettleExt> cuMemberSettleExtMap = new HashMap<>();
|
||||
Map<Long, CuMemberBonus> cuMemberBonusMap = new HashMap<>();
|
||||
Map<Long, CuAwardsControl> cuAwardsControlMap = getCuAwardsControlMap();
|
||||
Map<Long, CuMemberBonus> weekMemberBonusMap = getWeekMemberBonusMap(settleDate, period);
|
||||
Map<String, String> systemConfigMap = systemConfigServiceApi.getBonusSystemConfig().getData();
|
||||
Map<String, String> systemConfigMap = iSystemConfigServiceApi.getBonusSystemConfig().getData();
|
||||
BonusRecordDetailVO recordDetailVO = new BonusRecordDetailVO();
|
||||
Map<String, BdAwards> awardsMap = awardsServiceApi.getAwards().getData();
|
||||
Map<String, BdAwards> awardsMap = iAwardsServiceApi.getAwards().getData();
|
||||
// 首购订单
|
||||
List<SaOrderExt> firPurchaseOrderList = new ArrayList<>();
|
||||
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
package com.hzs.bonus.bonus.service.impl;
|
||||
|
||||
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.bonus.mapper.CuMemberRetailLogMapper;
|
||||
import com.hzs.bonus.bonus.service.ICuMemberRetailLogService;
|
||||
import com.hzs.common.core.constant.SystemFieldConstants;
|
||||
import com.hzs.common.core.enums.EYesNo;
|
||||
import com.hzs.common.core.utils.DateUtils;
|
||||
import com.hzs.common.domain.member.bonus.CuMemberRetailLog;
|
||||
|
@ -15,25 +14,20 @@ import java.util.Date;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 秒接日志记录表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2024-12-27
|
||||
*/
|
||||
@Service
|
||||
public class CuMemberRetailLogServiceImpl extends ServiceImpl<CuMemberRetailLogMapper, CuMemberRetailLog> implements ICuMemberRetailLogService {
|
||||
|
||||
@Override
|
||||
public List<CuMemberRetailLog> queryCuMemberRetailLog() {
|
||||
QueryWrapper<CuMemberRetailLog> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("ENABLE_STATUS", EYesNo.NO.getIntValue());
|
||||
LambdaQueryWrapper<CuMemberRetailLog> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(CuMemberRetailLog::getEnableStatus, EYesNo.NO.getIntValue());
|
||||
Date endTime = DateUtils.currentDateTime();
|
||||
Date startTime = DateUtils.beforeDate(1, ChronoUnit.DAYS, endTime);
|
||||
queryWrapper.gt(SystemFieldConstants.CREATION_TIME, startTime);
|
||||
queryWrapper.le(SystemFieldConstants.CREATION_TIME, endTime);
|
||||
queryWrapper.orderByAsc(SystemFieldConstants.CREATION_TIME);
|
||||
queryWrapper.gt(CuMemberRetailLog::getCreationTime, startTime);
|
||||
queryWrapper.le(CuMemberRetailLog::getCreationTime, endTime);
|
||||
queryWrapper.orderByAsc(CuMemberRetailLog::getCreationTime);
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
|
|
|
@ -17,21 +17,17 @@ import org.springframework.messaging.Message;
|
|||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @Description: 订单秒接
|
||||
* @Author: sui q
|
||||
* @Time: 2023/3/1 16:30
|
||||
* @Classname: SaOrderSecondListener
|
||||
* @PackageName: com.hzs.third.mqcall.listener
|
||||
* 订单秒接
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class SaOrderSecondListener {
|
||||
|
||||
@Autowired
|
||||
private IBonusSettleService bonusSettleService;
|
||||
private IBonusSettleService iBonusSettleService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberRetailLogService cuMemberRetailLogService;
|
||||
private ICuMemberRetailLogService iCuMemberRetailLogService;
|
||||
|
||||
@RabbitListener(bindings = @QueueBinding(
|
||||
exchange = @Exchange(value = RabbitMqConstants.ORDER_SECOND_EXCHANGE, type = "topic"),
|
||||
|
@ -47,19 +43,18 @@ public class SaOrderSecondListener {
|
|||
cuMemberRetailLog.setPkCountry(CountryConstants.CHINA_COUNTRY);
|
||||
cuMemberRetailLog.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||
cuMemberRetailLog.setOrderCode(saOrderExt.getOrderCode());
|
||||
if(saOrderExt.getCancelBool() != null && saOrderExt.getCancelBool()){
|
||||
if (saOrderExt.getCancelBool() != null && saOrderExt.getCancelBool()) {
|
||||
cuMemberRetailLog.setCancelStatus(EYesNo.YES.getIntValue());
|
||||
}
|
||||
try {
|
||||
Thread.sleep(500);
|
||||
bonusSettleService.calculateCuMemberRetailRangeBonusBySaOrder(saOrderExt.getOrderCode());
|
||||
iBonusSettleService.calculateCuMemberRetailRangeBonusBySaOrder(saOrderExt.getOrderCode());
|
||||
} catch (Exception e) {
|
||||
cuMemberRetailLog.setEnableStatus(EYesNo.NO.getIntValue());
|
||||
cuMemberRetailLog.setMsg(e.getMessage());
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
cuMemberRetailLogService.save(cuMemberRetailLog);
|
||||
iCuMemberRetailLogService.save(cuMemberRetailLog);
|
||||
}
|
||||
// todo 失败的时候记录日志
|
||||
}
|
||||
}
|
||||
|
|
|
@ -490,16 +490,16 @@
|
|||
merge into ${tableName} a
|
||||
using(select #{period} period, a.*
|
||||
from (select user_id pk_member,
|
||||
sum(CURR_DAY_MAIN_REG_AMOUNT)/6.4 REGISTER_AMOUNT,
|
||||
sum(CURR_DAY_MAIN_REG_PV)/6.4 REGISTER_PV,
|
||||
sum(CURR_DAY_MAIN_UP_AMOUNT)/6.4 UPGRADE_AMOUNT,
|
||||
sum(CURR_DAY_MAIN_UP_PV)/6.4 UPGRADE_PV,
|
||||
sum(CURR_DAY_MAIN_REPUR_AMOUNT)/6.4 REPURCHASE_AMOUNT,
|
||||
sum(CURR_DAY_MAIN_REPURCHASE_PV)/6.4 REPURCHASE_PV,
|
||||
sum(CURR_DAY_SEA2_REG_AMOUNT)/6.4 HI_FUN_AMOUNT,
|
||||
sum(CURR_DAY_SEA2_REG_PV)/6.4 HI_FUN_PV,
|
||||
sum(CURR_DAY_MALL_AMOUNT)/6.4 MALL_AMOUNT,
|
||||
sum(CURR_DAY_MALL_PV)/6.4 MALL_PV
|
||||
sum(CURR_DAY_MAIN_REG_AMOUNT) REGISTER_AMOUNT,
|
||||
sum(CURR_DAY_MAIN_REG_PV) REGISTER_PV,
|
||||
sum(CURR_DAY_MAIN_UP_AMOUNT) UPGRADE_AMOUNT,
|
||||
sum(CURR_DAY_MAIN_UP_PV) UPGRADE_PV,
|
||||
sum(CURR_DAY_MAIN_REPUR_AMOUNT) REPURCHASE_AMOUNT,
|
||||
sum(CURR_DAY_MAIN_REPURCHASE_PV) REPURCHASE_PV,
|
||||
sum(CURR_DAY_SEA2_REG_AMOUNT) HI_FUN_AMOUNT,
|
||||
sum(CURR_DAY_SEA2_REG_PV) HI_FUN_PV,
|
||||
sum(CURR_DAY_MALL_AMOUNT) MALL_AMOUNT,
|
||||
sum(CURR_DAY_MALL_PV) MALL_PV
|
||||
from G_MEMBER_ACHIV@link_test
|
||||
where period between - 729 and #{period}
|
||||
group by user_id) a) b on
|
||||
|
|
|
@ -2,23 +2,11 @@
|
|||
<!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.CuMemberRetailLogMapper">
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="BaseResultMap" type="com.hzs.common.domain.member.bonus.CuMemberRetailLog">
|
||||
<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="ORDER_CODE" property="orderCode" />
|
||||
<result column="ENABLE_STATUS" property="enableStatus" />
|
||||
<result column="MSG" property="msg" />
|
||||
<result column="RETRY_NUM" property="retryNum" />
|
||||
</resultMap>
|
||||
<update id="updateCuMemberRetailLogByList">
|
||||
update cu_member_retail_log set enable_status=0
|
||||
where del_flag=0 and pk_id in
|
||||
update cu_member_retail_log
|
||||
set enable_status = 0
|
||||
where del_flag = 0
|
||||
and pk_id in
|
||||
<foreach collection="cuMemberRetailLogs" item="item" open="(" close=")" separator=",">
|
||||
#{item.pkId}
|
||||
</foreach>
|
||||
|
|
|
@ -43,11 +43,7 @@ import java.math.BigDecimal;
|
|||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Description: 会员控制器
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/1/10 15:18
|
||||
* @Classname: ApiMemberController
|
||||
* @PackageName: com.hzs.member.base.controller.api
|
||||
* 会员控制器
|
||||
*/
|
||||
@Slf4j
|
||||
@RequestMapping("/api/member")
|
||||
|
@ -68,19 +64,19 @@ public class ApiMemberController extends BaseController {
|
|||
@DubboReference
|
||||
ICurrencyServiceApi currencyServiceApi;
|
||||
|
||||
/**
|
||||
* 获取登录会员信息
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/get-info")
|
||||
public AjaxResult getInfo() {
|
||||
MemberInfoVO memberInfo = iMemberInfoService.getMemberInfo(SecurityUtils.getUserId());
|
||||
if (null == memberInfo) {
|
||||
return AjaxResult.error();
|
||||
}
|
||||
return AjaxResult.success(memberInfo);
|
||||
}
|
||||
// /**
|
||||
// * 获取登录会员信息
|
||||
// *
|
||||
// * @return
|
||||
// */
|
||||
// @GetMapping("/get-info")
|
||||
// public AjaxResult getInfo() {
|
||||
// MemberInfoVO memberInfo = iMemberInfoService.getMemberInfo(SecurityUtils.getUserId());
|
||||
// if (null == memberInfo) {
|
||||
// return AjaxResult.error();
|
||||
// }
|
||||
// return AjaxResult.success(memberInfo);
|
||||
// }
|
||||
|
||||
/**
|
||||
* 更新个人资料(昵称)
|
||||
|
|
|
@ -110,7 +110,7 @@ public class CuMemberController extends BaseController {
|
|||
|
||||
|
||||
/**
|
||||
* 导入批量查询会员信息
|
||||
* 导入批量查询会员信息
|
||||
**/
|
||||
@Log(module = EOperationModule.SPECIAL_BUSINESS, business = EOperationBusiness.MODIFY_CODE, method = EOperationMethod.IMPORT)
|
||||
@PostMapping("/batch-importData")
|
||||
|
@ -168,7 +168,8 @@ public class CuMemberController extends BaseController {
|
|||
|
||||
|
||||
/**
|
||||
* 真实信息
|
||||
* 真实信息
|
||||
*
|
||||
* @author: zhang jing
|
||||
* @date: 2022/11/15 17:59
|
||||
* @param: [memberParam]
|
||||
|
@ -208,7 +209,8 @@ public class CuMemberController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 根据会员编号查询会员信息
|
||||
* 根据会员编号查询会员信息
|
||||
*
|
||||
* @author: zhang jing
|
||||
* @date: 2022/11/9 18:25
|
||||
* @param: [pkId]
|
||||
|
@ -567,7 +569,8 @@ public class CuMemberController extends BaseController {
|
|||
|
||||
|
||||
/**
|
||||
* 导出真实信息
|
||||
* 导出真实信息
|
||||
*
|
||||
* @author: zhang jing
|
||||
* @date: 2023/7/15 17:02
|
||||
* @param: [response, memberRealInfoParam]
|
||||
|
@ -650,7 +653,8 @@ public class CuMemberController extends BaseController {
|
|||
|
||||
|
||||
/**
|
||||
* 校验身份证格式
|
||||
* 校验身份证格式
|
||||
*
|
||||
* @author: zhang jing
|
||||
* @date: 2023/10/17 14:10
|
||||
* @param: [idCard]
|
||||
|
@ -787,17 +791,12 @@ public class CuMemberController extends BaseController {
|
|||
|
||||
|
||||
/**
|
||||
* 新零售会员信息
|
||||
* @author: zhang jing
|
||||
* @date: 2024/12/9 17:34
|
||||
* @param: [memberParam]
|
||||
* @return: com.hzs.common.core.web.page.TableDataInfo
|
||||
* 新零售会员信息
|
||||
**/
|
||||
@Log(module = EOperationModule.MEMBER_INFORMATION, business = EOperationBusiness.RETAIL_MEMBER_INFO, method = EOperationMethod.SELECT)
|
||||
@GetMapping("/query-member")
|
||||
public TableDataInfo retailMember(RetailMemberVO memberParam) {
|
||||
memberParam.setPkCountry(SecurityUtils.getPkCountry());
|
||||
memberParam.setSystemType(SecurityUtils.getSystemType());
|
||||
|
||||
List<String> memberCodeList = new ArrayList<>();
|
||||
List<RetailMemberVO> memberCodeList1 = new ArrayList<>();
|
||||
|
@ -909,11 +908,7 @@ public class CuMemberController extends BaseController {
|
|||
|
||||
|
||||
/**
|
||||
* 导出新零售
|
||||
* @author: zhang jing
|
||||
* @date: 2024/12/10 17:22
|
||||
* @param: [response, memberParam]
|
||||
* @return: void
|
||||
* 导出新零售
|
||||
**/
|
||||
@Log(module = EOperationModule.MEMBER_INFORMATION, business = EOperationBusiness.RETAIL_MEMBER_INFO, method = EOperationMethod.EXPORT)
|
||||
@PostMapping("/export")
|
||||
|
@ -1045,7 +1040,8 @@ public class CuMemberController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 免密登录
|
||||
* 免密登录
|
||||
*
|
||||
* @author: zhang jing
|
||||
* @date: 2023/6/6 10:05
|
||||
* @param: [memberTeamInfoParam]
|
||||
|
|
|
@ -863,7 +863,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
for (int i = memberList.size() - 1; i >= 0; i--) {
|
||||
Long pkMember = memberList.get(i);
|
||||
SaOrderExt saOrder = saOrderMap.get(pkMember);
|
||||
CuMember cuMember = cuMemberService.getMemberById(pkMember);
|
||||
// 删除等级
|
||||
cuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime);
|
||||
// 回退奖衔,根据订单从 cu_member_awards查询
|
||||
|
@ -1525,16 +1524,17 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
boolean updateFlag = false;
|
||||
|
||||
LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
if (null != saOrder.getPkGrade()) {
|
||||
updateWrapper.set(CuMember::getPkSettleGrade, saOrder.getPkGrade());
|
||||
updateFlag = true;
|
||||
|
||||
cuMember.setPkSettleGrade(saOrder.getPkGrade());
|
||||
}
|
||||
// if (null != saOrder.getPkGrade()) {
|
||||
// updateWrapper.set(CuMember::getPkSettleGrade, saOrder.getPkGrade());
|
||||
// updateFlag = true;
|
||||
//
|
||||
// cuMember.setPkSettleGrade(saOrder.getPkGrade());
|
||||
// }
|
||||
if (activateFlag) {
|
||||
updateWrapper.set(null != cuMember.getIsActivate(), CuMember::getIsActivate, cuMember.getIsActivate());
|
||||
updateWrapper.set(null != cuMember.getPayStatus(), CuMember::getPayStatus, cuMember.getPayStatus());
|
||||
updateWrapper.set(null != cuMember.getPayTime(), CuMember::getPayTime, cuMember.getPayTime());
|
||||
updateFlag = true;
|
||||
}
|
||||
if (updateFlag) {
|
||||
// 更新会员信息
|
||||
|
@ -1543,10 +1543,10 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
|
|||
cuMemberService.update(updateWrapper);
|
||||
}
|
||||
|
||||
if (!cuMember.getPkSettleGrade().equals(saOrder.getPkGradeOld())) {
|
||||
// 保存会员等级变动(如果旧等级和新等级相同,则不记录)
|
||||
saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, saOrder.getPkGradeOld());
|
||||
}
|
||||
// if (!cuMember.getPkSettleGrade().equals(saOrder.getPkGradeOld())) {
|
||||
// // 保存会员等级变动(如果旧等级和新等级相同,则不记录)
|
||||
// saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, saOrder.getPkGradeOld());
|
||||
// }
|
||||
|
||||
this.handleRetailMemberAccount(saOrder, cuMemberAccountExt);
|
||||
}
|
||||
|
|
|
@ -3210,15 +3210,17 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
|||
* @return
|
||||
*/
|
||||
private String checkRegisterRelation(String phone, Integer systemType) {
|
||||
if (this.count(Wrappers.<CuMember>lambdaQuery()
|
||||
.eq(CuMember::getPhone, phone)
|
||||
.eq(CuMember::getCategory, ECategory.NORMAL.getValue())
|
||||
.eq(CuMember::getSystemType, systemType)
|
||||
) == 0) {
|
||||
// 手机号不存在,可以进行注册
|
||||
return null;
|
||||
}
|
||||
return "注册信息已存在,请重新输入注册信息";
|
||||
// TODO new 手机号可以重复,不需要进行是否重复校验
|
||||
return null;
|
||||
// if (this.count(Wrappers.<CuMember>lambdaQuery()
|
||||
// .eq(CuMember::getPhone, phone)
|
||||
// .eq(CuMember::getCategory, ECategory.NORMAL.getValue())
|
||||
// .eq(CuMember::getSystemType, systemType)
|
||||
// ) == 0) {
|
||||
// // 手机号不存在,可以进行注册
|
||||
// return null;
|
||||
// }
|
||||
// return "注册信息已存在,请重新输入注册信息";
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -10,9 +10,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 会员信息-等级升级记录 Mapper 接口
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-10-11
|
||||
*/
|
||||
public interface CuMemberLevelMapper extends BaseMapper<CuMemberLevel> {
|
||||
|
||||
|
|
|
@ -14,11 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 会员升级记录dubbo服务
|
||||
* @Author: jiang chao
|
||||
* @Time: 2024/1/30 17:25
|
||||
* @Classname: CuMemberLevelProvider
|
||||
* @PackageName: com.hzs.member.detail.provider
|
||||
* 会员升级记录dubbo服务
|
||||
*/
|
||||
@DubboService
|
||||
public class CuMemberDetailProvider implements ICuMemberDetailServiceApi {
|
||||
|
|
|
@ -9,9 +9,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 会员信息-等级升级记录 服务类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-10-11
|
||||
*/
|
||||
public interface ICuMemberLevelService extends IService<CuMemberLevel> {
|
||||
|
||||
|
@ -21,9 +18,6 @@ public interface ICuMemberLevelService extends IService<CuMemberLevel> {
|
|||
* @param pkOrder 订单
|
||||
* @param pkApprove 审核人
|
||||
* @param currentDateTime 当前时间
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/3/30 9:15
|
||||
*/
|
||||
void deleteCuMemberLevelRecord(Long pkOrder, Long pkApprove, Date currentDateTime);
|
||||
|
||||
|
|
|
@ -15,9 +15,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 会员信息-等级升级记录 服务实现类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-10-11
|
||||
*/
|
||||
@Service
|
||||
public class CuMemberLevelServiceImpl extends ServiceImpl<CuMemberLevelMapper, CuMemberLevel> implements ICuMemberLevelService {
|
||||
|
|
|
@ -16,7 +16,6 @@ import javax.servlet.http.HttpServletRequest;
|
|||
/**
|
||||
* 会员端 token 控制
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
@RequestMapping("/auth/api")
|
||||
@RestController
|
||||
|
@ -28,20 +27,20 @@ public class MemberTokenController {
|
|||
@Autowired
|
||||
private IMemberLoginService iMemberLoginService;
|
||||
|
||||
/**
|
||||
* 会员登录
|
||||
*
|
||||
* @param form
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/login")
|
||||
public AjaxResult login(@RequestBody LoginBody form) {
|
||||
// 用户登录
|
||||
LoginMember loginMember = iMemberLoginService.login(form.getUsername(), form.getPassword());
|
||||
|
||||
// 获取登录token
|
||||
return AjaxResult.success(memberTokenService.createToken(loginMember));
|
||||
}
|
||||
// /**
|
||||
// * 会员登录
|
||||
// *
|
||||
// * @param form
|
||||
// * @return
|
||||
// */
|
||||
// @PostMapping("/login")
|
||||
// public AjaxResult login(@RequestBody LoginBody form) {
|
||||
// // 用户登录
|
||||
// LoginMember loginMember = iMemberLoginService.login(form.getUsername(), form.getPassword());
|
||||
//
|
||||
// // 获取登录token
|
||||
// return AjaxResult.success(memberTokenService.createToken(loginMember));
|
||||
// }
|
||||
|
||||
/**
|
||||
* 会员登出
|
||||
|
|
|
@ -242,15 +242,10 @@ public class MarketNewsController extends BaseController {
|
|||
if (cuMemberBonusPush.getOrderType() != null) {
|
||||
cuMemberBonusPush.setOrderTypeStr(transactionMap.get(EnumsPrefixConstants.ORDER_TYPE + cuMemberBonusPush.getOrderType()));
|
||||
}
|
||||
// 注册业绩 国内 * 6.4
|
||||
if (SecurityUtils.getPkCountry().equals(CountryConstants.CHINA_COUNTRY)) {
|
||||
if (cuMemberBonusPush.getOrderAchieve() == null) {
|
||||
cuMemberBonusPush.setOrderAchieve(BigDecimal.ZERO);
|
||||
}
|
||||
cuMemberBonusPush.setOrderAchieve(cuMemberBonusPush.getOrderAchieve().multiply(inExchangeRate));
|
||||
} else {
|
||||
cuMemberBonusPush.setOrderAchieve(cuMemberBonusPush.getOrderAchieve());
|
||||
if (cuMemberBonusPush.getOrderAchieve() == null) {
|
||||
cuMemberBonusPush.setOrderAchieve(BigDecimal.ZERO);
|
||||
}
|
||||
cuMemberBonusPush.setOrderAchieve(cuMemberBonusPush.getOrderAchieve().multiply(inExchangeRate));
|
||||
cuMemberBonusPush.setCreationTime(cuMemberBonusPush.getMemberPayTime());
|
||||
|
||||
// 跨国报单 汇率转换
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
package com.hzs.retail.login.service.impl;
|
||||
|
||||
import cn.hutool.core.codec.Base64Decoder;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.lang.Validator;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.hzs.common.core.constant.SysConstants;
|
||||
import com.hzs.common.core.constant.msg.SystemMsgConstants;
|
||||
import com.hzs.common.core.enums.EAccountStatus;
|
||||
import com.hzs.common.core.enums.ECategory;
|
||||
|
@ -30,7 +27,6 @@ import org.springframework.stereotype.Service;
|
|||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 新零售会员登录服务
|
||||
|
@ -52,27 +48,27 @@ public class RetailMemberLoginServiceImpl implements IRetailMemberLoginService {
|
|||
throw new ServiceException("会员账号或联系方式必须填写");
|
||||
}
|
||||
|
||||
CuMemberExt member;
|
||||
CuMemberExt member = iCuMemberService.getRetailMemberByCode(userName);
|
||||
|
||||
if (userName.startsWith(SysConstants.RETAIL_PREFIX)) {
|
||||
// 会员编号登录
|
||||
member = iCuMemberService.getRetailMemberByCode(userName);
|
||||
} else if ((userName.length() == 11 && userName.startsWith("1"))
|
||||
|| Validator.isEmail(userName)) {
|
||||
// 手机号 或 邮箱 登录
|
||||
List<CuMemberExt> memberList = iCuMemberService.listMemberByPhone(userName);
|
||||
if (CollectionUtil.isEmpty(memberList)) {
|
||||
throw new ServiceException("会员账号或联系方式填写有误,请检查后重试");
|
||||
}
|
||||
if (memberList.size() > 1) {
|
||||
// 联系方式超过两个,只能使用会员编号进行登录
|
||||
throw new ServiceException("当前会员需要使用会员编号进行登录");
|
||||
}
|
||||
member = memberList.get(0);
|
||||
} else {
|
||||
// 用户/密码必须填写
|
||||
throw new ServiceException("会员账号或联系方式填写有误,请检查后重试");
|
||||
}
|
||||
// if (userName.startsWith(SysConstants.RETAIL_PREFIX)) {
|
||||
// // 会员编号登录
|
||||
// member = iCuMemberService.getRetailMemberByCode(userName);
|
||||
// } else if ((userName.length() == 11 && userName.startsWith("1"))
|
||||
// || Validator.isEmail(userName)) {
|
||||
// // 手机号 或 邮箱 登录
|
||||
// List<CuMemberExt> memberList = iCuMemberService.listMemberByPhone(userName);
|
||||
// if (CollectionUtil.isEmpty(memberList)) {
|
||||
// throw new ServiceException("会员账号或联系方式填写有误,请检查后重试");
|
||||
// }
|
||||
// if (memberList.size() > 1) {
|
||||
// // 联系方式超过两个,只能使用会员编号进行登录
|
||||
// throw new ServiceException("当前会员需要使用会员编号进行登录");
|
||||
// }
|
||||
// member = memberList.get(0);
|
||||
// } else {
|
||||
// // 用户/密码必须填写
|
||||
// throw new ServiceException("会员账号或联系方式填写有误,请检查后重试");
|
||||
// }
|
||||
|
||||
if (null == member) {
|
||||
recordLoginLog(null, EStatus.NO, userName + " 登录会员不存在");
|
||||
|
@ -122,20 +118,20 @@ public class RetailMemberLoginServiceImpl implements IRetailMemberLoginService {
|
|||
updateFlag = true;
|
||||
}
|
||||
}
|
||||
if (null == member.getPkTeamCode()) {
|
||||
// 空单注册会员,如果团队为空处理
|
||||
CuMemberExt teamMember = iCuMemberService.queryParentTeam(member.getPkId());
|
||||
if (null != teamMember) {
|
||||
updateWrapper.set(CuMember::getPkTeamCode, teamMember.getPkTeamCode());
|
||||
updateFlag = true;
|
||||
}
|
||||
}
|
||||
// if (null == member.getPkTeamCode()) {
|
||||
// // 空单注册会员,如果团队为空处理
|
||||
// CuMemberExt teamMember = iCuMemberService.queryParentTeam(member.getPkId());
|
||||
// if (null != teamMember) {
|
||||
// updateWrapper.set(CuMember::getPkTeamCode, teamMember.getPkTeamCode());
|
||||
// updateFlag = true;
|
||||
// }
|
||||
// }
|
||||
if (updateFlag) {
|
||||
updateWrapper.eq(CuMember::getPkId, member.getPkId());
|
||||
iCuMemberService.update(updateWrapper);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("会员 {} 补全【体系】或【团队】错误", member.getMemberCode());
|
||||
log.error("会员 {} 补全【体系】错误", member.getMemberCode());
|
||||
}
|
||||
|
||||
recordLoginLog(loginMember.getPkId(), EStatus.YES, "登录成功");
|
||||
|
|
|
@ -166,10 +166,8 @@ public class RetailMemberController extends BaseController {
|
|||
|
||||
// 达到条件,但是没有选择区域,需要弹窗选择区域
|
||||
CuMemberRetailAchieveVO retailAchieve = iCuMemberRetailAchieveService.selectMemberSumAchieve(userId, pkCountry, systemType);
|
||||
// 2024.12.30 添加需求,存在手动V0升V5,需要判断小市场业绩达到2万以上才可以进行开通
|
||||
if (retailAchieve.getSmallAreaPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.SMALL_AREA_PV) < 0
|
||||
|| retailAchieve.getBigArealPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.SMALL_AREA_PV) < 0
|
||||
) {
|
||||
// TODO 2025.06.09 新需求,选择区域判断等级达到合伙人,血缘累计业绩达到30万,可以选择
|
||||
if (retailAchieve.getSmallAreaPv().add(retailAchieve.getBigArealPv()).compareTo(SysConstants.TOTAL_AREA_PV) < 0) {
|
||||
return AjaxResult.error("还未达到选择收益区域条件");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -85,6 +85,8 @@ public class MemberRetailServiceImpl implements IMemberRetailService {
|
|||
.creationTime(cuMember.getCreationTime())
|
||||
.idCardAuth(idCardAuth)
|
||||
.systemType(cuMember.getSystemType())
|
||||
.pkCountry(cuMember.getPkCountry())
|
||||
.pkSettleCountry(cuMember.getPkSettleCountry())
|
||||
.build();
|
||||
}
|
||||
return null;
|
||||
|
|
|
@ -11,11 +11,7 @@ import java.math.BigDecimal;
|
|||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description: 新零售会员信息返回VO
|
||||
* @Author: jiang chao
|
||||
* @Time: 2024/12/11 15:06
|
||||
* @Classname: RetailMemberInfoVO
|
||||
* @PackageName: com.hzs.retail.member.vo
|
||||
* 新零售会员信息返回VO
|
||||
*/
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
|
@ -44,6 +40,14 @@ public class RetailMemberInfoVO implements Serializable {
|
|||
*/
|
||||
private String nickName;
|
||||
|
||||
/**
|
||||
* 自然国ID
|
||||
*/
|
||||
private Integer pkCountry;
|
||||
/**
|
||||
* 结算国ID
|
||||
*/
|
||||
private Integer pkSettleCountry;
|
||||
/**
|
||||
* 结算国
|
||||
*/
|
||||
|
|
|
@ -716,16 +716,16 @@
|
|||
merge into ${tableName} a
|
||||
using (select #{period} period, a.*
|
||||
from (select user_id pk_member,
|
||||
sum(CURR_DAY_MAIN_REG_AMOUNT) / 6.4 REGISTER_AMOUNT,
|
||||
sum(CURR_DAY_MAIN_REG_PV) / 6.4 REGISTER_PV,
|
||||
sum(CURR_DAY_MAIN_UP_AMOUNT) / 6.4 UPGRADE_AMOUNT,
|
||||
sum(CURR_DAY_MAIN_UP_PV) / 6.4 UPGRADE_PV,
|
||||
sum(CURR_DAY_MAIN_REPUR_AMOUNT) / 6.4 REPURCHASE_AMOUNT,
|
||||
sum(CURR_DAY_MAIN_REPURCHASE_PV) / 6.4 REPURCHASE_PV,
|
||||
sum(CURR_DAY_SEA2_REG_AMOUNT) / 6.4 HI_FUN_AMOUNT,
|
||||
sum(CURR_DAY_SEA2_REG_PV) / 6.4 HI_FUN_PV,
|
||||
sum(CURR_DAY_MALL_AMOUNT) / 6.4 MALL_AMOUNT,
|
||||
sum(CURR_DAY_MALL_PV) / 6.4 MALL_PV
|
||||
sum(CURR_DAY_MAIN_REG_AMOUNT) REGISTER_AMOUNT,
|
||||
sum(CURR_DAY_MAIN_REG_PV) REGISTER_PV,
|
||||
sum(CURR_DAY_MAIN_UP_AMOUNT) UPGRADE_AMOUNT,
|
||||
sum(CURR_DAY_MAIN_UP_PV) UPGRADE_PV,
|
||||
sum(CURR_DAY_MAIN_REPUR_AMOUNT) REPURCHASE_AMOUNT,
|
||||
sum(CURR_DAY_MAIN_REPURCHASE_PV) REPURCHASE_PV,
|
||||
sum(CURR_DAY_SEA2_REG_AMOUNT) HI_FUN_AMOUNT,
|
||||
sum(CURR_DAY_SEA2_REG_PV) HI_FUN_PV,
|
||||
sum(CURR_DAY_MALL_AMOUNT) MALL_AMOUNT,
|
||||
sum(CURR_DAY_MALL_PV) MALL_PV
|
||||
from G_MEMBER_ACHIV@link_test
|
||||
where period between - 729 and #{period}
|
||||
group by user_id) a) b on
|
||||
|
|
|
@ -2346,7 +2346,7 @@
|
|||
FROM cu_member cm
|
||||
inner join CU_MEMBER_ACCOUNT cma
|
||||
on cm.pk_id = cma.PK_MEMBER
|
||||
INNER JOIN cu_member par
|
||||
left join cu_member par
|
||||
ON par.pk_id = cm.pk_parent
|
||||
left join bd_awards awa
|
||||
on awa.pk_id = cm.PK_AWARDS
|
||||
|
@ -2374,7 +2374,7 @@
|
|||
FROM cu_member cm
|
||||
inner join CU_MEMBER_ACCOUNT cma
|
||||
on cm.pk_id = cma.PK_MEMBER
|
||||
INNER JOIN cu_member par
|
||||
left join cu_member par
|
||||
ON par.pk_id = cm.pk_parent
|
||||
left join bd_awards awa
|
||||
on awa.pk_id = cm.PK_AWARDS
|
||||
|
@ -2395,9 +2395,6 @@
|
|||
<if test="pkCountry != null">
|
||||
and cm.pk_settle_country = #{pkCountry}
|
||||
</if>
|
||||
<if test="systemType != null">
|
||||
and cm.SYSTEM_TYPE = #{systemType}
|
||||
</if>
|
||||
<if test="memberCode != null and memberCode != ''">
|
||||
and cm.member_code like #{memberCode}||'%'
|
||||
</if>
|
||||
|
|
|
@ -147,7 +147,7 @@
|
|||
(nvl(cbs.MAIN_REG_PV,0)+nvl(cbs.MAIN_UP_PV,0)+nvl(cbs.MAIN_REPUR_PV,0)+nvl(cbs.RETAIL_CONSUME_PV,0)),4) end as backPointsRate,
|
||||
|
||||
|
||||
6.4*(nvl(cbs.retail_range_income,0)+nvl(cbs.retail_same_level_income_V1V4,0)+nvl(cbs.retail_same_level_income_V5,0)
|
||||
(nvl(cbs.retail_range_income,0)+nvl(cbs.retail_same_level_income_V1V4,0)+nvl(cbs.retail_same_level_income_V5,0)
|
||||
+nvl(cbs.retail_area_income,0)+nvl(cbs.retail_benefit_avg_income,0)
|
||||
+nvl(cbs.retail_benefit_income,0)+nvl(cbs.retail_benefit_range_income,0)+nvl(cbs.BACK_POINTS,0)) totalBonus,
|
||||
|
||||
|
|
|
@ -8,11 +8,7 @@ import org.apache.dubbo.config.annotation.DubboService;
|
|||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
/**
|
||||
* @description: 统计分析相关dubbo服务
|
||||
* @author: zhang jing
|
||||
* @date: 2025/2/12 15:23
|
||||
* @param:
|
||||
* @return:
|
||||
* 统计分析相关dubbo服务
|
||||
**/
|
||||
@Slf4j
|
||||
@DubboService
|
||||
|
@ -21,30 +17,15 @@ public class MemberReportServiceProvider implements IMemberReportServiceApi {
|
|||
@Autowired
|
||||
private MemberReportService iMemberReportService;
|
||||
|
||||
|
||||
/**
|
||||
* @description: 定时任务批量处理统计会员以及伞下金额业绩盒数
|
||||
* @author: zhang jing
|
||||
* @date: 2025/2/12 15:28
|
||||
* @param: []
|
||||
* @return: com.hzs.common.core.domain.R
|
||||
**/
|
||||
@Override
|
||||
public R pushAmountBoxmethod() {
|
||||
iMemberReportService.pushAmountBoxmethod();
|
||||
return R.ok();
|
||||
public R<?> pushAmountBoxmethod() {
|
||||
iMemberReportService.pushAmountBoxmethod();
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 定时任务7天重算直推会员金额业绩盒数
|
||||
* @author: zhang jing
|
||||
* @date: '2025/2/12' 16:10
|
||||
* @param: [startDateStr, endDateStr]
|
||||
* @return: com.hzs.common.core.domain.R
|
||||
**/
|
||||
@Override
|
||||
public R repeatPushAmountBoxmethod(String startDateStr, String endDateStr) {
|
||||
iMemberReportService.repeatPushAmountBoxmethod(startDateStr,endDateStr);
|
||||
public R<?> repeatPushAmountBoxmethod(String startDateStr, String endDateStr) {
|
||||
iMemberReportService.repeatPushAmountBoxmethod(startDateStr, endDateStr);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
|
|
@ -892,11 +892,11 @@
|
|||
t6.rightSumPv,
|
||||
t6.leftSumPv,
|
||||
t2.dept,
|
||||
t2.a_sum_pv * 6.4 historyLeftSumPv,
|
||||
t2.b_sum_pv * 6.4 historyRightSumPv,
|
||||
t2.a_sum_pv historyLeftSumPv,
|
||||
t2.b_sum_pv historyRightSumPv,
|
||||
t6.pk_member
|
||||
FROM (SELECT NVL(SUM(t1.a_new_pv) * 6.4, 0) leftSumPv,
|
||||
NVL(SUM(t1.b_new_pv) * 6.4, 0) rightSumPv,
|
||||
FROM (SELECT NVL(SUM(t1.a_new_pv), 0) leftSumPv,
|
||||
NVL(SUM(t1.b_new_pv), 0) rightSumPv,
|
||||
t1.pk_member
|
||||
FROM (
|
||||
<foreach collection="monthAchieveVOList" item="monthAchieve" open=" " separator=" union all " close=" ">
|
||||
|
@ -951,12 +951,12 @@
|
|||
bv.vertex_name vertexName,
|
||||
CASE
|
||||
WHEN t5.a_new_pv > t5.b_new_pv THEN
|
||||
NVL(t5.b_new_pv * 6.4, 0)
|
||||
NVL(t5.b_new_pv, 0)
|
||||
WHEN t5.a_new_pv <= t5.b_new_pv THEN
|
||||
NVL(t5.a_new_pv * 6.4, 0)
|
||||
NVL(t5.a_new_pv, 0)
|
||||
END achieve,
|
||||
t5.a_new_pv * 6.4 leftSumPv,
|
||||
t5.b_new_pv * 6.4 rightSumPv,
|
||||
t5.a_new_pv leftSumPv,
|
||||
t5.b_new_pv rightSumPv,
|
||||
CASE
|
||||
WHEN t5.a_new_pv > t5.b_new_pv THEN
|
||||
2
|
||||
|
@ -1006,8 +1006,8 @@
|
|||
) t2
|
||||
GROUP BY t2.pk_member) t3
|
||||
ON t1.pk_id = t3.pk_member
|
||||
WHERE t3.a_new_pv * 6.4 >= #{achieve}
|
||||
AND t3.b_new_pv * 6.4 >= #{achieve}) t5
|
||||
WHERE t3.a_new_pv >= #{achieve}
|
||||
AND t3.b_new_pv >= #{achieve}) t5
|
||||
LEFT JOIN bd_awards a
|
||||
ON a.pk_id = t5.pk_awards
|
||||
AND a.pk_country = #{pkCountry}
|
||||
|
@ -1035,11 +1035,11 @@
|
|||
t6.rightSumPv,
|
||||
t6.leftSumPv,
|
||||
t2.dept,
|
||||
t2.a_sum_pv * 6.4 historyLeftSumPv,
|
||||
t2.b_sum_pv * 6.4 historyRightSumPv,
|
||||
t2.a_sum_pv historyLeftSumPv,
|
||||
t2.b_sum_pv historyRightSumPv,
|
||||
t6.pk_member
|
||||
FROM (SELECT NVL(SUM(t1.a_new_pv) * 6.4, 0) leftSumPv,
|
||||
NVL(SUM(t1.b_new_pv) * 6.4, 0) rightSumPv,
|
||||
FROM (SELECT NVL(SUM(t1.a_new_pv), 0) leftSumPv,
|
||||
NVL(SUM(t1.b_new_pv), 0) rightSumPv,
|
||||
t1.pk_member
|
||||
FROM (
|
||||
<foreach collection="monthAchieveVOList" item="monthAchieve" open=" " separator=" union all " close=" ">
|
||||
|
@ -1091,12 +1091,12 @@
|
|||
bv.vertex_name vertexName,
|
||||
CASE
|
||||
WHEN t5.a_new_pv > t5.b_new_pv THEN
|
||||
NVL(t5.b_new_pv * 6.4, 0)
|
||||
NVL(t5.b_new_pv, 0)
|
||||
WHEN t5.a_new_pv <= t5.b_new_pv THEN
|
||||
NVL(t5.a_new_pv * 6.4, 0)
|
||||
NVL(t5.a_new_pv, 0)
|
||||
END achieve,
|
||||
t5.a_new_pv * 6.4 leftSumPv,
|
||||
t5.b_new_pv * 6.4 rightSumPv,
|
||||
t5.a_new_pv leftSumPv,
|
||||
t5.b_new_pv rightSumPv,
|
||||
CASE
|
||||
WHEN t5.a_new_pv > t5.b_new_pv THEN
|
||||
2
|
||||
|
@ -1146,8 +1146,8 @@
|
|||
) t2
|
||||
GROUP BY t2.pk_member) t3
|
||||
ON t1.pk_id = t3.pk_member
|
||||
WHERE t3.a_new_pv * 6.4 >= #{achieve}
|
||||
AND t3.b_new_pv * 6.4 >= #{achieve}) t5
|
||||
WHERE t3.a_new_pv >= #{achieve}
|
||||
AND t3.b_new_pv >= #{achieve}) t5
|
||||
LEFT JOIN bd_awards a
|
||||
ON a.pk_id = t5.pk_awards
|
||||
AND a.pk_country = #{pkCountry}
|
||||
|
|
|
@ -107,13 +107,15 @@ public class ApiRetailOrderController {
|
|||
orderLevelVO.setMsg("会员不满足升级条件");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if (EYesNo.YES.getIntValue() == levelParam.getFirstCheck()) {
|
||||
// 2024.12.25 -- 添加需求,首次校验不需要进行提示错误(9050)
|
||||
orderLevelVO.setIsEnough(true);
|
||||
return AjaxResult.success(orderLevelVO);
|
||||
} else {
|
||||
throw e;
|
||||
}
|
||||
log.error("校验会员等级异常", e);
|
||||
orderLevelVO.setMsg("校验会员等级异常");
|
||||
// if (EYesNo.YES.getIntValue() == levelParam.getFirstCheck()) {
|
||||
// // 2024.12.25 -- 添加需求,首次校验不需要进行提示错误(9050)
|
||||
// orderLevelVO.setIsEnough(true);
|
||||
// return AjaxResult.success(orderLevelVO);
|
||||
// } else {
|
||||
// throw e;
|
||||
// }
|
||||
}
|
||||
return AjaxResult.success(orderLevelVO);
|
||||
}
|
||||
|
@ -147,11 +149,11 @@ public class ApiRetailOrderController {
|
|||
*/
|
||||
@PostMapping("/valid-relation")
|
||||
public AjaxResult validRelation(@Valid @RequestBody RetailOrderRelationParam relationParam) {
|
||||
// 校验注册关系(是否跨团队) -- 2024.12.24 修改为校验手机号必须唯一(9035)
|
||||
String relationStr = iMemberServiceApi.checkRegisterRelation(relationParam.getPhone(), relationParam.getParentCode()).getData();
|
||||
if (relationStr != null) {
|
||||
return AjaxResult.error(relationStr);
|
||||
}
|
||||
// TODO new 手机号可以重复,不需要进行是否重复校验 -- 已经跳过,此处可以不需要当前判断
|
||||
// String relationStr = iMemberServiceApi.checkRegisterRelation(relationParam.getPhone(), relationParam.getParentCode()).getData();
|
||||
// if (relationStr != null) {
|
||||
// return AjaxResult.error(relationStr);
|
||||
// }
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
@ -225,11 +227,12 @@ public class ApiRetailOrderController {
|
|||
return AjaxResult.error(checkStr);
|
||||
}
|
||||
|
||||
// 校验注册关系(是否跨团队) -- 2024.12.24 修改为校验手机号必须唯一
|
||||
String relationStr = iMemberServiceApi.checkRegisterRelation(registerParam.getPhone(), registerParam.getParentCode()).getData();
|
||||
if (relationStr != null) {
|
||||
return AjaxResult.error(relationStr);
|
||||
}
|
||||
// TODO new 手机号可以重复,不需要进行是否重复校验 -- 已经跳过,此处可以不需要当前判断
|
||||
// // 校验注册关系(是否跨团队) -- 2024.12.24 修改为校验手机号必须唯一
|
||||
// String relationStr = iMemberServiceApi.checkRegisterRelation(registerParam.getPhone(), registerParam.getParentCode()).getData();
|
||||
// if (relationStr != null) {
|
||||
// return AjaxResult.error(relationStr);
|
||||
// }
|
||||
|
||||
// 购物车中获取商品信息
|
||||
registerParam.setOrderItemsParams(convertShoppingCarToSku(registerParam.getPkCreator(), registerParam.getShopList()));
|
||||
|
@ -268,11 +271,12 @@ public class ApiRetailOrderController {
|
|||
return AjaxResult.error(checkStr);
|
||||
}
|
||||
|
||||
// 校验注册关系(是否跨团队) -- 2024.12.24 修改为校验手机号必须唯一
|
||||
String relationStr = iMemberServiceApi.checkRegisterRelation(registerParam.getPhone(), registerParam.getParentCode()).getData();
|
||||
if (relationStr != null) {
|
||||
return AjaxResult.error(relationStr);
|
||||
}
|
||||
// TODO new 手机号可以重复,不需要进行是否重复校验 -- 已经跳过,此处可以不需要当前判断
|
||||
// // 校验注册关系(是否跨团队) -- 2024.12.24 修改为校验手机号必须唯一
|
||||
// String relationStr = iMemberServiceApi.checkRegisterRelation(registerParam.getPhone(), registerParam.getParentCode()).getData();
|
||||
// if (relationStr != null) {
|
||||
// return AjaxResult.error(relationStr);
|
||||
// }
|
||||
|
||||
// 封装会员信息
|
||||
CuMember newMember = iRetailOrderService.packageCuMember(registerParam);
|
||||
|
@ -338,6 +342,10 @@ public class ApiRetailOrderController {
|
|||
if (null == updateGradeMember) {
|
||||
throw new ServiceException("升级编号不存在,请重试");
|
||||
}
|
||||
String otherCheckStr = this.otherOrderCheck(updateGradeMember, upgradeParam.getSpecialArea());
|
||||
if (null != otherCheckStr) {
|
||||
return AjaxResult.error(otherCheckStr);
|
||||
}
|
||||
upgradeParam.setUpgradeMember(updateGradeMember);
|
||||
|
||||
// 购物车中获取商品信息
|
||||
|
@ -371,6 +379,10 @@ public class ApiRetailOrderController {
|
|||
if (null == updateGradeMember) {
|
||||
throw new ServiceException("升级编号不存在,请重试");
|
||||
}
|
||||
String otherCheckStr = this.otherOrderCheck(updateGradeMember, payParam.getSpecialArea());
|
||||
if (null != otherCheckStr) {
|
||||
return AjaxResult.error(otherCheckStr);
|
||||
}
|
||||
|
||||
// 封装订单信息
|
||||
SaOrderExt saOrderExt = iRetailOrderService.createSaOrder(upgradeParam, null, updateGradeMember);
|
||||
|
@ -649,12 +661,12 @@ public class ApiRetailOrderController {
|
|||
orderParam.setPkParent(orderParam.getPkCreator());
|
||||
|
||||
if (!creatorMember.getMemberCode().equals(orderParam.getParentCode())) {
|
||||
// 校验推荐人是否大于V0,不然不能当推荐人
|
||||
|
||||
CuMember parentMember = iMemberServiceApi.getRetailMember(null, orderParam.getParentCode()).getData();
|
||||
if (null == parentMember) {
|
||||
return "推荐编号不存在";
|
||||
}
|
||||
// // 校验推荐人等级是否为V0,如果是V0不能进行注册
|
||||
// // 校验推荐人是否大于V0,不然不能当推荐人
|
||||
// BdGrade parentGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(parentMember.getPkSettleGrade())).findFirst().get();
|
||||
// if (EGrade.START_UP.getValue() == parentGrade.getGradeValue()) {
|
||||
// return orderParam.getParentCode() + " 不能做为推荐人";
|
||||
|
@ -706,9 +718,9 @@ public class ApiRetailOrderController {
|
|||
if (null == buyMember) {
|
||||
return "购买会员编号不存在,请重试";
|
||||
}
|
||||
if (ESpecialArea.RETAIL_REPURCHASE.getValue() != specialArea) {
|
||||
// 2025.02.24 新需求,升级专区取消,V0可以直接购买复购专区
|
||||
// 判断购买会员是否是V0,V0不允许下升级以外订单
|
||||
if (ESpecialArea.RETAIL_UPGRADE.getValue() != specialArea
|
||||
&& ESpecialArea.RETAIL_REPURCHASE.getValue() != specialArea) {
|
||||
// 判断购买会员是否是V0,V0不允许下升级、复购以外订单
|
||||
GradeDTO gradeDTO = iGradeServiceApi.getGrade(buyMember.getPkSettleGrade()).getData();
|
||||
if (gradeDTO.getGradeValue() == EGrade.START_UP.getValue()) {
|
||||
return "当前购买会员编号不允许下单";
|
||||
|
|
|
@ -20,6 +20,7 @@ import com.hzs.common.domain.sale.ext.BdWaresDetailExt;
|
|||
import com.hzs.common.domain.sale.ext.SaOrderExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderWaresLimitExt;
|
||||
import com.hzs.common.domain.sale.order.*;
|
||||
import com.hzs.common.domain.sale.product.BdProduct;
|
||||
import com.hzs.common.domain.sale.wares.BdWaresRange;
|
||||
import com.hzs.common.domain.system.base.BdStorehouse;
|
||||
import com.hzs.common.domain.system.config.BdGrade;
|
||||
|
@ -36,6 +37,7 @@ import com.hzs.sale.order.param.OrderItemsParam;
|
|||
import com.hzs.sale.order.param.WaresNumberParam;
|
||||
import com.hzs.sale.order.service.*;
|
||||
import com.hzs.sale.order.service.impl.SaOrderHandle;
|
||||
import com.hzs.sale.product.service.IBdProductService;
|
||||
import com.hzs.sale.wares.service.IBdWaresDetailService;
|
||||
import com.hzs.sale.wares.service.IBdWaresExtendService;
|
||||
import com.hzs.sale.wares.service.IBdWaresRangeService;
|
||||
|
@ -82,6 +84,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
private ISaOrderTempService iSaOrderTempService;
|
||||
@Autowired
|
||||
private ISaOrderWaresLimitService iSaOrderWaresLimitService;
|
||||
@Autowired
|
||||
private IBdProductService iBdProductService;
|
||||
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
@ -107,9 +111,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
// 封装订单信息
|
||||
SaOrderExt saOrderExt = this.createSaOrder(registerParam, gradeList, newMember);
|
||||
|
||||
// 测试环境特殊处理
|
||||
this.testHandle(registerParam.getPkCreator(), saOrderExt);
|
||||
|
||||
// 订单缓存(60分钟有效,防止在线支付回调慢)
|
||||
redisService.setCacheObject(CacheConstants.RETAIL_TEMP_ORDER + registerParam.getPkCreator() + registerParam.getOrderCode(), saOrderExt, CacheConstants.RETAIL_ORDER_EXPIRE_TIME * 2, TimeUnit.MINUTES);
|
||||
registerParam.setPkGrade(newMember.getPkSettleGrade());
|
||||
|
@ -130,9 +131,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
// 封装订单信息
|
||||
SaOrderExt saOrderExt = this.createSaOrder(upgradeParam, null, upgradeMember);
|
||||
|
||||
// 测试环境特殊处理
|
||||
this.testHandle(upgradeParam.getPkCreator(), saOrderExt);
|
||||
|
||||
// 订单缓存(60分钟有效,防止在线支付回调慢)
|
||||
redisService.setCacheObject(CacheConstants.RETAIL_TEMP_ORDER + upgradeParam.getPkCreator() + upgradeParam.getOrderCode(), saOrderExt, CacheConstants.RETAIL_ORDER_EXPIRE_TIME * 2, TimeUnit.MINUTES);
|
||||
upgradeParam.setPkGrade(upgradeMember.getPkSettleGrade());
|
||||
|
@ -213,9 +211,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
}
|
||||
|
||||
if (ESpecialArea.RETAIL_REGISTER.getValue() == orderParam.getSpecialArea()
|
||||
|| ESpecialArea.RETAIL_UPGRADE.getValue() == orderParam.getSpecialArea()
|
||||
|| ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()) {
|
||||
// 2025.02.24 升级专区取消,复购盒数商品满足条件也可以升级
|
||||
|| ESpecialArea.RETAIL_UPGRADE.getValue() == orderParam.getSpecialArea()) {
|
||||
// 注册、升级订单,计算会员等级
|
||||
BdGrade newGrade = iSaOrderService.calculateGrade(orderParam.getSpecialArea(), orderParam.getOrderItemsParams(), gradeList, cuMember, orderParam.getSystemType());
|
||||
// if (null == newGrade) {
|
||||
|
@ -268,10 +264,10 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
|
||||
// 订单明细信息
|
||||
List<SaOrderItems> orderItemsList = new ArrayList<>();
|
||||
// 需要计算等级,以及商品价格
|
||||
if (CollectionUtil.isEmpty(gradeList)) {
|
||||
gradeList = iGradeServiceApi.getRetailGradeList().getData();
|
||||
}
|
||||
// // 需要计算等级,以及商品价格
|
||||
// if (CollectionUtil.isEmpty(gradeList)) {
|
||||
// gradeList = iGradeServiceApi.getRetailGradeList().getData();
|
||||
// }
|
||||
if (null == currency) {
|
||||
currency = iCurrencyServiceApi.getCurrency(orderParam.getPkCountry()).getData();
|
||||
}
|
||||
|
@ -283,127 +279,131 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
// 邮费模板map(key:邮费模板ID,value:邮费订单明细)
|
||||
Map<Integer, List<SaOrderItems>> postageMap = new HashMap<>(ComputeUtil.mapInitCapacity(waresDetailExtList.size()));
|
||||
|
||||
// 升级盒数基数
|
||||
int baseBoxNum = 0;
|
||||
// // 是否购买过(手动升级第一单升级订单价格、复购第一单价格209)
|
||||
// boolean buyFlag = false;
|
||||
// // 升级盒数基数
|
||||
// int baseBoxNum = 0;
|
||||
|
||||
// 当前会员等级
|
||||
BdGrade memberGrade = null;
|
||||
if (null != cuMember.getPkSettleGrade()) {
|
||||
// 获取当前会员等级(注册专区,目前没有会员等级)
|
||||
memberGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(cuMember.getPkSettleGrade())).findFirst().get();
|
||||
}
|
||||
// 2025.02.24 升级专区取消,复购专区指定盒数商品走升级逻辑
|
||||
if (ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()) {
|
||||
// // 复购订单
|
||||
// if (HzsUtil.checkOnlineTime()) {
|
||||
// // 2025.03.01 之前还需要处理首单209,校验是否购买过首单
|
||||
// buyFlag = iSaOrderItemsService.getRetailWaresQuantity(cuMember.getPkId(), boxProductList, null,
|
||||
// Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue(), EOrderType.RETAIL_REPURCHASE.getValue()), orderParam.getSystemType()) > 0;
|
||||
// }
|
||||
// 获取升级盒数基数
|
||||
baseBoxNum = iSaOrderService.handleBaseBoxNum(cuMember, memberGrade, gradeList, boxProductList, orderParam.getSystemType());
|
||||
}
|
||||
// // 当前会员等级
|
||||
// BdGrade memberGrade = null;
|
||||
// if (null != cuMember.getPkSettleGrade()) {
|
||||
// // 获取当前会员等级(注册专区,目前没有会员等级)
|
||||
// memberGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(cuMember.getPkSettleGrade())).findFirst().get();
|
||||
// }
|
||||
// // 2025.02.24 升级专区取消,复购专区指定盒数商品走升级逻辑
|
||||
// if (ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()) {
|
||||
// // 获取升级盒数基数
|
||||
// baseBoxNum = iSaOrderService.handleBaseBoxNum(cuMember, memberGrade, gradeList, boxProductList, orderParam.getSystemType());
|
||||
// }
|
||||
|
||||
// 当前盒数
|
||||
int boxNum = 0;
|
||||
|
||||
// 2025.03.11 添加需求,复购专区、重消专区,指定盒数商品每用户每月限购50件
|
||||
this.checkWaresLimit(cuMember.getPkId(), orderParam.getSpecialArea(), waresDetailExtList, boxProductList);
|
||||
// // 2025.03.11 添加需求,复购专区、重消专区,指定盒数商品每用户每月限购50件
|
||||
// this.checkWaresLimit(cuMember.getPkId(), orderParam.getSpecialArea(), waresDetailExtList, boxProductList);
|
||||
|
||||
// 商品编号列表
|
||||
List<String> waresCodeList = waresDetailExtList.stream().map(BdWaresDetailExt::getWaresCode).collect(Collectors.toList());
|
||||
// 根据商品获取商品下所有产品数据
|
||||
Map<Integer, BdProduct> productMap = iBdProductService.listProductInfoByWaresCode(orderParam.getSpecialArea(), waresCodeList);
|
||||
|
||||
// 遍历生成订单明细数据
|
||||
for (BdWaresDetailExt waresDetailExt : waresDetailExtList) {
|
||||
// // 价格KEY(商品编号 + 价格)
|
||||
// String waresGroupKey = null;
|
||||
// // 商品数量
|
||||
// int waresQuantity = 1;
|
||||
|
||||
// 订单明细
|
||||
SaOrderItems orderItems = null;
|
||||
// 价格KEY(商品编号 + 价格)
|
||||
String waresGroupKey = null;
|
||||
// 商品数量
|
||||
int waresQuantity = 1;
|
||||
SaOrderItems orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt);
|
||||
|
||||
if (ESpecialArea.RETAIL_REGISTER.getValue() == orderParam.getSpecialArea()
|
||||
&& boxProductList.contains(waresDetailExt.getWaresCode())
|
||||
&& EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
|
||||
// 会员专区(注册) 并且 指定的商品不为赠品,需要根据盒数重新计算价格
|
||||
// 指定盒数商品,价格需要按等级和购买数量重新计算
|
||||
for (int i = 0; i < waresDetailExt.getWaresQuantity(); i++) {
|
||||
// 存在商品,盒数累加1
|
||||
boxNum += 1;
|
||||
// 按盒数计算当前商品实际支付金额
|
||||
BigDecimal price = this.getWaresPrice(baseBoxNum + boxNum, gradeList);
|
||||
|
||||
if (null == waresGroupKey || !waresGroupKey.equals(waresDetailExt.getWaresCode() + "-" + price)) {
|
||||
// 第一盒 或者 商品 + 价格有变化,累计商品数量
|
||||
waresGroupKey = waresDetailExt.getWaresCode() + "-" + price;
|
||||
waresQuantity = 1;
|
||||
|
||||
orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt);
|
||||
orderItems.setPrice(price);
|
||||
} else {
|
||||
waresQuantity += 1;
|
||||
}
|
||||
orderItems.setWaresQuantity(waresQuantity);
|
||||
orderItems.setQuantity(waresDetailExt.getQuantity() * waresQuantity);
|
||||
}
|
||||
} else {
|
||||
// 非会员专区
|
||||
if (ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()
|
||||
&& memberGrade.getGradeValue() < EGrade.MAKER.getValue()
|
||||
&& boxProductList.contains(waresDetailExt.getWaresCode())
|
||||
&& EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
|
||||
// 复购专区,如果会员等级小于V3,并且为盒数商品,需要计算等级和价格
|
||||
// 2025.02.24 升级专区取消,复购专区指定盒数商品可以升级,需要根据盒数商品重新计算价格
|
||||
for (int i = 0; i < waresDetailExt.getWaresQuantity(); i++) {
|
||||
// 存在商品,盒数累加1
|
||||
boxNum += 1;
|
||||
|
||||
// 产品价格
|
||||
BigDecimal price = this.getWaresPrice(baseBoxNum + boxNum, gradeList);
|
||||
// if (HzsUtil.checkOnlineTime() && !buyFlag) {
|
||||
// // 如果是 2025.03.01 之前,并且没有买过,默认第一盒为209
|
||||
// price = ERetailWaresPrice.FIRST.getPrice();
|
||||
// buyFlag = true;
|
||||
// } else {
|
||||
// // 根据等级盒数计算实际价格
|
||||
// price = this.getWaresPrice(baseBoxNum + boxNum, gradeList);
|
||||
// }
|
||||
|
||||
if (null == waresGroupKey || !waresGroupKey.equals(waresDetailExt.getWaresCode() + "-" + price)) {
|
||||
// 第一盒 或者 商品 + 价格有变化,累计商品数量
|
||||
waresGroupKey = waresDetailExt.getWaresCode() + "-" + price;
|
||||
waresQuantity = 1;
|
||||
|
||||
orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt);
|
||||
orderItems.setPrice(price);
|
||||
} else {
|
||||
waresQuantity += 1;
|
||||
}
|
||||
orderItems.setWaresQuantity(waresQuantity);
|
||||
orderItems.setQuantity(waresDetailExt.getQuantity() * waresQuantity);
|
||||
}
|
||||
} else {
|
||||
if ((ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()
|
||||
|| ESpecialArea.RETAIL_RESCISSION.getValue() == orderParam.getSpecialArea())
|
||||
&& boxProductList.contains(waresDetailExt.getWaresCode())
|
||||
&& EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
|
||||
// 重消也累计盒数
|
||||
boxNum += waresDetailExt.getWaresQuantity();
|
||||
}
|
||||
orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt);
|
||||
// 不是赠品,需要累积包邮邮费
|
||||
if (EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
|
||||
// 包邮金额
|
||||
freePostage = freePostage.add(orderItems.getPrice().multiply(new BigDecimal(orderItems.getQuantity())));
|
||||
if (EYesNo.NO.getIntValue() == waresDetailExt.getIsFreeMail()) {
|
||||
// 不包邮,处理邮费模板map
|
||||
saOrderHandle.setPostageTmpMap(orderParam.getTranType(), postageMap, waresDetailExt, orderItems);
|
||||
}
|
||||
|
||||
// 不包邮 并且 不是赠品,需要累积包邮邮费
|
||||
// 2025.02.12 调整需求,专区包邮金额需要计算包邮商品金额,只有赠品不计算包邮金额
|
||||
// if (EYesNo.NO.getIntValue() == waresDetailExt.getIsFreeMail() && EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
|
||||
if (EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
|
||||
// 包邮金额
|
||||
freePostage = freePostage.add(orderItems.getPrice().multiply(new BigDecimal(orderItems.getQuantity())));
|
||||
if (EYesNo.NO.getIntValue() == waresDetailExt.getIsFreeMail()) {
|
||||
// 不包邮,处理邮费模板map
|
||||
saOrderHandle.setPostageTmpMap(orderParam.getTranType(), postageMap, waresDetailExt, orderItems);
|
||||
}
|
||||
if (null != productMap.get(orderItems.getPkProduct())
|
||||
&& boxProductList.contains(productMap.get(orderItems.getPkProduct()).getProductCode())) {
|
||||
// 产品是盒数产品,需要累计数量
|
||||
boxNum += orderItems.getQuantity();
|
||||
}
|
||||
}
|
||||
|
||||
// if (ESpecialArea.RETAIL_REGISTER.getValue() == orderParam.getSpecialArea()
|
||||
// && boxProductList.contains(waresDetailExt.getWaresCode())
|
||||
// && EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
|
||||
// // 会员专区(注册) 并且 指定的商品不为赠品,需要根据盒数重新计算价格
|
||||
// // 指定盒数商品,价格需要按等级和购买数量重新计算
|
||||
// for (int i = 0; i < waresDetailExt.getWaresQuantity(); i++) {
|
||||
// // 存在商品,盒数累加1
|
||||
// boxNum += 1;
|
||||
// // 按盒数计算当前商品实际支付金额
|
||||
// BigDecimal price = this.getWaresPrice(baseBoxNum + boxNum, gradeList);
|
||||
//
|
||||
// if (null == waresGroupKey || !waresGroupKey.equals(waresDetailExt.getWaresCode() + "-" + price)) {
|
||||
// // 第一盒 或者 商品 + 价格有变化,累计商品数量
|
||||
// waresGroupKey = waresDetailExt.getWaresCode() + "-" + price;
|
||||
// waresQuantity = 1;
|
||||
//
|
||||
// orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt);
|
||||
// orderItems.setPrice(price);
|
||||
// } else {
|
||||
// waresQuantity += 1;
|
||||
// }
|
||||
// orderItems.setWaresQuantity(waresQuantity);
|
||||
// orderItems.setQuantity(waresDetailExt.getQuantity() * waresQuantity);
|
||||
// }
|
||||
// } else {
|
||||
// // 非会员专区
|
||||
// if (ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()
|
||||
// && memberGrade.getGradeValue() < EGrade.MAKER.getValue()
|
||||
// && boxProductList.contains(waresDetailExt.getWaresCode())
|
||||
// && EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
|
||||
// // 复购专区,如果会员等级小于V3,并且为盒数商品,需要计算等级和价格
|
||||
// // 2025.02.24 升级专区取消,复购专区指定盒数商品可以升级,需要根据盒数商品重新计算价格
|
||||
// for (int i = 0; i < waresDetailExt.getWaresQuantity(); i++) {
|
||||
// // 存在商品,盒数累加1
|
||||
// boxNum += 1;
|
||||
//
|
||||
// // 产品价格
|
||||
// BigDecimal price = this.getWaresPrice(baseBoxNum + boxNum, gradeList);
|
||||
//
|
||||
// if (null == waresGroupKey || !waresGroupKey.equals(waresDetailExt.getWaresCode() + "-" + price)) {
|
||||
// // 第一盒 或者 商品 + 价格有变化,累计商品数量
|
||||
// waresGroupKey = waresDetailExt.getWaresCode() + "-" + price;
|
||||
// waresQuantity = 1;
|
||||
//
|
||||
// orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt);
|
||||
// orderItems.setPrice(price);
|
||||
// } else {
|
||||
// waresQuantity += 1;
|
||||
// }
|
||||
// orderItems.setWaresQuantity(waresQuantity);
|
||||
// orderItems.setQuantity(waresDetailExt.getQuantity() * waresQuantity);
|
||||
// }
|
||||
// } else {
|
||||
// if ((ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()
|
||||
// || ESpecialArea.RETAIL_RESCISSION.getValue() == orderParam.getSpecialArea())
|
||||
// && boxProductList.contains(waresDetailExt.getWaresCode())
|
||||
// && EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
|
||||
// // 重消也累计盒数
|
||||
// boxNum += waresDetailExt.getWaresQuantity();
|
||||
// }
|
||||
// orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt);
|
||||
// }
|
||||
//
|
||||
// // 不包邮 并且 不是赠品,需要累积包邮邮费
|
||||
// if (EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
|
||||
// // 包邮金额
|
||||
// freePostage = freePostage.add(orderItems.getPrice().multiply(new BigDecimal(orderItems.getQuantity())));
|
||||
// if (EYesNo.NO.getIntValue() == waresDetailExt.getIsFreeMail()) {
|
||||
// // 不包邮,处理邮费模板map
|
||||
// saOrderHandle.setPostageTmpMap(orderParam.getTranType(), postageMap, waresDetailExt, orderItems);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
// 计算订单邮费
|
||||
|
@ -499,12 +499,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
// 去掉升级条件带有累计盒数的(V4,V5)并且升级购买合数小于等于订单商品盒数的,再进行等级值倒序排序
|
||||
gradeList = gradeList.stream().filter(tmpGrade -> tmpGrade.getBoxTotal() == 0 && tmpGrade.getBoxNumber() <= boxNum).sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed()).collect(Collectors.toList());
|
||||
|
||||
// // 2025.02.21 添加需求,在 2025.03.01 前,第一盒还是按209走,之后恢复正常
|
||||
// // 2024.12.30 添加需求,购买第一盒直接给209元
|
||||
// if (HzsUtil.checkOnlineTime() && boxNum == ERetailWaresPrice.FIRST.getValue()) {
|
||||
// return ERetailWaresPrice.FIRST.getPrice();
|
||||
// }
|
||||
|
||||
for (BdGrade bdGrade : gradeList) {
|
||||
if (boxNum > bdGrade.getBoxNumber()) {
|
||||
// 盒数大于等于购买盒数
|
||||
|
@ -922,19 +916,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
}
|
||||
}
|
||||
|
||||
/***
|
||||
* 处理测试数据
|
||||
* @param pkMember 下单人
|
||||
* @param saOrderExt 订单信息
|
||||
*/
|
||||
private void testHandle(Long pkMember, SaOrderExt saOrderExt) {
|
||||
if (EEnv.TEST.getValue().equals(HzsConfig.getEnv())
|
||||
&& pkMember.equals(615831L)) {
|
||||
// 测试环境,指定会员,下单时金额处理
|
||||
saOrderExt.setOrderAmount(RandomUtil.randomBigDecimal(new BigDecimal("0.02"), new BigDecimal("0.1")).setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public Long savePickOrder(SaOrder saOrder, List<SaOrderItems> saOrderItemsList) {
|
||||
|
@ -979,31 +960,39 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
*/
|
||||
private Boolean handleMemberActivate(CuMember cuMember, SaOrderExt saOrder) {
|
||||
if (null == cuMember.getIsActivate()) {
|
||||
// 会员激活状态为空,按未激活处理
|
||||
cuMember.setIsActivate(EYesNo.NO.getIntValue());
|
||||
}
|
||||
// // 会员激活状态为空,按未激活处理
|
||||
// cuMember.setIsActivate(EYesNo.NO.getIntValue());
|
||||
|
||||
if (EYesNo.YES.getIntValue() != cuMember.getIsActivate()
|
||||
&& (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()
|
||||
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()
|
||||
|| EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType())
|
||||
) {
|
||||
// 会员未激活,并且是 注册、升级、复购 订单,判断会员是否激活
|
||||
List<String> boxProductList = BoxProductUtil.getBoxProductListBySystemType(saOrder.getSystemType());
|
||||
|
||||
for (SaOrderItems saOrderItems : saOrder.getOrderItemsList()) {
|
||||
if (boxProductList.contains(saOrderItems.getWareCode())) {
|
||||
// 存在指定盒数商品
|
||||
cuMember.setIsActivate(EYesNo.YES.getIntValue());
|
||||
if (EPayStatus.UNPAID.getValue() == cuMember.getPayStatus()) {
|
||||
cuMember.setPayTime(saOrder.getPayTime());
|
||||
cuMember.setPayStatus(EPayStatus.PAID.getValue());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
// TODO new 暂时不处理激活,只要是会员就按激活处理,有订单就有支付状态和时间
|
||||
cuMember.setIsActivate(EYesNo.YES.getIntValue());
|
||||
if (null != saOrder) {
|
||||
cuMember.setPayTime(saOrder.getPayTime());
|
||||
cuMember.setPayStatus(EPayStatus.PAID.getValue());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return true;
|
||||
|
||||
// if (EYesNo.YES.getIntValue() != cuMember.getIsActivate()
|
||||
// && (EOrderType.RETAIL_REGISTER.getValue() == saOrder.getOrderType()
|
||||
// || EOrderType.RETAIL_UPGRADE.getValue() == saOrder.getOrderType()
|
||||
// || EOrderType.RETAIL_REPURCHASE.getValue() == saOrder.getOrderType())
|
||||
// ) {
|
||||
// // 会员未激活,并且是 注册、升级、复购 订单,判断会员是否激活
|
||||
// List<String> boxProductList = BoxProductUtil.getBoxProductListBySystemType(saOrder.getSystemType());
|
||||
//
|
||||
// for (SaOrderItems saOrderItems : saOrder.getOrderItemsList()) {
|
||||
// if (boxProductList.contains(saOrderItems.getWareCode())) {
|
||||
// // 存在指定盒数商品
|
||||
// cuMember.setIsActivate(EYesNo.YES.getIntValue());
|
||||
// if (EPayStatus.UNPAID.getValue() == cuMember.getPayStatus()) {
|
||||
// cuMember.setPayTime(saOrder.getPayTime());
|
||||
// cuMember.setPayStatus(EPayStatus.PAID.getValue());
|
||||
// }
|
||||
// return true;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -10,11 +10,7 @@ import java.io.Serializable;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 新零售订单等级入参
|
||||
* @Author: jiang chao
|
||||
* @Time: 2024/12/12 17:22
|
||||
* @Classname: RetailerOrderLevelParam
|
||||
* @PackageName: com.hzs.retail.sale.param
|
||||
* 新零售订单等级入参
|
||||
*/
|
||||
@Data
|
||||
public class RetailOrderLevelParam implements Serializable {
|
||||
|
@ -31,11 +27,11 @@ public class RetailOrderLevelParam implements Serializable {
|
|||
@NotNull(message = "缺少商品信息")
|
||||
private List<ShoppingCartRedis> shopList;
|
||||
|
||||
/**
|
||||
* 首次校验(0=首次校验)
|
||||
*/
|
||||
@NotNull(message = "缺少参数")
|
||||
private Integer firstCheck;
|
||||
// /**
|
||||
// * 首次校验(0=首次校验)
|
||||
// */
|
||||
// @NotNull(message = "缺少参数")
|
||||
// private Integer firstCheck;
|
||||
|
||||
/**
|
||||
* 升级编号
|
||||
|
|
|
@ -21,11 +21,7 @@ import java.math.BigDecimal;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 新零售订单入参
|
||||
* @Author: jiang chao
|
||||
* @Time: 2024/12/12 10:03
|
||||
* @Classname: RetailOrderParam
|
||||
* @PackageName: com.hzs.retail.sale.param
|
||||
* 新零售订单入参
|
||||
*/
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
|
|
|
@ -22,7 +22,6 @@ import com.hzs.common.domain.sale.wares.BdWaresLabel;
|
|||
import com.hzs.common.domain.sale.wares.BdWaresRange;
|
||||
import com.hzs.common.domain.sale.wares.BdWaresSpecsSku;
|
||||
import com.hzs.common.domain.system.config.BdLabel;
|
||||
import com.hzs.common.domain.system.config.BdRetailRange;
|
||||
import com.hzs.common.domain.system.ext.BdLabelExt;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.member.base.IMemberServiceApi;
|
||||
|
@ -37,7 +36,6 @@ import com.hzs.sale.wares.service.IBdWaresSpecsSkuService;
|
|||
import com.hzs.system.base.ICurrencyServiceApi;
|
||||
import com.hzs.system.base.dto.CurrencyDTO;
|
||||
import com.hzs.system.config.IAreaCurrencyServiceApi;
|
||||
import com.hzs.system.config.IRetailRangeServiceApi;
|
||||
import com.hzs.system.config.dto.AreaCurrencyDTO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
|
@ -53,11 +51,7 @@ import java.util.*;
|
|||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description: 商品相关控制器
|
||||
* @Author: jiang chao
|
||||
* @Time: 2024/12/9 14:24
|
||||
* @Classname: ApiWaresController
|
||||
* @PackageName: com.hzs.retail.wares.controller.api
|
||||
* 商品相关控制器
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/retail-wares")
|
||||
|
@ -79,8 +73,6 @@ public class ApiRetailWaresController extends BaseController {
|
|||
IAreaCurrencyServiceApi iAreaCurrencyServiceApi;
|
||||
@DubboReference
|
||||
IMemberServiceApi iMemberServiceApi;
|
||||
@DubboReference
|
||||
IRetailRangeServiceApi iRetailRangeServiceApi;
|
||||
|
||||
/**
|
||||
* 商品列表
|
||||
|
@ -207,17 +199,11 @@ public class ApiRetailWaresController extends BaseController {
|
|||
List<BdWaresRange> waresRangeList = new ArrayList<>();
|
||||
if (ESpecialArea.RETAIL_REPURCHASE.getValue() == specialArea
|
||||
|| ESpecialArea.RETAIL_RESCISSION.getValue() == specialArea) {
|
||||
// 新零售复购专区,需要处理级差
|
||||
// 2024.12.30 添加需求,复消也需要处理级差
|
||||
// 复购、复消需要处理级差
|
||||
if (waresIdList.size() > 0) {
|
||||
waresRangeList = iBdWaresRangeService.listRetailWaresRange(pkGrade, waresIdList);
|
||||
}
|
||||
}
|
||||
// 专区级差
|
||||
BdRetailRange retailRange = new BdRetailRange();
|
||||
if (ESpecialArea.RETAIL_SHOP_ORDER.getValue() == specialArea) {
|
||||
|
||||
}
|
||||
|
||||
for (BdWaresExt bdWaresExt : bdWaresExtList) {
|
||||
if (null != list) {
|
||||
|
@ -261,8 +247,7 @@ public class ApiRetailWaresController extends BaseController {
|
|||
|
||||
if (ESpecialArea.RETAIL_REPURCHASE.getValue() == specialArea
|
||||
|| ESpecialArea.RETAIL_RESCISSION.getValue() == specialArea) {
|
||||
// 新零售复购需要处理极差
|
||||
// 2024.12.30 添加需求,复消也需要处理级差
|
||||
// 复购、复消需要处理级差
|
||||
for (BdWaresRange waresRange : waresRangeList) {
|
||||
if (bdWaresExt.getPkId().equals(waresRange.getPkWares())) {
|
||||
waresPrice = waresPrice.add(waresRange.getPrice());
|
||||
|
|
|
@ -6,11 +6,7 @@ import javax.validation.constraints.NotNull;
|
|||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description: 新零售商品查询入参
|
||||
* @Author: jiang chao
|
||||
* @Time: 2024/12/9 14:29
|
||||
* @Classname: WaresParams
|
||||
* @PackageName: com.hzs.retail.wares.param
|
||||
* 新零售商品查询入参
|
||||
*/
|
||||
@Data
|
||||
public class RetailWaresParam implements Serializable {
|
||||
|
|
|
@ -215,23 +215,25 @@ public class SaDeliverController extends BaseController {
|
|||
public AjaxResult batchDeliverImport(MultipartFile file, @RequestParam("idList") List<Long> idList) throws Exception {
|
||||
ExcelUtil<DeliverTemplateParam> util = new ExcelUtil<>(DeliverTemplateParam.class);
|
||||
List<DeliverTemplateParam> deliverTemplateParamList = util.importExcel(file.getInputStream());
|
||||
Map<String, DeliverTemplateParam> templateParamMap = deliverTemplateParamList.stream().collect(Collectors.toMap(DeliverTemplateParam::getDeliverCode, val -> val));
|
||||
|
||||
// 返回数据
|
||||
List<DeliverTemplateVO> resultList = new ArrayList<>(idList.size());
|
||||
|
||||
// 查询发货单信息
|
||||
List<SaDeliver> saDeliverList = iSaDeliverService.listDataBatch(idList);
|
||||
List<SaDeliver> saDeliverList = iSaDeliverService.listByIds(idList);
|
||||
|
||||
for (SaDeliver saDeliver : saDeliverList) {
|
||||
DeliverTemplateParam deliverTemplate = templateParamMap.get(saDeliver.getDeliverCode());
|
||||
if (null != deliverTemplate) {
|
||||
// 发货单号相同 ,则进行返回
|
||||
resultList.add(DeliverTemplateVO.builder()
|
||||
.pkId(saDeliver.getPkId())
|
||||
.logisticsCompany(deliverTemplate.getLogisticsCompany().trim())
|
||||
.logisticsCode(deliverTemplate.getLogisticsCode().trim())
|
||||
.build());
|
||||
// 遍历导入数据,匹配发货单发货数据,如果相同则封装返回发货信息
|
||||
for (DeliverTemplateParam deliverTemplate : deliverTemplateParamList) {
|
||||
if (saDeliver.getDeliverCode().equals(deliverTemplate.getDeliverCode())) {
|
||||
// 物流单号相同,进行返回
|
||||
resultList.add(DeliverTemplateVO.builder()
|
||||
.pkId(saDeliver.getPkId())
|
||||
.logisticsCompany(deliverTemplate.getLogisticsCompany().trim())
|
||||
.logisticsCode(deliverTemplate.getLogisticsCode().trim())
|
||||
.build());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return AjaxResult.success(resultList);
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.hzs.sale.deliver.controller.manage;
|
|||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.DesensitizedUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.hzs.common.core.annotation.AccessPermissions;
|
||||
import com.hzs.common.core.annotation.Log;
|
||||
import com.hzs.common.core.annotation.RepeatSubmitSimple;
|
||||
|
@ -18,6 +19,7 @@ import com.hzs.common.core.web.controller.BaseController;
|
|||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
import com.hzs.common.domain.sale.deliver.SaDeliver;
|
||||
import com.hzs.common.domain.sale.deliver.SaDeliverBarCode;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.common.service.ITransactionCommonService;
|
||||
import com.hzs.common.util.TransactionUtils;
|
||||
|
@ -43,11 +45,7 @@ import java.util.*;
|
|||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description: 发货清单已合单控制器
|
||||
* @Author: jiang chao
|
||||
* @Time: 2022/10/19 16:43
|
||||
* @Classname: SaDeliverController
|
||||
* @PackageName: com.hzs.sale.order.controller.manager
|
||||
* 发货清单已合单控制器
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/manage/deliver-handled")
|
||||
|
@ -162,6 +160,74 @@ public class SaDeliverHandledController extends BaseController {
|
|||
util.exportExcel(response, resultList, "发货清单已合单导出");
|
||||
}
|
||||
|
||||
/**
|
||||
* 仓储导出
|
||||
*
|
||||
* @param response
|
||||
* @param param
|
||||
*/
|
||||
@PostMapping("/wms-export")
|
||||
public void wmsExport(HttpServletResponse response, DeliverHandledParam param) {
|
||||
DateUtils.handTimeStartAndEnd(param.getCreationTime());
|
||||
DateUtils.handTimeStartAndEnd(param.getPayTime());
|
||||
|
||||
// 国家ID
|
||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
|
||||
List<DeliverWmsVO> voList = new ArrayList<>();
|
||||
|
||||
// 获取管理员权限(角色地区范围、体系列表、团队列表)
|
||||
UserAuthorityDTO userAuthorityDTO = iUserServiceApi.getUserAuthority(SecurityUtils.getUserId()).getData();
|
||||
param.setAreaScopeList(userAuthorityDTO.getRoleAreaScopeList());
|
||||
param.setVertexIdList(userAuthorityDTO.getVertexIdList());
|
||||
param.setTeamList(userAuthorityDTO.getUserTeamList());
|
||||
|
||||
List<DeliverHandledVO> resultList = iSaDeliverService.queryDeliverHandledList(param, pkCountry);
|
||||
|
||||
// 当查询有数据才进行处理
|
||||
if (resultList.size() > 0) {
|
||||
// 获取行政区划map
|
||||
Map<Integer, String> areaMap = iAreaServiceApi.getAreaMap(pkCountry).getData();
|
||||
|
||||
String deliverCode = "";
|
||||
DeliverWmsVO vo = null;
|
||||
// 合并 key: 发货单号 + 仓储编号 + 规格,一样的累计数量
|
||||
String key = null;
|
||||
for (DeliverHandledVO deliverHandled : resultList) {
|
||||
if (null == key || !key.equals(deliverHandled.getDeliverCode() + "-" + deliverHandled.getWmsCode() + "-" + deliverHandled.getSpecsName())) {
|
||||
// key: 发货单号 + 仓储编号 + 规格,一样的累计数量
|
||||
key = deliverHandled.getDeliverCode() + "-" + deliverHandled.getWmsCode() + "-" + deliverHandled.getSpecsName();
|
||||
|
||||
vo = DeliverWmsVO.builder()
|
||||
.wmsCode(deliverHandled.getWmsCode())
|
||||
.productName(deliverHandled.getProductName())
|
||||
.specsName(deliverHandled.getSpecsName())
|
||||
.quantity(deliverHandled.getQuantity())
|
||||
.price(BigDecimal.ZERO)
|
||||
.build();
|
||||
if (!deliverCode.equals(deliverHandled.getDeliverCode())) {
|
||||
deliverCode = deliverHandled.getDeliverCode();
|
||||
vo.setDeliverCode(deliverHandled.getDeliverCode());
|
||||
vo.setRecName(deliverHandled.getRecName());
|
||||
vo.setRecPhone(deliverHandled.getRecPhone());
|
||||
|
||||
// 省市区处理
|
||||
OrderUtil.handleOrderAddress(areaMap, deliverHandled);
|
||||
String address = deliverHandled.getRecProvinceVal()
|
||||
+ (StringUtils.isNotEmpty(deliverHandled.getRecCityVal()) ? deliverHandled.getRecCityVal() : "")
|
||||
+ (StringUtils.isNotEmpty(deliverHandled.getRecCountyVal()) ? deliverHandled.getRecCountyVal() : "")
|
||||
+ deliverHandled.getRecAddress();
|
||||
vo.setRecAddress(address);
|
||||
}
|
||||
voList.add(vo);
|
||||
} else {
|
||||
vo.setQuantity(vo.getQuantity() + deliverHandled.getQuantity());
|
||||
}
|
||||
}
|
||||
}
|
||||
ExcelUtil<DeliverWmsVO> util = new ExcelUtil<>(DeliverWmsVO.class);
|
||||
util.exportExcel(response, voList, "发货清单已合单导出");
|
||||
}
|
||||
|
||||
/**
|
||||
* 打印货单
|
||||
|
|
|
@ -4,48 +4,45 @@ import com.hzs.common.core.annotation.Excel;
|
|||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Description: 导入发货数据参数
|
||||
* @Author: jiang chao
|
||||
* @Time: 2022/10/31 10:00
|
||||
* @Classname: BatchDeliverVO
|
||||
* @PackageName: com.hzs.sale.deliver.vo
|
||||
* 导入发货数据参数
|
||||
*/
|
||||
@Data
|
||||
public class DeliverTemplateParam {
|
||||
|
||||
/**
|
||||
* 收货姓名
|
||||
*/
|
||||
@Excel(name = "收货姓名")
|
||||
private String recName;
|
||||
// /**
|
||||
// * 收货姓名
|
||||
// */
|
||||
// @Excel(name = "收货姓名")
|
||||
// private String recName;
|
||||
//
|
||||
// /**
|
||||
// * 收货电话
|
||||
// */
|
||||
// @Excel(name = "收货电话")
|
||||
// private String recPhone;
|
||||
//
|
||||
// /**
|
||||
// * 收货地址
|
||||
// */
|
||||
// @Excel(name = "收货地址")
|
||||
// private String recAddress;
|
||||
|
||||
/**
|
||||
* 收货电话
|
||||
*/
|
||||
@Excel(name = "收货电话")
|
||||
private String recPhone;
|
||||
|
||||
/**
|
||||
* 收货地址
|
||||
*/
|
||||
@Excel(name = "收货地址")
|
||||
private String recAddress;
|
||||
|
||||
/**
|
||||
* 发货单号
|
||||
*/
|
||||
@Excel(name = "发货单号")
|
||||
@Excel(name = "订单号")
|
||||
private String deliverCode;
|
||||
|
||||
/**
|
||||
* 物流公司
|
||||
*/
|
||||
@Excel(name = "物流公司")
|
||||
@Excel(name = "快递公司")
|
||||
private String logisticsCompany;
|
||||
/**
|
||||
* 物流单号
|
||||
*/
|
||||
@Excel(name = "物流单号")
|
||||
@Excel(name = "快递单号")
|
||||
private String logisticsCode;
|
||||
|
||||
}
|
||||
|
|
|
@ -10,11 +10,7 @@ import lombok.Data;
|
|||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description: 发货单已合并列表VO
|
||||
* @Author: jiang chao
|
||||
* @Time: 2022/11/5 15:51
|
||||
* @Classname: DeliverHandledVO
|
||||
* @PackageName: com.hzs.sale.deliver.vo
|
||||
* 发货单已合并列表VO
|
||||
*/
|
||||
@Data
|
||||
public class DeliverHandledVO {
|
||||
|
@ -68,7 +64,7 @@ public class DeliverHandledVO {
|
|||
* 订单类型显示
|
||||
*/
|
||||
@Excel(name = "订单类型")
|
||||
private String orderTypeVal;
|
||||
private String orderTypeVal;
|
||||
|
||||
/**
|
||||
* 订单状态(EOrderStatus)
|
||||
|
@ -102,6 +98,13 @@ public class DeliverHandledVO {
|
|||
*/
|
||||
@Excel(name = "产品编号")
|
||||
private String productCode;
|
||||
|
||||
/**
|
||||
* 产品编号
|
||||
*/
|
||||
@Excel(name = "仓储编号")
|
||||
private String wmsCode;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
|
|
|
@ -11,11 +11,7 @@ import java.math.BigDecimal;
|
|||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description: 发货单未合并列表VO
|
||||
* @Author: jiang chao
|
||||
* @Time: 2022/11/4 11:29
|
||||
* @Classname: DeliverUnhandledVO
|
||||
* @PackageName: com.hzs.sale.deliver.vo
|
||||
* 发货单未合并列表VO
|
||||
*/
|
||||
@Data
|
||||
public class DeliverUnhandledVO {
|
||||
|
|
|
@ -0,0 +1,106 @@
|
|||
package com.hzs.sale.deliver.vo;
|
||||
|
||||
import com.hzs.common.core.annotation.Excel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 发货单WMS导出VO
|
||||
*/
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class DeliverWmsVO implements Serializable {
|
||||
|
||||
@Excel(name = "<必填>订单号")
|
||||
private String deliverCode;
|
||||
|
||||
@Excel(name = "下单时间")
|
||||
private String createTime;
|
||||
@Excel(name = "付款时间")
|
||||
private String payTime;
|
||||
|
||||
@Excel(name = "交易类型")
|
||||
private String payType;
|
||||
@Excel(name = "业务员")
|
||||
private String peopleName;
|
||||
@Excel(name = "备注")
|
||||
private String orderRemark;
|
||||
@Excel(name = "买家留言")
|
||||
private String buyRemark;
|
||||
@Excel(name = "系统备注")
|
||||
private String sysRemark;
|
||||
@Excel(name = "仓库")
|
||||
private String storeName;
|
||||
@Excel(name = "总金额")
|
||||
private BigDecimal totalAmount;
|
||||
@Excel(name = "运费")
|
||||
private String postAmount;
|
||||
@Excel(name = "实付总额")
|
||||
private String realTotalAmount;
|
||||
@Excel(name = "本次收款")
|
||||
private String receiveAmount;
|
||||
@Excel(name = "结算账户")
|
||||
private String settleAccount;
|
||||
|
||||
@Excel(name = "<必填>收货人姓名")
|
||||
private String recName;
|
||||
|
||||
@Excel(name = "手机")
|
||||
private String recPhone;
|
||||
|
||||
@Excel(name = "固话")
|
||||
private String fixedPhone;
|
||||
|
||||
@Excel(name = "<必填>地址")
|
||||
private String recAddress;
|
||||
|
||||
@Excel(name = "邮编")
|
||||
private String postal;
|
||||
|
||||
@Excel(name = "电子邮箱")
|
||||
private String email;
|
||||
|
||||
@Excel(name = "<必填>商品编码")
|
||||
private String wmsCode;
|
||||
|
||||
@Excel(name = "产品名称")
|
||||
private String productName;
|
||||
|
||||
@Excel(name = "规格名称")
|
||||
private String specsName;
|
||||
|
||||
@Excel(name = "<必填>数量")
|
||||
private Integer quantity;
|
||||
|
||||
@Excel(name = "单价")
|
||||
private BigDecimal price;
|
||||
|
||||
@Excel(name = "实付")
|
||||
private BigDecimal realPay;
|
||||
|
||||
@Excel(name = "配送方式")
|
||||
private String delivery;
|
||||
|
||||
@Excel(name = "明细备注")
|
||||
private String remark;
|
||||
|
||||
@Excel(name = "批次号")
|
||||
private String batchNo;
|
||||
|
||||
@Excel(name = "生产日期")
|
||||
private String produceDate;
|
||||
|
||||
@Excel(name = "过期日期")
|
||||
private String expireDate;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -66,11 +66,7 @@ import java.util.*;
|
|||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description: 订单业务办理
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/1/31 10:31
|
||||
* @Classname: OrderBusinessController
|
||||
* @PackageName: com.hzs.sale.order.controller.manager
|
||||
* 订单业务办理
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
|
|
|
@ -8,11 +8,7 @@ import lombok.NoArgsConstructor;
|
|||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description: 商品明细参数
|
||||
* @Author: sui q
|
||||
* @Time: 2022/9/15 17:00
|
||||
* @Classname: WaresItemsParam
|
||||
* @PackageName: com.hzs.sale.order.param
|
||||
* 商品明细参数
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
|
@ -26,7 +22,7 @@ public class WaresItemsParam implements Serializable {
|
|||
private Integer pkWaresSpecsSku;
|
||||
|
||||
/**
|
||||
* 商品数量
|
||||
* 产品数量
|
||||
*/
|
||||
private Integer quantity;
|
||||
|
||||
|
@ -35,4 +31,9 @@ public class WaresItemsParam implements Serializable {
|
|||
*/
|
||||
private Integer pkProduct;
|
||||
|
||||
/**
|
||||
* 产品编号
|
||||
*/
|
||||
private String productCode;
|
||||
|
||||
}
|
||||
|
|
|
@ -772,14 +772,12 @@ public class SaOrderHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* orderType 1 = 注册,注册不用找累计 2 升级需要
|
||||
*
|
||||
* @param specialArea 专区
|
||||
* @param settleOrderAmount 订单金额
|
||||
* @param settleOrderPv 订单业绩
|
||||
* @param pkCountry 国家
|
||||
* @Description: orderType 1 = 注册,注册不用找累计 2 升级需要
|
||||
* @return: List<String>
|
||||
* @Author: sui q
|
||||
* @Date: 2022/2/17 11:27
|
||||
*/
|
||||
GradeDTO getMemberGradeAndAwardByCountry(CuMember cuMember, Integer specialArea, BigDecimal settleOrderAmount,
|
||||
BigDecimal settleOrderPv, Integer pkCountry, String upgradeWay) {
|
||||
|
|
|
@ -76,13 +76,6 @@ public class SaOrderItemsServiceImpl extends ServiceImpl<SaOrderItemsMapper, SaO
|
|||
return baseMapper.queryListByOrderId(orderIdList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 根据订单ID查询订单商品明细列表
|
||||
* @author: zhang jing
|
||||
* @date: 2023/5/29 15:39
|
||||
* @param: [orderIdList, tOrderIdList]
|
||||
* @return: java.util.List<com.hzs.common.domain.sale.ext.SaOrderItemsExt>
|
||||
**/
|
||||
@Override
|
||||
public List<WaresOrderVo> waresListByOrderId(List<Long> orderIdList) {
|
||||
return baseMapper.waresListByOrderId(orderIdList);
|
||||
|
@ -98,12 +91,6 @@ public class SaOrderItemsServiceImpl extends ServiceImpl<SaOrderItemsMapper, SaO
|
|||
return baseMapper.queryListByItemId(itemIdList, statusList, pkCountry);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询商品订单
|
||||
*
|
||||
* @param waresOrderParam
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<WaresOrderVo> selectByInvestmentList(WaresOrderParam waresOrderParam) {
|
||||
return baseMapper.selectByInvestmentList(waresOrderParam);
|
||||
|
|
|
@ -63,6 +63,7 @@ import com.hzs.sale.order.param.*;
|
|||
import com.hzs.sale.order.service.*;
|
||||
import com.hzs.sale.order.vo.*;
|
||||
import com.hzs.sale.product.service.IBdProductExtendService;
|
||||
import com.hzs.sale.product.service.IBdProductService;
|
||||
import com.hzs.sale.wares.service.*;
|
||||
import com.hzs.scm.pub.IScmBillServiceApi;
|
||||
import com.hzs.system.base.IAreaServiceApi;
|
||||
|
@ -150,7 +151,9 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
@Autowired
|
||||
private UserTokenService userTokenService;
|
||||
@Autowired
|
||||
private IBdProductExtendService productExtendService;
|
||||
private IBdProductService iBdProductService;
|
||||
@Autowired
|
||||
private IBdProductExtendService iBdProductExtendService;
|
||||
@Autowired
|
||||
private RabbitTemplate rabbitTemplate;
|
||||
@Autowired
|
||||
|
@ -1307,7 +1310,7 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
for (SaOrderItems orderItem : orderItems) {
|
||||
orderItem.setPkOrder(saOrder.getPkId());
|
||||
BdWares wares = waresService.getWares(orderItem.getPkWares());
|
||||
BdProductExtendExt productExtend = productExtendService.queryExtendAndProduct(orderItem.getPkProduct());
|
||||
BdProductExtendExt productExtend = iBdProductExtendService.queryExtendAndProduct(orderItem.getPkProduct());
|
||||
orderItem.setPkWares(wares.getPkId());
|
||||
orderItem.setPrice(wares.getWaresPrice().multiply(new BigDecimal(orderItem.getQuantity())));
|
||||
orderItem.setPkRate(currency.getData().getPkId());
|
||||
|
@ -2534,11 +2537,12 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
// 存在手动升级
|
||||
cuMember.setPkSettleGrade(cuMemberLevel.getNewLevel());
|
||||
}
|
||||
} else {
|
||||
// 累计升级制,传的订单是当前撤的订单
|
||||
GradeDTO gradeDTO = calculateRetailCancelGrade(cuMember, saOrderExt);
|
||||
cuMember.setPkSettleGrade(gradeDTO.getPkId());
|
||||
}
|
||||
// else {
|
||||
// // 累计升级制,传的订单是当前撤的订单
|
||||
// GradeDTO gradeDTO = calculateRetailCancelGrade(cuMember, saOrderExt);
|
||||
// cuMember.setPkSettleGrade(gradeDTO.getPkId());
|
||||
// }
|
||||
|
||||
Date firstDate = baseMapper.getFirstPayTime(cuMember.getPkId());
|
||||
if (null == firstDate) {
|
||||
|
@ -2560,33 +2564,34 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue());
|
||||
}
|
||||
|
||||
// 如果复购订单后面还有升级订单,不需要处理等级问题; 复购订单后面没有升级订单,走新逻辑校验
|
||||
if (this.count(Wrappers.<SaOrder>lambdaQuery()
|
||||
.eq(SaOrder::getPkMember, saOrderExt.getPkMember())
|
||||
.eq(SaOrder::getOrderType, EOrderType.RETAIL_UPGRADE.getValue())
|
||||
.ge(SaOrder::getPayTime, saOrderExt.getPayTime())
|
||||
.eq(SaOrder::getOrderStatus, EPayStatus.PAID.getValue())
|
||||
) == 0) {
|
||||
// 带有盒数商品的订单,需要校验等级
|
||||
List<BdGrade> gradeList = iGradeServiceApi.getRetailGradeList().getData();
|
||||
// 当前会员等级
|
||||
BdGrade memberGrade = this.getGrade(cuMember.getPkSettleGrade(), gradeList);
|
||||
|
||||
// 需要添加的升级记录列表
|
||||
List<CuMemberLevel> createLevelList = new ArrayList<>();
|
||||
// 需要删除的升级记录列表
|
||||
List<CuMemberLevel> deleteLevelList = new ArrayList<>();
|
||||
// 新等级计算
|
||||
BdGrade newGrade = this.handleNewGrade(cuMember, memberGrade, gradeList, saOrderExt, createLevelList, deleteLevelList);
|
||||
|
||||
if (memberGrade.getGradeValue() < EGrade.VIP.getValue() && newGrade.getGradeValue() < memberGrade.getGradeValue()) {
|
||||
// 当前会员等级不是V4或者V5 并且 新等级小于当前等级需要进行处理
|
||||
saOrderExt.setNewGrade(newGrade);
|
||||
saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue());
|
||||
}
|
||||
saOrderExt.setCreateLevelList(createLevelList);
|
||||
saOrderExt.setDeleteLevelList(deleteLevelList);
|
||||
}
|
||||
// TODO new 恢复升级专区,复购专区不需要处理等级问题
|
||||
// // 如果复购订单后面还有升级订单,不需要处理等级问题; 复购订单后面没有升级订单,走新逻辑校验
|
||||
// if (this.count(Wrappers.<SaOrder>lambdaQuery()
|
||||
// .eq(SaOrder::getPkMember, saOrderExt.getPkMember())
|
||||
// .eq(SaOrder::getOrderType, EOrderType.RETAIL_UPGRADE.getValue())
|
||||
// .ge(SaOrder::getPayTime, saOrderExt.getPayTime())
|
||||
// .eq(SaOrder::getOrderStatus, EPayStatus.PAID.getValue())
|
||||
// ) == 0) {
|
||||
// // 带有盒数商品的订单,需要校验等级
|
||||
// List<BdGrade> gradeList = iGradeServiceApi.getRetailGradeList().getData();
|
||||
// // 当前会员等级
|
||||
// BdGrade memberGrade = this.getGrade(cuMember.getPkSettleGrade(), gradeList);
|
||||
//
|
||||
// // 需要添加的升级记录列表
|
||||
// List<CuMemberLevel> createLevelList = new ArrayList<>();
|
||||
// // 需要删除的升级记录列表
|
||||
// List<CuMemberLevel> deleteLevelList = new ArrayList<>();
|
||||
// // 新等级计算
|
||||
// BdGrade newGrade = this.handleNewGrade(cuMember, memberGrade, gradeList, saOrderExt, createLevelList, deleteLevelList);
|
||||
//
|
||||
// if (memberGrade.getGradeValue() < EGrade.VIP.getValue() && newGrade.getGradeValue() < memberGrade.getGradeValue()) {
|
||||
// // 当前会员等级不是V4或者V5 并且 新等级小于当前等级需要进行处理
|
||||
// saOrderExt.setNewGrade(newGrade);
|
||||
// saOrderExt.setUpdateFlag(EYesNo.YES.getIntValue());
|
||||
// }
|
||||
// saOrderExt.setCreateLevelList(createLevelList);
|
||||
// saOrderExt.setDeleteLevelList(deleteLevelList);
|
||||
// }
|
||||
}
|
||||
} else if (EOrderType.RETAIL_PICK.getValue() == saOrderExt.getOrderType()) {
|
||||
// 新提货订单
|
||||
|
@ -2636,16 +2641,21 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
if (CollectionUtil.isEmpty(gradeList)) {
|
||||
gradeList = iGradeServiceApi.getRetailGradeList().getData();
|
||||
}
|
||||
// 盒数商品
|
||||
|
||||
// 补全产品编号
|
||||
handleOrderItemsParamsProduct(orderItemsParams);
|
||||
// 盒数产品
|
||||
List<String> boxProductList = BoxProductUtil.getBoxProductListBySystemType(systemType);
|
||||
|
||||
// 当前商品盒数
|
||||
// 当前产品盒数
|
||||
int boxNum = 0;
|
||||
// 判断订单明细中指定商品数量,校验达到等级,重算价格
|
||||
// 判断订单明细中指定产品数量,校验等级
|
||||
for (OrderItemsParam orderItemsParam : orderItemsParams) {
|
||||
if (boxProductList.contains(orderItemsParam.getWaresCode())) {
|
||||
// 存在指定商品,需要累计合数
|
||||
boxNum += orderItemsParam.getQuantity();
|
||||
for (WaresItemsParam waresItemsParam : orderItemsParam.getWaresItemsParamList()) {
|
||||
if (boxProductList.contains(waresItemsParam.getProductCode())) {
|
||||
// 存在指定产品,需要累计盒数(产品数量 * 商品数量)
|
||||
boxNum += waresItemsParam.getQuantity() * orderItemsParam.getQuantity();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2654,20 +2664,22 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
if (ESpecialArea.RETAIL_REGISTER.getValue() == specialArea) {
|
||||
// 注册专区直接算等级
|
||||
bdGrade = this.getGradeByBox(boxNum, gradeList, null, true);
|
||||
} else if (ESpecialArea.RETAIL_UPGRADE.getValue() == specialArea
|
||||
|| ESpecialArea.RETAIL_REPURCHASE.getValue() == specialArea) {
|
||||
// 2025.02.24 升级专区取消,复购专区购买盒数商品可以升级,首日累积升级,次日一次性补差升级
|
||||
} else if (ESpecialArea.RETAIL_UPGRADE.getValue() == specialArea) {
|
||||
// 升级专区取消,一次性补差升级
|
||||
if (boxNum == 0) {
|
||||
// 不满足升级条件
|
||||
throw new ServiceException("不满足升级条件");
|
||||
}
|
||||
|
||||
// 当前会员等级
|
||||
BdGrade memberGrade = gradeList.stream().filter(tmpGrade -> tmpGrade.getPkId().equals(updateGradeMember.getPkSettleGrade())).findFirst().get();
|
||||
if (boxNum == 0) {
|
||||
return memberGrade;
|
||||
if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) >= 0) {
|
||||
// 会员等级大于等于V3(卓越),不能通过升级进行购买了
|
||||
throw new ServiceException("当前已经是可以购买的最高等级");
|
||||
}
|
||||
|
||||
// 获取升级盒数基数
|
||||
int baseBoxNum = this.handleBaseBoxNum(updateGradeMember, memberGrade, gradeList, boxProductList, systemType);
|
||||
// 计算等级
|
||||
bdGrade = this.getGradeByBox(baseBoxNum + boxNum, gradeList, memberGrade, true);
|
||||
bdGrade = this.getGradeByBox(boxNum, gradeList, memberGrade, true);
|
||||
|
||||
// 会员等级比购买盒数的等级要高,则以会员当前等级为准
|
||||
if (memberGrade.getGradeValue().compareTo(bdGrade.getGradeValue()) >= 0) {
|
||||
|
@ -2694,29 +2706,31 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
|
||||
if (null == memberGrade) {
|
||||
// 注册处理
|
||||
// 去掉升级条件带有累计盒数的(V4,V5)升级购买合数小于等于订单商品盒数的,升级盒数小于购买盒数的最大一个等级为注册等级
|
||||
return gradeList.stream().filter(tmpGrade -> tmpGrade.getBoxTotal() == 0 && tmpGrade.getBoxNumber() <= boxTotal).max(Comparator.comparingInt(BdGrade::getGradeValue)).get();
|
||||
// 去掉 V4,V5 升级盒数小于购买盒数的最大一个等级为注册等级
|
||||
return gradeList.stream()
|
||||
.filter(tmpGrade -> tmpGrade.getGradeValue() != EGrade.VIP.getValue() && tmpGrade.getGradeValue() != EGrade.S_VIP.getValue() && tmpGrade.getBoxNumber() <= boxTotal)
|
||||
.max(Comparator.comparingInt(BdGrade::getGradeValue)).get();
|
||||
} else {
|
||||
// 非注册处理
|
||||
if (checkUpgrade) {
|
||||
// 当前等级大于等于V3 或 盒数商品为0,则直接返回当前等级
|
||||
if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) >= 0
|
||||
|| boxTotal == 0) {
|
||||
return memberGrade;
|
||||
}
|
||||
} else {
|
||||
// 当前等级大于V3 或 盒数商品为0,则直接返回当前等级
|
||||
if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) > 0
|
||||
|| boxTotal == 0) {
|
||||
return memberGrade;
|
||||
}
|
||||
}
|
||||
// if (checkUpgrade) {
|
||||
// // 当前等级大于等于V3 或 盒数商品为0,则直接返回当前等级
|
||||
// if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) >= 0
|
||||
// || boxTotal == 0) {
|
||||
// return memberGrade;
|
||||
// }
|
||||
// } else {
|
||||
// // 当前等级大于V3 或 盒数商品为0,则直接返回当前等级
|
||||
// if (memberGrade.getGradeValue().compareTo(EGrade.MAKER.getValue()) > 0
|
||||
// || boxTotal == 0) {
|
||||
// return memberGrade;
|
||||
// }
|
||||
// }
|
||||
|
||||
// 查询等级比现在当前等级大的,然后倒序排序,再查询等级盒数 >= 购买盒数 的第一个等级,就是当前升级的等级
|
||||
// 查询等级比现在当前等级大的,然后倒序排序,再查询 购买盒数 <= 等级盒数 的第一个等级,就是当前升级的等级
|
||||
Optional<BdGrade> gradeOptional = gradeList.stream().filter(tmpGrade -> tmpGrade.getGradeValue() > memberGrade.getGradeValue())
|
||||
.sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed())
|
||||
.filter(tmpGrade -> tmpGrade.getBoxNumber() != 0)
|
||||
.filter(tmpGrade -> tmpGrade.getBoxNumber() <= boxTotal).findFirst();
|
||||
.filter(tmpGrade -> tmpGrade.getBoxNumber() - memberGrade.getBoxNumber() <= boxTotal).findFirst();
|
||||
return gradeOptional.orElse(memberGrade);
|
||||
}
|
||||
}
|
||||
|
@ -3594,4 +3608,29 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
return cuMemberLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理订单明细产品编号信息
|
||||
*
|
||||
* @param orderItemsParams
|
||||
*/
|
||||
private void handleOrderItemsParamsProduct(List<OrderItemsParam> orderItemsParams) {
|
||||
if (CollectionUtil.isNotEmpty(orderItemsParams)) {
|
||||
Set<Integer> pkProductSet = new HashSet<>();
|
||||
for (OrderItemsParam orderItemsParam : orderItemsParams) {
|
||||
for (WaresItemsParam waresItemsParam : orderItemsParam.getWaresItemsParamList()) {
|
||||
pkProductSet.add(waresItemsParam.getPkProduct());
|
||||
}
|
||||
}
|
||||
if (pkProductSet.size() > 0) {
|
||||
Map<Integer, String> productCodeMap = iBdProductService.getProductCodeMap(pkProductSet);
|
||||
for (OrderItemsParam orderItemsParam : orderItemsParams) {
|
||||
for (WaresItemsParam waresItemsParam : orderItemsParam.getWaresItemsParamList()) {
|
||||
// 补全产品编号
|
||||
waresItemsParam.setProductCode(productCodeMap.get(waresItemsParam.getPkProduct()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
|
|||
import cn.hutool.core.collection.CollectionUtil;
|
||||
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.HttpStatus;
|
||||
import com.hzs.common.core.constant.msg.ProductMsgConstants;
|
||||
|
@ -48,13 +47,6 @@ import javax.servlet.http.HttpServletResponse;
|
|||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: yuhui
|
||||
* @Time: 2022/9/1 14:14
|
||||
* @Classname: BdProductController
|
||||
* @PackageName: com.hzs.sale.product.controller.manage
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/manage/product")
|
||||
|
@ -226,16 +218,6 @@ public class BdProductController extends BaseController {
|
|||
if (productCount > 0) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(ProductMsgConstants.PRODUCT_NUMBER_ALREADY_EXISTS));
|
||||
}
|
||||
if (productParams.getPkProductBas() != null) {
|
||||
// 校验每个国家该产品bas只能有一款
|
||||
LambdaQueryWrapper<BdProduct> qe = new LambdaQueryWrapper<>();
|
||||
qe.eq(BdProduct::getPkProductBas, productParams.getPkProductBas());
|
||||
qe.eq(BdProduct::getPkCountry, SecurityUtils.getPkCountry());
|
||||
int ct = productService.count(qe);
|
||||
if (ct > 0) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(ProductMsgConstants.PRODUCT_BAS_COUNTYR_FIRST));
|
||||
}
|
||||
}
|
||||
productService.saveProduct(productParams, loginUser);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
@ -276,17 +258,6 @@ public class BdProductController extends BaseController {
|
|||
if (productCount > 0) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(ProductMsgConstants.PRODUCT_NUMBER_ALREADY_EXISTS));
|
||||
}
|
||||
if (productParams.getPkProductBas() != null) {
|
||||
// 校验每个国家该产品bas只能有一款
|
||||
LambdaQueryWrapper<BdProduct> qw = new LambdaQueryWrapper<>();
|
||||
qw.eq(BdProduct::getPkProductBas, productParams.getPkProductBas());
|
||||
qw.eq(BdProduct::getPkCountry, SecurityUtils.getPkCountry());
|
||||
qw.notIn(BdProduct::getPkId, productParams.getPkId());
|
||||
int ct = productService.count(qw);
|
||||
if (ct > 0) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(ProductMsgConstants.PRODUCT_BAS_COUNTYR_FIRST));
|
||||
}
|
||||
}
|
||||
// 修改商品信息
|
||||
productService.updateProduct(productParams, loginUser);
|
||||
return AjaxResult.success(productParams.getProductCode());
|
||||
|
|
|
@ -7,13 +7,6 @@ import java.math.BigDecimal;
|
|||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: yuhui
|
||||
* @Time: 2022/9/1 15:48
|
||||
* @Classname: Product
|
||||
* @PackageName: com.hzs.sale.product.controller.manage.params
|
||||
*/
|
||||
@Data
|
||||
public class ProductParams implements Serializable {
|
||||
|
||||
|
@ -258,4 +251,9 @@ public class ProductParams implements Serializable {
|
|||
*/
|
||||
private Date removalTime;
|
||||
|
||||
/**
|
||||
* 仓储产品编号
|
||||
*/
|
||||
private String wmsCode;
|
||||
|
||||
}
|
||||
|
|
|
@ -13,11 +13,7 @@ import org.apache.ibatis.annotations.Param;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 产品相关mapper
|
||||
* @Author: yuhui
|
||||
* @Time: 2022/8/29 10:59
|
||||
* @Classname: BdProductMapper
|
||||
* @PackageName: com.hzs.sale.product.mapper
|
||||
* 产品相关mapper
|
||||
*/
|
||||
public interface BdProductMapper extends BaseMapper<BdProduct> {
|
||||
|
||||
|
@ -37,10 +33,7 @@ public interface BdProductMapper extends BaseMapper<BdProduct> {
|
|||
List<ProductVo> selectByQueryList(ProductParams productParams);
|
||||
|
||||
/*
|
||||
* @description: 根据规格、主键查询产品
|
||||
* @author: sui q
|
||||
* @date: 2023/11/27 15:52
|
||||
* @param: null null
|
||||
* 根据规格、主键查询产品
|
||||
**/
|
||||
List<BdProductExt> queryProductExtBySpecsId(@Param("productSpecsList") List<BdProductSpecs> productSpecsList, @Param("pkCountry") Integer pkCountry);
|
||||
|
||||
|
@ -68,4 +61,15 @@ public interface BdProductMapper extends BaseMapper<BdProduct> {
|
|||
* @return
|
||||
*/
|
||||
ProductVo getByProductId(@Param("productId") Integer productId);
|
||||
|
||||
/**
|
||||
* 根据商品获取对应产品信息
|
||||
*
|
||||
* @param specialArea 商品专区
|
||||
* @param waresCodeList 商品编码列表
|
||||
* @return
|
||||
*/
|
||||
List<BdProduct> listProductInfoByWaresCode(@Param("specialArea") Integer specialArea,
|
||||
@Param("waresCodeList") List<String> waresCodeList);
|
||||
|
||||
}
|
||||
|
|
|
@ -123,4 +123,21 @@ public interface IBdProductService extends IService<BdProduct> {
|
|||
*/
|
||||
ProductVo getByProductId(Integer productId);
|
||||
|
||||
/**
|
||||
* 获取产品编号map
|
||||
*
|
||||
* @param pkProductSet
|
||||
* @return
|
||||
*/
|
||||
Map<Integer, String> getProductCodeMap(Collection<Integer> pkProductSet);
|
||||
|
||||
/**
|
||||
* 根据商品获取对应产品信息
|
||||
*
|
||||
* @param specialArea 商品专区
|
||||
* @param waresCodeList 商品编码列表
|
||||
* @return
|
||||
*/
|
||||
Map<Integer, BdProduct> listProductInfoByWaresCode(Integer specialArea, List<String> waresCodeList);
|
||||
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@ import com.hzs.sale.product.vo.SupplierProductCensusVo;
|
|||
import com.hzs.sale.product.vo.WaresDetailVo;
|
||||
import com.hzs.sale.wares.service.IBdWaresDetailService;
|
||||
import com.hzs.sale.wares.service.IBdWaresExtendService;
|
||||
import com.hzs.scm.product.IBdProductBasSpecsServiceApi;
|
||||
import com.hzs.system.base.ITransactionServiceApi;
|
||||
import com.hzs.system.sys.ICubasdocApi;
|
||||
import com.hzs.system.sys.dto.BusinessLogDTO;
|
||||
|
@ -65,8 +64,6 @@ public class BdProductServiceImpl extends ServiceImpl<BdProductMapper, BdProduct
|
|||
ICubasdocApi cubasdocApi;
|
||||
@DubboReference
|
||||
ITransactionServiceApi transactionServiceApi;
|
||||
@DubboReference
|
||||
IBdProductBasSpecsServiceApi productBasSpecsServiceApi;
|
||||
|
||||
@Override
|
||||
public BdProduct getProduct(Integer pkProduct) {
|
||||
|
@ -100,8 +97,6 @@ public class BdProductServiceImpl extends ServiceImpl<BdProductMapper, BdProduct
|
|||
bdProduct.setRemovalTime(DateUtils.currentDateTime());
|
||||
}
|
||||
|
||||
Integer pkProductBas = productParams.getPkProductBas();
|
||||
bdProduct.setPkProductBas(pkProductBas);
|
||||
if (productParams.getPkCubasdoc() != null) {
|
||||
R<CubasdocDTO> cubasdocDTO = cubasdocApi.getCubasdoc(productParams.getPkCubasdoc());
|
||||
CubasdocDTO cubasdoc = cubasdocDTO.getData();
|
||||
|
@ -110,6 +105,10 @@ public class BdProductServiceImpl extends ServiceImpl<BdProductMapper, BdProduct
|
|||
bdProduct.setPkSupplier(cubasdoc.getPkSupplier());
|
||||
}
|
||||
}
|
||||
if (StringUtils.isEmpty(bdProduct.getWmsCode())) {
|
||||
// 仓储产品编号为空,则默认使用产品编号
|
||||
bdProduct.setWmsCode(bdProduct.getProductCode());
|
||||
}
|
||||
this.save(bdProduct);
|
||||
// 生成拓展表
|
||||
BdProductExtend productExtend = BeanUtil.copyProperties(productParams, BdProductExtend.class);
|
||||
|
@ -220,16 +219,6 @@ public class BdProductServiceImpl extends ServiceImpl<BdProductMapper, BdProduct
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除产品规格明细 bas
|
||||
*
|
||||
* @param pkProductBasList
|
||||
* @return
|
||||
*/
|
||||
private void removeProductBasSpecs(List<Integer> pkProductBasList) {
|
||||
productBasSpecsServiceApi.removeByPkProductBasList(pkProductBasList);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateProduct(ProductParams productParams, LoginUser loginUser) {
|
||||
|
@ -239,19 +228,16 @@ public class BdProductServiceImpl extends ServiceImpl<BdProductMapper, BdProduct
|
|||
bdProduct.setPkTransaction(transaction.getData());
|
||||
bdProduct.setPkModified(loginUser.getUserId());
|
||||
bdProduct.setModifiedTime(new Date());
|
||||
// 产品bas
|
||||
BdProductBas productBas = BeanUtil.copyProperties(bdProduct, BdProductBas.class);
|
||||
if (productParams.getPkProductBas() == null) {
|
||||
bdProduct.setPkProductBas(null);
|
||||
} else {
|
||||
bdProduct.setPkProductBas(productParams.getPkProductBas());
|
||||
}
|
||||
if (productParams.getIsPutOn().equals(EYesNo.YES.getIntValue())) {
|
||||
bdProduct.setListingTime(DateUtils.currentDateTime());
|
||||
}
|
||||
if (productParams.getIsPutOn().equals(EYesNo.NO.getIntValue())) {
|
||||
bdProduct.setRemovalTime(DateUtils.currentDateTime());
|
||||
}
|
||||
if (StringUtils.isEmpty(bdProduct.getWmsCode())) {
|
||||
// 仓储产品编号为空,则默认使用产品编号
|
||||
bdProduct.setWmsCode(bdProduct.getProductCode());
|
||||
}
|
||||
this.updateById(bdProduct);
|
||||
// 生成拓展表
|
||||
BdProductExtend productExtend = BeanUtil.copyProperties(productParams, BdProductExtend.class);
|
||||
|
@ -274,10 +260,6 @@ public class BdProductServiceImpl extends ServiceImpl<BdProductMapper, BdProduct
|
|||
|
||||
productSpecsService.save(productSpecs);
|
||||
}
|
||||
// 产品规格 specs
|
||||
if (productBas.getPkId() != null) {
|
||||
this.removeProductBasSpecs(Collections.singletonList(productBas.getPkId()));
|
||||
}
|
||||
}
|
||||
productParams.setProductCode(productParams.getProductCode());
|
||||
productParams.setPkId(bdProduct.getPkId());
|
||||
|
@ -545,4 +527,30 @@ public class BdProductServiceImpl extends ServiceImpl<BdProductMapper, BdProduct
|
|||
return baseMapper.getByProductId(productId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Integer, String> getProductCodeMap(Collection<Integer> pkProductSet) {
|
||||
Map<Integer, String> productCodeMap = new HashMap<>();
|
||||
|
||||
LambdaQueryWrapper<BdProduct> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(BdProduct::getPkId, pkProductSet);
|
||||
List<BdProduct> productList = this.list(queryWrapper);
|
||||
for (BdProduct bdProduct : productList) {
|
||||
productCodeMap.put(bdProduct.getPkId(), bdProduct.getProductCode());
|
||||
}
|
||||
return productCodeMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Integer, BdProduct> listProductInfoByWaresCode(Integer specialArea, List<String> waresCodeList) {
|
||||
Map<Integer, BdProduct> productMap = new HashMap<>();
|
||||
|
||||
List<BdProduct> bdProductList = baseMapper.listProductInfoByWaresCode(specialArea, waresCodeList);
|
||||
if (CollectionUtil.isNotEmpty(bdProductList)) {
|
||||
for (BdProduct bdProduct : bdProductList) {
|
||||
productMap.put(bdProduct.getPkId(), bdProduct);
|
||||
}
|
||||
}
|
||||
return productMap;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,27 +1,14 @@
|
|||
package com.hzs.sale.product.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.hzs.common.core.annotation.BigDecimalFormat;
|
||||
import com.hzs.common.core.annotation.Excel;
|
||||
import com.hzs.common.core.web.domain.BaseEntity;
|
||||
import com.hzs.common.domain.sale.product.BdProduct;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: yuhui
|
||||
* @Time: 2022/10/28 16:26
|
||||
* @Classname: ProductVo
|
||||
* @PackageName: com.hzs.sale.product.vo
|
||||
*/
|
||||
@Data
|
||||
public class ProductVo implements Serializable {
|
||||
|
||||
|
@ -184,7 +171,7 @@ public class ProductVo implements Serializable {
|
|||
*/
|
||||
private Integer isMerge;
|
||||
/**
|
||||
*合并发货 翻译
|
||||
* 合并发货 翻译
|
||||
*/
|
||||
@Excel(name = "合并发货")
|
||||
private String isMergeVal;
|
||||
|
@ -225,7 +212,7 @@ public class ProductVo implements Serializable {
|
|||
/**
|
||||
* 上下架
|
||||
*/
|
||||
@Excel(name = "上下架状态",readConverterExp = "0=上架,1=下架")
|
||||
@Excel(name = "上下架状态", readConverterExp = "0=上架,1=下架")
|
||||
private Integer isPutOn;
|
||||
/**
|
||||
* 创建人ID
|
||||
|
@ -235,7 +222,7 @@ public class ProductVo implements Serializable {
|
|||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Excel(name = "创建时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date creationTime;
|
||||
|
||||
|
@ -297,5 +284,9 @@ public class ProductVo implements Serializable {
|
|||
*/
|
||||
private Integer pkCubasdoc;
|
||||
|
||||
/**
|
||||
* 仓储产品编号
|
||||
*/
|
||||
private String wmsCode;
|
||||
|
||||
}
|
||||
|
|
|
@ -9,10 +9,7 @@ import java.util.Map;
|
|||
public interface IShoppingCartService {
|
||||
|
||||
/*
|
||||
* @description: 查询需要下单的购物车
|
||||
* @author: sui q
|
||||
* @date: 2023/5/23 16:08
|
||||
* @param: null null
|
||||
* 查询需要下单的购物车
|
||||
**/
|
||||
List<ShoppingCartRedis> queryShopping(Long userId, ShoppingCartVO sop);
|
||||
|
||||
|
@ -25,11 +22,7 @@ public interface IShoppingCartService {
|
|||
void batchDelShopping(Long userId, ShoppingCartVO sop);
|
||||
|
||||
/**
|
||||
* @description: 查询购物车
|
||||
* @author: zhang jing
|
||||
* @date: 2022/12/13 16:40
|
||||
* @param: [shoppingCartOld]
|
||||
* @return: com.hz.web.controller.api.vo.ShoppingCartVO
|
||||
* 查询购物车
|
||||
**/
|
||||
List<ShoppingCartVO> getShopping(Map<String, String> innerShopMap, Integer specialArea, Integer pkCountry, Integer systemType);
|
||||
|
||||
|
|
|
@ -25,11 +25,7 @@ import java.math.BigDecimal;
|
|||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @description: 购物车服务实现
|
||||
* @author: zhang jing
|
||||
* @date: 2022/11/22 14:47
|
||||
* @param:
|
||||
* @return:
|
||||
* 购物车服务实现
|
||||
**/
|
||||
@Service
|
||||
public class ShoppingCartServiceImpl implements IShoppingCartService {
|
||||
|
@ -37,17 +33,11 @@ public class ShoppingCartServiceImpl implements IShoppingCartService {
|
|||
@Autowired
|
||||
private RedisService redisService;
|
||||
@Autowired
|
||||
private IBdWaresSpecsSkuService bdWaresSpecsSkuService;
|
||||
private IBdWaresSpecsSkuService iBdWaresSpecsSkuService;
|
||||
|
||||
@DubboReference
|
||||
ICurrencyServiceApi currencyServiceApi;
|
||||
ICurrencyServiceApi iCurrencyServiceApi;
|
||||
|
||||
/**
|
||||
* 查询需要下单的购物车
|
||||
*
|
||||
* @param userId
|
||||
* @param sop
|
||||
*/
|
||||
@Override
|
||||
public List<ShoppingCartRedis> queryShopping(Long userId, ShoppingCartVO sop) {
|
||||
List<ShoppingCartRedis> deleteList = sop.getDeleteList();
|
||||
|
@ -73,12 +63,6 @@ public class ShoppingCartServiceImpl implements IShoppingCartService {
|
|||
return newShoppingCartRedis;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除购物车
|
||||
*
|
||||
* @param userId
|
||||
* @param sop
|
||||
*/
|
||||
@Override
|
||||
public void batchDelShopping(Long userId, ShoppingCartVO sop) {
|
||||
List<ShoppingCartRedis> deleteList = sop.getDeleteList();
|
||||
|
@ -107,19 +91,12 @@ public class ShoppingCartServiceImpl implements IShoppingCartService {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 查询购物车
|
||||
* @author: zhang jing
|
||||
* @date: 2022/12/12 19:03
|
||||
* @param: [shoppingCartOld]
|
||||
* @return: com.hz.web.controller.api.vo.ShoppingCartVO
|
||||
**/
|
||||
@Override
|
||||
public List<ShoppingCartVO> getShopping(Map<String, String> innerShopMap, Integer specialArea, Integer pkCountry, Integer systemType) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
//汇率
|
||||
List<ShoppingCartVO> shoppingCartOld = new ArrayList<>();
|
||||
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
|
||||
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
|
||||
if (StringUtils.isNotNull(specialArea)) {
|
||||
ShoppingCartVO scv = new ShoppingCartVO();
|
||||
List<ShoppingCart> shoppingCartList = new ArrayList<>();
|
||||
|
@ -184,14 +161,11 @@ public class ShoppingCartServiceImpl implements IShoppingCartService {
|
|||
}
|
||||
|
||||
/**
|
||||
* @description: 获取购物车商品信息
|
||||
* @author: zhang jing
|
||||
* @date: 2023/5/22 14:36
|
||||
* @param: [shoppingCart, specialArea, waresCode, userId, sst, waresPrice, achieve, assAchieve, currency,]
|
||||
* 获取购物车商品信息
|
||||
**/
|
||||
private void getShoppingCart(ShoppingCart shoppingCart, Integer specialArea, String waresCode, Long userId, ShoppingCartRedis sst,
|
||||
BigDecimal waresPrice, BigDecimal achieve, BigDecimal assAchieve, R<CurrencyDTO> currency, Integer pkCountry, Integer systemType) {
|
||||
CuWaresParams cuWaresParams = bdWaresSpecsSkuService.queryWaresSpecsSkuShopping(specialArea, waresCode, userId, pkCountry, systemType);
|
||||
CuWaresParams cuWaresParams = iBdWaresSpecsSkuService.queryWaresSpecsSkuShopping(specialArea, waresCode, userId, pkCountry, systemType);
|
||||
if (cuWaresParams == null) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -5,14 +5,11 @@ import lombok.Data;
|
|||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description: 购物车产品SKU组合缓存实体类
|
||||
* @Author: zhangjing
|
||||
* @Time: 2022/9/16 11:11
|
||||
* @Classname: ShoppingCartVO
|
||||
* @PackageName: com.hzs.common.domain.sale.ext
|
||||
* 购物车产品SKU组合缓存实体类
|
||||
*/
|
||||
@Data
|
||||
public class ProductGroup implements Serializable {
|
||||
|
||||
/**
|
||||
* 产品主键
|
||||
*/
|
||||
|
|
|
@ -6,11 +6,7 @@ import java.io.Serializable;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 购物车缓存实体类
|
||||
* @Author: zhangjing
|
||||
* @Time: 2022/9/16 11:11
|
||||
* @Classname: ShoppingCartVO
|
||||
* @PackageName: com.hzs.common.domain.sale.ext
|
||||
* 购物车缓存实体类
|
||||
*/
|
||||
@Data
|
||||
public class ShoppingCartRedis implements Serializable {
|
||||
|
|
|
@ -1,11 +1,4 @@
|
|||
package com.hzs.sale.shopping.vo;
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: yuhui
|
||||
* @Time: 2023/3/20 14:03
|
||||
* @Classname: WaresItemVo
|
||||
* @PackageName: com.hzs.sale.shopping.vo
|
||||
*/
|
||||
|
||||
import com.hzs.common.core.annotation.BigDecimalFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
@ -16,14 +9,6 @@ import lombok.NoArgsConstructor;
|
|||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*@BelongsProject: hzs_cloud
|
||||
*@BelongsPackage: com.hzs.sale.shopping.vo
|
||||
*@Author: yh
|
||||
*@CreateTime: 2023-03-20 14:03
|
||||
*@Description: TODO
|
||||
*@Version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
|
@ -41,6 +26,11 @@ public class WaresItemVo {
|
|||
*/
|
||||
private String waresCode;
|
||||
|
||||
/**
|
||||
* 商品展示图片
|
||||
*/
|
||||
private String cover;
|
||||
|
||||
/**
|
||||
* 商品展示图片
|
||||
*/
|
||||
|
@ -64,7 +54,6 @@ public class WaresItemVo {
|
|||
private BigDecimal achieve;
|
||||
/**
|
||||
* bv
|
||||
*
|
||||
*/
|
||||
@BigDecimalFormat
|
||||
private BigDecimal assAchieve;
|
||||
|
|
|
@ -5,17 +5,13 @@ import com.hzs.common.domain.sale.wares.BdWaresSpecialPostage;
|
|||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 商品特殊邮费配置 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-10-27
|
||||
*/
|
||||
public interface BdWaresSpecialPostageMapper extends BaseMapper<BdWaresSpecialPostage> {
|
||||
|
||||
/**
|
||||
* 根据邮费主键删除邮费配置信息
|
||||
*
|
||||
* @param pkPostage
|
||||
*/
|
||||
void deleteByPkPostage(@Param("pkPostage") Integer pkPostage);
|
||||
|
|
|
@ -14,9 +14,6 @@ import java.util.Set;
|
|||
|
||||
/**
|
||||
* 规格sku表 Mapper 接口
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-09-09
|
||||
*/
|
||||
public interface BdWaresSpecsSkuMapper extends BaseMapper<BdWaresSpecsSku> {
|
||||
|
||||
|
@ -26,9 +23,6 @@ public interface BdWaresSpecsSkuMapper extends BaseMapper<BdWaresSpecsSku> {
|
|||
* @param specialArea 专区
|
||||
* @param systemType 系统类型
|
||||
* @param waresCode 商品编号
|
||||
* @return: List<BdWaresSpecsSkuExt>
|
||||
* @Author: sui q
|
||||
* @Date: 2022/9/19 11:21
|
||||
*/
|
||||
List<BdWaresSpecsSkuExt> queryWaresSpecsSku(@Param("specialArea") Integer specialArea,
|
||||
@Param("systemType") Integer systemType,
|
||||
|
@ -38,9 +32,6 @@ public interface BdWaresSpecsSkuMapper extends BaseMapper<BdWaresSpecsSku> {
|
|||
* 根据sku主键查询规格名称
|
||||
*
|
||||
* @param pkSkuId sku主键
|
||||
* @return: List<BdWaresSpecsSku>
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/13 15:25
|
||||
*/
|
||||
List<BdWaresSpecsSkuExt> queryWaresSpecsNameSku(@Param("pkSkuIdList") Set<Integer> pkSkuId);
|
||||
|
||||
|
@ -48,9 +39,6 @@ public interface BdWaresSpecsSkuMapper extends BaseMapper<BdWaresSpecsSku> {
|
|||
* 通过规格列表查询商品最小库存单位,
|
||||
*
|
||||
* @param cuWaresItemsParams 专区
|
||||
* @return: SpecsSkuParam
|
||||
* @Author: sui q
|
||||
* @Date: 2022/9/19 16:26
|
||||
*/
|
||||
BdWaresSpecsSkuExt queryWaresDetailSkuBySpecs(@Param("cuWaresItemsParams") CuWaresItemsParams cuWaresItemsParams);
|
||||
|
||||
|
@ -85,12 +73,9 @@ public interface BdWaresSpecsSkuMapper extends BaseMapper<BdWaresSpecsSku> {
|
|||
*/
|
||||
List<WaresItemWaresInfo> selectByPkIds(@Param("pkWaresSpecsSku") List<Integer> pkWaresSpecsSku);
|
||||
|
||||
/*
|
||||
* @description: 查询商品封装为返回到会员端商品信息
|
||||
* @author: sui q
|
||||
* @date: 2023/5/10 19:57
|
||||
* @param: null null
|
||||
**/
|
||||
/**
|
||||
* 查询商品封装为返回到会员端商品信息
|
||||
*/
|
||||
WaresItemVo selectWaresItemsVO(@Param("specialArea") Integer specialArea, @Param("waresCode") String waresCode,
|
||||
@Param("productGroup") List<ProductGroup> productGroup);
|
||||
|
||||
|
|
|
@ -14,9 +14,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 商品发布明细表 服务类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-09-09
|
||||
*/
|
||||
public interface IBdWaresDetailService extends IService<BdWaresDetail> {
|
||||
|
||||
|
@ -25,9 +22,6 @@ public interface IBdWaresDetailService extends IService<BdWaresDetail> {
|
|||
*
|
||||
* @param specialArea 专区
|
||||
* @param transType 运输方式
|
||||
* @return: List<BdWaresExt>
|
||||
* @Author: sui q
|
||||
* @Date: 2022/9/16 11:13
|
||||
*/
|
||||
List<BdWaresDetailExt> queryWaresDetailByCondition(Integer specialArea, Integer transType, List<OrderItemsParam> orderItemsParams, Integer systemTyype);
|
||||
|
||||
|
@ -36,9 +30,6 @@ public interface IBdWaresDetailService extends IService<BdWaresDetail> {
|
|||
*
|
||||
* @param specialArea 专区
|
||||
* @param orderItemsParams 参数
|
||||
* @return: List<BdWaresExt>
|
||||
* @Author: sui q
|
||||
* @Date: 2022/9/16 11:13
|
||||
*/
|
||||
List<IcAvailableNum> queryWaresDetailSpecsByCondition(Integer specialArea, Integer pkCountry, Integer pkCorp, Integer pkStorehouse, Integer province,
|
||||
String parentCode, CuMember cuMember, List<OrderItemsParam> orderItemsParams);
|
||||
|
@ -68,7 +59,6 @@ public interface IBdWaresDetailService extends IService<BdWaresDetail> {
|
|||
*/
|
||||
List<WaresDetailVo> listByPkProduct(List<Integer> pkProduct);
|
||||
|
||||
|
||||
/**
|
||||
* 商品下产品查询
|
||||
*
|
||||
|
|
|
@ -6,25 +6,21 @@ import com.hzs.common.domain.sale.wares.BdWaresSpecialPostage;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 商品特殊邮费配置 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-10-27
|
||||
*/
|
||||
public interface IBdWaresSpecialPostageService extends IService<BdWaresSpecialPostage> {
|
||||
|
||||
/**
|
||||
* 查询特殊邮费商品ID列表
|
||||
* param pkCountry
|
||||
*
|
||||
* @param pkCountry
|
||||
* @return
|
||||
*/
|
||||
List<Integer> querySpecialPostagePkWares(Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 根据邮费主键删除邮费配置信息
|
||||
*
|
||||
* @param pkPostage
|
||||
*/
|
||||
void deleteByPkPostage(Integer pkPostage);
|
||||
|
|
|
@ -32,15 +32,12 @@ import java.util.Map;
|
|||
|
||||
/**
|
||||
* 商品发布明细表 服务实现类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-09-09
|
||||
*/
|
||||
@Service
|
||||
public class BdWaresDetailServiceImpl extends ServiceImpl<BdWaresDetailMapper, BdWaresDetail> implements IBdWaresDetailService {
|
||||
|
||||
@DubboReference
|
||||
IAreaServiceApi areaServiceApi;
|
||||
IAreaServiceApi iAreaServiceApi;
|
||||
|
||||
@Autowired
|
||||
private IActivityService iActivityService;
|
||||
|
@ -156,7 +153,7 @@ public class BdWaresDetailServiceImpl extends ServiceImpl<BdWaresDetailMapper, B
|
|||
}
|
||||
if (productIdList.size() > 0 && province != null) {
|
||||
// 根据产品,省查看是否由仓库,有仓库的话修改仓库
|
||||
List<BdProductStorehouseExt> bdProductStorehouseList = areaServiceApi.queryBdProductStorehouseByCondition(productIdList, province).getData();
|
||||
List<BdProductStorehouseExt> bdProductStorehouseList = iAreaServiceApi.queryBdProductStorehouseByCondition(productIdList, province).getData();
|
||||
Map<Integer, BdProductStorehouseExt> bdProductStorehouseMap = new HashMap<>();
|
||||
if (CollectionUtil.isNotEmpty(bdProductStorehouseList)) {
|
||||
bdProductStorehouseList.forEach(bdProductStorehouse -> bdProductStorehouseMap.put(bdProductStorehouse.getPkProduct(), bdProductStorehouse));
|
||||
|
|
|
@ -48,9 +48,6 @@ import java.util.stream.Collectors;
|
|||
|
||||
/**
|
||||
* 商品 服务实现类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-09-08
|
||||
*/
|
||||
@Service
|
||||
public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> implements IBdWaresService {
|
||||
|
@ -1220,21 +1217,14 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
|
|||
rangePriceVoList.add(rangePriceVo);
|
||||
}
|
||||
}
|
||||
|
||||
// 对结果值进行排序
|
||||
rangePriceVoList.sort(Comparator.comparing(RangePriceVo::getPkRange));
|
||||
computeWaresPrice.setRangePriceVoList(rangePriceVoList);
|
||||
}
|
||||
}
|
||||
return computeWaresPriceList;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询商品团队信息
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Map<Integer, List<BdWaresAuthority>> getWaresAuthority(List<Integer> pkWaresList) {
|
||||
Map<Integer, List<BdWaresAuthority>> map = new HashMap<>();
|
||||
|
@ -1247,34 +1237,16 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
|
|||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 扣减预售数量库存
|
||||
*
|
||||
* @param waresCode
|
||||
* @param quantity
|
||||
*/
|
||||
@Override
|
||||
public void updatePreSaleQuantityByWaresCode(String waresCode, Integer quantity) {
|
||||
baseMapper.updatePreSaleQuantityByWaresCode(waresCode, quantity);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询商品可见类型
|
||||
*
|
||||
* @param pkWares
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public WaresAuthorityVo getWaresAuthorityFirst(Integer pkWares) {
|
||||
return baseMapper.getWaresAuthorityFirst(pkWares);
|
||||
}
|
||||
|
||||
/**
|
||||
* 置底
|
||||
*
|
||||
* @param waresId
|
||||
* @param loginUser
|
||||
*/
|
||||
@Override
|
||||
public void bottomUp(Integer waresId, LoginUser loginUser) {
|
||||
BdWares bdWares = new BdWares();
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
package com.hzs.sale.wares.service.impl;
|
||||
|
||||
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.common.core.constant.SystemFieldConstants;
|
||||
import com.hzs.common.domain.sale.wares.BdWaresSpecialPostage;
|
||||
import com.hzs.sale.wares.mapper.BdWaresSpecialPostageMapper;
|
||||
import com.hzs.sale.wares.service.IBdWaresSpecialPostageService;
|
||||
|
@ -12,28 +11,19 @@ import java.util.List;
|
|||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 商品特殊邮费配置 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-10-27
|
||||
*/
|
||||
@Service
|
||||
public class BdWaresSpecialPostageServiceImpl extends ServiceImpl<BdWaresSpecialPostageMapper, BdWaresSpecialPostage> implements IBdWaresSpecialPostageService {
|
||||
|
||||
@Override
|
||||
public List<Integer> querySpecialPostagePkWares(Integer pkCountry) {
|
||||
QueryWrapper<BdWaresSpecialPostage> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq(SystemFieldConstants.PK_COUNTRY, pkCountry);
|
||||
LambdaQueryWrapper<BdWaresSpecialPostage> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(BdWaresSpecialPostage::getPkCountry, pkCountry);
|
||||
List<BdWaresSpecialPostage> pkWaresList = this.list(queryWrapper);
|
||||
return pkWaresList.stream().map(BdWaresSpecialPostage::getPkPostage).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据邮费主键删除邮费配置信息
|
||||
* @param pkPostage
|
||||
*/
|
||||
@Override
|
||||
public void deleteByPkPostage(Integer pkPostage) {
|
||||
baseMapper.deleteByPkPostage(pkPostage);
|
||||
|
|
|
@ -49,42 +49,42 @@ import java.util.stream.Collectors;
|
|||
public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMapper, BdWaresSpecsSku> implements IBdWaresSpecsSkuService {
|
||||
|
||||
@Autowired
|
||||
private IBdWaresSpecsRelationService waresSpecsRelationService;
|
||||
private IBdWaresSpecsRelationService iBdWaresSpecsRelationService;
|
||||
@Autowired
|
||||
private IBdWaresLabelService waresLabelService;
|
||||
private IBdWaresLabelService iBdWaresLabelService;
|
||||
@Autowired
|
||||
private IBdWaresDetailService waresDetailService;
|
||||
private IBdWaresDetailService iBdWaresDetailService;
|
||||
@Autowired
|
||||
private IBdWaresRangeService bdWaresRangeService;
|
||||
private IBdWaresRangeService iBdWaresRangeService;
|
||||
@Autowired
|
||||
private ISaOrderService saOrderService;
|
||||
private ISaOrderService iSaOrderService;
|
||||
|
||||
@DubboReference
|
||||
ICurrencyServiceApi currencyServiceApi;
|
||||
ICurrencyServiceApi iCurrencyServiceApi;
|
||||
@DubboReference
|
||||
IRangeServiceApi rangeServiceApi;
|
||||
IRangeServiceApi iRangeServiceApi;
|
||||
@DubboReference
|
||||
IMemberServiceApi memberServiceApi;
|
||||
IMemberServiceApi iMemberServiceApi;
|
||||
@DubboReference
|
||||
IAwardsServiceApi awardsServiceApi;
|
||||
IAwardsServiceApi iAwardsServiceApi;
|
||||
|
||||
@Override
|
||||
public CuWaresParams queryWaresSpecsSku(Integer specialArea, String waresCode, Long loginMemberId, Integer pkCountry) {
|
||||
List<BdWaresSpecsSkuExt> bdWaresSpecsSkuExtList;
|
||||
|
||||
R<CuMember> memberDate = memberServiceApi.getMember(loginMemberId);
|
||||
R<CuMember> memberDate = iMemberServiceApi.getMember(loginMemberId);
|
||||
CuMember cuMember = memberDate.getData();
|
||||
if (EOrderType.REPURCHASE_ORDER.getValue() == specialArea
|
||||
|| EOrderType.MALL_ORDER.getValue() == specialArea
|
||||
|| EOrderType.COOPERATE_ORDER.getValue() == specialArea) {
|
||||
int level = cuMember.getPkSettleGrade();
|
||||
int rangeType = ERangeType.GRADE.getValue();
|
||||
BdAwards bdAwards = awardsServiceApi.getAwardsOne(cuMember.getPkAwards()).getData();
|
||||
BdAwards bdAwards = iAwardsServiceApi.getAwardsOne(cuMember.getPkAwards()).getData();
|
||||
if (bdAwards.getAwardsValue() > EAwards.MEMBER.getValue()) {
|
||||
level = cuMember.getPkAwards();
|
||||
rangeType = ERangeType.AWARDS.getValue();
|
||||
}
|
||||
RangeDTO rangeDTO = rangeServiceApi.queryRangeDtoByCondition(cuMember.getPkSettleCountry(), rangeType, level).getData();
|
||||
RangeDTO rangeDTO = iRangeServiceApi.queryRangeDtoByCondition(cuMember.getPkSettleCountry(), rangeType, level).getData();
|
||||
if (rangeDTO == null) {
|
||||
return new CuWaresParams();
|
||||
}
|
||||
|
@ -94,7 +94,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
bdWaresSpecsSkuExtList = baseMapper.queryWaresSpecsSku(specialArea, null, waresCode);
|
||||
}
|
||||
if (bdWaresSpecsSkuExtList.size() > 0) {
|
||||
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
|
||||
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
|
||||
|
||||
Set<Integer> pkSkuIdList = new HashSet<>();
|
||||
bdWaresSpecsSkuExtList.forEach(bdWaresSpecsSkuExt ->
|
||||
|
@ -115,7 +115,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
//查询标签合集
|
||||
BdWaresLabel waresLabel = new BdWaresLabel();
|
||||
waresLabel.setPkWares(bdWaresSpecsSkuExtList.get(0).getPkWares());
|
||||
List<BdLabelExt> labelList = waresLabelService.selectByList(waresLabel);
|
||||
List<BdLabelExt> labelList = iBdWaresLabelService.selectByList(waresLabel);
|
||||
// 保证标签
|
||||
List<BdLabel> ensureLabelList = new ArrayList<>();
|
||||
// 卖点标签
|
||||
|
@ -147,9 +147,9 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
|
||||
R<CurrencyDTO> kgCurrency = null;
|
||||
if (pkCountry != null) {
|
||||
kgCurrency = currencyServiceApi.getCurrency(pkCountry);
|
||||
kgCurrency = iCurrencyServiceApi.getCurrency(pkCountry);
|
||||
}
|
||||
List<CuProductParams> productParams = waresDetailService.selectByWaresCode(waresCode, specialArea, null);
|
||||
List<CuProductParams> productParams = iBdWaresDetailService.selectByWaresCode(waresCode, specialArea, null);
|
||||
List<CuProductParams> productParamsResultList = new ArrayList<>();
|
||||
for (CuProductParams cuProductParams : productParams) {
|
||||
List<CuWaresItemsParams> list = new ArrayList<>();
|
||||
|
@ -168,7 +168,6 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
list.add(cuWaresItemsParams);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
cuProductParams.setWaresItemsParamsList(list);
|
||||
if (list.size() > 0) {
|
||||
|
@ -194,12 +193,12 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
if (EOrderType.REPURCHASE_ORDER.getValue() == specialArea
|
||||
|| EOrderType.MALL_ORDER.getValue() == specialArea
|
||||
|| EOrderType.COOPERATE_ORDER.getValue() == specialArea) {
|
||||
R<CuMember> memberDate = memberServiceApi.getMember(loginMemberId);
|
||||
R<CuMember> memberDate = iMemberServiceApi.getMember(loginMemberId);
|
||||
CuMember cuMember = memberDate.getData();
|
||||
|
||||
int level = cuMember.getPkSettleGrade();
|
||||
int rangeType = ERangeType.GRADE.getValue();
|
||||
RangeDTO rangeDTO = rangeServiceApi.queryRangeDtoByCondition(cuMember.getPkSettleCountry(), rangeType, level).getData();
|
||||
RangeDTO rangeDTO = iRangeServiceApi.queryRangeDtoByCondition(cuMember.getPkSettleCountry(), rangeType, level).getData();
|
||||
if (rangeDTO == null) {
|
||||
return new CuWaresParams();
|
||||
}
|
||||
|
@ -212,10 +211,10 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
Map<Integer, String> specsNameMap = new HashMap<>(ComputeUtil.mapInitCapacity(bdWaresSpecsSkuExtList.size()));
|
||||
CuWaresParams cuWaresParams = BeanUtil.copyProperties(bdWaresSpecsSkuExtList.get(0), CuWaresParams.class);
|
||||
|
||||
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
|
||||
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
|
||||
List<CuWaresItemsParams> cuWaresItemsParamsList = setUpWaresItemsParams(bdWaresSpecsSkuExtList, specsNameMap, currency.getData().getInExchangeRate());
|
||||
// 前台传递结算国 跨国报单计算价格使用
|
||||
List<CuProductParams> productParams = waresDetailService.selectByWaresCode(waresCode, specialArea, null);
|
||||
List<CuProductParams> productParams = iBdWaresDetailService.selectByWaresCode(waresCode, specialArea, null);
|
||||
List<CuProductParams> productParamsResultList = new ArrayList<>();
|
||||
for (CuProductParams cuProductParams : productParams) {
|
||||
List<CuWaresItemsParams> list = new ArrayList<>();
|
||||
|
@ -243,28 +242,20 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 查询商品sku信息购物车专用
|
||||
* @author: zhang jing
|
||||
* @date: 2024/3/28 14:34
|
||||
* @param: [specialArea, waresCode, loginMemberId, pkCountry]
|
||||
* @return: com.hzs.sale.wares.param.CuWaresParams
|
||||
**/
|
||||
@Override
|
||||
public CuWaresParams queryWaresSpecsSkuShopping(Integer specialArea, String waresCode, Long loginMemberId, Integer pkCountry, Integer systemType) {
|
||||
CuMember cuMember = memberServiceApi.getMember(loginMemberId).getData();
|
||||
CuMember cuMember = iMemberServiceApi.getMember(loginMemberId).getData();
|
||||
|
||||
// 获取货币信息
|
||||
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
|
||||
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
|
||||
|
||||
List<BdWaresSpecsSkuExt> bdWaresSpecsSkuExtList;
|
||||
|
||||
if (EOrderType.RETAIL_REPURCHASE.getValue() == specialArea
|
||||
|| EOrderType.RETAIL_CONSUME.getValue() == specialArea) {
|
||||
// 2024.12.30 添加需求,复消也需要处理级差
|
||||
// 复消也需要处理级差
|
||||
int level = cuMember.getPkSettleGrade();
|
||||
int rangeType = ERangeType.GRADE.getValue();
|
||||
RangeDTO rangeDTO = rangeServiceApi.queryRangeDtoByCondition(cuMember.getPkSettleCountry(), rangeType, level).getData();
|
||||
RangeDTO rangeDTO = iRangeServiceApi.queryRangeDtoByCondition(cuMember.getPkSettleCountry(), rangeType, level).getData();
|
||||
if (rangeDTO == null) {
|
||||
return new CuWaresParams();
|
||||
}
|
||||
|
@ -295,7 +286,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
// 处理跨国报单价格
|
||||
R<CurrencyDTO> kgCurrency;
|
||||
if (pkCountry != null && !pkCountry.equals(SecurityUtils.getPkCountry())) {
|
||||
kgCurrency = currencyServiceApi.getCurrency(pkCountry);
|
||||
kgCurrency = iCurrencyServiceApi.getCurrency(pkCountry);
|
||||
BigDecimal inExchangeRate = cuWaresParams.getInExchangeRate();
|
||||
BigDecimal kgInExchangeRate = kgCurrency.getData().getInExchangeRate();
|
||||
cuWaresItemsParamsList.forEach(item -> {
|
||||
|
@ -305,7 +296,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
}
|
||||
|
||||
// 获取商品详情
|
||||
List<CuProductParams> productParams = waresDetailService.selectByWaresCode(waresCode, specialArea, null);
|
||||
List<CuProductParams> productParams = iBdWaresDetailService.selectByWaresCode(waresCode, specialArea, null);
|
||||
List<CuProductParams> productParamsResultList = productParams.stream()
|
||||
.peek(param -> {
|
||||
List<CuWaresItemsParams> list = cuWaresItemsParamsList.stream()
|
||||
|
@ -321,14 +312,10 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
return cuWaresParams;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 设置返回到前台的商品明细表
|
||||
*
|
||||
* @param bdWaresSpecsSkuExtList 商品待sku
|
||||
* @return: List<CuWaresItemsParams>
|
||||
* @Author: sui q
|
||||
* @Date: 2022/9/27 10:51
|
||||
*/
|
||||
private List<CuWaresItemsParams> setUpWaresItemsParams(List<BdWaresSpecsSkuExt> bdWaresSpecsSkuExtList, Map<Integer, String> specsNameMap, BigDecimal inExchangeRate) {
|
||||
List<CuWaresItemsParams> cuWaresItemsParamsList = new ArrayList<>();
|
||||
|
@ -377,46 +364,6 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置规格分类
|
||||
*
|
||||
* @param bdWaresSpecsSkuExt sku
|
||||
* @param specsTypeParamsMap 规格分类
|
||||
*/
|
||||
private void setSpecsMap(BdWaresSpecsSkuExt bdWaresSpecsSkuExt, Map<Integer, SpecsTypeParams> specsTypeParamsMap) {
|
||||
SpecsTypeParams bdWaresSpecs = SpecsTypeParams.builder()
|
||||
.pkSpecsType(bdWaresSpecsSkuExt.getPkSpecsType())
|
||||
.typeName(bdWaresSpecsSkuExt.getSpecsTypeName())
|
||||
.build();
|
||||
// 规格
|
||||
Set<SpecsParams> specsParamsSet = new HashSet<>();
|
||||
setSpecsParams(bdWaresSpecsSkuExt, specsParamsSet);
|
||||
bdWaresSpecs.setSpecsParamsSet(specsParamsSet);
|
||||
specsTypeParamsMap.put(bdWaresSpecs.getPkSpecsType(), bdWaresSpecs);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置规格明细
|
||||
*
|
||||
* @param bdWaresSpecsSkuExt sku
|
||||
* @param specsParamsList 规格明细
|
||||
*/
|
||||
private void setSpecsParams(BdWaresSpecsSkuExt bdWaresSpecsSkuExt, Set<SpecsParams> specsParamsList) {
|
||||
SpecsParams specsParams = SpecsParams.builder()
|
||||
.pkSpecs(bdWaresSpecsSkuExt.getPkSpecs())
|
||||
.specsName(bdWaresSpecsSkuExt.getSpecsName())
|
||||
.build();
|
||||
specsParamsList.add(specsParams);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过规格列表查询商品最小库存单位,
|
||||
*
|
||||
* @param cuWaresItemsParams 明细参数
|
||||
* @return: SpecsSkuParam
|
||||
* @Author: sui q
|
||||
* @Date: 2022/9/19 16:26
|
||||
*/
|
||||
@Override
|
||||
public SpecsSkuParam queryWaresDetailSkuBySpecs(CuWaresItemsParams cuWaresItemsParams) {
|
||||
BdWaresSpecsSkuExt bdWaresSpecsSkuExt = baseMapper.queryWaresDetailSkuBySpecs(cuWaresItemsParams);
|
||||
|
@ -427,44 +374,21 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id修改值
|
||||
*
|
||||
* @param sku
|
||||
*/
|
||||
@Override
|
||||
public void updateBySkuId(BdWaresSpecsSku sku) {
|
||||
baseMapper.updateBySkuId(sku);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询sku (可查询删除数据)
|
||||
*
|
||||
* @param pkWaresSpecsSku
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public BdWaresSpecsSku selectByWaresSpecsSkuIdAndDel(Integer pkWaresSpecsSku) {
|
||||
return baseMapper.selectByWaresSpecsSkuIdAndDel(pkWaresSpecsSku);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据商品id 查询
|
||||
*
|
||||
* @param waresIds
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<BdWaresSpecsSkuExt> selectByWaresSpecsSku(List<Integer> waresIds) {
|
||||
return baseMapper.selectByWaresSpecsSku(waresIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id 批量查询sku 信息
|
||||
*
|
||||
* @param pkWaresSpecsSku
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<WaresItemWaresInfo> selectByPkIds(List<Integer> pkWaresSpecsSku) {
|
||||
return baseMapper.selectByPkIds(pkWaresSpecsSku);
|
||||
|
@ -489,7 +413,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
waresItemVo.getWaresItemsParamList().forEach(waresItemWaresInfo -> {
|
||||
waresDetailExtMap.put(waresItemWaresInfo.getPkWaresDetail().toString() + waresItemWaresInfo.getPkWaresSpecsSku(), waresItemWaresInfo);
|
||||
// 设置规格值 名称拼接
|
||||
List<BdWaresSpecsRelationExt> waresSpecsRelationExts = waresSpecsRelationService.selectByWaresSpecsSku(waresItemWaresInfo.getPkWaresSpecsSku());
|
||||
List<BdWaresSpecsRelationExt> waresSpecsRelationExts = iBdWaresSpecsRelationService.selectByWaresSpecsSku(waresItemWaresInfo.getPkWaresSpecsSku());
|
||||
Set<String> specsNames = waresSpecsRelationExts.stream().map(BdWaresSpecsRelationExt::getSpecsName).collect(Collectors.toSet());
|
||||
waresItemWaresInfo.setSkuInfo(StringUtils.join(specsNames, ","));
|
||||
});
|
||||
|
@ -497,11 +421,11 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
if (EOrderType.RETAIL_REPURCHASE.getValue() == specialArea
|
||||
|| EOrderType.RETAIL_CONSUME.getValue() == specialArea) {
|
||||
// 2024.12.30 添加需求,复消也需要处理级差
|
||||
CuMember cuMember = saOrderService.getCuMemberByKey(pkMember);
|
||||
CuMember cuMember = iSaOrderService.getCuMemberByKey(pkMember);
|
||||
int level = cuMember.getPkSettleGrade();
|
||||
int rangeType = ERangeType.GRADE.getValue();
|
||||
List<Integer> pkWaresSpecsSku = productGroup.stream().map(ProductGroup::getPkSkuId).collect(Collectors.toList());
|
||||
List<BdWaresRange> bdWaresRangeList = bdWaresRangeService.querySkuWaresRangeByCondition(cuMember.getPkSettleCountry(), rangeType, level, pkWaresSpecsSku);
|
||||
List<BdWaresRange> bdWaresRangeList = iBdWaresRangeService.querySkuWaresRangeByCondition(cuMember.getPkSettleCountry(), rangeType, level, pkWaresSpecsSku);
|
||||
bdWaresRangeList.forEach(bdWaresRange -> {
|
||||
String key = bdWaresRange.getPkWaresDetail().toString() + bdWaresRange.getPkWaresSpecsSku();
|
||||
if (waresDetailExtMap.containsKey(key)) {
|
||||
|
@ -519,11 +443,11 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
}
|
||||
|
||||
// 前台传递结算国 跨国报单计算价格使用
|
||||
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
|
||||
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
|
||||
if (pkCountry != null) {
|
||||
// 当登陆人的结算国和前端结算国不一致 即为跨国报单
|
||||
if (!pkCountry.equals(SecurityUtils.getPkCountry())) {
|
||||
R<CurrencyDTO> kgCurrency = currencyServiceApi.getCurrency(pkCountry);
|
||||
R<CurrencyDTO> kgCurrency = iCurrencyServiceApi.getCurrency(pkCountry);
|
||||
|
||||
BigDecimal price = waresItemVo.getPrice();
|
||||
waresItemVo.setPrice(price.multiply(currency.getData().getInExchangeRate()).divide(kgCurrency.getData().getInExchangeRate(), 2, BigDecimal.ROUND_HALF_UP));
|
||||
|
@ -539,23 +463,11 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
return waresItemVo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据商品id查询规格价格最小值
|
||||
*
|
||||
* @param pkWaresIds
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<BdWaresSpecsSkuExt> selectByMinWaresSpecsSkuByPkWaresList(List<Integer> pkWaresIds) {
|
||||
return baseMapper.selectByMinWaresSpecsSkuByPkWaresList(pkWaresIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id 查询
|
||||
*
|
||||
* @param pkWaresSpecsSku
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public BdWaresSpecsSkuExt selectByPkWaresSpecsSku(Integer pkWaresSpecsSku) {
|
||||
return baseMapper.selectByPkWaresSpecsSku(pkWaresSpecsSku);
|
||||
|
@ -573,7 +485,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
|| ESpecialArea.RETAIL_RESCISSION.getValue() == specialArea) {
|
||||
// 查询级差等级
|
||||
// 2024.12.30 添加需求,复消也需要处理级差
|
||||
RangeDTO rangeDTO = rangeServiceApi.queryRangeDtoByCondition(param.getPkCountry(), ERangeType.GRADE.getValue(), pkGrade).getData();
|
||||
RangeDTO rangeDTO = iRangeServiceApi.queryRangeDtoByCondition(param.getPkCountry(), ERangeType.GRADE.getValue(), pkGrade).getData();
|
||||
if (rangeDTO == null) {
|
||||
return new RetailWaresDetailVO();
|
||||
}
|
||||
|
@ -584,7 +496,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
|
||||
if (CollectionUtil.isNotEmpty(waresSpecsSkuExtList)) {
|
||||
// 获取汇率
|
||||
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
|
||||
R<CurrencyDTO> currency = iCurrencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
|
||||
|
||||
// 商品关联产品规格ID
|
||||
Set<Integer> pkSkuIdList = waresSpecsSkuExtList.stream().map(BdWaresSpecsSkuExt::getPkId).collect(Collectors.toSet());
|
||||
|
@ -609,7 +521,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
//查询标签合集
|
||||
BdWaresLabel waresLabel = new BdWaresLabel();
|
||||
waresLabel.setPkWares(waresSpecsSkuExtList.get(0).getPkWares());
|
||||
List<BdLabelExt> labelList = waresLabelService.selectByList(waresLabel);
|
||||
List<BdLabelExt> labelList = iBdWaresLabelService.selectByList(waresLabel);
|
||||
|
||||
// 保证标签
|
||||
List<BdLabel> ensureLabelList = new ArrayList<>();
|
||||
|
@ -640,7 +552,7 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl<BdWaresSpecsSkuMappe
|
|||
// 封装商品明细
|
||||
List<CuWaresItemsParams> cuWaresItemsParamsList = setUpWaresItemsParams(waresSpecsSkuExtList, specsNameMap, currency.getData().getInExchangeRate());
|
||||
// 商品编号查询产品详情
|
||||
List<CuProductParams> productList = waresDetailService.selectByWaresCode(waresCode, specialArea, null);
|
||||
List<CuProductParams> productList = iBdWaresDetailService.selectByWaresCode(waresCode, specialArea, null);
|
||||
List<CuProductParams> productResultList = new ArrayList<>();
|
||||
for (CuProductParams productVO : productList) {
|
||||
List<CuWaresItemsParams> list = new ArrayList<>();
|
||||
|
|
|
@ -188,16 +188,6 @@
|
|||
<if test="param.productName != null and param.productName != ''">
|
||||
and bp.product_name like '%' || #{param.productName} || '%'
|
||||
</if>
|
||||
<if test="param.secondDeliver != null">
|
||||
<choose>
|
||||
<when test="param.secondDeliver == 0">
|
||||
and so.PK_ORIGINAL_ORDER is not null
|
||||
</when>
|
||||
<otherwise>
|
||||
and so.PK_ORIGINAL_ORDER is null
|
||||
</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
<!-- 地区权限处理 -->
|
||||
<if test="param.areaScopeList != null and param.areaScopeList.size > 0">
|
||||
and so.rec_province in
|
||||
|
@ -368,16 +358,6 @@
|
|||
<if test="param.productName != null and param.productName != ''">
|
||||
and bp.product_name like '%' || #{param.productName} || '%'
|
||||
</if>
|
||||
<if test="param.secondDeliver != null">
|
||||
<choose>
|
||||
<when test="param.secondDeliver == 0">
|
||||
and so.PK_ORIGINAL_ORDER is not null
|
||||
</when>
|
||||
<otherwise>
|
||||
and so.PK_ORIGINAL_ORDER is null
|
||||
</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
<!-- 地区权限处理 -->
|
||||
<if test="param.areaScopeList != null and param.areaScopeList.size > 0">
|
||||
and so.rec_province in
|
||||
|
|
|
@ -373,16 +373,6 @@
|
|||
and sd.deliver_time >= #{param.deliverTime[0]}
|
||||
and #{param.deliverTime[1]} >= sd.deliver_time
|
||||
</if>
|
||||
<if test="param.secondDeliver != null">
|
||||
<choose>
|
||||
<when test="param.secondDeliver == 0">
|
||||
and so.PK_ORIGINAL_ORDER is not null
|
||||
</when>
|
||||
<otherwise>
|
||||
and so.PK_ORIGINAL_ORDER is null
|
||||
</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
<!-- 地区权限处理 -->
|
||||
<if test="param.areaScopeList != null and param.areaScopeList.size > 0">
|
||||
and so.rec_province in
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
<result column="SHIPPING_CHANNEL" property="shippingChannel"/>
|
||||
<result column="REPURCHASE_TYPE" property="repurchaseType"/>
|
||||
<result column="SYSTEM_TYPE" property="systemType"/>
|
||||
<result column="WMS_CODE" property="wmsCode"/>
|
||||
<collection property="specsList" ofType="com.hzs.common.domain.sale.classify.BdSpecs">
|
||||
<result column="PK_SPECS_ID" property="pkId"/>
|
||||
<result column="PK_SPECS_TYPE" property="pkSpecsType"/>
|
||||
|
@ -75,6 +76,7 @@
|
|||
<result column="IS_PUT_ON" property="isPutOn"/>
|
||||
<result column="LISTING_TIME" property="listingTime"/>
|
||||
<result column="REMOVAL_TIME" property="removalTime"/>
|
||||
<result column="WMS_CODE" property="wmsCode"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="getLastProductCode" resultType="string">
|
||||
|
@ -186,7 +188,8 @@
|
|||
|
||||
<select id="queryProductExtBySpecsId" resultMap="BdProduct">
|
||||
<foreach collection="productSpecsList" item="item" separator=" union ">
|
||||
select bp.pk_id,bp.product_code,bp.product_name,bp.pk_country,bp.cover,bc.pk_id pk_specs_id,bc.pk_specs_type,bc.specs_name from bd_product bp
|
||||
select bp.pk_id,bp.product_code,bp.product_name,bp.pk_country,bp.cover,bc.pk_id pk_specs_id,bc.pk_specs_type,bc.specs_name from bd_product
|
||||
bp
|
||||
inner join bd_product_extend be
|
||||
on bp.pk_id = be.pk_product
|
||||
inner join bd_product_specs bs
|
||||
|
@ -232,4 +235,24 @@
|
|||
and bp.pk_id = #{productId}
|
||||
</select>
|
||||
|
||||
<!-- 根据商品获取对应产品信息 -->
|
||||
<select id="listProductInfoByWaresCode" resultType="com.hzs.common.domain.sale.product.BdProduct">
|
||||
select bp.pk_id, bp.product_code
|
||||
from bd_wares bw
|
||||
left join BD_WARES_DETAIL bwd
|
||||
on bw.pk_id = bwd.pk_wares
|
||||
and bwd.del_flag = 0
|
||||
and bwd.is_gift = 1
|
||||
left join bd_product bp
|
||||
on bp.pk_id = bwd.pk_product
|
||||
and bp.del_flag = 0
|
||||
where bw.del_flag = 0
|
||||
and bw.special_area = #{specialArea}
|
||||
and bw.wares_code in
|
||||
<foreach collection="waresCodeList" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
order by bw.pk_id
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -373,6 +373,7 @@
|
|||
bw.WARES_CODE,
|
||||
bw.WARES_NAME,
|
||||
PK_AREA_CLASSIFY,
|
||||
COVER,
|
||||
COVER1,
|
||||
bw.WARES_PRICE,
|
||||
bw.WARES_ACHIEVE,
|
||||
|
|
|
@ -15,7 +15,9 @@
|
|||
</resultMap>
|
||||
|
||||
<delete id="deleteByPkPostage">
|
||||
delete from BD_WARES_SPECIAL_POSTAGE where PK_POSTAGE = #{pkPostage}
|
||||
delete
|
||||
from BD_WARES_SPECIAL_POSTAGE
|
||||
where PK_POSTAGE = #{pkPostage}
|
||||
</delete>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="WaresItemVo" type="com.hzs.sale.shopping.vo.WaresItemVo">
|
||||
<result column="WARES_CODE" property="waresCode"/>
|
||||
<result column="COVER" property="cover"/>
|
||||
<result column="COVER1" property="cover1"/>
|
||||
<result column="WARES_NAME" property="waresName"/>
|
||||
<result column="IS_MAKER_GIFT" property="isMakerGift"/>
|
||||
|
@ -144,10 +145,10 @@
|
|||
</foreach>
|
||||
and br.del_flag = 0
|
||||
and bk.del_flag = 0
|
||||
and wd.DEL_FLAG=0
|
||||
and bs.DEL_FLAG=0
|
||||
and st.DEL_FLAG=0
|
||||
and sp.DEL_FLAG=0
|
||||
and wd.DEL_FLAG = 0
|
||||
and bs.DEL_FLAG = 0
|
||||
and st.DEL_FLAG = 0
|
||||
and sp.DEL_FLAG = 0
|
||||
order by bs.PK_SPECS_TYPE
|
||||
</select>
|
||||
|
||||
|
@ -217,7 +218,8 @@
|
|||
</select>
|
||||
|
||||
<select id="selectByPkIds" resultType="com.hzs.sale.shopping.vo.WaresItemWaresInfo">
|
||||
select wss.SPEC_COVER specCover,bw.WARES_NAME waresName,wd.QUANTITY quantity,bp.PRODUCT_NAME productName ,wd.PK_ID pkWaresDetail,wss.PK_ID pkWaresSpecsSku,
|
||||
select wss.SPEC_COVER specCover,bw.WARES_NAME waresName,wd.QUANTITY quantity,bp.PRODUCT_NAME productName ,wd.PK_ID pkWaresDetail,wss.PK_ID
|
||||
pkWaresSpecsSku,
|
||||
( select listagg(bs.SPECS_NAME,',') WITHIN GROUP(order by bs.SPECS_NAME) AS skuInfo from BD_WARES_SPECS_RELATION wsr
|
||||
left join BD_WARES_SPECS ws on ws.PK_ID = wsr.PK_WARES_SPECS
|
||||
left join BD_SPECS bs on bs.PK_ID = ws.PK_SPECS where wss.pk_id = wsr.PK_WARES_SPECS_SKU and wsr.del_flag = 0) skuInfo,
|
||||
|
@ -326,10 +328,20 @@
|
|||
|
||||
<select id="selectWaresItemsVO" resultMap="WaresItemVo">
|
||||
<foreach collection="productGroup" item="item" index="index" separator=" union ">
|
||||
select bw.wares_code,bw.cover1,bw.WARES_NAME,be.is_maker_gift,
|
||||
bs.price price,bs.achieve achieve,bs.ass_achieve ass_achieve,
|
||||
bd.pk_id pk_wares_detail,bs.pk_id pk_wares_specs_sku,bp.product_name,
|
||||
bs.spec_cover,#{item.quantity} quantity from BD_WARES bw
|
||||
select bw.wares_code,
|
||||
bw.cover,
|
||||
bw.cover1,
|
||||
bw.WARES_NAME,
|
||||
be.is_maker_gift,
|
||||
bs.price price,
|
||||
bs.achieve achieve,
|
||||
bs.ass_achieve ass_achieve,
|
||||
bd.pk_id pk_wares_detail,
|
||||
bs.pk_id pk_wares_specs_sku,
|
||||
bp.product_name,
|
||||
bs.spec_cover,
|
||||
#{item.quantity} quantity
|
||||
from BD_WARES bw
|
||||
inner join bd_wares_extend be
|
||||
on bw.pk_id = be.pk_wares
|
||||
inner join bd_wares_detail bd
|
||||
|
|
|
@ -1,60 +0,0 @@
|
|||
package com.hzs.system.base.controller.api;
|
||||
|
||||
import com.hzs.common.core.web.controller.BaseController;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
import com.hzs.common.domain.system.ext.BdFeedbackExt;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.system.base.service.IBdFeedbackService;
|
||||
import com.hzs.system.base.vo.FeedbackVO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 意见反馈 前端控制器
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-02-05
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/feedback")
|
||||
public class ApiFeedbackController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
IBdFeedbackService bdFeedbackService;
|
||||
|
||||
/**
|
||||
* 添加意见反馈
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("save")
|
||||
public AjaxResult save(@Valid @RequestBody FeedbackVO feedbackVO) {
|
||||
feedbackVO.setPkMember(SecurityUtils.getUserId());
|
||||
feedbackVO.setPkCountry(SecurityUtils.getPkCountry());
|
||||
return toAjax(bdFeedbackService.saveFeedback(feedbackVO));
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("index-list")
|
||||
public TableDataInfo indexList(Integer isShowDay) {
|
||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
FeedbackVO feedbackVO = FeedbackVO.builder().pkCountry(pkCountry).isShowDay(isShowDay)
|
||||
.pkMember(SecurityUtils.getUserId())
|
||||
.build();
|
||||
startPage();
|
||||
Object[] objects = bdFeedbackService.selectFeedbackList(feedbackVO);
|
||||
TableDataInfo tableDataInfo = getDataTable((List<BdFeedbackExt>) objects[0]);
|
||||
tableDataInfo.setRows((List<FeedbackVO>) objects[1]);
|
||||
return tableDataInfo;
|
||||
}
|
||||
|
||||
@GetMapping("index-detail")
|
||||
public AjaxResult index(Long pkId) {
|
||||
return AjaxResult.success(bdFeedbackService.showFeedbackVOById(pkId));
|
||||
}
|
||||
|
||||
}
|
|
@ -8,7 +8,6 @@ import com.hzs.common.core.web.domain.AjaxResult;
|
|||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
import com.hzs.common.domain.system.base.BdNotice;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.system.base.service.IBdFeedbackService;
|
||||
import com.hzs.system.base.service.IBdNoticeService;
|
||||
import com.hzs.system.base.vo.BdNoticeCountVO;
|
||||
import com.hzs.system.base.vo.BdNoticeVO;
|
||||
|
@ -22,12 +21,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 公告、站内信
|
||||
*
|
||||
* @Description:
|
||||
* @Author: ljc
|
||||
* @Time: 2023/2/6 16:52
|
||||
* @Classname: ApiNoticeController
|
||||
* @Package_name: com.hzs.system.base.controller.api
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/notice")
|
||||
|
@ -36,9 +29,6 @@ public class ApiNoticeController extends BaseController {
|
|||
@Autowired
|
||||
private IBdNoticeService noticeService;
|
||||
|
||||
@Autowired
|
||||
private IBdFeedbackService bdFeedbackService;
|
||||
|
||||
/**
|
||||
* 首页显示公告、站内信
|
||||
*
|
||||
|
@ -83,7 +73,7 @@ public class ApiNoticeController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 会员首页 公告、站内信、意见反馈数
|
||||
* 会员首页 公告、站内信
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
|
@ -100,11 +90,8 @@ public class ApiNoticeController extends BaseController {
|
|||
BdNoticeVO stationVO = BdNoticeVO.builder().pkCountry(pkCountry).pkMember(SecurityUtils.getUserId())
|
||||
.websiteType(websiteType).functionType(ENoticeFunctionType.MAIL.getValue()).build();
|
||||
Integer stationNum = noticeService.showIndexMailCount(stationVO);
|
||||
//查询意见反馈数
|
||||
Integer feedbackNum = bdFeedbackService.selectIndexFeedbackCount(pkCountry, SecurityUtils.getUserId());
|
||||
BdNoticeCountVO noticeCountVO = BdNoticeCountVO.builder()
|
||||
.noticeNum(noticeNum).stationNum(stationNum)
|
||||
.feedbackNum(feedbackNum).build();
|
||||
.noticeNum(noticeNum).stationNum(stationNum).build();
|
||||
return AjaxResult.success(noticeCountVO);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,136 +0,0 @@
|
|||
package com.hzs.system.base.controller.manage;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.hzs.common.core.annotation.Log;
|
||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
||||
import com.hzs.common.core.constant.msg.FinanceMsgConstants;
|
||||
import com.hzs.common.core.enums.*;
|
||||
import com.hzs.common.core.utils.poi.ExcelUtil;
|
||||
import com.hzs.common.core.web.controller.BaseController;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.common.core.web.page.TableDataInfo;
|
||||
import com.hzs.common.domain.system.ext.BdFeedbackExt;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.common.service.ITransactionCommonService;
|
||||
import com.hzs.common.util.TransactionUtils;
|
||||
import com.hzs.system.base.service.IBdFeedbackReplyService;
|
||||
import com.hzs.system.base.service.IBdFeedbackService;
|
||||
import com.hzs.system.base.vo.BdFeedbackReplyVO;
|
||||
import com.hzs.system.base.vo.FeedbackVO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 意见反馈 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-02-05
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/manage/feedback")
|
||||
public class BdFeedbackController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
IBdFeedbackService bdFeedbackService;
|
||||
|
||||
@Autowired
|
||||
IBdFeedbackReplyService bdFeedbackReplyService;
|
||||
|
||||
|
||||
@Autowired
|
||||
ITransactionCommonService iTransactionCommonService;
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Log(module = EOperationModule.MEMBER_FEEDBACK, business = EOperationBusiness.MEMBER_FEEDBACK, method = EOperationMethod.SELECT)
|
||||
@PostMapping("list")
|
||||
public TableDataInfo getFeedbackList(@RequestBody FeedbackVO feedbackVO) {
|
||||
feedbackVO.setPkCountry(SecurityUtils.getPkCountry());
|
||||
startPage();
|
||||
Object[] objects = bdFeedbackService.selectFeedbackList(feedbackVO);
|
||||
|
||||
TableDataInfo tableDataInfo = getDataTable((List<BdFeedbackExt>) objects[0]);
|
||||
tableDataInfo.setRows((List<FeedbackVO>) objects[1]);
|
||||
return tableDataInfo;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 意见反馈列表导出
|
||||
*
|
||||
* @param response 响应
|
||||
* @param feedbackVO 查询入参
|
||||
*/
|
||||
@Log(module = EOperationModule.MEMBER_FEEDBACK, business = EOperationBusiness.MEMBER_FEEDBACK, method = EOperationMethod.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, FeedbackVO feedbackVO) {
|
||||
feedbackVO.setPkCountry(SecurityUtils.getPkCountry());
|
||||
List<FeedbackVO> feedbackVOList = (List<FeedbackVO>) bdFeedbackService.selectFeedbackList(feedbackVO)[1];
|
||||
if (CollUtil.isNotEmpty(feedbackVOList)) {
|
||||
//枚举翻译
|
||||
Map<String, String> transactionMap = iTransactionCommonService.exportEnumTransaction(EFeedbackType.values(), EFeedbackStatus.values());
|
||||
for (FeedbackVO feedback : feedbackVOList) {
|
||||
feedback.setTypeVal(transactionMap.get(EnumsPrefixConstants.FEEDBACK_TYPE + feedback.getType()));
|
||||
feedback.setStatusVal(transactionMap.get(EnumsPrefixConstants.FEEDBACK_STATUS + feedback.getStatus()));
|
||||
}
|
||||
}
|
||||
ExcelUtil<FeedbackVO> util = new ExcelUtil<>(FeedbackVO.class);
|
||||
util.exportExcel(response, feedbackVOList, "意见反馈");
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除公告信息
|
||||
*
|
||||
* @param pkId
|
||||
* @return
|
||||
*/
|
||||
@Log(module = EOperationModule.MEMBER_FEEDBACK, business = EOperationBusiness.MEMBER_FEEDBACK, method = EOperationMethod.DELETE)
|
||||
@GetMapping("/delete")
|
||||
public AjaxResult delete(Long pkId) {
|
||||
FeedbackVO feedbackVO = new FeedbackVO();
|
||||
feedbackVO.setPkId(pkId);
|
||||
feedbackVO.setPkModified(SecurityUtils.getUserId());
|
||||
return toAjax(bdFeedbackService.deleteById(feedbackVO));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询修改状态
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Log(module = EOperationModule.MEMBER_FEEDBACK, business = EOperationBusiness.MEMBER_FEEDBACK, method = EOperationMethod.UPDATE)
|
||||
@GetMapping("/show")
|
||||
public AjaxResult showFeedbackVOById(Long pkId) {
|
||||
return AjaxResult.success(bdFeedbackService.showFeedbackVOById(pkId));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 添加意见反馈
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Log(module = EOperationModule.MEMBER_FEEDBACK, business = EOperationBusiness.MEMBER_FEEDBACK, method = EOperationMethod.INSERT, remark = "意见反馈")
|
||||
@PostMapping("save")
|
||||
public AjaxResult save(@RequestBody BdFeedbackReplyVO feedbackReplyVO) {
|
||||
|
||||
if (null == feedbackReplyVO.getReplyContent()) {
|
||||
return AjaxResult.error("回复内容不能为空!");
|
||||
}
|
||||
feedbackReplyVO.setPkCreator(SecurityUtils.getUserId());
|
||||
feedbackReplyVO.setPkCountry(SecurityUtils.getPkCountry());
|
||||
return toAjax(bdFeedbackReplyService.saveFeedbackReplyInfo(feedbackReplyVO));
|
||||
}
|
||||
|
||||
}
|
|
@ -1,55 +0,0 @@
|
|||
package com.hzs.system.base.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.system.base.BdFeedback;
|
||||
import com.hzs.common.domain.system.ext.BdFeedbackExt;
|
||||
import com.hzs.system.base.vo.FeedbackVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 意见反馈 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-02-05
|
||||
*/
|
||||
public interface BdFeedbackMapper extends BaseMapper<BdFeedback> {
|
||||
|
||||
/**
|
||||
* 查询意见反馈列表
|
||||
*
|
||||
* @param feedbackVO VO
|
||||
* @return List<FeedbackVO>
|
||||
*/
|
||||
List<BdFeedbackExt> selectFeedbackList(FeedbackVO feedbackVO);
|
||||
|
||||
|
||||
/**
|
||||
* 删除信息
|
||||
*
|
||||
* @param feedbackVO 参数
|
||||
* @return pkCountry
|
||||
*/
|
||||
Integer deleteById(FeedbackVO feedbackVO);
|
||||
|
||||
/**
|
||||
* 查看详情
|
||||
*
|
||||
* @param pkId 主键ID
|
||||
* @return BdFeedbackExt
|
||||
*/
|
||||
BdFeedbackExt showFeedbackVOById(Long pkId);
|
||||
|
||||
/**
|
||||
* 查询会员首页意见反馈数
|
||||
*
|
||||
* @param pkCountry 国家ID
|
||||
* @return pkCountry
|
||||
*/
|
||||
Integer selectIndexFeedbackCount(@Param("pkCountry") Integer pkCountry,@Param("pkMember") Long pkMember);
|
||||
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
package com.hzs.system.base.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hzs.common.domain.system.base.BdFeedbackReply;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 意见反馈回复 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-25
|
||||
*/
|
||||
public interface BdFeedbackReplyMapper extends BaseMapper<BdFeedbackReply> {
|
||||
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
package com.hzs.system.base.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.system.base.BdFeedbackReply;
|
||||
import com.hzs.system.base.vo.BdFeedbackReplyVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 意见反馈回复 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-25
|
||||
*/
|
||||
public interface IBdFeedbackReplyService extends IService<BdFeedbackReply> {
|
||||
|
||||
/**
|
||||
* 保存意见反馈回复
|
||||
*
|
||||
* @param feedbackReplyVO 意见反馈回复信息
|
||||
* @return Boolean
|
||||
*/
|
||||
Boolean saveFeedbackReplyInfo(BdFeedbackReplyVO feedbackReplyVO);
|
||||
|
||||
/**
|
||||
* 根据意见反馈ID查询回复信息
|
||||
*
|
||||
* @param pkFeedbackId
|
||||
* @param pkCountry
|
||||
* @return
|
||||
*/
|
||||
List<BdFeedbackReplyVO> selectFeedbackReplyById(Long pkFeedbackId, Integer pkCountry);
|
||||
|
||||
}
|
|
@ -1,67 +0,0 @@
|
|||
package com.hzs.system.base.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.system.base.BdFeedback;
|
||||
import com.hzs.system.base.vo.FeedbackVO;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 意见反馈 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-02-05
|
||||
*/
|
||||
public interface IBdFeedbackService extends IService<BdFeedback> {
|
||||
/**
|
||||
* 保存意见反馈
|
||||
*
|
||||
* @param feedbackVO
|
||||
* @return
|
||||
*/
|
||||
Integer saveFeedback(FeedbackVO feedbackVO);
|
||||
|
||||
/**
|
||||
* 查询意见反馈列表
|
||||
*
|
||||
* @param feedbackVO VO
|
||||
* @return List<FeedbackVO>
|
||||
*/
|
||||
Object[] selectFeedbackList(FeedbackVO feedbackVO);
|
||||
|
||||
/**
|
||||
* 删除信息
|
||||
*
|
||||
* @param feedbackVO
|
||||
* @return
|
||||
*/
|
||||
Integer deleteById(FeedbackVO feedbackVO);
|
||||
|
||||
/**
|
||||
* 查看详情
|
||||
*
|
||||
* @param pkId
|
||||
* @return
|
||||
*/
|
||||
FeedbackVO showFeedbackVOById(Long pkId);
|
||||
|
||||
/**
|
||||
* 根据ID修改状态
|
||||
*
|
||||
* @param pkMember 用户ID
|
||||
* @param pkId 主健
|
||||
* @return Boolean
|
||||
*/
|
||||
Boolean updateFeedbackById(Long pkMember, Long pkId);
|
||||
|
||||
|
||||
/**
|
||||
* 查询会员首页意见反馈数
|
||||
*
|
||||
* @param pkCountry 国家ID
|
||||
* @return pkCountry
|
||||
*/
|
||||
Integer selectIndexFeedbackCount(Integer pkCountry,Long pkMember);
|
||||
|
||||
}
|
|
@ -1,53 +0,0 @@
|
|||
package com.hzs.system.base.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.common.core.enums.EFeedbackStatus;
|
||||
import com.hzs.common.domain.system.base.BdFeedback;
|
||||
import com.hzs.common.domain.system.base.BdFeedbackReply;
|
||||
import com.hzs.system.base.mapper.BdFeedbackReplyMapper;
|
||||
import com.hzs.system.base.service.IBdFeedbackReplyService;
|
||||
import com.hzs.system.base.service.IBdFeedbackService;
|
||||
import com.hzs.system.base.vo.BdFeedbackReplyVO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 意见反馈回复 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-25
|
||||
*/
|
||||
@Service
|
||||
public class BdFeedbackReplyServiceImpl extends ServiceImpl<BdFeedbackReplyMapper, BdFeedbackReply> implements IBdFeedbackReplyService {
|
||||
@Autowired
|
||||
IBdFeedbackService bdFeedbackService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean saveFeedbackReplyInfo(BdFeedbackReplyVO feedbackReplyVO) {
|
||||
BdFeedback BdFeedback = bdFeedbackService.getById(feedbackReplyVO.getPkFeedbackId());
|
||||
if (BdFeedback.getStatus().equals(EFeedbackStatus.NO_FEEDBACK.getValue())) {
|
||||
bdFeedbackService.updateFeedbackById(feedbackReplyVO.getPkCreator(), feedbackReplyVO.getPkFeedbackId());
|
||||
}
|
||||
return save(BeanUtil.copyProperties(feedbackReplyVO, BdFeedbackReply.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BdFeedbackReplyVO> selectFeedbackReplyById(Long pkFeedbackId, Integer pkCountry) {
|
||||
QueryWrapper<BdFeedbackReply> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("PK_FEEDBACK_ID", pkFeedbackId);
|
||||
queryWrapper.eq("PK_COUNTRY", pkCountry);
|
||||
queryWrapper.orderByAsc("CREATION_TIME");
|
||||
return BeanUtil.copyToList(baseMapper.selectList(queryWrapper), BdFeedbackReplyVO.class);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,92 +0,0 @@
|
|||
package com.hzs.system.base.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.common.core.constant.SystemFieldConstants;
|
||||
import com.hzs.common.core.enums.EFeedbackStatus;
|
||||
import com.hzs.common.domain.system.base.BdFeedback;
|
||||
import com.hzs.common.domain.system.ext.BdFeedbackExt;
|
||||
import com.hzs.system.base.mapper.BdFeedbackMapper;
|
||||
import com.hzs.system.base.service.IBdFeedbackReplyService;
|
||||
import com.hzs.system.base.service.IBdFeedbackService;
|
||||
import com.hzs.system.base.vo.BdFeedbackReplyVO;
|
||||
import com.hzs.system.base.vo.FeedbackVO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 意见反馈 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-02-05
|
||||
*/
|
||||
@Service
|
||||
public class BdFeedbackServiceImpl extends ServiceImpl<BdFeedbackMapper, BdFeedback> implements IBdFeedbackService {
|
||||
|
||||
@Autowired
|
||||
IBdFeedbackReplyService bdFeedbackReplyService;
|
||||
|
||||
@Override
|
||||
public Integer saveFeedback(FeedbackVO feedbackVO) {
|
||||
BdFeedback bdFeedback = BeanUtil.copyProperties(feedbackVO, BdFeedback.class);
|
||||
bdFeedback.setPkCreator(feedbackVO.getPkMember());
|
||||
return baseMapper.insert(bdFeedback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] selectFeedbackList(FeedbackVO feedbackVO) {
|
||||
FeedbackVO feedback;
|
||||
List<FeedbackVO> feedbackVOList = new ArrayList<>();
|
||||
List<BdFeedbackExt> feedbackExtList = baseMapper.selectFeedbackList(feedbackVO);
|
||||
if (CollUtil.isNotEmpty(feedbackExtList)) {
|
||||
for (BdFeedbackExt feedbackExt : feedbackExtList) {
|
||||
List<BdFeedbackReplyVO> bdFeedbackReplyVOList = bdFeedbackReplyService.selectFeedbackReplyById(feedbackExt.getPkId(), feedbackExt.getPkCountry());
|
||||
feedback = BeanUtil.copyProperties(feedbackExt, FeedbackVO.class);
|
||||
feedback.setFeedbackReplyList(bdFeedbackReplyVOList);
|
||||
feedbackVOList.add(feedback);
|
||||
}
|
||||
}
|
||||
Object[] objects = new Object[]{feedbackExtList, feedbackVOList};
|
||||
return objects;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer deleteById(FeedbackVO feedbackVO) {
|
||||
return baseMapper.deleteById(feedbackVO);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public FeedbackVO showFeedbackVOById(Long pkId) {
|
||||
FeedbackVO feedbackVO = BeanUtil.copyProperties(baseMapper.showFeedbackVOById(pkId), FeedbackVO.class);
|
||||
List<BdFeedbackReplyVO> bdFeedbackReplyVOList = bdFeedbackReplyService.selectFeedbackReplyById(feedbackVO.getPkId(), feedbackVO.getPkCountry());
|
||||
feedbackVO.setFeedbackReplyList(bdFeedbackReplyVOList);
|
||||
return feedbackVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updateFeedbackById(Long pkMember, Long pkId) {
|
||||
UpdateWrapper<BdFeedback> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.set("STATUS", EFeedbackStatus.FEEDBACK_PROVIDED.getValue());
|
||||
updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, new Date());
|
||||
updateWrapper.set(SystemFieldConstants.PK_MODIFIED, pkMember);
|
||||
updateWrapper.eq("PK_ID", pkId);
|
||||
return update(updateWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer selectIndexFeedbackCount(Integer pkCountry,Long pkMember) {
|
||||
return baseMapper.selectIndexFeedbackCount(pkCountry,pkMember);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,56 +0,0 @@
|
|||
package com.hzs.system.base.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 意见反馈回复VO
|
||||
*
|
||||
* @Description:
|
||||
* @Author: ljc
|
||||
* @Time: 2023/4/25 14:01
|
||||
* @Classname: BdFeedbackReplyVO
|
||||
* @Package_name: com.hzs.system.base.vo
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class BdFeedbackReplyVO implements Serializable {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private Long pkId;
|
||||
|
||||
/**
|
||||
* 主表ID
|
||||
*/
|
||||
private Long pkFeedbackId;
|
||||
|
||||
/**
|
||||
* 回复内容
|
||||
*/
|
||||
private String replyContent;
|
||||
|
||||
/**
|
||||
* 会员主键
|
||||
*/
|
||||
private Long pkCreator;
|
||||
|
||||
/**
|
||||
* 国家 ID
|
||||
*/
|
||||
private Integer pkCountry;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date creationTime;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -9,12 +9,6 @@ import java.io.Serializable;
|
|||
|
||||
/**
|
||||
* 会员首页 记录数显示
|
||||
*
|
||||
* @Description:
|
||||
* @Author: ljc
|
||||
* @Time: 2023/5/9 17:37
|
||||
* @Classname: BdNoticeCountVO
|
||||
* @Package_name: com.hzs.system.base.vo
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
|
@ -31,9 +25,4 @@ public class BdNoticeCountVO implements Serializable {
|
|||
*/
|
||||
private Integer stationNum;
|
||||
|
||||
/**
|
||||
* 意见反馈数
|
||||
*/
|
||||
private Integer feedbackNum;
|
||||
|
||||
}
|
||||
|
|
|
@ -1,153 +0,0 @@
|
|||
package com.hzs.system.base.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.hzs.common.core.annotation.Excel;
|
||||
import com.hzs.common.core.annotation.Transaction;
|
||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 意见反馈VO
|
||||
*
|
||||
* @Description:
|
||||
* @Author: ljc
|
||||
* @Time: 2023/2/5 14:05
|
||||
* @Classname: Feedback
|
||||
* @Package_name: com.hzs.system.base.vo
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class FeedbackVO implements Serializable {
|
||||
private static final long serialVersionUID = -847776348100846568L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private Long pkId;
|
||||
|
||||
/**
|
||||
* 会员主键
|
||||
*/
|
||||
private Long pkMember;
|
||||
|
||||
|
||||
/**
|
||||
* 国家 ID
|
||||
*/
|
||||
private Integer pkCountry;
|
||||
|
||||
|
||||
/**
|
||||
* 会员编号
|
||||
*/
|
||||
@Excel(name = "会员编号")
|
||||
private String memberCode;
|
||||
|
||||
/**
|
||||
* 会员名称
|
||||
*/
|
||||
@Excel(name = "会员姓名")
|
||||
private String memberName;
|
||||
/**
|
||||
* 体系名称
|
||||
*/
|
||||
@Excel(name = "隶属体系")
|
||||
private String vertexName;
|
||||
/**
|
||||
* 团队名称
|
||||
*/
|
||||
@Excel(name = "隶属团队")
|
||||
private String teamName;
|
||||
|
||||
|
||||
/**
|
||||
* 类型:1:业务 2:平台BUG 3:客服问题 4:商品问题
|
||||
*/
|
||||
@NotNull(message = "请选择反馈类型")
|
||||
@Transaction(transactionKey = EnumsPrefixConstants.FEEDBACK_TYPE)
|
||||
private Integer type;
|
||||
|
||||
@Excel(name = "类型")
|
||||
private String typeVal;
|
||||
|
||||
/**
|
||||
* 意见
|
||||
*/
|
||||
@NotEmpty(message = "请填写反馈内容")
|
||||
@Size(max = 500, message = "个人意见不能超过500位")
|
||||
@Excel(name = "个人意见")
|
||||
private String idea;
|
||||
|
||||
/**
|
||||
* 状态(1:已反馈 2:未反馈")
|
||||
*/
|
||||
@Transaction(transactionKey = EnumsPrefixConstants.FEEDBACK_STATUS)
|
||||
private Integer status;
|
||||
|
||||
@Excel(name = "反馈状态")
|
||||
private String statusVal;
|
||||
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "填写日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date creationTime;
|
||||
|
||||
/**
|
||||
* 会员昵称
|
||||
*/
|
||||
private String nickName;
|
||||
|
||||
|
||||
/**
|
||||
* 会员头像
|
||||
*/
|
||||
private String headPath;
|
||||
|
||||
/**
|
||||
* 是否显示七天的数据
|
||||
*/
|
||||
private Integer isShowDay;
|
||||
|
||||
/**
|
||||
* 修改人ID
|
||||
*/
|
||||
private Long pkModified;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
private String startDate;
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private String endDate;
|
||||
/**
|
||||
* 隶属体系
|
||||
*/
|
||||
private Integer pkVertex;
|
||||
/**
|
||||
* 隶属团队
|
||||
*/
|
||||
private Integer pkTeamCode;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 回复信息
|
||||
*/
|
||||
private List<BdFeedbackReplyVO> feedbackReplyList;
|
||||
}
|
|
@ -11,9 +11,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 会员特殊消费配置 Mapper 接口
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2025-02-20
|
||||
*/
|
||||
public interface BdMemberSpecialCurrencyMapper extends BaseMapper<BdMemberSpecialCurrency> {
|
||||
|
||||
|
|
|
@ -1540,26 +1540,7 @@ public class EnumsController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 意见反馈类型
|
||||
*
|
||||
* @return AjaxResult
|
||||
*/
|
||||
@GetMapping("/feedback-type")
|
||||
public AjaxResult getFeedback() {
|
||||
List<EnumEntity> enumEntityList = new ArrayList<>();
|
||||
for (EFeedbackType value : EFeedbackType.values()) {
|
||||
enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.FEEDBACK_TYPE));
|
||||
}
|
||||
return AjaxResult.success(enumEntityList);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description: 发布位置
|
||||
* @author: zhang jing
|
||||
* @date: 2022/12/8 17:48
|
||||
* @param: []
|
||||
* @return: com.hzs.common.core.web.domain.AjaxResult
|
||||
* 发布位置
|
||||
**/
|
||||
@GetMapping("/position")
|
||||
public AjaxResult getEPosition() {
|
||||
|
@ -1571,11 +1552,7 @@ public class EnumsController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* @description: 发布位置
|
||||
* @author: zhang jing
|
||||
* @date: 2022/12/8 17:48
|
||||
* @param: []
|
||||
* @return: com.hzs.common.core.web.domain.AjaxResult
|
||||
* 发布位置
|
||||
**/
|
||||
@GetMapping("/position-two")
|
||||
public AjaxResult getEPositionTwo() {
|
||||
|
@ -2441,21 +2418,6 @@ public class EnumsController extends BaseController {
|
|||
return AjaxResult.success(enumEntityList);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 意见反馈状态
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/get-feedback-status")
|
||||
public AjaxResult getFeedbackStatus() {
|
||||
List<EnumEntity> enumEntityList = new ArrayList<>();
|
||||
for (EFeedbackStatus value : EFeedbackStatus.values()) {
|
||||
enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.FEEDBACK_STATUS));
|
||||
}
|
||||
return AjaxResult.success(enumEntityList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 比率类型
|
||||
*
|
||||
|
|
|
@ -481,13 +481,6 @@ public class EnumsInitController {
|
|||
for (ENoticeGrade value : ENoticeGrade.values()) {
|
||||
initList.add(this.createData(value.getKey(), value.getLabel()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 意见反馈类型
|
||||
*/
|
||||
for (EFeedbackType value : EFeedbackType.values()) {
|
||||
initList.add(this.createData(value.getKey(), value.getLabel()));
|
||||
}
|
||||
/**
|
||||
* 业务办理流程类型
|
||||
*/
|
||||
|
@ -629,10 +622,6 @@ public class EnumsInitController {
|
|||
for (EReachState value : EReachState.values()) {
|
||||
initList.add(this.createData(value.getKey(), value.getLabel()));
|
||||
}
|
||||
// 意见反馈状态
|
||||
for (EFeedbackStatus value : EFeedbackStatus.values()) {
|
||||
initList.add(this.createData(value.getKey(), value.getLabel()));
|
||||
}
|
||||
// 比率类型
|
||||
for (ERatioType value : ERatioType.values()) {
|
||||
initList.add(this.createData(value.getKey(), value.getLabel()));
|
||||
|
|
|
@ -1,118 +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.system.base.mapper.BdFeedbackMapper">
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="BaseResultMap" type="com.hzs.common.domain.system.base.BdFeedback">
|
||||
<result column="CREATION_TIME" property="creationTime"/>
|
||||
<result column="MODIFIED_TIME" property="modifiedTime"/>
|
||||
<result column="DEL_FLAG" property="delFlag"/>
|
||||
<result column="PK_COUNTRY" property="pkCountry"/>
|
||||
<result column="PK_CREATOR" property="pkCreator"/>
|
||||
<result column="PK_MODIFIED" property="pkModified"/>
|
||||
<result column="PK_ID" property="pkId"/>
|
||||
<result column="PK_MEMBER" property="pkMember"/>
|
||||
<result column="TYPE" property="type"/>
|
||||
<result column="IDEA" property="idea"/>
|
||||
<result column="STATUS" property="status"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 通用查询结果列 -->
|
||||
<sql id="Base_Column_List">
|
||||
CREATION_TIME,
|
||||
MODIFIED_TIME,
|
||||
DEL_FLAG,
|
||||
PK_COUNTRY,
|
||||
PK_CREATOR,
|
||||
PK_MODIFIED,
|
||||
PK_ID, PK_MEMBER, TYPE, IDEA
|
||||
</sql>
|
||||
|
||||
|
||||
<select id="selectFeedbackList" resultType="com.hzs.common.domain.system.ext.BdFeedbackExt">
|
||||
select m.member_code memberCode,
|
||||
m.member_name memberName,
|
||||
m.nick_name nickName,
|
||||
m.head_path headPath,
|
||||
f.type,
|
||||
f.status,
|
||||
f.idea,
|
||||
f.pk_id pkId,
|
||||
f.pk_country pkCountry,
|
||||
f.creation_time creationTime,
|
||||
bv.VERTEX_NAME vertexName,
|
||||
cmt.team_name teamName
|
||||
from bd_feedback f
|
||||
left join cu_member m
|
||||
on f.pk_member = m.pk_id
|
||||
left join bd_vertex bv on bv.PK_ID = m.PK_VERTEX
|
||||
left join cu_member_team cmt on m.pk_team_code = cmt.pk_id
|
||||
where f.del_flag = 0
|
||||
and f.pk_country = #{pkCountry}
|
||||
<if test="memberCode != null and memberCode != ''">
|
||||
and m.member_code like #{memberCode} || '%'
|
||||
</if>
|
||||
<if test="memberName != null and memberName != ''">
|
||||
and m.member_name like #{memberName} || '%'
|
||||
</if>
|
||||
<if test="pkVertex != null">
|
||||
and m.PK_VERTEX=#{pkVertex}
|
||||
</if>
|
||||
<if test="pkTeamCode != null">
|
||||
and m.PK_TEAM_CODE=#{pkTeamCode}
|
||||
</if>
|
||||
<if test="type != null">
|
||||
and f.type = #{type}
|
||||
</if>
|
||||
<if test="status != null">
|
||||
and f.status = #{status}
|
||||
</if>
|
||||
<if test="startDate != null and startDate != ''">
|
||||
and f.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
|
||||
</if>
|
||||
<if test="endDate != null and endDate != ''">
|
||||
and f.CREATION_TIME <= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
|
||||
</if>
|
||||
<if test='isShowDay != null and isShowDay == "1"'>
|
||||
and n.creation_time >= trunc(SYSDATE - 6)
|
||||
</if>
|
||||
<if test="pkMember != null">
|
||||
and f.PK_MEMBER = #{pkMember}
|
||||
</if>
|
||||
order by f.creation_time desc
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectIndexFeedbackCount" resultType="Integer">
|
||||
select count(1)
|
||||
from bd_feedback f
|
||||
where f.del_flag = 0
|
||||
and f.pk_country = #{pkCountry}
|
||||
and f.PK_MEMBER = #{pkMember}
|
||||
</select>
|
||||
|
||||
<update id="deleteById">
|
||||
update bd_feedback f
|
||||
set f.del_flag = 1, f.modified_time = sysdate, f.pk_modified = #{pkModified}
|
||||
where f.pk_id = #{pkId}
|
||||
</update>
|
||||
|
||||
|
||||
<select id="showFeedbackVOById" resultType="com.hzs.common.domain.system.ext.BdFeedbackExt">
|
||||
select m.member_code memberCode,
|
||||
m.member_name memberName,
|
||||
m.nick_name nickName,
|
||||
m.head_path headPath,
|
||||
f.type,
|
||||
f.status,
|
||||
f.idea,
|
||||
f.pk_id pkId,
|
||||
f.pk_country pkCountry,
|
||||
f.creation_time creationTime
|
||||
from bd_feedback f
|
||||
left join cu_member m
|
||||
on f.pk_member = m.pk_id
|
||||
where f.del_flag = 0
|
||||
and f.pk_id = #{pkId}
|
||||
</select>
|
||||
</mapper>
|
|
@ -1,29 +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.system.base.mapper.BdFeedbackReplyMapper">
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="BaseResultMap" type="com.hzs.common.domain.system.base.BdFeedbackReply">
|
||||
<id column="PK_ID" property="pkId"/>
|
||||
<result column="CREATION_TIME" property="creationTime"/>
|
||||
<result column="MODIFIED_TIME" property="modifiedTime"/>
|
||||
<result column="DEL_FLAG" property="delFlag"/>
|
||||
<result column="PK_COUNTRY" property="pkCountry"/>
|
||||
<result column="PK_CREATOR" property="pkCreator"/>
|
||||
<result column="PK_MODIFIED" property="pkModified"/>
|
||||
<result column="PK_FEEDBACK_ID" property="pkFeedbackId"/>
|
||||
<result column="REPLY_CONTENT" property="replyContent"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 通用查询结果列 -->
|
||||
<sql id="Base_Column_List">
|
||||
CREATION_TIME,
|
||||
MODIFIED_TIME,
|
||||
DEL_FLAG,
|
||||
PK_COUNTRY,
|
||||
PK_CREATOR,
|
||||
PK_MODIFIED,
|
||||
PK_ID, PK_FEEDBACK_ID, REPLY_CONTENT
|
||||
</sql>
|
||||
|
||||
</mapper>
|
|
@ -821,12 +821,6 @@ public class EnumsPrefixConstants {
|
|||
*/
|
||||
public static final String NOTICE_GRADE = "ENU_NOTICE_GRADE_";
|
||||
|
||||
|
||||
/**
|
||||
* 意见反馈类型
|
||||
*/
|
||||
public static final String FEEDBACK_TYPE = "ENU_FEEDBACK_T_";
|
||||
|
||||
/**
|
||||
* 注水方式
|
||||
*/
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
package com.hzs.common.core.constant;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 美业商品常量类
|
||||
*/
|
||||
public class MyProductConstants {
|
||||
|
||||
/**
|
||||
* 盒数商品列表
|
||||
*/
|
||||
public static final List<String> BOX_WARES_LIST = Arrays.asList(
|
||||
// 会员商品
|
||||
"HZS202541301", "HZS202541302", "HZS202541303", "HZS202541304",
|
||||
// 复购专区
|
||||
"HZS202543301", "HZS202543302", "HZS202543303", "HZS202543304",
|
||||
// 重消专区
|
||||
"HZS202544301", "HZS202544302", "HZS202544303", "HZS202544304"
|
||||
);
|
||||
|
||||
}
|
|
@ -9,29 +9,17 @@ import java.util.List;
|
|||
public class RetailProductConstants {
|
||||
|
||||
/**
|
||||
* 盒数商品列表 -- 新零售
|
||||
* 盒数产品列表
|
||||
*/
|
||||
public static final List<String> BOX_WARES_LIST = Arrays.asList(
|
||||
// 会员商品
|
||||
"HZS202412001", "HZS202412002", "HZS202412003", "HZS202412004", "HZS202412005", "HZS202412006",
|
||||
// 复购专区
|
||||
"HZS202412431", "HZS202412432", "HZS202412433", "HZS202412434", "HZS202412435", "HZS202412436",
|
||||
// 重消专区
|
||||
"HZS202412441", "HZS202412442", "HZS202412443", "HZS202412444", "HZS202412445", "HZS202412446"
|
||||
public static final List<String> BOX_PRODUCT_LIST = Arrays.asList(
|
||||
"CP20250001", "CP20250002", "CP20250003", "CP20250004", "CP20250005", "CP20250006"
|
||||
);
|
||||
|
||||
/**
|
||||
* 盒数产品列表
|
||||
*/
|
||||
public static final List<String> ALL_BOX_WARES_LIST = Arrays.asList(
|
||||
// 会员商品
|
||||
"HZS202412001", "HZS202412002", "HZS202412003", "HZS202412004", "HZS202412005", "HZS202412006",
|
||||
// 复购专区
|
||||
"HZS202412431", "HZS202412432", "HZS202412433", "HZS202412434", "HZS202412435", "HZS202412436",
|
||||
// 重消专区
|
||||
"HZS202412441", "HZS202412442", "HZS202412443", "HZS202412444", "HZS202412445", "HZS202412446",
|
||||
// 会员商品
|
||||
"HZS202541301", "HZS202541302", "HZS202541303", "HZS202541304",
|
||||
// 复购专区
|
||||
"HZS202543301", "HZS202543302", "HZS202543303", "HZS202543304",
|
||||
// 重消专区
|
||||
"HZS202544301", "HZS202544302", "HZS202544303", "HZS202544304"
|
||||
"CP20250001", "CP20250002", "CP20250003", "CP20250004", "CP20250005", "CP20250006"
|
||||
);
|
||||
|
||||
}
|
||||
|
|
|
@ -14,9 +14,9 @@ public class SysConstants {
|
|||
*/
|
||||
public static final String RETAIL_PREFIX = "RE";
|
||||
/**
|
||||
* 新零售顶点
|
||||
* 顶点
|
||||
*/
|
||||
public static final String RETAIL_TOP_CODE = "HZS30720290";
|
||||
public static final String RETAIL_TOP_CODE = "GJ30720200";
|
||||
|
||||
/**
|
||||
* 登录密码
|
||||
|
@ -29,13 +29,13 @@ public class SysConstants {
|
|||
public static final String PAY_PASSWORD = "222222";
|
||||
|
||||
/**
|
||||
* 小市场2万业绩(人民币)
|
||||
* 血缘累计业绩30万
|
||||
*/
|
||||
public static final BigDecimal SMALL_AREA_PV = new BigDecimal("20000");
|
||||
public static final BigDecimal TOTAL_AREA_PV = new BigDecimal("300000");
|
||||
|
||||
/**
|
||||
* 开放使用会员编号(用于支付登录查看数据)
|
||||
*/
|
||||
public static final List<String> CONTROL_MEMBER_LIST = Arrays.asList("HZS20240001", "HZS20240002");
|
||||
public static final List<String> CONTROL_MEMBER_LIST = Arrays.asList("RE20240001", "RE20240002");
|
||||
|
||||
}
|
||||
|
|
|
@ -8,40 +8,40 @@ public class ActivityMsgConstants {
|
|||
/**
|
||||
* 会员点击抽奖按钮,验证抽奖次数 -- 抽奖次数不足!
|
||||
*/
|
||||
public static final String DRAW_AVAILABLE_NUMBER = "MSG_ACTIVITY_002";
|
||||
public static final String DRAW_AVAILABLE_NUMBER = "抽奖次数不足!";
|
||||
|
||||
/**
|
||||
* 会员点击抽奖按钮,验证抽奖次数 -- 抽奖活动已经结束,不能抽奖!
|
||||
*/
|
||||
public static final String DRAW_OVER = "MSG_ACTIVITY_003";
|
||||
public static final String DRAW_OVER = "抽奖活动已经结束,不能抽奖!";
|
||||
|
||||
/**
|
||||
* 修改或者提货时,提货相关数据已经不存在 -- 会员提货商品不存在
|
||||
*/
|
||||
public static final String PICK_PRODUCT_NOT_EXIST = "MSG_ACTIVITY_005";
|
||||
public static final String PICK_PRODUCT_NOT_EXIST = "会员提货商品不存在";
|
||||
|
||||
/**
|
||||
* 会员提货时,提货数量不足 -- 会员提货商品数量不足
|
||||
*/
|
||||
public static final String PICK_QUANTITY_NOT_ENOUGH = "MSG_ACTIVITY_006";
|
||||
public static final String PICK_QUANTITY_NOT_ENOUGH = "会员提货商品数量不足";
|
||||
|
||||
/**
|
||||
* 会员提货时,不包邮但是邮费模板配置有错误或者缺失 -- 提货邮费计算错误
|
||||
*/
|
||||
public static final String PICK_POSTAGE_ERROR = "MSG_ACTIVITY_008";
|
||||
public static final String PICK_POSTAGE_ERROR = "提货邮费计算错误";
|
||||
|
||||
/**
|
||||
* 签呈处理,提货充值记录已经没有了 -- 签呈处理失败:提货充值记录不存在
|
||||
*/
|
||||
public static final String PICK_NOT_EXIST = "MSG_ACTIVITY_009";
|
||||
public static final String PICK_NOT_EXIST = "签呈处理失败:提货充值记录不存在";
|
||||
/**
|
||||
* 签呈处理,提货充值记录已经处理过了 -- 签呈处理失败:提货充值记录已处理
|
||||
*/
|
||||
public static final String PICK_PROCESSED = "MSG_ACTIVITY_010";
|
||||
public static final String PICK_PROCESSED = "签呈处理失败:提货充值记录已处理";
|
||||
|
||||
/**
|
||||
* 奖品信息填写不完整 -- 奖品规则信息填写不完整
|
||||
*/
|
||||
public static final String DRAW_RULE_COMPLETE_INFO = "MSG_ACTIVITY_011";
|
||||
public static final String DRAW_RULE_COMPLETE_INFO = "奖品规则信息填写不完整";
|
||||
|
||||
}
|
||||
|
|
|
@ -13,9 +13,9 @@ public class AreaMsgConstants {
|
|||
/**
|
||||
* 地区名称已存在 -- 地区名称已存在
|
||||
*/
|
||||
public static final String AREA_NAME_EXIST = "MSG_AREA_001";
|
||||
public static final String AREA_NAME_EXIST = "地区名称已存在";
|
||||
/**
|
||||
* 地区不存在 -- 地区不存在
|
||||
*/
|
||||
public static final String AREA_NOT_EXIST = "MSG_AREA_002";
|
||||
public static final String AREA_NOT_EXIST = "地区不存在";
|
||||
}
|
||||
|
|
|
@ -145,24 +145,24 @@ public class BonusMsgConstants {
|
|||
/**
|
||||
* 奖金重算 -- 只能重算7天内的奖金!
|
||||
*/
|
||||
public static final String SETTLE_VALIDATE_DATE = "MSG_BONUS_022";
|
||||
public static final String SETTLE_VALIDATE_DATE = "只能重算7天内的奖金!";
|
||||
|
||||
/**
|
||||
* 奖金重算 -- 只能公布近7天的奖金!
|
||||
*/
|
||||
public static final String PUBLISH_VALIDATE_DATE = "MSG_BONUS_023";
|
||||
public static final String PUBLISH_VALIDATE_DATE = "只能公布近7天的奖金!";
|
||||
|
||||
/**
|
||||
* 奖金重算 -- 只能不公布近昨天的奖金!
|
||||
*/
|
||||
public static final String NO_PUBLISH_VALIDATE_DATE = "MSG_BONUS_024";
|
||||
public static final String NO_PUBLISH_VALIDATE_DATE = "只能不公布近昨天的奖金!";
|
||||
/**
|
||||
* 奖金发放 -- 只能发放7天以外的奖金!
|
||||
*/
|
||||
public static final String GRANT_VALIDATE_DATE = "MSG_BONUS_025";
|
||||
public static final String GRANT_VALIDATE_DATE = "只能发放7天以外的奖金!";
|
||||
|
||||
/**
|
||||
* 奖金发放 -- 只能提现14天以外的奖金!
|
||||
*/
|
||||
public static final String WITHDRAW_VALIDATE_DATE = "MSG_BONUS_026";
|
||||
public static final String WITHDRAW_VALIDATE_DATE = "只能提现14天以外的奖金!";
|
||||
}
|
||||
|
|
|
@ -12,34 +12,34 @@ public class CommonMsgConstants {
|
|||
/**
|
||||
* 前后台数据传入中少了部分数据参数 -- 缺少参数
|
||||
*/
|
||||
public static final String MISSING_PARAM = "MSG_COMMON_001";
|
||||
public static final String MISSING_PARAM = "缺少参数";
|
||||
|
||||
/**
|
||||
* 接口数据处理因代码原因未成功 -- 操作失败
|
||||
*/
|
||||
public static final String OPERATION_FAILED = "MSG_COMMON_002";
|
||||
public static final String OPERATION_FAILED = "操作失败";
|
||||
|
||||
/**
|
||||
* 一般用于三方对接,处理失败,用户刷新后可以重新进行操作提示 -- 操作失败,请刷新后重试
|
||||
*/
|
||||
public static final String OPERATION_FAILED_FLUSH = "MSG_COMMON_003";
|
||||
public static final String OPERATION_FAILED_FLUSH = "操作失败,请刷新后重试";
|
||||
|
||||
/**
|
||||
* 用户已转结算国,不能进行处理相关操作 -- 用户已转结算国,不能进行操作
|
||||
*/
|
||||
public static final String SETTLEMENT_COUNTRY_NOT_OPERATE = "MSG_COMMON_004";
|
||||
public static final String SETTLEMENT_COUNTRY_NOT_OPERATE = "用户已转结算国,不能进行操作";
|
||||
|
||||
/**
|
||||
* 签呈处理失败 -- 签呈处理失败
|
||||
*/
|
||||
public static final String APPROVAL_ERROR = "MSG_COMMON_005";
|
||||
public static final String APPROVAL_ERROR = "签呈处理失败";
|
||||
/**
|
||||
* 签呈审批时,签呈数据不存在或者被删除 -- 签呈处理失败:签呈不存在
|
||||
*/
|
||||
public static final String APPROVAL_NOT_EXIST = "MSG_COMMON_006";
|
||||
public static final String APPROVAL_NOT_EXIST = "签呈处理失败:签呈不存在";
|
||||
/**
|
||||
* 签呈审批时,签呈已经被审批 -- 签呈处理失败:签呈已处理
|
||||
*/
|
||||
public static final String APPROVAL_PROCESSED = "MSG_COMMON_007";
|
||||
public static final String APPROVAL_PROCESSED = "签呈处理失败:签呈已处理";
|
||||
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue