Commit 33323c1483604330b17b1767e774fd39d1c005fc
1 parent
ba59ec85
会员签到针对代码格式、功能优化
1.优化todo建议 2.删除无用代码
Showing
16 changed files
with
152 additions
and
122 deletions
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/MemberSignInConfigController.java
| ... | ... | @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.member.controller.admin.signin; |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | 5 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigCreateReqVO; |
| 6 | -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigPageReqVO; | |
| 7 | 6 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigRespVO; |
| 8 | 7 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigUpdateReqVO; |
| 9 | 8 | import cn.iocoder.yudao.module.member.convert.signin.MemberSignInConfigConvert; |
| ... | ... | @@ -19,6 +18,8 @@ import org.springframework.web.bind.annotation.*; |
| 19 | 18 | import javax.annotation.Resource; |
| 20 | 19 | import javax.validation.Valid; |
| 21 | 20 | |
| 21 | +import java.util.List; | |
| 22 | + | |
| 22 | 23 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 23 | 24 | |
| 24 | 25 | @Tag(name = "管理后台 - 积分签到规则") |
| ... | ... | @@ -63,12 +64,12 @@ public class MemberSignInConfigController { |
| 63 | 64 | return success(MemberSignInConfigConvert.INSTANCE.convert(signInConfig)); |
| 64 | 65 | } |
| 65 | 66 | |
| 66 | - @GetMapping("/page") | |
| 67 | + @GetMapping("/list") | |
| 67 | 68 | @Operation(summary = "获得积分签到规则分页") |
| 68 | 69 | @PreAuthorize("@ss.hasPermission('point:sign-in-config:query')") |
| 69 | - public CommonResult<PageResult<MemberSignInConfigRespVO>> getSignInConfigPage(@Valid MemberSignInConfigPageReqVO pageVO) { | |
| 70 | - PageResult<MemberSignInConfigDO> pageResult = memberSignInConfigService.getSignInConfigPage(pageVO); | |
| 71 | - return success(MemberSignInConfigConvert.INSTANCE.convertPage(pageResult)); | |
| 70 | + public CommonResult<List<MemberSignInConfigRespVO>> getSignInConfigPage() { | |
| 71 | + List<MemberSignInConfigDO> pageResult = memberSignInConfigService.getSignInConfigList(); | |
| 72 | + return success(MemberSignInConfigConvert.INSTANCE.convertList(pageResult)); | |
| 72 | 73 | } |
| 73 | 74 | |
| 74 | 75 | } | ... | ... |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/MemberSignInRecordController.java
| ... | ... | @@ -7,16 +7,22 @@ import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRec |
| 7 | 7 | import cn.iocoder.yudao.module.member.convert.signin.MemberSignInRecordConvert; |
| 8 | 8 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; |
| 9 | 9 | import cn.iocoder.yudao.module.member.service.signin.MemberSignInRecordService; |
| 10 | +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; | |
| 11 | +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; | |
| 10 | 12 | import io.swagger.v3.oas.annotations.Operation; |
| 11 | 13 | import io.swagger.v3.oas.annotations.Parameter; |
| 12 | 14 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 13 | 15 | import org.springframework.security.access.prepost.PreAuthorize; |
| 16 | +import org.springframework.util.CollectionUtils; | |
| 14 | 17 | import org.springframework.validation.annotation.Validated; |
| 15 | 18 | import org.springframework.web.bind.annotation.*; |
| 16 | 19 | |
| 17 | 20 | import javax.annotation.Resource; |
| 18 | 21 | import javax.validation.Valid; |
| 19 | 22 | |
| 23 | +import java.util.List; | |
| 24 | +import java.util.stream.Collectors; | |
| 25 | + | |
| 20 | 26 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 21 | 27 | |
| 22 | 28 | @Tag(name = "管理后台 - 用户签到积分") |
| ... | ... | @@ -27,31 +33,22 @@ public class MemberSignInRecordController { |
| 27 | 33 | |
| 28 | 34 | @Resource |
| 29 | 35 | private MemberSignInRecordService memberSignInRecordService; |
| 36 | + @Resource | |
| 37 | + AdminUserApi adminUserApi; | |
| 30 | 38 | |
| 31 | - // TODO @xiaqing:签到是不是不用删除? | |
| 32 | - @DeleteMapping("/delete") | |
| 33 | - @Operation(summary = "删除用户签到积分") | |
| 34 | - @Parameter(name = "id", description = "编号", required = true) | |
| 35 | - @PreAuthorize("@ss.hasPermission('point:sign-in-record:delete')") | |
| 36 | - public CommonResult<Boolean> deleteSignInRecord(@RequestParam("id") Long id) { | |
| 37 | - memberSignInRecordService.deleteSignInRecord(id); | |
| 38 | - return success(true); | |
| 39 | - } | |
| 40 | - | |
| 41 | - @GetMapping("/get") | |
| 42 | - @Operation(summary = "获得用户签到积分") | |
| 43 | - @Parameter(name = "id", description = "编号", required = true, example = "1024") | |
| 44 | - @PreAuthorize("@ss.hasPermission('point:sign-in-record:query')") | |
| 45 | - public CommonResult<MemberSignInRecordRespVO> getSignInRecord(@RequestParam("id") Long id) { | |
| 46 | - MemberSignInRecordDO signInRecord = memberSignInRecordService.getSignInRecord(id); | |
| 47 | - return success(MemberSignInRecordConvert.INSTANCE.convert(signInRecord)); | |
| 48 | - } | |
| 49 | 39 | |
| 50 | 40 | @GetMapping("/page") |
| 51 | 41 | @Operation(summary = "获得用户签到积分分页") |
| 52 | 42 | @PreAuthorize("@ss.hasPermission('point:sign-in-record:query')") |
| 53 | - public CommonResult<PageResult<MemberSignInRecordRespVO>> getSignInRecordPage(@Valid MemberSignInRecordPageReqVO pageVO) { | |
| 54 | - PageResult<MemberSignInRecordDO> pageResult = memberSignInRecordService.getSignInRecordPage(pageVO); | |
| 55 | - return success(MemberSignInRecordConvert.INSTANCE.convertPage(pageResult)); | |
| 43 | + public CommonResult <PageResult <MemberSignInRecordRespVO>> getSignInRecordPage(@Valid MemberSignInRecordPageReqVO pageVO) { | |
| 44 | + PageResult <MemberSignInRecordDO> pageResult = memberSignInRecordService.getSignInRecordPage(pageVO); | |
| 45 | + List <MemberSignInRecordDO> result = pageResult.getList(); | |
| 46 | + //设置获取的用户信息 | |
| 47 | + List <AdminUserRespDTO> users = null; | |
| 48 | + if (!CollectionUtils.isEmpty(result)) { | |
| 49 | + List <Long> ids = result.stream().map(user -> user.getUserId()).collect(Collectors.toList()); | |
| 50 | + users = adminUserApi.getUserList(ids); | |
| 51 | + } | |
| 52 | + return success(MemberSignInRecordConvert.INSTANCE.convertPage(pageResult, users)); | |
| 56 | 53 | } |
| 57 | 54 | } | ... | ... |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInConfigBaseVO.java
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInConfigPageReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.member.controller.admin.signin.vo; | |
| 2 | - | |
| 3 | -import lombok.*; | |
| 4 | -import io.swagger.v3.oas.annotations.media.Schema; | |
| 5 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 6 | - | |
| 7 | -@Schema(description = "管理后台 - 积分签到规则分页 Request VO") | |
| 8 | -@Data | |
| 9 | -@EqualsAndHashCode(callSuper = true) | |
| 10 | -@ToString(callSuper = true) | |
| 11 | -public class MemberSignInConfigPageReqVO extends PageParam { | |
| 12 | - | |
| 13 | - @Schema(description = "签到第x天", example = "7") | |
| 14 | - private Integer day; | |
| 15 | - | |
| 16 | -} |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordBaseVO.java
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordPageReqVO.java
| ... | ... | @@ -18,7 +18,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ |
| 18 | 18 | public class MemberSignInRecordPageReqVO extends PageParam { |
| 19 | 19 | |
| 20 | 20 | @Schema(description = "签到用户", example = "6507") |
| 21 | - private Integer userId; | |
| 21 | + private Long userId; | |
| 22 | 22 | |
| 23 | 23 | @Schema(description = "第几天签到") |
| 24 | 24 | private Integer day; | ... | ... |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordRespVO.java
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/signin/MemberSignInRecordConvert.java
| 1 | 1 | package cn.iocoder.yudao.module.member.convert.signin; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordCreateReqVO; | |
| 5 | 4 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordRespVO; |
| 6 | -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordUpdateReqVO; | |
| 7 | 5 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; |
| 6 | +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; | |
| 8 | 7 | import org.mapstruct.Mapper; |
| 9 | 8 | import org.mapstruct.factory.Mappers; |
| 9 | +import org.springframework.util.CollectionUtils; | |
| 10 | + | |
| 11 | +import java.util.ArrayList; | |
| 12 | +import java.util.List; | |
| 13 | +import java.util.Map; | |
| 14 | +import java.util.function.Function; | |
| 15 | +import java.util.stream.Collectors; | |
| 10 | 16 | |
| 11 | 17 | /** |
| 12 | 18 | * 用户签到积分 Convert |
| ... | ... | @@ -18,12 +24,57 @@ public interface MemberSignInRecordConvert { |
| 18 | 24 | |
| 19 | 25 | MemberSignInRecordConvert INSTANCE = Mappers.getMapper(MemberSignInRecordConvert.class); |
| 20 | 26 | |
| 21 | - MemberSignInRecordDO convert(MemberSignInRecordCreateReqVO bean); | |
| 27 | + default public MemberSignInRecordRespVO convert(MemberSignInRecordDO bean) { | |
| 28 | + if (bean == null) { | |
| 29 | + return null; | |
| 30 | + } | |
| 31 | + | |
| 32 | + MemberSignInRecordRespVO memberSignInRecordRespVO = new MemberSignInRecordRespVO(); | |
| 33 | + | |
| 34 | + memberSignInRecordRespVO.setUserId(bean.getUserId()); | |
| 35 | + memberSignInRecordRespVO.setDay(bean.getDay()); | |
| 36 | + memberSignInRecordRespVO.setPoint(bean.getPoint()); | |
| 37 | + memberSignInRecordRespVO.setId(bean.getId()); | |
| 38 | + memberSignInRecordRespVO.setCreateTime(bean.getCreateTime()); | |
| 39 | + | |
| 40 | + return memberSignInRecordRespVO; | |
| 41 | + } | |
| 42 | + | |
| 43 | + default PageResult <MemberSignInRecordRespVO> convertPage(PageResult <MemberSignInRecordDO> page, List<AdminUserRespDTO> userRespDTOS) { | |
| 44 | + if (page == null) { | |
| 45 | + return null; | |
| 46 | + } | |
| 47 | + | |
| 48 | + PageResult <MemberSignInRecordRespVO> pageResult = new PageResult <MemberSignInRecordRespVO>(); | |
| 49 | + | |
| 50 | + pageResult.setList(memberSignInRecordDOListToMemberSignInRecordRespVOList(page.getList(),userRespDTOS)); | |
| 51 | + pageResult.setTotal(page.getTotal()); | |
| 52 | + | |
| 53 | + return pageResult; | |
| 54 | + } | |
| 22 | 55 | |
| 23 | - MemberSignInRecordDO convert(MemberSignInRecordUpdateReqVO bean); | |
| 56 | + default List <MemberSignInRecordRespVO> memberSignInRecordDOListToMemberSignInRecordRespVOList(List <MemberSignInRecordDO> list,List<AdminUserRespDTO> userRespDTOS) { | |
| 57 | + if (list == null) { | |
| 58 | + return null; | |
| 59 | + } | |
| 60 | + Map <Long, String> maps=null; | |
| 61 | + //是否需要转换用户标志 | |
| 62 | + boolean userNickFlag = !CollectionUtils.isEmpty(userRespDTOS); | |
| 63 | + if(userNickFlag){ | |
| 64 | + maps = userRespDTOS.stream() | |
| 65 | + .collect(Collectors.toMap(AdminUserRespDTO::getId, AdminUserRespDTO::getNickname, (key1, key2) -> key2)); | |
| 66 | + } | |
| 67 | + List <MemberSignInRecordRespVO> list1 = new ArrayList <MemberSignInRecordRespVO>(list.size()); | |
| 68 | + for (MemberSignInRecordDO memberSignInRecordDO : list) { | |
| 69 | + MemberSignInRecordRespVO recordRespVO = convert(memberSignInRecordDO); | |
| 70 | + if(userNickFlag){ | |
| 71 | + recordRespVO.setNickName(maps.get(recordRespVO.getUserId())); | |
| 72 | + } | |
| 73 | + list1.add(recordRespVO); | |
| 74 | + } | |
| 24 | 75 | |
| 25 | - MemberSignInRecordRespVO convert(MemberSignInRecordDO bean); | |
| 76 | + return list1; | |
| 77 | + } | |
| 26 | 78 | |
| 27 | - PageResult<MemberSignInRecordRespVO> convertPage(PageResult<MemberSignInRecordDO> page); | |
| 28 | 79 | |
| 29 | 80 | } | ... | ... |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/signin/MemberSignInConfigDO.java
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/signin/MemberSignInRecordDO.java
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInConfigMapper.java
| 1 | 1 | package cn.iocoder.yudao.module.member.dal.mysql.signin; |
| 2 | 2 | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | 3 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| 5 | 4 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| 6 | -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigPageReqVO; | |
| 7 | -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigUpdateReqVO; | |
| 8 | 5 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO; |
| 6 | +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | |
| 9 | 7 | import org.apache.ibatis.annotations.Mapper; |
| 10 | 8 | |
| 9 | +import java.util.List; | |
| 10 | + | |
| 11 | 11 | /** |
| 12 | 12 | * 积分签到规则 Mapper |
| 13 | 13 | * |
| ... | ... | @@ -16,18 +16,32 @@ import org.apache.ibatis.annotations.Mapper; |
| 16 | 16 | @Mapper |
| 17 | 17 | public interface MemberSignInConfigMapper extends BaseMapperX<MemberSignInConfigDO> { |
| 18 | 18 | |
| 19 | - default PageResult<MemberSignInConfigDO> selectPage(MemberSignInConfigPageReqVO reqVO) { | |
| 20 | - return selectPage(reqVO, new LambdaQueryWrapperX<MemberSignInConfigDO>() | |
| 21 | - .eqIfPresent(MemberSignInConfigDO::getDay, reqVO.getDay()) | |
| 22 | - .orderByAsc(MemberSignInConfigDO::getDay)); | |
| 19 | + /** | |
| 20 | + * 描述 :选择性更新对象属性,如果不为空则更新。 | |
| 21 | + * Author :xiaqing | |
| 22 | + * Date :2023-08-08 23:38:48 | |
| 23 | + */ | |
| 24 | + default int updateIfPresent(MemberSignInConfigDO updateObj){ | |
| 25 | + LambdaUpdateWrapper <MemberSignInConfigDO> wrapper = new LambdaUpdateWrapper <>(); | |
| 26 | + wrapper.eq(MemberSignInConfigDO::getId, updateObj.getId()) | |
| 27 | + .set(updateObj.getDay() != null, MemberSignInConfigDO::getDay, updateObj.getDay()) | |
| 28 | + .set(updateObj.getPoint() != null, MemberSignInConfigDO::getPoint, updateObj.getPoint()) | |
| 29 | + .set(updateObj.getIsEnable() != null, MemberSignInConfigDO::getIsEnable, updateObj.getIsEnable()); | |
| 30 | + return update(null,wrapper); | |
| 31 | + } | |
| 32 | + | |
| 33 | + default List <MemberSignInConfigDO> getList(){ | |
| 34 | + return selectList(new LambdaQueryWrapperX <MemberSignInConfigDO>().orderByAsc(MemberSignInConfigDO::getDay)); | |
| 23 | 35 | } |
| 24 | 36 | |
| 25 | - // | |
| 26 | - default long selectSameDayNotSelf(MemberSignInConfigUpdateReqVO reqVO){ | |
| 27 | - return selectCount(new LambdaQueryWrapperX <MemberSignInConfigDO>() | |
| 28 | - .ne(MemberSignInConfigDO::getId, reqVO.getId()) | |
| 29 | - .eq(MemberSignInConfigDO::getDay,reqVO.getDay()) | |
| 30 | - ); | |
| 37 | + /** | |
| 38 | + * 描述 :根据天数查询对应记录 | |
| 39 | + * Date :2023-08-09 00:07:11 | |
| 40 | + */ | |
| 41 | + default MemberSignInConfigDO selectByDay(Integer day){ | |
| 42 | + return selectOne(new LambdaQueryWrapperX <MemberSignInConfigDO>() | |
| 43 | + .eq(MemberSignInConfigDO::getDay,day)); | |
| 44 | + | |
| 31 | 45 | } |
| 32 | 46 | |
| 33 | 47 | } | ... | ... |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInConfigService.java
| 1 | 1 | package cn.iocoder.yudao.module.member.service.signin; |
| 2 | 2 | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | 3 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigCreateReqVO; |
| 5 | -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigPageReqVO; | |
| 6 | 4 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigUpdateReqVO; |
| 7 | 5 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO; |
| 8 | 6 | |
| 9 | 7 | import javax.validation.Valid; |
| 8 | +import java.util.List; | |
| 10 | 9 | |
| 11 | 10 | /** |
| 12 | 11 | * 积分签到规则 Service 接口 |
| ... | ... | @@ -48,9 +47,8 @@ public interface MemberSignInConfigService { |
| 48 | 47 | /** |
| 49 | 48 | * 获得积分签到规则分页 |
| 50 | 49 | * |
| 51 | - * @param pageReqVO 分页查询 | |
| 52 | 50 | * @return 积分签到规则分页 |
| 53 | 51 | */ |
| 54 | - PageResult<MemberSignInConfigDO> getSignInConfigPage(MemberSignInConfigPageReqVO pageReqVO); | |
| 52 | + List<MemberSignInConfigDO> getSignInConfigList(); | |
| 55 | 53 | |
| 56 | 54 | } | ... | ... |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInConfigServiceImpl.java
| 1 | 1 | package cn.iocoder.yudao.module.member.service.signin; |
| 2 | 2 | |
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | |
| 4 | 3 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigCreateReqVO; |
| 5 | -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigPageReqVO; | |
| 6 | 4 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigUpdateReqVO; |
| 7 | 5 | import cn.iocoder.yudao.module.member.convert.signin.MemberSignInConfigConvert; |
| 8 | 6 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO; |
| 9 | 7 | import cn.iocoder.yudao.module.member.dal.mysql.signin.MemberSignInConfigMapper; |
| 8 | +import com.baomidou.mybatisplus.core.conditions.Wrapper; | |
| 9 | +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | |
| 10 | +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; | |
| 10 | 11 | import org.springframework.stereotype.Service; |
| 11 | 12 | import org.springframework.validation.annotation.Validated; |
| 12 | 13 | |
| 13 | 14 | import javax.annotation.Resource; |
| 14 | 15 | |
| 16 | +import java.util.List; | |
| 17 | + | |
| 15 | 18 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 16 | 19 | import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.SIGN_IN_CONFIG_EXISTS; |
| 17 | 20 | import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.SIGN_IN_CONFIG_NOT_EXISTS; |
| ... | ... | @@ -28,30 +31,28 @@ public class MemberSignInConfigServiceImpl implements MemberSignInConfigService |
| 28 | 31 | @Resource |
| 29 | 32 | private MemberSignInConfigMapper memberSignInConfigMapper; |
| 30 | 33 | |
| 31 | - // TODO @xiaqing:这种写的逻辑,最好按照 校验 - 更新这样的顺序写;类似这里,37 要放到 34 前面;updateSignInConfig 也是一样的思路 | |
| 32 | 34 | @Override |
| 33 | 35 | public Integer createSignInConfig(MemberSignInConfigCreateReqVO createReqVO) { |
| 36 | + // 判断是否重复插入签到天数 | |
| 37 | + validateSignInConfigExistsDay(createReqVO.getDay()); | |
| 38 | + | |
| 34 | 39 | // 插入 |
| 35 | 40 | MemberSignInConfigDO signInConfig = MemberSignInConfigConvert.INSTANCE.convert(createReqVO); |
| 36 | - // 判断是否重复插入签到天数 | |
| 37 | - validateSignInConfigExistsDay(signInConfig.getDay()); | |
| 38 | 41 | memberSignInConfigMapper.insert(signInConfig); |
| 39 | 42 | // 返回 |
| 40 | 43 | return signInConfig.getId(); |
| 41 | 44 | } |
| 42 | 45 | |
| 43 | - // TODO @xiaqing:这个逻辑的空行要注意;52 到 53 是没必要的空行;而 49 和 50 之间有个空行会好点,可以区分出是 校验 - 更新这样的逻辑间隔 | |
| 44 | 46 | @Override |
| 45 | 47 | public void updateSignInConfig(MemberSignInConfigUpdateReqVO updateReqVO) { |
| 46 | 48 | // 校验存在 |
| 47 | 49 | validateSignInConfigExists(updateReqVO.getId()); |
| 48 | 50 | //判断是否重复插入签到天数 |
| 49 | 51 | validateSignInConfigSameDayNotSelf(updateReqVO); |
| 50 | - // 判断更新的 | |
| 51 | - MemberSignInConfigDO updateObj = MemberSignInConfigConvert.INSTANCE.convert(updateReqVO); | |
| 52 | - | |
| 53 | 52 | |
| 54 | - memberSignInConfigMapper.updateById(updateObj); | |
| 53 | + // 判断更新 | |
| 54 | + MemberSignInConfigDO updateObj = MemberSignInConfigConvert.INSTANCE.convert(updateReqVO); | |
| 55 | + memberSignInConfigMapper.updateIfPresent(updateObj); | |
| 55 | 56 | } |
| 56 | 57 | |
| 57 | 58 | @Override |
| ... | ... | @@ -68,18 +69,18 @@ public class MemberSignInConfigServiceImpl implements MemberSignInConfigService |
| 68 | 69 | } |
| 69 | 70 | } |
| 70 | 71 | |
| 71 | - // TODO @xiaqing:这个唯一判断,也可以参考下别的模块哈; | |
| 72 | 72 | //根据签到天数判断是否存在一个相同的天数 |
| 73 | 73 | private void validateSignInConfigExistsDay(Integer day) { |
| 74 | - if (memberSignInConfigMapper.selectCount(MemberSignInConfigDO::getDay,day)>0) { | |
| 74 | + MemberSignInConfigDO configDO = memberSignInConfigMapper.selectByDay(day); | |
| 75 | + if (configDO != null) { | |
| 75 | 76 | throw exception(SIGN_IN_CONFIG_EXISTS); |
| 76 | 77 | } |
| 77 | 78 | } |
| 78 | 79 | |
| 79 | - // TODO @xiaqing:参考下别的模块,判断唯一,排除自己怎么写的哈; | |
| 80 | 80 | // 更新天数时判断是否有重复的天数,需要去除自己 |
| 81 | 81 | private void validateSignInConfigSameDayNotSelf(MemberSignInConfigUpdateReqVO reqVO) { |
| 82 | - if (memberSignInConfigMapper.selectSameDayNotSelf(reqVO)>0) { | |
| 82 | + MemberSignInConfigDO configDO = memberSignInConfigMapper.selectByDay(reqVO.getDay()); | |
| 83 | + if (configDO != null && configDO.getId() != reqVO.getId()) { | |
| 83 | 84 | throw exception(SIGN_IN_CONFIG_EXISTS); |
| 84 | 85 | } |
| 85 | 86 | } |
| ... | ... | @@ -90,8 +91,8 @@ public class MemberSignInConfigServiceImpl implements MemberSignInConfigService |
| 90 | 91 | } |
| 91 | 92 | |
| 92 | 93 | @Override |
| 93 | - public PageResult<MemberSignInConfigDO> getSignInConfigPage(MemberSignInConfigPageReqVO pageReqVO) { | |
| 94 | - return memberSignInConfigMapper.selectPage(pageReqVO); | |
| 94 | + public List <MemberSignInConfigDO> getSignInConfigList() { | |
| 95 | + return memberSignInConfigMapper.getList(); | |
| 95 | 96 | } |
| 96 | 97 | |
| 97 | 98 | } | ... | ... |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInRecordService.java
| ... | ... | @@ -11,20 +11,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO |
| 11 | 11 | */ |
| 12 | 12 | public interface MemberSignInRecordService { |
| 13 | 13 | |
| 14 | - /** | |
| 15 | - * 删除用户签到积分 | |
| 16 | - * | |
| 17 | - * @param id 编号 | |
| 18 | - */ | |
| 19 | - void deleteSignInRecord(Long id); | |
| 20 | 14 | |
| 21 | - /** | |
| 22 | - * 获得用户签到积分 | |
| 23 | - * | |
| 24 | - * @param id 编号 | |
| 25 | - * @return 用户签到积分 | |
| 26 | - */ | |
| 27 | - MemberSignInRecordDO getSignInRecord(Long id); | |
| 28 | 15 | |
| 29 | 16 | /** |
| 30 | 17 | * 获得用户签到积分分页 |
| ... | ... | @@ -34,4 +21,5 @@ public interface MemberSignInRecordService { |
| 34 | 21 | */ |
| 35 | 22 | PageResult<MemberSignInRecordDO> getSignInRecordPage(MemberSignInRecordPageReqVO pageReqVO); |
| 36 | 23 | |
| 24 | + | |
| 37 | 25 | } | ... | ... |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInRecordServiceImpl.java
| ... | ... | @@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | 4 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordPageReqVO; |
| 5 | 5 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; |
| 6 | 6 | import cn.iocoder.yudao.module.member.dal.mysql.signin.MemberSignInRecordMapper; |
| 7 | +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; | |
| 7 | 8 | import org.springframework.stereotype.Service; |
| 8 | 9 | import org.springframework.validation.annotation.Validated; |
| 9 | 10 | |
| ... | ... | @@ -23,25 +24,10 @@ public class MemberSignInRecordServiceImpl implements MemberSignInRecordService |
| 23 | 24 | |
| 24 | 25 | @Resource |
| 25 | 26 | private MemberSignInRecordMapper memberSignInRecordMapper; |
| 27 | + @Resource | |
| 28 | + AdminUserApi adminUserApi; | |
| 26 | 29 | |
| 27 | - @Override | |
| 28 | - public void deleteSignInRecord(Long id) { | |
| 29 | - // 校验存在 | |
| 30 | - validateSignInRecordExists(id); | |
| 31 | - // 删除 | |
| 32 | - memberSignInRecordMapper.deleteById(id); | |
| 33 | - } | |
| 34 | 30 | |
| 35 | - private void validateSignInRecordExists(Long id) { | |
| 36 | - if (memberSignInRecordMapper.selectById(id) == null) { | |
| 37 | - throw exception(SIGN_IN_RECORD_NOT_EXISTS); | |
| 38 | - } | |
| 39 | - } | |
| 40 | - | |
| 41 | - @Override | |
| 42 | - public MemberSignInRecordDO getSignInRecord(Long id) { | |
| 43 | - return memberSignInRecordMapper.selectById(id); | |
| 44 | - } | |
| 45 | 31 | |
| 46 | 32 | @Override |
| 47 | 33 | public PageResult<MemberSignInRecordDO> getSignInRecordPage(MemberSignInRecordPageReqVO pageReqVO) { | ... | ... |
yudao-server/src/main/resources/application-local.yaml
| ... | ... | @@ -44,31 +44,31 @@ spring: |
| 44 | 44 | primary: master |
| 45 | 45 | datasource: |
| 46 | 46 | master: |
| 47 | - name: ruoyi-vue-pro | |
| 48 | - url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 | |
| 47 | + name: mall | |
| 48 | + url: jdbc:mysql://10.211.55.5:3308/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 | |
| 49 | 49 | # url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例 |
| 50 | 50 | # url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.master.name} # PostgreSQL 连接的示例 |
| 51 | 51 | # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 |
| 52 | 52 | # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.master.name} # SQLServer 连接的示例 |
| 53 | 53 | username: root |
| 54 | - password: 123456 | |
| 54 | + password: 1qaz!QAZ | |
| 55 | 55 | # username: sa |
| 56 | 56 | # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W |
| 57 | 57 | slave: # 模拟从库,可根据自己需要修改 |
| 58 | - name: ruoyi-vue-pro | |
| 59 | - url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 | |
| 58 | + name: mall | |
| 59 | + url: jdbc:mysql://10.211.55.5:3308/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 | |
| 60 | 60 | # url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例 |
| 61 | 61 | # url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例 |
| 62 | 62 | # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 |
| 63 | 63 | # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.slave.name} # SQLServer 连接的示例 |
| 64 | 64 | username: root |
| 65 | - password: 123456 | |
| 65 | + password: 1qaz!QAZ | |
| 66 | 66 | # username: sa |
| 67 | 67 | # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W |
| 68 | 68 | |
| 69 | 69 | # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 |
| 70 | 70 | redis: |
| 71 | - host: 127.0.0.1 # 地址 | |
| 71 | + host: 10.211.55.5 # 地址 | |
| 72 | 72 | port: 6379 # 端口 |
| 73 | 73 | database: 0 # 数据库索引 |
| 74 | 74 | # password: dev # 密码,建议生产环境开启 | ... | ... |