Compare commits

...

5 Commits

23 changed files with 521 additions and 41 deletions

View File

@ -115,7 +115,10 @@ public class RetailMemberController extends BaseController {
CuMemberRetailAchieveVO retailAchieve = iCuMemberRetailAchieveService.selectMemberSumAchieve(userId, pkCountry, systemType); CuMemberRetailAchieveVO retailAchieve = iCuMemberRetailAchieveService.selectMemberSumAchieve(userId, pkCountry, systemType);
log.info("retailAchieve : {}", JSONUtil.toJsonStr(retailAchieve)); log.info("retailAchieve : {}", JSONUtil.toJsonStr(retailAchieve));
if(ObjectUtil.isNotEmpty(retailAchieve.getArealPv()) if(ObjectUtil.isNotEmpty(retailAchieve.getArealPv())
&& retailAchieve.getArealPv().compareTo(SysConstants.TOTAL_AREA_PV) >= 0){ && retailAchieve.getArealPv().compareTo(SysConstants.TOTAL_AREA_PV) >= 0
&& retailAchieve.getSmallAreaPv().compareTo(SysConstants.SMALL_AREA_PV) >=0
){
return AjaxResult.success(RetailMemberRegionVO.builder() return AjaxResult.success(RetailMemberRegionVO.builder()
.regionStatus(EYesNo.YES.getIntValue()) .regionStatus(EYesNo.YES.getIntValue())
.build()); .build());
@ -173,7 +176,9 @@ public class RetailMemberController extends BaseController {
} }
if(EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsActivate()){ if(EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsActivate()){
CuMemberRetailAchieveVO retailAchieve = iCuMemberRetailAchieveService.selectMemberSumAchieve(userId, pkCountry, systemType); CuMemberRetailAchieveVO retailAchieve = iCuMemberRetailAchieveService.selectMemberSumAchieve(userId, pkCountry, systemType);
if(retailAchieve.getArealPv().compareTo(SysConstants.TOTAL_AREA_PV) >= 0){ if(retailAchieve.getArealPv().compareTo(SysConstants.TOTAL_AREA_PV) >= 0
&& retailAchieve.getSmallAreaPv().compareTo(SysConstants.SMALL_AREA_PV) >=0
){
canSet = true; canSet = true;
} }
} }
@ -220,22 +225,25 @@ public class RetailMemberController extends BaseController {
} }
// 校验区域是否被占用 // 校验区域是否被占用
CuMemberRetailRegion cuMemberRetailRegion = iCuMemberRetailRegionService.getOne(Wrappers.<CuMemberRetailRegion>lambdaQuery() // CuMemberRetailRegion cuMemberRetailRegion = iCuMemberRetailRegionService.getOne(Wrappers.<CuMemberRetailRegion>lambdaQuery()
.eq(CuMemberRetailRegion::getProvince, param.getProvince()) // .eq(CuMemberRetailRegion::getProvince, param.getProvince())
.eq(CuMemberRetailRegion::getCity, param.getCity()) // .eq(CuMemberRetailRegion::getCity, param.getCity())
.eq(CuMemberRetailRegion::getCounty, param.getCounty()) // .eq(CuMemberRetailRegion::getCounty, param.getCounty())
.eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue()) // .eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue())
.eq(CuMemberRetailRegion::getSystemType, systemType) // .eq(CuMemberRetailRegion::getSystemType, systemType)
); // );
if (null != cuMemberRetailRegion) { // if (null != cuMemberRetailRegion) {
if (userId.equals(cuMemberRetailRegion.getPkMember())) { // if (userId.equals(cuMemberRetailRegion.getPkMember())) {
// 当前收益区域就是当前会员不需要处理 // // 当前收益区域就是当前会员不需要处理
return AjaxResult.success(); // return AjaxResult.success();
} else { // } else {
return AjaxResult.error("当前区域已经被占用"); // return AjaxResult.error("当前区域已经被占用");
} // }
// }
int cuMemberRetailRegion = iCuMemberRetailRegionService.validateBindCount(param, EYesNo.YES.getIntValue(), SecurityUtils.getSystemType(), param.getPkMember());
if (cuMemberRetailRegion > 0) {
return AjaxResult.error("当前区域已经被占用");
} }
param.setPkId(cuMemberRetailRegionExt.getPkId()); param.setPkId(cuMemberRetailRegionExt.getPkId());
param.setPkMember(userId); param.setPkMember(userId);
param.setPkCountry(pkCountry); param.setPkCountry(pkCountry);
@ -260,7 +268,6 @@ public class RetailMemberController extends BaseController {
PageUtils.clearPage(); PageUtils.clearPage();
List<BdArea> areaList = iCuMemberRetailRegionService.listChooseRegion(SecurityUtils.getSystemType()); List<BdArea> areaList = iCuMemberRetailRegionService.listChooseRegion(SecurityUtils.getSystemType());
if (CollectionUtil.isEmpty(areaList)) { if (CollectionUtil.isEmpty(areaList)) {
log.info("region-tree: 111");
return AjaxResult.success(); return AjaxResult.success();
} }
TreeNodeConfig treeNodeConfig = new TreeNodeConfig(); TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
@ -273,7 +280,6 @@ public class RetailMemberController extends BaseController {
tree.setParentId(treeNode.getParent().toString()); tree.setParentId(treeNode.getParent().toString());
tree.setName(treeNode.getName()); tree.setName(treeNode.getName());
}); });
log.info("region-tree: 222");
return AjaxResult.success(build); return AjaxResult.success(build);
} }

View File

@ -152,13 +152,14 @@ public class CuMemberRetailRegionController extends BaseController {
return AjaxResult.error(ConfigMsgConstants.MEMBER_RETAIL_REGION_REPEAT); return AjaxResult.error(ConfigMsgConstants.MEMBER_RETAIL_REGION_REPEAT);
} }
// 校验区域是否被占用 // 校验区域是否被占用
int cuMemberRetailRegion = cuMemberRetailRegionService.count(Wrappers.<CuMemberRetailRegion>lambdaQuery() // int cuMemberRetailRegion = cuMemberRetailRegionService.count(Wrappers.<CuMemberRetailRegion>lambdaQuery()
.eq(CuMemberRetailRegion::getProvince, mrrExt.getProvince()) // .eq(CuMemberRetailRegion::getProvince, mrrExt.getProvince())
.eq(CuMemberRetailRegion::getCity, mrrExt.getCity()) // .eq(CuMemberRetailRegion::getCity, mrrExt.getCity())
.eq(CuMemberRetailRegion::getCounty, mrrExt.getCounty()) // .eq(CuMemberRetailRegion::getCounty, mrrExt.getCounty())
.eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue()) // .eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue())
.eq(CuMemberRetailRegion::getSystemType, systemType) // .eq(CuMemberRetailRegion::getSystemType, systemType)
); // );
int cuMemberRetailRegion = cuMemberRetailRegionService.validateBindCount(mrrExt, EYesNo.YES.getIntValue(), SecurityUtils.getSystemType(), mrrExt.getPkMember());
if (cuMemberRetailRegion > 0) { if (cuMemberRetailRegion > 0) {
return AjaxResult.error("当前区域已经被占用"); return AjaxResult.error("当前区域已经被占用");
} }
@ -195,19 +196,21 @@ public class CuMemberRetailRegionController extends BaseController {
} }
// 校验区域是否被占用 // 校验区域是否被占用
int cuMemberRetailRegion = cuMemberRetailRegionService.count(Wrappers.<CuMemberRetailRegion>lambdaQuery() // int cuMemberRetailRegion = cuMemberRetailRegionService.count(Wrappers.<CuMemberRetailRegion>lambdaQuery()
.eq(CuMemberRetailRegion::getProvince, mrrExt.getProvince()) // .eq(CuMemberRetailRegion::getProvince, mrrExt.getProvince())
.eq(CuMemberRetailRegion::getCity, mrrExt.getCity()) // .eq(CuMemberRetailRegion::getCity, mrrExt.getCity())
.eq(CuMemberRetailRegion::getCounty, mrrExt.getCounty()) // .eq(CuMemberRetailRegion::getCounty, mrrExt.getCounty())
.eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue()) // .eq(CuMemberRetailRegion::getEffective, EYesNo.YES.getIntValue())
.eq(CuMemberRetailRegion::getSystemType, SecurityUtils.getSystemType()) // .eq(CuMemberRetailRegion::getSystemType, SecurityUtils.getSystemType())
.ne(CuMemberRetailRegion::getPkId, mrrExt.getPkId()) // .ne(CuMemberRetailRegion::getPkId, mrrExt.getPkId())
); // );
int cuMemberRetailRegion = cuMemberRetailRegionService.validateBindCount(mrrExt, EYesNo.YES.getIntValue(), SecurityUtils.getSystemType(), mrrExt.getPkMember());
if (cuMemberRetailRegion > 0) { if (cuMemberRetailRegion > 0) {
return AjaxResult.error("当前区域已经被占用"); return AjaxResult.error("当前区域已经被占用");
} }
mrrExt.setPkModified(SecurityUtils.getUserId()); mrrExt.setPkModified(SecurityUtils.getUserId());
mrrExt.setModifiedTime(new Date()); mrrExt.setModifiedTime(new Date());
mrrExt.setRegionVertexPkId(cuMemberRetailRegionService.getRegionVertexPkIdByPkMember(mrrExt.getPkMember()));
return toAjax(cuMemberRetailRegionService.updateById(mrrExt)); return toAjax(cuMemberRetailRegionService.updateById(mrrExt));
} }

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt;
import com.hzs.common.domain.system.base.BdArea; import com.hzs.common.domain.system.base.BdArea;
import com.hzs.retail.member.param.RetailMemberRegionParam;
import com.hzs.retail.member.vo.UnboundAreaVO; import com.hzs.retail.member.vo.UnboundAreaVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -32,7 +33,7 @@ public interface CuMemberRetailRegionMapper extends BaseMapper<CuMemberRetailReg
* @param systemType 系统类型 * @param systemType 系统类型
* @return * @return
*/ */
List<BdArea> listChooseRegion(@Param("systemType") Integer systemType); List<BdArea> listChooseRegion(@Param("systemType") Integer systemType, @Param("userId") Long userId);
/** /**
* 插入收益区域 * 插入收益区域
@ -99,4 +100,9 @@ public interface CuMemberRetailRegionMapper extends BaseMapper<CuMemberRetailReg
@Param("county") Integer county, @Param("county") Integer county,
@Param("systemType") Integer systemType); @Param("systemType") Integer systemType);
int validateBindCountA(@Param("mrrExt") CuMemberRetailRegionExt mrrExt, @Param("yesOrNoValue") Integer yesOrNoValue, @Param("systemType") Integer systemType, @Param("pkId") Long pkId);
int validateBindCountB(@Param("mrrExt") RetailMemberRegionParam mrrExt, @Param("yesOrNoValue") Integer yesOrNoValue, @Param("systemType") Integer systemType, @Param("pkId") Long pkId);
Long getRegionVertexPkIdByPkMember(@Param("pkMember") Long pkMember);
} }

View File

@ -6,6 +6,7 @@ import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt;
import com.hzs.common.domain.system.base.BdArea; import com.hzs.common.domain.system.base.BdArea;
import com.hzs.retail.member.param.RetailMemberRegionParam; import com.hzs.retail.member.param.RetailMemberRegionParam;
import com.hzs.retail.member.vo.UnboundAreaVO; import com.hzs.retail.member.vo.UnboundAreaVO;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -84,4 +85,9 @@ public interface ICuMemberRetailRegionService extends IService<CuMemberRetailReg
*/ */
void handleRepeatRegion(); void handleRepeatRegion();
int validateBindCount(CuMemberRetailRegionExt mrrExt, Integer yesOrNoValue, Integer systemType, Long pkId);
int validateBindCount(RetailMemberRegionParam mrrExt, Integer yesOrNoValue, Integer systemType, Long pkId);
Long getRegionVertexPkIdByPkMember(Long pkMember);
} }

View File

@ -10,6 +10,7 @@ import com.hzs.common.core.service.RedisService;
import com.hzs.common.domain.retail.member.CuMemberRetailRegion; import com.hzs.common.domain.retail.member.CuMemberRetailRegion;
import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt; import com.hzs.common.domain.retail.member.ext.CuMemberRetailRegionExt;
import com.hzs.common.domain.system.base.BdArea; import com.hzs.common.domain.system.base.BdArea;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.retail.member.mapper.CuMemberRetailRegionMapper; import com.hzs.retail.member.mapper.CuMemberRetailRegionMapper;
import com.hzs.retail.member.param.RetailMemberRegionParam; import com.hzs.retail.member.param.RetailMemberRegionParam;
import com.hzs.retail.member.service.ICuMemberRetailAchieveService; import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
@ -73,6 +74,7 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl<CuMemberRetailR
.systemType(param.getSystemType()) .systemType(param.getSystemType())
.build(); .build();
retailRegion.setPkCreator(param.getPkMember()); retailRegion.setPkCreator(param.getPkMember());
retailRegion.setRegionVertexPkId(baseMapper.getRegionVertexPkIdByPkMember(retailRegion.getPkMember()));
if (baseMapper.insertData(retailRegion) == 0) { if (baseMapper.insertData(retailRegion) == 0) {
throw new ServiceException("选择区域失败,请刷新后重试"); throw new ServiceException("选择区域失败,请刷新后重试");
} }
@ -84,7 +86,7 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl<CuMemberRetailR
@Override @Override
public List<BdArea> listChooseRegion(Integer systemType) { public List<BdArea> listChooseRegion(Integer systemType) {
return baseMapper.listChooseRegion(systemType); return baseMapper.listChooseRegion(systemType, SecurityUtils.getUserId());
} }
@Override @Override
@ -204,4 +206,19 @@ public class CuMemberRetailRegionServiceImpl extends ServiceImpl<CuMemberRetailR
} }
} }
@Override
public int validateBindCount(CuMemberRetailRegionExt mrrExt, Integer yesOrNoValue, Integer systemType, Long pkId) {
return baseMapper.validateBindCountA(mrrExt, yesOrNoValue, systemType, pkId);
}
@Override
public int validateBindCount(RetailMemberRegionParam mrrExt, Integer yesOrNoValue, Integer systemType, Long pkId) {
return baseMapper.validateBindCountB(mrrExt, yesOrNoValue, systemType, pkId);
}
@Override
public Long getRegionVertexPkIdByPkMember(Long pkMember) {
return baseMapper.getRegionVertexPkIdByPkMember(pkMember);
}
} }

View File

@ -42,6 +42,18 @@
where ba.del_flag = 0 where ba.del_flag = 0
and ba.pk_country = 1 and ba.pk_country = 1
and ba.ENABLE_STATE = 0 and ba.ENABLE_STATE = 0
and ba.pk_id not in (
SELECT
COUNTY
FROM
CU_MEMBER_RETAIL_REGION cmrr
INNER JOIN cu_member cm ON cmrr.pk_member = cm.pk_id
LEFT JOIN BD_VERTEX bv ON cm.PK_VERTEX = bv.PK_ID
LEFT JOIN BD_REGION_VERTEX brv ON bv.REGION_VERTEX_PK_ID = brv.PK_ID
where 1=1
and cm.pk_id = ${userId}
and cmrr.system_type = #{systemType}
)
and ba.pk_id not in (select cmrr.county and ba.pk_id not in (select cmrr.county
from cu_member_retail_region cmrr from cu_member_retail_region cmrr
where cmrr.del_flag = 0 where cmrr.del_flag = 0
@ -62,7 +74,9 @@
source, source,
creation_time, creation_time,
pk_creator, pk_creator,
system_type) system_type,
REGION_VERTEX_PK_ID
)
select cu_member_retail_region_seq.nextval, select cu_member_retail_region_seq.nextval,
#{retailRegion.pkMember}, #{retailRegion.pkMember},
#{retailRegion.province}, #{retailRegion.province},
@ -71,16 +85,22 @@
#{retailRegion.source}, #{retailRegion.source},
sysdate, sysdate,
#{retailRegion.pkCreator}, #{retailRegion.pkCreator},
#{retailRegion.systemType} #{retailRegion.systemType},
#{retailRegion.regionVertexPkId}
from dual from dual
where not exists(select 1 where not exists(select 1
from cu_member_retail_region cmrr from cu_member_retail_region cmrr
INNER JOIN cu_member cm ON cmrr.pk_member = cm.pk_id
LEFT JOIN BD_VERTEX bv ON cm.PK_VERTEX = bv.PK_ID
LEFT JOIN BD_REGION_VERTEX brv ON bv.REGION_VERTEX_PK_ID = brv.PK_ID
where cmrr.province = #{retailRegion.province} where cmrr.province = #{retailRegion.province}
and cmrr.city = #{retailRegion.city} and cmrr.city = #{retailRegion.city}
and cmrr.county = #{retailRegion.county} and cmrr.county = #{retailRegion.county}
and cmrr.del_flag = 0 and cmrr.del_flag = 0
and cmrr.effective = 0 and cmrr.effective = 0
and cmrr.system_type = #{retailRegion.systemType}) and cmrr.system_type = #{retailRegion.systemType}
AND cm.pk_id = #{retailRegion.pkMember}
)
</insert> </insert>
<!-- 未绑定收益区域--> <!-- 未绑定收益区域-->
@ -124,7 +144,9 @@
p.name provinceVal, p.name provinceVal,
c.name cityVal, c.name cityVal,
pc.name countyVal, pc.name countyVal,
bg.GRADE_NAME gradeName bg.GRADE_NAME gradeName,
brv.pk_id as regionVertexPkId,
brv.name as regionVertexName
FROM CU_MEMBER_RETAIL_REGION CRR FROM CU_MEMBER_RETAIL_REGION CRR
INNER JOIN CU_MEMBER CM INNER JOIN CU_MEMBER CM
ON CRR.PK_MEMBER = CM.PK_ID ON CRR.PK_MEMBER = CM.PK_ID
@ -138,6 +160,8 @@
LEFT JOIN BD_AREA PC LEFT JOIN BD_AREA PC
ON PC.PK_ID = CRR.COUNTY ON PC.PK_ID = CRR.COUNTY
AND PC.DEL_FLAG = 0 AND PC.DEL_FLAG = 0
left join BD_REGION_VERTEX brv
on brv.pk_id = crr.REGION_VERTEX_PK_ID
where CRR.DEL_FLAG = 0 where CRR.DEL_FLAG = 0
<if test="pkCountry != null"> <if test="pkCountry != null">
and CRR.PK_COUNTRY = #{pkCountry} and CRR.PK_COUNTRY = #{pkCountry}
@ -181,6 +205,9 @@
<if test="source!=null"> <if test="source!=null">
and CRR.source=#{source} and CRR.source=#{source}
</if> </if>
<if test="regionVertexPkId != null">
and brv.pk_id = #{regionVertexPkId}
</if>
order by CRR.CREATION_TIME desc order by CRR.CREATION_TIME desc
</select> </select>
@ -239,6 +266,66 @@
group by cmrr.province, cmrr.city, cmrr.county group by cmrr.province, cmrr.city, cmrr.county
having count(1) > 1 having count(1) > 1
</select> </select>
<select id="validateBindCountA" resultType="java.lang.Integer">
SELECT
COUNT(DISTINCT cmrr.pk_member)
FROM
CU_MEMBER_RETAIL_REGION cmrr
where 1=1
<if test="mrrExt.province != null">
and cmrr.PROVINCE = #{mrrExt.province}
</if>
<if test="mrrExt.city != null">
and cmrr.CITY = #{mrrExt.city}
</if>
<if test="mrrExt.county != null">
and cmrr.COUNTY = #{mrrExt.county}
</if>
<if test="yesOrNoValue != null">
and cmrr.EFFECTIVE = #{yesOrNoValue}
</if>
<if test="systemType != null">
and cmrr.SYSTEM_TYPE = #{systemType}
</if>
and cmrr.del_flag = 0
AND cmrr.PK_MEMBER IN (select pk_id from CU_MEMBER where PK_VERTEX in (select pk_id from BD_VERTEX where REGION_VERTEX_PK_ID in (select REGION_VERTEX_PK_ID from BD_VERTEX where pk_id in (select PK_VERTEX FROM cu_member WHERE PK_ID = #{pkId} )) and DEL_FLAG = 0))
</select>
<select id="validateBindCountB" resultType="java.lang.Integer">
SELECT
COUNT(DISTINCT cmrr.pk_member)
FROM
CU_MEMBER_RETAIL_REGION cmrr
where 1=1
<if test="mrrExt.province != null">
and cmrr.PROVINCE = #{mrrExt.province}
</if>
<if test="mrrExt.city != null">
and cmrr.CITY = #{mrrExt.city}
</if>
<if test="mrrExt.county != null">
and cmrr.COUNTY = #{mrrExt.county}
</if>
<if test="yesOrNoValue != null">
and cmrr.EFFECTIVE = #{yesOrNoValue}
</if>
<if test="systemType != null">
and cmrr.SYSTEM_TYPE = #{systemType}
</if>
and cmrr.del_flag = 0
AND cmrr.PK_MEMBER IN (select pk_id from CU_MEMBER where PK_VERTEX in (select pk_id from BD_VERTEX where REGION_VERTEX_PK_ID in (select REGION_VERTEX_PK_ID from BD_VERTEX where pk_id in (select PK_VERTEX FROM cu_member WHERE PK_ID = #{pkId} )) and DEL_FLAG = 0))
<!--
GROUP BY
NVL(TO_CHAR(brv.PK_ID), 'NULL_GROUP')
-->
</select>
<select id="getRegionVertexPkIdByPkMember" resultType="java.lang.Long" parameterType="java.lang.Long">
SELECT
REGION_VERTEX_PK_ID
FROM
BD_VERTEX
WHERE
pk_id IN (select PK_VERTEX FROM cu_member cm WHERE cm.pk_id = #{pkMember} )
</select>
<!-- 更新非最新区域其它数据 --> <!-- 更新非最新区域其它数据 -->
<update id="updateRepeatDate"> <update id="updateRepeatDate">

View File

@ -0,0 +1,19 @@
package com.hzs.system.base.controller.api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 区域体系分组配置表 前端控制器
* </p>
*
* @author sangelxiu1
* @since 2025-06-25
*/
@RestController
@RequestMapping("/com.hzs.common.domain/bd-region-vertex")
public class ApiRegionVertexController {
}

View File

@ -0,0 +1,59 @@
package com.hzs.system.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.domain.system.base.BdRegionVertex;
import com.hzs.system.base.service.IBdRegionVertexService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 区域体系分组配置表 前端控制器
* </p>
*
* @author sangelxiu1
* @since 2025-06-25
*/
@RestController
@RequestMapping("/manage/bd-region-vertex")
public class BdRegionVertexController extends BaseController {
@Autowired
private IBdRegionVertexService bdRegionVertexService;
@GetMapping("/list")
public TableDataInfo list(BdRegionVertex param) {
startPage();
List<BdRegionVertex> list = bdRegionVertexService.getList(param);
return getDataTable(list);
}
@GetMapping("/getAll")
public AjaxResult getAll() {
List<BdRegionVertex> list = bdRegionVertexService.getList(null);
return AjaxResult.success(list);
}
@PostMapping("/add")
public AjaxResult add(@RequestBody BdRegionVertex param) {
bdRegionVertexService.add(param);
return AjaxResult.success();
}
@PostMapping("/update")
public AjaxResult update(@RequestBody BdRegionVertex param) {
bdRegionVertexService.update(param);
return AjaxResult.success();
}
@PostMapping("/delete")
public AjaxResult delete(@RequestBody BdRegionVertex param) {
bdRegionVertexService.delete(param);
return AjaxResult.success();
}
@GetMapping("/getById")
public AjaxResult getById(BdRegionVertex param) {
return AjaxResult.success(bdRegionVertexService.getById(param));
}
}

View File

@ -0,0 +1,17 @@
package com.hzs.system.base.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.system.base.BdRegionVertex;
import feign.Param;
/**
* <p>
* 区域体系分组配置表 Mapper 接口
* </p>
*
* @author sangelxiu1
* @since 2025-06-25
*/
public interface BdRegionVertexMapper extends BaseMapper<BdRegionVertex> {
int validateMappingCount(@Param("pkId") Long pkId);
}

View File

@ -0,0 +1,24 @@
package com.hzs.system.base.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.system.base.BdRegionVertex;
import java.util.List;
/**
* <p>
* 区域体系分组配置表 服务类
* </p>
*
* @author sangelxiu1
* @since 2025-06-25
*/
public interface IBdRegionVertexService extends IService<BdRegionVertex> {
List<BdRegionVertex> getList(BdRegionVertex param);
void add(BdRegionVertex param);
void delete(BdRegionVertex param);
void update(BdRegionVertex param);
BdRegionVertex getById(BdRegionVertex param);
}

View File

@ -0,0 +1,110 @@
package com.hzs.system.base.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.enums.EDelFlag;
import com.hzs.common.core.exception.ServiceException;
import com.hzs.common.core.utils.StringUtils;
import com.hzs.common.domain.system.base.BdRegionVertex;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.system.base.mapper.BdRegionVertexMapper;
import com.hzs.system.base.service.IBdRegionVertexService;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* <p>
* 区域体系分组配置表 服务实现类
* </p>
*
* @author sangelxiu1
* @since 2025-06-25
*/
@Service
public class BdRegionVertexServiceImpl extends ServiceImpl<BdRegionVertexMapper, BdRegionVertex> implements IBdRegionVertexService {
@Override
public List<BdRegionVertex> getList(BdRegionVertex param) {
LambdaQueryWrapper<BdRegionVertex> queryWrapper = new LambdaQueryWrapper<>();
if(ObjectUtil.isNotEmpty(param)){
if(StringUtils.isNotEmpty(param.getName())){
queryWrapper.like(BdRegionVertex::getName, param.getName());
}
}
return baseMapper.selectList(queryWrapper);
}
@Override
public void add(BdRegionVertex param) {
if(ObjectUtil.isNotEmpty(param)){
if(!StringUtils.isNotEmpty(param.getName())){
throw new ServiceException("区域体系分组名称不能为空!");
}
}
LambdaQueryWrapper<BdRegionVertex> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdRegionVertex::getName, param.getName());
queryWrapper.eq(BdRegionVertex::getDelFlag, EDelFlag.UN_DELETE.getValue());
int sameNameCount = baseMapper.selectCount(queryWrapper);
if(sameNameCount > 0){
throw new ServiceException("已存在相同的区域体系分组名称!");
}
param.setPkCreator(SecurityUtils.getUserId());
param.setCreationTime(new Date());
param.setPkModified(param.getPkCreator());
param.setModifiedTime(param.getModifiedTime());
param.setDelFlag(EDelFlag.UN_DELETE.getValue());
baseMapper.insert(param);
}
@Override
public void delete(BdRegionVertex param) {
// 验证是否已被引用
if(ObjectUtil.isNotEmpty(param)){
if(ObjectUtil.isEmpty(param.getPkId())){
throw new ServiceException("区域体系分组主键不能为空!");
}
}
int validateMappingCount = baseMapper.validateMappingCount(param.getPkId());
if(validateMappingCount > 0){
throw new ServiceException("存在已引用此配置的体系信息, 不允许删除!");
}
baseMapper.deleteById(param.getPkId());
}
@Override
public void update(BdRegionVertex param) {
if(ObjectUtil.isNotEmpty(param)){
if(ObjectUtil.isEmpty(param.getPkId())){
throw new ServiceException("区域体系分组主键不能为空!");
}
if(StringUtils.isEmpty(param.getName())){
throw new ServiceException("区域体系分组名称不能为空!");
}
}
LambdaQueryWrapper<BdRegionVertex> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BdRegionVertex::getName, param.getName());
queryWrapper.ne(BdRegionVertex::getPkId, param.getPkId());
queryWrapper.eq(BdRegionVertex::getDelFlag, EDelFlag.UN_DELETE.getValue());
int sameNameCount = baseMapper.selectCount(queryWrapper);
if(sameNameCount > 0){
throw new ServiceException("已存在相同的区域体系分组名称!");
}
param.setPkModified(SecurityUtils.getUserId());
param.setModifiedTime(new Date());
param.setDelFlag(EDelFlag.UN_DELETE.getValue());
baseMapper.updateById(param);
}
@Override
public BdRegionVertex getById(BdRegionVertex param) {
if(ObjectUtil.isNotEmpty(param)){
if(ObjectUtil.isEmpty(param.getPkId())){
throw new ServiceException("区域体系分组主键不能为空!");
}
}
return baseMapper.selectById(param.getPkId());
}
}

View File

@ -0,0 +1,8 @@
package com.hzs.system.base.vo;
import com.hzs.common.domain.system.base.BdRegionVertex;
import lombok.Data;
@Data
public class BdRegionVertexVo extends BdRegionVertex {
}

View File

@ -103,6 +103,7 @@ public class BdVertexController extends BaseController {
bdVertex.setPkCreator(SecurityUtils.getUserId()); bdVertex.setPkCreator(SecurityUtils.getUserId());
bdVertex.setPkMember(mb.getPkId()); bdVertex.setPkMember(mb.getPkId());
bdVertex.setSystemType(systemType); bdVertex.setSystemType(systemType);
bdVertex.setRegionVertexPkId(vertexParam.getRegionVertexPkId());
vertexService.save(bdVertex); vertexService.save(bdVertex);
return AjaxResult.success(); return AjaxResult.success();
} }
@ -141,6 +142,7 @@ public class BdVertexController extends BaseController {
bdVertex.setPkMember(mb.getPkId()); bdVertex.setPkMember(mb.getPkId());
bdVertex.setModifiedTime(new Date()); bdVertex.setModifiedTime(new Date());
bdVertex.setPkModified(SecurityUtils.getUserId()); bdVertex.setPkModified(SecurityUtils.getUserId());
bdVertex.setRegionVertexPkId(vertexParam.getRegionVertexPkId());
if (null == bdVertex.getPkParent()) { if (null == bdVertex.getPkParent()) {
bdVertex.setPkParent(0); bdVertex.setPkParent(0);
} }

View File

@ -57,4 +57,6 @@ public class VertexParam {
private Integer pkParent; private Integer pkParent;
private Integer sort; private Integer sort;
private Long regionVertexPkId;
} }

View File

@ -44,4 +44,12 @@ public class VertexVo extends BaseEntity {
*/ */
private Integer pkParent; private Integer pkParent;
private Integer sort; private Integer sort;
/**
* 区域体系配置分组名称
*/
private String regionVertexName;
@TableField("REGION_VERTEX_PK_ID")
private Long regionVertexPkId;
} }

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.system.base.mapper.BdRegionVertexMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.system.base.BdRegionVertex">
<result column="CREATION_TIME" property="creationTime" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_ID" property="pkId" />
<result column="NAME" property="name" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
CREATION_TIME,
MODIFIED_TIME,
PK_ID, NAME
</sql>
<select id="validateMappingCount" resultType="java.lang.Integer" parameterType="java.lang.Long">
select count(1) from BD_VERTEX where REGION_VERTEX_PK_ID = #{pkId}
</select>
</mapper>

View File

@ -65,9 +65,10 @@
</update> </update>
<select id="selectByList" resultType="com.hzs.system.config.vo.VertexVo"> <select id="selectByList" resultType="com.hzs.system.config.vo.VertexVo">
select bv.*,cm.MEMBER_CODE memberCode select bv.*,cm.MEMBER_CODE memberCode, brv.name as regionVertexName
from BD_VERTEX bv from BD_VERTEX bv
left join CU_MEMBER cm on cm.PK_ID = bv.PK_MEMBER left join CU_MEMBER cm on cm.PK_ID = bv.PK_MEMBER
left join BD_REGION_VERTEX brv on brv.pk_id = bv.REGION_VERTEX_PK_ID
where bv.DEL_FLAG = 0 where bv.DEL_FLAG = 0
<if test="createStartDate != null"> <if test="createStartDate != null">
and bv.CREATION_TIME &gt;= #{createStartDate} and bv.CREATION_TIME &gt;= #{createStartDate}

View File

@ -33,6 +33,11 @@ public class SysConstants {
*/ */
public static final BigDecimal TOTAL_AREA_PV = new BigDecimal("300000"); public static final BigDecimal TOTAL_AREA_PV = new BigDecimal("300000");
/**
* 小区业绩累计10万
*/
public static final BigDecimal SMALL_AREA_PV = new BigDecimal("100000");
/** /**
* 开放使用会员编号用于支付登录查看数据 * 开放使用会员编号用于支付登录查看数据
*/ */

View File

@ -83,4 +83,6 @@ public class CuMemberRetailRegion extends BaseEntity {
@TableField("SYSTEM_TYPE") @TableField("SYSTEM_TYPE")
private Integer systemType; private Integer systemType;
@TableField("REGION_VERTEX_PK_ID")
private Long regionVertexPkId;
} }

View File

@ -102,4 +102,9 @@ public class CuMemberRetailRegionExt extends CuMemberRetailRegion {
* 2025年6月11日 是否激活 (0-, 1-) * 2025年6月11日 是否激活 (0-, 1-)
*/ */
private Integer isActivate; private Integer isActivate;
/**
* 2025年6月30日 区域体系分组名称
*/
private String regionVertexName;
} }

View File

@ -0,0 +1,39 @@
package com.hzs.common.domain.system.base;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.hzs.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 区域体系分组配置表
* </p>
*
* @author sangelxiu1
* @since 2025-06-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("BD_REGION_VERTEX")
@KeySequence("BD_REGION_VERTEX_SEQ")
public class BdRegionVertex extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId("PK_ID")
private Long pkId;
/**
* 区域体系分组名称
*/
@TableField("NAME")
private String name;
}

View File

@ -60,4 +60,6 @@ public class BdVertex extends BaseEntity {
@TableField("SYSTEM_TYPE") @TableField("SYSTEM_TYPE")
private Integer systemType; private Integer systemType;
@TableField("REGION_VERTEX_PK_ID")
private Long regionVertexPkId;
} }

View File

@ -0,0 +1,29 @@
CREATE TABLE "RETAIL"."BD_REGION_VERTEX" (
"PK_ID" NUMBER(6,0),
"CREATION_TIME" DATE NOT NULL,
"MODIFIED_TIME" DATE,
"NAME" VARCHAR2(200) NOT NULL
)
;
COMMENT ON COLUMN "RETAIL"."BD_REGION_VERTEX"."CREATION_TIME" IS '创建时间';
COMMENT ON COLUMN "RETAIL"."BD_REGION_VERTEX"."MODIFIED_TIME" IS '更新时间';
COMMENT ON COLUMN "RETAIL"."BD_REGION_VERTEX"."NAME" IS '区域体系分组名称';
COMMENT ON TABLE "RETAIL"."BD_REGION_VERTEX" IS '区域体系分组配置表';
CREATE SEQUENCE BD_REGION_VERTEX_SEQ
START WITH 1
INCREMENT BY 1;
ALTER TABLE "RETAIL"."BD_VERTEX"
ADD ("REGION_VERTEX_PK_ID" NUMBER(6,0));
COMMENT ON COLUMN "RETAIL"."BD_VERTEX"."REGION_VERTEX_PK_ID" IS '区域体系分组配置表ID';
ALTER TABLE "RETAIL"."CU_MEMBER_RETAIL_REGION"
ADD ("REGION_VERTEX_PK_ID" NUMBER(6,0));
COMMENT ON COLUMN "RETAIL"."CU_MEMBER_RETAIL_REGION"."REGION_VERTEX_PK_ID" IS '区域体系分组配置表ID'