## 0元会员7天没下单则清除;

This commit is contained in:
cabbage 2025-09-24 14:00:41 +08:00
parent 1b7a065a24
commit 1a1044bff4
16 changed files with 154 additions and 1 deletions

View File

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

View File

@ -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

@ -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

@ -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

@ -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

@ -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());
}
}
}