fix(address): 强化行政区划及坐标字段非空校验

- 将region_name、longitude、latitude字段设为非空
- 在SQL映射中添加region_code字段支持
- 修改实体类及服务逻辑,新增region_code字段赋值
- 增加对region_name、longitude、latitude字段的非空校验
- 新增region_code长度校验,完善字段长度限制
- 更新数据库表定义,调整相关字段约束
This commit is contained in:
2026-07-20 21:06:34 +08:00
parent 03a4fab114
commit 9722a4ccf0
3 changed files with 13 additions and 5 deletions

View File

@@ -91,6 +91,7 @@ public class CommonAddressServiceImpl extends BaseServiceImpl<CommonAddressMappe
if (Func.isEmpty(address) || Objects.equals(address.getIsDeleted(), 1)) {
throw new ServiceException("常用地址不存在");
}
validateReadableDept(address);
CommonAddressVO addressVO = Objects.requireNonNull(BeanUtil.copyProperties(address, CommonAddressVO.class));
fillDisplay(addressVO);
return addressVO;
@@ -100,7 +101,10 @@ public class CommonAddressServiceImpl extends BaseServiceImpl<CommonAddressMappe
@Transactional(rollbackFor = Exception.class)
public boolean submit(CommonAddress address) {
boolean created = Func.isEmpty(address.getId());
if (!created) {
if (created) {
fillCurrentDept(address);
address.setAddressCode(null);
} else {
CommonAddress oldAddress = getEditableAddress(address.getId());
address.setAddressCode(oldAddress.getAddressCode());
address.setDeptId(oldAddress.getDeptId());
@@ -302,6 +306,12 @@ public class CommonAddressServiceImpl extends BaseServiceImpl<CommonAddressMappe
}
}
private void validateReadableDept(CommonAddress address) {
if (!AuthUtil.isAdministrator() && !Objects.equals(address.getDeptId(), currentDeptId())) {
throw new ServiceException("无权查看其他组织常用地址");
}
}
private void fillDisplay(CommonAddressVO address) {
address.setSiteCodeDisplay(TYPE_NORMAL.equals(address.getAddressType()) ? NORMAL_SITE_CODE : address.getSiteCode());
address.setReadonly(!Objects.equals(address.getDeptId(), currentDeptId()));

View File

@@ -39,8 +39,7 @@ CREATE TABLE `blade_common_address` (
-- Menu data for common address
-- ----------------------------
INSERT IGNORE INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES
(2080000000000000001, 0, 'base_data', '基础数据', 'base_data', '/base', 'iconfont icon-caidan', 30, 1, 0, 1, NULL, '', 0),
(2080000000000000010, 2080000000000000001, 'common_address', '常用地址', 'common_address', '/base/common-address', 'iconfont icon-dizhi', 10, 1, 0, 1, NULL, '', 0),
(2080000000000000010, 1164733399668962201, 'common_address', '常用地址', 'common_address', '/base/common-address', 'iconfont icon-dizhi', 10, 1, 0, 1, NULL, '', 0),
(2080000000000000011, 2080000000000000010, 'common_address_view', '查看', 'common_address_view', '', '', 1, 2, 0, 1, NULL, '', 0),
(2080000000000000012, 2080000000000000010, 'common_address_add', '新增', 'common_address_add', '', '', 2, 2, 0, 1, NULL, '', 0),
(2080000000000000013, 2080000000000000010, 'common_address_edit', '编辑', 'common_address_edit', '', '', 3, 2, 0, 1, NULL, '', 0),

View File

@@ -6035,8 +6035,7 @@ COMMIT;
-- Menu data for blade_common_address
-- ----------------------------
INSERT IGNORE INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES
(2080000000000000001, 0, 'base_data', '基础数据', 'base_data', '/base', 'iconfont icon-caidan', 30, 1, 0, 1, NULL, '', 0),
(2080000000000000010, 2080000000000000001, 'common_address', '常用地址', 'common_address', '/base/common-address', 'iconfont icon-dizhi', 10, 1, 0, 1, NULL, '', 0),
(2080000000000000010, 1164733399668962201, 'common_address', '常用地址', 'common_address', '/base/common-address', 'iconfont icon-dizhi', 10, 1, 0, 1, NULL, '', 0),
(2080000000000000011, 2080000000000000010, 'common_address_view', '查看', 'common_address_view', '', '', 1, 2, 0, 1, NULL, '', 0),
(2080000000000000012, 2080000000000000010, 'common_address_add', '新增', 'common_address_add', '', '', 2, 2, 0, 1, NULL, '', 0),
(2080000000000000013, 2080000000000000010, 'common_address_edit', '编辑', 'common_address_edit', '', '', 3, 2, 0, 1, NULL, '', 0),