From 90be00a2779737f8a6614acc440aa19721b5ff11 Mon Sep 17 00:00:00 2001 From: wangqx Date: Sat, 16 Aug 2025 10:05:51 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=E5=88=A0=E9=99=A4member=E5=8F=82=E6=95=B0?= =?UTF-8?q?=EF=BC=8C=E6=94=B9=E4=B8=BA=E4=BB=8Etoken=E4=B8=AD=E8=8E=B7?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/app/AppArticleController.java | 2 +- .../org/dromara/app/AppMemberController.java | 106 ++++++++++++++++-- .../soopin/member/domain/bo/MemberBankBO.java | 4 + .../wzj/soopin/member/domain/po/Member.java | 2 +- .../soopin/member/domain/po/MemberBank.java | 3 + .../soopin/member/domain/vo/MemberBankVO.java | 3 + 6 files changed, 107 insertions(+), 13 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/app/AppArticleController.java b/ruoyi-admin/src/main/java/org/dromara/app/AppArticleController.java index 1a5e1472a..26de61046 100644 --- a/ruoyi-admin/src/main/java/org/dromara/app/AppArticleController.java +++ b/ruoyi-admin/src/main/java/org/dromara/app/AppArticleController.java @@ -21,7 +21,7 @@ public class AppArticleController { private final IArticleService service; @Tag(name = "轮播列表") - @PostMapping("/carousel") + @PostMapping("/carousel/") public R> carousel(@RequestBody ArticleBO bo) { bo.setType(1);//轮播图 bo.setCategoryId(1l); diff --git a/ruoyi-admin/src/main/java/org/dromara/app/AppMemberController.java b/ruoyi-admin/src/main/java/org/dromara/app/AppMemberController.java index b7feee34d..7184e19da 100644 --- a/ruoyi-admin/src/main/java/org/dromara/app/AppMemberController.java +++ b/ruoyi-admin/src/main/java/org/dromara/app/AppMemberController.java @@ -3,18 +3,35 @@ package org.dromara.app; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.wzj.soopin.member.convert.AccountBillConvert; import com.wzj.soopin.member.convert.MemberAccountConvert; +import com.wzj.soopin.member.convert.MemberBankConvert; import com.wzj.soopin.member.convert.MemberConvert; import com.wzj.soopin.member.domain.bo.AccountBillBO; +import com.wzj.soopin.member.domain.bo.MemberBankBO; import com.wzj.soopin.member.domain.po.AccountBill; +import com.wzj.soopin.member.domain.po.Member; +import com.wzj.soopin.member.domain.po.MemberAccount; +import com.wzj.soopin.member.domain.po.MemberBank; import com.wzj.soopin.member.domain.vo.AccountBillVO; import com.wzj.soopin.member.domain.vo.MemberAccountVO; +import com.wzj.soopin.member.domain.vo.MemberBankVO; import com.wzj.soopin.member.domain.vo.MemberVO; import com.wzj.soopin.member.service.IAccountBillService; import com.wzj.soopin.member.service.IMemberAccountService; +import com.wzj.soopin.member.service.IMemberBankService; import com.wzj.soopin.member.service.IMemberService; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; +import me.zhyd.oauth.model.AuthResponse; +import me.zhyd.oauth.model.AuthUser; import org.dromara.common.core.domain.R; +import org.dromara.common.core.domain.model.LoginUser; +import org.dromara.common.core.domain.model.SocialLoginBody; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.ValidatorUtils; +import org.dromara.common.json.utils.JsonUtils; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.common.social.config.properties.SocialProperties; +import org.dromara.common.social.utils.SocialUtils; import org.springframework.web.bind.annotation.*; @RestController @@ -34,28 +51,95 @@ public class AppMemberController { private final IAccountBillService accountBillService; private final AccountBillConvert accountBillConvert; + private final SocialProperties socialProperties; + + private final IMemberBankService memberBankService; + private final MemberBankConvert memberBankConvert; - - @Tag(name ="获取会员账户信息详细信息") - @GetMapping(value = "/member/{id}") - public R getInfo(@PathVariable("id") Long id) { - return R.ok(convert.toVO(service.getById(id))); + @Tag(name = "获取会员账户信息详细信息") + @GetMapping(value = "/info") + public R getInfo() { + //获取用户信息 + LoginUser loginUser = LoginHelper.getLoginUser(); + if (loginUser == null) { + throw new ServiceException("用户未登录"); + } + return R.ok(convert.toVO(service.getById(loginUser.getUserId()))); } - @Tag(name ="获取会员账户表详细信息") - @GetMapping(value = "/account/{memberId}") - public R accountInfo(@PathVariable("memberId") Long memberId) { - return R.ok(accountConvert.toVO(accountService.getMemberAccount(memberId))); + @Tag(name = "获取会员账户表详细信息") + @GetMapping(value = "/account") + public R accountInfo() { + //获取用户信息 + LoginUser loginUser = LoginHelper.getLoginUser(); + if (loginUser == null) { + throw new ServiceException("用户未登录"); + } + return R.ok(accountConvert.toVO(accountService.getMemberAccount(loginUser.getUserId()))); + } + + @Tag(name = "查询账单") + @PostMapping("/bank") + public R> list(@RequestBody MemberBankBO bo, + @RequestBody Page page) { + //获取用户信息 + LoginUser loginUser = LoginHelper.getLoginUser(); + if (loginUser == null) { + throw new ServiceException("用户未登录"); + } + Long memberId = loginUser.getUserId(); + bo.setMemberId(memberId); + Page memberPage = memberBankService.page(page, bo.toWrapper()); + return R.ok(memberBankConvert.toVO(memberPage)); } @Tag(name = "查询账单") @PostMapping("/bills") public R> list(@RequestBody AccountBillBO bo, - @RequestBody Page page) { - Page memberPage = accountBillService.page(page,bo.toWrapper()); + @RequestBody Page page) { + //获取用户信息 + LoginUser loginUser = LoginHelper.getLoginUser(); + if (loginUser == null) { + throw new ServiceException("用户未登录"); + } + Long memberId = loginUser.getUserId(); + //根据会员获取账户信息 + MemberAccount memberAccount = accountService.getMemberAccount(memberId); + if (memberAccount == null) { + throw new ServiceException("用户未绑定账户"); + } + bo.setAccountId(memberAccount.getId()); + Page memberPage = accountBillService.page(page, bo.toWrapper()); return R.ok(accountBillConvert.toVO(memberPage)); } + @Tag(name = "绑定微信") + @PostMapping("/bind/wechat") + public R bindWechat(@RequestBody SocialLoginBody loginBody) { + + //获取用户信息 + LoginUser loginUser = LoginHelper.getLoginUser(); + if (loginUser == null) { + throw new ServiceException("用户未登录"); + } + Long memberId = loginUser.getUserId(); + + ValidatorUtils.validate(loginBody); + AuthResponse response = SocialUtils.loginAuth( + loginBody.getSource(), loginBody.getSocialCode(), + loginBody.getSocialState(), socialProperties); + if (!response.ok()) { + throw new ServiceException(response.getMsg()); + } + + AuthUser authUserData = response.getData(); + + Member member = Member.builder().id(memberId).openId(authUserData.getUuid()).build(); +// 更新用户的微信信息 +// 返回给前端 + return R.ok(authUserData); + } + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBankBO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBankBO.java index bf74cf949..82d6b1578 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBankBO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBankBO.java @@ -26,11 +26,15 @@ public class MemberBankBO extends BaseBO { @Schema(description ="开户行") private String address; + @Schema(description ="会员ID") + private Long memberId; + @Override public LambdaQueryWrapper toWrapper() { return super.toWrapper().eq(id!=null, MemberBank::getId, id) .like(name!=null, MemberBank::getName, name) + .eq(memberId!=null, MemberBank::getMemberId, memberId) .like(code!=null, MemberBank::getCode, code) .like(address!=null, MemberBank::getAddress, address); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Member.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Member.java index e18791057..d7c9eed6f 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Member.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Member.java @@ -97,7 +97,7 @@ public class Member extends BaseAudit { private Integer friendsCount; @Schema(description ="微信openId") - private Long openId; + private String openId; @Schema(description ="用户id") diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberBank.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberBank.java index 35aea476b..bfb182c7b 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberBank.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberBank.java @@ -26,4 +26,7 @@ public class MemberBank { @Schema(description ="开户行") private String address; + @Schema(description ="会员ID") + private Long memberId; + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberBankVO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberBankVO.java index 7d59534c8..462b5a482 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberBankVO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberBankVO.java @@ -25,4 +25,7 @@ public class MemberBankVO { @Schema(description ="开户行") private String address; + @Schema(description ="会员ID") + private Long memberId; + }