## 删除死点

This commit is contained in:
zhangheng 2025-09-10 14:33:36 +08:00 committed by cabbage
parent b5bd3b5efb
commit 8ca12af0bb
12 changed files with 258 additions and 0 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;
/**
@ -217,4 +218,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

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

View File

@ -804,5 +804,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,48 @@
package com.hzs.member.base.controller.manage;
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.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RequestMapping("/manager/deleteDeadLock")
@RestController
public class DeleteDeadLockController extends BaseController {
@Autowired
private DeleteDeadLockService deleteDeadLockService;
/**
* 删除死点列表
*/
@GetMapping("list")
public TableDataInfo list(DeleteDeadLockParam deleteDeadLockParam) {
startPage();
deleteDeadLockParam.setPkCountry(SecurityUtils.getPkCountry());
List<DeleteDeadLockVO> DeleteDeadLockList = deleteDeadLockService.queryDeleteDeadLockList(deleteDeadLockParam.getMemberCode());
return getDataTable(DeleteDeadLockList);
}
/**
* 删除死点
*/
@PostMapping("delete")
public AjaxResult delete(DeleteDeadLockParam deleteDeadLockParam) {
String check = deleteDeadLockService.deleteDeadLockMember(deleteDeadLockParam);
if (check == null) {
return AjaxResult.success();
}
return AjaxResult.error(check);
}
}

View File

@ -796,4 +796,8 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
CheckRegionDetailVO getSelectRegionDetail(@Param("userId") Long userId, @Param("type") Integer type);
List<BdArea> getRegionList(@Param("userId") Long userId, @Param("type") Integer type);
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,55 @@
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 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
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());
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>
<delete 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})
</delete>
<select id="queryMemberAccountByCondition" resultMap="AccountExResultMap">
select cm.pay_pwd,

View File

@ -3204,6 +3204,50 @@
)
order by ba.pk_id asc
</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 cu.MEMBER_CODE = #{memberCode}
</if>
</select>
<select id="queryIsDeadMember" resultType="java.lang.Integer">
SELECT
COUNT(*)
FROM
(
SELECT
MEMBER_CODE
FROM
(
SELECT
MEMBER_CODE
FROM
CU_MEMBER START WITH MEMBER_CODE = #{memberCode} CONNECT BY PRIOR PK_ID = PK_PARENT
AND MEMBER_CODE = #{memberCode}
AND DEL_FLAG = 0 UNION
SELECT
MEMBER_CODE
FROM
CU_MEMBER START WITH MEMBER_CODE = #{memberCode} CONNECT BY PRIOR PK_ID = PK_PLACE_PARENT
AND MEMBER_CODE = #{memberCode}
AND DEL_FLAG = 0
) 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 = "会员安置伞下和推荐伞下还有未删除会员,不可删除";
}