## 删除死点

This commit is contained in:
zhangheng 2025-09-11 15:43:12 +08:00
parent e0f574bd5a
commit 5ab2747aa1
13 changed files with 259 additions and 1 deletions

View File

@ -14,6 +14,7 @@ import com.hzs.member.handlebusiness.vo.BusinessMemberVO;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
@ -268,4 +269,5 @@ 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);
}

View File

@ -331,4 +331,5 @@ public interface ICuMemberAccountService extends IService<CuMemberAccount> {
*/
CuMemberAccountExt queryAccountSummaryByVertex(Long pkVertex, Integer pkCountry);
void deleteCuMemberAccountByMemberCode(Long userId, Date date, String memberCode);
}

View File

@ -841,5 +841,10 @@ public class CuMemberAccountServiceImpl extends ServiceImpl<CuMemberAccountMappe
return baseMapper.queryAccountSummaryByVertex(pkVertex, pkCountry);
}
@Override
public void deleteCuMemberAccountByMemberCode(Long userId, Date date, String memberCode) {
baseMapper.deleteCuMemberAccountByMemberCode(userId,date,memberCode);
}
}

View File

@ -0,0 +1,50 @@
package com.hzs.member.base.controller.manage;
import com.hzs.common.core.annotation.Log;
import com.hzs.common.core.enums.EOperationMethod;
import com.hzs.common.core.enums.EOperationModule;
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.security.utils.SecurityUtils;
import com.hzs.member.base.param.DeleteDeadLockParam;
import com.hzs.member.base.service.DeleteDeadLockService;
import com.hzs.member.base.vo.DeleteDeadLockVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RequestMapping("/manager/deleteDeadLock")
@RestController
public class DeleteDeadLockController extends BaseController {
@Autowired
private DeleteDeadLockService deleteDeadLockService;
/**
* 删除死点列表
*/
@Log(module = EOperationModule.DELETE_DEAD_LOCK, method = EOperationMethod.SELECT)
@GetMapping("list")
public TableDataInfo list(DeleteDeadLockParam deleteDeadLockParam) {
startPage();
deleteDeadLockParam.setPkCountry(SecurityUtils.getPkCountry());
List<DeleteDeadLockVO> DeleteDeadLockList = deleteDeadLockService.queryDeleteDeadLockList(deleteDeadLockParam.getMemberCode());
return getDataTable(DeleteDeadLockList);
}
/**
* 删除死点
*/
@Log(module = EOperationModule.DELETE_DEAD_LOCK, method = EOperationMethod.DELETE)
@PostMapping("delete")
public AjaxResult delete(@RequestBody DeleteDeadLockParam deleteDeadLockParam) {
String check = deleteDeadLockService.deleteDeadLockMember(deleteDeadLockParam);
if (check == null) {
return AjaxResult.success();
}
return AjaxResult.error(check);
}
}

View File

@ -791,4 +791,7 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
@Param("pkGrade") Integer pkGrade,
@Param("pkCountry") Integer pkCountry);
List<DeleteDeadLockVO> queryDeleteDeadLockList(@Param("memberCode") String memberCode);
Integer queryIsDeadMember(@Param("memberCode") String memberCode);
}

View File

@ -0,0 +1,26 @@
package com.hzs.member.base.param;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DeleteDeadLockParam {
/**
* 会员编号
*/
@NotNull(message = "会员编号不可为空")
private String memberCode;
/**
* 所属国家
*/
private Integer PkCountry;
}

View File

@ -0,0 +1,13 @@
package com.hzs.member.base.service;
import com.hzs.member.base.param.DeleteDeadLockParam;
import com.hzs.member.base.vo.DeleteDeadLockVO;
import java.util.List;
public interface DeleteDeadLockService {
List<DeleteDeadLockVO> queryDeleteDeadLockList(String memberCode);
String deleteDeadLockMember(DeleteDeadLockParam deleteDeadLockParam);
}

View File

@ -0,0 +1,58 @@
package com.hzs.member.base.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.constant.msg.MemberMsgConstants;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.account.service.ICuMemberAccountService;
import com.hzs.member.base.mapper.CuMemberMapper;
import com.hzs.member.base.param.DeleteDeadLockParam;
import com.hzs.member.base.service.DeleteDeadLockService;
import com.hzs.member.base.vo.DeleteDeadLockVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
@Service
@Slf4j
public class DeleteDeadLockServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> implements DeleteDeadLockService {
@Autowired
private ICuMemberAccountService iCuMemberAccountService;
@Override
public List<DeleteDeadLockVO> queryDeleteDeadLockList(String memberCode) {
return baseMapper.queryDeleteDeadLockList(memberCode);
}
@Override
@Transactional(rollbackFor = Exception.class)
public String deleteDeadLockMember(DeleteDeadLockParam deleteDeadLockParam) {
if (deleteDeadLockParam.getMemberCode() == null) {
return MemberMsgConstants.REQUIRED_NOT_EMPTY;
}
// 查询安置伞下和推荐伞下未删除会员数量,如果未删除会员数量为0返回true
Integer isNoDeadNum = baseMapper.queryIsDeadMember(deleteDeadLockParam.getMemberCode());
log.info("安置伞下和推荐伞下未删除会员数量:{}",isNoDeadNum);
if(isNoDeadNum == 0){
// 删除操作
Long userId = SecurityUtils.getUserId();
Date date=new Date();//此时date为当前的时间
// 删除会员
baseMapper.update(null,new LambdaUpdateWrapper<CuMember>()
.eq(CuMember::getMemberCode,deleteDeadLockParam.getMemberCode())
.set(CuMember::getPkModified,userId)
.set(CuMember::getModifiedTime,date)
.set(CuMember::getDelFlag,1));
// 删除会员账户
iCuMemberAccountService.deleteCuMemberAccountByMemberCode(userId,date,deleteDeadLockParam.getMemberCode());
} else {
return MemberMsgConstants.NOT_DEAD_MEMBER;
}
return null;
}
}

View File

@ -0,0 +1,48 @@
package com.hzs.member.base.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = false)
@AllArgsConstructor
@NoArgsConstructor
public class DeleteDeadLockVO {
/**
* 会员编号
*/
private String memberCode;
/**
* 会员姓名
*/
private String memberName;
/**
* 结算等级
*/
private Integer pkSettleGrade;
/**
* 推荐人编号
*/
private String parMemberCode;
/**
* 安置人编号
*/
private String placeMemberCode;
/**
* 安置位置
*/
private String placeDept;
/**
* 注册时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date creationTime;
}

View File

@ -69,6 +69,14 @@
<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}
where cma.pk_member in
(select cm.pk_id
from cu_member cm
where cm.member_code = #{memberCode})
</update>
<select id="queryMemberAccountByCondition" resultMap="AccountExResultMap">
select cm.pay_pwd,

View File

@ -3191,6 +3191,44 @@
</foreach>)
order by num desc
</select>
<select id="queryDeleteDeadLockList" resultType="com.hzs.member.base.vo.DeleteDeadLockVO">
SELECT
cu.MEMBER_CODE,
cu.MEMBER_NAMEcu.PK_SETTLE_GRADE,
cus.MEMBER_CODE AS parMemberCode,
cuss.MEMBER_CODE AS placeMemberCodecu.PLACE_DEPT,
cu.CREATION_TIME
FROM
CU_MEMBER cu
LEFT JOIN CU_MEMBER cus ON cu.PK_PARENT = cus.PK_ID
LEFT JOIN CU_MEMBER cuss ON cu.PK_PLACE_PARENT = cuss.PK_ID
WHERE
cu.DEL_FLAG = 0
AND cu.CATEGORY = 2
<if test="memberCode != null and memberCode != ''">
AND cu.MEMBER_CODE = #{memberCode}
</if>
</select>
<select id="queryIsDeadMember" resultType="java.lang.Integer">
SELECT
COUNT(*)
FROM
(
SELECT
MEMBER_CODE
FROM
CU_MEMBER
WHERE
DEL_FLAG = 0 START WITH MEMBER_CODE = #{memberCode} CONNECT BY PRIOR PK_ID = PK_PARENT UNION ALL
SELECT
MEMBER_CODE
FROM
CU_MEMBER
WHERE
DEL_FLAG = 0 START WITH MEMBER_CODE = #{memberCode} CONNECT BY PRIOR PK_ID = PK_PLACE_PARENT
) t
WHERE
t.MEMBER_CODE != #{memberCode}
</select>
</mapper>

View File

@ -287,5 +287,9 @@ public class MemberMsgConstants {
* 已超最大门票销售数量不能购买
*/
public static final String NOT_CHECK_AC_ACTIVITY = "门票数量已售罄,请稍后再试!";
/**
* 会员安置伞下和推荐伞下还有未删除会员不可删除
*/
public static final String NOT_DEAD_MEMBER = "会员安置伞下和推荐伞下还有未删除会员,不可删除";
}

View File

@ -425,6 +425,8 @@ public enum EOperationModule {
CANCEL_ORDER_CONFIRM("撤销订单确认"),
DELETE_DEAD_LOCK("删除死点"),
///////////////////////////统计分析////////////////////////////
STATISTIC_ANALYSIS("统计分析"),