Compare commits

...

3 Commits

23 changed files with 171 additions and 46 deletions

View File

@ -21,4 +21,11 @@ public interface IMemberJobServiceApi {
*/
R<?> deleteAccountDetailByMonth();
/**
* 清除7天前0元会员
*
* @return
*/
R<?> clearZeroMember();
}

View File

@ -296,9 +296,9 @@ public interface IMemberServiceApi {
* 用户降级 -- 来源于活动
*
* @param cuMember 用户信息
* @param saOrder 订单信息
* @param pkOrder 订单ID
*/
R<?> reduceMemberLevel(CuMember cuMember, SaOrder saOrder);
R<?> reduceMemberLevel(CuMember cuMember, Long pkOrder);
/**
* 更新升级记录 -- 来源于活动
@ -442,4 +442,5 @@ public interface IMemberServiceApi {
R<Map<String, Long>> memberRegionMap(Date settleDate);
}

View File

@ -219,4 +219,10 @@ public interface CuMemberAccountMapper extends BaseMapper<CuMemberAccount> {
CuMemberAccountExt queryAccountSummaryByVertex(@Param("pkVertex") Long pkVertex, @Param("pkCountry") Integer pkCountry);
void deleteCuMemberAccountByMemberCode(@Param("userId") Long userId, @Param("date")Date date, @Param("memberCode")String memberCode);
/**
* 清除7天前0元会员
*/
void clearZeroMember();
}

View File

@ -3,9 +3,13 @@ package com.hzs.member.account.provider;
import com.hzs.common.core.domain.R;
import com.hzs.member.account.IMemberJobServiceApi;
import com.hzs.member.account.service.ICuMemberAccountDetailService;
import com.hzs.member.account.service.ICuMemberAccountService;
import com.hzs.member.base.service.ICuMemberRegisterService;
import com.hzs.member.base.service.ICuMemberService;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
/**
* 会员模块定时任务服务提供
@ -16,6 +20,12 @@ public class IMemberJobServiceProvider implements IMemberJobServiceApi {
@Autowired
private ICuMemberAccountDetailService iCuMemberAccountDetailService;
@Autowired
private ICuMemberService iCuMemberService;
@Autowired
private ICuMemberAccountService iCuMemberAccountService;
@Autowired
private ICuMemberRegisterService iCuMemberRegisterService;
@Override
public R<?> insertAccountDetail() {
@ -39,4 +49,21 @@ public class IMemberJobServiceProvider implements IMemberJobServiceApi {
return R.ok();
}
@Transactional(rollbackFor = Exception.class)
@Override
public R<?> clearZeroMember() {
try {
// 删除会员注册信息
iCuMemberRegisterService.clearZeroMember();
// 删除会员账户
iCuMemberAccountService.clearZeroMember();
// 账户会员信息
iCuMemberService.clearZeroMember();
} catch (Exception e) {
log.info("清除7天前0元会员失败", e);
return R.fail(e.getMessage());
}
return R.ok();
}
}

View File

@ -285,4 +285,10 @@ public interface ICuMemberAccountService extends IService<CuMemberAccount> {
CuMemberAccountExt queryAccountSummaryByVertex(Long pkVertex, Integer pkCountry);
void deleteCuMemberAccountByMemberCode(Long userId, Date date, String memberCode);
/**
* 清除7天前0元会员
*/
void clearZeroMember();
}

View File

@ -809,5 +809,10 @@ public class CuMemberAccountServiceImpl extends ServiceImpl<CuMemberAccountMappe
baseMapper.deleteCuMemberAccountByMemberCode(userId,date,memberCode);
}
@Override
public void clearZeroMember() {
baseMapper.clearZeroMember();
}
}

View File

@ -800,4 +800,10 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
List<DeleteDeadLockVO> queryDeleteDeadLockList(@Param("memberCode") String memberCode);
Integer queryIsDeadMember(@Param("memberCode") String memberCode);
/**
* 清除7天前0元会员
*/
void clearZeroMember();
}

View File

@ -35,4 +35,9 @@ public interface CuMemberRegisterMapper extends BaseMapper<CuMemberRegister> {
*/
int insertBatchMemberRegister(@Param("registerMemberList") List<CuMemberRegister> registerMemberList);
/**
* 清除7天前0元会员
*/
int clearZeroMember();
}

View File

@ -352,9 +352,9 @@ public class MemberServiceProvider implements IMemberServiceApi {
}
@Override
public R<?> reduceMemberLevel(CuMember cuMember, SaOrder saOrder) {
public R<?> reduceMemberLevel(CuMember cuMember, Long pkOrder) {
try {
iCuMemberBusinessService.reduceMemberLevel(cuMember, saOrder);
iCuMemberBusinessService.reduceMemberLevel(cuMember, pkOrder);
return R.ok();
} catch (Exception e) {
return R.fail(e.getMessage());

View File

@ -180,9 +180,9 @@ public interface ICuMemberBusinessService {
* 用户降级 -- 来源于活动
*
* @param cuMember 用户信息
* @param saOrder 订单信息
* @param pkOrder 订单ID
*/
void reduceMemberLevel(CuMember cuMember, SaOrder saOrder);
void reduceMemberLevel(CuMember cuMember, Long pkOrder);
/**
* 更新升级记录 -- 来源于活动

View File

@ -41,4 +41,9 @@ public interface ICuMemberRegisterService extends IService<CuMemberRegister> {
*/
int insertBatchMemberRegister(List<CuMemberRegister> registerMemberList);
/**
* 清除7天前0元会员
*/
void clearZeroMember();
}

View File

@ -1021,5 +1021,9 @@ public interface ICuMemberService extends IService<CuMember> {
*/
CuMember shareRegisterMember(ShareRegisterParam registerParam);
/**
* 清除7天前0元会员
*/
void clearZeroMember();
}

View File

@ -1207,12 +1207,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
@Transactional(rollbackFor = Exception.class)
@Override
public void reduceMemberLevel(CuMember cuMember, SaOrder saOrder) {
public void reduceMemberLevel(CuMember cuMember, Long pkOrder) {
updateCuMember(cuMember);
iCuMemberLevelService.update(Wrappers.<CuMemberLevel>lambdaUpdate()
.eq(CuMemberLevel::getPkMember, cuMember.getPkId())
.eq(CuMemberLevel::getUpType, EUpgradeType.ACTIVITY_UPGRADE.getValue())
.eq(CuMemberLevel::getPkOrder, saOrder.getPkId())
.eq(CuMemberLevel::getPkOrder, pkOrder)
.set(CuMemberLevel::getDelFlag, EDelFlag.DELETE.getValue())
.set(CuMemberLevel::getUpgradeTime, new Date())
);

View File

@ -48,4 +48,8 @@ public class CuMemberRegisterServiceImpl extends ServiceImpl<CuMemberRegisterMap
return baseMapper.insertBatchMemberRegister(registerMemberList);
}
@Override
public void clearZeroMember() {
baseMapper.clearZeroMember();
}
}

View File

@ -3638,5 +3638,9 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
return cuMember;
}
@Override
public void clearZeroMember() {
baseMapper.clearZeroMember();
}
}

View File

@ -125,16 +125,6 @@ public class CuBonusStatisServiceImpl extends ServiceImpl<CuBonusStatisMapper, C
oldSo.setMainUpAmount(addOrInitializeAmount(oldSo.getMainUpAmount(), newSo.getOrderAmount(), type));
oldSo.setMainUpPv(addOrInitializeAmount(oldSo.getMainUpPv(), newSo.getOrderAchieve(), type));
break;
case SPECIAL_REGISTER_ORDER:
// 乐学注册订单
oldSo.setSpecialRegisterAmount(addOrInitializeAmount(oldSo.getSpecialRegisterAmount(), newSo.getOrderAmount(), type));
oldSo.setSpecialRegisterPv(addOrInitializeAmount(oldSo.getSpecialRegisterPv(), newSo.getOrderAchieve(), type));
break;
case SPECIAL_UPGRADE_ORDER:
// 乐学升级订单
oldSo.setSpecialUpgradeAmount(addOrInitializeAmount(oldSo.getSpecialUpgradeAmount(), newSo.getOrderAmount(), type));
oldSo.setSpecialUpgradePv(addOrInitializeAmount(oldSo.getSpecialUpgradePv(), newSo.getOrderAchieve(), type));
break;
// 复购
case REPURCHASE_ORDER:
case CONSUME_ORDER:
@ -143,11 +133,6 @@ public class CuBonusStatisServiceImpl extends ServiceImpl<CuBonusStatisMapper, C
oldSo.setMainRepurAmount(addOrInitializeAmount(oldSo.getMainRepurAmount(), newSo.getOrderAmount(), type));
oldSo.setMainRepurPv(addOrInitializeAmount(oldSo.getMainRepurPv(), newSo.getOrderAchieve(), type));
break;
case SPECIAL_REPURCHASE_ORDER:
// 乐学复购订单
oldSo.setSpecialRepurchaseAmount(addOrInitializeAmount(oldSo.getSpecialRepurchaseAmount(), newSo.getOrderAmount(), type));
oldSo.setSpecialRepurchasePv(addOrInitializeAmount(oldSo.getSpecialRepurchasePv(), newSo.getOrderAchieve(), type));
break;
default:
break;
}

View File

@ -260,16 +260,6 @@ public class CuBonusVertexStatisServiceImpl extends ServiceImpl<CuBonusVertexSta
oldSo.setMainUpAmount(addOrInitializeAmount(oldSo.getMainUpAmount(), newSo.getOrderAmount(), type));
oldSo.setMainUpPv(addOrInitializeAmount(oldSo.getMainUpPv(), newSo.getOrderAchieve(), type));
break;
case SPECIAL_REGISTER_ORDER:
// 乐学注册订单
oldSo.setSpecialRegisterAmount(addOrInitializeAmount(oldSo.getSpecialRegisterAmount(), newSo.getOrderAmount(), type));
oldSo.setSpecialRegisterPv(addOrInitializeAmount(oldSo.getSpecialRegisterPv(), newSo.getOrderAchieve(), type));
break;
case SPECIAL_UPGRADE_ORDER:
// 乐学升级订单
oldSo.setSpecialUpgradeAmount(addOrInitializeAmount(oldSo.getSpecialUpgradeAmount(), newSo.getOrderAmount(), type));
oldSo.setSpecialUpgradePv(addOrInitializeAmount(oldSo.getSpecialUpgradePv(), newSo.getOrderAchieve(), type));
break;
// 复购
case REPURCHASE_ORDER:
case CONSUME_ORDER:
@ -278,11 +268,6 @@ public class CuBonusVertexStatisServiceImpl extends ServiceImpl<CuBonusVertexSta
oldSo.setMainRepurAmount(addOrInitializeAmount(oldSo.getMainRepurAmount(), newSo.getOrderAmount(), type));
oldSo.setMainRepurPv(addOrInitializeAmount(oldSo.getMainRepurPv(), newSo.getOrderAchieve(), type));
break;
case SPECIAL_REPURCHASE_ORDER:
// 乐学复购订单
oldSo.setSpecialRepurchaseAmount(addOrInitializeAmount(oldSo.getSpecialRepurchaseAmount(), newSo.getOrderAmount(), type));
oldSo.setSpecialRepurchasePv(addOrInitializeAmount(oldSo.getSpecialRepurchasePv(), newSo.getOrderAchieve(), type));
break;
default:
break;
}

View File

@ -69,9 +69,12 @@
<result column="ACCOUNT_STATUS" property="accountStatus"/>
<result column="PK_COUNTRY" property="pkCountry"/>
</resultMap>
<update id="deleteCuMemberAccountByMemberCode">
update cu_member_account cma
set cma.del_flag = 1,cma.PK_MODIFIED = #{userId},cma.MODIFIED_TIME = #{date}
set cma.del_flag = 1,
cma.PK_MODIFIED = #{userId},
cma.MODIFIED_TIME = #{date}
where cma.pk_member in
(select cm.pk_id
from cu_member cm
@ -1239,4 +1242,24 @@
(select cm.pk_id from cu_member cm where cm.pk_vertex = #{pkVertex})
</select>
<!-- 清除7天前0元会员 -->
<update id="clearZeroMember">
update cu_member_account cma
set cma.del_flag = 1
where cma.pk_member in
(select so.pk_member
from cu_member cm
left join sa_order so
on so.pk_member = cm.pk_id
and so.del_flag = 0
and so.order_status = 1
where cm.del_flag = 0
and cm.pk_settle_grade = 1
and cm.pay_status = 0
and cm.pay_time is null
and sysdate - 8 > cm.creation_time
group by so.pk_member
having count(so.pk_member) = 0)
</update>
</mapper>

View File

@ -3245,5 +3245,25 @@
t.MEMBER_CODE != #{memberCode}
</select>
<!-- 清除7天前0元会员 -->
<update id="clearZeroMember">
update cu_member cm
set cm.del_flag = 1,
cm.member_code = cm.member_code || '-' ||
trunc(dbms_random.value(100, 999))
where cm.pk_id in (select so.pk_member
from cu_member cm
left join sa_order so
on so.pk_member = cm.pk_id
and so.del_flag = 0
and so.order_status = 1
where cm.del_flag = 0
and cm.pk_settle_grade = 1
and cm.pay_status = 0
and cm.pay_time is null
and sysdate - 8 > cm.creation_time
group by so.pk_member
having count(so.pk_member) = 0)
</update>
</mapper>

View File

@ -171,4 +171,23 @@
) t
</insert>
<!-- 清除7天前0元会员 -->
<update id="clearZeroMember">
update cu_member_register cmr
set cmr.del_flag = 1
where cmr.pk_member in (select so.pk_member
from cu_member cm
left join sa_order so
on so.pk_member = cm.pk_id
and so.del_flag = 0
and so.order_status = 1
where cm.del_flag = 0
and cm.pk_settle_grade = 1
and cm.pay_status = 0
and cm.pay_time is null
and sysdate - 8 > cm.creation_time
group by so.pk_member
having count(so.pk_member) = 0);
</update>
</mapper>

View File

@ -707,10 +707,12 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
Long pkOrderId = saOrderExt.getPkId();
// 推荐人
Long pkMember = saOrderExt.getPkReference();
// 订单年月
String upgradeTime = DateUtils.parseDateToFormat(DateUtils.YYYYMM, saOrderExt.getPayTime());
List<AcRecomUpgradeRecord> upgradeRecordList = iAcRecomUpgradeRecordService.list(Wrappers.<AcRecomUpgradeRecord>lambdaQuery()
.eq(AcRecomUpgradeRecord::getPkMember, pkMember)
.eq(AcRecomUpgradeRecord::getPkOrderId, pkOrderId)
.eq(AcRecomUpgradeRecord::getUpgradeTime, upgradeTime)
.orderByDesc(AcRecomUpgradeRecord::getUpgradeTime)
);
if (CollectionUtil.isNotEmpty(upgradeRecordList)) {
@ -732,10 +734,10 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
.pkId(pkMember)
.pkSettleGrade(referenceMember.getPkSettleGrade())
.build();
iMemberServiceApi.reduceMemberLevel(cuMember, saOrderExt);
iMemberServiceApi.reduceMemberLevel(cuMember, recomUpgradeRecord.getPkOrderId());
} else {
// 活动基础配置
AcBaseConfig baseConfig = iAcBaseConfigService.getById(recomUpgradeRecord.getPkId());
AcBaseConfig baseConfig = iAcBaseConfigService.getById(recomUpgradeRecord.getPkBaseId());
// 活动基础配置
AcRecomUpgradeRuleConfig upgradeRuleConfig = iAcRecomUpgradeRuleConfigService.getById(recomUpgradeRecord.getPkRuleId());
// 查询订单时间范围
@ -762,7 +764,7 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
.pkId(pkMember)
.pkSettleGrade(recomUpgradeRecord.getPkSettleGrade())
.build();
iMemberServiceApi.reduceMemberLevel(cuMember, saOrderExt);
iMemberServiceApi.reduceMemberLevel(cuMember, recomUpgradeRecord.getPkOrderId());
return;
}
// 足够升级更新升级记录时间

View File

@ -67,4 +67,15 @@ public class CuMemberJob {
}
}
/**
* 清除7天前0元会员
*/
@XxlJob("clearZeroMember")
public void clearZeroMember() {
R<?> result = iMemberJobServiceApi.clearZeroMember();
if (!result.isSuccess()) {
log.error("清除7天前0元会员失败{}", result.getMsg());
}
}
}

View File

@ -51,9 +51,9 @@ public class ActivityBackListener {
if (EOrderType.REGISTER_ORDER.getValue() == saOrderExt.getOrderType()
|| EOrderType.UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()) {
// 处理直推升级
iActivityServiceApi.invokeRecommendUpgrade(AcRecommendUpgradeDTO.builder().
saOrderExt(saOrderExt).
orderOperateStatus(EOrderOperateStatus.CANCEL)
iActivityServiceApi.invokeRecommendUpgrade(AcRecommendUpgradeDTO.builder()
.saOrderExt(saOrderExt)
.orderOperateStatus(EOrderOperateStatus.CANCEL)
.build());
}
}