diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberAddressController.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberAddressController.java index 0d35fa5..26f3414 100644 --- a/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberAddressController.java +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberAddressController.java @@ -2,11 +2,15 @@ package com.cyl.h5.controller; import com.cyl.h5.service.H5MemberAddressService; import com.cyl.ums.domain.MemberAddress; +import com.cyl.ums.pojo.dto.MemberAddressDTO; +import com.cyl.ums.pojo.vo.MemberAddressVO; import com.ruoyi.common.core.domain.AjaxResult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @RequestMapping("/h5/member/address") public class H5MemberAddressController { @@ -15,32 +19,32 @@ public class H5MemberAddressController { private H5MemberAddressService h5MemberAddressService; @GetMapping("/list") - public AjaxResult getList(){ - return AjaxResult.success(h5MemberAddressService.selectList()); + public ResponseEntity> getList(){ + return ResponseEntity.ok(h5MemberAddressService.selectList()); } @GetMapping("/default") - public ResponseEntity getDefault(){ + public ResponseEntity getDefault(){ return ResponseEntity.ok(h5MemberAddressService.getDefault()); } @PostMapping("/create") - public AjaxResult create(@RequestBody MemberAddress memberAddress){ - return AjaxResult.success(h5MemberAddressService.insert(memberAddress)); + public ResponseEntity create(@RequestBody MemberAddressDTO memberAddressDTO){ + return ResponseEntity.ok(h5MemberAddressService.insert(memberAddressDTO)); } @PutMapping("/update") - public AjaxResult update(@RequestBody MemberAddress memberAddress){ - return AjaxResult.success(h5MemberAddressService.update(memberAddress)); + public ResponseEntity update(@RequestBody MemberAddressDTO memberAddressDTO){ + return ResponseEntity.ok(h5MemberAddressService.update(memberAddressDTO)); } @GetMapping("/{id}") - public AjaxResult getInfo(@PathVariable Long id){ - return AjaxResult.success(h5MemberAddressService.selectById(id)); + public ResponseEntity getInfo(@PathVariable Long id){ + return ResponseEntity.ok(h5MemberAddressService.selectById(id)); } @DeleteMapping("/{id}") - public AjaxResult remove(@PathVariable Long id) { - return AjaxResult.success(h5MemberAddressService.deleteById(id)); + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(h5MemberAddressService.deleteById(id)); } } diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberAddressService.java b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberAddressService.java index 5d40cba..c7be2b8 100644 --- a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberAddressService.java +++ b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberAddressService.java @@ -4,16 +4,24 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.cyl.ums.domain.Member; import com.cyl.ums.domain.MemberAddress; import com.cyl.ums.mapper.MemberAddressMapper; +import com.cyl.ums.pojo.dto.MemberAddressDTO; +import com.cyl.ums.pojo.vo.MemberAddressVO; import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.utils.AesCryptoUtils; +import com.ruoyi.common.utils.PhoneUtils; import com.ruoyi.framework.config.LocalDataUtil; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** * 会员收货地址Service业务层处理 @@ -26,6 +34,9 @@ public class H5MemberAddressService { @Autowired private MemberAddressMapper memberAddressMapper; + @Value("${aes.key}") + private String aesKey; + /** * 查询会员收货地址 * @@ -33,29 +44,43 @@ public class H5MemberAddressService { * @return 会员收货地址 */ - public MemberAddress selectById(Long id) { - return memberAddressMapper.selectById(id); + public MemberAddressVO selectById(Long id) { + MemberAddress memberAddress = memberAddressMapper.selectById(id); + MemberAddressVO memberAddressVO = new MemberAddressVO(); + BeanUtils.copyProperties(memberAddress, memberAddressVO); + memberAddressVO.setPhone(AesCryptoUtils.decrypt(aesKey, memberAddress.getPhoneEncrypted())); + return memberAddressVO; } - public List selectList() { + public List selectList() { Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); MemberAddress memberAddress = new MemberAddress(); memberAddress.setMemberId(member.getId()); - return memberAddressMapper.selectByEntity(memberAddress); + List memberAddressesList = memberAddressMapper.selectByEntity(memberAddress); + return memberAddressesList.stream().map(it -> { + MemberAddressVO vo = new MemberAddressVO(); + BeanUtils.copyProperties(it, vo); + vo.setPhone(AesCryptoUtils.decrypt(aesKey, it.getPhoneEncrypted())); + return vo; + }).collect(Collectors.toList()); } /** * 新增会员收货地址 * - * @param memberAddress 会员收货地址 + * @param memberAddressDTO 会员收货地址 * @return 结果 */ - public int insert(MemberAddress memberAddress) { + public int insert(MemberAddressDTO memberAddressDTO) { Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); - if (memberAddress.getIsDefault() == 1) { + if (memberAddressDTO.getIsDefault() == 1) { //将别的设置为0 memberAddressMapper.updateDefault(0,member.getId()); } + MemberAddress memberAddress = new MemberAddress(); + BeanUtils.copyProperties(memberAddressDTO, memberAddress); + memberAddress.setPhoneHidden(PhoneUtils.hidePhone(memberAddressDTO.getPhone())); + memberAddress.setPhoneEncrypted(AesCryptoUtils.encrypt(aesKey, memberAddressDTO.getPhone())); memberAddress.setMemberId(member.getId()); memberAddress.setCreateTime(LocalDateTime.now()); return memberAddressMapper.insert(memberAddress); @@ -64,17 +89,22 @@ public class H5MemberAddressService { /** * 修改会员收货地址 * - * @param memberAddress 会员收货地址 + * @param memberAddressDTO 会员收货地址 * @return 结果 */ - public int update(MemberAddress memberAddress) { + public int update(MemberAddressDTO memberAddressDTO) { Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); - if (memberAddress.getIsDefault() == 1) { + if (memberAddressDTO.getIsDefault() == 1) { //将别的设置为0 memberAddressMapper.updateDefault(0,member.getId()); } + MemberAddress memberAddress = new MemberAddress(); + BeanUtils.copyProperties(memberAddressDTO, memberAddress); + memberAddress.setPhoneHidden(PhoneUtils.hidePhone(memberAddressDTO.getPhone())); + memberAddress.setPhoneEncrypted(AesCryptoUtils.encrypt(aesKey, memberAddressDTO.getPhone())); memberAddress.setUpdateTime(LocalDateTime.now()); + memberAddress.setUpdateBy(member.getId()); return memberAddressMapper.updateById(memberAddress); } @@ -100,12 +130,18 @@ public class H5MemberAddressService { return memberAddressMapper.deleteById(id); } - public MemberAddress getDefault() { + public MemberAddressVO getDefault() { Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("member_id",member.getId()); queryWrapper.eq("is_default",1); List list = memberAddressMapper.selectList(queryWrapper); - return CollectionUtils.isEmpty(list) ? null : list.get(0); + if (CollectionUtils.isEmpty(list)){ + return null; + } + MemberAddressVO memberAddressVO = new MemberAddressVO(); + BeanUtils.copyProperties(list.get(0), memberAddressVO); + memberAddressVO.setPhone(AesCryptoUtils.decrypt(aesKey, list.get(0).getPhoneEncrypted())); + return memberAddressVO; } } diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberService.java b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberService.java index 327adba..41f6802 100644 --- a/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberService.java +++ b/ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberService.java @@ -58,7 +58,6 @@ public class H5MemberService { this.validateVerifyCode(request.getUuid(), request.getMobile(), request.getCode()); //创建会员 Member member = new Member(); - member.setPhone(request.getMobile()); member.setPhoneEncrypted(AesCryptoUtils.encrypt(aesKey, request.getMobile())); member.setPhoneHidden(PhoneUtils.hidePhone(request.getMobile())); member.setPassword(SecurityUtils.encryptPassword(request.getPassword())); @@ -179,6 +178,7 @@ public class H5MemberService { Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO); MemberVO memberVO = new MemberVO(); BeanUtils.copyProperties(member, memberVO); + memberVO.setPhone(AesCryptoUtils.decrypt(aesKey, member.getPhoneEncrypted())); return memberVO; } } diff --git a/ruoyi-mall/src/main/java/com/cyl/ums/domain/Member.java b/ruoyi-mall/src/main/java/com/cyl/ums/domain/Member.java index a35cadd..03059e9 100644 --- a/ruoyi-mall/src/main/java/com/cyl/ums/domain/Member.java +++ b/ruoyi-mall/src/main/java/com/cyl/ums/domain/Member.java @@ -31,10 +31,6 @@ public class Member extends BaseAudit { @Excel(name = "密码") private String password; - @ApiModelProperty("手机号码") - @Excel(name = "手机号码") - private String phone; - @ApiModelProperty("加密手机号") private String phoneEncrypted; diff --git a/ruoyi-mall/src/main/java/com/cyl/ums/domain/MemberAddress.java b/ruoyi-mall/src/main/java/com/cyl/ums/domain/MemberAddress.java index b561ddf..d0496ba 100644 --- a/ruoyi-mall/src/main/java/com/cyl/ums/domain/MemberAddress.java +++ b/ruoyi-mall/src/main/java/com/cyl/ums/domain/MemberAddress.java @@ -28,9 +28,13 @@ public class MemberAddress extends BaseAudit { @Excel(name = "收货人名称") private String name; - @ApiModelProperty("PHONE") - @Excel(name = "PHONE") - private String phone; + @ApiModelProperty("隐藏前三位后四位的手机号") + @Excel(name = "隐藏前三位后四位的手机号") + private String phoneHidden; + + @ApiModelProperty("加密的手机号") + @Excel(name = "加密的手机号") + private String phoneEncrypted; @ApiModelProperty("是否为默认") @Excel(name = "是否为默认") diff --git a/ruoyi-mall/src/main/java/com/cyl/ums/pojo/dto/MemberAddressDTO.java b/ruoyi-mall/src/main/java/com/cyl/ums/pojo/dto/MemberAddressDTO.java new file mode 100644 index 0000000..68bbb60 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/ums/pojo/dto/MemberAddressDTO.java @@ -0,0 +1,18 @@ +package com.cyl.ums.pojo.dto; + +import lombok.Data; + +@Data +public class MemberAddressDTO { + private Long id; + private Long memberId; + private String name; + private String phone; + private Integer defaultStatus; + private String postCode; + private String province; + private String city; + private String district; + private String detailAddress; + private Integer isDefault; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/ums/pojo/vo/MemberAddressVO.java b/ruoyi-mall/src/main/java/com/cyl/ums/pojo/vo/MemberAddressVO.java index be11b6e..43f0e0e 100644 --- a/ruoyi-mall/src/main/java/com/cyl/ums/pojo/vo/MemberAddressVO.java +++ b/ruoyi-mall/src/main/java/com/cyl/ums/pojo/vo/MemberAddressVO.java @@ -22,6 +22,8 @@ public class MemberAddressVO extends BaseAudit { /** PHONE */ @Excel(name = "PHONE") private String phone; + @Excel(name = "隐藏前三位后四位的手机号") + private String phoneHidden; /** 是否为默认 */ @Excel(name = "是否为默认") private Integer defaultStatus; diff --git a/ruoyi-mall/src/main/java/com/cyl/ums/pojo/vo/MemberVO.java b/ruoyi-mall/src/main/java/com/cyl/ums/pojo/vo/MemberVO.java index 7a25392..10ab9ef 100644 --- a/ruoyi-mall/src/main/java/com/cyl/ums/pojo/vo/MemberVO.java +++ b/ruoyi-mall/src/main/java/com/cyl/ums/pojo/vo/MemberVO.java @@ -6,6 +6,7 @@ import java.time.LocalDateTime; import com.ruoyi.common.annotation.Excel; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseAudit; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * 会员信息 数据视图对象 @@ -19,9 +20,10 @@ public class MemberVO extends BaseAudit { /** 昵称 */ @Excel(name = "昵称") private String nickname; - /** 手机号码 */ - @Excel(name = "手机号码") + /** 手机号 */ private String phone; + /** 隐藏前三位后四位的手机号 */ + private String phoneHidden; /** 用户备注 */ @Excel(name = "用户备注") private String mark; diff --git a/ruoyi-mall/src/main/resources/mapper/ums/MemberAddressMapper.xml b/ruoyi-mall/src/main/resources/mapper/ums/MemberAddressMapper.xml index 473f047..b71180c 100644 --- a/ruoyi-mall/src/main/resources/mapper/ums/MemberAddressMapper.xml +++ b/ruoyi-mall/src/main/resources/mapper/ums/MemberAddressMapper.xml @@ -8,7 +8,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + + @@ -27,7 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, member_id, name, phone, default_status, post_code, province, city, district, detail_address, is_default, create_by, create_time, update_by, update_time from ums_member_address + select id, member_id, name, phone_hidden,phone_encrypted, default_status, post_code, province, city, district, detail_address, is_default, create_by, create_time, update_by, update_time from ums_member_address