From df1f7f50713bfd7fae35615ac49f32415d6d5c6f Mon Sep 17 00:00:00 2001 From: mashuai Date: Mon, 9 Sep 2024 13:59:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/bonus/base/config/ExceptionEnum.java | 2 +- .../controller/TbProDepartController.java | 34 ++++++++-- .../java/com/bonus/base/domain/TbArea.java | 31 ++++++++++ .../java/com/bonus/base/domain/TbData.java | 42 +++++++++++++ .../com/bonus/base/domain/TbProDepart.java | 6 ++ .../bonus/base/mapper/TbProDepartMapper.java | 16 +++++ .../base/service/TbProDepartService.java | 15 +++++ .../service/impl/TbProDepartServiceImpl.java | 62 ++++++++++++++++++- .../bonus/base/utils/PhoneNumberUtils.java | 28 +++++++++ .../resources/mapper/TbProDepartMapper.xml | 28 +++++++-- 10 files changed, 251 insertions(+), 13 deletions(-) create mode 100644 bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbArea.java create mode 100644 bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbData.java create mode 100644 bonus-modules/bonus-base/src/main/java/com/bonus/base/utils/PhoneNumberUtils.java diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/config/ExceptionEnum.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/config/ExceptionEnum.java index c3d1caa..b3f9d47 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/config/ExceptionEnum.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/config/ExceptionEnum.java @@ -21,7 +21,7 @@ public enum ExceptionEnum { UN_BIND_TO_DATABASE(500, "解绑失败,请联系管理员!!!"), UPDATE_TO_DATABASE(500, "修改失败,请联系管理员!!!"), - RETURN_DATA_IS_EMPTY(501, "返回数据为空!!"), + INVALID_PHONE_NUMBER_FORMAT(501, "手机号格式不正确!!"), IOT_ENCODING_ERROR(502, "输入的IOT编码有误,请输入正确的编码!!!"); private Integer code; diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/controller/TbProDepartController.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/controller/TbProDepartController.java index 439c6a6..26dd627 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/controller/TbProDepartController.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/controller/TbProDepartController.java @@ -1,11 +1,12 @@ package com.bonus.base.controller; +import com.bonus.base.domain.TbArea; +import com.bonus.base.domain.TbData; import com.bonus.base.domain.TbProDepart; import com.bonus.base.service.TbProDepartService; import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.domain.AjaxResult; -import com.bonus.common.core.web.page.TableDataInfo; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; @@ -34,11 +35,14 @@ public class TbProDepartController extends BaseController { * @param tbProDepart 筛选条件 * @return 查询结果 */ - @GetMapping - public TableDataInfo queryByPage(TbProDepart tbProDepart) { + @GetMapping("/list") + public AjaxResult queryByPage(TbProDepart tbProDepart) { + if (tbProDepart.getIsAll()) { + return AjaxResult.success(tbProDepartService.queryByPage(tbProDepart)); + } startPage(); List list = tbProDepartService.queryByPage(tbProDepart); - return getDataTable(list); + return AjaxResult.success(getDataTable(list)); } /** @@ -47,11 +51,31 @@ public class TbProDepartController extends BaseController { * @param id 主键 * @return 单条数据 */ - @GetMapping("{id}") + @GetMapping("/{id}") public AjaxResult queryById(@PathVariable("id") Long id) { return AjaxResult.success(tbProDepartService.queryById(id)); } + /** + * 查询所有区域数据 + * @param tbArea + * @return + */ + @GetMapping("/getAreaList") + public AjaxResult getAreaList(TbArea tbArea) { + return AjaxResult.success(tbProDepartService.getAreaList(tbArea)); + } + + /** + * 查询所有字典数据列表 + * @param data + * @return + */ + @GetMapping("/getDataList") + public AjaxResult getDataList(TbData data) { + return AjaxResult.success(tbProDepartService.getDataList(data)); + } + /** * 新增数据 * diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbArea.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbArea.java new file mode 100644 index 0000000..0e31218 --- /dev/null +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbArea.java @@ -0,0 +1,31 @@ +package com.bonus.base.domain; + +import lombok.Data; + +/** + * @Author ma_sh + * @create 2024/9/9 13:07 + */ +@Data +public class TbArea { + + /** + * 主键id + */ + private Long id; + + /** + * 区域名称 + */ + private String areaName; + + /** + * 区域类型 0 地区 1 监管单位 3... + */ + private String areaType; + + /** + * 层级id + */ + private Long pId; +} diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbData.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbData.java new file mode 100644 index 0000000..368417a --- /dev/null +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbData.java @@ -0,0 +1,42 @@ +package com.bonus.base.domain; + +import lombok.Data; + +/** + * 字典数据 + * @Author ma_sh + * @create 2024/9/9 13:21 + */ +@Data +public class TbData { + + /** + * 字典编码 + */ + private Long dictCode; + + /** + * 字典排序 + */ + private String dictSort; + + /** + * 字典标签 + */ + private String dictLabel; + + /** + * 字典键值 + */ + private String dictValue; + + /** + * 字典类型 + */ + private String dictType; + + /** + * 项目部类型(字典表) + */ + private String departType; +} diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbProDepart.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbProDepart.java index 330095a..257343e 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbProDepart.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/domain/TbProDepart.java @@ -14,6 +14,12 @@ import java.io.Serializable; @Data public class TbProDepart implements Serializable { private static final long serialVersionUID = -99327586927571942L; + + /** + * 是否下拉选 + */ + private Boolean isAll; + /** * 主键 */ diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/mapper/TbProDepartMapper.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/mapper/TbProDepartMapper.java index f9ac63b..d3e5cb7 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/mapper/TbProDepartMapper.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/mapper/TbProDepartMapper.java @@ -1,5 +1,7 @@ package com.bonus.base.mapper; +import com.bonus.base.domain.TbArea; +import com.bonus.base.domain.TbData; import com.bonus.base.domain.TbProDepart; import java.util.List; @@ -49,5 +51,19 @@ public interface TbProDepartMapper { * @return */ List queryByPage(TbProDepart tbProDepart); + + /** + * 获取区域列表 + * @param tbArea + * @return + */ + List getAreaList(TbArea tbArea); + + /** + * 获取数据列表 + * @param data + * @return + */ + List getDataList(TbData data); } diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/TbProDepartService.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/TbProDepartService.java index f2c04ce..96932a0 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/TbProDepartService.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/TbProDepartService.java @@ -1,5 +1,7 @@ package com.bonus.base.service; +import com.bonus.base.domain.TbArea; +import com.bonus.base.domain.TbData; import com.bonus.base.domain.TbProDepart; import com.bonus.common.core.web.domain.AjaxResult; import org.springframework.data.domain.Page; @@ -55,4 +57,17 @@ public interface TbProDepartService { */ AjaxResult deleteById(Long id); + /** + * 获取区域列表 + * @param tbArea + * @return + */ + List getAreaList(TbArea tbArea); + + /** + * 获取字典数据列表 + * @param data + * @return + */ + List getDataList(TbData data); } diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/impl/TbProDepartServiceImpl.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/impl/TbProDepartServiceImpl.java index 32b8df6..cd5f8a9 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/impl/TbProDepartServiceImpl.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/service/impl/TbProDepartServiceImpl.java @@ -1,9 +1,15 @@ package com.bonus.base.service.impl; +import cn.hutool.core.util.PhoneUtil; +import com.alibaba.nacos.common.utils.CollectionUtils; import com.bonus.base.config.ExceptionEnum; +import com.bonus.base.domain.TbArea; +import com.bonus.base.domain.TbData; import com.bonus.base.domain.TbProDepart; import com.bonus.base.mapper.TbProDepartMapper; import com.bonus.base.service.TbProDepartService; +import com.bonus.base.utils.PhoneNumberUtils; +import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.web.domain.AjaxResult; import org.springframework.stereotype.Service; @@ -40,7 +46,16 @@ public class TbProDepartServiceImpl implements TbProDepartService { */ @Override public List queryByPage(TbProDepart tbProDepart) { - return tbProDepartDao.queryByPage(tbProDepart); + List list = tbProDepartDao.queryByPage(tbProDepart); + if (CollectionUtils.isNotEmpty(list)) { + list.forEach(item -> { + if (StringUtils.isNotBlank(item.getHeadUserPhone())) { + //对手机号进行中间加密 + item.setHeadUserPhone(PhoneNumberUtils.maskPhoneNumber(item.getHeadUserPhone())); + } + }); + } + return list; } /** @@ -51,6 +66,9 @@ public class TbProDepartServiceImpl implements TbProDepartService { */ @Override public AjaxResult insert(TbProDepart tbProDepart) { + if (getObjectResultBean(tbProDepart)) { + return AjaxResult.error(ExceptionEnum.INVALID_PHONE_NUMBER_FORMAT.getCode(), ExceptionEnum.INVALID_PHONE_NUMBER_FORMAT.getMsg()); + } int result = tbProDepartDao.insert(tbProDepart); if (result > 0) { return AjaxResult.success(ExceptionEnum.SUCCESS.getMsg(), result); @@ -58,6 +76,20 @@ public class TbProDepartServiceImpl implements TbProDepartService { return AjaxResult.error(ExceptionEnum.SAVE_TO_DATABASE.getCode(), ExceptionEnum.SAVE_TO_DATABASE.getMsg()); } + /** + * 手机号校验方法抽取 + * @param tbProDepart + * @return + */ + private boolean getObjectResultBean(TbProDepart tbProDepart) { + if (StringUtils.isNotBlank(tbProDepart.getHeadUserPhone())) { + if (!PhoneUtil.isMobile(tbProDepart.getHeadUserPhone())) { + return true; + } + } + return false; + } + /** * 修改数据 * @@ -66,6 +98,9 @@ public class TbProDepartServiceImpl implements TbProDepartService { */ @Override public AjaxResult update(TbProDepart tbProDepart) { + if (getObjectResultBean(tbProDepart)) { + return AjaxResult.error(ExceptionEnum.INVALID_PHONE_NUMBER_FORMAT.getCode(), ExceptionEnum.INVALID_PHONE_NUMBER_FORMAT.getMsg()); + } int result = tbProDepartDao.update(tbProDepart); if (result > 0) { return AjaxResult.success(ExceptionEnum.SUCCESS.getMsg(), result); @@ -89,4 +124,29 @@ public class TbProDepartServiceImpl implements TbProDepartService { return AjaxResult.error(ExceptionEnum.DELETE_TO_DATABASE.getCode(), ExceptionEnum.DELETE_TO_DATABASE.getMsg()); } } + + /** + * 获取区域列表 + * @param tbArea + * @return + */ + @Override + public List getAreaList(TbArea tbArea) { + return tbProDepartDao.getAreaList(tbArea); + } + + /** + * 获取字典列表 + * @param data + * @return + */ + @Override + public List getDataList(TbData data) { + List list = tbProDepartDao.getDataList(data); + if (CollectionUtils.isNotEmpty(list)) { + // 将 dictLabel 的值赋给 departType + data.setDepartType(data.getDictLabel()); + } + return list; + } } diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/utils/PhoneNumberUtils.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/utils/PhoneNumberUtils.java new file mode 100644 index 0000000..6aa8492 --- /dev/null +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/utils/PhoneNumberUtils.java @@ -0,0 +1,28 @@ +package com.bonus.base.utils; + +/** + * 手机号中间4位数* + * @Author ma_sh + * @create 2024/9/9 13:47 + */ +public class PhoneNumberUtils { + + /** + * 将手机号中间的四位数字替换为星号 + * @param phoneNumber 需要加密的手机号 + * @return 加密后的手机号 + */ + public static String maskPhoneNumber(String phoneNumber) { + // 验证手机号是否有效 + if (phoneNumber == null || phoneNumber.length() != 11) { + throw new IllegalArgumentException("手机号长度不正确,应为11位。"); + } + + // 提取前3位和后4位 + String prefix = phoneNumber.substring(0, 3); + String suffix = phoneNumber.substring(7); + + // 生成加密后的手机号 + return prefix + "****" + suffix; + } +} diff --git a/bonus-modules/bonus-base/src/main/resources/mapper/TbProDepartMapper.xml b/bonus-modules/bonus-base/src/main/resources/mapper/TbProDepartMapper.xml index 35012e5..05ef8ee 100644 --- a/bonus-modules/bonus-base/src/main/resources/mapper/TbProDepartMapper.xml +++ b/bonus-modules/bonus-base/src/main/resources/mapper/TbProDepartMapper.xml @@ -16,9 +16,9 @@ update_user as updateUser, del_flag as delFlag from tb_pro_depart tpd left join tb_area ta on tpd.area_id = ta.id - + where del_flag = '0' - tpd.id = #{id} + and tpd.id = #{id} and ta.area_name like concat('%',#{areaName},'%') @@ -29,7 +29,6 @@ and head_user like concat('%',#{headUser},'%') - @@ -39,8 +38,7 @@ depart_type as departType, area_id as areaId, ta.area_name as areaName, - head_user as - headUser, + head_user as headUser, head_user_phone as headUserPhone, remarks as remarks, create_time as createTime, @@ -50,7 +48,25 @@ del_flag as delFlag from tb_pro_depart tpd left join tb_areata on tpd.area_id = ta.id - where tpd.id = #{id} + where del_flag = '0' + and tpd.id = #{id} + + +