[fix]测试会员接口

This commit is contained in:
王庆祥 2025-06-09 11:47:44 +08:00
parent dfb6459df0
commit 729ac67fea
28 changed files with 246 additions and 159 deletions

View File

@ -49,9 +49,9 @@ spring:
driverClassName: com.mysql.cj.jdbc.Driver driverClassName: com.mysql.cj.jdbc.Driver
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562 # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题) # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
url: jdbc:mysql://127.0.0.1:3306/sys?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true url: jdbc:mysql://82.156.121.2:23306/wzj?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
username: root username: wzj
password: 123 password: A085F27A43B0
# # 从库数据源 # # 从库数据源
# slave: # slave:
# lazy: true # lazy: true

View File

@ -142,7 +142,7 @@ tenant:
- ums_member_address - ums_member_address
- ums_feedback - ums_feedback
- ums_member_account - ums_member_account
- ums_member_logininfor - ums_member_login_info
- ums_member_cart - ums_member_cart
- oms_aftersale - oms_aftersale
- oms_aftersale_item - oms_aftersale_item
@ -185,7 +185,7 @@ mybatis-encryptor:
# 编码方式 BASE64/HEX。默认BASE64 # 编码方式 BASE64/HEX。默认BASE64
encode: BASE64 encode: BASE64
# 安全秘钥 对称算法的秘钥 如AESSM4 # 安全秘钥 对称算法的秘钥 如AESSM4
password: password: 123456
# 公私钥 非对称算法的公私钥 如SM2RSA # 公私钥 非对称算法的公私钥 如SM2RSA
publicKey: publicKey:
privateKey: privateKey:

View File

@ -310,4 +310,10 @@ public class EncryptUtils {
return SmUtil.sm3(data); return SmUtil.sm3(data);
} }
public static void main(String[] args) {
String data = "123456";
String password="1234567890123456";
System.out.println(encryptByAes(data,password));
}
} }

View File

@ -106,6 +106,10 @@
<groupId>com.github.xiaoymin</groupId> <groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-springdoc-ui</artifactId> <artifactId>knife4j-springdoc-ui</artifactId>
</dependency> </dependency>
<!-- <dependency>-->
<!-- <groupId>org.dromara</groupId>-->
<!-- <artifactId>ruoyi-goods</artifactId>-->
<!-- </dependency>-->
</dependencies> </dependencies>

View File

@ -43,7 +43,7 @@ public class FeedbackController {
@ApiOperation("查询意见反馈列表") @ApiOperation("查询意见反馈列表")
@PostMapping("/list") @PostMapping("/list")
public R<IPage<FeedbackVO>> list(@RequestBody FeedbackBO query, Page page) { public R<IPage<FeedbackVO>> list(@RequestBody FeedbackBO query, Page page) {
Page<Feedback> feedBackPage= (Page<Feedback>)service.page(page,query.toWrapper()); Page<Feedback> feedBackPage= service.page(page,query.toWrapper());
return R.ok(convert.toVO( feedBackPage)); return R.ok(convert.toVO( feedBackPage));
} }
@ -65,7 +65,7 @@ public class FeedbackController {
@ApiOperation(("修改状态")) @ApiOperation(("修改状态"))
@Log(title = "意见反馈", businessType = BusinessType.UPDATE) @Log(title = "意见反馈", businessType = BusinessType.UPDATE)
@PostMapping("/handle/status/change") @PostMapping("/handle/status/update")
public R changeStatus(@RequestBody FeedbackBO bo){ public R changeStatus(@RequestBody FeedbackBO bo){
return R.ok(service.updateById(convert.toPo(bo))); return R.ok(service.updateById(convert.toPo(bo)));
} }

View File

@ -58,14 +58,14 @@ public class MemberAccountController {
@ApiOperation("新增会员账户表") @ApiOperation("新增会员账户表")
@Log(title = "会员账户表", businessType = BusinessType.INSERT) @Log(title = "会员账户表", businessType = BusinessType.INSERT)
@PostMapping @PostMapping("/add")
public ResponseEntity<Object> add(@RequestBody MemberAccountBO memberAccount) { public ResponseEntity<Object> add(@RequestBody MemberAccountBO memberAccount) {
return ResponseEntity.ok(service.save(convert.toPo(memberAccount))); return ResponseEntity.ok(service.save(convert.toPo(memberAccount)));
} }
@ApiOperation("修改会员账户表") @ApiOperation("修改会员账户表")
@Log(title = "会员账户表", businessType = BusinessType.UPDATE) @Log(title = "会员账户表", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping("/update")
public ResponseEntity<Object> edit(@RequestBody MemberAccountBO memberAccount) { public ResponseEntity<Object> edit(@RequestBody MemberAccountBO memberAccount) {
return ResponseEntity.ok(service.updateById(convert.toPo(memberAccount))); return ResponseEntity.ok(service.updateById(convert.toPo(memberAccount)));
} }

View File

@ -48,7 +48,7 @@ public class MemberAddressController {
@ApiOperation("导出会员收货地址列表") @ApiOperation("导出会员收货地址列表")
@Log(title = "会员收货地址", businessType = BusinessType.EXPORT) @Log(title = "会员收货地址", businessType = BusinessType.EXPORT)
@GetMapping("/export") @PostMapping("/export")
public ResponseEntity<String> export(MemberAddressBO query) { public ResponseEntity<String> export(MemberAddressBO query) {
List<MemberAddress> list = service.list(query.toWrapper()); List<MemberAddress> list = service.list(query.toWrapper());
ExcelUtil<MemberAddressVO> util = new ExcelUtil<>(MemberAddressVO.class); ExcelUtil<MemberAddressVO> util = new ExcelUtil<>(MemberAddressVO.class);
@ -63,14 +63,14 @@ public class MemberAddressController {
@ApiOperation("新增会员收货地址") @ApiOperation("新增会员收货地址")
@Log(title = "会员收货地址", businessType = BusinessType.INSERT) @Log(title = "会员收货地址", businessType = BusinessType.INSERT)
@PostMapping @PostMapping("/add")
public ResponseEntity<Object> add(@RequestBody MemberAddress memberAddress) { public ResponseEntity<Object> add(@RequestBody MemberAddress memberAddress) {
return ResponseEntity.ok(service.save(memberAddress)); return ResponseEntity.ok(service.save(memberAddress));
} }
@ApiOperation("修改会员收货地址") @ApiOperation("修改会员收货地址")
@Log(title = "会员收货地址", businessType = BusinessType.UPDATE) @Log(title = "会员收货地址", businessType = BusinessType.UPDATE)
@PutMapping @PostMapping("/update")
public ResponseEntity edit(@RequestBody MemberAddress memberAddress) { public ResponseEntity edit(@RequestBody MemberAddress memberAddress) {
service.updateById(memberAddress); service.updateById(memberAddress);
return ResponseEntity.ok(null); return ResponseEntity.ok(null);

View File

@ -44,8 +44,8 @@ public class MemberCartController extends BaseController {
@ApiOperation("导出购物车列表") @ApiOperation("导出购物车列表")
@Log(title = "购物车", businessType = BusinessType.EXPORT) @Log(title = "购物车", businessType = BusinessType.EXPORT)
@GetMapping("/export") @PostMapping("/export")
public ResponseEntity<String> export(MemberCartBO query) { public R<String> export(MemberCartBO query) {
// List<MemberCart> list = service.selectList(query, null); // List<MemberCart> list = service.selectList(query, null);
// ExcelUtil<MemberCartVO> util = new ExcelUtil<>(MemberCartVO.class); // ExcelUtil<MemberCartVO> util = new ExcelUtil<>(MemberCartVO.class);
// return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "购物车数据")); // return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "购物车数据"));
@ -54,30 +54,28 @@ public class MemberCartController extends BaseController {
@ApiOperation("获取购物车详细信息") @ApiOperation("获取购物车详细信息")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public ResponseEntity<MemberCart> getInfo(@PathVariable("id") Long id) { public R<MemberCart> getInfo(@PathVariable("id") Long id) {
return ResponseEntity.ok(service.getById(id)); return R.ok(service.getById(id));
} }
// @ApiOperation("新增购物车") @ApiOperation("新增购物车")
// @Log(title = "购物车", businessType = BusinessType.INSERT) @Log(title = "购物车", businessType = BusinessType.INSERT)
// @PostMapping @PostMapping("/add")
// public ResponseEntity<Integer> add(@RequestBody MemberCart memberCart) { public R add(@RequestBody MemberCartBO memberCart) {
// return ResponseEntity.ok(service.insert(memberCart)); return R.ok(service.save(convert.toPo(memberCart)));
// } }
// @ApiOperation("修改购物车") @ApiOperation("修改购物车")
// @PreAuthorize("@ss.hasPermi('ums:memberCart:edit')") @Log(title = "购物车", businessType = BusinessType.UPDATE)
// @Log(title = "购物车", businessType = BusinessType.UPDATE) @PostMapping("/update")
// @PutMapping public R edit(@RequestBody MemberCartBO memberCart) {
// public ResponseEntity<Integer> edit(@RequestBody MemberCart memberCart) { return R.ok(service.updateById(convert.toPo(memberCart)));
// return ResponseEntity.ok(service.update(memberCart)); }
// }
// @ApiOperation("删除购物车") @ApiOperation("删除购物车")
// @PreAuthorize("@ss.hasPermi('ums:memberCart:remove')") @Log(title = "购物车", businessType = BusinessType.DELETE)
// @Log(title = "购物车", businessType = BusinessType.DELETE) @DeleteMapping("/{id}")
// @DeleteMapping("/{id}") public R remove(@PathVariable Long id) {
// public ResponseEntity<Integer> remove(@PathVariable Long id) { return R.ok(service.removeById(id));
// return ResponseEntity.ok(service.deleteById(id)); }
// }
} }

View File

@ -8,6 +8,7 @@ import com.wzj.soopin.member.convert.MemberConvert;
import com.wzj.soopin.member.domain.bo.MemberBO; import com.wzj.soopin.member.domain.bo.MemberBO;
import com.wzj.soopin.member.domain.form.ChangeMemberStatusForm; import com.wzj.soopin.member.domain.form.ChangeMemberStatusForm;
import com.wzj.soopin.member.domain.po.Member; 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.domain.vo.MemberVO;
import com.wzj.soopin.member.service.IMemberService; import com.wzj.soopin.member.service.IMemberService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -44,13 +45,14 @@ public class MemberController extends BaseController {
@PostMapping("list") @PostMapping("list")
public R<Page<MemberVO>> list(@RequestBody MemberBO bo, Page<Member> page) { public R<Page<MemberVO>> list(@RequestBody MemberBO bo, Page<Member> page) {
Page<Member> memberPage = service.page(page,bo.toWapper()); Page<Member> memberPage = service.page(page,bo.toWapper());
TableDataInfo.build(memberPage);
return R.ok(convert.toVO(memberPage)); return R.ok(convert.toVO(memberPage));
} }
@ApiOperation("导出会员信息列表") @ApiOperation("导出会员信息列表")
@SaCheckPermission("ums:member:export") @SaCheckPermission("ums:member:export")
@Log(title = "会员信息", businessType = BusinessType.EXPORT) @Log(title = "会员信息", businessType = BusinessType.EXPORT)
@GetMapping("export") @PostMapping("export")
public ResponseEntity<String> export(MemberBO query) { public ResponseEntity<String> export(MemberBO query) {
List<Member> list = service.list(query.toWapper()); List<Member> list = service.list(query.toWapper());
ExcelUtil<MemberVO> util = new ExcelUtil<>(MemberVO.class); ExcelUtil<MemberVO> util = new ExcelUtil<>(MemberVO.class);
@ -60,14 +62,14 @@ public class MemberController extends BaseController {
@ApiOperation("获取会员信息详细信息") @ApiOperation("获取会员信息详细信息")
@SaCheckPermission("ums:member:query") @SaCheckPermission("ums:member:query")
@GetMapping(value = "{id}") @GetMapping(value = "{id}")
public ResponseEntity<Member> getInfo(@PathVariable("id") Long id) { public ResponseEntity<MemberVO> getInfo(@PathVariable("id") Long id) {
return ResponseEntity.ok(service.getById(id)); return ResponseEntity.ok(convert.toVO(service.getById(id)));
} }
@ApiOperation("新增会员信息") @ApiOperation("新增会员信息")
@SaCheckPermission("'ums:member:add") @SaCheckPermission("'ums:member:add")
@Log(title = "会员信息", businessType = BusinessType.INSERT) @Log(title = "会员信息", businessType = BusinessType.INSERT)
@PostMapping("/ums/member") @PostMapping("add")
public R add(@RequestBody MemberBO member) { public R add(@RequestBody MemberBO member) {
return R.ok(service.save(convert.toPo(member))); return R.ok(service.save(convert.toPo(member)));
} }
@ -75,7 +77,7 @@ public class MemberController extends BaseController {
@ApiOperation("修改会员信息") @ApiOperation("修改会员信息")
@SaCheckPermission("ums:member:edit") @SaCheckPermission("ums:member:edit")
@Log(title = "会员信息", businessType = BusinessType.UPDATE) @Log(title = "会员信息", businessType = BusinessType.UPDATE)
@PutMapping("/ums/member") @PostMapping("update")
public R edit(@RequestBody MemberBO member) { public R edit(@RequestBody MemberBO member) {
return R.ok(service.updateById(convert.toPo(member))); return R.ok(service.updateById(convert.toPo(member)));
} }
@ -83,7 +85,7 @@ public class MemberController extends BaseController {
@ApiOperation("修改会员备注信息") @ApiOperation("修改会员备注信息")
@SaCheckPermission("ums:member:edit") @SaCheckPermission("ums:member:edit")
@Log(title = "会员备注信息", businessType = BusinessType.UPDATE) @Log(title = "会员备注信息", businessType = BusinessType.UPDATE)
@PostMapping("/ums/member/mark/update") @PostMapping("mark/update")
public ResponseEntity<Integer> editMark(@RequestBody Member member) { public ResponseEntity<Integer> editMark(@RequestBody Member member) {
return ResponseEntity.ok(service.updateMark(member)); return ResponseEntity.ok(service.updateMark(member));
} }
@ -91,17 +93,29 @@ public class MemberController extends BaseController {
@ApiOperation("删除会员信息") @ApiOperation("删除会员信息")
@SaCheckPermission("ums:member:remove") @SaCheckPermission("ums:member:remove")
@Log(title = "会员信息", businessType = BusinessType.DELETE) @Log(title = "会员信息", businessType = BusinessType.DELETE)
@DeleteMapping("/ums/member/{id}") @DeleteMapping("{id}")
public R remove(@PathVariable Long id) { public R remove(@PathVariable Long id) {
return R.ok(service.removeById(id)); return R.ok(service.removeById(id));
} }
@ApiOperation(("修改会员账户状态")) @ApiOperation(("修改会员账户状态"))
@Log(title = "会员信息", businessType = BusinessType.UPDATE) @Log(title = "会员信息", businessType = BusinessType.UPDATE)
@PostMapping("/ums/member/status/change") @PostMapping("status/change")
public ResponseEntity<Integer> changeStatus(@RequestBody ChangeMemberStatusForm form){ public ResponseEntity<Integer> changeStatus(@RequestBody ChangeMemberStatusForm form){
return ResponseEntity.ok(service.changeStatus(form)); return ResponseEntity.ok(service.changeStatus(form));
} }
@ApiOperation("会员手机号解密")
@GetMapping("phone/decrypt/{phoneEncrypted}")
public ResponseEntity<String> getPhoneDecrypted(@PathVariable String phoneEncrypted){
return ResponseEntity.ok(service.getPhoneDecrypted(phoneEncrypted));
}
@ApiOperation("查看会员统计数据")
@GetMapping("view/statistics/{memberId}")
public ResponseEntity<MemberDataStatisticsVO> viewStatistics(@PathVariable Long memberId){
// return ResponseEntity.ok(service.viewStatistics(memberId));
return null;
}
} }

View File

@ -0,0 +1,77 @@
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.MemberLoginInfoConvert;
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 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.web.core.BaseController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 会员登录记录Controller
*
* @author zcc
* @date 2023-07-26
*/
@Api(description ="会员登录记录接口列表")
@RestController
@RequestMapping("/ums/member/loginInfo/")
@RequiredArgsConstructor
public class MemberLoginInfoController extends BaseController {
private final IMemberLoginInfoService service;
private final MemberLoginInfoConvert convert;
@ApiOperation("查询会员登录记录列表")
@SaCheckPermission("ums:memberlogininfo:list")
@PostMapping("list")
public R<Page<MemberLoginInfoVO>> list(@RequestBody MemberLoginInfoBO query, Page page) {
Page<MemberLoginInfo> list = service.page(page,query.toWrapper());
return R.ok(convert.toVO(list));
}
@ApiOperation("导出会员登录记录列表")
@SaCheckPermission("ums:memberlogininfo:export")
@Log(title = "会员登录记录", businessType = BusinessType.EXPORT)
@PostMapping("export")
public R<String> export(MemberLoginInfoBO query) {
List<MemberLoginInfo> list = service.list(query.toWrapper());
ExcelUtil<MemberLoginInfoVO> util = new ExcelUtil<>(MemberLoginInfoVO.class);
return R.ok(util.writeExcel(convert.toVO(list), "会员登录记录数据"));
}
@ApiOperation("获取会员登录记录详细信息")
@SaCheckPermission("ums:memberlogininfo:query")
@GetMapping(value = "{id}")
public R<MemberLoginInfoVO> getInfo(@PathVariable("id") Long id) {
return R.ok(convert.toVO(service.getById(id)));
}
@ApiOperation("修改会员登录记录")
@SaCheckPermission("ums:memberlogininfo:edit")
@Log(title = "会员登录记录", businessType = BusinessType.UPDATE)
@PostMapping("/update")
public R edit(@RequestBody MemberLoginInfoBO memberLoginInfo) {
return R.ok(service.updateById(convert.toPo(memberLoginInfo)));
}
@ApiOperation("删除会员登录记录")
@SaCheckPermission("ums:memberlogininfo:remove")
@Log(title = "会员登录记录", businessType = BusinessType.DELETE)
@DeleteMapping("{id}")
public R remove(@PathVariable Long id) {
return R.ok(service.removeById(id));
}
}

View File

@ -6,6 +6,7 @@ import com.wzj.soopin.member.domain.po.Member;
import com.wzj.soopin.member.domain.vo.MemberVO; import com.wzj.soopin.member.domain.vo.MemberVO;
import org.dromara.common.web.core.BaseConverter; import org.dromara.common.web.core.BaseConverter;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import java.util.List; import java.util.List;
/** /**
@ -16,5 +17,11 @@ import java.util.List;
@Mapper(componentModel = "spring",uses = BaseConverter.class) @Mapper(componentModel = "spring",uses = BaseConverter.class)
public interface MemberConvert extends BaseConverter<MemberVO, MemberBO,Member> { public interface MemberConvert extends BaseConverter<MemberVO, MemberBO,Member> {
@Override
@Mapping(target = "phone", source ="phoneEncrypted" )
MemberVO toVO(Member member);
@Override
@Mapping(target = "phoneEncrypted", source ="phone")
Member toPo(MemberBO d);
} }

View File

@ -0,0 +1,16 @@
package com.wzj.soopin.member.convert;
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 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 MemberLoginInfoConvert extends BaseConverter<MemberLoginInfoVO, MemberLoginInfoBO, MemberLoginInfo> {
}

View File

@ -1,18 +0,0 @@
package com.wzj.soopin.member.convert;
import com.wzj.soopin.member.domain.po.MemberLogininfor;
import com.wzj.soopin.member.domain.vo.MemberLogininforVO;
import org.dromara.common.web.core.BaseConverter;
import org.mapstruct.Mapper;
import java.util.List;
/**
* 会员登录记录 DO <=> DTO <=> VO / BO / Query
*
* @author zcc
*/
@Mapper(componentModel = "spring",uses = BaseConverter.class)
public interface MemberLogininforConvert {
List<MemberLogininforVO> dos2vos(List<MemberLogininfor> list);
}

View File

@ -78,7 +78,7 @@ public class MemberBO extends BaseBO {
String phone = this.getPhone(); String phone = this.getPhone();
if (!StringUtils.isEmpty(phone)) { if (!StringUtils.isEmpty(phone)) {
// qw.eq("phone_encrypted", AesCryptoUtils.encrypt(aesKey, phone)); qw.eq("phone_encrypted", phone);
} }
if (!StringUtils.isEmpty(this.getBeginTime()) && !StringUtils.isEmpty(this.getEndTime())){ if (!StringUtils.isEmpty(this.getBeginTime()) && !StringUtils.isEmpty(this.getEndTime())){
qw.ge("create_time", this.getBeginTime()); qw.ge("create_time", this.getBeginTime());

View File

@ -1,8 +1,11 @@
package com.wzj.soopin.member.domain.bo; 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.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.dromara.common.core.domain.BaseBO;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -13,7 +16,7 @@ import java.time.LocalDateTime;
*/ */
@ApiModel(description="会员登录记录 查询 对象") @ApiModel(description="会员登录记录 查询 对象")
@Data @Data
public class MemberLogininforQuery { public class MemberLoginInfoBO extends BaseBO<MemberLoginInfo> {
@ApiModelProperty("会员手机号 精确匹配") @ApiModelProperty("会员手机号 精确匹配")
private String phone; private String phone;
@ -39,4 +42,8 @@ public class MemberLogininforQuery {
private String endTime; private String endTime;
@Override
public LambdaQueryWrapper<MemberLoginInfo> toWrapper() {
return super.toWrapper();
}
} }

View File

@ -13,7 +13,7 @@ import java.time.LocalDateTime;
*/ */
@ApiModel(description="用户微信信息 查询 对象") @ApiModel(description="用户微信信息 查询 对象")
@Data @Data
public class MemberWechatQuery { public class MemberWechatBO {
@ApiModelProperty("MEMBER_ID 精确匹配") @ApiModelProperty("MEMBER_ID 精确匹配")
private Long memberId; private Long memberId;

View File

@ -105,5 +105,15 @@ public class Member extends BaseAudit {
@Excel(name = "im签名") @Excel(name = "im签名")
private String userSig; // 添加 UserSig 属性 private String userSig; // 添加 UserSig 属性
@ApiModelProperty("发布视频")
@Excel(name = "发布视频")
private Integer vlogCount;
@ApiModelProperty("粉丝数")
@Excel(name = "粉丝数")
private Integer fansCount;
@ApiModelProperty("关注数")
@Excel(name = "关注数")
private Integer followCount;
} }

View File

@ -14,8 +14,8 @@ import java.time.LocalDateTime;
*/ */
@ApiModel(description="会员登录记录对象") @ApiModel(description="会员登录记录对象")
@Data @Data
@TableName("ums_member_logininfor") @TableName("ums_member_login_info")
public class MemberLogininfor { public class MemberLoginInfo {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty("ID") @ApiModelProperty("ID")

View File

@ -11,7 +11,7 @@ import java.time.LocalDateTime;
* @author zcc * @author zcc
*/ */
@Data @Data
public class MemberLogininforVO { public class MemberLoginInfoVO {
/** ID */ /** ID */
private Long id; private Long id;
/** 会员手机号 */ /** 会员手机号 */

View File

@ -1,6 +1,7 @@
package com.wzj.soopin.member.domain.vo; package com.wzj.soopin.member.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.dromara.common.excel.annotation.Excel; import org.dromara.common.excel.annotation.Excel;
@ -67,4 +68,16 @@ public class MemberVO {
/** openId */ /** openId */
@Excel(name = "openId") @Excel(name = "openId")
private String openId; private String openId;
/** openId */
@Excel(name = "userName")
private String userName;
private Integer vlogCount;
@ApiModelProperty("im签名")
@Excel(name = "im签名")
private Integer fansCount;
@ApiModelProperty("im签名")
@Excel(name = "im签名")
private Integer followCount;
} }

View File

@ -1,7 +1,7 @@
package com.wzj.soopin.member.mapper; package com.wzj.soopin.member.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wzj.soopin.member.domain.po.MemberLogininfor; import com.wzj.soopin.member.domain.po.MemberLoginInfo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -12,14 +12,14 @@ import java.util.List;
* *
* @author zcc * @author zcc
*/ */
public interface MemberLogininforMapper extends BaseMapper<MemberLogininfor> { public interface MemberLogininforMapper extends BaseMapper<MemberLoginInfo>{
/** /**
* 查询会员登录记录列表 * 查询会员登录记录列表
* *
* @param memberLogininfor 会员登录记录 * @param memberLogininfor 会员登录记录
* @return 会员登录记录集合 * @return 会员登录记录集合
*/ */
List<MemberLogininfor> selectByEntity(MemberLogininfor memberLogininfor); List<MemberLoginInfo> selectByEntity(MemberLoginInfo memberLogininfor);
int statLoginMember(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime); int statLoginMember(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
} }

View File

@ -1,4 +0,0 @@
package com.wzj.soopin.member.service;
public interface IMemberLoginRecordService {
}

View File

@ -52,4 +52,5 @@ public interface IMemberService extends IService<Member> {
String getPhoneDecrypted(String phoneEncrypted) ;
} }

View File

@ -0,0 +1,16 @@
package com.wzj.soopin.member.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wzj.soopin.member.domain.po.MemberLoginInfo;
import org.springframework.stereotype.Service;
/**
* 会员登录记录Service业务层处理
*
*
* @author zcc
*/
@Service
public interface IMemberLoginInfoService extends IService<MemberLoginInfo> {
}

View File

@ -0,0 +1,20 @@
package com.wzj.soopin.member.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wzj.soopin.member.domain.po.MemberLoginInfo;
import com.wzj.soopin.member.mapper.MemberLogininforMapper;
import com.wzj.soopin.member.service.IMemberLoginInfoService;
import org.springframework.stereotype.Service;
/**
* 会员登录记录Service业务层处理
*
*
* @author zcc
*/
@Service
public class MemberLoginInfoServiceImpl extends ServiceImpl<MemberLogininforMapper, MemberLoginInfo> implements IMemberLoginInfoService {
}

View File

@ -1,84 +0,0 @@
package com.wzj.soopin.member.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wzj.soopin.member.domain.po.Member;
import com.wzj.soopin.member.domain.po.MemberLogininfor;
import com.wzj.soopin.member.domain.bo.MemberLogininforQuery;
import com.wzj.soopin.member.mapper.MemberLogininforMapper;
import com.wzj.soopin.member.mapper.MemberMapper;
import com.wzj.soopin.member.service.IMemberLoginRecordService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 会员登录记录Service业务层处理
*
*
* @author zcc
*/
@Service
public class MemberLoginRecordServiceImpl extends ServiceImpl<MemberLogininforMapper, MemberLogininfor> implements IMemberLoginRecordService {
@Autowired
private MemberMapper memberMapper;
/**
* 查询会员登录记录列表
*
* @param query 查询条件
* @param page 分页条件
* @return 会员登录记录
*/
public List<MemberLogininfor> selectList(MemberLogininforQuery query, Pageable page) {
QueryWrapper<MemberLogininfor> qw = new QueryWrapper<>();
String phone = query.getPhone();
if (!StringUtils.isEmpty(phone)) {
LambdaQueryWrapper<Member> wrapper = new LambdaQueryWrapper<>();
// wrapper.eq(Member::getPhoneEncrypted, AesCryptoUtils.encrypt(aesKey, phone));
Member member = memberMapper.selectOne(wrapper);
if (member != null){
qw.eq("phone", member.getPhoneEncrypted());
}else {
qw.eq("phone", "-1");
}
}
// if (page != null) {
// PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize());
// }
String ipaddr = query.getIpaddr();
if (!StringUtils.isEmpty(ipaddr)) {
qw.eq("ipaddr", ipaddr);
}
String loginLocation = query.getLoginLocation();
if (!StringUtils.isEmpty(loginLocation)) {
qw.eq("login_location", loginLocation);
}
String browser = query.getBrowser();
if (!StringUtils.isEmpty(browser)) {
qw.eq("browser", browser);
}
String os = query.getOs();
if (!StringUtils.isEmpty(os)) {
qw.eq("os", os);
}
if (query.getBeginTime() != null && query.getEndTime() != null) {
qw.ge("login_time", query.getBeginTime());
qw.lt("login_time", query.getEndTime());
}
qw.orderByDesc("login_time");
return baseMapper.selectList(qw);
}
}

View File

@ -216,4 +216,8 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper,Member> implemen
} }
@Override
public String getPhoneDecrypted(String phoneEncrypted) {
return phoneEncrypted;
}
} }