## 日结处理荣誉奖衔;

This commit is contained in:
cabbage 2025-06-27 10:35:53 +08:00
parent 3bbdd77cce
commit ca7a6821b3
33 changed files with 101 additions and 1364 deletions

View File

@ -2,113 +2,17 @@ package com.hzs.bonus.account.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.account.CuMemberAccount;
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
/**
* 会员账户信息 Mapper 接口
*
* @author hzs
* @since 2022-08-11
*/
public interface CuMemberAccountMapper extends BaseMapper<CuMemberAccount> {
/**
* 查询会员账户状态账户信息
*
* @param cuMemberAccount 会员账户条件信息
* @return: List<CuMemberAccountExt>
* @Author: sui q
* @Date: 2022/9/5 11:57
*/
List<CuMemberAccountExt> queryMemberAccountByCondition(CuMemberAccount cuMemberAccount);
/**
* 根据会员编码获取余额
*
* @param pkMember 会员编号
* @param accountType 账户类型
* @return BigDecimal
*/
BigDecimal selectBalanceByMemberCode(@Param("pkMember") Long pkMember, @Param("accountType") Integer accountType);
/**
* 更新账户余额
*
* @param cuMemberAccount 会员账户表
* @return: Integer
* @Author: sui q
* @Date: 2022/9/21 21:42
*/
Integer updateMemberAccount(CuMemberAccount cuMemberAccount);
/**
* 根据用户ID集合查询用户余额
*
* @param pkMembers 用户ID集合
* @return List<CuMemberAccount>
*/
List<CuMemberAccount> selectMemberAccountByPkMember(@Param(value = "pkMembers") List<Long> pkMembers);
/**
* 根据国家查询余额与银行卡信息
*
* @param pkCountry 国家ID
* @return List<CuMemberAccountExt>
*/
List<CuMemberAccountExt> queryMemberAccountByPkCountry(@Param("pkCountry") Integer pkCountry);
/**
* 获得更新账户余额 奖金账户可提现账户可消费账户
* 奖金账户 = 可提现账户+可消费账户
* 奖金账户操作时 入的金额 进可消费账户 出的金额 进可提现账户
* <p>
* 根据用户batch 批量更新余额
*
* @param batch 批次号
* @param type 操作类型1转入2转出
* @return Boolean
*/
Boolean updateBatchMemberAccountByPkmember(@Param("batch") String batch, @Param("pkModified") Long pkModified, @Param("type") int type);
/**
* 根据用户编号集查询用户账户的全部字段信息
*
* @param memberCodes 用户编号
* @return List<CuMemberAccountExt>
*/
List<CuMemberAccountExt> queryMemberAccountAllByMemberCodes(@Param(value = "memberCodes") List<String> memberCodes);
/**
* 根据用户编号查询用户ID
*
* @param memberCodes 用户编号
* @param pkCountry 国家
* @return List<Long>
*/
List<Long> selectPkMembersByMemberCode(@Param("memberCodes") List<String> memberCodes, @Param("pkCountry") Integer pkCountry);
/**
* 更新冻结账户信息
*
* @param cuMemberAccount
* @return Integer
*/
Integer updateFrozenAmountInfo(CuMemberAccountExt cuMemberAccount);
/**
* 奖金发放根据期间发放奖金更新奖金余额
*
* @param startPeriod 期间
* @return: void
* @Author: sui q
* @Date: 2023/3/21 14:12
*/
void updateMemberAccountGrantByPeriod(@Param("pkCountry") Integer pkCountry, @Param("startPeriod") Integer startPeriod,
@Param("endPeriod") Integer endPeriod);
@ -117,18 +21,7 @@ public interface CuMemberAccountMapper extends BaseMapper<CuMemberAccount> {
* 奖金可提现根据期间更新可提现金额减少可消费金额
*
* @param startPeriod 期间
* @return: void
* @Author: sui q
* @Date: 2023/3/21 14:12
*/
void updateMemberAccountWithdrawalByPeriod(@Param("startPeriod") Integer startPeriod, @Param("endPeriod") Integer endPeriod, @Param("pkCountry") Integer pkCountry);
/**
* 根据来源单号查询奖金账号信息
*
* @param sourceCode 来源单号
* @return List<CuMemberAccount>
*/
List<CuMemberAccount> selectMemberBonusAccountBySourceCode(String sourceCode);
}

View File

@ -4,12 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.account.CuMemberTradeBonus;
/**
* <p>
* 会员已发放奖金交易明细表 Mapper 接口
* </p>
*
* @author hzs
* @since 2023-03-24
*/
public interface CuMemberTradeBonusMapper extends BaseMapper<CuMemberTradeBonus> {

View File

@ -1,19 +1,13 @@
package com.hzs.bonus.account.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.account.CuMemberTradeBonus;
import com.hzs.common.domain.member.account.CuMemberTradeDetail;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author hzs
* @since 2023-03-21
*/
public interface CuMemberTradeDetailMapper extends BaseMapper<CuMemberTradeDetail> {
@ -21,9 +15,6 @@ public interface CuMemberTradeDetailMapper extends BaseMapper<CuMemberTradeDetai
* 批量插入会员交易流水用于奖金发放插入流水
*
* @param cuMemberTradeDetailList 交易流水
* @return: void
* @Author: sui q
* @Date: 2023/3/21 11:45
*/
void batchInsertCuMemberTradeDetail(@Param("cuMemberTradeDetailList") List<?> cuMemberTradeDetailList);
@ -31,55 +22,7 @@ public interface CuMemberTradeDetailMapper extends BaseMapper<CuMemberTradeDetai
* 奖金可提现 根据期间发放奖金
*
* @param startPeriod 期间
* @return: void
* @Author: sui q
* @Date: 2023/3/21 15:30
*/
void updateCuMemberTradeDetailByPeriod(@Param("startPeriod") Integer startPeriod, @Param("endPeriod") Integer endPeriod, @Param("pkCountry") Integer pkCountry);
void updateCuMemberTradeDetailByPeriod(@Param("startPeriod") Integer startPeriod, @Param("endPeriod") Integer endPeriod, @Param("pkCountry") Integer pkCountry);
/**
* 根据会员编号查询会员奖金的发放明细
*
* @param pkMember 会员编号
* @return: List<CuMemberTradeDetail>
* @Author: sui q
* @Date: 2023/3/24 16:05
*/
List<CuMemberTradeDetail> queryCuMemberTradeDetail(Long pkMember);
/**
* 批量更新会员奖金发放明细
*
* @param cuMemberTradeDetailList 会员奖金发放明细
* @return: void
* @Author: sui q
* @Date: 2023/3/24 17:41
*/
void updateCuMemberTradeDetail(@Param("cuMemberTradeDetailList") List<?> cuMemberTradeDetailList);
/**
* 批量更新会员奖金发放明细
*
* @param cuMemberTradeDetailList 会员奖金发放明细
* @return: void
* @Author: sui q
* @Date: 2023/3/24 17:41
*/
void updateAddCuMemberTradeDetail(@Param("cuMemberTradeDetailList") List<?> cuMemberTradeDetailList);
/**
* 根据交易流水信息 批量插入会员奖金发放
*
* @param sourceCode 单号
* @return Integer
*/
Integer batchInsertMemberTradeDetailFromTrade(@Param("sourceCode") String sourceCode, @Param("period") Integer period);
/**
* 根据用户ID查询用户扣款金额
*
* @param pkMember 用户ID
* @return List<CuMemberTradeDetail>
*/
List<CuMemberTradeDetail> selectMemberTradeDetailByPkMember(@Param("pkMember") Long pkMember);
}

View File

@ -7,12 +7,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 会员交易明细 Mapper 接口
* </p>
*
* @author hzs
* @since 2022-09-06
*/
public interface CuMemberTradeMapper extends BaseMapper<CuMemberTrade> {
@ -20,9 +15,6 @@ public interface CuMemberTradeMapper extends BaseMapper<CuMemberTrade> {
* 批量获取cuMemberBonus主键
*
* @param rowNum 数量
* @return: List<Integer>
* @Author: sui q
* @Date: 2022/12/13 13:47
*/
List<Long> batchQueryCuMemberTradeSeq(Integer rowNum);
@ -30,9 +22,6 @@ public interface CuMemberTradeMapper extends BaseMapper<CuMemberTrade> {
* 批量插入会员交易流水用于奖金发放插入流水
*
* @param cuMemberTradeList 交易流水
* @return: void
* @Author: sui q
* @Date: 2023/3/21 11:45
*/
void batchInsertCuMemberTrade(@Param("cuMemberTradeList") List<?> cuMemberTradeList);

View File

@ -3,42 +3,15 @@ package com.hzs.bonus.account.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.account.CuMemberAccount;
import java.util.List;
/**
* 会员账户信息 服务类
*
* @author hzs
* @since 2022-08-11
*/
public interface ICuMemberAccountService extends IService<CuMemberAccount> {
/**
* 更新账户余额
*
* @param cuMemberAccount 会员账户表
* @param pkModified 修改人
* @return: Boolean
* @Author: sui q
* @Date: 2022/9/21 21:42
*/
Boolean updateMemberAccount(CuMemberAccount cuMemberAccount, Long pkModified);
/**
* 根据用户ID集合查询用户余额
*
* @param pkMembers 用户ID集合
* @return List<CuMemberAccount>
*/
List<CuMemberAccount> selectMemberAccountByPkMember(List<Long> pkMembers);
/**
* 奖金发放根据期间发放奖金更新奖金余额
*
* @param startPeriod 期间
* @return: void
* @Author: sui q
* @Date: 2023/3/21 14:12
*/
void updateMemberAccountGrantByPeriod(Integer pkCountry, Integer startPeriod, Integer endPeriod);
@ -46,9 +19,6 @@ public interface ICuMemberAccountService extends IService<CuMemberAccount> {
* 奖金可提现根据期间更新可提现金额减少可消费金额
*
* @param startPeriod 期间
* @return: void
* @Author: sui q
* @Date: 2023/3/21 14:12
*/
void updateMemberAccountWithdrawalByPeriod(Integer startPeriod, Integer endPeriod, Integer pkCountry);

View File

@ -4,12 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.account.CuMemberTradeBonus;
/**
* <p>
* 会员已发放奖金交易明细表 服务类
* </p>
*
* @author hzs
* @since 2023-03-24
*/
public interface ICuMemberTradeBonusService extends IService<CuMemberTradeBonus> {

View File

@ -1,18 +1,12 @@
package com.hzs.bonus.account.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.account.CuMemberTradeBonus;
import com.hzs.common.domain.member.account.CuMemberTradeDetail;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author hzs
* @since 2023-03-21
*/
public interface ICuMemberTradeDetailService extends IService<CuMemberTradeDetail> {
@ -20,9 +14,6 @@ public interface ICuMemberTradeDetailService extends IService<CuMemberTradeDetai
* 批量插入会员交易流水用于奖金发放插入流水
*
* @param cuMemberTradeDetailList 交易流水
* @return: void
* @Author: sui q
* @Date: 2023/3/21 11:45
*/
void batchInsertCuMemberTradeDetail(List<CuMemberTradeDetail> cuMemberTradeDetailList);
@ -30,57 +21,7 @@ public interface ICuMemberTradeDetailService extends IService<CuMemberTradeDetai
* 奖金可提现 根据期间发放奖金
*
* @param startPeriod 期间
* @return: void
* @Author: sui q
* @Date: 2023/3/21 15:30
*/
void updateCuMemberTradeDetailByPeriod(Integer startPeriod, Integer endPeriod, Integer pkCountry);
/**
* 根据会员编号查询会员奖金的发放明细
*
* @param pkMember 会员编号
* @return: List<CuMemberTradeDetail>
* @Author: sui q
* @Date: 2023/3/24 16:05
*/
List<CuMemberTradeDetail> queryCuMemberTradeDetail(Long pkMember);
/**
* 批量更新会员奖金发放明细
*
* @param cuMemberTradeDetailList 会员奖金发放明细
* @return: void
* @Author: sui q
* @Date: 2023/3/24 17:41
*/
void updateCuMemberTradeDetail(List<CuMemberTradeDetail> cuMemberTradeDetailList);
/**
* 批量更新会员奖金发放明细
*
* @param cuMemberTradeDetailList 会员奖金发放明细
* @return: void
* @Author: sui q
* @Date: 2023/3/24 17:41
*/
void updateAddCuMemberTradeDetail(List<CuMemberTradeDetail> cuMemberTradeDetailList);
/**
* 根据交易流水信息 批量插入会员奖金发放
*
* @param sourceCode 单号
* @param period 期间
* @return Integer
*/
Integer batchInsertMemberTradeDetailFromTrade(String sourceCode, Integer period);
/**
* 根据用户ID查询用户扣款金额
*
* @param pkMember 用户ID
* @return List<CuMemberTradeDetail>
*/
List<CuMemberTradeDetail> selectMemberTradeDetailByPkMember(Long pkMember);
void updateCuMemberTradeDetailByPeriod(Integer startPeriod, Integer endPeriod, Integer pkCountry);
}

View File

@ -7,12 +7,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 会员交易明细 服务类
* </p>
*
* @author hzs
* @since 2022-09-06
*/
public interface ICuMemberTradeService extends IService<CuMemberTrade> {
@ -20,9 +15,6 @@ public interface ICuMemberTradeService extends IService<CuMemberTrade> {
* 批量获取cuMemberBonus主键
*
* @param rowNum 数量
* @return: List<Integer>
* @Author: sui q
* @Date: 2022/12/13 13:47
*/
List<Long> batchQueryCuMemberTradeSeq(Integer rowNum);
@ -30,9 +22,6 @@ public interface ICuMemberTradeService extends IService<CuMemberTrade> {
* 批量插入会员交易流水用于奖金发放插入流水
*
* @param cuMemberTradeList 交易流水
* @return: void
* @Author: sui q
* @Date: 2023/3/21 11:45
*/
void batchInsertCuMemberTrade(@Param("cuMemberTradeList") List<CuMemberTrade> cuMemberTradeList);

View File

@ -7,29 +7,13 @@ import com.hzs.bonus.account.mapper.CuMemberAccountMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 会员账户信息 服务实现类
*
* @author hzs
* @since 2022-08-11
*/
@Service
@Slf4j
public class CuMemberAccountServiceImpl extends ServiceImpl<CuMemberAccountMapper, CuMemberAccount> implements ICuMemberAccountService {
@Override
public Boolean updateMemberAccount(CuMemberAccount cuMemberAccount, Long pkModified) {
cuMemberAccount.setPkModified(pkModified);
return baseMapper.updateMemberAccount(cuMemberAccount) > 0;
}
@Override
public List<CuMemberAccount> selectMemberAccountByPkMember(List<Long> pkMembers) {
return baseMapper.selectMemberAccountByPkMember(pkMembers);
}
@Override
public void updateMemberAccountGrantByPeriod(Integer pkCountry, Integer startPeriod, Integer endPeriod) {
baseMapper.updateMemberAccountGrantByPeriod(pkCountry, startPeriod, endPeriod);

View File

@ -7,12 +7,7 @@ import com.hzs.common.domain.member.account.CuMemberTradeBonus;
import org.springframework.stereotype.Service;
/**
* <p>
* 会员已发放奖金交易明细表 服务实现类
* </p>
*
* @author hzs
* @since 2023-03-24
*/
@Service
public class CuMemberTradeBonusServiceImpl extends ServiceImpl<CuMemberTradeBonusMapper, CuMemberTradeBonus> implements ICuMemberTradeBonusService {

View File

@ -11,28 +11,19 @@ import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author hzs
* @since 2023-03-21
* 服务实现类
*/
@Service
public class CuMemberTradeDetailServiceImpl extends ServiceImpl<CuMemberTradeDetailMapper, CuMemberTradeDetail> implements ICuMemberTradeDetailService {
private CuMemberBonusSettle cuMemberBonusSettle;
@Autowired
public void setCuMemberBonusSettle(CuMemberBonusSettle cuMemberBonusSettle) {
this.cuMemberBonusSettle = cuMemberBonusSettle;
}
private CuMemberBonusSettle cuMemberBonusSettle;
@Override
public void batchInsertCuMemberTradeDetail(List<CuMemberTradeDetail> cuMemberTradeDetailList) {
List<List<?>> cutList = cuMemberBonusSettle.handleCutList(cuMemberTradeDetailList);
cutList.forEach(memberTradeDetailList ->
baseMapper.batchInsertCuMemberTradeDetail(memberTradeDetailList));
baseMapper.batchInsertCuMemberTradeDetail(memberTradeDetailList));
}
@Override
@ -40,41 +31,4 @@ public class CuMemberTradeDetailServiceImpl extends ServiceImpl<CuMemberTradeDet
baseMapper.updateCuMemberTradeDetailByPeriod(startPeriod, endPeriod, pkCountry);
}
@Override
public List<CuMemberTradeDetail> queryCuMemberTradeDetail(Long pkMember) {
// QueryWrapper<CuMemberTradeDetail> queryWrapper = new QueryWrapper<>();
// queryWrapper.eq(MemberFieldConstants.PK_MEMBER, pkMember)
// .gt(MemberFieldConstants.CONSUME_MONEY, 0);
// queryWrapper.orderByAsc(MemberFieldConstants.PERIOD);
// return baseMapper.selectList(queryWrapper);
return baseMapper.queryCuMemberTradeDetail(pkMember);
}
@Override
public void updateCuMemberTradeDetail(List<CuMemberTradeDetail> cuMemberTradeDetailList) {
if (cuMemberTradeDetailList.size() > 0) {
List<List<?>> cutList = cuMemberBonusSettle.handleCutList(cuMemberTradeDetailList);
cutList.forEach(memberTradeDetailList ->
baseMapper.updateCuMemberTradeDetail(memberTradeDetailList));
}
}
@Override
public void updateAddCuMemberTradeDetail(List<CuMemberTradeDetail> cuMemberTradeDetailList) {
if (cuMemberTradeDetailList.size() > 0) {
List<List<?>> cutList = cuMemberBonusSettle.handleCutList(cuMemberTradeDetailList);
cutList.forEach(memberTradeDetailList ->
baseMapper.updateAddCuMemberTradeDetail(memberTradeDetailList));
}
}
@Override
public Integer batchInsertMemberTradeDetailFromTrade(String sourceCode, Integer period){
return baseMapper.batchInsertMemberTradeDetailFromTrade(sourceCode,period);
}
@Override
public List<CuMemberTradeDetail> selectMemberTradeDetailByPkMember(Long pkMember){
return baseMapper.selectMemberTradeDetailByPkMember(pkMember);
}
}

View File

@ -1,11 +1,9 @@
package com.hzs.bonus.account.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.account.service.ICuMemberAccountService;
import com.hzs.bonus.account.service.ICuMemberTradeService;
import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle;
import com.hzs.common.domain.member.account.CuMemberTrade;
import com.hzs.common.service.ITransactionCommonService;
import com.hzs.bonus.account.mapper.CuMemberTradeMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -13,29 +11,14 @@ import org.springframework.stereotype.Service;
import java.util.*;
/**
* <p>
* 会员交易明细 服务实现类
* </p>
*
* @author hzs
* @since 2022-09-06
*/
@Service
public class CuMemberTradeServiceImpl extends ServiceImpl<CuMemberTradeMapper, CuMemberTrade> implements ICuMemberTradeService {
@Autowired
ICuMemberAccountService cuMemberAccountService;
@Autowired
ITransactionCommonService iTransactionCommonService;
private CuMemberBonusSettle cuMemberBonusSettle;
@Autowired
public void setCuMemberBonusSettle(CuMemberBonusSettle cuMemberBonusSettle) {
this.cuMemberBonusSettle = cuMemberBonusSettle;
}
@Override
public List<Long> batchQueryCuMemberTradeSeq(Integer rowNum) {
return baseMapper.batchQueryCuMemberTradeSeq(rowNum);

View File

@ -5,20 +5,12 @@ import com.hzs.common.domain.member.achieve.CuMemberSettlePeriodDetail;
import com.hzs.common.domain.member.achieve.ext.CuMemberSettlePeriodExt;
/**
* <p>
* 会员结算期间明细 服务类
* </p>
*
* @author hzs
* @since 2023-07-27
*/
public interface ICuMemberSettlePeriodDetailService extends IService<CuMemberSettlePeriodDetail> {
/*
* @description: 更新明细表
* @author: sui q
* @date: 2023/7/28 17:43
* @param: null null
**/
/**
* 更新明细表
*/
boolean updateCuMemberSettlePeriodDetailByPeriod(CuMemberSettlePeriodExt cuMemberSettlePeriodExt);
}

View File

@ -2,11 +2,8 @@ package com.hzs.bonus.achieve.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.achieve.CuMemberTree;
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
* 会员网体历史记录 服务类
@ -57,30 +54,6 @@ public interface ICuMemberTreeService extends IService<CuMemberTree> {
*/
void updateCuMemberRetailRangeInitAward(String rangeTableName);
/**
* 根据订单查询出网体中记录的会员数据推荐人安置人
*
* @param settleTableName 结算表
* @param serviceMemberSet 会员编号
*/
List<CuMemberSettleExt> batchQueryMemberSettleByMemberPk(String settleTableName, Set<Long> serviceMemberSet);
/**
* 根据订单查询出网体中记录的会员数据及推荐人
*
* @param settleTableName 结算表
* @param serviceMemberSet 会员编号
*/
List<CuMemberSettleExt> batchQueryMemberSettleParentByMemberPk(String settleTableName, Set<Long> serviceMemberSet);
/**
* 批量根据量奖信息查询会员结算表中的父级血缘数据
*
* @param settleTableName 结算表
* @param expandMemberSet 有量奖的会员
*/
List<CuMemberSettleExt> batchQueryCuMemberSettleParent(String settleTableName, Set<Long> expandMemberSet);
/**
* 删除日表数据
*

View File

@ -4,12 +4,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.bonus.achieve.service.ICuMemberAchieveService;
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
import com.hzs.bonus.achieve.service.ICuMemberTreeService;
import com.hzs.common.core.constant.MagicNumberConstants;
import com.hzs.common.core.constant.TableNameConstants;
import com.hzs.common.core.enums.EAwardsType;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.member.achieve.CuMemberTree;
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
import com.hzs.bonus.achieve.mapper.CuMemberTreeMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -30,8 +28,6 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
private ICuMemberAchieveService iCuMemberAchieveService;
@Autowired
private ICuMemberSettlePeriodService iCuMemberSettlePeriodService;
@Autowired
private CuMemberBonusSettle cuMemberBonusSettle;
@Override
@Transactional(rollbackFor = Exception.class)
@ -124,53 +120,6 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
baseMapper.updateCuMemberRetailRangeInitV5Award(rangeTableName);
}
private List<CuMemberSettleExt> getCuMemberSettleExtList(String settleTableName, Set<Long> serviceMemberSet) {
List<CuMemberSettleExt> cuMemberSettleExtList = new ArrayList<>();
if (serviceMemberSet.size() > 0) {
List<Long> memberPkList = Arrays.asList(serviceMemberSet.toArray(new Long[]{}));
List<List<?>> listList = cuMemberBonusSettle.handleCutList(memberPkList);
listList.forEach(list ->
cuMemberSettleExtList.addAll(baseMapper.queryMemberSettleBySaOrder(settleTableName, list)));
}
return cuMemberSettleExtList;
}
@Override
public List<CuMemberSettleExt> batchQueryMemberSettleByMemberPk(String settleTableName, Set<Long> serviceMemberSet) {
return getCuMemberSettleExtList(settleTableName, serviceMemberSet);
}
@Override
public List<CuMemberSettleExt> batchQueryMemberSettleParentByMemberPk(String settleTableName, Set<Long> serviceMemberSet) {
List<CuMemberSettleExt> cuMemberSettleExtList = new ArrayList<>();
if (serviceMemberSet.size() > 0) {
List<Long> memberPkList = Arrays.asList(serviceMemberSet.toArray(new Long[]{}));
List<List<?>> listList = cuMemberBonusSettle.handleCutList(memberPkList);
listList.forEach(list ->
cuMemberSettleExtList.addAll(baseMapper.batchQueryMemberSettleParentByMemberPk(settleTableName, list)));
}
return cuMemberSettleExtList;
}
@Override
public List<CuMemberSettleExt> batchQueryCuMemberSettleParent(String settleTableName, Set<Long> expandMemberSet) {
List<CuMemberSettleExt> cuMemberSettleExtList = new ArrayList<>();
if (expandMemberSet == null || expandMemberSet.size() == 0) {
return cuMemberSettleExtList;
}
List<Long> memberPkList = Arrays.asList(expandMemberSet.toArray(new Long[]{}));
List<List<?>> listList = cuMemberBonusSettle.handleCutList(memberPkList, MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM);
listList.forEach(list ->
cuMemberSettleExtList.addAll(baseMapper.batchQueryCuMemberSettleParent(settleTableName, list)));
return cuMemberSettleExtList;
}
private List<List<?>> setUpdCuMemberTreeLists(Map<Long, CuMemberSettleExt> cuMemberTreeMap) {
List<CuMemberSettleExt> cuMemberTreeList = new ArrayList<>();
cuMemberTreeMap.forEach((key, value) -> cuMemberTreeList.add(value));
return cuMemberBonusSettle.handleCutList(cuMemberTreeList);
}
@Override
public void truncateCuMemberTreeTable(String tableName) {
baseMapper.truncateCuMemberTreeTable(tableName);

View File

@ -27,14 +27,23 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
/**
* 更新会员奖衔根据临时表
*/
Integer updateCuMemberRetailAwardsByPeriod(@Param("period") Integer period, @Param("awardType") Integer awardType);
int updateCuMemberRetailAwardsByPeriod(@Param("period") Integer period, @Param("awardType") Integer awardType);
/**
* 更新会员最高奖衔
*
* @param period
* @param awardType
* @return
*/
int updateCuMemberMaxAwardsByPeriod(@Param("period") Integer period, @Param("awardType") Integer awardType);
/**
* 更新会员奖衔根据临时表
*
* @param cuMemberAwardsList 修改奖衔的会员
*/
Integer updateCuMemberRetailRangeByList(@Param("cuMemberAwardsList") List<CuMemberAwards> cuMemberAwardsList,
int updateCuMemberRetailRangeByList(@Param("cuMemberAwardsList") List<CuMemberAwards> cuMemberAwardsList,
@Param("period") Integer period,
@Param("awardType") Integer awardType);
@ -43,7 +52,7 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
*
* @param cuMemberGradeList 修改奖衔的会员
*/
Integer updateCuMemberMinGradeByList(@Param("cuMemberGradeList") List<CuMemberGrade> cuMemberGradeList, @Param("period") Integer period);
int updateCuMemberMinGradeByList(@Param("cuMemberGradeList") List<CuMemberGrade> cuMemberGradeList, @Param("period") Integer period);
/**
* 更新会员的等级

View File

@ -23,11 +23,9 @@ public interface ICuMemberService extends IService<CuMember> {
CuMemberExt getMemberByCode(String memberCode);
/**
* 更新会员奖衔根据临时表
*
* @param cuMemberAwardsList 修改奖衔的会员
* 更新会员奖衔根据临时表 -- 日结
*/
void updateCuMemberRetailRangeByPeriod(List<CuMemberAwards> cuMemberAwardsList, Integer period);
void updateCuMemberRetailRangeByPeriod(Integer period);
/**
* 更新会员奖衔根据临时表

View File

@ -25,9 +25,11 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
}
@Override
public void updateCuMemberRetailRangeByPeriod(List<CuMemberAwards> cuMemberAwardsList, Integer period) {
public void updateCuMemberRetailRangeByPeriod(Integer period) {
baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue());
baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.SHARE_TYPE.getValue());
// 更新会员最高奖衔
baseMapper.updateCuMemberMaxAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue());
}
@Override

View File

@ -1,61 +0,0 @@
package com.hzs.bonus.bonus.component;
import lombok.extern.slf4j.Slf4j;
/**
* @Description: 奖金结算发放定时任务
* @Author: sui q
* @Time: 2023/3/4 13:47
* @Classname: BonusSettleTimer
* @PackageName: com.hzs.member.bonus.component
*/
//@Component
@Slf4j
public class BonusSettleTimer {
// @DubboReference
// private ISystemConfigServiceApi systemConfigServiceApi;
//
// @DubboReference
// private ISaOrderServiceApi saOrderServiceApi;
//
// @DubboReference
// private IRangeServiceApi rangeServiceApi;
//
// private IBonusSettleService bonusSettleService;
//
// private ICuMemberTreeService cuMemberTreeService;
//
// @Autowired
// public void setBonusSettleService(IBonusSettleService bonusSettleService) {
// this.bonusSettleService = bonusSettleService;
// }
//
// @Autowired
// public void setCuMemberTreeService(ICuMemberTreeService cuMemberTreeService) {
// this.cuMemberTreeService = cuMemberTreeService;
// }
//
// /**
// * 奖金每天自动结算,计算前一天奖金
// * @return: void
// * @Author: sui q
// * @Date: 2023/3/4 13:48
// */
//// @Scheduled(cron = "0 0 0 * * ?")
//// @Scheduled(cron = "* */1 * * * ?")
// public void autoSettleBonusEveryday(){
// log.info("开始进行奖金结算");
// Date currentDate = DateUtils.currentDate();
// Date startDate = DateUtils.beforeDate(1, ChronoUnit.DAYS, currentDate);
// String settleDate = DateUtils.parseDateTimeToStr(DateUtils.YYYY_MM_DD, startDate);
// // 自动初始化表
// cuMemberTreeService.createCuMemberTree(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, startDate));
// log.info("初始化表完成");
// // 奖金结算
// List<SaOrderExt> saOrderExtList = saOrderServiceApi.querySaOrderByDay(startDate, currentDate).getData();
// Map<String, String> systemConfigMap = systemConfigServiceApi.getBonusSystemConfig().getData();
// Map<String, RangeDTO> rangeDtoMap = rangeServiceApi.queryRangeDto().getData();
// bonusSettleService.calculateCuMemberBonus(systemConfigMap, rangeDtoMap, settleDate, saOrderExtList);
// }
}

View File

@ -19,9 +19,6 @@ import java.math.BigDecimal;
/**
* 特殊商品分配奖金 前端控制器
*
* @author hzs
* @since 2024-10-30
*/
@RestController
@RequestMapping("/wares-bonus/special")

View File

@ -8,28 +8,17 @@ import com.hzs.common.domain.member.ext.BdWaresBonusExt;
import java.util.List;
/**
* <p>
* 特殊商品分配奖金 Mapper 接口
* </p>
*
* @author hzs
* @since 2024-10-30
*/
public interface BdWaresBonusMapper extends BaseMapper<BdWaresBonus> {
/*
* @description: 查询特殊品奖金配置
* @author: sui q
* @date: 2024/10/30 10:55
* @param: null null
* 查询特殊品奖金配置
**/
List<BdWaresBonusExt> querySpecialWaresBonus(BdWaresBonusParam waresBonusParam);
/*
* @description: 查询能设置奖金的特殊品
* @author: sui q
* @date: 2024/11/8 10:19
* @param: null null
* 查询能设置奖金的特殊品
**/
List<BdWaresBonusExt> queryAllSpecialWaresBonus();
}

View File

@ -8,52 +8,32 @@ import com.hzs.common.domain.member.ext.BdWaresBonusExt;
import java.util.List;
/**
* <p>
* 特殊商品分配奖金 服务类
* </p>
*
* @author hzs
* @since 2024-10-30
*/
public interface IBdWaresBonusService extends IService<BdWaresBonus> {
/*
* @description: 查询特殊品奖金配置
* @author: sui q
* @date: 2024/10/30 10:55
* @param: null null
* 查询特殊品奖金配置
**/
List<BdWaresBonusExt> querySpecialWaresBonus(BdWaresBonusParam waresBonusParam);
/*
* @description: 根据主键删除特殊商品奖金配置
* @author: sui q
* @date: 2024/11/8 9:58
* @param: null null
* 根据主键删除特殊商品奖金配置
**/
void deleteSpecialWaresBonus(Long pkId, Long userId);
/*
* @description: 根据商品id查询是否已经存在数据
* @author: sui q
* @date: 2024/11/7 15:51
* @param: null null
* 根据商品id查询是否已经存在数据
**/
BdWaresBonus queryWaresBonusById(BdWaresBonusParam waresBonusParam);
/*
* @description: 插入商品奖金根据参数
* @author: sui q
* @date: 2024/11/7 13:47
* @param: null null
* 插入商品奖金根据参数
**/
void insertOrUpdateBdWaresBonusByParam(BdWaresBonusParam bdWaresBonusParam, Long userId);
/*
* @description: 查询能设置奖金的特殊品
* @author: sui q
* @date: 2024/11/8 10:19
* @param: null null
* 查询能设置奖金的特殊品
**/
List<BdWaresBonusExt> querySpecialWaresBonus();
}

View File

@ -23,12 +23,7 @@ import java.util.Date;
import java.util.List;
/**
* <p>
* 特殊商品分配奖金 服务实现类
* </p>
*
* @author hzs
* @since 2024-10-30
*/
@Service
public class BdWaresBonusServiceImpl extends ServiceImpl<BdWaresBonusMapper, BdWaresBonus> implements IBdWaresBonusService {
@ -58,7 +53,7 @@ public class BdWaresBonusServiceImpl extends ServiceImpl<BdWaresBonusMapper, BdW
public BdWaresBonus queryWaresBonusById(BdWaresBonusParam waresBonusParam) {
QueryWrapper<BdWaresBonus> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(SystemFieldConstants.PK_WARES, waresBonusParam.getPkWares());
if(waresBonusParam.getPkId() != null){
if (waresBonusParam.getPkId() != null) {
queryWrapper.ne(SystemFieldConstants.PK_ID, waresBonusParam.getPkId());
}
return baseMapper.selectOne(queryWrapper);

View File

@ -585,7 +585,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 批量插入会员奖衔记录
iCuMemberAwardsService.saveBatchCuMemberAwards(cuMemberAwardsList);
// 更新会员表奖衔数据
iCuMemberService.updateCuMemberRetailRangeByPeriod(cuMemberAwardsList, period);
iCuMemberService.updateCuMemberRetailRangeByPeriod(period);
}
if (cuMemberGradeList.size() > 0) {
// 批量插入会员等级记录
@ -1777,7 +1777,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
}
}
if (secondAwardsRetailRangeList.size() > 0) {
// 月度分红平均收益 = 订单总业绩 分红平均比例 奖衔人数
BigDecimal benefitAvgIncome = ComputeUtil.computeDivide(ComputeUtil.computeBonusMultiply(totalMonthConsumePv, secondBenefitAvgRatio), BigDecimal.valueOf(secondAwardsRetailRangeList.size()));
// 月度分红加权总收益 = 订单总业绩 分红加权比例
BigDecimal benefitShareIncome = ComputeUtil.computeBonusMultiply(totalMonthConsumePv, secondBenefitShareRatio);
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : secondAwardsRetailRangeList) {
if (ECategory.NORMAL.getValue() != cuMemberRetailRangeExt.getCategory()

View File

@ -69,564 +69,6 @@
<result column="PK_COUNTRY" property="pkCountry"/>
</resultMap>
<select id="queryMemberAccountByCondition" resultMap="AccountExResultMap">
select cm.pay_pwd,
cm.account_status,
ca.pk_member,
ca.account1,
ca.lock_account1,
ca.account2,
ca.lock_account2,
ca.lock_account3,
ca.account3,
ca.lock_account4,
ca.account4,
ca.consume_account4,
ca.withdraw_account4,
ca.lock_account4,
ca.account5,
ca.lock_account5,
ca.account6,
ca.lock_account6,
ca.account7,
ca.lock_account7,
ca.account8,
ca.lock_account8,
ca.account9,
ca.account10,
ca.account11,
ca.account12,
ca.account13,
ca.lock_account13,
ca.is_transfer,
ca.is_withdraw,
ca.is_consume,
cm.pk_settle_country pk_country
from cu_member cm
inner join cu_member_account ca
on cm.pk_id = ca.pk_member
where cm.del_flag=0 and ca.del_flag=0
and cm.category =0
and cm.pk_settle_country=#{pkCountry}
<if test="pkMember != null and pkMember != ''">
and ca.pk_member = #{pkMember}
</if>
</select>
<!-- 根据会员编码获取会员账户余额 -->
<select id="selectBalanceByMemberCode" resultType="decimal">
SELECT CASE
WHEN 1 = #{accountType} then account1
WHEN 2 = #{accountType} then account2
WHEN 3 = #{accountType} then account3
WHEN 4 = #{accountType} then account4
WHEN 5 = #{accountType} then account5
WHEN 6 = #{accountType} then account6
WHEN 7 = #{accountType} then account7
WHEN 8 = #{accountType} then account8
WHEN 9 = #{accountType} then account9
WHEN 10 = #{accountType} then account10
WHEN 11 = #{accountType} then account11
WHEN 12 = #{accountType} then account12
WHEN 13 = #{accountType} then account13
WHEN 14 = #{accountType} then account14
WHEN 15 = #{accountType} then account15
WHEN 16 = #{accountType} then account16
WHEN 17 = #{accountType} then account17
WHEN 18 = #{accountType} then account18
WHEN 19 = #{accountType} then account19
WHEN 20 = #{accountType} then account20
END balance
FROM CU_MEMBER_ACCOUNT
WHERE pk_member = #{pkMember}
</select>
<update id="updateMemberAccount">
UPDATE CU_MEMBER_ACCOUNT
SET
<if test="account1 != null">
account1 = account1 + #{account1},
</if>
<if test="account2 != null">
account2 = account2 + #{account2},
</if>
<if test="account3 != null">
account3 = account3 + #{account3},
</if>
<if test="account4 != null">
account4 = account4 + #{account4},
</if>
<if test="account5 != null">
account5 = account5 + #{account5},
</if>
<if test="account6 != null">
account6 = account6 + #{account6},
</if>
<if test="account7 != null">
account7 = account7 + #{account7},
</if>
<if test="account8 != null">
account8 = account8 + #{account8},
</if>
<if test="account9 != null">
account9 = account9 + #{account9},
</if>
<if test="account10 != null">
account10 = account10 + #{account10},
</if>
<if test="account11 != null">
account11 = account11 + #{account11},
</if>
<if test="account12 != null">
account12 = account12 + #{account12},
</if>
<if test="account13 != null">
account13 = account13 + #{account13},
</if>
<if test="account14 != null">
account14 = account14 + #{account14},
</if>
<if test="account15 != null">
account15 = account15 + #{account15},
</if>
<if test="account16 != null">
account16 = account16 + #{account16},
</if>
<if test="account17 != null">
account17 = account17 + #{account17},
</if>
<if test="account18 != null">
account18 = account18 + #{account18},
</if>
<if test="account19 != null">
account19 = account19 + #{account19},
</if>
<if test="account20 != null">
account20 = account20 + #{account20},
</if>
<if test="lockAccount1 != null">
lock_account1 = #{lockAccount1},
</if>
<if test="lockAccount2 != null">
lock_account2 = #{lockAccount2},
</if>
<if test="lockAccount4 != null">
lock_account4 = #{lockAccount4},
</if>
<if test="withdrawAccount4 != null">
withdraw_account4 = withdraw_account4 + #{withdrawAccount4},
</if>
<if test="consumeAccount4 != null">
consume_account4 = consume_account4 + #{consumeAccount4},
</if>
<if test="lockAccount13 != null">
lock_account13 = #{lockAccount13},
</if>
pk_modified = #{pkModified},
modified_time = sysdate
WHERE pk_member = #{pkMember} and pk_country = #{pkCountry} and del_flag=0
</update>
<select id="queryMemberAccountByPkCountry" resultType="com.hzs.common.domain.member.ext.CuMemberAccountExt">
select a.*, b.pk_id pkBank
from cu_member_account a,
cu_member_bank b
where a.pk_member = b.pk_member
and a.del_flag = 0
and b.del_flag = 0
and b.default_card = 1
and a.is_withdraw = 0
and a.pk_country = #{pkCountry}
</select>
<update id="updateBatchMemberAccountByPkmember">
MERGE INTO cu_member_account m
USING (select *
from (select a.field_value,
r.recharge_amount,
pk_member,
r.recharge_method
from cu_member_recharge r
left join bd_account a
on r.pk_account = a.pk_id
where r.del_flag = 0
and r.batch = #{batch}) tt pivot(sum(recharge_amount)
for field_value in('1' as account1,
'2' as account2,
'3' as account3,
'4' as account4,
'5' as account5,
'6' as account6,
'7' as account7,
'8' as account8,
'9' as account9,
'10' as account10,
'12' as account12,
'13' as account13))) t
ON (m.pk_member = t.pk_member)
WHEN MATCHED THEN
update
set m.account1 = NVL(t.account1, 0) + m.account1,
m.account2 = NVL(t.account2, 0) + m.account2,
m.account3 = NVL(t.account3, 0) + m.account3,
m.account4 = NVL(t.account4, 0) + m.account4,
m.WITHDRAW_ACCOUNT4 = case
when NVL(t.account4, 0) &lt; 0 and m.WITHDRAW_ACCOUNT4 + NVL(t.account4, 0) >= 0 then
NVL(t.account4, 0) + m.WITHDRAW_ACCOUNT4
when NVL(t.account4, 0) &lt; 0 and m.WITHDRAW_ACCOUNT4 + NVL(t.account4, 0) &lt; 0 then
0
else
m.WITHDRAW_ACCOUNT4
end,
m.CONSUME_ACCOUNT4 = case
when NVL(t.account4, 0) &lt; 0 and m.WITHDRAW_ACCOUNT4 + NVL(t.account4, 0) &lt; 0 then
m.WITHDRAW_ACCOUNT4 + t.account4 + m.CONSUME_ACCOUNT4
else
NVL(t.account4, 0) + m.CONSUME_ACCOUNT4
end,
m.account5 = NVL(t.account5, 0) + m.account5,
m.account6 = NVL(t.account6, 0) + m.account6,
m.account7 = NVL(t.account7, 0) + m.account7,
m.account8 = NVL(t.account8, 0) + m.account8,
m.account9 = NVL(t.account9, 0) + m.account9,
m.account10 = NVL(t.account10, 0) + m.account10,
m.account12 = NVL(t.account12, 0) + m.account12,
m.account13 = NVL(t.account13, 0) + m.account13,
m.MODIFIED_TIME = sysdate,
m.PK_MODIFIED = #{pkModified}
</update>
<select id="queryMemberAccountAllByMemberCodes" resultType="com.hzs.common.domain.member.ext.CuMemberAccountExt">
select m.member_code memberCode,
m.member_name memberName,
a.*
from cu_member_account a, cu_member m
where a.pk_member = m.pk_id
and a.del_flag = 0
and m.del_flag = 0
<if test="memberCodes != null and memberCodes.size >0">
and m.member_code in
<foreach collection="memberCodes" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</select>
<sql id="select_base">
with t1 as
(select u.member_code,
u.member_name,
u.pk_id,
u.pk_vertex vertex_id,
u.pk_team_code team_id,
v.vertex_name,
v.pk_member,
u.pk_place_parent,
u.pk_parent,
t.team_name
from cu_member u
left join bd_vertex v
on u.pk_vertex = v.pk_id
and v.del_flag = 0
left join cu_member_team t
on u.pk_team_code = t.pk_id
and t.del_flag = 0
where u.del_flag = 0
and u.pk_settle_country = #{pkCountry})
select ss.memberCode,
ss.memberName,
ss.pk_id pkId,
ss.vertexId,
ss.teamId,
ss.vertexName,
ss.pk_member,
ss.pk_place_parent,
ss.pk_parent,
ss.teamName,
ss.slevel,
pp.plevel,
account1,
lock_account1,
lock_transfer_account1,
account2,
lock_account2,
lock_transfer_account2,
account3,
lock_account3,
lock_transfer_account3,
account4,
lock_account4,
lock_transfer_account4,
lock_withdraw_account4,
withdraw_account4,
consume_account4,
account5,
lock_account5,
lock_transfer_account5,
account6,
lock_account6,
lock_transfer_account6,
account7,
lock_account7,
lock_transfer_account7,
account8,
lock_account8,
lock_transfer_account8,
account9,
lock_account9,
lock_transfer_account9,
account10,
lock_account10,
account11,
lock_transfer_account10,
account12,
account13,
lock_account13
from (select member_code memberCode,
member_name memberName,
pk_id,
vertex_id vertexId,
team_id teamId,
vertex_name vertexName,
pk_member,
pk_place_parent,
pk_parent,
team_name teamName,
level slevel
from t1
<include refid="list_place_where"></include>
start with pk_id =
<if test="memberCode != null and memberCode != ''">
(select cm.pk_id
from cu_member cm
where cm.member_code = #{memberCode})
</if>
<if test="memberCode == null or memberCode == ''">
pk_member
</if>
connect by prior pk_id = pk_place_parent) ss,
(select pk_id, level plevel
from t1
<include refid="list_rem_where"></include>
start with pk_id =
<if test="memberCode != null and memberCode != ''">
(select cm.pk_id
from cu_member cm
where cm.member_code = #{memberCode})
</if>
<if test="memberCode == null or memberCode == ''">
pk_member
</if>
connect by prior pk_id = pk_parent) pp,
cu_member_account a
</sql>
<!-- 安置条件 -->
<sql id="list_place_where">
<where>
1=1
<if test="memberName != null and memberName != ''">
and member_name like #{memberName} || '%'
</if>
<if test="vertexName != null and vertexName != ''">
and vertex_name like #{memberName} || '%'
</if>
<if test="teamName != null and teamName != ''">
and team_name like #{teamName} || '%'
</if>
<if test="teamId != null">
and team_id = #{teamId}
</if>
<if test="vertexId != null">
and vertex_id = #{vertexId}
</if>
<if test="slevel != null">
and level &lt;= #{slevel}
</if>
</where>
</sql>
<!-- 推荐条件 -->
<sql id="list_rem_where">
<where>
1=1
<if test="memberName != null and memberName != ''">
and member_name like #{memberName} || '%'
</if>
<if test="vertexName != null and vertexName != ''">
and vertex_name like #{memberName} || '%'
</if>
<if test="teamName != null and teamName != ''">
and team_name like #{teamName} || '%'
</if>
<if test="teamId != null">
and team_id = #{teamId}
</if>
<if test="vertexId != null">
and vertex_id = #{vertexId}
</if>
<if test="plevel != null">
and level &lt;= #{plevel}
</if>
</where>
</sql>
<sql id="list_where">
<where>
ss.pk_id = pp.pk_id
and ss.pk_id = a.pk_member
and a.del_flag = 0
and a.pk_country = #{pkCountry}
</where>
</sql>
<sql id="ids_where">
<where>
ss.pk_id = pp.pk_id
and ss.pk_id = a.pk_member
and a.del_flag = 0
and a.pk_country = #{pkCountry}
and ss.pk_id in
<foreach collection="pkIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</where>
</sql>
<select id="selectPkMembersByMemberCode" resultType="java.lang.Long">
select a.pk_member
from cu_member_account a, cu_member c
where a.pk_member = c.pk_id
and c.del_flag = 0
and c.account_status = 0
and a.del_flag = 0
and c.pk_settle_country= #{pkCountry}
and c.member_code in
<foreach collection="memberCodes" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
<update id="updateFrozenAmountInfo">
update cu_member_account a
set
<if test="lockAccount1 != null">
a.lock_account1 = #{lockAccount1},
</if>
<if test="lockTransferAccount1 != null">
a.lock_transfer_account1 = #{lockTransferAccount1},
</if>
<if test="account1Remarks != null and account1Remarks != ''">
a.account1_remarks = #{account1Remarks},
</if>
<if test="lockAccount2 != null">
a.lock_account2 = #{lockAccount2},
</if>
<if test="lockTransferAccount2 != null">
a.lock_transfer_account2 = #{lockTransferAccount2},
</if>
<if test="account2Remarks != null and account2Remarks != ''">
a.account2_remarks = #{account2Remarks},
</if>
<if test="lockAccount3 != null">
a.lock_account3 = #{lockAccount3},
</if>
<if test="lockTransferAccount3 != null">
a.lock_transfer_account3 = #{lockTransferAccount3},
</if>
<if test="account3Remarks != null and account3Remarks != ''">
a.account3_remarks = #{account3Remarks},
</if>
<if test="lockAccount4 != null">
a.lock_account4 = #{lockAccount4},
</if>
<if test="lockTransferAccount4 != null">
a.lock_transfer_account4 = #{lockTransferAccount4},
</if>
<if test="lockWithdrawAccount4 != null">
a.lock_withdraw_account4 = #{lockWithdrawAccount4},
</if>
<if test="account4Remarks != null and account4Remarks != ''">
a.account4_remarks = #{account4Remarks},
</if>
<if test="lockAccount5 != null">
a.lock_account5 = #{lockAccount5},
</if>
<if test="lockTransferAccount5 != null">
a.lock_transfer_account5 = #{lockTransferAccount5},
</if>
<if test="account5Remarks != null and account5Remarks != ''">
a.account5_remarks = #{account5Remarks},
</if>
<if test="lockAccount6 != null">
a.lock_account6 = #{lockAccount6},
</if>
<if test="lockTransferAccount6 != null">
a.lock_transfer_account6 = #{lockTransferAccount6},
</if>
<if test="account6Remarks != null and account6Remarks != ''">
a.account6_remarks = #{account6Remarks},
</if>
<if test="lockAccount7 != null">
a.lock_account7 = #{lockAccount7},
</if>
<if test="lockTransferAccount7 != null">
a.lock_transfer_account7 = #{lockTransferAccount7},
</if>
<if test="account7Remarks != null and account7Remarks != ''">
a.account7_remarks = #{account7Remarks},
</if>
<if test="lockAccount8 != null">
a.lock_account8 = #{lockAccount8},
</if>
<if test="lockTransferAccount8 != null">
a.lock_transfer_account8 = #{lockTransferAccount8},
</if>
<if test="account8Remarks != null and account8Remarks != ''">
a.account8_remarks = #{account8Remarks},
</if>
<if test="lockAccount9 != null">
a.lock_account9 = #{lockAccount9},
</if>
<if test="lockTransferAccount9 != null">
a.lock_transfer_account9 = #{lockTransferAccount9},
</if>
<if test="account9Remarks != null and account9Remarks != ''">
a.account9_remarks = #{account9Remarks},
</if>
<if test="lockAccount10 != null">
a.lock_account10 = #{lockAccount10},
</if>
<if test="lockTransferAccount10 != null">
a.lock_transfer_account10 = #{lockTransferAccount10},
</if>
<if test="account10Remarks != null and account10Remarks != ''">
a.account10_remarks = #{account10Remarks},
</if>
a.pk_modified = #{pkModified},
a.modified_time = sysdate
WHERE a.pk_member in
<foreach collection="pkMembers" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</update>
<update id="updateMemberAccountGrantByPeriod">
merge into cu_member_account a
using (select pk_member,
@ -651,6 +93,7 @@
a.account5 = a.account5 + b.account5,
a.account8 = a.account8 + b.account8
</update>
<update id="updateMemberAccountWithdrawalByPeriod">
merge into cu_member_account a
using (
@ -675,44 +118,4 @@
a.consume_account4 = a.consume_account4 - b.consume_money
</update>
<select id="selectMemberBonusAccountBySourceCode" resultMap="AccountExResultMap">
select r.pk_member, ma.account4, ma.withdraw_account4, ma.consume_account4, ma.pk_modified, ma.pk_country
from cu_member_recharge r
left join cu_member_account ma
on r.pk_member = ma.pk_member
and ma.del_flag = 0
left join bd_account a
on r.pk_account = a.pk_id
and a.del_flag = 0
where r.del_flag = 0
and a.field_value = 4
and r.batch = #{sourceCode}
</select>
<select id="selectMemberAccountByPkMember" resultType="com.hzs.common.domain.member.account.CuMemberAccount">
select a.pk_member,
a.account1,
a.account2,
a.account3,
a.account4,
a.account5,
a.account6,
a.account7,
a.account8,
a.account9,
a.account10,
a.account11,
a.account12,
a.account13,
a.account14,
a.account15
from cu_member_account a
where a.del_flag = 0
<if test="pkMembers != null and pkMembers.size >0">
and a.pk_member in
<foreach collection="pkMembers" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</select>
</mapper>

View File

@ -4,21 +4,22 @@
<!-- 通用查询映射结果 -->
<resultMap id="CuMemberTradeDetail" type="com.hzs.common.domain.member.account.CuMemberTradeDetail">
<id column="PK_ID" property="pkId" />
<result column="DEL_FLAG" property="delFlag" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="CREATION_TIME" property="creationTime" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="PERIOD" property="period" />
<result column="PK_MEMBER_TRADE" property="pkMemberTrade" />
<result column="GRANT_MONEY" property="grantMoney" />
<result column="CONSUME_MONEY" property="consumeMoney" />
<id column="PK_ID" property="pkId"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="PERIOD" property="period"/>
<result column="PK_MEMBER_TRADE" property="pkMemberTrade"/>
<result column="GRANT_MONEY" property="grantMoney"/>
<result column="CONSUME_MONEY" property="consumeMoney"/>
</resultMap>
<insert id="batchInsertCuMemberTradeDetail">
insert ALL
<foreach item="item" index="index" collection="cuMemberTradeDetailList" separator=" " >
<foreach item="item" index="index" collection="cuMemberTradeDetailList" separator=" ">
into CU_MEMBER_TRADE_DETAIL(period,pk_member_trade,consume_money,pk_country,creation_time,pk_creator) values
(
#{item.period},#{item.pkMemberTrade},#{item.consumeMoney,jdbcType=NUMERIC},#{item.pkCountry},
@ -27,89 +28,23 @@
</foreach>
SELECT 1 FROM dual
</insert>
<update id="updateCuMemberTradeDetailByPeriod">
merge into cu_member_trade_detail a
using (
select cd.pk_id,cd.consume_money from cu_member_trade ct
inner join cu_member_trade_detail cd
on cd.pk_member_trade = ct.pk_id
where cd.del_flag=0 and ct.del_flag=0 and cd.trade_statue=1
and cd.period between #{startPeriod} and #{endPeriod} and ct.pk_country = #{pkCountry}
)b
on (a.pk_id = b.pk_id)
when matched then
update set a.consume_money = 0,modified_time=sysdate
using (
select cd.pk_id, cd.consume_money
from cu_member_trade ct
inner join cu_member_trade_detail cd
on cd.pk_member_trade = ct.pk_id
where cd.del_flag = 0
and ct.del_flag = 0
and cd.trade_statue = 1
and cd.period between #{startPeriod} and #{endPeriod}
and ct.pk_country = #{pkCountry}
) b
on (a.pk_id = b.pk_id)
when matched then
update set a.consume_money = 0,modified_time = sysdate
</update>
<update id="updateCuMemberTradeDetail">
merge into cu_member_trade_detail a
using (
<foreach collection="cuMemberTradeDetailList" item="item" open=" " separator=" union all " close=" ">
select #{item.pkId} pk_id,#{item.grantMoney,jdbcType=NUMERIC} grant_money,#{item.consumeMoney,jdbcType=NUMERIC} consume_money from dual
</foreach>
) b
on (a.pk_id = b.pk_id)
when matched then
update set a.grant_money = b.grant_money,
a.consume_money = b.consume_money
</update>
<update id="updateAddCuMemberTradeDetail">
merge into cu_member_trade_detail a
using (
<foreach collection="cuMemberTradeDetailList" item="item" open=" " separator=" union all " close=" ">
select #{item.pkId} pk_id,#{item.grantMoney,jdbcType=NUMERIC} grant_money,#{item.consumeMoney,jdbcType=NUMERIC} consume_money from dual
</foreach>
) b
on (a.pk_id = b.pk_id)
when matched then
update set a.grant_money = a.grant_money + b.grant_money,
a.consume_money = a.consume_money + b.consume_money
</update>
<update id="batchInsertMemberTradeDetailFromTrade">
merge into cu_member_trade_detail d
using (select t.pk_id, t.trade_amount, t.pk_country, t.pk_creator
from cu_member_trade t
left join bd_account a
on t.pk_account = a.pk_id
and a.del_flag = 0
where t.del_flag = 0
and a.field_value = 4
and t.trade_amount > 0
and t.source_code = #{sourceCode}) tt
on (1 = 0)
when not matched then
insert
(d.period,
d.pk_member_trade,
d.consume_money,
d.pk_country,
d.pk_creator)
values
(#{period},tt.pk_id, tt.trade_amount, tt.pk_country, tt.pk_creator)
</update>
<select id="selectMemberTradeDetailByPkMember" resultMap="CuMemberTradeDetail">
select d.pk_id, d.period, d.consume_money,d.pk_country
from cu_member_trade t
inner join cu_member_trade_detail d
on t.pk_id = d.pk_member_trade
and d.del_flag = 0
where t.del_flag = 0
and t.pk_member = #{pkMember}
and d.consume_money > 0
order by d.creation_time
</select>
<select id="queryCuMemberTradeDetail" resultMap="CuMemberTradeDetail">
SELECT cd.* FROM CU_MEMBER_TRADE_DETAIL cd
inner join CU_MEMBER_TRADE cb
on cd.pk_member_trade = cb.pk_id
WHERE cb.DEL_FLAG=0 and cb.del_flag=0
and cb.pk_member=#{pkMember}
and CONSUME_MONEY >0
order by period
</select>
</mapper>

View File

@ -25,62 +25,6 @@
<result column="REMARKS" property="remarks"/>
</resultMap>
<sql id="select_base">
select t.*, m.member_code as memberCode, m.member_name as memberName
from cu_member_trade t
left join cu_member m
on t.pk_member = m.pk_id
</sql>
<sql id="ids_where">
<where>
t.del_flag='0'
and t.pk_id in
<foreach collection="pkIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</where>
</sql>
<sql id="list_where">
<where>
t.del_flag='0'
<if test="memberName != null and memberName != ''">
and m.member_name like #{memberName} || '%'
</if>
<if test="memberCode != null and memberCode != ''">
and m.member_code like #{memberCode} || '%'
</if>
<if test="tradeAmount != null">
and t.TRADE_AMOUNT = #{tradeAmount}
</if>
<if test="remarks != null and remarks != ''">
and m.REMARKS like #{remarks} || '%'
</if>
<if test="pkAccount != null">
and t.PK_ACCOUNT = #{pkAccount}
</if>
<if test="tradeType != null">
and t.TRADE_TYPE = #{tradeType}
</if>
<if test="sourceCode != null and sourceCode != ''">
and t.SOURCE_CODE = #{sourceCode}
</if>
<if test="pkCountry != null">
and t.pk_country = #{pkCountry}
</if>
<if test="tradeClassify != null">
and t.TRADE_CLASSIFY = #{tradeClassify}
</if>
<if test="startDate != null and startDate != ''">
and t.CREATION_TIME >= to_date(#{startDate}, 'yyyy-mm-dd')
</if>
<if test="endDate != null and endDate != ''">
and t.CREATION_TIME &lt;= to_date(#{endDate} || ' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
</if>
</where>
</sql>
<update id="batchInsertCuMemberTrade">
merge into cu_member_trade a
using (

View File

@ -106,6 +106,23 @@
a.modified_time = sysdate
</update>
<update id="updateCuMemberMaxAwardsByPeriod">
merge into cu_member a
using (select c1.*
from (select pk_member, max(new_level) pk_awards
from cu_member_awards
where period = #{period}
and award_type = #{awardType}
and del_flag = 0
group by pk_member) c1
inner join cu_member c2
on c1.pk_member = c2.pk_id
and c1.pk_awards > c2.pk_max_awards) b
on (a.pk_id = b.pk_member)
when matched then
update set a.pk_max_awards = b.pk_awards, a.modified_time = sysdate
</update>
<update id="updateCuMemberGrade">
merge into cu_member a
using (

View File

@ -4,22 +4,23 @@
<!-- 通用查询映射结果 -->
<resultMap id="BdWaresBonusExt" type="com.hzs.common.domain.member.ext.BdWaresBonusExt">
<id column="PK_ID" property="pkId" />
<result column="DEL_FLAG" property="delFlag" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="CREATION_TIME" property="creationTime" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="PK_WARES" property="pkWares" />
<result column="ORDER_ASS_ACHIEVE" property="orderAssAchieve" />
<result column="TOTAL_ALGEBRA" property="totalAlgebra" />
<id column="PK_ID" property="pkId"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="PK_WARES" property="pkWares"/>
<result column="ORDER_ASS_ACHIEVE" property="orderAssAchieve"/>
<result column="TOTAL_ALGEBRA" property="totalAlgebra"/>
<collection property="bdWaresBonusItemsList" ofType="com.hzs.common.domain.member.bonus.BdWaresBonusItems">
<result column="PK_ID_ITEM" property="pkId" />
<result column="ASS_ACHIEVE" property="assAchieve" />
<result column="ALGEBRA" property="algebra" />
<result column="PK_ID_ITEM" property="pkId"/>
<result column="ASS_ACHIEVE" property="assAchieve"/>
<result column="ALGEBRA" property="algebra"/>
</collection>
</resultMap>
<select id="querySpecialWaresBonus" resultMap="BdWaresBonusExt">
select bw.*,ba.wares_code,ba.wares_name,bt.pk_id pk_id_item,bt.ass_achieve,bt.algebra from bd_wares_bonus bw
inner join bd_wares_bonus_items bt
@ -35,11 +36,12 @@
</if>
order by bw.pk_wares,bt.algebra
</select>
<select id="queryAllSpecialWaresBonus" resultMap="BdWaresBonusExt">
select bw.pk_id,bw.wares_code, bw.wares_name
select bw.pk_id, bw.wares_code, bw.wares_name
from bd_wares bw
inner join bd_wares_extend be on bw.pk_id = be.pk_wares
left join bd_wares_bonus bwb on bw.pk_id = bwb.pk_wares and bwb.del_flag = 0
inner join bd_wares_extend be on bw.pk_id = be.pk_wares
left join bd_wares_bonus bwb on bw.pk_id = bwb.pk_wares and bwb.del_flag = 0
where bw.del_flag = 0
and be.del_flag = 0
and bw.special_area = 40

View File

@ -14,12 +14,7 @@ import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* <p>
* 会员交易明细
* </p>
*
* @author hzs
* @since 2022-09-06
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -11,12 +11,7 @@ import lombok.*;
import lombok.experimental.Accessors;
/**
* <p>
* 会员已发放奖金交易明细表
* </p>
*
* @author hzs
* @since 2023-03-24
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -11,12 +11,7 @@ import lombok.*;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p> 奖金发放明细表
*
* @author hzs
* @since 2023-03-21
* 奖金发放明细表
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -12,12 +12,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 特殊商品分配奖金
* </p>
*
* @author hzs
* @since 2024-10-30
*/
@Data
@EqualsAndHashCode(callSuper = true)