[fix]增加swaggerui,用于展示接口

This commit is contained in:
王庆祥 2025-06-12 15:24:57 +08:00
parent 12de7c2abf
commit 3ec075544d
38 changed files with 440 additions and 384 deletions

11
pom.xml
View File

@ -59,6 +59,7 @@
<flatten-maven-plugin.version>1.3.0</flatten-maven-plugin.version>
<!-- 打包默认跳过测试 -->
<skipTests>true</skipTests>
<knife4j.version>3.03</knife4j.version>
</properties>
<profiles>
@ -429,6 +430,16 @@
<version>1.6.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-springdoc-ui</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>${springdoc.version}</version>
</dependency>
</dependencies>
</dependencyManagement>

View File

@ -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:
# 过滤开关

View File

@ -26,6 +26,7 @@
<artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
</dependency>
<dependency>
<groupId>com.github.therapi</groupId>
<artifactId>therapi-runtime-javadoc</artifactId>
@ -36,6 +37,34 @@
<artifactId>jackson-module-kotlin</artifactId>
</dependency>
<!-- Swagger 2.0 注解兼容包 -->
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations</artifactId>
<version>2.2.15</version> <!-- 与 SpringDoc 版本匹配 -->
</dependency>
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-models</artifactId>
<version>2.2.15</version> <!-- 与 SpringDoc 版本匹配 -->
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.6.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-springdoc-ui</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -155,12 +155,7 @@
<artifactId>okhttp</artifactId>
<version>4.12.0</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.6.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>

View File

@ -97,12 +97,6 @@
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-sse</artifactId>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.6.2</version>
<scope>compile</scope>
</dependency>
</dependencies>

View File

@ -97,17 +97,7 @@
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-sse</artifactId>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.6.2</version>
<scope>compile</scope>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.github.pagehelper</groupId>-->
<!-- <artifactId>pagehelper-spring-boot-starter</artifactId>-->
<!-- <version>1.4.6</version>-->
<!-- </dependency>-->
</dependencies>
</project>

View File

@ -98,18 +98,6 @@
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-sse</artifactId>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-springdoc-ui</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.dromara</groupId>-->
<!-- <artifactId>ruoyi-goods</artifactId>-->
<!-- </dependency>-->
</dependencies>

View File

@ -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<IPage<FeedbackVO>> list(@RequestBody FeedbackBO query, Page page) {
Page<Feedback> 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<Object> remove(@PathVariable Long id) {

View File

@ -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<IPage<MemberAccountVO>> list(@RequestBody MemberAccountBO query, IPage page) {
Page<MemberAccount> list = (Page<MemberAccount>) service.page(page,query.toWrapper() );
return R.ok(convert.toVO(list));
}
@ApiOperation("导出会员账户表列表")
@Tag(name ="导出会员账户表列表")
@Log(title = "会员账户表", businessType = BusinessType.EXPORT)
@GetMapping("/export")
public ResponseEntity<String> 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<MemberAccount> getInfo(@PathVariable("memberId") Long memberId) {
return ResponseEntity.ok(service.getById(memberId));
}
@ApiOperation("新增会员账户表")
@Tag(name ="新增会员账户表")
@Log(title = "会员账户表", businessType = BusinessType.INSERT)
@PostMapping("/add")
public ResponseEntity<Object> add(@RequestBody MemberAccountBO memberAccount) {
return ResponseEntity.ok(service.save(convert.toPo(memberAccount)));
}
@ApiOperation("修改会员账户表")
@Tag(name ="修改会员账户表")
@Log(title = "会员账户表", businessType = BusinessType.UPDATE)
@PutMapping("/update")
public ResponseEntity<Object> edit(@RequestBody MemberAccountBO memberAccount) {
return ResponseEntity.ok(service.updateById(convert.toPo(memberAccount)));
}
@ApiOperation("删除会员账户表")
@Tag(name ="删除会员账户表")
@Log(title = "会员账户表", businessType = BusinessType.DELETE)
@DeleteMapping("/{memberId}")

View File

@ -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<MemberAddress> list =(Page<MemberAddress> ) service.page(page,query.toWrapper());
return R.ok(convert.toVO(list));
}
@ApiOperation("导出会员收货地址列表")
@Tag(name ="导出会员收货地址列表")
@Log(title = "会员收货地址", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public ResponseEntity<String> 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<MemberAddress> getInfo(@PathVariable("id") Long id) {
return ResponseEntity.ok(service.getById(id));
}
@ApiOperation("新增会员收货地址")
@Tag(name ="新增会员收货地址")
@Log(title = "会员收货地址", businessType = BusinessType.INSERT)
@PostMapping("/add")
public ResponseEntity<Object> 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<Object> remove(@PathVariable Long id) {

View File

@ -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<Page<MemberCartVO>> list(@RequestBody MemberCartBO query, IPage page) {
Page<MemberCart> userPage=(Page<MemberCart>) service.page(page,new QueryWrapper<MemberCart>());
Page<MemberCart> userPage = (Page<MemberCart>) service.page(page, new QueryWrapper<MemberCart>());
return R.ok(convert.toVO(userPage));
}
@ApiOperation("导出购物车列表")
@Tag(name = "导出购物车列表")
@Log(title = "购物车", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public R<String> export(MemberCartBO query) {
@ -52,29 +49,29 @@ public class MemberCartController extends BaseController {
return null;
}
@ApiOperation("获取购物车详细信息")
@Tag(name = "获取购物车详细信息")
@GetMapping(value = "/{id}")
public R<MemberCart> 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));
}

View File

@ -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<Page<MemberVO>> list(@RequestBody MemberBO bo, Page<Member> 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<MemberVO> 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<Integer> changeStatus(@RequestBody ChangeMemberStatusForm form){
return ResponseEntity.ok(service.changeStatus(form));
}
@ApiOperation("会员手机号解密")
@Tag(name ="会员手机号解密")
@GetMapping("phone/decrypt/{phoneEncrypted}")
public ResponseEntity<String> getPhoneDecrypted(@PathVariable String phoneEncrypted){
return ResponseEntity.ok(service.getPhoneDecrypted(phoneEncrypted));
}
@ApiOperation("查看会员统计数据")
@Tag(name ="查看会员统计数据")
@GetMapping("view/statistics/{memberId}")
public ResponseEntity<MemberDataStatisticsVO> viewStatistics(@PathVariable Long memberId){
// return ResponseEntity.ok(service.viewStatistics(memberId));

View File

@ -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<Page<MemberLoginInfoVO>> 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<MemberLoginInfoVO> 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}")

View File

@ -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;

View File

@ -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;

View File

@ -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;
}

View File

@ -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

View File

@ -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;

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<MemberLoginInfo> {
@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;

View File

@ -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;
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -40,11 +40,13 @@ public class FansServiceImpl extends ServiceImpl<FansMapper, Fans> 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<FansMapper, Fans> 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<FansMapper, Fans> 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);
}
}

View File

@ -78,7 +78,7 @@ public class FeedbackServiceImpl extends ServiceImpl<FeedbackMapper, Feedback> i
public Integer changeStatus(Feedback dto) {
UpdateWrapper<Feedback> 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);
}

View File

@ -97,18 +97,7 @@
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-sse</artifactId>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.6.2</version>
<scope>compile</scope>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.github.pagehelper</groupId>-->
<!-- <artifactId>pagehelper</artifactId>-->
<!-- <version>5.3.2</version>-->
<!-- <scope>compile</scope>-->
<!-- </dependency>-->
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-member</artifactId>