From 31bc529b42bae32cd25a8598b29704d4b33e9bee Mon Sep 17 00:00:00 2001 From: seesaw Date: Mon, 18 Nov 2024 15:06:37 +0800 Subject: [PATCH] =?UTF-8?q?app=E5=88=86=E7=BB=84=E5=85=85=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/group/MemberGroupController.java | 15 +- .../admin/group/vo/MemberGroupBaseVO.java | 3 + .../admin/group/vo/MemberGroupRespVO.java | 2 + .../app/card/AppCardController.java | 7 + .../app/group/AppMemberGroupController.java | 129 ++++++++++++++++++ .../service/amount/DeductionServiceImpl.java | 1 + .../service/group/MemberGroupService.java | 2 + .../service/group/MemberGroupServiceImpl.java | 11 ++ 8 files changed, 169 insertions(+), 1 deletion(-) create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/group/AppMemberGroupController.java diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/group/MemberGroupController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/group/MemberGroupController.java index e6c44208..32c2cf3b 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/group/MemberGroupController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/group/MemberGroupController.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.member.controller.admin.group; +import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupCreateReqVO; @@ -15,6 +16,7 @@ import cn.iocoder.yudao.module.member.convert.group.MemberGroupConvert; import cn.iocoder.yudao.module.member.dal.dataobject.group.MemberGroupDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.service.group.MemberGroupService; +import cn.iocoder.yudao.module.member.service.user.MemberUserService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -43,6 +45,8 @@ public class MemberGroupController { @Resource private MemberGroupService groupService; + @Resource + private MemberUserService userService; @PostMapping("/create") @Operation(summary = "创建用户分组") @@ -90,7 +94,16 @@ public class MemberGroupController { //@PreAuthorize("@ss.hasPermission('member:group:query')") public CommonResult> getGroupPage(@Valid MemberGroupPageReqVO pageVO) { PageResult pageResult = groupService.getGroupPage(pageVO); - return success(MemberGroupConvert.INSTANCE.convertPage(pageResult)); + PageResult memberGroupRespVOPageResult = MemberGroupConvert.INSTANCE.convertPage(pageResult); + for (MemberGroupRespVO vo : memberGroupRespVOPageResult.getList()){ + if(vo.getUserId()!=null){ + MemberUserDO user = userService.getUser(vo.getUserId()); + if (ObjectUtil.isNotEmpty(user)){ + vo.setMobile(user.getMobile()); + } + } + } + return success(memberGroupRespVOPageResult); } @PostMapping("/addMember") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/group/vo/MemberGroupBaseVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/group/vo/MemberGroupBaseVO.java index 0519bd96..a282418e 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/group/vo/MemberGroupBaseVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/group/vo/MemberGroupBaseVO.java @@ -26,4 +26,7 @@ public class MemberGroupBaseVO { @InEnum(CommonStatusEnum.class) private Integer status; + @Schema(description = "管理员Id", example = "1") + private Long userId; + } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/group/vo/MemberGroupRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/group/vo/MemberGroupRespVO.java index 97365382..17c9bcb1 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/group/vo/MemberGroupRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/group/vo/MemberGroupRespVO.java @@ -19,4 +19,6 @@ public class MemberGroupRespVO extends MemberGroupBaseVO { @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; + @Schema(description = "管理员手机", example = "1") + private String mobile; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/AppCardController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/AppCardController.java index 98aa98bf..6671c916 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/AppCardController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/card/AppCardController.java @@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.member.controller.admin.card.vo.CardRespVO; +import cn.iocoder.yudao.module.member.controller.admin.card.vo.RechargeVO; import cn.iocoder.yudao.module.member.controller.admin.card.vo.RobotReqVO; import cn.iocoder.yudao.module.member.controller.app.card.vo.AppCardMonthVO; import cn.iocoder.yudao.module.member.controller.app.card.vo.AppCardPageReqVO; @@ -149,4 +150,10 @@ public class AppCardController { redisTemplate.opsForValue().set(reqVO.getIp(), reqVO); } + @PutMapping("/rechargeByAdmin") + @Operation(summary = "管理充值") + public CommonResult rechargeByAdmin(@RequestBody RechargeVO vo) { + cardService.rechargeByAdmin(vo); + return success(true); + } } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/group/AppMemberGroupController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/group/AppMemberGroupController.java new file mode 100644 index 00000000..6b1d68b3 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/group/AppMemberGroupController.java @@ -0,0 +1,129 @@ +package cn.iocoder.yudao.module.member.controller.app.group; + +import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.member.controller.admin.group.vo.*; +import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserListVO; + +import cn.iocoder.yudao.module.member.convert.group.MemberGroupConvert; +import cn.iocoder.yudao.module.member.dal.dataobject.group.MemberGroupDO; +import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; +import cn.iocoder.yudao.module.member.service.group.MemberGroupService; +import cn.iocoder.yudao.module.member.service.user.MemberUserService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + + +@Tag(name = "管理后台 - 用户分组") +@RestController +@RequestMapping("/member/group") +@Validated +public class AppMemberGroupController { + + @Resource + private MemberGroupService groupService; + @Resource + private MemberUserService userService; + + @PostMapping("/create") + @Operation(summary = "创建用户分组") + //@PreAuthorize("@ss.hasPermission('member:group:create')") + public CommonResult createGroup(@Valid @RequestBody MemberGroupCreateReqVO createReqVO) { + return success(groupService.createGroup(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新用户分组") + //@PreAuthorize("@ss.hasPermission('member:group:update')") + public CommonResult updateGroup(@Valid @RequestBody MemberGroupUpdateReqVO updateReqVO) { + groupService.updateGroup(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除用户分组") + @Parameter(name = "id", description = "编号", required = true) + //@PreAuthorize("@ss.hasPermission('member:group:delete')") + public CommonResult deleteGroup(@RequestParam("id") Long id) { + groupService.deleteGroup(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得用户分组") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + //@PreAuthorize("@ss.hasPermission('member:group:query')") + public CommonResult getGroup(@RequestParam("id") Long id) { + MemberGroupDO group = groupService.getGroup(id); + return success(MemberGroupConvert.INSTANCE.convert(group)); + } + + @GetMapping("/list-all-simple") + @Operation(summary = "获取会员分组精简信息列表", description = "只包含被开启的会员分组,主要用于前端的下拉选项") + public CommonResult> getSimpleGroupList() { + // 获用户列表,只要开启状态的 + List list = groupService.getEnableGroupList(); + return success(MemberGroupConvert.INSTANCE.convertSimpleList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得用户分组分页") + //@PreAuthorize("@ss.hasPermission('member:group:query')") + public CommonResult> getGroupPage(@Valid MemberGroupPageReqVO pageVO) { + PageResult pageResult = groupService.getGroupPage(pageVO); + PageResult memberGroupRespVOPageResult = MemberGroupConvert.INSTANCE.convertPage(pageResult); + for (MemberGroupRespVO vo : memberGroupRespVOPageResult.getList()){ + if(vo.getUserId()!=null){ + MemberUserDO user = userService.getUser(vo.getUserId()); + if (ObjectUtil.isNotEmpty(user)){ + vo.setMobile(user.getMobile()); + } + } + } + return success(memberGroupRespVOPageResult); + } + + @PostMapping("/addMember") + @Operation(summary = "小组添加成员") + //@PreAuthorize("@ss.hasPermission('member:group:create')") + public CommonResult addMember(@RequestBody MemberGroupVO vo) { + groupService.addMember(vo); + return success(null); + } + + @GetMapping("/getMember") + @Operation(summary = "获取小组成员") + public CommonResult> getMemberByGroupId(MemberGroupPageVO vo) { + return success(groupService.getMemberByGroupId(vo)); + } + + @PostMapping("/deleteMember") + @Operation(summary = "小组删除成员") + public CommonResult deleteMember(@RequestBody MemberGroupVO vo) { + groupService.deleteMember(vo); + return success(null); + } + + @PostMapping("/getUserList") + @Operation(summary = "人员列表") + public CommonResult> getUserList(@Valid @RequestBody MemberUserListVO vo) { + return success(groupService.getUserList(vo)); + } + + @GetMapping("/getAdmin") + @Operation(summary = "获取管理列表") + public CommonResult> getAdmin() { + return success(groupService.getAdmin()); + } + +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/amount/DeductionServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/amount/DeductionServiceImpl.java index e467a8d2..b3e16d89 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/amount/DeductionServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/amount/DeductionServiceImpl.java @@ -429,6 +429,7 @@ public class DeductionServiceImpl implements DeductionService { cardDO.setChangeMoney(total); cardDO.setFlag(CardDO.MINUS); cardDO.setMoney(newMoney); + cardDO.setType(CostTypeEnum.SHOPPING.getCode()); cardDO.setWxAmount(wxNewMoney); cardDO.setCashAmount(cashNewMoney); cardDO.setGiftAmount(giftNewMoney); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/group/MemberGroupService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/group/MemberGroupService.java index b4cd2bd6..15a897c3 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/group/MemberGroupService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/group/MemberGroupService.java @@ -117,6 +117,8 @@ public interface MemberGroupService { PageResult getUserList(MemberUserListVO listVO); + List getAdmin(); + /** * 获取用户所在组 */ diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/group/MemberGroupServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/group/MemberGroupServiceImpl.java index 41177933..60acfee4 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/group/MemberGroupServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/group/MemberGroupServiceImpl.java @@ -2,8 +2,10 @@ package cn.iocoder.yudao.module.member.service.group; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.ListUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupCreateReqVO; import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupPageVO; @@ -18,6 +20,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.dal.mysql.group.MemberGroupMapper; import cn.iocoder.yudao.module.member.service.card.CardService; import cn.iocoder.yudao.module.member.service.user.MemberUserService; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -155,6 +158,14 @@ public class MemberGroupServiceImpl implements MemberGroupService { } + @Override + public List getAdmin() { + Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); + List memberGroupDOS = memberGroupMapper.selectList(Wrappers.lambdaQuery() + .eq(MemberGroupDO::getUserId, loginUserId)); + return memberGroupDOS; + } + @Override public String getGroupNameByUserId(Long userId) { return memberGroupMapper.getGroupName(userId);