From 979d89eeac430b640200cd4637cb8a55ea3e89da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=89=AF=28004796=29?= Date: Tue, 19 Mar 2024 15:20:14 +0800 Subject: [PATCH] init --- .../xq/controller/AreaCodeController.java | 95 +++++++++++++++++++ .../xq/controller/app/HomeAppController.java | 8 ++ .../controller/app/SettingAppController.java | 15 +++ .../java/com/ruoyi/xq/domain/AreaCode.java | 56 +++++++++++ .../main/java/com/ruoyi/xq/domain/User.java | 25 ++++- .../xq/dto/app/areacode/AreaCodeQuery.java | 10 ++ .../ruoyi/xq/dto/app/user/HomePageReq.java | 51 ++++++++++ .../xq/dto/app/user/UpdateBaseInfoReq.java | 6 +- .../dto/app/user/UpdateUserFullInfoReq.java | 4 +- .../xq/dto/app/user/vo/CurrentUserInfoVo.java | 15 ++- .../xq/dto/app/user/vo/HomeUserListVo.java | 6 +- .../ruoyi/xq/dto/app/user/vo/HomeUserVo.java | 12 ++- .../com/ruoyi/xq/dto/common/user/MinUser.java | 9 ++ .../xq/enums/common/AreaCodeLevelEnum.java | 19 ++++ .../ruoyi/xq/manager/CurrentUserManager.java | 35 ++++++- .../com/ruoyi/xq/mapper/AreaCodeMapper.java | 14 +++ .../java/com/ruoyi/xq/mapper/UserMapper.java | 7 ++ .../com/ruoyi/xq/service/AreaCodeService.java | 18 ++++ .../com/ruoyi/xq/service/UserService.java | 6 ++ .../xq/service/impl/AreaCodeServiceImpl.java | 28 ++++++ .../xq/service/impl/UserServiceImpl.java | 34 +++++++ .../java/com/ruoyi/xq/util/BirthdayUtil.java | 6 ++ .../resources/mapper/xq/AreaCodeMapper.xml | 19 ++++ .../main/resources/mapper/xq/UserMapper.xml | 75 ++++++++++++++- .../resources/mapper/xq/UserVipMapper.xml | 2 +- 25 files changed, 549 insertions(+), 26 deletions(-) create mode 100644 ruoyi-xq/src/main/java/com/ruoyi/xq/controller/AreaCodeController.java create mode 100644 ruoyi-xq/src/main/java/com/ruoyi/xq/domain/AreaCode.java create mode 100644 ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/areacode/AreaCodeQuery.java create mode 100644 ruoyi-xq/src/main/java/com/ruoyi/xq/dto/common/user/MinUser.java create mode 100644 ruoyi-xq/src/main/java/com/ruoyi/xq/enums/common/AreaCodeLevelEnum.java create mode 100644 ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/AreaCodeMapper.java create mode 100644 ruoyi-xq/src/main/java/com/ruoyi/xq/service/AreaCodeService.java create mode 100644 ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/AreaCodeServiceImpl.java create mode 100644 ruoyi-xq/src/main/resources/mapper/xq/AreaCodeMapper.xml diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/AreaCodeController.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/AreaCodeController.java new file mode 100644 index 0000000..7733e7a --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/AreaCodeController.java @@ -0,0 +1,95 @@ +package com.ruoyi.xq.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.xq.domain.AreaCode; +import com.ruoyi.xq.service.AreaCodeService; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Arrays; + +/** + * 行政区划 + * + * @author 77 + * @date 2024-03-19 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/xq/areaCode") +public class AreaCodeController extends BaseController { + + private final AreaCodeService areaCodeService; + + /** + * 查询行政区划列表 + */ + @SaCheckPermission("xq:areaCode:list") + @GetMapping("/list") + public TableDataInfo list(AreaCode bo, PageQuery pageQuery) { + Page page = areaCodeService.page(pageQuery.build(), Wrappers.lambdaQuery(bo)); + return TableDataInfo.build(page); + } + + /** + * 获取行政区划详细信息 + * + * @param code 主键 + */ + @SaCheckPermission("xq:areaCode:query") + @GetMapping("/{code}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Integer code) { + return R.ok(areaCodeService.getById(code)); + } + + /** + * 新增行政区划 + */ + @SaCheckPermission("xq:areaCode:add") + @Log(title = "行政区划", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody AreaCode bo) { + return toAjax(areaCodeService.save(bo)); + } + + /** + * 修改行政区划 + */ + @SaCheckPermission("xq:areaCode:edit") + @Log(title = "行政区划", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody AreaCode bo) { + return toAjax(areaCodeService.updateById(bo)); + } + + /** + * 删除行政区划 + * + * @param codes 主键串 + */ + @SaCheckPermission("xq:areaCode:remove") + @Log(title = "行政区划", businessType = BusinessType.DELETE) + @DeleteMapping("/{codes}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Integer[] codes) { + return toAjax(areaCodeService.removeBatchByIds(Arrays.asList(codes))); + } +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/HomeAppController.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/HomeAppController.java index 0d67f35..81c1977 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/HomeAppController.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/HomeAppController.java @@ -40,6 +40,14 @@ public class HomeAppController { return R.ok(PageModel.build(vo)); } + @GetMapping("/vip/page") + @Operation(summary = "首页查询VIP推荐用户-分页") + @Log(title = "首页查询VIP推荐用户-分页", businessType = BusinessType.OTHER, isSaveDb = false) + public R> vipPage(){ + List vo = userService.vipHomePage(); + return R.ok(vo); + } + @GetMapping("/user/info") @Operation(summary = "查询用户主页信息") diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/SettingAppController.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/SettingAppController.java index ec8053d..425dcd9 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/SettingAppController.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/SettingAppController.java @@ -4,8 +4,11 @@ import cn.dev33.satoken.annotation.SaIgnore; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.xq.domain.AreaCode; +import com.ruoyi.xq.dto.app.areacode.AreaCodeQuery; import com.ruoyi.xq.dto.app.setting.AgreementDTO; import com.ruoyi.xq.service.AgreementSettingService; +import com.ruoyi.xq.service.AreaCodeService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; @@ -13,6 +16,8 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @RestController @RequestMapping("/api/setting") @Tag(name = "获取设置相关接口") @@ -21,6 +26,8 @@ public class SettingAppController { @Autowired private AgreementSettingService agreementSettingService; + @Autowired + private AreaCodeService areaCodeService; @GetMapping("/agreement/user") @Operation(summary = "获取用户协议") @@ -46,4 +53,12 @@ public class SettingAppController { return R.ok(new AgreementDTO(anchorJoinAgreement)); } + @GetMapping("/areaCode/list") + @Operation(summary = "获取省市区编码接口") + @Log(title = "获取省市区编码接口", businessType = BusinessType.OTHER, isSaveDb = false) + public R> listAreaCode(AreaCodeQuery query){ + List list = areaCodeService.listAreaCode(query); + return R.ok(list); + } + } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/AreaCode.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/AreaCode.java new file mode 100644 index 0000000..6e907ba --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/AreaCode.java @@ -0,0 +1,56 @@ +package com.ruoyi.xq.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 行政区划对象 area_code + * + * @author 77 + * @date 2024-03-19 + */ +@Data +@TableName("area_code") +public class AreaCode implements Serializable { + + private static final long serialVersionUID=1L; + + /** + * 行政区划代码 + */ + @TableId(value = "code") + private Integer code; + /** + * 名字 + */ + private String name; + /** + * country:国家、province:省份(直辖市会在province和city显示)、city:市(直辖市会在province和city显示)、district:区县 + */ + private String level; + /** + * 所属上级行政区划代码 + */ + private Integer pcode; + /** + * 所属行政区划名字 + */ + private String pname; + /** + * 行政区划完整名字 + */ + private String fullname; + /** + * 经度 + */ + private BigDecimal longitude; + /** + * 纬度 + */ + private BigDecimal latitude; + +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/User.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/User.java index e734cb3..18b7cb8 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/User.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/User.java @@ -83,17 +83,27 @@ public class User implements Serializable { */ private Integer sign; /** - * 居住地 + * 居住地(名称) */ - private String residence; + private String residenceName; /** - * 户籍地 + * 居住地代码 */ - private String address; + private String residenceCode; /** * 居住城市 */ - private String residenceCity; + private String residenceCityName; + + /** + * 户籍地(名称) + */ + private String addressName; + /** + * 户籍地代码 + */ + private String addressCode; + /** * 学历 */ @@ -129,6 +139,11 @@ public class User implements Serializable { @Schema(description = "基础资料是否完成 0 未完成 1已完成") private Integer finishBaseStatus; + + /** + * 基础信息完成进度 + */ + private Integer baseStep; /** * 邀请人 */ diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/areacode/AreaCodeQuery.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/areacode/AreaCodeQuery.java new file mode 100644 index 0000000..0f56c21 --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/areacode/AreaCodeQuery.java @@ -0,0 +1,10 @@ +package com.ruoyi.xq.dto.app.areacode; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class AreaCodeQuery { + @Schema(description = "父级节点(传0返回一级节点)") + private Integer pcode; +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/HomePageReq.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/HomePageReq.java index cd968a3..fae8474 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/HomePageReq.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/HomePageReq.java @@ -1,9 +1,60 @@ package com.ruoyi.xq.dto.app.user; import com.ruoyi.common.core.domain.PageQuery; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.time.LocalDate; + @Data public class HomePageReq extends PageQuery { + @Schema(hidden = true) + private LocalDate birthdayBegin; + @Schema(hidden = true) + private LocalDate birthdayEnd; + + @Schema(description = "年龄-开始") + private Integer ageBegin; + @Schema(description = "年龄-结束") + private Integer ageEnd; + @Schema(description = "身高-开始") + private Integer heightBegin; + @Schema(description = "身高-结束") + private Integer heightEnd; + @Schema(description = "体重-开始") + private Integer weightBegin; + @Schema(description = "体重-结束") + private Integer weightEnd; + @Schema(description = "性别") + private Integer gender; + @Schema(description = "婚况") + private Integer marriage; + @Schema(description = "教育") + private Integer education; + @Schema(description = "居住地") + private String residenceCode; + @Schema(description = "VIP查询限制") + private VipQuery vipQuery; + + @Data + public static class VipQuery { + @Schema(description = "职业") + private String profession; + @Schema(description = "年收入") + private Integer annualIncome; + @Schema(description = "生效") + private Integer zodiac; + @Schema(description = "星座") + private Integer sign; + @Schema(description = "小孩情况") + private Integer childStatus; + @Schema(description = "购房情况") + private Integer housingStatus; + @Schema(description = "购车情况") + private Integer carStatus; + @Schema(description = "户籍地") + private String addressCode; + + } } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/UpdateBaseInfoReq.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/UpdateBaseInfoReq.java index 3663405..d219843 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/UpdateBaseInfoReq.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/UpdateBaseInfoReq.java @@ -7,6 +7,8 @@ import java.time.LocalDate; @Data public class UpdateBaseInfoReq { + @Schema(description = "基础信息保存进度") + private Integer baseStep; @Schema(description = "为谁征婚") private Integer forPersonals; @Schema(description = "性别 0-未知 1-女 2-男") @@ -27,12 +29,12 @@ public class UpdateBaseInfoReq { * 居住地 */ @Schema(description = "居住地") - private String residence; + private String residenceCode; /** * 户籍地 */ @Schema(description = "户籍地") - private String address; + private String addressCode; /** * 学历 */ diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/UpdateUserFullInfoReq.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/UpdateUserFullInfoReq.java index 29b976a..bb4586a 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/UpdateUserFullInfoReq.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/UpdateUserFullInfoReq.java @@ -28,9 +28,9 @@ public class UpdateUserFullInfoReq { private Integer somatotype; @Schema(description = "居住地") - private String residence; + private String residenceCode; @Schema(description = "户籍地") - private String address; + private String addressCode; @Schema(description = "学历") private Integer education; @Schema(description = "婚况") diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/vo/CurrentUserInfoVo.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/vo/CurrentUserInfoVo.java index 93c2ab9..ecef121 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/vo/CurrentUserInfoVo.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/vo/CurrentUserInfoVo.java @@ -40,10 +40,16 @@ public class CurrentUserInfoVo { private LocalDate birthday; @Schema(description = "年龄") private Integer age; -// @Schema(description = "城市ID") -// private Integer cityId; @Schema(description = "居住城市") - private String residenceCity; + private String residenceCityName; + @Schema(description = "居住地名称") + private String residenceName; + @Schema(description = "居住地编码") + private String residenceCode; + @Schema(description = "户籍地名称") + private String addressName; + @Schema(description = "户籍地编码") + private String addressCode; /** * 状态 0 可用 1 不可用 */ @@ -51,6 +57,8 @@ public class CurrentUserInfoVo { private Integer status; @Schema(description = "基础资料是否完成 0 未完成 1已完成") private Integer finishBaseStatus; + @Schema(description = "基础信息完成进度") + private Integer baseStep; @Schema(description = "imToken") private String imToken; @@ -63,7 +71,6 @@ public class CurrentUserInfoVo { @Schema(description = "最大认证数量") private Integer maxAuthNum = 8; - /** * 相册 */ diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/vo/HomeUserListVo.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/vo/HomeUserListVo.java index 0da2759..a668ea9 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/vo/HomeUserListVo.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/vo/HomeUserListVo.java @@ -23,8 +23,10 @@ public class HomeUserListVo { private LocalDate birthday; @Schema(description = "生日-缩减显示") private String birthdayStr; - @Schema(description = "居住城市") - private String residenceCity; + @Schema(description = "年龄") + private Integer age; + @Schema(description = "居住城市名称") + private String residenceCityName; @Schema(description = "学历") private Integer education; @Schema(description = "职业") diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/vo/HomeUserVo.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/vo/HomeUserVo.java index ace2ce8..f57f709 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/vo/HomeUserVo.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/vo/HomeUserVo.java @@ -57,13 +57,17 @@ public class HomeUserVo { /** * 居住地 */ - @Schema(description = "居住地") - private String residence; + @Schema(description = "居住地名称") + private String residenceName; + @Schema(description = "居住地编码") + private String residenceCode; /** * 户籍地 */ - @Schema(description = "户籍地") - private String address; + @Schema(description = "户籍地名称") + private String addressName; + @Schema(description = "户籍地编码") + private String addressCode; /** * 学历 */ diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/common/user/MinUser.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/common/user/MinUser.java new file mode 100644 index 0000000..1d2e663 --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/common/user/MinUser.java @@ -0,0 +1,9 @@ +package com.ruoyi.xq.dto.common.user; + +import lombok.Data; + +@Data +public class MinUser { + private Long id; + private String usercode; +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/enums/common/AreaCodeLevelEnum.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/enums/common/AreaCodeLevelEnum.java new file mode 100644 index 0000000..847952d --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/enums/common/AreaCodeLevelEnum.java @@ -0,0 +1,19 @@ +package com.ruoyi.xq.enums.common; + +import lombok.Getter; + +@Getter +public enum AreaCodeLevelEnum { + COUNTRY("country","国家"), + PROVINCE("province","省份"), + CITY("city","市"), + DISTRICT("city","区县"), + ; + private final String code; + private final String text; + + AreaCodeLevelEnum(String code, String text) { + this.code = code; + this.text = text; + } +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/manager/CurrentUserManager.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/manager/CurrentUserManager.java index 6adb7a8..aa03e17 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/manager/CurrentUserManager.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/manager/CurrentUserManager.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.BeanConvertUtil; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.xq.domain.*; import com.ruoyi.xq.dto.app.common.UserPicturesDTO; import com.ruoyi.xq.dto.app.user.AddPicturesReq; @@ -48,6 +49,8 @@ public class CurrentUserManager { private UserInfoAuditService userInfoAuditService; @Autowired private SystemConfigManager systemConfigManager; + @Autowired + private AreaCodeService areaCodeService; public CurrentUserFullInfoVo currentFullInfo(){ @@ -94,9 +97,14 @@ public class CurrentUserManager { vo.setGender(user.getGender()); vo.setBirthday(user.getBirthday()); vo.setAge(AgeUtil.getAge(user.getBirthday())); - vo.setResidenceCity(user.getResidenceCity()); + vo.setResidenceCityName(user.getResidenceCityName()); + vo.setResidenceCode(user.getResidenceCode()); + vo.setResidenceName(user.getResidenceName()); + vo.setAddressCode(user.getAddressCode()); + vo.setAddressName(user.getAddressName()); vo.setStatus(user.getStatus()); vo.setFinishBaseStatus(user.getFinishBaseStatus()); + vo.setBaseStep(user.getBaseStep()); vo.setImToken(user.getImToken()); List userPictures = userPicturesService.listByUserIdAuditingAndSuccess(user.getId()); vo.setUserPicturesList(BeanConvertUtil.convertListTo(userPictures, UserPicturesDTO::new)); @@ -115,19 +123,30 @@ public class CurrentUserManager { String cos = systemConfigManager.getSystemConfig(SystemConfigEnum.COS_DOMAIN); updateUser.setAvatar(cos + userGenderEnum.getDefaultAvatar()); } + if(StringUtils.isNotEmpty(req.getAddressCode())){ + AreaCode areaCode = areaCodeService.getById(req.getAddressCode()); + updateUser.setAddressName(areaCode.getName()); + } + if(StringUtils.isNotEmpty(req.getResidenceCode())){ + AreaCode areaCode = areaCodeService.getById(req.getResidenceCode()); + updateUser.setResidenceName(areaCode.getName()); + updateUser.setResidenceCityName(areaCode.getPname()); + } updateUser.setId(userId); userService.updateById(updateUser); + UserInfo updateUserInfo = BeanConvertUtil.convertTo(req, UserInfo::new); UserInfo userInfo = userInfoService.getByUserId(userId); updateUserInfo.setId(userInfo.getId()); userInfoService.updateById(updateUserInfo); + // 检查finishStatus boolean finishBaseStatus = true; User user = userService.getById(userId); if(user.getForPersonals() == null || user.getGender() == 0 || user.getBirthday() == null || user.getHeight() == null - || user.getWeight() == null || user.getResidence() == null - || user.getAddress() == null || user.getEducation() == null + || user.getWeight() == null || user.getResidenceCode() == null + || user.getAddressCode() == null || user.getEducation() == null || user.getMarriage() == null || user.getProfession() == null || user.getAnnualIncome() == null || user.getUsercode() == null){ finishBaseStatus = false; @@ -214,8 +233,18 @@ public class CurrentUserManager { public void updateInfo(UpdateUserFullInfoReq req) { Long userId = LoginHelper.getUserId(); User updateUser = BeanConvertUtil.convertTo(req, User::new); + if(StringUtils.isNotEmpty(req.getAddressCode())){ + AreaCode areaCode = areaCodeService.getById(req.getAddressCode()); + updateUser.setAddressName(areaCode.getName()); + } + if(StringUtils.isNotEmpty(req.getResidenceCode())){ + AreaCode areaCode = areaCodeService.getById(req.getResidenceCode()); + updateUser.setResidenceName(areaCode.getName()); + updateUser.setResidenceCityName(areaCode.getPname()); + } updateUser.setId(userId); userService.updateById(updateUser); + UserInfo updateUserInfo = BeanConvertUtil.convertTo(req, UserInfo::new); UserInfo userInfo = userInfoService.getByUserId(userId); updateUserInfo.setId(userInfo.getId()); diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/AreaCodeMapper.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/AreaCodeMapper.java new file mode 100644 index 0000000..d43a47e --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/AreaCodeMapper.java @@ -0,0 +1,14 @@ +package com.ruoyi.xq.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.xq.domain.AreaCode; + +/** + * 行政区划Mapper接口 + * + * @author 77 + * @date 2024-03-19 + */ +public interface AreaCodeMapper extends BaseMapper { + +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/UserMapper.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/UserMapper.java index 7147946..ecc58da 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/UserMapper.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/UserMapper.java @@ -6,8 +6,11 @@ import com.ruoyi.xq.domain.User; import com.ruoyi.xq.dto.admin.user.UserAdminVo; import com.ruoyi.xq.dto.app.user.HomePageReq; import com.ruoyi.xq.dto.app.user.vo.HomeUserListVo; +import com.ruoyi.xq.dto.common.user.MinUser; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 用户管理Mapper接口 * @@ -19,4 +22,8 @@ public interface UserMapper extends BaseMapper { Page pageAdmin(@Param("build") Page build, @Param("bo") UserAdminVo bo); Page homePageApp(@Param("build") Page build, @Param("params") HomePageReq params); + + List vipHomePage(@Param("limit") int limit); + + MinUser getMinUserById(@Param("userId") Long userId); } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/AreaCodeService.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/AreaCodeService.java new file mode 100644 index 0000000..1cba3bd --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/AreaCodeService.java @@ -0,0 +1,18 @@ +package com.ruoyi.xq.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.xq.domain.AreaCode; +import com.ruoyi.xq.dto.app.areacode.AreaCodeQuery; + +import java.util.List; + +/** + * 行政区划Service接口 + * + * @author 77 + * @date 2024-03-19 + */ +public interface AreaCodeService extends IService { + + List listAreaCode(AreaCodeQuery query); +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserService.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserService.java index 63f9140..6e0ac4d 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserService.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserService.java @@ -9,6 +9,9 @@ import com.ruoyi.xq.dto.admin.user.req.UpdateMobileAdminReq; import com.ruoyi.xq.dto.app.user.HomePageReq; import com.ruoyi.xq.dto.app.user.vo.HomeUserListVo; import com.ruoyi.xq.dto.app.user.vo.HomeUserVo; +import com.ruoyi.xq.dto.common.user.MinUser; + +import java.util.List; /** * 用户管理Service接口 @@ -18,6 +21,8 @@ import com.ruoyi.xq.dto.app.user.vo.HomeUserVo; */ public interface UserService extends IService { + MinUser getMinUserById(Long userId); + User getByUsername(String username); void resetPassword(Long userId, String password); @@ -36,5 +41,6 @@ public interface UserService extends IService { Page homePage(HomePageReq params); + List vipHomePage(); } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/AreaCodeServiceImpl.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/AreaCodeServiceImpl.java new file mode 100644 index 0000000..8ee0cf0 --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/AreaCodeServiceImpl.java @@ -0,0 +1,28 @@ +package com.ruoyi.xq.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.xq.domain.AreaCode; +import com.ruoyi.xq.dto.app.areacode.AreaCodeQuery; +import com.ruoyi.xq.mapper.AreaCodeMapper; +import com.ruoyi.xq.service.AreaCodeService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 行政区划Service业务层处理 + * + * @author 77 + * @date 2024-03-19 + */ +@Service +public class AreaCodeServiceImpl extends ServiceImpl implements AreaCodeService { + + @Override + public List listAreaCode(AreaCodeQuery query) { + List list = this.list(Wrappers.lambdaQuery(AreaCode.class) + .eq(AreaCode::getPcode, query.getPcode())); + return list; + } +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserServiceImpl.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserServiceImpl.java index 696d538..1d25615 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserServiceImpl.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.base.BaseException; +import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.BeanConvertUtil; import com.ruoyi.xq.domain.User; import com.ruoyi.xq.domain.UserInfo; @@ -19,6 +20,7 @@ import com.ruoyi.xq.dto.admin.user.req.UpdateMobileAdminReq; import com.ruoyi.xq.dto.app.user.HomePageReq; import com.ruoyi.xq.dto.app.user.vo.HomeUserListVo; import com.ruoyi.xq.dto.app.user.vo.HomeUserVo; +import com.ruoyi.xq.dto.common.user.MinUser; import com.ruoyi.xq.enums.common.SystemConfigEnum; import com.ruoyi.xq.enums.userinfo.UserGenderEnum; import com.ruoyi.xq.manager.SystemConfigManager; @@ -63,6 +65,11 @@ public class UserServiceImpl extends ServiceImpl implements Use @Autowired private UserVipService userVipService; + @Override + public MinUser getMinUserById(Long userId){ + return baseMapper.getMinUserById(userId); + } + @Override public User getByUsername(String username) { return this.getOne(Wrappers.lambdaQuery(User.class) @@ -172,12 +179,29 @@ public class UserServiceImpl extends ServiceImpl implements Use @Override public Page homePage(HomePageReq params) { + HomePageReq.VipQuery vipQuery = params.getVipQuery(); + if(vipQuery != null){ + if(StringUtils.isNotEmpty(vipQuery.getProfession()) || + vipQuery.getAnnualIncome() != null || vipQuery.getZodiac() != null || + vipQuery.getSign() != null || vipQuery.getChildStatus() != null || vipQuery.getHousingStatus() != null || + vipQuery.getCarStatus() != null || StringUtils.isNotEmpty(vipQuery.getAddressCode())){ + Long userId = LoginHelper.getUserId(); + if(userId == null){ + throw new ServiceException("开通VIP才能开通查询",600100); + } + UserVip userVip = userVipService.getByUserVipMaster(userId); + if(userVip == null){ + throw new ServiceException("开通VIP才能开通查询",600100); + } + } + } Page page = baseMapper.homePageApp(params.build(), params); List records = page.getRecords(); List userIdArray = new ArrayList<>(); for (HomeUserListVo record : records) { userIdArray.add(record.getUserId()); record.setBirthdayStr(BirthdayUtil.getMinBirthday(record.getBirthday())); + record.setAge(BirthdayUtil.getAge(record.getBirthday())); } List vips = userVipService.listUserVipMaster(userIdArray); Map userVipMap = vips.stream().collect(Collectors.toMap(UserVip::getUserId, Function.identity())); @@ -190,4 +214,14 @@ public class UserServiceImpl extends ServiceImpl implements Use } return page; } + + @Override + public List vipHomePage() { + List result = baseMapper.vipHomePage(20); + for (HomeUserListVo record : result) { + record.setBirthdayStr(BirthdayUtil.getMinBirthday(record.getBirthday())); + record.setAge(BirthdayUtil.getAge(record.getBirthday())); + } + return null; + } } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/util/BirthdayUtil.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/util/BirthdayUtil.java index 18b1090..5547713 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/util/BirthdayUtil.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/util/BirthdayUtil.java @@ -12,4 +12,10 @@ public class BirthdayUtil { return year.substring(year.length() - 2); } + public static Integer getAge(LocalDate birthday) { + if(birthday == null){ + return null; + } + return LocalDate.now().getYear() - birthday.getYear(); + } } diff --git a/ruoyi-xq/src/main/resources/mapper/xq/AreaCodeMapper.xml b/ruoyi-xq/src/main/resources/mapper/xq/AreaCodeMapper.xml new file mode 100644 index 0000000..32461fc --- /dev/null +++ b/ruoyi-xq/src/main/resources/mapper/xq/AreaCodeMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + diff --git a/ruoyi-xq/src/main/resources/mapper/xq/UserMapper.xml b/ruoyi-xq/src/main/resources/mapper/xq/UserMapper.xml index ebe1b59..a33bc30 100644 --- a/ruoyi-xq/src/main/resources/mapper/xq/UserMapper.xml +++ b/ruoyi-xq/src/main/resources/mapper/xq/UserMapper.xml @@ -21,11 +21,80 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by t1.id desc + + diff --git a/ruoyi-xq/src/main/resources/mapper/xq/UserVipMapper.xml b/ruoyi-xq/src/main/resources/mapper/xq/UserVipMapper.xml index 0d3afe2..ecaf070 100644 --- a/ruoyi-xq/src/main/resources/mapper/xq/UserVipMapper.xml +++ b/ruoyi-xq/src/main/resources/mapper/xq/UserVipMapper.xml @@ -25,7 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select t1.user_id, max(t1.vip_type) as vip_type from xq_user_vip t1 where - and t1.vip_status = 1 + t1.vip_status = 1 and t1.vip_timeout <= now() and t1.user_id in