From 86750e61ea9a777263b35588331192eeec7b24e4 Mon Sep 17 00:00:00 2001 From: fxh <15076273430@163.com> Date: Tue, 10 Jun 2025 15:35:14 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9order=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/wzj/soopin/order/controller/OrderController.java | 2 +- .../order/controller/OrderDeliveryHistoryController.java | 2 +- .../java/com/wzj/soopin/order/domain/entity/OrderItem.java | 3 ++- .../src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java | 1 + 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java index abf6162c0..75f0ed11c 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java @@ -57,7 +57,7 @@ public class OrderController extends BaseController { - @ApiOperation("查询订单售后列表") + @ApiOperation("查询订单列表") @PostMapping("/list") public R> list(@RequestBody OrderBo query, Page page) { Page list = service.page(page,query.toWrapper() ); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderDeliveryHistoryController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderDeliveryHistoryController.java index 985b8a9f4..0797985a0 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderDeliveryHistoryController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderDeliveryHistoryController.java @@ -52,7 +52,7 @@ public class OrderDeliveryHistoryController extends BaseController { // return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); // } - @ApiOperation("查询订单表列表") + @ApiOperation("查询订单发货列表") @PostMapping("/list") public R> list(@RequestBody OrderDeliveryHistoryBo query, Page page) { Page list = historyService.page(page,query.toWrapper() ); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/OrderItem.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/OrderItem.java index d0102dbfd..e6726d3c5 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/OrderItem.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/OrderItem.java @@ -24,7 +24,8 @@ public class OrderItem extends BaseAudit { @ApiModelProperty("ID") @TableId(type = IdType.ASSIGN_ID) private Long id; - + @Excel(name = "商家备注") + private String merchantNote; @ApiModelProperty("订单id") @Excel(name = "订单id") private Long orderId; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java index 63d70b516..31e3320e3 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java @@ -31,6 +31,7 @@ public class OrderVO extends BaseAudit { /** 用户帐号 */ @Excel(name = "用户帐号") private String memberUsername; + /** 商家备注 */ @Excel(name = "商家备注") private String merchantNote; From 12de7c2abf9d420650789c8baa1eb3b257867b20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BA=86=E7=A5=A5?= Date: Tue, 10 Jun 2025 16:02:52 +0800 Subject: [PATCH 2/5] =?UTF-8?q?[fix]=E4=BF=AE=E6=94=B9content=E7=9A=84pom?= =?UTF-8?q?=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-modules/ruoyi-content/pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ruoyi-modules/ruoyi-content/pom.xml b/ruoyi-modules/ruoyi-content/pom.xml index ad9f81f68..8e06456be 100644 --- a/ruoyi-modules/ruoyi-content/pom.xml +++ b/ruoyi-modules/ruoyi-content/pom.xml @@ -20,10 +20,10 @@ 2.4 jdk15 - - org.springframework.boot - spring-boot-starter-data-mongodb - + + + + io.minio minio From 3ec075544d0fbe934595bb5fcee9234f71fc4bad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BA=86=E7=A5=A5?= Date: Thu, 12 Jun 2025 15:24:57 +0800 Subject: [PATCH 3/5] =?UTF-8?q?[fix]=E5=A2=9E=E5=8A=A0swaggerui=EF=BC=8C?= =?UTF-8?q?=E7=94=A8=E4=BA=8E=E5=B1=95=E7=A4=BA=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 11 ++++ .../src/main/resources/application.yml | 26 ++++---- ruoyi-common/ruoyi-common-doc/pom.xml | 29 +++++++++ ruoyi-modules/ruoyi-content/pom.xml | 7 +-- ruoyi-modules/ruoyi-goods/pom.xml | 6 -- ruoyi-modules/ruoyi-im/pom.xml | 12 +--- ruoyi-modules/ruoyi-member/pom.xml | 12 ---- .../member/controller/FeedbackController.java | 22 +++---- .../controller/MemberAccountController.java | 20 +++--- .../controller/MemberAddressController.java | 22 +++---- .../controller/MemberCartController.java | 25 ++++---- .../member/controller/MemberController.java | 26 ++++---- .../controller/MemberLoginInfoController.java | 15 +++-- .../soopin/member/domain/bo/FeedbackBO.java | 18 +++--- .../member/domain/bo/MemberAccountBO.java | 11 ++-- .../soopin/member/domain/bo/MemberAddDTO.java | 8 +-- .../member/domain/bo/MemberAddressBO.java | 27 ++++---- .../wzj/soopin/member/domain/bo/MemberBO.java | 37 ++++++----- .../soopin/member/domain/bo/MemberCartBO.java | 23 ++++--- .../member/domain/bo/MemberEditDTO.java | 16 ++--- .../member/domain/bo/MemberLoginInfoBO.java | 19 +++--- .../member/domain/bo/MemberWechatBO.java | 31 +++++----- .../wzj/soopin/member/domain/po/Address.java | 16 +++-- .../com/wzj/soopin/member/domain/po/Fans.java | 20 +++--- .../wzj/soopin/member/domain/po/Feedback.java | 52 ++++++++++++---- .../wzj/soopin/member/domain/po/Member.java | 61 ++++++++++--------- .../member/domain/po/MemberAccount.java | 23 ++++--- .../member/domain/po/MemberAddress.java | 40 ++++++------ .../soopin/member/domain/po/MemberCart.java | 24 ++++---- .../member/domain/po/MemberLoginInfo.java | 21 +++---- .../soopin/member/domain/po/MemberWechat.java | 34 +++++------ .../wzj/soopin/member/domain/vo/FansVO.java | 23 ++++++- .../soopin/member/domain/vo/FeedbackVO.java | 25 ++++++++ .../domain/vo/MemberDataStatisticsVO.java | 13 ++-- .../wzj/soopin/member/domain/vo/MemberVO.java | 20 ++++-- .../member/service/impl/FansServiceImpl.java | 14 +++-- .../service/impl/FeedbackServiceImpl.java | 2 +- ruoyi-modules/ruoyi-order/pom.xml | 13 +--- 38 files changed, 440 insertions(+), 384 deletions(-) diff --git a/pom.xml b/pom.xml index d958cfee3..edc5d2aec 100644 --- a/pom.xml +++ b/pom.xml @@ -59,6 +59,7 @@ 1.3.0 true + 3.03 @@ -429,6 +430,16 @@ 1.6.2 compile + + com.github.xiaoymin + knife4j-springdoc-ui + 3.0.3 + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + ${springdoc.version} + diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 33d513bc0..cf76a1671 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -237,19 +237,21 @@ springdoc: name: ${sa-token.token-name} #这里定义了两个分组,可定义多个,也可以不定义 group-configs: - - group: 1.演示模块 - packages-to-scan: org.dromara.demo - - group: 2.通用模块 - packages-to-scan: org.dromara.web - - group: 3.系统模块 - packages-to-scan: org.dromara.system - - group: 4.代码生成模块 - packages-to-scan: org.dromara.generator - - group: 5.工作流模块 - packages-to-scan: org.dromara.workflow - - group: 6.内容模块 + - group: 1.会员模块 + packages-to-scan: com.wzj.soopin.member + - group: 2.订单模块 + packages-to-scan: com.wzj.soopin.order + - group: 3.商品模块 + packages-to-scan: com.wzj.soopin.goods + - group: 4.内容模块 packages-to-scan: com.wzj.soopin.content - + - group: 5.结算模块 + packages-to-scan: com.wzj.soopin.pay + - group: 6.IM模块 + packages-to-scan: com.wzj.soopin.im + - group: 7.系统模块 + packages-to-scan: org.dromara.system + legacy-mode: true # 防止XSS攻击 xss: # 过滤开关 diff --git a/ruoyi-common/ruoyi-common-doc/pom.xml b/ruoyi-common/ruoyi-common-doc/pom.xml index c6199a17c..f1cecf04b 100644 --- a/ruoyi-common/ruoyi-common-doc/pom.xml +++ b/ruoyi-common/ruoyi-common-doc/pom.xml @@ -26,6 +26,7 @@ springdoc-openapi-starter-webmvc-api + com.github.therapi therapi-runtime-javadoc @@ -36,6 +37,34 @@ jackson-module-kotlin + + + io.swagger.core.v3 + swagger-annotations + 2.2.15 + + + io.swagger.core.v3 + swagger-models + 2.2.15 + + + + io.swagger + swagger-annotations + 1.6.2 + compile + + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + + + com.github.xiaoymin + knife4j-springdoc-ui + + diff --git a/ruoyi-modules/ruoyi-content/pom.xml b/ruoyi-modules/ruoyi-content/pom.xml index 8e06456be..7114dbdcd 100644 --- a/ruoyi-modules/ruoyi-content/pom.xml +++ b/ruoyi-modules/ruoyi-content/pom.xml @@ -155,12 +155,7 @@ okhttp 4.12.0 - - io.swagger - swagger-annotations - 1.6.2 - compile - + org.springframework.amqp spring-rabbit diff --git a/ruoyi-modules/ruoyi-goods/pom.xml b/ruoyi-modules/ruoyi-goods/pom.xml index 86ea014e5..bc03ec19d 100644 --- a/ruoyi-modules/ruoyi-goods/pom.xml +++ b/ruoyi-modules/ruoyi-goods/pom.xml @@ -97,12 +97,6 @@ org.dromara ruoyi-common-sse - - io.swagger - swagger-annotations - 1.6.2 - compile - diff --git a/ruoyi-modules/ruoyi-im/pom.xml b/ruoyi-modules/ruoyi-im/pom.xml index fc941a9da..c6c53acd9 100644 --- a/ruoyi-modules/ruoyi-im/pom.xml +++ b/ruoyi-modules/ruoyi-im/pom.xml @@ -97,17 +97,7 @@ org.dromara ruoyi-common-sse - - io.swagger - swagger-annotations - 1.6.2 - compile - - - - - - + diff --git a/ruoyi-modules/ruoyi-member/pom.xml b/ruoyi-modules/ruoyi-member/pom.xml index d74c4c164..aca1b4269 100644 --- a/ruoyi-modules/ruoyi-member/pom.xml +++ b/ruoyi-modules/ruoyi-member/pom.xml @@ -98,18 +98,6 @@ org.dromara ruoyi-common-sse - - com.github.xiaoymin - knife4j-spring-boot-starter - - - com.github.xiaoymin - knife4j-springdoc-ui - - - - - diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FeedbackController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FeedbackController.java index 78f1cb5ad..a8b2de3a5 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FeedbackController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FeedbackController.java @@ -1,26 +1,18 @@ package com.wzj.soopin.member.controller; -import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.wzj.soopin.member.convert.FeedbackConvert; -import com.wzj.soopin.member.convert.MemberAccountConvert; import com.wzj.soopin.member.domain.bo.FeedbackBO; import com.wzj.soopin.member.domain.po.Feedback; -import com.wzj.soopin.member.domain.po.MemberAccount; import com.wzj.soopin.member.domain.vo.FeedbackVO; import com.wzj.soopin.member.service.IFeedbackService; -import com.wzj.soopin.member.service.IMemberAccountService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.web.core.BaseController; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -30,7 +22,7 @@ import org.springframework.web.bind.annotation.*; * @author zcc * @date 2024-02-26 */ -@Api(description ="意见反馈接口列表") +@Tag(name ="意见反馈接口列表") @RestController @RequestMapping("/ums/feedback") @RequiredArgsConstructor @@ -40,7 +32,7 @@ public class FeedbackController { private final FeedbackConvert convert; - @ApiOperation("查询意见反馈列表") + @Tag(name ="查询意见反馈列表") @PostMapping("/list") public R> list(@RequestBody FeedbackBO query, Page page) { Page feedBackPage= service.page(page,query.toWrapper()); @@ -48,14 +40,14 @@ public class FeedbackController { } - @ApiOperation("修改意见反馈备注信息") + @Tag(name ="修改意见反馈备注信息") @Log(title = "意见反馈", businessType = BusinessType.UPDATE) @PostMapping("/update") public R editMark(@RequestBody FeedbackBO feedback) { return R.ok(service.save(convert.toPo(feedback))); } - @ApiOperation("修改意见反馈备注信息") + @Tag(name ="修改意见反馈备注信息") @Log(title = "新增意见反馈", businessType = BusinessType.UPDATE) @PostMapping("/add") public R add(@RequestBody FeedbackBO feedback) { @@ -63,7 +55,7 @@ public class FeedbackController { } - @ApiOperation(("修改状态")) + @Tag(name =("修改状态")) @Log(title = "意见反馈", businessType = BusinessType.UPDATE) @PostMapping("/handle/status/update") public R changeStatus(@RequestBody FeedbackBO bo){ @@ -71,7 +63,7 @@ public class FeedbackController { } - @ApiOperation("删除意见反馈") + @Tag(name ="删除意见反馈") @Log(title = "意见反馈", businessType = BusinessType.DELETE) @DeleteMapping("/{id}") public ResponseEntity remove(@PathVariable Long id) { diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAccountController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAccountController.java index 64a9ff1c2..69f9c2974 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAccountController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAccountController.java @@ -3,18 +3,16 @@ package com.wzj.soopin.member.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.wzj.soopin.member.convert.MemberAccountConvert; -import com.wzj.soopin.member.domain.po.MemberAccount; import com.wzj.soopin.member.domain.bo.MemberAccountBO; +import com.wzj.soopin.member.domain.po.MemberAccount; import com.wzj.soopin.member.domain.vo.MemberAccountVO; import com.wzj.soopin.member.service.IMemberAccountService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; -import org.dromara.common.mybatis.core.page.TableDataInfo; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -25,7 +23,7 @@ import java.util.List; * @author zcc * @date 2024-03-01 */ -@Api(description ="会员账户表接口列表") +@Tag(name ="会员账户表接口列表") @RestController @RequestMapping("/ums/memberAccount") @RequiredArgsConstructor @@ -34,14 +32,14 @@ public class MemberAccountController { private final IMemberAccountService service; private final MemberAccountConvert convert; - @ApiOperation("查询会员账户表列表") + @Tag(name ="查询会员账户表列表") @PostMapping("/list") public R> list(@RequestBody MemberAccountBO query, IPage page) { Page list = (Page) service.page(page,query.toWrapper() ); return R.ok(convert.toVO(list)); } - @ApiOperation("导出会员账户表列表") + @Tag(name ="导出会员账户表列表") @Log(title = "会员账户表", businessType = BusinessType.EXPORT) @GetMapping("/export") public ResponseEntity export(MemberAccountBO query) { @@ -50,27 +48,27 @@ public class MemberAccountController { return ResponseEntity.ok(util.writeExcel(convert.toVO(list), "会员账户表数据")); } - @ApiOperation("获取会员账户表详细信息") + @Tag(name ="获取会员账户表详细信息") @GetMapping(value = "/{memberId}") public ResponseEntity getInfo(@PathVariable("memberId") Long memberId) { return ResponseEntity.ok(service.getById(memberId)); } - @ApiOperation("新增会员账户表") + @Tag(name ="新增会员账户表") @Log(title = "会员账户表", businessType = BusinessType.INSERT) @PostMapping("/add") public ResponseEntity add(@RequestBody MemberAccountBO memberAccount) { return ResponseEntity.ok(service.save(convert.toPo(memberAccount))); } - @ApiOperation("修改会员账户表") + @Tag(name ="修改会员账户表") @Log(title = "会员账户表", businessType = BusinessType.UPDATE) @PutMapping("/update") public ResponseEntity edit(@RequestBody MemberAccountBO memberAccount) { return ResponseEntity.ok(service.updateById(convert.toPo(memberAccount))); } - @ApiOperation("删除会员账户表") + @Tag(name ="删除会员账户表") @Log(title = "会员账户表", businessType = BusinessType.DELETE) @DeleteMapping("/{memberId}") diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAddressController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAddressController.java index 4098e80e9..1b2b71bf5 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAddressController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAddressController.java @@ -4,20 +4,16 @@ package com.wzj.soopin.member.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.wzj.soopin.member.convert.MemberAddressConvert; -import com.wzj.soopin.member.domain.po.MemberAddress; import com.wzj.soopin.member.domain.bo.MemberAddressBO; +import com.wzj.soopin.member.domain.po.MemberAddress; import com.wzj.soopin.member.domain.vo.MemberAddressVO; import com.wzj.soopin.member.service.IMemberAddressService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.PageImpl; -import org.springframework.data.domain.Pageable; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -29,7 +25,7 @@ import java.util.List; * @author zcc * @date 2022-11-28 */ -@Api(description ="会员收货地址接口列表") +@Tag(name ="会员收货地址接口列表") @RestController @RequestMapping("/ums/memberAddress") @RequiredArgsConstructor @@ -39,14 +35,14 @@ public class MemberAddressController { private final MemberAddressConvert convert; - @ApiOperation("查询会员收货地址列表") + @Tag(name ="查询会员收货地址列表") @PostMapping("/list") public R list(@RequestBody MemberAddressBO query, IPage page) { Page list =(Page ) service.page(page,query.toWrapper()); return R.ok(convert.toVO(list)); } - @ApiOperation("导出会员收货地址列表") + @Tag(name ="导出会员收货地址列表") @Log(title = "会员收货地址", businessType = BusinessType.EXPORT) @PostMapping("/export") public ResponseEntity export(MemberAddressBO query) { @@ -55,20 +51,20 @@ public class MemberAddressController { return ResponseEntity.ok(util.writeExcel(convert.toVO(list), "会员收货地址数据")); } - @ApiOperation("获取会员收货地址详细信息") + @Tag(name ="获取会员收货地址详细信息") @GetMapping(value = "/{id}") public ResponseEntity getInfo(@PathVariable("id") Long id) { return ResponseEntity.ok(service.getById(id)); } - @ApiOperation("新增会员收货地址") + @Tag(name ="新增会员收货地址") @Log(title = "会员收货地址", businessType = BusinessType.INSERT) @PostMapping("/add") public ResponseEntity add(@RequestBody MemberAddress memberAddress) { return ResponseEntity.ok(service.save(memberAddress)); } - @ApiOperation("修改会员收货地址") + @Tag(name ="修改会员收货地址") @Log(title = "会员收货地址", businessType = BusinessType.UPDATE) @PostMapping("/update") public ResponseEntity edit(@RequestBody MemberAddress memberAddress) { @@ -76,7 +72,7 @@ public class MemberAddressController { return ResponseEntity.ok(null); } - @ApiOperation("删除会员收货地址") + @Tag(name ="删除会员收货地址") @Log(title = "会员收货地址", businessType = BusinessType.DELETE) @DeleteMapping("/{id}") public ResponseEntity remove(@PathVariable Long id) { diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberCartController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberCartController.java index 3aa603848..b78b8e572 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberCartController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberCartController.java @@ -5,19 +5,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.wzj.soopin.member.convert.MemberCartConvert; -import com.wzj.soopin.member.domain.po.MemberCart; import com.wzj.soopin.member.domain.bo.MemberCartBO; +import com.wzj.soopin.member.domain.po.MemberCart; import com.wzj.soopin.member.domain.vo.MemberCartVO; import com.wzj.soopin.member.service.IMemberCartService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.dromara.common.core.domain.R; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.web.core.BaseController; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Pageable; -import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; /** @@ -26,7 +23,7 @@ import org.springframework.web.bind.annotation.*; * @author zcc * @date 2022-11-29 */ -@Api(description ="购物车接口列表") +@Tag(name = "购物车接口列表") @RestController @RequestMapping("/ums/memberCart") public class MemberCartController extends BaseController { @@ -35,14 +32,14 @@ public class MemberCartController extends BaseController { @Autowired private MemberCartConvert convert; - @ApiOperation("查询购物车列表") + @Tag(name = "查询购物车列表") @PostMapping("/list") public R> list(@RequestBody MemberCartBO query, IPage page) { - Page userPage=(Page) service.page(page,new QueryWrapper()); + Page userPage = (Page) service.page(page, new QueryWrapper()); return R.ok(convert.toVO(userPage)); } - @ApiOperation("导出购物车列表") + @Tag(name = "导出购物车列表") @Log(title = "购物车", businessType = BusinessType.EXPORT) @PostMapping("/export") public R export(MemberCartBO query) { @@ -52,29 +49,29 @@ public class MemberCartController extends BaseController { return null; } - @ApiOperation("获取购物车详细信息") + @Tag(name = "获取购物车详细信息") @GetMapping(value = "/{id}") public R getInfo(@PathVariable("id") Long id) { return R.ok(service.getById(id)); } - @ApiOperation("新增购物车") + @Tag(name = "新增购物车") @Log(title = "购物车", businessType = BusinessType.INSERT) @PostMapping("/add") public R add(@RequestBody MemberCartBO memberCart) { return R.ok(service.save(convert.toPo(memberCart))); } - @ApiOperation("修改购物车") + @Tag(name = "修改购物车") @Log(title = "购物车", businessType = BusinessType.UPDATE) @PostMapping("/update") public R edit(@RequestBody MemberCartBO memberCart) { return R.ok(service.updateById(convert.toPo(memberCart))); } - @ApiOperation("删除购物车") + @Tag(name = "删除购物车") @Log(title = "购物车", businessType = BusinessType.DELETE) - @DeleteMapping("/{id}") + @DeleteMapping("/{id}") public R remove(@PathVariable Long id) { return R.ok(service.removeById(id)); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberController.java index b009f9264..39eac408e 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberController.java @@ -2,7 +2,6 @@ package com.wzj.soopin.member.controller; import cn.dev33.satoken.annotation.SaCheckPermission; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.wzj.soopin.member.convert.MemberConvert; import com.wzj.soopin.member.domain.bo.MemberBO; @@ -11,8 +10,7 @@ import com.wzj.soopin.member.domain.po.Member; import com.wzj.soopin.member.domain.vo.MemberDataStatisticsVO; import com.wzj.soopin.member.domain.vo.MemberVO; import com.wzj.soopin.member.service.IMemberService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.dromara.common.core.domain.R; import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.log.annotation.Log; @@ -30,7 +28,7 @@ import java.util.List; * @author zcc * @date 2022-11-28 */ -@Api(description ="会员信息接口列表") +@Tag(name = "会员信息接口列表") @RequestMapping("/ums/member/") @RestController public class MemberController extends BaseController { @@ -40,7 +38,7 @@ public class MemberController extends BaseController { private MemberConvert convert; - @ApiOperation("查询会员信息列表") + @Tag(name = "查询会员信息列表") @SaCheckPermission("ums:member:list") @PostMapping("list") public R> list(@RequestBody MemberBO bo, Page page) { @@ -49,7 +47,7 @@ public class MemberController extends BaseController { return R.ok(convert.toVO(memberPage)); } - @ApiOperation("导出会员信息列表") + @Tag(name ="导出会员信息列表") @SaCheckPermission("ums:member:export") @Log(title = "会员信息", businessType = BusinessType.EXPORT) @PostMapping("export") @@ -59,14 +57,14 @@ public class MemberController extends BaseController { return ResponseEntity.ok(util.writeExcel(convert.toVO(list), "会员信息数据")); } - @ApiOperation("获取会员信息详细信息") + @Tag(name ="获取会员信息详细信息") @SaCheckPermission("ums:member:query") @GetMapping(value = "{id}") public ResponseEntity getInfo(@PathVariable("id") Long id) { return ResponseEntity.ok(convert.toVO(service.getById(id))); } - @ApiOperation("新增会员信息") + @Tag(name ="新增会员信息") @SaCheckPermission("'ums:member:add") @Log(title = "会员信息", businessType = BusinessType.INSERT) @PostMapping("add") @@ -74,7 +72,7 @@ public class MemberController extends BaseController { return R.ok(service.save(convert.toPo(member))); } - @ApiOperation("修改会员信息") + @Tag(name ="修改会员信息") @SaCheckPermission("ums:member:edit") @Log(title = "会员信息", businessType = BusinessType.UPDATE) @PostMapping("update") @@ -82,7 +80,7 @@ public class MemberController extends BaseController { return R.ok(service.updateById(convert.toPo(member))); } - @ApiOperation("修改会员备注信息") + @Tag(name ="修改会员备注信息") @SaCheckPermission("ums:member:edit") @Log(title = "会员备注信息", businessType = BusinessType.UPDATE) @PostMapping("mark/update") @@ -90,7 +88,7 @@ public class MemberController extends BaseController { return ResponseEntity.ok(service.updateMark(member)); } - @ApiOperation("删除会员信息") + @Tag(name ="删除会员信息") @SaCheckPermission("ums:member:remove") @Log(title = "会员信息", businessType = BusinessType.DELETE) @DeleteMapping("{id}") @@ -98,20 +96,20 @@ public class MemberController extends BaseController { return R.ok(service.removeById(id)); } - @ApiOperation(("修改会员账户状态")) + @Tag(name =("修改会员账户状态")) @Log(title = "会员信息", businessType = BusinessType.UPDATE) @PostMapping("status/change") public ResponseEntity changeStatus(@RequestBody ChangeMemberStatusForm form){ return ResponseEntity.ok(service.changeStatus(form)); } - @ApiOperation("会员手机号解密") + @Tag(name ="会员手机号解密") @GetMapping("phone/decrypt/{phoneEncrypted}") public ResponseEntity getPhoneDecrypted(@PathVariable String phoneEncrypted){ return ResponseEntity.ok(service.getPhoneDecrypted(phoneEncrypted)); } - @ApiOperation("查看会员统计数据") + @Tag(name ="查看会员统计数据") @GetMapping("view/statistics/{memberId}") public ResponseEntity viewStatistics(@PathVariable Long memberId){ // return ResponseEntity.ok(service.viewStatistics(memberId)); diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberLoginInfoController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberLoginInfoController.java index 63110c522..7964e3d4b 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberLoginInfoController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberLoginInfoController.java @@ -8,8 +8,7 @@ import com.wzj.soopin.member.domain.bo.MemberLoginInfoBO; import com.wzj.soopin.member.domain.po.MemberLoginInfo; import com.wzj.soopin.member.domain.vo.MemberLoginInfoVO; import com.wzj.soopin.member.service.IMemberLoginInfoService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.excel.utils.ExcelUtil; @@ -26,7 +25,7 @@ import java.util.List; * @author zcc * @date 2023-07-26 */ -@Api(description ="会员登录记录接口列表") +@Tag(name ="会员登录记录接口列表") @RestController @RequestMapping("/ums/member/loginInfo/") @RequiredArgsConstructor @@ -34,7 +33,7 @@ public class MemberLoginInfoController extends BaseController { private final IMemberLoginInfoService service; private final MemberLoginInfoConvert convert; - @ApiOperation("查询会员登录记录列表") + @Tag(name ="查询会员登录记录列表") @SaCheckPermission("ums:memberlogininfo:list") @PostMapping("list") public R> list(@RequestBody MemberLoginInfoBO query, Page page) { @@ -42,7 +41,7 @@ public class MemberLoginInfoController extends BaseController { return R.ok(convert.toVO(list)); } - @ApiOperation("导出会员登录记录列表") + @Tag(name ="导出会员登录记录列表") @SaCheckPermission("ums:memberlogininfo:export") @Log(title = "会员登录记录", businessType = BusinessType.EXPORT) @PostMapping("export") @@ -52,14 +51,14 @@ public class MemberLoginInfoController extends BaseController { return R.ok(util.writeExcel(convert.toVO(list), "会员登录记录数据")); } - @ApiOperation("获取会员登录记录详细信息") + @Tag(name ="获取会员登录记录详细信息") @SaCheckPermission("ums:memberlogininfo:query") @GetMapping(value = "{id}") public R getInfo(@PathVariable("id") Long id) { return R.ok(convert.toVO(service.getById(id))); } - @ApiOperation("修改会员登录记录") + @Tag(name ="修改会员登录记录") @SaCheckPermission("ums:memberlogininfo:edit") @Log(title = "会员登录记录", businessType = BusinessType.UPDATE) @PostMapping("/update") @@ -67,7 +66,7 @@ public class MemberLoginInfoController extends BaseController { return R.ok(service.updateById(convert.toPo(memberLoginInfo))); } - @ApiOperation("删除会员登录记录") + @Tag(name ="删除会员登录记录") @SaCheckPermission("ums:memberlogininfo:remove") @Log(title = "会员登录记录", businessType = BusinessType.DELETE) @DeleteMapping("{id}") diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/FeedbackBO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/FeedbackBO.java index b0aa175fc..85b210a5d 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/FeedbackBO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/FeedbackBO.java @@ -1,10 +1,8 @@ package com.wzj.soopin.member.domain.bo; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import org.apache.poi.ss.formula.functions.T; import org.dromara.common.core.domain.BaseBO; import java.time.LocalDateTime; @@ -14,25 +12,25 @@ import java.time.LocalDateTime; * * @author zcc */ -@ApiModel(description="意见反馈 查询 对象") +@Schema(description = "意见反馈 查询 对象") @Data public class FeedbackBO extends BaseBO { - @ApiModelProperty("类型 精确匹配") + @Schema(description ="类型 精确匹配") private String type; - @ApiModelProperty("具体说明 精确匹配") + @Schema(description ="具体说明 精确匹配") private String content; - @ApiModelProperty("图片 精确匹配") + @Schema(description ="图片 精确匹配") private String images; - @ApiModelProperty("联系电话 精确匹配") + @Schema(description ="联系电话 精确匹配") private String phone; - @ApiModelProperty("处理状态 0:未处理 1:已处理 精确匹配") + @Schema(description ="处理状态 0:未处理 1:已处理 精确匹配") private Integer handleStatus; - @ApiModelProperty("处理时间 精确匹配") + @Schema(description ="处理时间 精确匹配") private LocalDateTime handleTime; private String beginTime; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAccountBO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAccountBO.java index 73283f762..e88ffc85a 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAccountBO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAccountBO.java @@ -4,8 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.wzj.soopin.member.domain.po.MemberAccount; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.BaseBO; @@ -16,17 +15,17 @@ import java.math.BigDecimal; * * @author zcc */ -@ApiModel(description="会员账户表 查询 对象") +@Schema(description="会员账户表 查询 对象") @Data public class MemberAccountBO extends BaseBO { - @ApiModelProperty("积分余额 精确匹配") + @Schema(description ="积分余额 精确匹配") private BigDecimal integralBalance; - @ApiModelProperty("历史总共积分 精确匹配") + @Schema(description ="历史总共积分 精确匹配") private BigDecimal totalIntegralBalance; - @ApiModelProperty("MEMBER_ID") + @Schema(description ="MEMBER_ID") @TableId(value="member_id", type = IdType.ASSIGN_ID) private Long memberId; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAddDTO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAddDTO.java index 37713918a..bbb39ab4e 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAddDTO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAddDTO.java @@ -1,6 +1,6 @@ package com.wzj.soopin.member.domain.bo; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Size; @@ -17,14 +17,14 @@ import lombok.Data; public class MemberAddDTO { @NotEmpty(message = "会员用户名必填") @Size(max = 30,message = "会员用户名最长30位") - @ApiModelProperty(value = "会员用户名") + @Schema(description = "会员用户名") private String username; - @ApiModelProperty(value = "会员密码") + @Schema(description = "会员密码") private String password; @NotEmpty(message = "手机号码不能为空") - @ApiModelProperty(value = "手机号码", required = true) + @Schema(description ="手机号码", required = true) @Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$", message = "手机号格式有误") private String mobile; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAddressBO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAddressBO.java index c569e82b5..7165c722c 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAddressBO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAddressBO.java @@ -2,11 +2,8 @@ package com.wzj.soopin.member.domain.bo; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.fasterxml.jackson.databind.ser.Serializers; -import com.wzj.soopin.member.domain.po.Member; import com.wzj.soopin.member.domain.po.MemberAddress; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.BaseBO; @@ -15,37 +12,37 @@ import org.dromara.common.core.domain.BaseBO; * * @author zcc */ -@ApiModel(description="会员收货地址 查询 对象") +@Schema(description="会员收货地址 查询 对象") @Data public class MemberAddressBO extends BaseBO { - @ApiModelProperty("MEMBER_ID 精确匹配") + @Schema(description ="MEMBER_ID 精确匹配") private Long memberId; - @ApiModelProperty("收货人名称 精确匹配") + @Schema(description ="收货人名称 精确匹配") private String nameLike; - @ApiModelProperty("PHONE 精确匹配") + @Schema(description ="PHONE 精确匹配") private String phone; - @ApiModelProperty("是否为默认 精确匹配") + @Schema(description ="是否为默认 精确匹配") private Integer defaultStatus; - @ApiModelProperty("邮政编码 精确匹配") + @Schema(description ="邮政编码 精确匹配") private String postCode; - @ApiModelProperty("省份/直辖市 精确匹配") + @Schema(description ="省份/直辖市 精确匹配") private String province; - @ApiModelProperty("城市 精确匹配") + @Schema(description ="城市 精确匹配") private String city; - @ApiModelProperty("区 精确匹配") + @Schema(description ="区 精确匹配") private String district; - @ApiModelProperty("详细地址 精确匹配") + @Schema(description ="详细地址 精确匹配") private String detailAddress; - @ApiModelProperty("是否默认 精确匹配") + @Schema(description ="是否默认 精确匹配") private Integer isDefault; @Override diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBO.java index edea9c751..7dd7ea5a1 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBO.java @@ -2,8 +2,7 @@ package com.wzj.soopin.member.domain.bo; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.wzj.soopin.member.domain.po.Member; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.apache.commons.lang3.StringUtils; import org.dromara.common.core.domain.BaseBO; @@ -17,55 +16,55 @@ import java.time.LocalDateTime; * * @author zcc */ -@ApiModel(description="会员信息 查询 对象") +@Schema(description="会员信息 查询 对象") @Data public class MemberBO extends BaseBO { - @ApiModelProperty("昵称 精确匹配") + @Schema(description ="昵称 精确匹配") private String nickname; - @ApiModelProperty("密码 精确匹配") + @Schema(description ="密码 精确匹配") private String password; - @ApiModelProperty("手机号码 精确匹配") + @Schema(description ="手机号码 精确匹配") private String phone; - @ApiModelProperty("有无备注 1:有备注 0:无备注") + @Schema(description ="有无备注 1:有备注 0:无备注") private Integer hasMark; - @ApiModelProperty("用户备注 精确匹配") + @Schema(description ="用户备注 精确匹配") private String mark; - @ApiModelProperty("帐号启用状态:0->禁用;1->启用 精确匹配") + @Schema(description ="帐号启用状态:0->禁用;1->启用 精确匹配") private Integer status; - @ApiModelProperty("头像 精确匹配") + @Schema(description ="头像 精确匹配") private String avatar; - @ApiModelProperty("性别:0->未知;1->男;2->女 精确匹配") + @Schema(description ="性别:0->未知;1->男;2->女 精确匹配") private Integer gender; - @ApiModelProperty("用户所在城市 精确匹配") + @Schema(description ="用户所在城市 精确匹配") private String city; - @ApiModelProperty("用户所在省份 精确匹配") + @Schema(description ="用户所在省份 精确匹配") private String province; - @ApiModelProperty("用户所在国家 精确匹配") + @Schema(description ="用户所在国家 精确匹配") private String country; - @ApiModelProperty("生日 精确匹配") + @Schema(description ="生日 精确匹配") private LocalDate birthday; - @ApiModelProperty("推广员id 精确匹配") + @Schema(description ="推广员id 精确匹配") private Long spreadUid; - @ApiModelProperty("推广员关联时间 精确匹配") + @Schema(description ="推广员关联时间 精确匹配") private LocalDateTime spreadTime; - @ApiModelProperty("等级 精确匹配") + @Schema(description ="等级 精确匹配") private Integer level; - @ApiModelProperty("用户剩余积分 精确匹配") + @Schema(description ="用户剩余积分 精确匹配") private BigDecimal integral; private String beginTime; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberCartBO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberCartBO.java index f73df0d9d..70bc00989 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberCartBO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberCartBO.java @@ -1,7 +1,6 @@ package com.wzj.soopin.member.domain.bo; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -9,34 +8,34 @@ import lombok.Data; * * @author zcc */ -@ApiModel(description="购物车 查询 对象") +@Schema(description="购物车 查询 对象") @Data public class MemberCartBO { - @ApiModelProperty("0->失效;1->有效 精确匹配") + @Schema(description ="0->失效;1->有效 精确匹配") private Integer status; - @ApiModelProperty("用户ID 精确匹配") + @Schema(description ="用户ID 精确匹配") private Long memberId; - @ApiModelProperty("商品ID 精确匹配") + @Schema(description ="商品ID 精确匹配") private Long productId; - @ApiModelProperty("展示图片 精确匹配") + @Schema(description ="展示图片 精确匹配") private String pic; - @ApiModelProperty("SKU ID 精确匹配") + @Schema(description ="SKU ID 精确匹配") private Long skuId; - @ApiModelProperty("商品名称 精确匹配") + @Schema(description ="商品名称 精确匹配") private String productName; - @ApiModelProperty("商品属性 精确匹配") + @Schema(description ="商品属性 精确匹配") private String spData; - @ApiModelProperty("商品数量 精确匹配") + @Schema(description ="商品数量 精确匹配") private Integer quantity; - @ApiModelProperty("用户手机号") + @Schema(description ="用户手机号") private String phone; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberEditDTO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberEditDTO.java index 8f2e73f97..76a239fd8 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberEditDTO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberEditDTO.java @@ -1,7 +1,7 @@ package com.wzj.soopin.member.domain.bo; import com.fasterxml.jackson.annotation.JsonFormat; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.Max; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotNull; @@ -21,31 +21,31 @@ import java.util.Date; public class MemberEditDTO { - @ApiModelProperty(value = "昵称", required = true) + @Schema(description = "昵称", required = true) @Size(min = 2, max = 20, message = "会员昵称必须为2到20位之间") private String nickName; - @ApiModelProperty(value = "会员地址ID") + @Schema(description = "会员地址ID") private String regionId; - @ApiModelProperty(value = "会员地址") + @Schema(description = "会员地址") private String region; @Min(message = "必须为数字且1为男,0为女", value = 0) @Max(message = "必须为数字且1为男,0为女", value = 1) @NotNull(message = "会员性别不能为空") - @ApiModelProperty(value = "会员性别,1为男,0为女", required = true) + @Schema(description = "会员性别,1为男,0为女", required = true) private Integer sex; @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd") - @ApiModelProperty(value = "会员生日") + @Schema(description = "会员生日") private Date birthday; - @ApiModelProperty(value = "详细地址") + @Schema(description = "详细地址") private String address; - @ApiModelProperty(value = "会员头像") + @Schema(description = "会员头像") private String face; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberLoginInfoBO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberLoginInfoBO.java index 1d66381b4..84950bcbf 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberLoginInfoBO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberLoginInfoBO.java @@ -2,8 +2,7 @@ package com.wzj.soopin.member.domain.bo; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.wzj.soopin.member.domain.po.MemberLoginInfo; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.BaseBO; @@ -14,28 +13,28 @@ import java.time.LocalDateTime; * * @author zcc */ -@ApiModel(description="会员登录记录 查询 对象") +@Schema(description="会员登录记录 查询 对象") @Data public class MemberLoginInfoBO extends BaseBO { - @ApiModelProperty("会员手机号 精确匹配") + @Schema(description ="会员手机号 精确匹配") private String phone; - @ApiModelProperty("会员id 精确匹配") + @Schema(description ="会员id 精确匹配") private Long memberId; - @ApiModelProperty("登录IP地址 精确匹配") + @Schema(description ="登录IP地址 精确匹配") private String ipaddr; - @ApiModelProperty("登录地点 精确匹配") + @Schema(description ="登录地点 精确匹配") private String loginLocation; - @ApiModelProperty("浏览器类型 精确匹配") + @Schema(description ="浏览器类型 精确匹配") private String browser; - @ApiModelProperty("操作系统 精确匹配") + @Schema(description ="操作系统 精确匹配") private String os; - @ApiModelProperty("登陆时间 精确匹配") + @Schema(description ="登陆时间 精确匹配") private LocalDateTime loginTime; private String beginTime; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberWechatBO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberWechatBO.java index d5c368100..90041888d 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberWechatBO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberWechatBO.java @@ -1,7 +1,6 @@ package com.wzj.soopin.member.domain.bo; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.time.LocalDateTime; @@ -11,46 +10,46 @@ import java.time.LocalDateTime; * * @author zcc */ -@ApiModel(description="用户微信信息 查询 对象") +@Schema(description="用户微信信息 查询 对象") @Data public class MemberWechatBO { - @ApiModelProperty("MEMBER_ID 精确匹配") + @Schema(description ="MEMBER_ID 精确匹配") private Long memberId; - @ApiModelProperty("只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段 精确匹配") + @Schema(description ="只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段 精确匹配") private String unionid; - @ApiModelProperty("用户的标识,对当前公众号唯一 精确匹配") + @Schema(description ="用户的标识,对当前公众号唯一 精确匹配") private String openid; - @ApiModelProperty("小程序唯一身份ID 精确匹配") + @Schema(description ="小程序唯一身份ID 精确匹配") private String routineOpenid; - @ApiModelProperty("用户所在的分组ID(兼容旧的用户分组接口) 精确匹配") + @Schema(description ="用户所在的分组ID(兼容旧的用户分组接口) 精确匹配") private Integer groupid; - @ApiModelProperty("用户被打上的标签ID列表 精确匹配") + @Schema(description ="用户被打上的标签ID列表 精确匹配") private String tagidList; - @ApiModelProperty("用户是否订阅该公众号标识 精确匹配") + @Schema(description ="用户是否订阅该公众号标识 精确匹配") private Integer subscribe; - @ApiModelProperty("关注公众号时间 精确匹配") + @Schema(description ="关注公众号时间 精确匹配") private Integer subscribeTime; - @ApiModelProperty("小程序用户会话密匙 精确匹配") + @Schema(description ="小程序用户会话密匙 精确匹配") private String sessionKey; - @ApiModelProperty("token 精确匹配") + @Schema(description ="token 精确匹配") private String accessToken; - @ApiModelProperty("过期时间 精确匹配") + @Schema(description ="过期时间 精确匹配") private Integer expiresIn; - @ApiModelProperty("刷新token 精确匹配") + @Schema(description ="刷新token 精确匹配") private String refreshToken; - @ApiModelProperty("过期时间 精确匹配") + @Schema(description ="过期时间 精确匹配") private LocalDateTime expireTime; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Address.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Address.java index 4af6e18ef..eacd164e8 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Address.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Address.java @@ -1,39 +1,37 @@ package com.wzj.soopin.member.domain.po; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; -import org.dromara.common.mybatis.core.domain.BaseEntity; /** * 地址对象 * */ -@ApiModel(description="地址对象") +@Schema(description="地址对象") @Data @TableName("address") public class Address extends BaseAudit { private static final long serialVersionUID = 1L; - @ApiModelProperty("ID") + @Schema(description ="ID") private Integer id; - @ApiModelProperty("地区邮编") + @Schema(description ="地区邮编") @Excel(name = "地区邮编") private Long code; - @ApiModelProperty("父地区邮编") + @Schema(description ="父地区邮编") @Excel(name = "父地区邮编") private Long parentCode; - @ApiModelProperty("地区名") + @Schema(description ="地区名") @Excel(name = "地区名") private String name; - @ApiModelProperty("地区层级") + @Schema(description ="地区层级") @Excel(name = "地区层级") private Integer level; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Fans.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Fans.java index fe5a9039e..4139a6983 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Fans.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Fans.java @@ -1,15 +1,12 @@ package com.wzj.soopin.member.domain.po; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import org.dromara.common.core.domain.model.BaseAudit; -import org.dromara.common.tenant.core.TenantEntity; - -import java.util.Date; +import org.dromara.common.excel.annotation.Excel; @TableName( "ums_fans") @Data @@ -17,7 +14,7 @@ import java.util.Date; public class Fans extends BaseAudit { - @ApiModelProperty("ID") + @Schema(description ="ID") private Long id; /** @@ -32,12 +29,21 @@ public class Fans extends BaseAudit { /** * 粉丝用户id */ + @Schema(description ="粉丝id") + @Excel(name = "粉丝id") private String fanId; /** * 粉丝是否是vloger的朋友,如果成为朋友,则本表的双方此字段都需要设置为1,如果有一人取关,则两边都需要设置为0 */ - private Integer isFanFriendOfMine; + @Schema(description ="是否是好友") + @Excel(name = "是否是好友") + private Integer friendFlag; + + + @Schema(description ="是否互相关注") + @Excel(name = "是否互相关注") + private Integer bothFriend; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Feedback.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Feedback.java index 8054f2a11..cdbc3ee8c 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Feedback.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Feedback.java @@ -1,12 +1,10 @@ package com.wzj.soopin.member.domain.po; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; -import org.dromara.common.mybatis.core.domain.BaseEntity; import java.time.LocalDateTime; /** @@ -14,41 +12,69 @@ import java.time.LocalDateTime; * * @author zcc */ -@ApiModel(description="意见反馈对象") +@Schema(description="意见反馈对象") @Data @TableName("ums_feedback") public class Feedback extends BaseAudit { private static final long serialVersionUID = 1L; - @ApiModelProperty("ID") + @Schema(description ="ID") private Long id; - @ApiModelProperty("类型") + @Schema(description ="类型") @Excel(name = "类型") private String type; - @ApiModelProperty("具体说明") + @Schema(description ="具体说明") @Excel(name = "具体说明") private String content; - @ApiModelProperty("图片") + @Schema(description ="图片") @Excel(name = "图片") private String images; - @ApiModelProperty("联系电话") + @Schema(description ="联系电话") @Excel(name = "联系电话") private String phone; - @ApiModelProperty("处理状态 0:未处理 1:已处理") + @Schema(description ="处理状态 0:未处理 1:已处理") @Excel(name = "处理状态 0:未处理 1:已处理") - private Integer handleStatus; + private Integer status; - @ApiModelProperty("备注") + @Schema(description ="备注") @Excel(name = "备注") private String remark; - @ApiModelProperty("处理时间") + @Schema(description ="处理时间") @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private LocalDateTime handleTime; + + + @Schema(description ="反馈对象ID") + @Excel(name = "反馈对象ID") + private Long aimId; + + @Schema(description ="反馈分类") + private Long categroy; + + @Schema(description ="会员ID") + @Excel(name = "会员ID") + private String memberId; + + @Schema(description ="处理人") + @Excel(name = "处理人") + private Long handlerId; + + @Schema(description ="处理结果类型 0:文本 1:图片") + @Excel(name = "处理结果类型 0:不予处理 1:已处理") + private Integer resultType; + + @Schema(description ="处理结果") + @Excel(name = "处理结果") + private String resultContent; + + + + } 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 f9009f655..324e0d989 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 @@ -1,14 +1,11 @@ package com.wzj.soopin.member.domain.po; -import cn.dev33.satoken.annotation.SaCheckHttpDigest; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Builder; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; -import org.dromara.common.mybatis.core.domain.BaseEntity; import java.math.BigDecimal; import java.time.LocalDate; @@ -18,7 +15,7 @@ import java.time.LocalDateTime; * * @author zcc */ -@ApiModel(description="会员信息对象") +@Schema(description="会员信息对象") @Data @Builder @TableName("ums_member") @@ -28,92 +25,100 @@ public class Member extends BaseAudit { - @ApiModelProperty("ID") + @Schema(description = "会员id") private Long id; - @ApiModelProperty("用户名") + @Schema(description = "用户名") @Excel(name = "用户名") private String userName; - @ApiModelProperty("昵称") + @Schema(description ="昵称") @Excel(name = "昵称") private String nickname; - @ApiModelProperty("密码") + @Schema(description ="密码") @Excel(name = "密码") private String password; - @ApiModelProperty("加密手机号") + @Schema(description ="加密手机号") private String phoneEncrypted; - @ApiModelProperty("隐藏前三位后四位的手机号") + @Schema(description ="隐藏前三位后四位的手机号") private String phoneHidden; - @ApiModelProperty("用户备注") + @Schema(description ="用户备注") @Excel(name = "用户备注") private String mark; - @ApiModelProperty("帐号启用状态:0->禁用;1->启用") + @Schema(description ="帐号启用状态:0->禁用;1->启用") @Excel(name = "帐号启用状态:0->禁用;1->启用") private Integer status; - @ApiModelProperty("头像") + @Schema(description ="头像") @Excel(name = "头像") private String avatar; - @ApiModelProperty("性别:0->未知;1->男;2->女") + @Schema(description ="性别:0->未知;1->男;2->女") @Excel(name = "性别:0->未知;1->男;2->女") private Integer gender; - @ApiModelProperty("用户所在城市") + @Schema(description ="用户所在城市") @Excel(name = "用户所在城市") private String city; - @ApiModelProperty("用户所在省份") + @Schema(description ="用户所在省份") @Excel(name = "用户所在省份") private String province; - @ApiModelProperty("用户所在国家") + @Schema(description ="用户所在国家") @Excel(name = "用户所在国家") private String country; - @ApiModelProperty("公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注") + @Schema(description ="公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注") @Excel(name = "公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注") private String remark; - @ApiModelProperty("生日") + @Schema(description ="生日") @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd") private LocalDate birthday; - @ApiModelProperty("推广员id") + @Schema(description ="推广员id") @Excel(name = "推广员id") private Long spreadUid; - @ApiModelProperty("推广员关联时间") + @Schema(description ="推广员关联时间") @Excel(name = "推广员关联时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private LocalDateTime spreadTime; - @ApiModelProperty("等级") + @Schema(description ="等级") @Excel(name = "等级") private Integer level; - @ApiModelProperty("用户剩余积分") + @Schema(description ="用户剩余积分") @Excel(name = "用户剩余积分") private BigDecimal integral; - @ApiModelProperty("im签名") + @Schema(description ="im签名") @Excel(name = "im签名") private String userSig; // 添加 UserSig 属性 - @ApiModelProperty("发布视频") + @Schema(description ="发布视频") @Excel(name = "发布视频") private Integer vlogCount; - @ApiModelProperty("粉丝数") + @Schema(description ="粉丝数") @Excel(name = "粉丝数") private Integer fansCount; - @ApiModelProperty("关注数") + @Schema(description ="关注数") @Excel(name = "关注数") private Integer followCount; + @Schema(description ="好友数") + @Excel(name = "好友数") + private Integer friendsCount; + + @Schema(description ="微信openId") + @Excel(name = "微信openId") + private Long openId; + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberAccount.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberAccount.java index eb3716e6f..724eadb7b 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberAccount.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberAccount.java @@ -3,38 +3,43 @@ package com.wzj.soopin.member.domain.po; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; -import org.dromara.common.mybatis.core.domain.BaseEntity; import java.math.BigDecimal; -import java.time.LocalDateTime; /** * 会员账户表对象 ums_member_account * * @author zcc */ -@ApiModel(description="会员账户表对象") +@Schema(description="会员账户表对象") @Data -@TableName("ums_member_account") +@TableName("ums_account") public class MemberAccount extends BaseAudit { + + private static final long serialVersionUID = 1L; - @ApiModelProperty("MEMBER_ID") + @Schema(description ="MEMBER_ID") @TableId(value="member_id", type = IdType.ASSIGN_ID) private Long memberId; - @ApiModelProperty("积分余额") + @Schema(description ="积分余额") @Excel(name = "积分余额") private BigDecimal integralBalance; - @ApiModelProperty("历史总共积分") + @Schema(description ="历史总共积分") @Excel(name = "历史总共积分") private BigDecimal totalIntegralBalance; + @Schema(description ="余额") + @Excel(name = "余额") + private BigDecimal moneyBalance; + + + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberAddress.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberAddress.java index 6b84b0aa4..3101e5eef 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberAddress.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberAddress.java @@ -1,81 +1,77 @@ package com.wzj.soopin.member.domain.po; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; -import org.dromara.common.mybatis.core.domain.BaseEntity; /** * 会员收货地址对象 ums_member_address * * @author zcc */ -@ApiModel(description="会员收货地址对象") +@Schema(description="会员收货地址对象") @Data @TableName("ums_member_address") public class MemberAddress extends BaseAudit { private static final long serialVersionUID = 1L; - @ApiModelProperty("ID") + @Schema(description ="ID") private Long id; - @ApiModelProperty("MEMBER_ID") + @Schema(description ="MEMBER_ID") @Excel(name = "MEMBER_ID") private Long memberId; - @ApiModelProperty("收货人名称") + @Schema(description ="收货人名称") @Excel(name = "收货人名称") private String name; - @ApiModelProperty("隐藏前三位后四位的手机号") + @Schema(description ="隐藏前三位后四位的手机号") @Excel(name = "隐藏前三位后四位的手机号") private String phoneHidden; - @ApiModelProperty("加密的手机号") + @Schema(description ="加密的手机号") @Excel(name = "加密的手机号") private String phoneEncrypted; - @ApiModelProperty("是否为默认") + @Schema(description ="是否为默认") @Excel(name = "是否为默认") - private Integer defaultStatus; + private Integer defaultFlag; - @ApiModelProperty("邮政编码") + @Schema(description ="邮政编码") @Excel(name = "邮政编码") private String postCode; - @ApiModelProperty("省份/直辖市") + @Schema(description ="省份/直辖市") @Excel(name = "省份/直辖市") private String province; - @ApiModelProperty("城市") + @Schema(description ="城市") @Excel(name = "城市") private String city; - @ApiModelProperty("区") + @Schema(description ="区") @Excel(name = "区") private String district; - @ApiModelProperty("省份/直辖市id") + @Schema(description ="省份/直辖市id") @Excel(name = "省份/直辖市id") private Long provinceId; - @ApiModelProperty("城市id") + @Schema(description ="城市id") @Excel(name = "城市id") private Long cityId; - @ApiModelProperty("区id") + @Schema(description ="区id") @Excel(name = "区id") private Long districtId; - @ApiModelProperty("详细地址(街道)") + @Schema(description ="详细地址(街道)") @Excel(name = "详细地址(街道)") private String detailAddress; - @ApiModelProperty("是否默认") - @Excel(name = "是否默认") - private Integer isDefault; + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberCart.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberCart.java index 1d5fa178f..44e4fda1b 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberCart.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberCart.java @@ -1,56 +1,54 @@ package com.wzj.soopin.member.domain.po; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; -import org.dromara.common.mybatis.core.domain.BaseEntity; /** * 购物车对象 ums_member_cart * * @author zcc */ -@ApiModel(description="购物车对象") +@Schema(description="购物车对象") @Data @TableName("ums_member_cart") public class MemberCart extends BaseAudit { private static final long serialVersionUID = 1L; - @ApiModelProperty("购物车表ID") + @Schema(description ="购物车表ID") private Long id; - @ApiModelProperty("0->失效;1->有效") + @Schema(description ="0->失效;1->有效") @Excel(name = "0->失效;1->有效") private Integer status; - @ApiModelProperty("用户ID") + @Schema(description ="用户ID") @Excel(name = "用户ID") private Long memberId; - @ApiModelProperty("商品ID") + @Schema(description ="商品ID") @Excel(name = "商品ID") private Long productId; - @ApiModelProperty("展示图片") + @Schema(description ="展示图片") @Excel(name = "展示图片") private String pic; - @ApiModelProperty("SKU ID") + @Schema(description ="SKU ID") @Excel(name = "SKU ID") private Long skuId; - @ApiModelProperty("PRODUCT_NAME") + @Schema(description ="PRODUCT_NAME") @Excel(name = "PRODUCT_NAME") private String productName; - @ApiModelProperty("商品属性") + @Schema(description ="商品属性") @Excel(name = "商品属性") private String spData; - @ApiModelProperty("商品数量") + @Schema(description ="商品数量") @Excel(name = "商品数量") private Integer quantity; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberLoginInfo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberLoginInfo.java index e73861670..e2c0bd818 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberLoginInfo.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberLoginInfo.java @@ -1,8 +1,7 @@ package com.wzj.soopin.member.domain.po; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.excel.annotation.Excel; @@ -12,40 +11,40 @@ import java.time.LocalDateTime; * * @author zcc */ -@ApiModel(description="会员登录记录对象") +@Schema(description="会员登录记录对象") @Data @TableName("ums_member_login_info") public class MemberLoginInfo { private static final long serialVersionUID = 1L; - @ApiModelProperty("ID") + @Schema(description ="ID") private Long id; - @ApiModelProperty("会员手机号") + @Schema(description ="会员手机号") @Excel(name = "会员手机号") private String phone; - @ApiModelProperty("会员id") + @Schema(description ="会员id") @Excel(name = "会员id") private Long memberId; - @ApiModelProperty("登录IP地址") + @Schema(description ="登录IP地址") @Excel(name = "登录IP地址") private String ipaddr; - @ApiModelProperty("登录地点") + @Schema(description ="登录地点") @Excel(name = "登录地点") private String loginLocation; - @ApiModelProperty("浏览器类型") + @Schema(description ="浏览器类型") @Excel(name = "浏览器类型") private String browser; - @ApiModelProperty("操作系统") + @Schema(description ="操作系统") @Excel(name = "操作系统") private String os; - @ApiModelProperty("登陆时间") + @Schema(description ="登陆时间") @Excel(name = "登陆时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private LocalDateTime loginTime; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberWechat.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberWechat.java index c776ed44a..33d345c78 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberWechat.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberWechat.java @@ -1,12 +1,10 @@ package com.wzj.soopin.member.domain.po; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; -import org.dromara.common.mybatis.core.domain.BaseEntity; import java.time.LocalDateTime; /** @@ -14,64 +12,64 @@ import java.time.LocalDateTime; * * @author zcc */ -@ApiModel(description="用户微信信息对象") +@Schema(description="用户微信信息对象") @Data @TableName("ums_member_wechat") public class MemberWechat extends BaseAudit { private static final long serialVersionUID = 1L; - @ApiModelProperty("ID") + @Schema(description ="ID") private Long id; - @ApiModelProperty("MEMBER_ID") + @Schema(description ="MEMBER_ID") @Excel(name = "MEMBER_ID") private Long memberId; - @ApiModelProperty("只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段") + @Schema(description ="只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段") @Excel(name = "只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段") private String unionid; - @ApiModelProperty("用户的标识,对当前公众号唯一") + @Schema(description ="用户的标识,对当前公众号唯一") @Excel(name = "用户的标识,对当前公众号唯一") private String openid; - @ApiModelProperty("小程序唯一身份ID") + @Schema(description ="小程序唯一身份ID") @Excel(name = "小程序唯一身份ID") private String routineOpenid; - @ApiModelProperty("用户所在的分组ID(兼容旧的用户分组接口)") + @Schema(description ="用户所在的分组ID(兼容旧的用户分组接口)") @Excel(name = "用户所在的分组ID", readConverterExp = "兼=容旧的用户分组接口") private Integer groupid; - @ApiModelProperty("用户被打上的标签ID列表") + @Schema(description ="用户被打上的标签ID列表") @Excel(name = "用户被打上的标签ID列表") private String tagidList; - @ApiModelProperty("用户是否订阅该公众号标识") + @Schema(description ="用户是否订阅该公众号标识") @Excel(name = "用户是否订阅该公众号标识") private Integer subscribe; - @ApiModelProperty("关注公众号时间") + @Schema(description ="关注公众号时间") @Excel(name = "关注公众号时间") private Integer subscribeTime; - @ApiModelProperty("小程序用户会话密匙") + @Schema(description ="小程序用户会话密匙") @Excel(name = "小程序用户会话密匙") private String sessionKey; - @ApiModelProperty("token") + @Schema(description ="token") @Excel(name = "token") private String accessToken; - @ApiModelProperty("过期时间") + @Schema(description ="过期时间") @Excel(name = "过期时间") private Integer expiresIn; - @ApiModelProperty("刷新token") + @Schema(description ="刷新token") @Excel(name = "刷新token") private String refreshToken; - @ApiModelProperty("过期时间") + @Schema(description ="过期时间") @Excel(name = "过期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private LocalDateTime expireTime; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/FansVO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/FansVO.java index c447ff435..aab928323 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/FansVO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/FansVO.java @@ -1,19 +1,40 @@ package com.wzj.soopin.member.domain.vo; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; +import org.dromara.common.excel.annotation.Excel; @Data @AllArgsConstructor @NoArgsConstructor @ToString +@Schema(description ="粉丝") public class FansVO { + + + @Schema(description ="博主id") + @Excel(name = "博主id") + private String vlogerId; + + @Schema(description ="粉丝id") + @Excel(name = "粉丝id") private String fanId; + @Schema(description ="昵称") + @Excel(name = "昵称") private String nickname; + @Schema(description ="头像") + @Excel(name = "头像") private String face; - private boolean isFriend = false; + @Schema(description ="是否是好友") + @Excel(name = "是否是好友") + private boolean friendFlag = false; + @Schema(description ="是否互相关注") + @Excel(name = "是否互相关注") private int bothFriend; + @Schema(description ="创建时间") + @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private String createdTime; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/FeedbackVO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/FeedbackVO.java index 7ad902435..a8cdb2d33 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/FeedbackVO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/FeedbackVO.java @@ -1,6 +1,7 @@ package com.wzj.soopin.member.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.excel.annotation.Excel; @@ -11,6 +12,7 @@ import java.time.LocalDateTime; * @author zcc */ @Data +@Schema(description ="反馈") public class FeedbackVO { /** ID */ private Long id; @@ -40,4 +42,27 @@ public class FeedbackVO { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private LocalDateTime handleTime; + + @Schema(description ="反馈对象ID") + @Excel(name = "反馈对象ID") + private Long aimId; + + @Schema(description ="反馈分类") + private Long categroy; + + @Schema(description ="会员ID") + @Excel(name = "会员ID") + private String memberId; + + @Schema(description ="处理人") + @Excel(name = "处理人") + private Long handlerId; + + @Schema(description ="处理结果类型 0:文本 1:图片") + @Excel(name = "处理结果类型 0:不予处理 1:已处理") + private Integer resultType; + + @Schema(description ="处理结果") + @Excel(name = "处理结果") + private String resultContent; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberDataStatisticsVO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberDataStatisticsVO.java index 931ae00c1..8708cf79e 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberDataStatisticsVO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberDataStatisticsVO.java @@ -1,20 +1,19 @@ package com.wzj.soopin.member.domain.vo; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; @Data -@ApiModel("会员下单数据统计对象") +@Schema(description ="会员下单数据统计对象") public class MemberDataStatisticsVO { - @ApiModelProperty("购物车数") + @Schema(description ="购物车数") private Integer cartCount; - @ApiModelProperty("订单数") + @Schema(description ="订单数") private Integer orderCount; - @ApiModelProperty("下单金额") + @Schema(description ="下单金额") private BigDecimal orderAmount; - @ApiModelProperty("售后数") + @Schema(description ="售后数") private Integer aftersaleCount; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberVO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberVO.java index 86d927154..883e1bbbf 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberVO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberVO.java @@ -1,7 +1,7 @@ package com.wzj.soopin.member.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.excel.annotation.Excel; @@ -14,6 +14,7 @@ import java.time.LocalDateTime; * @author zcc */ @Data +@Schema(description = "会员信息") public class MemberVO { /** ID */ private Long id; @@ -73,11 +74,20 @@ public class MemberVO { @Excel(name = "userName") private String userName; + @Schema(description ="视频数") + @Excel(name = "视频数") private Integer vlogCount; - @ApiModelProperty("im签名") - @Excel(name = "im签名") + + @Schema(description ="粉丝数") + @Excel(name = "粉丝数") private Integer fansCount; - @ApiModelProperty("im签名") - @Excel(name = "im签名") + + @Schema(description ="关注数") + @Excel(name = "关注数") private Integer followCount; + + @Schema(description ="好友数") + @Excel(name = "好友数") + private Integer friendsCount; + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java index 95258febb..d1d7f0957 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java @@ -40,11 +40,13 @@ public class FansServiceImpl extends ServiceImpl implements IF // 判断对方是否关注我,如果关注我,那么双方都要互为朋友关系 Fans vloger = queryFansRelationship(vlogerId, myId); if (vloger != null) { - fans.setIsFanFriendOfMine(YesOrNo.YES.type); - vloger.setIsFanFriendOfMine(YesOrNo.YES.type); + fans.setFriendFlag(YesOrNo.YES.type); + fans.setBothFriend(YesOrNo.YES.type); + vloger.setFriendFlag(YesOrNo.YES.type); + vloger.setBothFriend(YesOrNo.YES.type); baseMapper.updateById(vloger); } else { - fans.setIsFanFriendOfMine(YesOrNo.NO.type); + fans.setFriendFlag(YesOrNo.NO.type); } baseMapper.insert(fans); @@ -68,10 +70,10 @@ public class FansServiceImpl extends ServiceImpl implements IF public void doCancel(String myId, String vlogerId) { // 判断我们是否朋友关系,如果是,则需要取消双方的关系 Fans fan = queryFansRelationship(myId, vlogerId); - if (fan != null && fan.getIsFanFriendOfMine() == YesOrNo.YES.type) { + if (fan != null && fan.getFriendFlag() == YesOrNo.YES.type) { // 抹除双方的朋友关系,自己的关系删除即可 Fans pendingFan = queryFansRelationship(vlogerId, myId); - pendingFan.setIsFanFriendOfMine(YesOrNo.NO.type); + pendingFan.setFriendFlag(YesOrNo.NO.type); baseMapper.updateById(pendingFan); } @@ -101,7 +103,7 @@ public class FansServiceImpl extends ServiceImpl implements IF String relationship = redisCache.getCacheObject( CacheConstants.MEMBER_FANS + ":" + myId + ":" + f.getFanId()); if (StringUtils.isNotBlank(relationship) && relationship.equalsIgnoreCase("1")) { - f.setFriend(true); + f.setFriendFlag(true); } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FeedbackServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FeedbackServiceImpl.java index 5abd6ce83..fb26f7942 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FeedbackServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FeedbackServiceImpl.java @@ -78,7 +78,7 @@ public class FeedbackServiceImpl extends ServiceImpl i public Integer changeStatus(Feedback dto) { UpdateWrapper wrapper = new UpdateWrapper<>(); wrapper.eq("id", dto.getId()); - wrapper.set("handle_status", dto.getHandleStatus()) + wrapper.set("handle_status", dto.getStatus()) .set("handle_time",LocalDateTime.now()); return baseMapper.update(null, wrapper); } diff --git a/ruoyi-modules/ruoyi-order/pom.xml b/ruoyi-modules/ruoyi-order/pom.xml index b80721b67..0984f34d1 100644 --- a/ruoyi-modules/ruoyi-order/pom.xml +++ b/ruoyi-modules/ruoyi-order/pom.xml @@ -97,18 +97,7 @@ org.dromara ruoyi-common-sse - - io.swagger - swagger-annotations - 1.6.2 - compile - - - - - - - + org.dromara ruoyi-member From 7212f67023431a1cfc30fb1d4a3c8f0b1a7e04ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BA=86=E7=A5=A5?= Date: Sat, 14 Jun 2025 10:04:41 +0800 Subject: [PATCH 4/5] =?UTF-8?q?[fix]=E4=BF=AE=E6=94=B9=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=92=8C=E8=B4=A6=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-dev.yml | 2 +- .../src/main/resources/application.yml | 7 +- .../dromara/common/core/domain/BaseBO.java | 14 +++ .../common/redis/redis/RedisCache.java | 2 + .../security/config/SecurityConfig.java | 2 +- .../member/controller/FansController.java | 68 ++++++------ .../member/controller/FeedbackController.java | 12 ++- .../MemberAccountChangeRecordController.java | 100 ++++++++++++++++++ .../controller/MemberAccountController.java | 10 +- .../member/controller/MemberController.java | 8 +- .../controller/MemberLoginInfoController.java | 11 +- .../MemberAccountChangeRecordConvert.java | 20 ++++ .../soopin/member/domain/bo/FeedbackBO.java | 67 ++++++++++-- .../member/domain/bo/MemberAccountBO.java | 20 +++- .../bo/MemberAccountChangeRecordBO.java | 61 +++++++++++ .../wzj/soopin/member/domain/bo/MemberBO.java | 28 +++-- .../member/domain/bo/MemberLoginInfoBO.java | 4 - .../wzj/soopin/member/domain/po/Address.java | 7 -- .../com/wzj/soopin/member/domain/po/Fans.java | 5 +- .../wzj/soopin/member/domain/po/Feedback.java | 21 ++-- .../wzj/soopin/member/domain/po/Member.java | 29 +---- .../member/domain/po/MemberAccount.java | 15 +-- .../domain/po/MemberAccountChangeRecord.java | 57 ++++++++++ .../soopin/member/domain/po/MemberCart.java | 2 + .../member/domain/po/MemberLoginInfo.java | 2 + .../soopin/member/domain/vo/FeedbackVO.java | 19 +++- .../vo/MemberAccountChangeRecordVO.java | 61 +++++++++++ .../member/domain/vo/MemberAccountVO.java | 19 +++- .../wzj/soopin/member/domain/vo/MemberVO.java | 95 ++++++++++++----- .../member/enums/FeedbackAimTypeEnums.java | 22 ++++ .../member/enums/FeedbackReasonEnums.java | 42 ++++++++ .../MemberAccountChangeRecordMapper.java | 18 ++++ .../member/service/IFeedbackService.java | 5 + .../IMemberAccountChangeRecordService.java | 9 ++ .../member/service/IMemberAccountService.java | 3 + .../soopin/member/service/IMemberService.java | 11 +- .../service/impl/FeedbackServiceImpl.java | 91 +++++++++------- .../MemberAccountChangeRecordServiceImpl.java | 31 ++++++ .../impl/MemberAccountServiceImpl.java | 13 +-- .../service/impl/MemberServiceImpl.java | 24 ++++- .../soopin/member/util/MemberCacheHelper.java | 33 ++++++ 41 files changed, 841 insertions(+), 229 deletions(-) create mode 100644 ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAccountChangeRecordController.java create mode 100644 ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/convert/MemberAccountChangeRecordConvert.java create mode 100644 ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAccountChangeRecordBO.java create mode 100644 ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberAccountChangeRecord.java create mode 100644 ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberAccountChangeRecordVO.java create mode 100644 ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/enums/FeedbackAimTypeEnums.java create mode 100644 ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/enums/FeedbackReasonEnums.java create mode 100644 ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/MemberAccountChangeRecordMapper.java create mode 100644 ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberAccountChangeRecordService.java create mode 100644 ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberAccountChangeRecordServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/util/MemberCacheHelper.java diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index 9d0be9a11..f2e3a6360 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -92,7 +92,7 @@ spring: # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟 maxLifetime: 1800000 # 多久检查一次连接的活性 - keepaliveTime: 30000 + keepaliveTime: 300000 --- # redis 单机配置(单机与集群只能开启一个另一个需要注释掉) spring.data: diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index cf76a1671..55c5a5415 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -141,9 +141,11 @@ tenant: - ums_member - ums_member_address - ums_feedback - - ums_member_account - ums_member_login_info - - ums_member_cart + - ums_cart + - ums_account + - ums_account_change_record + - ums_fans - oms_aftersale - oms_aftersale_item - oms_order @@ -158,6 +160,7 @@ tenant: - pms_sku - pms_sku_snapshot + # MyBatisPlus配置 # https://baomidou.com/config/ mybatis-plus: diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/BaseBO.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/BaseBO.java index 2cf6a3907..23709360a 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/BaseBO.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/BaseBO.java @@ -3,12 +3,26 @@ package org.dromara.common.core.domain; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; import java.sql.Wrapper; +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.Map; +@Data public class BaseBO { + + + protected LocalDateTime beginTime; + + protected LocalDateTime endTime; + + + protected Map orderBy = new HashMap<>(); + /** * bo转换成queryWrapper * diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/redis/RedisCache.java b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/redis/RedisCache.java index 727a0e44c..165171a53 100644 --- a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/redis/RedisCache.java +++ b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/redis/RedisCache.java @@ -228,4 +228,6 @@ public class RedisCache { return redisTemplate.keys(pattern); } + + } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/org/dromara/common/security/config/SecurityConfig.java b/ruoyi-common/ruoyi-common-security/src/main/java/org/dromara/common/security/config/SecurityConfig.java index 97d06bfef..dd3c87025 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/org/dromara/common/security/config/SecurityConfig.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/org/dromara/common/security/config/SecurityConfig.java @@ -55,7 +55,7 @@ public class SecurityConfig implements WebMvcConfigurer { HttpServletRequest request = ServletUtils.getRequest(); // 检查是否登录 是否有token try { - StpUtil.checkLogin(); +// StpUtil.checkLogin(); } catch (NotLoginException e) { if (request.getRequestURI().contains("sse")) { throw new SseException(e.getMessage(), e.getCode()); diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FansController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FansController.java index 31e1dd6fe..2ff31844a 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FansController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FansController.java @@ -1,12 +1,19 @@ package com.wzj.soopin.member.controller; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.wzj.soopin.member.domain.vo.FansVO; import com.wzj.soopin.member.service.IFansService; import com.wzj.soopin.member.service.IMemberService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.R; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import java.util.ArrayList; + @Slf4j @RequestMapping("/ums/fans") @RestController @@ -82,31 +89,31 @@ public class FansController { //// // return GraceJSONResult.ok(); // } + +// @PostMapping("cancel") +// public GraceJSONResult cancel(@RequestParam String myId, +// @RequestParam String vlogerId) { +// // 判断两个id不能为空 +// if (StringUtils.isBlank(myId) || StringUtils.isBlank(vlogerId)) { +// return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_ERROR); +// } +// // 是否已经存在关系 +// Boolean flow = fansService.queryDoIFollowVloger(myId,vlogerId); +// if(!flow){ +// return GraceJSONResult.errorCustom(ResponseStatusEnum.FANS_INFO_UPDATED_ISFLOW_EXIST_ERROR); +// } +// // 删除业务的执行 +// fansService.doCancel(myId, vlogerId); // -//// @PostMapping("cancel") -//// public GraceJSONResult cancel(@RequestParam String myId, -//// @RequestParam String vlogerId) { -//// // 判断两个id不能为空 -//// if (StringUtils.isBlank(myId) || StringUtils.isBlank(vlogerId)) { -//// return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_ERROR); -//// } -//// // 是否已经存在关系 -//// Boolean flow = fansService.queryDoIFollowVloger(myId,vlogerId); -//// if(!flow){ -//// return GraceJSONResult.errorCustom(ResponseStatusEnum.FANS_INFO_UPDATED_ISFLOW_EXIST_ERROR); -//// } -//// // 删除业务的执行 -//// fansService.doCancel(myId, vlogerId); -//// -//// // 博主的粉丝-1,我的关注-1 -//// redis.decrement(BaseInfoProperties.REDIS_MY_FOLLOWS_COUNTS + ":" + myId, 1); -//// redis.decrement(BaseInfoProperties.REDIS_MY_FANS_COUNTS + ":" + vlogerId, 1); -//// -//// // 我和博主的关联关系,依赖redis,不要存储数据库,避免db的性能瓶颈 -//// redis.del(BaseInfoProperties.REDIS_FANS_AND_VLOGGER_RELATIONSHIP + ":" + myId + ":" + vlogerId); -//// -//// return GraceJSONResult.ok(); -//// } +// // 博主的粉丝-1,我的关注-1 +// redis.decrement(BaseInfoProperties.REDIS_MY_FOLLOWS_COUNTS + ":" + myId, 1); +// redis.decrement(BaseInfoProperties.REDIS_MY_FANS_COUNTS + ":" + vlogerId, 1); +// +// // 我和博主的关联关系,依赖redis,不要存储数据库,避免db的性能瓶颈 +// redis.del(BaseInfoProperties.REDIS_FANS_AND_VLOGGER_RELATIONSHIP + ":" + myId + ":" + vlogerId); +// +// return GraceJSONResult.ok(); +// } // // @GetMapping("queryBlockVloger") // public GraceJSONResult queryBlockVloger(@RequestParam String myId, @@ -268,15 +275,6 @@ public class FansController { // page, // pageSize)); // } -// -// @GetMapping("queryMyFans") -// public GraceJSONResult queryMyFans(@RequestParam String myId, -// @RequestParam Integer page, -// @RequestParam Integer pageSize) { -// return GraceJSONResult.ok( -// fansService.queryMyFans( -// myId, -// page, -// pageSize)); -// } + + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FeedbackController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FeedbackController.java index a8b2de3a5..7065e1fa4 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FeedbackController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FeedbackController.java @@ -7,6 +7,7 @@ import com.wzj.soopin.member.convert.FeedbackConvert; import com.wzj.soopin.member.domain.bo.FeedbackBO; import com.wzj.soopin.member.domain.po.Feedback; import com.wzj.soopin.member.domain.vo.FeedbackVO; +import com.wzj.soopin.member.domain.vo.MemberAccountVO; import com.wzj.soopin.member.service.IFeedbackService; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -34,7 +35,7 @@ public class FeedbackController { @Tag(name ="查询意见反馈列表") @PostMapping("/list") - public R> list(@RequestBody FeedbackBO query, Page page) { + public R> list(@RequestBody FeedbackBO query, @RequestBody Page page) { Page feedBackPage= service.page(page,query.toWrapper()); return R.ok(convert.toVO( feedBackPage)); } @@ -54,6 +55,11 @@ public class FeedbackController { return R.ok(service.save(convert.toPo(feedback))); } + @Tag(name ="获取详细信息") + @GetMapping(value = "/{id}") + public R getInfo(@PathVariable("id") Long id) { + return R.ok( service.selectById(id)); + } @Tag(name =("修改状态")) @Log(title = "意见反馈", businessType = BusinessType.UPDATE) @@ -66,7 +72,7 @@ public class FeedbackController { @Tag(name ="删除意见反馈") @Log(title = "意见反馈", businessType = BusinessType.DELETE) @DeleteMapping("/{id}") - public ResponseEntity remove(@PathVariable Long id) { - return ResponseEntity.ok(service.removeById(id)); + public R remove(@PathVariable Long id) { + return R.ok(service.removeById(id)); } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAccountChangeRecordController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAccountChangeRecordController.java new file mode 100644 index 000000000..91f540657 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAccountChangeRecordController.java @@ -0,0 +1,100 @@ +package com.wzj.soopin.member.controller; + + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.wzj.soopin.member.convert.MemberAccountChangeRecordConvert; +import com.wzj.soopin.member.convert.MemberConvert; +import com.wzj.soopin.member.domain.bo.MemberAccountChangeRecordBO; +import com.wzj.soopin.member.domain.bo.MemberBO; +import com.wzj.soopin.member.domain.po.Member; +import com.wzj.soopin.member.domain.po.MemberAccountChangeRecord; +import com.wzj.soopin.member.domain.vo.MemberAccountChangeRecordVO; +import com.wzj.soopin.member.domain.vo.MemberDataStatisticsVO; +import com.wzj.soopin.member.domain.vo.MemberVO; +import com.wzj.soopin.member.service.IMemberAccountChangeRecordService; +import com.wzj.soopin.member.service.IMemberService; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 会员信息Controller + * + * @author zcc + * @date 2022-11-28 + */ +@Tag(name = "会员账户变动接口列表") +@RequestMapping("/ums/account/change/record") +@RestController +@RequiredArgsConstructor +public class MemberAccountChangeRecordController extends BaseController { + private final IMemberAccountChangeRecordService service; + + private final MemberAccountChangeRecordConvert convert; + + + @Tag(name = "查询账户变动列表") + @SaCheckPermission("ums:accountchange:list") + @PostMapping("list") + public R> list(@RequestBody MemberAccountChangeRecordBO bo, + Page page) { + Page memberPage = service.page(page,bo.toWrapper()); + return R.ok(convert.toVO(memberPage)); + } + + @Tag(name ="导出变动记录") + @SaCheckPermission("ums:accountchange:export") + @Log(title = "会员信息", businessType = BusinessType.EXPORT) + @PostMapping("export") + public ResponseEntity export(MemberAccountChangeRecordBO query) { + List list = service.list(query.toWrapper()); + ExcelUtil util = new ExcelUtil<>(MemberAccountChangeRecordVO.class); + return ResponseEntity.ok(util.writeExcel(convert.toVO(list), "会员变动记录")); + } + + @Tag(name ="获取变动记录") + @SaCheckPermission("ums:accountchange:query") + @GetMapping(value = "{id}") + public R getInfo(@PathVariable("id") Long id) { + return R.ok(convert.toVO(service.getById(id))); + } + + @Tag(name ="新增变动记录") + @SaCheckPermission("'ums:accountchange:add") + @Log(title = "新增变动记录", businessType = BusinessType.INSERT) + @PostMapping("add") + public R add(@RequestBody MemberAccountChangeRecordBO member) { + return R.ok(service.save(convert.toPo(member))); + } + + @Tag(name ="修改变动记录") + @SaCheckPermission("ums:accountchange:edit") + @Log(title = "修改变动记录", businessType = BusinessType.UPDATE) + @PostMapping("update") + public R edit(@RequestBody MemberAccountChangeRecordBO member) { + return R.ok(service.updateById(convert.toPo(member))); + } + + + + @Tag(name ="删除变动记录") + @SaCheckPermission("ums:accountchange:remove") + @Log(title = "删除变动记录", businessType = BusinessType.DELETE) + @DeleteMapping("{id}") + public R remove(@PathVariable Long id) { + return R.ok(service.removeById(id)); + } + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAccountController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAccountController.java index 69f9c2974..783157be4 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAccountController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberAccountController.java @@ -25,7 +25,7 @@ import java.util.List; */ @Tag(name ="会员账户表接口列表") @RestController -@RequestMapping("/ums/memberAccount") +@RequestMapping("/ums/member/account") @RequiredArgsConstructor public class MemberAccountController { @@ -34,8 +34,8 @@ public class MemberAccountController { @Tag(name ="查询会员账户表列表") @PostMapping("/list") - public R> list(@RequestBody MemberAccountBO query, IPage page) { - Page list = (Page) service.page(page,query.toWrapper() ); + public R> list(@RequestBody MemberAccountBO query, Page page) { + Page list = service.page(page,query.toWrapper() ); return R.ok(convert.toVO(list)); } @@ -50,8 +50,8 @@ public class MemberAccountController { @Tag(name ="获取会员账户表详细信息") @GetMapping(value = "/{memberId}") - public ResponseEntity getInfo(@PathVariable("memberId") Long memberId) { - return ResponseEntity.ok(service.getById(memberId)); + public ResponseEntity getInfo(@PathVariable("memberId") Long memberId) { + return ResponseEntity.ok(convert.toVO(service.getById(memberId))); } @Tag(name ="新增会员账户表") diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberController.java index 39eac408e..2810a4883 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberController.java @@ -84,8 +84,8 @@ public class MemberController extends BaseController { @SaCheckPermission("ums:member:edit") @Log(title = "会员备注信息", businessType = BusinessType.UPDATE) @PostMapping("mark/update") - public ResponseEntity editMark(@RequestBody Member member) { - return ResponseEntity.ok(service.updateMark(member)); + public R editMark(@RequestBody MemberBO member) { + return R.ok(service.updateMark(member)); } @Tag(name ="删除会员信息") @@ -99,8 +99,8 @@ public class MemberController extends BaseController { @Tag(name =("修改会员账户状态")) @Log(title = "会员信息", businessType = BusinessType.UPDATE) @PostMapping("status/change") - public ResponseEntity changeStatus(@RequestBody ChangeMemberStatusForm form){ - return ResponseEntity.ok(service.changeStatus(form)); + public R changeStatus(@RequestBody MemberBO memberBO){ + return R.ok(service.changeStatus(memberBO)); } @Tag(name ="会员手机号解密") diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberLoginInfoController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberLoginInfoController.java index 7964e3d4b..e2603312d 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberLoginInfoController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/MemberLoginInfoController.java @@ -51,7 +51,16 @@ public class MemberLoginInfoController extends BaseController { return R.ok(util.writeExcel(convert.toVO(list), "会员登录记录数据")); } - @Tag(name ="获取会员登录记录详细信息") + + @Tag(name ="导出会员登录记录列表") + @SaCheckPermission("ums:memberlogininfo:export") + @Log(title = "会员登录记录", businessType = BusinessType.EXPORT) + @PostMapping("add") + public R add(@RequestBody MemberLoginInfoBO bo) { + return R.ok(service.save(convert.toPo(bo))); + } + + @Tag(name ="获取会员登录记录详细信息") @SaCheckPermission("ums:memberlogininfo:query") @GetMapping(value = "{id}") public R getInfo(@PathVariable("id") Long id) { diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/convert/MemberAccountChangeRecordConvert.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/convert/MemberAccountChangeRecordConvert.java new file mode 100644 index 000000000..bf584b814 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/convert/MemberAccountChangeRecordConvert.java @@ -0,0 +1,20 @@ +package com.wzj.soopin.member.convert; + +import com.wzj.soopin.member.domain.bo.MemberAccountBO; +import com.wzj.soopin.member.domain.bo.MemberAccountChangeRecordBO; +import com.wzj.soopin.member.domain.po.MemberAccount; +import com.wzj.soopin.member.domain.po.MemberAccountChangeRecord; +import com.wzj.soopin.member.domain.vo.MemberAccountChangeRecordVO; +import com.wzj.soopin.member.domain.vo.MemberAccountVO; +import org.dromara.common.web.core.BaseConverter; +import org.mapstruct.Mapper; + +/** + * 会员账户表 DO <=> DTO <=> VO / BO / Query + * + * @author zcc + */ +@Mapper(componentModel = "spring",uses = BaseConverter.class) +public interface MemberAccountChangeRecordConvert extends BaseConverter { + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/FeedbackBO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/FeedbackBO.java index 85b210a5d..bab6d4f27 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/FeedbackBO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/FeedbackBO.java @@ -1,8 +1,11 @@ package com.wzj.soopin.member.domain.bo; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.wzj.soopin.member.domain.po.Feedback; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import org.apache.commons.lang3.StringUtils; import org.dromara.common.core.domain.BaseBO; import java.time.LocalDateTime; @@ -15,31 +18,73 @@ import java.time.LocalDateTime; @Schema(description = "意见反馈 查询 对象") @Data public class FeedbackBO extends BaseBO { - @Schema(description ="类型 精确匹配") - private String type; + @Schema(description ="ID") + private Long id; - @Schema(description ="具体说明 精确匹配") + @Schema(description ="类型") + private Integer type; + + @Schema(description ="具体说明") private String content; - @Schema(description ="图片 精确匹配") + @Schema(description ="图片") private String images; - @Schema(description ="联系电话 精确匹配") + @Schema(description ="联系电话") private String phone; - @Schema(description ="处理状态 0:未处理 1:已处理 精确匹配") - private Integer handleStatus; + @Schema(description ="处理状态 0:未处理 1:已处理") + private Integer status; - @Schema(description ="处理时间 精确匹配") + @Schema(description ="备注") + private String remark; + + @Schema(description ="处理时间") private LocalDateTime handleTime; - private String beginTime; - private String endTime; + @Schema(description ="反馈对象ID") + private Long aimId; + + @Schema(description ="反馈分类") + private Integer category; + + @Schema(description ="会员ID") + private String memberId; + + @Schema(description ="处理人") + private Long handlerId; + + @Schema(description ="处理结果类型 0:文本 1:图片") + private Integer resultType; + + @Schema(description ="处理结果") + private String resultContent; + + @Schema(description ="反馈对象类型") + private String aimType; @Override public LambdaQueryWrapper toWrapper() { - return super.toWrapper(); + return new LambdaQueryWrapper() + .eq(type!=null,Feedback::getType, type) + .eq(content!=null,Feedback::getContent, content) + .eq(images!=null,Feedback::getImages, images) + .eq(phone!=null,Feedback::getPhone, phone) + .eq(status!=null,Feedback::getStatus, status) + .eq(remark!=null,Feedback::getRemark, remark) + .eq(handleTime!=null,Feedback::getHandleTime, handleTime) + .eq(aimId!=null,Feedback::getAimId, aimId) + .eq(category!=null,Feedback::getCategory, category) + .eq(memberId!=null,Feedback::getMemberId, memberId) + .eq(handlerId!=null,Feedback::getHandlerId, handlerId) + .eq(resultType!=null,Feedback::getResultType, resultType) + .eq(resultContent!=null,Feedback::getResultContent, resultContent) + .ge(beginTime!=null,Feedback::getCreateTime, beginTime) + .lt(endTime!=null,Feedback::getCreateTime, endTime) + .eq(aimType!=null,Feedback::getAimType, aimType) + .orderByDesc(Feedback::getId) + ; } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAccountBO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAccountBO.java index e88ffc85a..df482a036 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAccountBO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAccountBO.java @@ -7,6 +7,7 @@ import com.wzj.soopin.member.domain.po.MemberAccount; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.BaseBO; +import org.dromara.common.excel.annotation.Excel; import java.math.BigDecimal; @@ -26,14 +27,25 @@ public class MemberAccountBO extends BaseBO { @Schema(description ="MEMBER_ID") - @TableId(value="member_id", type = IdType.ASSIGN_ID) private Long memberId; + + @Schema(description ="钱包") + private BigDecimal wallet; + + @Schema(description ="营收") + private BigDecimal revenue; + + + + @Schema(description ="余额") + private BigDecimal moneyBalance; public LambdaQueryWrapper toWrapper() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(MemberAccount::getIntegralBalance, integralBalance); - queryWrapper.eq(MemberAccount::getTotalIntegralBalance, totalIntegralBalance); - queryWrapper.eq(MemberAccount::getMemberId, memberId); + queryWrapper.eq(getIntegralBalance() != null,MemberAccount::getIntegralBalance, integralBalance); + queryWrapper.eq(getTotalIntegralBalance() != null,MemberAccount::getTotalIntegralBalance, totalIntegralBalance); + queryWrapper.eq(getMemberId() != null,MemberAccount::getMemberId, memberId) + ; return queryWrapper; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAccountChangeRecordBO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAccountChangeRecordBO.java new file mode 100644 index 000000000..286a68be2 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberAccountChangeRecordBO.java @@ -0,0 +1,61 @@ +package com.wzj.soopin.member.domain.bo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.wzj.soopin.member.domain.po.MemberAccountChangeRecord; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.dromara.common.core.domain.BaseBO; +import org.dromara.common.core.domain.model.BaseAudit; +import org.dromara.common.excel.annotation.Excel; + +import java.math.BigDecimal; + +/** + * 会员账户表对象 ums_member_account + * + * @author zcc + */ +@Schema(description="会员账户变动记录") +@Data +public class MemberAccountChangeRecordBO extends BaseBO { + + private Long id; + + + @Schema(description ="MEMBER_ID") + private Long memberId; + + + @Schema(description ="余额") + private BigDecimal moneyBalance; + + + @Schema(description ="变动前余额") + private BigDecimal beforeBalance; + + @Schema(description ="变动后余额") + private BigDecimal afterBalance; + + + @Schema(description ="变动金额") + private BigDecimal changeAmount; + + @Schema(description ="变动类型") + private Integer changeType; + + @Schema(description ="变动描述") + private String changeDesc; + + @Schema(description ="来源") + private Integer source; + + @Override + public LambdaQueryWrapper toWrapper() { + return new LambdaQueryWrapper() + .eq(getMemberId() != null,MemberAccountChangeRecord::getMemberId,memberId) + .eq(getChangeType() != null,MemberAccountChangeRecord::getChangeType,changeType) + .eq(getSource() != null,MemberAccountChangeRecord::getSource,source); + } +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBO.java index 7dd7ea5a1..247efac44 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBO.java @@ -19,6 +19,12 @@ import java.time.LocalDateTime; @Schema(description="会员信息 查询 对象") @Data public class MemberBO extends BaseBO { + + + @Schema(description ="id") + private Long id; + + @Schema(description ="昵称 精确匹配") private String nickname; @@ -67,22 +73,17 @@ public class MemberBO extends BaseBO { @Schema(description ="用户剩余积分 精确匹配") private BigDecimal integral; - private String beginTime; - private String endTime; public QueryWrapper toWapper(){ QueryWrapper qw = new QueryWrapper<>(); - qw.lambda().like(!StringUtils.isEmpty(this.getNickname()),Member::getNickname, this.getNickname()); - - String phone = this.getPhone(); - if (!StringUtils.isEmpty(phone)) { - qw.eq("phone_encrypted", phone); - } - if (!StringUtils.isEmpty(this.getBeginTime()) && !StringUtils.isEmpty(this.getEndTime())){ - qw.ge("create_time", this.getBeginTime()); - qw.lt("create_time", this.getEndTime()); - } + qw.lambda() + .like(!StringUtils.isEmpty(this.getNickname()),Member::getNickname, this.getNickname()) + .eq(getId() != null,Member::getId, this.getId()) + .eq(status != null,Member::getStatus,status) + .eq(!getPhone().isEmpty(), Member::getPhoneEncrypted, phone); + qw.ge(getBeginTime() != null,"create_time", this.getBeginTime()); + qw.lt(getEndTime() != null,"create_time", this.getEndTime()); if (this.getHasMark() != null) { switch (this.getHasMark()) { case 0: @@ -95,9 +96,6 @@ public class MemberBO extends BaseBO { break; } } - if (this.getStatus() != null){ - qw.eq("status", this.getStatus()); - } return qw; } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberLoginInfoBO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberLoginInfoBO.java index 84950bcbf..e59d8ca67 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberLoginInfoBO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberLoginInfoBO.java @@ -37,10 +37,6 @@ public class MemberLoginInfoBO extends BaseBO { @Schema(description ="登陆时间 精确匹配") private LocalDateTime loginTime; - private String beginTime; - - private String endTime; - @Override public LambdaQueryWrapper toWrapper() { return super.toWrapper(); diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Address.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Address.java index eacd164e8..68b628e93 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Address.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Address.java @@ -20,21 +20,14 @@ public class Address extends BaseAudit { private Integer id; @Schema(description ="地区邮编") - @Excel(name = "地区邮编") private Long code; @Schema(description ="父地区邮编") - @Excel(name = "父地区邮编") private Long parentCode; @Schema(description ="地区名") - @Excel(name = "地区名") private String name; @Schema(description ="地区层级") - @Excel(name = "地区层级") private Integer level; - - - } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Fans.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Fans.java index 4139a6983..89425e57a 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Fans.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Fans.java @@ -1,6 +1,7 @@ package com.wzj.soopin.member.domain.po; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -15,6 +16,7 @@ public class Fans extends BaseAudit { @Schema(description ="ID") + @TableId private Long id; /** @@ -30,19 +32,16 @@ public class Fans extends BaseAudit { * 粉丝用户id */ @Schema(description ="粉丝id") - @Excel(name = "粉丝id") private String fanId; /** * 粉丝是否是vloger的朋友,如果成为朋友,则本表的双方此字段都需要设置为1,如果有一人取关,则两边都需要设置为0 */ @Schema(description ="是否是好友") - @Excel(name = "是否是好友") private Integer friendFlag; @Schema(description ="是否互相关注") - @Excel(name = "是否互相关注") private Integer bothFriend; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Feedback.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Feedback.java index cdbc3ee8c..c5fb340e4 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Feedback.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Feedback.java @@ -22,56 +22,47 @@ public class Feedback extends BaseAudit { private Long id; @Schema(description ="类型") - @Excel(name = "类型") - private String type; + private Integer type; @Schema(description ="具体说明") - @Excel(name = "具体说明") private String content; @Schema(description ="图片") - @Excel(name = "图片") private String images; @Schema(description ="联系电话") - @Excel(name = "联系电话") private String phone; @Schema(description ="处理状态 0:未处理 1:已处理") - @Excel(name = "处理状态 0:未处理 1:已处理") private Integer status; @Schema(description ="备注") - @Excel(name = "备注") private String remark; @Schema(description ="处理时间") - @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private LocalDateTime handleTime; @Schema(description ="反馈对象ID") - @Excel(name = "反馈对象ID") private Long aimId; + @Schema(description ="反馈对象类型 0 会员 1 群组 2 评论 3 视频 4 聊天" ) + private Integer aimType; + @Schema(description ="反馈分类") - private Long categroy; + private Integer category; @Schema(description ="会员ID") - @Excel(name = "会员ID") - private String memberId; + private Long memberId; @Schema(description ="处理人") - @Excel(name = "处理人") private Long handlerId; @Schema(description ="处理结果类型 0:文本 1:图片") - @Excel(name = "处理结果类型 0:不予处理 1:已处理") private Integer resultType; @Schema(description ="处理结果") - @Excel(name = "处理结果") private String resultContent; 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 324e0d989..8f37ac744 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 @@ -1,5 +1,6 @@ package com.wzj.soopin.member.domain.po; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Builder; @@ -20,24 +21,17 @@ import java.time.LocalDateTime; @Builder @TableName("ums_member") public class Member extends BaseAudit { - private static final long serialVersionUID = 1L; - - - - @Schema(description = "会员id") + @TableId private Long id; @Schema(description = "用户名") - @Excel(name = "用户名") private String userName; @Schema(description ="昵称") - @Excel(name = "昵称") private String nickname; @Schema(description ="密码") - @Excel(name = "密码") private String password; @Schema(description ="加密手机号") @@ -47,77 +41,58 @@ public class Member extends BaseAudit { private String phoneHidden; @Schema(description ="用户备注") - @Excel(name = "用户备注") private String mark; @Schema(description ="帐号启用状态:0->禁用;1->启用") - @Excel(name = "帐号启用状态:0->禁用;1->启用") private Integer status; @Schema(description ="头像") - @Excel(name = "头像") private String avatar; @Schema(description ="性别:0->未知;1->男;2->女") - @Excel(name = "性别:0->未知;1->男;2->女") private Integer gender; @Schema(description ="用户所在城市") - @Excel(name = "用户所在城市") private String city; @Schema(description ="用户所在省份") - @Excel(name = "用户所在省份") private String province; @Schema(description ="用户所在国家") - @Excel(name = "用户所在国家") private String country; @Schema(description ="公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注") - @Excel(name = "公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注") private String remark; @Schema(description ="生日") - @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd") private LocalDate birthday; @Schema(description ="推广员id") - @Excel(name = "推广员id") private Long spreadUid; @Schema(description ="推广员关联时间") - @Excel(name = "推广员关联时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private LocalDateTime spreadTime; @Schema(description ="等级") - @Excel(name = "等级") private Integer level; @Schema(description ="用户剩余积分") - @Excel(name = "用户剩余积分") private BigDecimal integral; @Schema(description ="im签名") - @Excel(name = "im签名") private String userSig; // 添加 UserSig 属性 @Schema(description ="发布视频") - @Excel(name = "发布视频") private Integer vlogCount; @Schema(description ="粉丝数") - @Excel(name = "粉丝数") private Integer fansCount; @Schema(description ="关注数") - @Excel(name = "关注数") private Integer followCount; @Schema(description ="好友数") - @Excel(name = "好友数") private Integer friendsCount; @Schema(description ="微信openId") - @Excel(name = "微信openId") private Long openId; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberAccount.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberAccount.java index 724eadb7b..f60e987a6 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberAccount.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberAccount.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Builder; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; @@ -17,29 +18,29 @@ import java.math.BigDecimal; @Schema(description="会员账户表对象") @Data @TableName("ums_account") +@Builder(toBuilder = true) public class MemberAccount extends BaseAudit { - - private static final long serialVersionUID = 1L; - @Schema(description ="MEMBER_ID") - @TableId(value="member_id", type = IdType.ASSIGN_ID) + @TableId(value="member_id") private Long memberId; @Schema(description ="积分余额") - @Excel(name = "积分余额") private BigDecimal integralBalance; @Schema(description ="历史总共积分") - @Excel(name = "历史总共积分") private BigDecimal totalIntegralBalance; @Schema(description ="余额") - @Excel(name = "余额") private BigDecimal moneyBalance; + @Schema(description ="钱包") + private BigDecimal wallet; + + @Schema(description ="营收") + private BigDecimal revenue; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberAccountChangeRecord.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberAccountChangeRecord.java new file mode 100644 index 000000000..c6c9328e0 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberAccountChangeRecord.java @@ -0,0 +1,57 @@ +package com.wzj.soopin.member.domain.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.dromara.common.core.domain.model.BaseAudit; +import org.dromara.common.excel.annotation.Excel; + +import java.math.BigDecimal; + +/** + * 会员账户表对象 ums_member_account + * + * @author zcc + */ +@Schema(description="会员账户变动记录") +@Data +@TableName("ums_account_change_record") +public class MemberAccountChangeRecord extends BaseAudit { + + @Schema(description ="主键") + @TableId(value="id") + private Long id; + + @Schema(description ="会员id") + private Long memberId; + + + @Schema(description ="余额") + private BigDecimal moneyBalance; + + + @Schema(description ="变动前余额") + private BigDecimal beforeBalance; + + @Schema(description ="变动后余额") + private BigDecimal afterBalance; + + + @Schema(description ="变动金额") + + @Excel(name = "变动金额") + private BigDecimal changeAmount; + + @Schema(description ="变动类型") + private Integer changeType; + + @Schema(description ="变动描述") + private String changeDesc; + + @Schema(description ="来源") + private Integer source; + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberCart.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberCart.java index 44e4fda1b..450fb7308 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberCart.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberCart.java @@ -1,5 +1,6 @@ package com.wzj.soopin.member.domain.po; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -18,6 +19,7 @@ public class MemberCart extends BaseAudit { private static final long serialVersionUID = 1L; @Schema(description ="购物车表ID") + @TableId private Long id; @Schema(description ="0->失效;1->有效") diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberLoginInfo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberLoginInfo.java index e2c0bd818..1a0fbaf22 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberLoginInfo.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberLoginInfo.java @@ -1,5 +1,6 @@ package com.wzj.soopin.member.domain.po; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -18,6 +19,7 @@ public class MemberLoginInfo { private static final long serialVersionUID = 1L; @Schema(description ="ID") + @TableId private Long id; @Schema(description ="会员手机号") diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/FeedbackVO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/FeedbackVO.java index a8cdb2d33..fa7cda170 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/FeedbackVO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/FeedbackVO.java @@ -18,7 +18,7 @@ public class FeedbackVO { private Long id; /** 类型 */ @Excel(name = "类型") - private String type; + private Integer type; /** 具体说明 */ @Excel(name = "具体说明") private String content; @@ -29,7 +29,7 @@ public class FeedbackVO { @Excel(name = "联系电话") private String phone; /** 创建人 */ - private Long createBy; + private Long createBy; /** 创建时间 */ private LocalDateTime createTime; /** 处理状态 0:未处理 1:已处理 */ @@ -47,16 +47,25 @@ public class FeedbackVO { @Excel(name = "反馈对象ID") private Long aimId; + @Schema(description ="反馈对象类型 0 会员 1 群组 2 评论 3 视频 4 聊天" ) + private Integer aimType; + + + @Schema(description ="反馈对象") + private Object aimObject; + @Schema(description ="反馈分类") - private Long categroy; + private Integer category; @Schema(description ="会员ID") @Excel(name = "会员ID") - private String memberId; + private Long memberId; + + private MemberVO member; @Schema(description ="处理人") @Excel(name = "处理人") - private Long handlerId; + private Long handlerId; @Schema(description ="处理结果类型 0:文本 1:图片") @Excel(name = "处理结果类型 0:不予处理 1:已处理") diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberAccountChangeRecordVO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberAccountChangeRecordVO.java new file mode 100644 index 000000000..c58e638f2 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberAccountChangeRecordVO.java @@ -0,0 +1,61 @@ +package com.wzj.soopin.member.domain.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.dromara.common.core.domain.model.BaseAudit; +import org.dromara.common.excel.annotation.Excel; + +import java.math.BigDecimal; + +/** + * 会员账户表对象 ums_member_account + * + * @author zcc + */ +@Schema(description="会员账户变动记录") +@Data +public class MemberAccountChangeRecordVO extends BaseAudit { + + private Long id; + + @Schema(description ="MEMBER_ID") + @TableId(value="member_id", type = IdType.ASSIGN_ID) + private Long memberId; + + + @Schema(description ="余额") + @Excel(name = "余额") + private BigDecimal moneyBalance; + + + @Schema(description ="变动前余额") + @Excel(name = "变动前余额") + private BigDecimal beforeBalance; + + @Schema(description ="变动后余额") + @Excel(name = "变动后余额") + private BigDecimal afterBalance; + + + @Schema(description ="变动金额") + + @Excel(name = "变动金额") + private BigDecimal changeAmount; + + @Schema(description ="变动类型") + @Excel(name = "变动类型") + private String changeType; + + @Schema(description ="变动描述") + @Excel(name = "变动描述") + private String changeDesc; + + @Schema(description ="来源") + @Excel(name = "来源") + private Integer source; + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberAccountVO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberAccountVO.java index 578c810a9..f85a637b4 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberAccountVO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberAccountVO.java @@ -1,5 +1,6 @@ package com.wzj.soopin.member.domain.vo; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.excel.annotation.Excel; @@ -20,8 +21,18 @@ public class MemberAccountVO { /** 历史总共积分 */ @Excel(name = "历史总共积分") private BigDecimal totalIntegralBalance; - /** 修改时间 */ - private LocalDateTime updateTime; - /** 创建时间 */ - private LocalDateTime createTime; + + + @Schema(description ="余额") + @Excel(name = "余额") + private BigDecimal moneyBalance; + + + @Schema(description ="钱包") + @Excel(name = "钱包") + private BigDecimal wallet; + + @Schema(description ="营收") + @Excel(name = "营收") + private BigDecimal revenue; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberVO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberVO.java index 883e1bbbf..ff7cc1482 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberVO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberVO.java @@ -8,6 +8,7 @@ import org.dromara.common.excel.annotation.Excel; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; + /** * 会员信息 数据视图对象 * @@ -15,79 +16,125 @@ import java.time.LocalDateTime; */ @Data @Schema(description = "会员信息") -public class MemberVO { - /** ID */ +public class MemberVO { + /** 会员唯一标识 ID */ + @Schema(description = "会员唯一标识 ID") private Long id; - /** 昵称 */ + + /** 会员昵称 */ @Excel(name = "昵称") + @Schema(description = "会员昵称") private String nickname; - /** 手机号 */ + + /** 会员手机号 */ + @Schema(description = "会员手机号") private String phone; - /** 隐藏前三位后四位的手机号 */ + + /** 隐藏部分信息后的手机号(如:138****1234) */ + @Schema(description = "隐藏前三位后四位的手机号") private String phoneHidden; - /** 用户备注 */ + + /** 用户备注信息 */ @Excel(name = "用户备注") + @Schema(description = "用户备注信息") private String mark; - /** 帐号启用状态:0->禁用;1->启用 */ + + /** 帐号启用状态:0->禁用;1->启用 */ @Excel(name = "帐号启用状态:0->禁用;1->启用") + @Schema(description = "帐号启用状态:0->禁用;1->启用") private Integer status; - /** 头像 */ + + /** 头像地址 */ @Excel(name = "头像") + @Schema(description = "头像地址") private String avatar; - /** 性别:0->未知;1->男;2->女 */ + + /** 性别:0->未知;1->男;2->女 */ @Excel(name = "性别:0->未知;1->男;2->女") + @Schema(description = "性别:0->未知;1->男;2->女") private Integer gender; - /** 用户所在城市 */ + + /** 用户所在城市名称 */ @Excel(name = "用户所在城市") + @Schema(description = "用户所在城市名称") private String city; - /** 用户所在省份 */ + + /** 用户所在省份名称 */ @Excel(name = "用户所在省份") + @Schema(description = "用户所在省份名称") private String province; - /** 用户所在国家 */ + + /** 用户所在国家名称 */ @Excel(name = "用户所在国家") + @Schema(description = "用户所在国家名称") private String country; - /** 公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注 */ + + /** 公众号运营者对粉丝的备注 */ @Excel(name = "公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注") + @Schema(description = "公众号运营者对粉丝的备注") private String remark; - /** 生日 */ + + /** 生日日期(格式:yyyy-MM-dd) */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd") + @Schema(description = "生日日期(格式:yyyy-MM-dd)") private LocalDate birthday; - /** 推广员id */ + + /** 推广员用户 ID */ @Excel(name = "推广员id") + @Schema(description = "推广员用户 ID") private Long spreadUid; - /** 推广员关联时间 */ + + + @Excel(name = "推广员二维码") + @Schema(description = "推广员二维码") + private String spreadCode; + + /** 推广员关联时间(格式:yyyy-MM-dd HH:mm:ss) */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "推广员关联时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "推广员关联时间(格式:yyyy-MM-dd HH:mm:ss)") private LocalDateTime spreadTime; - /** 等级 */ + + /** 会员等级 */ @Excel(name = "等级") + @Schema(description = "会员等级") private Integer level; - /** 用户剩余积分 */ + + /** 用户剩余积分 */ @Excel(name = "用户剩余积分") + @Schema(description = "用户剩余积分") private BigDecimal integral; - /** openId */ + + /** 微信 OpenID */ @Excel(name = "openId") + @Schema(description = "微信 OpenID") private String openId; - /** openId */ + /** 用户名 */ @Excel(name = "userName") + @Schema(description = "用户名") private String userName; - @Schema(description ="视频数") + /** 视频数量 */ + @Schema(description = "视频数") @Excel(name = "视频数") private Integer vlogCount; - @Schema(description ="粉丝数") + /** 粉丝数量 */ + @Schema(description = "粉丝数") @Excel(name = "粉丝数") private Integer fansCount; - @Schema(description ="关注数") + /** 关注数量 */ + @Schema(description = "关注数") @Excel(name = "关注数") private Integer followCount; - @Schema(description ="好友数") + /** 好友数量 */ + @Schema(description = "好友数") @Excel(name = "好友数") private Integer friendsCount; + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/enums/FeedbackAimTypeEnums.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/enums/FeedbackAimTypeEnums.java new file mode 100644 index 000000000..afb5e4456 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/enums/FeedbackAimTypeEnums.java @@ -0,0 +1,22 @@ +package com.wzj.soopin.member.enums; + +import lombok.Getter; + +/** + * 反馈对象类型枚举 + */ +@Getter +public enum FeedbackAimTypeEnums { + MEMBER(0, "会员"), + GROUP(1, "群组"), + COMMENT(2, "评论"), + VIDEO(3, "视频"), + CHAT(4, "聊天"); + private final int code; + private final String message; + FeedbackAimTypeEnums(int code, String message) { + this.code = code; + this.message = message; + } + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/enums/FeedbackReasonEnums.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/enums/FeedbackReasonEnums.java new file mode 100644 index 000000000..08315cdd8 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/enums/FeedbackReasonEnums.java @@ -0,0 +1,42 @@ +package com.wzj.soopin.member.enums; + + +import lombok.Data; +import lombok.Getter; + +/** + * 举报原因枚举 + */ +@Getter +public enum FeedbackReasonEnums { + + OTHER(0, "其他"), + + ABUSE(1, "辱骂"), + + VIOLATION(2, "违反社区 Guidelines"), + + SPAM(3, "垃圾信息"), + + HARASSMENT(4, "骚扰"), + + INAPPROPRIATE_CONTENT(5, "不恰当内容"), + + INAPPROPRIATE_USERNAME(6, "不恰当用户名"), + + INAPPROPRIATE_PROFILE_PICTURE(7, "不恰当头像"), + + INAPPROPRIATE_BACKGROUND_PICTURE(8, "不恰当背景"); + + + private final int code; + private final String message; + + FeedbackReasonEnums(int code, String message) { + this.code = code; + this.message = message; + } + + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/MemberAccountChangeRecordMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/MemberAccountChangeRecordMapper.java new file mode 100644 index 000000000..897009190 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/MemberAccountChangeRecordMapper.java @@ -0,0 +1,18 @@ +package com.wzj.soopin.member.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.wzj.soopin.member.domain.po.MemberAccount; +import com.wzj.soopin.member.domain.po.MemberAccountChangeRecord; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 会员账户表Mapper接口 + * + * @author zcc + */ +public interface MemberAccountChangeRecordMapper extends BaseMapper { + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IFeedbackService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IFeedbackService.java index 0cfcacf25..471665e4c 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IFeedbackService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IFeedbackService.java @@ -2,6 +2,11 @@ package com.wzj.soopin.member.service; import com.baomidou.mybatisplus.extension.service.IService; import com.wzj.soopin.member.domain.po.Feedback; +import com.wzj.soopin.member.domain.vo.FeedbackVO; + +import java.io.Serializable; public interface IFeedbackService extends IService { + + FeedbackVO selectById(Serializable id); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberAccountChangeRecordService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberAccountChangeRecordService.java new file mode 100644 index 000000000..ccc29928f --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberAccountChangeRecordService.java @@ -0,0 +1,9 @@ +package com.wzj.soopin.member.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.wzj.soopin.member.domain.po.MemberAccount; +import com.wzj.soopin.member.domain.po.MemberAccountChangeRecord; + +public interface IMemberAccountChangeRecordService extends IService { + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberAccountService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberAccountService.java index 7428dd059..8c3a8aeff 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberAccountService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberAccountService.java @@ -2,6 +2,9 @@ package com.wzj.soopin.member.service; import com.baomidou.mybatisplus.extension.service.IService; import com.wzj.soopin.member.domain.po.MemberAccount; +import com.wzj.soopin.member.domain.vo.MemberAccountVO; public interface IMemberAccountService extends IService { + + MemberAccount getMemberAccount(Long memberId); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberService.java index 5e5a6b8fb..be95e9fa1 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberService.java @@ -1,16 +1,23 @@ package com.wzj.soopin.member.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.wzj.soopin.member.domain.bo.MemberBO; import com.wzj.soopin.member.domain.form.ChangeMemberStatusForm; import com.wzj.soopin.member.domain.po.Member; +import com.wzj.soopin.member.domain.vo.MemberVO; import org.dromara.common.core.constant.ResultCode; import java.util.List; public interface IMemberService extends IService { - Integer changeStatus(ChangeMemberStatusForm dto); - int updateMark(Member member); + + + + + Integer changeStatus(MemberBO dto); + + int updateMark(MemberBO member); boolean usernameExists(String username); // 确保这个方法在接口中定义 diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FeedbackServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FeedbackServiceImpl.java index fb26f7942..13c289fde 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FeedbackServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FeedbackServiceImpl.java @@ -4,82 +4,99 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wzj.soopin.member.convert.FeedbackConvert; +import com.wzj.soopin.member.convert.MemberConvert; import com.wzj.soopin.member.domain.po.Feedback; import com.wzj.soopin.member.domain.bo.FeedbackBO; +import com.wzj.soopin.member.domain.po.Member; +import com.wzj.soopin.member.domain.vo.FeedbackVO; import com.wzj.soopin.member.mapper.FeedbackMapper; +import com.wzj.soopin.member.mapper.MemberMapper; import com.wzj.soopin.member.service.IFeedbackService; +import com.wzj.soopin.member.util.MemberCacheHelper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.dromara.common.redis.redis.RedisCache; import org.springframework.stereotype.Service; +import java.io.Serializable; import java.time.LocalDateTime; /** * 意见反馈Service业务层处理 * - * * @author zcc */ @Service +@Slf4j +@RequiredArgsConstructor public class FeedbackServiceImpl extends ServiceImpl implements IFeedbackService { + private final MemberMapper memberMapper; + + private final MemberConvert memberConvert; + + private final FeedbackConvert feedbackConvert; + + private final MemberCacheHelper memberCacheHelper; + /** * 查询意见反馈列表 * * @param query 查询条件 - * @param page 分页条件 + * @param page 分页条件 * @return 意见反馈 */ public IPage selectList(FeedbackBO query, IPage page) { - QueryWrapper qw = new QueryWrapper<>(); - String type = query.getType(); - if (!StringUtils.isEmpty(type)) { - qw.eq("type", type); - } - String content = query.getContent(); - if (!StringUtils.isEmpty(content)) { - qw.eq("content", content); - } - String images = query.getImages(); - if (!StringUtils.isEmpty(images)) { - qw.eq("images", images); - } - String phone = query.getPhone(); - if (!StringUtils.isEmpty(phone)) { - qw.eq("phone", phone); - } - Integer handleStatus = query.getHandleStatus(); - if (handleStatus != null) { - qw.eq("handle_status", handleStatus); - } - LocalDateTime handleTime = query.getHandleTime(); - if (handleTime != null) { - qw.eq("handle_time", handleTime); - } - if (!StringUtils.isEmpty(query.getBeginTime()) && !StringUtils.isEmpty(query.getEndTime())){ - qw.ge("create_time", query.getBeginTime()); - qw.lt("create_time", query.getEndTime()); - } - qw.orderByDesc("id"); - return baseMapper.selectPage(page,qw); + return baseMapper.selectPage(page, query.toWrapper()); } + @Override + public FeedbackVO selectById(Serializable id) { + Feedback feedback = super.getById(id); + + if (feedback == null) { + return null; + } + FeedbackVO vo = feedbackConvert.toVO(feedback); + //判断是投诉对象是什么类型 + if (feedback.getAimType() != null) { + // 如果是人员,则取人员信息 +// 0 会员 1 群组 2 评论 3 视频 4 聊天 + switch (feedback.getAimType()) { + case 0: + Member member = memberMapper.selectById(feedback.getAimId()); + vo.setAimObject(memberConvert.toVO(member)); + break; + } +// 如果是订单,则取订单信息 +// 如果是视频,则取视频信息 + } + + + //从redis中获取用户信息 + Member memberInfo = memberCacheHelper.getMemberInfo(feedback.getMemberId()); + vo.setMember(memberConvert.toVO(memberInfo)); + return vo; + } public Integer updateMark(Feedback feedback) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.set("remark",feedback.getRemark()) - .eq("id",feedback.getId()); - return baseMapper.update(null,updateWrapper); + updateWrapper.set("remark", feedback.getRemark()) + .eq("id", feedback.getId()); + return baseMapper.update(null, updateWrapper); } public Integer changeStatus(Feedback dto) { UpdateWrapper wrapper = new UpdateWrapper<>(); wrapper.eq("id", dto.getId()); wrapper.set("handle_status", dto.getStatus()) - .set("handle_time",LocalDateTime.now()); + .set("handle_time", LocalDateTime.now()); return baseMapper.update(null, wrapper); } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberAccountChangeRecordServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberAccountChangeRecordServiceImpl.java new file mode 100644 index 000000000..952072d79 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberAccountChangeRecordServiceImpl.java @@ -0,0 +1,31 @@ +package com.wzj.soopin.member.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wzj.soopin.member.domain.bo.MemberAccountBO; +import com.wzj.soopin.member.domain.po.MemberAccount; +import com.wzj.soopin.member.domain.po.MemberAccountChangeRecord; +import com.wzj.soopin.member.mapper.MemberAccountChangeRecordMapper; +import com.wzj.soopin.member.mapper.MemberAccountMapper; +import com.wzj.soopin.member.service.IMemberAccountChangeRecordService; +import com.wzj.soopin.member.service.IMemberAccountService; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; + +/** + * 会员账户表Service业务层处理 + * + * + * @author zcc + */ +@Service +public class MemberAccountChangeRecordServiceImpl extends + ServiceImpl implements IMemberAccountChangeRecordService { + + + + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberAccountServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberAccountServiceImpl.java index ab2a8f90b..c6293eb71 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberAccountServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberAccountServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.wzj.soopin.member.domain.po.MemberAccount; import com.wzj.soopin.member.domain.bo.MemberAccountBO; +import com.wzj.soopin.member.domain.vo.MemberAccountVO; import com.wzj.soopin.member.mapper.MemberAccountMapper; import com.wzj.soopin.member.service.IMemberAccountService; import org.springframework.stereotype.Service; @@ -20,14 +21,10 @@ import java.math.BigDecimal; @Service public class MemberAccountServiceImpl extends ServiceImpl implements IMemberAccountService { - /** - * 查询会员账户表 - * - * @param memberId 会员账户表主键 - * @return 会员账户表 - */ - public MemberAccount selectByMemberId(Long memberId) { - return baseMapper.selectById(memberId); + + @Override + public MemberAccount getMemberAccount(Long memberId) { + return baseMapper.selectOne(new QueryWrapper().lambda().eq(MemberAccount::getMemberId,memberId)); } /** diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberServiceImpl.java index 5bb88963a..f63d31d7b 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberServiceImpl.java @@ -6,8 +6,11 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wzj.soopin.member.domain.bo.MemberBO; import com.wzj.soopin.member.domain.form.ChangeMemberStatusForm; import com.wzj.soopin.member.domain.po.Member; +import com.wzj.soopin.member.domain.po.MemberAccount; +import com.wzj.soopin.member.mapper.MemberAccountMapper; import com.wzj.soopin.member.mapper.MemberCartMapper; import com.wzj.soopin.member.mapper.MemberMapper; import com.wzj.soopin.member.service.IMemberService; @@ -45,11 +48,24 @@ public class MemberServiceImpl extends ServiceImpl implemen private final RedisCache redisCache; + private final MemberAccountMapper memberAccountMapper; + @Override public boolean usernameExists(String username) { return baseMapper.countByUsername(username) > 0; // 确保实现 } + + @Override + public boolean save(Member entity) { + super.save(entity); + + MemberAccount account=MemberAccount.builder().memberId(entity.getId()).build(); + memberAccountMapper.insert(account); + + return true; + } + @Override public Member findByUsername(String userName) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -69,7 +85,7 @@ public class MemberServiceImpl extends ServiceImpl implemen return true; } - public int updateMark(Member member) { + public int updateMark(MemberBO member) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.set("mark",member.getMark()) .set("update_time",LocalDateTime.now()) @@ -79,10 +95,10 @@ public class MemberServiceImpl extends ServiceImpl implemen - public Integer changeStatus(ChangeMemberStatusForm dto) { + public Integer changeStatus(MemberBO bo) { UpdateWrapper wrapper = new UpdateWrapper<>(); - wrapper.eq("id", dto.getMemberId()); - wrapper.set("status", dto.getStatus()); + wrapper.eq("id", bo.getId()); + wrapper.set("status", bo.getStatus()); return baseMapper.update(null, wrapper); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/util/MemberCacheHelper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/util/MemberCacheHelper.java new file mode 100644 index 000000000..a257d43f3 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/util/MemberCacheHelper.java @@ -0,0 +1,33 @@ +package com.wzj.soopin.member.util; + +import com.wzj.soopin.member.domain.po.Member; +import com.wzj.soopin.member.mapper.MemberMapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.redis.redis.RedisCache; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; + +@Component +@Slf4j +@RequiredArgsConstructor +public class MemberCacheHelper { + + public static final String MEMBER_INFO_CACHE = "member:info:"; + + public static final String MEMBER_ACCOUNT_CACHE = "member:account:"; + + private final RedisCache redisCache; + + private final MemberMapper memberMapper; + + + public Member getMemberInfo(Long memberId) { + Member member= redisCache.getCacheObject(MEMBER_INFO_CACHE + memberId); + if(member==null){ + member=memberMapper.selectById(memberId); + redisCache.setCacheObject(MEMBER_INFO_CACHE + memberId,member); + } + return member; + } +} From b075011ce81536c01e76b50c3d912ba6b1a62be9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BA=86=E7=A5=A5?= Date: Sat, 14 Jun 2025 11:44:05 +0800 Subject: [PATCH 5/5] =?UTF-8?q?[fix]=E4=BF=AE=E6=94=B9=E7=B2=89=E4=B8=9D?= =?UTF-8?q?=E5=92=8C=E5=85=B3=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/constant/CacheConstants.java | 11 + .../admin/VlogUploadController.java | 9 +- .../content/service/impl/VlogServiceImpl.java | 2 +- .../member/controller/FansController.java | 386 ++++++------------ .../wzj/soopin/member/domain/bo/MemberBO.java | 59 ++- .../com/wzj/soopin/member/domain/po/Fans.java | 7 +- .../soopin/member/domain/po/MemberBlock.java | 30 ++ .../member/domain/vo/MemberBlockVO.java | 27 ++ .../wzj/soopin/member/mapper/FansMapper.java | 4 - .../member/mapper/MemberBlockMapper.java | 10 + .../soopin/member/service/IFansService.java | 12 +- .../member/service/IMemberBlockService.java | 15 + .../member/service/impl/FansServiceImpl.java | 34 +- .../service/impl/MemberBlockServiceImpl.java | 56 +++ .../ums/MemberAccountChangeRecord.xml | 5 + .../main/resources/ums/MemberBlockMapper.xml | 5 + 16 files changed, 349 insertions(+), 323 deletions(-) create mode 100644 ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberBlock.java create mode 100644 ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberBlockVO.java create mode 100644 ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/MemberBlockMapper.java create mode 100644 ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberBlockService.java create mode 100644 ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberBlockServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-member/src/main/resources/ums/MemberAccountChangeRecord.xml create mode 100644 ruoyi-modules/ruoyi-member/src/main/resources/ums/MemberBlockMapper.xml diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheConstants.java index 73a89ba40..714d93a17 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheConstants.java @@ -32,6 +32,17 @@ public interface CacheConstants { */ String MEMEBER="MEMEBER:"; + /** + * 粉丝 + */ String MEMBER_FANS="MEMBER_FANS:"; + /** + * 关注 + */ + String MEMBER_FOLLOW="MEMBER_FOLLOW:"; + + + String BLACK_LIST="BLACK_LIST:"; + } diff --git a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/controller/admin/VlogUploadController.java b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/controller/admin/VlogUploadController.java index cdf98a36a..f9a982cdb 100644 --- a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/controller/admin/VlogUploadController.java +++ b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/controller/admin/VlogUploadController.java @@ -175,12 +175,12 @@ public class VlogUploadController extends BaseInfoProperties { // 获取粉丝数量:优先 Redis,无则 MySQL String fansCountsStr = redis.get(REDIS_MY_FANS_COUNTS + ":" + vlog.getVlogerId()); - Integer fansCounts = 0; + Long fansCounts = 0L; if (StringUtils.isNotBlank(fansCountsStr)) { - fansCounts = Integer.valueOf(fansCountsStr); + fansCounts = Long .valueOf(fansCountsStr); } else { // Redis 中没有,从数据库查询 - fansCounts = fansService.countFansByVlogerId(vlog.getVlogerId()); + fansCounts = fansService.countFansByVloggerId(Long.valueOf(vlog.getVlogerId())); // 可以选择在这里将数据库查询结果写入 Redis,以便下次使用 if (fansCounts != null) { redis.set(REDIS_MY_FANS_COUNTS + ":" + vlog.getVlogerId(), String.valueOf(fansCounts)); @@ -267,8 +267,7 @@ public class VlogUploadController extends BaseInfoProperties { List> likedUsers = myLikedVlogMapper.selectLikedUsersByVlogId(vlog.getId()); result.put("likedUsers", likedUsers); - - IPage fansList = fansService.queryMyFans(vlog.getVlogerId(),0,10); + IPage fansList = fansService.queryMyFans(Long.valueOf(vlog.getVlogerId()),0,10); result.put("fansList", fansList); } else { diff --git a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogServiceImpl.java b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogServiceImpl.java index 8c3f15f82..7dcafa7c5 100644 --- a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogServiceImpl.java +++ b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogServiceImpl.java @@ -150,7 +150,7 @@ public class VlogServiceImpl extends BaseInfoProperties implements VlogService { BeanUtils.copyProperties(v, vo); if (StringUtils.isNotBlank(userId)) { - vo.setDoIFollowVloger(fansService.queryDoIFollowVloger(userId, v.getVlogerId())); + vo.setDoIFollowVloger(fansService.queryDoIFollowVloger(Long.valueOf(userId), Long.valueOf(v.getVlogerId()))); vo.setDoILikeThisVlog(doILikeVlog(userId, v.getId())); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FansController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FansController.java index 2ff31844a..f4861d02c 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FansController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FansController.java @@ -1,280 +1,150 @@ package com.wzj.soopin.member.controller; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.wzj.soopin.member.domain.vo.FansVO; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.wzj.soopin.member.domain.po.Member; +import com.wzj.soopin.member.domain.po.MemberBlock; import com.wzj.soopin.member.service.IFansService; +import com.wzj.soopin.member.service.IMemberBlockService; import com.wzj.soopin.member.service.IMemberService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.constant.CacheConstants; import org.dromara.common.core.domain.R; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.redis.utils.RedisUtils; +import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; +import java.util.List; @Slf4j -@RequestMapping("/ums/fans") +@RequestMapping("/ums/fans/") @RestController @RequiredArgsConstructor -public class FansController { +public class FansController { private final IMemberService memberService; private final IFansService fansService; -// @PostMapping("follow") -// public R> follow(@RequestParam String myId, -// @RequestParam String vlogerId) { -// // 从redis中获取拉黑信息 -// String redisKey = BaseInfoProperties.REDIS_USER_BLOCK + ":" + myId; -// Boolean hasKey = redis.keyIsExist(redisKey); -// if(hasKey){ -// List blockUserList = new ArrayList<>(); -// ObjectMapper objectMapper = new ObjectMapper(); -// List reports = redis.lrange(redisKey, 0, -1); // 查询用户的所有举报记录 -// -// for (String report : reports) { -// try { -// Map reportMap = objectMapper.readValue(report, new TypeReference>() {}); -// // 处理拉黑信息 -// String queryvlogerId = (String) reportMap.get("vlogerId"); -// blockUserList.add(queryvlogerId); -// } catch (JsonProcessingException e) { -// e.printStackTrace(); -// } -// } -// System.out.println(blockUserList); -// Boolean isBlock = blockUserList.contains(vlogerId); -// if(isBlock){ -// return GraceJSONResult.errorCustom(ResponseStatusEnum.ON_BLOCK); -// } -// } -// -// // 判断两个id不能为空 -// if (StringUtils.isBlank(myId) || StringUtils.isBlank(vlogerId)) { -// return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_ERROR); -// } -// -// // 判断当前用户,自己不能关注自己 -// if (myId.equalsIgnoreCase(vlogerId)) { -// return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_RESPONSE_NO_INFO); -// } -// -// // 是否已经存在关系 -// Boolean flow = fansService.queryDoIFollowVloger(myId,vlogerId); -// if(flow){ -// return GraceJSONResult.errorCustom(ResponseStatusEnum.FANS_INFO_UPDATED_ISFAN_EXIST_ERROR); -// } -// -// // 判断两个id对应的用户是否存在 -// Users vloger = userService.getUser(vlogerId); -// Users myInfo = userService.getUser(myId); -// -// // fixme: 两个用户id的数据库查询后的判断,是分开好?还是合并判断好? -// if (myInfo == null || vloger == null) { -// return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_RESPONSE_NO_INFO); -// } -//// -// // 保存粉丝关系到数据库 -// fansService.doFollow(myId, vlogerId); -// -// // 博主的粉丝+1,我的关注+1 -// redis.increment(BaseInfoProperties.REDIS_MY_FOLLOWS_COUNTS + ":" + myId, 1); -// redis.increment(BaseInfoProperties.REDIS_MY_FANS_COUNTS + ":" + vlogerId, 1); -// -// // 我和博主的关联关系,依赖redis,不要存储数据库,避免db的性能瓶颈 -// redis.set(BaseInfoProperties.REDIS_FANS_AND_VLOGGER_RELATIONSHIP + ":" + myId + ":" + vlogerId, "1"); -//// -// return GraceJSONResult.ok(); -// } -// @PostMapping("cancel") -// public GraceJSONResult cancel(@RequestParam String myId, -// @RequestParam String vlogerId) { -// // 判断两个id不能为空 -// if (StringUtils.isBlank(myId) || StringUtils.isBlank(vlogerId)) { -// return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_ERROR); -// } -// // 是否已经存在关系 -// Boolean flow = fansService.queryDoIFollowVloger(myId,vlogerId); -// if(!flow){ -// return GraceJSONResult.errorCustom(ResponseStatusEnum.FANS_INFO_UPDATED_ISFLOW_EXIST_ERROR); -// } -// // 删除业务的执行 -// fansService.doCancel(myId, vlogerId); + private final IMemberBlockService memberBlockService; + + @PostMapping("follow") + public R follow(@RequestParam Long myId, + @RequestParam Long vloggerId) { + + + // 判断两个id不能为空 + if (myId ==null|| vloggerId==null) { + return R.fail("id不能为空"); + } + + + // 获取拉黑数据 + boolean hasblock = memberBlockService.hasBlocked(myId, vloggerId); + if (hasblock) { + return R.fail("已经拉黑"); + } + + + // 判断当前用户,自己不能关注自己 + if (myId ==vloggerId) { + return R.fail("自己不能关注自己"); + } + + // 是否已经存在关系 + boolean flow = fansService.queryDoIFollowVloger(myId, vloggerId); + if (flow) { + return R.fail("已经在关注列表里了"); + } + + // 判断两个id对应的用户是否存在 + Member vlogger = memberService.getById(vloggerId); + Member myInfo = memberService.getById(myId); + if (myInfo == null || vlogger == null) { + return R.fail("用户不存在"); + } // -// // 博主的粉丝-1,我的关注-1 -// redis.decrement(BaseInfoProperties.REDIS_MY_FOLLOWS_COUNTS + ":" + myId, 1); -// redis.decrement(BaseInfoProperties.REDIS_MY_FANS_COUNTS + ":" + vlogerId, 1); -// -// // 我和博主的关联关系,依赖redis,不要存储数据库,避免db的性能瓶颈 -// redis.del(BaseInfoProperties.REDIS_FANS_AND_VLOGGER_RELATIONSHIP + ":" + myId + ":" + vlogerId); -// -// return GraceJSONResult.ok(); -// } -// -// @GetMapping("queryBlockVloger") -// public GraceJSONResult queryBlockVloger(@RequestParam String myId, -// @RequestParam String vlogerId) { -// // 从redis中获取拉黑信息 -// String redisKey = BaseInfoProperties.REDIS_USER_BLOCK + ":" + myId; -// Boolean hasKey = redis.keyIsExist(redisKey); -// if(hasKey){ -// List blockUserList = new ArrayList<>(); -// ObjectMapper objectMapper = new ObjectMapper(); -// List reports = redis.lrange(redisKey, 0, -1); // 查询用户的所有举报记录 -// -// for (String report : reports) { -// try { -// Map reportMap = objectMapper.readValue(report, new TypeReference>() {}); -// // 处理拉黑信息 -// String queryvlogerId = (String) reportMap.get("vlogerId"); -// blockUserList.add(queryvlogerId); -// } catch (JsonProcessingException e) { -// e.printStackTrace(); -// } -// } -// System.out.println(blockUserList); -// return GraceJSONResult.ok(blockUserList.contains(vlogerId)); -// }else{ -// return GraceJSONResult.ok(false); -// } -// } -// -// @PostMapping("block") -// public GraceJSONResult block(@RequestParam String myId, -// @RequestParam String vlogerId) { -// // 先执行cancel -// // 判断两个id不能为空 -// if (StringUtils.isBlank(myId) || StringUtils.isBlank(vlogerId)) { -// return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_ERROR); -// } -// // 是否已经存在关系 -// Boolean flow = fansService.queryDoIFollowVloger(myId,vlogerId); -// if(flow){ -// // 删除业务的执行 -// fansService.doCancel(myId, vlogerId); -// -// // 博主的粉丝-1,我的关注-1 -// redis.decrement(BaseInfoProperties.REDIS_MY_FOLLOWS_COUNTS + ":" + myId, 1); -// redis.decrement(BaseInfoProperties.REDIS_MY_FANS_COUNTS + ":" + vlogerId, 1); -// -// // 我和博主的关联关系,依赖redis,不要存储数据库,避免db的性能瓶颈 -// redis.del(BaseInfoProperties.REDIS_FANS_AND_VLOGGER_RELATIONSHIP + ":" + myId + ":" + vlogerId); -// } -// // 拉黑 -// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); -// String blockTime = LocalDateTime.now().format(formatter); -// try{ -// Map blockInfo = new HashMap<>(); -// blockInfo.put("vlogerId", vlogerId); -// blockInfo.put("myId", myId); -// blockInfo.put("time", blockTime); -// // 转成 JSON 字符串 -// ObjectMapper objectMapper = new ObjectMapper(); -// String blockJson = objectMapper.writeValueAsString(blockInfo); -// String redisKey = BaseInfoProperties.REDIS_USER_BLOCK + ":" + myId ; -// log.info("写入Redis => key: {}, value: {}", redisKey, blockJson); -// redis.rpush(redisKey , blockJson); -// -// return GraceJSONResult.ok(); -// }catch (JsonProcessingException e){ -// // 打日志,或者抛出业务异常 -// e.printStackTrace(); -// throw new RuntimeException("JSON序列化失败: " + e.getMessage()); -// } -// } -// -// @PostMapping("cancelBlock") -// public GraceJSONResult cancelBlock(@RequestParam String myId, -// @RequestParam String vlogerId) { -// // 判断两个id不能为空 -// if (StringUtils.isBlank(myId) || StringUtils.isBlank(vlogerId)) { -// return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_ERROR); -// } -// // 解除拉黑 -// String redisKey = BaseInfoProperties.REDIS_USER_BLOCK + ":" + myId; -// Boolean hasKey = redis.keyIsExist(redisKey); -// if(hasKey){ -// List blockList = redis.lrange(redisKey, 0, -1); -// ObjectMapper objectMapper = new ObjectMapper(); -// if (blockList != null && !blockList.isEmpty()) { -// for (String item : blockList) { -// try { -// Map itemMap = objectMapper.readValue(item, new TypeReference>() {}); -// String storedVlogerId = itemMap.get("vlogerId"); -// -// if (storedVlogerId != null && storedVlogerId.equals(vlogerId)) { -// redis.lrem(redisKey, 1, item); // 删除找到的 JSON 字符串 -// break; -// } -// }catch (JsonProcessingException e){ -// e.printStackTrace(); -// } -// } -// } -// return GraceJSONResult.ok(); -// }else{ -// return GraceJSONResult.error(); -// } -// } -// -// @PostMapping("blockVideo") -// public GraceJSONResult blockVideo(@RequestParam String myId, -// @RequestParam String vlogId, -// @RequestParam String reason, -// @RequestParam(defaultValue = "") String description) { -// // 判断两个id不能为空 -// if (StringUtils.isBlank(myId) || StringUtils.isBlank(vlogId)) { -// return GraceJSONResult.errorCustom(ResponseStatusEnum.SYSTEM_ERROR); -// } -// // 拉黑 -// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); -// String blockTime = LocalDateTime.now().format(formatter); -// // -// try{ -// Map blockInfo = new HashMap<>(); -// blockInfo.put("vlogId", vlogId); -// blockInfo.put("reporter", myId); -// blockInfo.put("time", blockTime); -// blockInfo.put("reason", reason); -// blockInfo.put("description", description); -// // 转成 JSON 字符串 -// ObjectMapper objectMapper = new ObjectMapper(); -// String blockJson = objectMapper.writeValueAsString(blockInfo); -// -// String redisKey = BaseInfoProperties.REDIS_VIDEO_BLOCK + ":" + myId ; -// log.info("写入Redis => key: {}, value: {}", redisKey, blockJson); -// redis.rpush(redisKey , blockJson); -// -// return GraceJSONResult.ok(); -// }catch (JsonProcessingException e){ -// // 打日志,或者抛出业务异常 -// e.printStackTrace(); -// throw new RuntimeException("JSON序列化失败: " + e.getMessage()); -// } -// } -// -// -// -// @GetMapping("queryDoIFollowVloger") -// public GraceJSONResult queryDoIFollowVloger(@RequestParam String myId, -// @RequestParam String vlogerId) { -// return GraceJSONResult.ok(fansService.queryDoIFollowVloger(myId, vlogerId)); -// } -// -// @GetMapping("queryMyFollows") -// public GraceJSONResult queryMyFollows(@RequestParam String myId, -// @RequestParam Integer page, -// @RequestParam Integer pageSize) { -// return GraceJSONResult.ok( -// fansService.queryMyFollows( -// myId, -// page, -// pageSize)); -// } + // 保存粉丝关系到数据库 + fansService.doFollow(myId, vloggerId); + + // 博主的粉丝+1,我的关注+1 + RedisUtils.incrAtomicValue(CacheConstants.MEMBER_FANS + ":" + vloggerId); + RedisUtils.incrAtomicValue(CacheConstants.MEMBER_FOLLOW + ":" + myId); + return R.ok("关注成功"); + } + + @PostMapping("cancel") + public R cancel(@RequestParam Long myId, + @RequestParam Long vloggerId) { + // 判断两个id不能为空 + if ( myId==null || vloggerId==null) { + return R.fail("id不能为空"); + } + // 是否已经存在关系 + boolean flow = fansService.queryDoIFollowVloger(myId, vloggerId); + if (!flow) { + return R.fail("没有关注信息"); + } + // 删除业务的执行 + fansService.doCancel(myId, vloggerId); + + // 博主的粉丝-1,我的关注-1 + RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FANS + ":" + vloggerId); + RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FOLLOW + ":" + myId); + + return R.ok("取消成功"); + } + + @GetMapping("block/list") + public R> queryBlockVloger(@RequestParam Long myId) { + + return R.ok(memberBlockService.list(new LambdaQueryWrapper().eq(MemberBlock::getMemberId, myId))); + } + + /** + * 添加黑名单 + * + * @param myId + * @param vloggerId + * @return + */ + @PostMapping("block") + public R block(@RequestParam Long myId, + @RequestParam Long vloggerId) { + // 先执行cancel + // 判断两个id不能为空 + if (myId == null || vloggerId==null) { + return R.ok("id不能为空"); + } + // 是否已经存在关系 + boolean flow = fansService.queryDoIFollowVloger(myId, vloggerId); + if (flow) { + // 删除业务的执行 + fansService.doCancel(myId, vloggerId); + + // 博主的粉丝-1,我的关注-1 + RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FANS + ":" + vloggerId); + RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FOLLOW + ":" + myId); + } + // 拉黑 + + memberBlockService.addBlock(myId, vloggerId); + return R.ok(); + } + + @PostMapping("cancelBlock") + public R cancelBlock(@RequestParam Long myId, + @RequestParam Long vloggerId) { + // 判断两个id不能为空 + if (myId==null||vloggerId==null) { + R.fail("id不能为空"); + } + memberBlockService.removeBlock(myId, vloggerId); + + return R.ok(); + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBO.java index 247efac44..00bb76456 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/MemberBO.java @@ -16,81 +16,80 @@ import java.time.LocalDateTime; * * @author zcc */ -@Schema(description="会员信息 查询 对象") +@Schema(description = "会员信息 查询 对象") @Data -public class MemberBO extends BaseBO { +public class MemberBO extends BaseBO { - @Schema(description ="id") - private Long id; + @Schema(description = "id") + private Long id; - @Schema(description ="昵称 精确匹配") + @Schema(description = "昵称 精确匹配") private String nickname; - @Schema(description ="密码 精确匹配") + @Schema(description = "密码 精确匹配") private String password; - @Schema(description ="手机号码 精确匹配") + @Schema(description = "手机号码 精确匹配") private String phone; - @Schema(description ="有无备注 1:有备注 0:无备注") + @Schema(description = "有无备注 1:有备注 0:无备注") private Integer hasMark; - @Schema(description ="用户备注 精确匹配") + @Schema(description = "用户备注 精确匹配") private String mark; - @Schema(description ="帐号启用状态:0->禁用;1->启用 精确匹配") + @Schema(description = "帐号启用状态:0->禁用;1->启用 精确匹配") private Integer status; - @Schema(description ="头像 精确匹配") + @Schema(description = "头像 精确匹配") private String avatar; - @Schema(description ="性别:0->未知;1->男;2->女 精确匹配") + @Schema(description = "性别:0->未知;1->男;2->女 精确匹配") private Integer gender; - @Schema(description ="用户所在城市 精确匹配") + @Schema(description = "用户所在城市 精确匹配") private String city; - @Schema(description ="用户所在省份 精确匹配") + @Schema(description = "用户所在省份 精确匹配") private String province; - @Schema(description ="用户所在国家 精确匹配") + @Schema(description = "用户所在国家 精确匹配") private String country; - @Schema(description ="生日 精确匹配") + @Schema(description = "生日 精确匹配") private LocalDate birthday; - @Schema(description ="推广员id 精确匹配") + @Schema(description = "推广员id 精确匹配") private Long spreadUid; - @Schema(description ="推广员关联时间 精确匹配") + @Schema(description = "推广员关联时间 精确匹配") private LocalDateTime spreadTime; - @Schema(description ="等级 精确匹配") + @Schema(description = "等级 精确匹配") private Integer level; - @Schema(description ="用户剩余积分 精确匹配") + @Schema(description = "用户剩余积分 精确匹配") private BigDecimal integral; - - public QueryWrapper toWapper(){ + public QueryWrapper toWapper() { QueryWrapper qw = new QueryWrapper<>(); qw.lambda() - .like(!StringUtils.isEmpty(this.getNickname()),Member::getNickname, this.getNickname()) - .eq(getId() != null,Member::getId, this.getId()) - .eq(status != null,Member::getStatus,status) - .eq(!getPhone().isEmpty(), Member::getPhoneEncrypted, phone); - qw.ge(getBeginTime() != null,"create_time", this.getBeginTime()); - qw.lt(getEndTime() != null,"create_time", this.getEndTime()); + .like(StringUtils.isNotEmpty(this.getNickname()), Member::getNickname, this.getNickname()) + .eq(getId() != null, Member::getId, this.getId()) + .eq(status != null, Member::getStatus, status) + .eq(StringUtils.isNotEmpty(this.getPhone()), Member::getPhoneEncrypted, phone); + qw.ge(getBeginTime() != null, "create_time", this.getBeginTime()); + qw.lt(getEndTime() != null, "create_time", this.getEndTime()); if (this.getHasMark() != null) { switch (this.getHasMark()) { case 0: - qw.isNull("mark").or().eq("mark",""); + qw.isNull("mark").or().eq("mark", ""); break; case 1: - qw.isNotNull("mark").ne("mark",""); + qw.isNotNull("mark").ne("mark", ""); break; default: break; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Fans.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Fans.java index 89425e57a..13172cb1e 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Fans.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Fans.java @@ -7,7 +7,6 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import org.dromara.common.core.domain.model.BaseAudit; -import org.dromara.common.excel.annotation.Excel; @TableName( "ums_fans") @Data @@ -22,8 +21,8 @@ public class Fans extends BaseAudit { /** * 作家用户id */ - @TableField( "vloger_id") - private String vlogerId; + @TableField( "vlogger_id") + private Long vloggerId; @@ -32,7 +31,7 @@ public class Fans extends BaseAudit { * 粉丝用户id */ @Schema(description ="粉丝id") - private String fanId; + private Long fanId; /** * 粉丝是否是vloger的朋友,如果成为朋友,则本表的双方此字段都需要设置为1,如果有一人取关,则两边都需要设置为0 diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberBlock.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberBlock.java new file mode 100644 index 000000000..cc7c24d5f --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/MemberBlock.java @@ -0,0 +1,30 @@ +package com.wzj.soopin.member.domain.po; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Builder; +import lombok.Data; +import org.dromara.common.core.domain.model.BaseAudit; + +/** + * 黑名单 + * + */ +@Schema(description="黑名单") +@Data +@TableName("ums_block") +@Builder(toBuilder = true) +public class MemberBlock extends BaseAudit { + + @Schema(description ="ID") + @TableId + private Long id; + + @Schema(description ="用户id") + private Long memberId; + + @Schema(description ="被拉黑人id") + private Long blockMemberId; + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberBlockVO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberBlockVO.java new file mode 100644 index 000000000..e8dff1a0e --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberBlockVO.java @@ -0,0 +1,27 @@ +package com.wzj.soopin.member.domain.vo; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.dromara.common.core.domain.model.BaseAudit; + +/** + * 黑名单 + * + */ +@Schema(description="黑名单") +@Data +public class MemberBlockVO extends BaseAudit { + + @Schema(description ="ID") + @TableId + private Long id; + + @Schema(description ="用户id") + private Long memberId; + + @Schema(description ="被拉黑人id") + private Long blockMemberId; + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/FansMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/FansMapper.java index ed7f3444d..c827ac852 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/FansMapper.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/FansMapper.java @@ -15,8 +15,4 @@ import java.util.Map; public interface FansMapper extends BaseMapperPlus { public List> getFollowedVlogerIds(@Param("currentUserId")String currentUserId,@Param("vlogerIds")List vlogerIds); - /** - * 根据vlogerId统计粉丝数量 - */ - int countFansByVlogerId(@Param("vlogerId") String vlogerId); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/MemberBlockMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/MemberBlockMapper.java new file mode 100644 index 000000000..3c3147e18 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/MemberBlockMapper.java @@ -0,0 +1,10 @@ +package com.wzj.soopin.member.mapper; + + +import com.wzj.soopin.member.domain.po.MemberBlock; +import com.wzj.soopin.member.domain.vo.MemberBlockVO; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + + +public interface MemberBlockMapper extends BaseMapperPlus { +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IFansService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IFansService.java index 639ba577b..fa2b1d290 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IFansService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IFansService.java @@ -9,27 +9,27 @@ public interface IFansService { /** * 关注 */ - public void doFollow(String myId, String vlogerId); + public void doFollow(Long myId, Long vloggerId); /** * 取关 */ - public void doCancel(String myId, String vlogerId); + public void doCancel(Long myId, Long vloggerId); /** * 查询用户是否关注博主 */ - public boolean queryDoIFollowVloger(String myId, String vlogerId); - + public boolean queryDoIFollowVloger(Long myId, Long vloggerId); + public boolean queryDoIFollowVloger(String myId, String vloggerId); /** * 查询我的粉丝列表 */ - public IPage queryMyFans(String myId, + public IPage queryMyFans(Long myId, Integer page, Integer pageSize); - Integer countFansByVlogerId(String vlogerId); + Long countFansByVloggerId(Long vloggerId); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberBlockService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberBlockService.java new file mode 100644 index 000000000..0c407b9f2 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberBlockService.java @@ -0,0 +1,15 @@ +package com.wzj.soopin.member.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.wzj.soopin.member.domain.po.MemberBlock; + +public interface IMemberBlockService extends IService { + + boolean hasBlocked(Long myId, Long vloggerId); + + + boolean addBlock(Long myId, Long vloggerId); + + void removeBlock(Long myId, Long vloggerId); + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java index d1d7f0957..222736215 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java @@ -31,14 +31,14 @@ public class FansServiceImpl extends ServiceImpl implements IF @Transactional @Override - public void doFollow(String myId, String vlogerId) { + public void doFollow(Long myId, Long vloggerId) { Fans fans = new Fans(); fans.setFanId(myId); - fans.setVlogerId(vlogerId); + fans.setVloggerId(vloggerId); // 判断对方是否关注我,如果关注我,那么双方都要互为朋友关系 - Fans vloger = queryFansRelationship(vlogerId, myId); + Fans vloger = queryFansRelationship(vloggerId, myId); if (vloger != null) { fans.setFriendFlag(YesOrNo.YES.type); fans.setBothFriend(YesOrNo.YES.type); @@ -57,9 +57,9 @@ public class FansServiceImpl extends ServiceImpl implements IF // rabbitTemplate.convertAndSend(RabbitMQConfig.EXCHANGE_MSG, "sys.msg." + MessageEnum.FOLLOW_YOU.enValue, JsonUtils.objectToJson(messageMO)); } - public Fans queryFansRelationship(String fanId, String vlogerId) { + public Fans queryFansRelationship(Long fanId, Long vlogerId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(Fans::getVlogerId, vlogerId) + queryWrapper.eq(Fans::getVloggerId, vlogerId) .eq(Fans::getFanId, fanId); return baseMapper.selectOne(queryWrapper); @@ -67,12 +67,12 @@ public class FansServiceImpl extends ServiceImpl implements IF @Transactional @Override - public void doCancel(String myId, String vlogerId) { + public void doCancel(Long myId, Long vloggerId) { // 判断我们是否朋友关系,如果是,则需要取消双方的关系 - Fans fan = queryFansRelationship(myId, vlogerId); + Fans fan = queryFansRelationship(myId, vloggerId); if (fan != null && fan.getFriendFlag() == YesOrNo.YES.type) { // 抹除双方的朋友关系,自己的关系删除即可 - Fans pendingFan = queryFansRelationship(vlogerId, myId); + Fans pendingFan = queryFansRelationship(vloggerId, myId); pendingFan.setFriendFlag(YesOrNo.NO.type); baseMapper.updateById(pendingFan); } @@ -84,15 +84,19 @@ public class FansServiceImpl extends ServiceImpl implements IF } @Override - public boolean queryDoIFollowVloger(String myId, String vlogerId) { - Fans vloger = queryFansRelationship(myId, vlogerId); - return vloger != null; + public boolean queryDoIFollowVloger(Long myId, Long vloggerId) { + Fans vlogger = queryFansRelationship(myId, vloggerId); + return vlogger != null; } - + @Override + public boolean queryDoIFollowVloger(String myId, String vloggerId) { + Fans vlogger = queryFansRelationship(Long.valueOf(myId), Long.valueOf(vloggerId)); + return vlogger != null; + } @Override - public IPage queryMyFans(String myId, Integer pageNo, Integer pageSize) { + public IPage queryMyFans(Long myId, Integer pageNo, Integer pageSize) { Map map = new HashMap<>(); map.put("myId", myId); // 查询粉丝列表 @@ -111,7 +115,7 @@ public class FansServiceImpl extends ServiceImpl implements IF } @Override - public Integer countFansByVlogerId(String vlogerId) { - return baseMapper.countFansByVlogerId(vlogerId); + public Long countFansByVloggerId(Long vloggerId) { + return baseMapper.selectCount(new LambdaQueryWrapper().eq(Fans::getVloggerId, vloggerId)); } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberBlockServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberBlockServiceImpl.java new file mode 100644 index 000000000..8c70caa43 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberBlockServiceImpl.java @@ -0,0 +1,56 @@ +package com.wzj.soopin.member.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wzj.soopin.member.convert.FeedbackConvert; +import com.wzj.soopin.member.convert.MemberConvert; +import com.wzj.soopin.member.domain.bo.FeedbackBO; +import com.wzj.soopin.member.domain.po.Feedback; +import com.wzj.soopin.member.domain.po.Member; +import com.wzj.soopin.member.domain.po.MemberBlock; +import com.wzj.soopin.member.domain.vo.FeedbackVO; +import com.wzj.soopin.member.mapper.FeedbackMapper; +import com.wzj.soopin.member.mapper.MemberBlockMapper; +import com.wzj.soopin.member.mapper.MemberMapper; +import com.wzj.soopin.member.service.IFeedbackService; +import com.wzj.soopin.member.service.IMemberBlockService; +import com.wzj.soopin.member.util.MemberCacheHelper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 意见反馈Service业务层处理 + * + * @author zcc + */ +@Service +@Slf4j +@RequiredArgsConstructor +public class MemberBlockServiceImpl extends ServiceImpl implements IMemberBlockService { + + + @Override + public boolean hasBlocked(Long myId, Long vloggerId) { + return this.count(new UpdateWrapper() + .eq("member_id", myId) + .eq("block_member_id", vloggerId)) > 0; + } + + @Override + public boolean addBlock(Long myId, Long vloggerId) { + return this.save( MemberBlock.builder().memberId(myId).blockMemberId(vloggerId).build()); + } + + + @Override + public void removeBlock(Long myId, Long vloggerId) { + baseMapper.delete(new UpdateWrapper() + .eq("member_id", myId) + .eq("block_member_id", vloggerId)); + } +} diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/ums/MemberAccountChangeRecord.xml b/ruoyi-modules/ruoyi-member/src/main/resources/ums/MemberAccountChangeRecord.xml new file mode 100644 index 000000000..636a22651 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/resources/ums/MemberAccountChangeRecord.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/ums/MemberBlockMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/ums/MemberBlockMapper.xml new file mode 100644 index 000000000..6f6f69beb --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/resources/ums/MemberBlockMapper.xml @@ -0,0 +1,5 @@ + + + + +