From f29c1774d96d66dad5eb943d53654e0c05d04a00 Mon Sep 17 00:00:00 2001 From: Flow <958079825@qq.com> Date: Fri, 6 Jun 2025 15:36:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=B6=E5=BA=AD=E6=88=90=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/person/PersonController.java | 31 ++++++++++++++++ .../admin/person/vo/PersonRespVO.java | 5 +-- .../admin/person/vo/PersonSaveReqVO.java | 7 ++-- .../dal/dataobject/person/PersonDO.java | 5 +-- .../system/dal/mysql/person/PersonMapper.java | 19 ++++++++++ .../system/service/person/PersonService.java | 31 ++++++++++++++++ .../service/person/PersonServiceImpl.java | 36 +++++++++++++++++-- 7 files changed, 126 insertions(+), 8 deletions(-) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/PersonController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/PersonController.java index 539fcf4358..d81e4ab214 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/PersonController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/PersonController.java @@ -86,4 +86,35 @@ public class PersonController { BeanUtils.toBean(list, PersonRespVO.class)); } + @PutMapping("/add-members") + @Operation(summary = "根据用户ID更新家庭组号") + @Parameter(name = "id", description = "用户编号", required = true) + @Parameter(name = "familyid", description = "家庭组号", required = true) + public CommonResult addMembers(@RequestParam("id") Integer id, @RequestParam("familyid") String familyid) { + personService.updatePersonFamilyId(id, familyid); + return success(true); + } + + @PutMapping("/remove-members") + @Operation(summary = "根据用户ID移除家庭组号") + @Parameter(name = "id", description = "用户编号", required = true) + public CommonResult removeMembers(@RequestParam("id") Integer id) { + personService.removePersonFamilyId(id); + return success(true); + } + + @GetMapping("/get-members-by-familyid") + @Operation(summary = "根据家庭组号获取所有成员") + @Parameter(name = "familyid", description = "家庭组号", required = true) + public CommonResult> getMembersByFamilyid(@RequestParam("familyid") String familyid) { + List list = personService.getMembersByFamilyid(familyid); + return success(BeanUtils.toBean(list, PersonRespVO.class)); + } + + @GetMapping("/page-no-familyid") + @Operation(summary = "获得没有家庭组号的用户基本信息分页") + public CommonResult> getPersonPageNoFamilyid(@Valid PersonPageReqVO pageReqVO) { + PageResult pageResult = personService.getPersonPageNoFamilyid(pageReqVO); + return success(BeanUtils.toBean(pageResult, PersonRespVO.class)); + } } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/vo/PersonRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/vo/PersonRespVO.java index b7594d5bac..d1ea4b28b7 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/vo/PersonRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/vo/PersonRespVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.system.controller.admin.person.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -58,11 +59,11 @@ public class PersonRespVO { @Schema(description = "创建时间") @ExcelProperty("创建时间") - private LocalDateTime createtime; + private String createtime; @Schema(description = "更新时间") @ExcelProperty("更新时间") - private LocalDateTime updatetime; + private String updatetime; @Schema(description = "创建人") @ExcelProperty("创建人") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/vo/PersonSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/vo/PersonSaveReqVO.java index 181f9aa731..9b7b412395 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/vo/PersonSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/person/vo/PersonSaveReqVO.java @@ -1,7 +1,10 @@ package cn.iocoder.yudao.module.system.controller.admin.person.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.time.LocalDate; import java.util.*; import javax.validation.constraints.*; import org.springframework.format.annotation.DateTimeFormat; @@ -50,10 +53,10 @@ public class PersonSaveReqVO { private String idcard; @Schema(description = "创建时间") - private LocalDateTime createtime; + private String createtime; @Schema(description = "更新时间") - private LocalDateTime updatetime; + private String updatetime; @Schema(description = "创建人") private String createby; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/person/PersonDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/person/PersonDO.java index 11fccb64c8..422c3ab60b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/person/PersonDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/person/PersonDO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.system.dal.dataobject.person; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.*; import java.util.*; import java.time.LocalDateTime; @@ -80,12 +81,12 @@ public class PersonDO { * 创建时间 */ @TableField("createtime") - private LocalDateTime createtime; + private String createtime; /** * 更新时间 */ @TableField("updatetime") - private LocalDateTime updatetime; + private String updatetime; /** * 创建人 */ diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/person/PersonMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/person/PersonMapper.java index 04cfd42375..42efa65515 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/person/PersonMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/person/PersonMapper.java @@ -36,4 +36,23 @@ public interface PersonMapper extends BaseMapperX { .orderByDesc(PersonDO::getId)); } + default PageResult selectPageNoFamilyid(PersonPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(PersonDO::getPhone, reqVO.getPhone()) + .eqIfPresent(PersonDO::getPassword, reqVO.getPassword()) + .likeIfPresent(PersonDO::getName, reqVO.getName()) + .eqIfPresent(PersonDO::getAddress, reqVO.getAddress()) + .eqIfPresent(PersonDO::getOrgid, reqVO.getOrgid()) + .likeIfPresent(PersonDO::getOrgname, reqVO.getOrgname()) + .eqIfPresent(PersonDO::getFamilyrelation, reqVO.getFamilyrelation()) + .eqIfPresent(PersonDO::getIsvip, reqVO.getIsvip()) + .eqIfPresent(PersonDO::getIdcard, reqVO.getIdcard()) + .betweenIfPresent(PersonDO::getCreatetime, reqVO.getCreatetime()) + .betweenIfPresent(PersonDO::getUpdatetime, reqVO.getUpdatetime()) + .eqIfPresent(PersonDO::getCreateby, reqVO.getCreateby()) + .eqIfPresent(PersonDO::getUpdateby, reqVO.getUpdateby()) + .isNull(PersonDO::getFamilyid) + .orderByDesc(PersonDO::getId)); + } + } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/person/PersonService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/person/PersonService.java index 87c394b624..45128d0071 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/person/PersonService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/person/PersonService.java @@ -52,4 +52,35 @@ public interface PersonService { */ PageResult getPersonPage(PersonPageReqVO pageReqVO); + /** + * 更新用户家庭组号 + * + * @param id 用户编号 + * @param familyid 家庭组号 + */ + void updatePersonFamilyId(Integer id, String familyid); + + /** + * 移除用户家庭组号 + * + * @param id 用户编号 + */ + void removePersonFamilyId(Integer id); + + /** + * 根据家庭组号获取所有成员 + * + * @param familyid 家庭组号 + * @return 成员列表 + */ + List getMembersByFamilyid(String familyid); + + PageResult getPersonPageNoFamilyid(PersonPageReqVO pageReqVO); + + /** + * 获得用户基本信息分页没有家庭组号 + * + * @param pageReqVO 分页查询 + * @return 用户基本信息分页 + */ } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/person/PersonServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/person/PersonServiceImpl.java index b2a3201e8e..4f454f5f42 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/person/PersonServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/person/PersonServiceImpl.java @@ -3,13 +3,11 @@ package cn.iocoder.yudao.module.system.service.person; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; import java.util.*; import cn.iocoder.yudao.module.system.controller.admin.person.vo.*; import cn.iocoder.yudao.module.system.dal.dataobject.person.PersonDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.system.dal.mysql.person.PersonMapper; @@ -17,6 +15,9 @@ import cn.iocoder.yudao.module.system.dal.mysql.person.PersonMapper; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; + /** * 用户基本信息 Service 实现类 * @@ -71,4 +72,35 @@ public class PersonServiceImpl implements PersonService { return personMapper.selectPage(pageReqVO); } + @Override + public void updatePersonFamilyId(Integer id, String familyid) { + // 校验存在 + validatePersonExists(id); + // 更新 + personMapper.update(null, new LambdaUpdateWrapper() + .eq(PersonDO::getId, id) + .set(PersonDO::getFamilyid, familyid)); + } + + @Override + public void removePersonFamilyId(Integer id) { + // 校验存在 + validatePersonExists(id); + // 更新 + personMapper.update(null, new LambdaUpdateWrapper() + .eq(PersonDO::getId, id) + .set(PersonDO::getFamilyid, null)); + } + + @Override + public List getMembersByFamilyid(String familyid) { + return personMapper.selectList(new LambdaQueryWrapper() + .eq(PersonDO::getFamilyid, familyid)); + } + + @Override + public PageResult getPersonPageNoFamilyid(PersonPageReqVO pageReqVO) { + return personMapper.selectPageNoFamilyid(pageReqVO); + } + } \ No newline at end of file