forked from angelo/java-retail-app
## Fix - 增加获取省级接口&办理业务时增加验证
This commit is contained in:
parent
f6356586c2
commit
471174c751
|
@ -51,4 +51,7 @@ public interface IAreaServiceApi {
|
|||
**/
|
||||
R<List<BdProductStorehouseExt>> queryBdProductStorehouseByCondition(List<Integer> productId, Integer province);
|
||||
|
||||
|
||||
R<List<BdArea>>getAreaByParentId(Integer pkCountry);
|
||||
|
||||
}
|
||||
|
|
|
@ -650,4 +650,8 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
|
|||
*/
|
||||
BdTradeWhiteConfig selectMemberByUnderBlood(@Param("pkMember") Long pkMember, @Param("memberType") Integer memberType);
|
||||
|
||||
|
||||
int validateCompanyCount(@Param("gradeValue") Integer gradeValue);
|
||||
|
||||
int validateBranchOfficeCount(@Param("areaId") Integer areaId);
|
||||
}
|
||||
|
|
|
@ -924,4 +924,7 @@ public interface ICuMemberService extends IService<CuMember> {
|
|||
*/
|
||||
BdTradeWhiteConfig selectMemberByUnderBlood(Long pkMember, Integer memberType);
|
||||
|
||||
int validateCompanyCount();
|
||||
|
||||
int validateBranchOfficeCount(Integer areaId);
|
||||
}
|
||||
|
|
|
@ -3249,4 +3249,14 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
|||
return baseMapper.selectMemberByUnderBlood(pkMember, memberType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int validateCompanyCount() {
|
||||
return baseMapper.validateCompanyCount(EGrade.COMPANY.getValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int validateBranchOfficeCount(Integer areaId) {
|
||||
return baseMapper.validateBranchOfficeCount(areaId);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -27,14 +27,14 @@ public interface ICuHandleBusinessService extends IService<CuHandleBusiness> {
|
|||
* @param loginUser 用户信息
|
||||
* @return
|
||||
*/
|
||||
Boolean businessHandling(HandleBusinessVO handleBusinessVO, LoginUser loginUser);
|
||||
Boolean businessHandling(HandleBusinessVO handleBusinessVO, LoginUser loginUser) throws Exception;
|
||||
|
||||
/**
|
||||
* 在线签呈审核 (审批状态) 同意/驳回
|
||||
*
|
||||
* @param approvalBusinessResultDTO
|
||||
*/
|
||||
R signForApprovalExamine(ApprovalBusinessResultDTO approvalBusinessResultDTO);
|
||||
R signForApprovalExamine(ApprovalBusinessResultDTO approvalBusinessResultDTO) throws Exception;
|
||||
|
||||
/**
|
||||
* 在线签呈
|
||||
|
|
|
@ -109,7 +109,7 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl<CuHandleBusinessMap
|
|||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean businessHandling(HandleBusinessVO handleBusinessVO, LoginUser loginUser) {
|
||||
public Boolean businessHandling(HandleBusinessVO handleBusinessVO, LoginUser loginUser) throws Exception {
|
||||
boolean result = false;
|
||||
Integer processType = handleBusinessVO.getProcessType();
|
||||
//业务办理变更信息
|
||||
|
@ -149,7 +149,7 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl<CuHandleBusinessMap
|
|||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public R signForApprovalExamine(ApprovalBusinessResultDTO approvalBusinessResultDTO) {
|
||||
public R signForApprovalExamine(ApprovalBusinessResultDTO approvalBusinessResultDTO) throws Exception {
|
||||
LoginUser loginUser = approvalBusinessResultDTO.getLoginUser();
|
||||
if (approvalBusinessResultDTO.getApproveOperation() == EApproveOperation.AGREE.getValue()) {
|
||||
// 通过
|
||||
|
@ -613,7 +613,7 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl<CuHandleBusinessMap
|
|||
* @param loginUser 登录信息
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean updateBusinessMember(HandleBusinessVO handleBusinessVO, LoginUser loginUser) {
|
||||
public Boolean updateBusinessMember(HandleBusinessVO handleBusinessVO, LoginUser loginUser) throws Exception {
|
||||
int number = 0;
|
||||
Boolean result = false;
|
||||
BusinessTypeValueVO businessTypeValueUpdate;
|
||||
|
@ -737,7 +737,10 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl<CuHandleBusinessMap
|
|||
* @param loginUser 登录用户信息
|
||||
* @return Boolean
|
||||
*/
|
||||
private Boolean saveMemberLevel(HandleBusinessVO handleBusinessVO, LoginUser loginUser) {
|
||||
private Boolean saveMemberLevel(HandleBusinessVO handleBusinessVO, LoginUser loginUser) throws Exception {
|
||||
Integer pkCountry = loginUser.getDataCountry();
|
||||
R<List<GradeDTO>> gradeList = iGradeServiceApi.queryGradeList(pkCountry);
|
||||
Map<Integer, GradeDTO> gradesMap = gradeList.getData().stream().collect(Collectors.toMap(GradeDTO::getGradeValue, o -> o));
|
||||
List<BusinessTypeValueVO> handleBusinessList = handleBusinessVO.getHandleBusinessList();
|
||||
//获取期数
|
||||
String localDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||
|
@ -751,6 +754,20 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl<CuHandleBusinessMap
|
|||
List<CuMemberLevel> cuMemberLevelList = new ArrayList<>();
|
||||
if (CollUtil.isNotEmpty(businessMemberListUpdate)) {
|
||||
for (BusinessMemberVO businessMemberVO : businessMemberListUpdate) {
|
||||
Integer updateGradeId = Integer.parseInt(businessMemberVO.getNewValue());
|
||||
if(EGrade.COMPANY.getValue() == gradesMap.get(updateGradeId).getGradeValue()){
|
||||
// 2025年6月20日 新等级 公司验全唯一
|
||||
int count = cuMemberService.validateCompanyCount();
|
||||
if(count > 0){
|
||||
throw new Exception("已存在结算等级为公司的用户,不允许重复添加!");
|
||||
}
|
||||
}else if(EGrade.S_VIP.getValue() == gradesMap.get(updateGradeId).getGradeValue()){
|
||||
// 2025年6月20日 新等级 分公司验省唯一
|
||||
int count = cuMemberService.validateBranchOfficeCount(businessMemberVO.getAreaId());
|
||||
if(count > 0){
|
||||
throw new Exception("已存在结算绑定省的分公司用户,不允许重复添加!");
|
||||
}
|
||||
}
|
||||
// 记录升级历史
|
||||
cuMemberLevel = CuMemberLevel.builder()
|
||||
.pkMember(businessMemberVO.getPkMember())
|
||||
|
@ -828,65 +845,6 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl<CuHandleBusinessMap
|
|||
}
|
||||
cuMemberAwardsService.saveBatch(cuMemberAwardsList);
|
||||
}
|
||||
// 2025年6月19日 手改注册等级为合伙人时,如奖衔为空,则改为黄宝 start
|
||||
if(businessType.equals(EApprovalBusiness.CHANGE_SETTLEMENT_GRADE.getValue())){
|
||||
// 拿本次办理业务的类型
|
||||
List<Integer> businessTypeList = handleBusinessList.stream()
|
||||
.map(BusinessTypeValueVO::getBusinessType)
|
||||
.collect(Collectors.toList());
|
||||
if(!businessTypeList.contains(EApprovalBusiness.CHANGE_AWARDS.getValue())){
|
||||
List<BusinessMemberVO> businessMemberList = handleBusinessVO.getBusinessMemberList();
|
||||
List<BusinessMemberVO> businessMemberListUpdate = getBusinessMemberByBusinessType(businessMemberList, EApprovalBusiness.CHANGE_SETTLEMENT_GRADE.getValue());
|
||||
String localDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||
Integer period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate).getPkId();
|
||||
Integer pkCountry = loginUser.getDataCountry();
|
||||
R<List<BdAwards>> awardsList = iAwardsServiceApi.queryAwards(pkCountry);
|
||||
Map<Integer, BdAwards> awardsMap = awardsList.getData().stream().collect(Collectors.toMap(BdAwards::getAwardsValue, o -> o));
|
||||
int newLevel = awardsMap.get(EAwards.HEADER.getValue()).getPkId();
|
||||
List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
|
||||
HandleBusinessVO businessVO = new HandleBusinessVO();
|
||||
businessVO.setHandleBusinessList(Arrays.asList(
|
||||
BusinessTypeValueVO.builder()
|
||||
.businessValueList(Arrays.asList(newLevel))
|
||||
.businessType(EApprovalBusiness.CHANGE_AWARDS.getValue()).build())
|
||||
);
|
||||
businessVO.setUpdatePkMember(loginUser.getUserId());
|
||||
List<BusinessMemberVO> businessMemberVOList = new ArrayList<>();
|
||||
businessVO.setBusinessMemberList(businessMemberVOList);
|
||||
for (BusinessMemberVO memberVO : businessMemberListUpdate) {
|
||||
CuMemberExt memberExt = cuMemberService.getMemberById(memberVO.getPkMember());
|
||||
// 没有奖衔
|
||||
Integer memberAwardsValue = awardsList.getData().stream().filter(o -> o.getPkId().equals(memberExt.getPkAwards())).findFirst().get().getAwardsValue();
|
||||
if(ObjectUtil.isNotEmpty(memberExt) && EAwards.HEADER.getValue() > memberAwardsValue){
|
||||
businessMemberVOList.add(BusinessMemberVO.builder().pkMember(memberExt.getPkId()).build());
|
||||
int oldLevel = awardsMap.get(memberAwardsValue).getPkId();
|
||||
Long pkMember = memberExt.getPkId();
|
||||
// 记录升级历史
|
||||
CuMemberAwards cuMemberAwards = CuMemberAwards.builder()
|
||||
.pkMember(pkMember)
|
||||
.period(period)
|
||||
.upType(EUpgradeType.MANUAL_UPGRADE.getValue())
|
||||
.oldLevel(oldLevel)
|
||||
.newLevel(newLevel)
|
||||
.purchaseStatus(getPurchaseStatus(pkMember, oldLevel))
|
||||
.endValidityDate(memberVO.getEndValidityDate())
|
||||
.build();
|
||||
cuMemberAwards.setPkCountry(handleBusinessVO.getPkCountry());
|
||||
cuMemberAwards.setPkCreator(loginUser.getUserId());
|
||||
cuMemberAwardsList.add(cuMemberAwards);
|
||||
}
|
||||
}
|
||||
// 改奖衔
|
||||
if(CollUtil.isNotEmpty(businessVO.getHandleBusinessList()) && CollUtil.isNotEmpty(businessVO.getBusinessMemberList())){
|
||||
cuMemberService.batchUpdateMemberByBusinessType(businessVO);
|
||||
}
|
||||
// 插入升级记录
|
||||
if(CollUtil.isNotEmpty(cuMemberAwardsList)){
|
||||
cuMemberAwardsService.saveBatch(cuMemberAwardsList);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 2025年6月19日 手改注册等级为合伙人时,如奖衔为空,则改为黄宝 end
|
||||
}
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
|
|
@ -529,5 +529,8 @@ public class BusinessMemberVO implements Serializable {
|
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date endValidityDate;
|
||||
|
||||
|
||||
/**
|
||||
* 分公司-绑定省id
|
||||
*/
|
||||
private Integer areaId;
|
||||
}
|
||||
|
|
|
@ -88,6 +88,7 @@ public class MemberRetailServiceImpl implements IMemberRetailService {
|
|||
.pkCountry(cuMember.getPkCountry())
|
||||
.pkSettleCountry(cuMember.getPkSettleCountry())
|
||||
.isActivate(cuMember.getIsActivate())
|
||||
.areaName(cuMember.getAreaName())
|
||||
.build();
|
||||
}
|
||||
return null;
|
||||
|
|
|
@ -141,4 +141,9 @@ public class RetailMemberInfoVO implements Serializable {
|
|||
*/
|
||||
private Integer isActivate;
|
||||
|
||||
/**
|
||||
* 分公司绑定省名称
|
||||
*/
|
||||
private String areaName;
|
||||
|
||||
}
|
||||
|
|
|
@ -2057,6 +2057,7 @@
|
|||
<!-- 查询菜单用户 -->
|
||||
<select id="getMenuMember" resultType="com.hzs.common.domain.member.ext.CuMemberExt">
|
||||
select cm.*,
|
||||
area.name as areaName,
|
||||
case
|
||||
when tmp1.pk_member is null then
|
||||
1
|
||||
|
@ -2082,6 +2083,7 @@
|
|||
1
|
||||
end maker_space_show
|
||||
from cu_member cm
|
||||
left join BD_AREA area on cm.PK_AREA_ID = area.PK_ID
|
||||
left join (select distinct cmsc.pk_member
|
||||
from cu_authority_control cmsc
|
||||
where cmsc.pk_member = #{pkMember}
|
||||
|
@ -2609,5 +2611,11 @@
|
|||
and t0.category = 0)
|
||||
where rownum = 1
|
||||
</select>
|
||||
<select id="validateCompanyCount" resultType="java.lang.Integer">
|
||||
select count(1) from cu_member where PK_SETTLE_GRADE in (select pk_id from BD_GRADE where GRADE_VALUE = #{gradeValue})
|
||||
</select>
|
||||
<select id="validateBranchOfficeCount" resultType="java.lang.Integer">
|
||||
select count(1) from cu_member where PK_AREA_ID = #{areaId}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -157,4 +157,9 @@ public class ApiAreaController {
|
|||
}
|
||||
return AjaxResult.success(resultList);
|
||||
}
|
||||
|
||||
@GetMapping("/get-area-by-parentId")
|
||||
public AjaxResult getArea(Integer parentId) {
|
||||
return AjaxResult.success(areaService.getAreaByParentId(parentId));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -78,4 +78,9 @@ public class AreaServiceProvider implements IAreaServiceApi {
|
|||
public R<List<BdProductStorehouseExt>> queryBdProductStorehouseByCondition(List<Integer> productId, Integer province) {
|
||||
return R.ok(bdProductStorehouseService.queryBdProductStorehouseByCondition(productId, province));
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<List<BdArea>> getAreaByParentId(Integer parentId) {
|
||||
return R.ok(iBdAreaService.getAreaByParentId(parentId));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,4 +28,5 @@ public interface IBdAreaService extends IService<BdArea> {
|
|||
*/
|
||||
String updateArea(List<AreaDTO> areaDTOList);
|
||||
|
||||
List<BdArea> getAreaByParentId(Integer parentId);
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -120,4 +121,14 @@ public class BdAreaServiceImpl extends ServiceImpl<BdAreaMapper, BdArea> impleme
|
|||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BdArea> getAreaByParentId(Integer parentId) {
|
||||
LambdaQueryWrapper<BdArea> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(BdArea::getPkCountry, CountryConstants.CHINA_COUNTRY);
|
||||
queryWrapper.eq(BdArea::getParent, parentId);
|
||||
queryWrapper.apply("pk_id not in (select PK_AREA_ID from cu_member)");
|
||||
queryWrapper.orderByAsc(BdArea::getCode);
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -132,40 +132,40 @@ public class CommonServiceProvider implements ICommonServiceApi {
|
|||
}
|
||||
}
|
||||
// 当月奖衔
|
||||
if (null != memberDataDTO.getPkAwards()) {
|
||||
BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkAwards());
|
||||
if (null != bdAwards) {
|
||||
memberDataDTO.setAwardsVal(bdAwards.getAwardsName());
|
||||
if (EAwards.MEMBER.getValue() != bdAwards.getAwardsValue()) {
|
||||
// 奖衔如果是会员级别不返回图标
|
||||
memberDataDTO.setAwardsIcon(bdAwards.getImage());
|
||||
}
|
||||
}
|
||||
}
|
||||
// 荣誉奖衔
|
||||
if (null != memberDataDTO.getPkMaxAwards()) {
|
||||
BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkMaxAwards());
|
||||
if (null != bdAwards) {
|
||||
if (EAwards.MEMBER.getValue() == bdAwards.getAwardsValue()) {
|
||||
memberDataDTO.setMaxAwardsVal(memberDataDTO.getAwardsVal());
|
||||
memberDataDTO.setMaxAwardsIcon(memberDataDTO.getAwardsIcon());
|
||||
} else {
|
||||
memberDataDTO.setMaxAwardsVal(bdAwards.getAwardsName());
|
||||
memberDataDTO.setMaxAwardsIcon(bdAwards.getImage());
|
||||
}
|
||||
}
|
||||
}
|
||||
// 分红奖衔
|
||||
if (null != memberDataDTO.getPkRangeAwards()) {
|
||||
BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkRangeAwards());
|
||||
if (null != bdAwards) {
|
||||
if (bdAwards.getAwardsValue() > EAwards.HIGH_MANAGER.getValue()) {
|
||||
// 前4级不显示分红奖衔
|
||||
memberDataDTO.setRangeAwardsVal(bdAwards.getAwardsName());
|
||||
memberDataDTO.setRangeAwardsIcon(bdAwards.getImage());
|
||||
}
|
||||
}
|
||||
}
|
||||
// if (null != memberDataDTO.getPkAwards()) {
|
||||
// BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkAwards());
|
||||
// if (null != bdAwards) {
|
||||
// memberDataDTO.setAwardsVal(bdAwards.getAwardsName());
|
||||
// if (EAwards.MEMBER.getValue() != bdAwards.getAwardsValue()) {
|
||||
// // 奖衔如果是会员级别不返回图标
|
||||
// memberDataDTO.setAwardsIcon(bdAwards.getImage());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// // 荣誉奖衔
|
||||
// if (null != memberDataDTO.getPkMaxAwards()) {
|
||||
// BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkMaxAwards());
|
||||
// if (null != bdAwards) {
|
||||
// if (EAwards.MEMBER.getValue() == bdAwards.getAwardsValue()) {
|
||||
// memberDataDTO.setMaxAwardsVal(memberDataDTO.getAwardsVal());
|
||||
// memberDataDTO.setMaxAwardsIcon(memberDataDTO.getAwardsIcon());
|
||||
// } else {
|
||||
// memberDataDTO.setMaxAwardsVal(bdAwards.getAwardsName());
|
||||
// memberDataDTO.setMaxAwardsIcon(bdAwards.getImage());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// // 分红奖衔
|
||||
// if (null != memberDataDTO.getPkRangeAwards()) {
|
||||
// BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkRangeAwards());
|
||||
// if (null != bdAwards) {
|
||||
// if (bdAwards.getAwardsValue() > EAwards.HIGH_MANAGER.getValue()) {
|
||||
// // 前4级不显示分红奖衔
|
||||
// memberDataDTO.setRangeAwardsVal(bdAwards.getAwardsName());
|
||||
// memberDataDTO.setRangeAwardsIcon(bdAwards.getImage());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// 币种
|
||||
if (null != memberDataDTO.getPkSettleCountry()) {
|
||||
BdCurrency bdCurrency = iBdCurrencyService.getCurrency(memberDataDTO.getPkSettleCountry());
|
||||
|
|
|
@ -415,4 +415,9 @@ public class CuMember extends BaseEntity {
|
|||
@TableField("IS_ACTIVATE")
|
||||
private Integer isActivate;
|
||||
|
||||
/**
|
||||
* 分公司省ID
|
||||
*/
|
||||
@TableField("PK_AREA_ID")
|
||||
private Integer pkAreaId;
|
||||
}
|
||||
|
|
|
@ -211,4 +211,8 @@ public class CuMemberExt extends CuMember {
|
|||
*/
|
||||
private String lastMemberCode;
|
||||
|
||||
/**
|
||||
* 分公司绑定省名称
|
||||
*/
|
||||
private String areaName;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue