From aa85ef8670aba373bb21bd3bd362406e0922b6c8 Mon Sep 17 00:00:00 2001
From: jieyuu <645634619@qq.com>
Date: Sun, 7 Jul 2024 17:23:08 +0800
Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=9C=B0=E5=9D=80=E7=AE=A1?=
=?UTF-8?q?=E7=90=86=E6=A8=A1=E5=9D=97=E5=BC=80=E5=8F=91=E5=9F=BA=E6=9C=AC?=
=?UTF-8?q?=E5=AE=8C=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../net/jieyuu/enums/AddressStatusEnum.java | 23 ++++
.../java/net/jieyuu/enums/BizCodeEnum.java | 55 ++++++++-
.../jieyuu/interceptor/LoginInterceptor.java | 15 +--
.../main/java/net/jieyuu/model/LoginUser.java | 2 +
.../net/jieyuu/config/InterceptorConfig.java | 7 +-
.../jieyuu/controller/AddressController.java | 43 +++++++-
.../net/jieyuu/controller/UserController.java | 30 +++--
.../net/jieyuu/request/AddressAddRequest.java | 63 +++++++++++
.../net/jieyuu/service/AddressService.java | 35 +++++-
.../java/net/jieyuu/service/UserService.java | 24 +++-
.../service/impl/AddressServiceImpl.java | 104 +++++++++++++++++-
.../jieyuu/service/impl/UserServiceImpl.java | 15 ++-
.../main/java/net/jieyuu/vo/AddressVO.java | 53 +++++++++
.../src/main/java/net/jieyuu/vo/UserVO.java | 43 ++++++++
.../test/java/net/jieyuu/biz/AddressTest.java | 6 +-
15 files changed, 478 insertions(+), 40 deletions(-)
create mode 100644 xdclass-common/src/main/java/net/jieyuu/enums/AddressStatusEnum.java
create mode 100644 xdclass-user-service/src/main/java/net/jieyuu/request/AddressAddRequest.java
create mode 100644 xdclass-user-service/src/main/java/net/jieyuu/vo/AddressVO.java
create mode 100644 xdclass-user-service/src/main/java/net/jieyuu/vo/UserVO.java
diff --git a/xdclass-common/src/main/java/net/jieyuu/enums/AddressStatusEnum.java b/xdclass-common/src/main/java/net/jieyuu/enums/AddressStatusEnum.java
new file mode 100644
index 0000000..e6fd331
--- /dev/null
+++ b/xdclass-common/src/main/java/net/jieyuu/enums/AddressStatusEnum.java
@@ -0,0 +1,23 @@
+package net.jieyuu.enums;
+
+public enum AddressStatusEnum {
+ /**
+ * 是默认收货地址
+ */
+ DEFAULT_STATUS(1),
+ /**
+ * 是默认收货地址
+ */
+ COMMON_STATUS(0);
+
+
+ private int status;
+
+ private AddressStatusEnum(int status) {
+ this.status = status;
+ }
+
+ public int getStatus() {
+ return status;
+ }
+}
diff --git a/xdclass-common/src/main/java/net/jieyuu/enums/BizCodeEnum.java b/xdclass-common/src/main/java/net/jieyuu/enums/BizCodeEnum.java
index fa39278..9773ff7 100644
--- a/xdclass-common/src/main/java/net/jieyuu/enums/BizCodeEnum.java
+++ b/xdclass-common/src/main/java/net/jieyuu/enums/BizCodeEnum.java
@@ -29,7 +29,60 @@ public enum BizCodeEnum {
ACCOUNT_UNREGISTER(250002, "账号不存在"),
ACCOUNT_PWD_ERROR(250003, "账号或者密码错误"),
ACCOUNT_UNLOGIN(250004, "账号未登录"),
- FILE_UPLOAD_USER_IMG_FAIL(600101, "用户头像文件上传失败");
+
+ /**
+ * 优惠券
+ */
+ COUPON_CONDITION_ERROR(270001,"优惠券条件错误"),
+ COUPON_UNAVAILABLE(270002,"没有可用的优惠券"),
+ COUPON_NO_EXITS(270003,"优惠券不存在"),
+ COUPON_NO_STOCK(270005,"优惠券库存不足"),
+ COUPON_OUT_OF_LIMIT(270006,"优惠券领取超过限制次数"),
+ COUPON_OUT_OF_TIME(270407,"优惠券不在领取时间范围"),
+ COUPON_GET_FAIL(270407,"优惠券领取失败"),
+ COUPON_RECORD_LOCK_FAIL(270409,"优惠券锁定失败"),
+
+ /**
+ * 订单
+ */
+ ORDER_CONFIRM_COUPON_FAIL(280001,"创建订单-优惠券使用失败,不满足价格条件"),
+ ORDER_CONFIRM_PRICE_FAIL(280002,"创建订单-验价失败"),
+ ORDER_CONFIRM_LOCK_PRODUCT_FAIL(280003,"创建订单-商品库存不足锁定失败"),
+ ORDER_CONFIRM_ADD_STOCK_TASK_FAIL(280004,"创建订单-新增商品库存锁定任务"),
+ ORDER_CONFIRM_TOKEN_NOT_EXIST(280008,"订单令牌缺少"),
+ ORDER_CONFIRM_TOKEN_EQUAL_FAIL(280009,"订单令牌不正确"),
+ ORDER_CONFIRM_NOT_EXIST(280010,"订单不存在"),
+ ORDER_CONFIRM_CART_ITEM_NOT_EXIST(280011,"购物车商品项不存在"),
+
+ /**
+ * 收货地址
+ */
+ ADDRESS_ADD_FAIL(290001,"新增收货地址失败"),
+ ADDRESS_DEL_FAIL(290002,"删除收货地址失败"),
+ ADDRESS_NO_EXITS(290003,"地址不存在"),
+
+ /**
+ * 支付
+ */
+ PAY_ORDER_FAIL(300001,"创建支付订单失败"),
+ PAY_ORDER_CALLBACK_SIGN_FAIL(300002,"支付订单回调验证签失败"),
+ PAY_ORDER_CALLBACK_NOT_SUCCESS(300003,"创建支付订单失败"),
+ PAY_ORDER_NOT_EXIST(300005,"订单不存在"),
+ PAY_ORDER_STATE_ERROR(300006,"订单状态不正常"),
+ PAY_ORDER_PAY_TIMEOUT(300007,"订单支付超时"),
+
+ /**
+ * 流控操作
+ */
+
+ CONTROL_FLOW(500101,"限流控制"),
+ CONTROL_DEGRADE(500201,"降级控制"),
+ CONTROL_AUTH(500301,"认证控制"),
+
+ /**
+ * 文件相关
+ */
+ FILE_UPLOAD_USER_IMG_FAIL(600101,"用户头像文件上传失败");
@Getter
private int code;
diff --git a/xdclass-common/src/main/java/net/jieyuu/interceptor/LoginInterceptor.java b/xdclass-common/src/main/java/net/jieyuu/interceptor/LoginInterceptor.java
index 76c5a79..1e1d8b2 100644
--- a/xdclass-common/src/main/java/net/jieyuu/interceptor/LoginInterceptor.java
+++ b/xdclass-common/src/main/java/net/jieyuu/interceptor/LoginInterceptor.java
@@ -41,11 +41,14 @@ public class LoginInterceptor implements HandlerInterceptor {
String name = (String) claims.get("name");
String mail = (String) claims.get("mail");
- LoginUser loginUser = new LoginUser();
- loginUser.setId(userId);
- loginUser.setMail(mail);
- loginUser.setHeadImg(headImg);
- loginUser.setName(name);
+// LoginUser loginUser = new LoginUser();
+
+ LoginUser loginUser = LoginUser.builder()
+ .headImg(headImg)
+ .id(userId)
+ .name(name)
+ .mail(mail)
+ .build();
//通过threadlocal传递用户信息
threadLocal.set(loginUser);
@@ -58,11 +61,9 @@ public class LoginInterceptor implements HandlerInterceptor {
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
- HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
- HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
}
}
diff --git a/xdclass-common/src/main/java/net/jieyuu/model/LoginUser.java b/xdclass-common/src/main/java/net/jieyuu/model/LoginUser.java
index 5d337f2..4736f8b 100644
--- a/xdclass-common/src/main/java/net/jieyuu/model/LoginUser.java
+++ b/xdclass-common/src/main/java/net/jieyuu/model/LoginUser.java
@@ -2,9 +2,11 @@ package net.jieyuu.model;
import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Builder;
import lombok.Data;
@Data
+@Builder
public class LoginUser {
/**
* 主键
diff --git a/xdclass-user-service/src/main/java/net/jieyuu/config/InterceptorConfig.java b/xdclass-user-service/src/main/java/net/jieyuu/config/InterceptorConfig.java
index 8226b8f..ea1d39a 100644
--- a/xdclass-user-service/src/main/java/net/jieyuu/config/InterceptorConfig.java
+++ b/xdclass-user-service/src/main/java/net/jieyuu/config/InterceptorConfig.java
@@ -12,15 +12,10 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Slf4j
public class InterceptorConfig implements WebMvcConfigurer {
- @Bean
- public LoginInterceptor loginInterceptor() {
- return new LoginInterceptor();
- }
-
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry
- .addInterceptor(loginInterceptor())
+ .addInterceptor(new LoginInterceptor())
//拦截的路径
.addPathPatterns("/api/user/*/**", "/api/address/*/**")
//放行的路径
diff --git a/xdclass-user-service/src/main/java/net/jieyuu/controller/AddressController.java b/xdclass-user-service/src/main/java/net/jieyuu/controller/AddressController.java
index 738cc7f..228585d 100644
--- a/xdclass-user-service/src/main/java/net/jieyuu/controller/AddressController.java
+++ b/xdclass-user-service/src/main/java/net/jieyuu/controller/AddressController.java
@@ -4,10 +4,16 @@ package net.jieyuu.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
+import net.jieyuu.enums.BizCodeEnum;
+import net.jieyuu.request.AddressAddRequest;
import net.jieyuu.service.AddressService;
+import net.jieyuu.utils.JsonData;
+import net.jieyuu.vo.AddressVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import java.util.List;
+
/**
*
* 电商-公司收发货地址表 前端控制器
@@ -18,19 +24,48 @@ import org.springframework.web.bind.annotation.*;
*/
@Api(tags = "收货地址模块")
@RestController
-@RequestMapping("/api/adderss/v1/")
+@RequestMapping("/api/address/v1/")
public class AddressController {
@Autowired
AddressService addressService;
@ApiOperation("根据id查询地址详情")
- @GetMapping("detail/{address_id}")
- public Object detail(
+ @GetMapping("find/{address_id}")
+ public JsonData detail(
@ApiParam(value = "地址", required = true)
@PathVariable("address_id") long id) {
- return addressService.detail(id);
+ AddressVO addressVO = addressService.detail(id);
+ return addressVO == null ? JsonData.buildResult(BizCodeEnum.ADDRESS_NO_EXITS) : JsonData.buildSuccess(addressVO);
}
+
+ @ApiOperation("新增收货地址")
+ @PostMapping("add")
+ public JsonData add(@ApiParam("地址对象")
+ @RequestBody AddressAddRequest addressAddRequest) {
+ addressService.add(addressAddRequest);
+ return JsonData.buildSuccess();
+ }
+
+ @ApiOperation("删除指定的收货地址")
+ @GetMapping("del/{address_id}")
+ public JsonData del(
+ @ApiParam(value = "地址", required = true)
+ @PathVariable("address_id") long id) {
+ int row = addressService.del(id);
+
+ return row == 1 ? JsonData.buildSuccess() : JsonData.buildResult(BizCodeEnum.ADDRESS_DEL_FAIL);
+ }
+
+
+ @ApiOperation("查询用户全部收货地址")
+ @GetMapping("/list")
+ public JsonData findUserAllAddress(){
+ List list= addressService.listUserAllAddress();
+ return JsonData.buildSuccess(list);
+ }
+
+
}
diff --git a/xdclass-user-service/src/main/java/net/jieyuu/controller/UserController.java b/xdclass-user-service/src/main/java/net/jieyuu/controller/UserController.java
index 9f877a7..6b19e6b 100644
--- a/xdclass-user-service/src/main/java/net/jieyuu/controller/UserController.java
+++ b/xdclass-user-service/src/main/java/net/jieyuu/controller/UserController.java
@@ -13,6 +13,7 @@ import net.jieyuu.service.NotifyService;
import net.jieyuu.service.UserService;
import net.jieyuu.utils.CommonUtil;
import net.jieyuu.utils.JsonData;
+import net.jieyuu.vo.UserVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpRequest;
import org.springframework.web.bind.annotation.*;
@@ -97,15 +98,28 @@ public class UserController {
}
- @ApiOperation("刷新accessToken")
- @PostMapping("refresh")
- public JsonData getRefreshToken(Map param) {
- //先从redis寻找refresh_token
- //refresh_token存在, 解密accessToken
- //重新调用JWTUtil 重新生成token
+// @ApiOperation("刷新accessToken")
+// @PostMapping("refresh")
+// public JsonData getRefreshToken(Map param) {
+// //先从redis寻找refresh_token
+// //refresh_token存在, 解密accessToken
+// //重新调用JWTUtil 重新生成token
+//
+// return null;
+// //不存在 重新登录
+// }
- return null;
- //不存在 重新登录
+
+ /**
+ * 个人信息查询
+ * @return
+ */
+ @ApiOperation("获取用户信息")
+ @GetMapping("detail")
+ public JsonData getUserInfo() {
+ UserVO userVO = userService.findUserDetail();
+ return JsonData.buildSuccess(userVO);
}
+
}
diff --git a/xdclass-user-service/src/main/java/net/jieyuu/request/AddressAddRequest.java b/xdclass-user-service/src/main/java/net/jieyuu/request/AddressAddRequest.java
new file mode 100644
index 0000000..374e316
--- /dev/null
+++ b/xdclass-user-service/src/main/java/net/jieyuu/request/AddressAddRequest.java
@@ -0,0 +1,63 @@
+package net.jieyuu.request;
+
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "地址对象", description = "新增收货地址对象")
+public class AddressAddRequest {
+
+ /**
+ * 用户id
+ */
+ private Long userId;
+
+ /**
+ * 是否默认收货地址:0->否;1->是
+ */
+ @ApiModelProperty(value = "是否默认收货地址:0->否;1->是", example = "0")
+ @JsonProperty("default_status")
+ private Integer defaultStatus;
+
+ /**
+ * 收发货人姓名
+ */
+ @ApiModelProperty(value = "收货人姓名", example = "桀杰捷")
+ @JsonProperty("receive_name")
+ private String receiveName;
+
+ /**
+ * 收货人电话
+ */
+ @ApiModelProperty(value = "收货人电话", example = "12343211234")
+ private String phone;
+
+ /**
+ * 省/直辖市
+ */
+ @ApiModelProperty(value = "省", example = "广东省")
+ private String province;
+
+ /**
+ * 市
+ */
+ @ApiModelProperty(value = "城市", example = "湛江市")
+ private String city;
+
+ /**
+ * 区
+ */
+ @ApiModelProperty(value = "区", example = "麻章区")
+ private String region;
+
+ /**
+ * 详细地址
+ */
+ @ApiModelProperty(value = "详细地址", example = "")
+ @JsonProperty("detail_address")
+ private String detailAddress;
+
+}
diff --git a/xdclass-user-service/src/main/java/net/jieyuu/service/AddressService.java b/xdclass-user-service/src/main/java/net/jieyuu/service/AddressService.java
index 05b4cd1..094ec0d 100644
--- a/xdclass-user-service/src/main/java/net/jieyuu/service/AddressService.java
+++ b/xdclass-user-service/src/main/java/net/jieyuu/service/AddressService.java
@@ -1,9 +1,11 @@
package net.jieyuu.service;
-import net.jieyuu.mapper.AddressMapper;
import net.jieyuu.model.AddressDO;
import com.baomidou.mybatisplus.extension.service.IService;
-import org.springframework.beans.factory.annotation.Autowired;
+import net.jieyuu.request.AddressAddRequest;
+import net.jieyuu.vo.AddressVO;
+
+import java.util.List;
/**
*
@@ -14,7 +16,34 @@ import org.springframework.beans.factory.annotation.Autowired;
* @since 2024-02-12
*/
public interface AddressService extends IService {
- public AddressDO detail(Long id);
+
+ /**
+ * 查找详情
+ *
+ * @param id
+ * @return
+ */
+ public AddressVO detail(Long id);
+ /**
+ * 新增收货地址
+ *
+ * @param addressAddRequest
+ */
+ void add(AddressAddRequest addressAddRequest);
+
+
+ /**
+ * 根据id删除地址
+ * @param addressId
+ * @return
+ */
+ int del(long addressId);
+
+ /**
+ * 查找用户全部收货地址
+ * @return
+ */
+ List listUserAllAddress();
}
diff --git a/xdclass-user-service/src/main/java/net/jieyuu/service/UserService.java b/xdclass-user-service/src/main/java/net/jieyuu/service/UserService.java
index c2c99f8..95c7b82 100644
--- a/xdclass-user-service/src/main/java/net/jieyuu/service/UserService.java
+++ b/xdclass-user-service/src/main/java/net/jieyuu/service/UserService.java
@@ -5,10 +5,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
import net.jieyuu.request.UserLoginRequest;
import net.jieyuu.request.UserRegisterRequest;
import net.jieyuu.utils.JsonData;
+import net.jieyuu.vo.UserVO;
/**
*
- * 服务类
+ * 服务类
*
*
* @author jieyuu
@@ -16,9 +17,26 @@ import net.jieyuu.utils.JsonData;
*/
public interface UserService extends IService {
- //用户注册
+ /**
+ * 用户注册
+ *
+ * @param userRegisterRequest
+ * @return
+ */
JsonData register(UserRegisterRequest userRegisterRequest);
- //用户登录
+ /**
+ * 用户登录
+ *
+ * @param loginRequest
+ * @return
+ */
JsonData login(UserLoginRequest loginRequest);
+
+ /**
+ * 查看用户详情
+ *
+ * @return
+ */
+ UserVO findUserDetail();
}
diff --git a/xdclass-user-service/src/main/java/net/jieyuu/service/impl/AddressServiceImpl.java b/xdclass-user-service/src/main/java/net/jieyuu/service/impl/AddressServiceImpl.java
index 759b030..96868eb 100644
--- a/xdclass-user-service/src/main/java/net/jieyuu/service/impl/AddressServiceImpl.java
+++ b/xdclass-user-service/src/main/java/net/jieyuu/service/impl/AddressServiceImpl.java
@@ -1,12 +1,25 @@
package net.jieyuu.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import net.jieyuu.enums.AddressStatusEnum;
+import net.jieyuu.interceptor.LoginInterceptor;
import net.jieyuu.model.AddressDO;
import net.jieyuu.mapper.AddressMapper;
+import net.jieyuu.model.LoginUser;
+import net.jieyuu.request.AddressAddRequest;
import net.jieyuu.service.AddressService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import net.jieyuu.vo.AddressVO;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
/**
*
@@ -17,14 +30,97 @@ import org.springframework.stereotype.Service;
* @since 2024-02-12
*/
@Service
+@Slf4j
public class AddressServiceImpl extends ServiceImpl implements AddressService {
@Autowired
private AddressMapper addressMapper;
@Override
- public AddressDO detail(Long id) {
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("id", id);
- return addressMapper.selectOne(queryWrapper);
+ public AddressVO detail(Long id) {
+ LoginUser loginUser = LoginInterceptor.threadLocal.get();
+
+ AddressDO addressDO = addressMapper.selectOne(new QueryWrapper()
+ .eq("id", id)
+ .eq("user_id", loginUser.getId()));
+
+ if (addressDO == null) {
+ return null;
+ }
+ AddressVO addressVO = new AddressVO();
+ BeanUtils.copyProperties(addressDO, addressVO);
+
+ return addressVO;
+ }
+
+ /**
+ * 新增收货地址
+ *
+ * @param addressAddRequest
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
+ public void add(AddressAddRequest addressAddRequest) {
+ LoginUser loginUser = LoginInterceptor.threadLocal.get();
+
+ AddressDO addressDO = new AddressDO();
+ addressDO.setCreateTime(new Date());
+
+ BeanUtils.copyProperties(addressAddRequest, addressDO);
+ addressDO.setUserId(loginUser.getId());
+
+ //查询是否有默认地址
+ if (addressDO.getDefaultStatus() == AddressStatusEnum.DEFAULT_STATUS.getStatus()) {
+ //查找数据库判断是否有默认地址
+ AddressDO defaultAddressDO = addressMapper.selectOne(new QueryWrapper()
+ .eq("user_id", loginUser.getId())
+ .eq("default_status", AddressStatusEnum.DEFAULT_STATUS.getStatus()));
+
+ if (defaultAddressDO != null) {
+ //修改为非默认地址
+ addressDO.setDefaultStatus(AddressStatusEnum.COMMON_STATUS.getStatus());
+ addressMapper.update(defaultAddressDO, new QueryWrapper().eq("id", defaultAddressDO.getId()));
+ }
+
+ }
+
+ int row = addressMapper.insert(addressDO);
+
+ //新增收货地址
+ log.info("新增收货地址:row={},data={}", row, addressDO);
+
+ }
+
+ @Override
+ public int del(long addressId) {
+ LoginUser loginUser = LoginInterceptor.threadLocal.get();
+
+ int rows = addressMapper.delete(
+ new QueryWrapper()
+ .eq("id", addressId)
+ .eq("user_id", loginUser.getId())
+ );
+
+ return rows;
+
+ }
+
+ @Override
+ public List listUserAllAddress() {
+
+ LoginUser loginUser = LoginInterceptor.threadLocal.get();
+
+ List list = addressMapper.selectList(
+ new QueryWrapper()
+ .eq("user_id", loginUser.getId())
+ );
+
+ //map映射
+ List addressVOList = list.stream().map(obj -> {
+ AddressVO addressVO = new AddressVO();
+ BeanUtils.copyProperties(obj, addressVO);
+ return addressVO;
+ }).collect(Collectors.toList());
+
+ return addressVOList;
}
}
diff --git a/xdclass-user-service/src/main/java/net/jieyuu/service/impl/UserServiceImpl.java b/xdclass-user-service/src/main/java/net/jieyuu/service/impl/UserServiceImpl.java
index 28ac379..c99ec4e 100644
--- a/xdclass-user-service/src/main/java/net/jieyuu/service/impl/UserServiceImpl.java
+++ b/xdclass-user-service/src/main/java/net/jieyuu/service/impl/UserServiceImpl.java
@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import net.jieyuu.enums.BizCodeEnum;
import net.jieyuu.enums.SendCodeEnum;
+import net.jieyuu.interceptor.LoginInterceptor;
import net.jieyuu.model.LoginUser;
import net.jieyuu.model.UserDO;
import net.jieyuu.mapper.UserMapper;
@@ -17,6 +18,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.jieyuu.utils.CommonUtil;
import net.jieyuu.utils.JWTUtil;
import net.jieyuu.utils.JsonData;
+import net.jieyuu.vo.UserVO;
import org.apache.commons.codec.digest.Md5Crypt;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
@@ -148,7 +150,7 @@ public class UserServiceImpl extends ServiceImpl implements
if (cryptPwd.equals(userDO.getPwd())) {
//登陆成功
//生成token令牌并且返回
- LoginUser loginUser = new LoginUser();
+ LoginUser loginUser = LoginUser.builder().build();
BeanUtils.copyProperties(userDO, loginUser);
//accessToken
String accessToken = JWTUtil.geneJsonWebToken(loginUser);
@@ -170,5 +172,16 @@ public class UserServiceImpl extends ServiceImpl implements
}
}
+ @Override
+ public UserVO findUserDetail() {
+ LoginUser loginUser = LoginInterceptor.threadLocal.get();
+
+ UserDO userDO = userMapper.selectOne(new QueryWrapper().eq("id", loginUser.getId()));
+
+ UserVO userVO = new UserVO();
+ BeanUtils.copyProperties(userDO, userVO);
+ return userVO;
+ }
+
}
diff --git a/xdclass-user-service/src/main/java/net/jieyuu/vo/AddressVO.java b/xdclass-user-service/src/main/java/net/jieyuu/vo/AddressVO.java
new file mode 100644
index 0000000..ce99f0b
--- /dev/null
+++ b/xdclass-user-service/src/main/java/net/jieyuu/vo/AddressVO.java
@@ -0,0 +1,53 @@
+package net.jieyuu.vo;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+
+@Data
+public class AddressVO {
+
+ private Long id;
+
+ /**
+ * 用户id
+ */
+ private Long userId;
+
+ /**
+ * 是否默认收货地址:0->否;1->是
+ */
+ @JsonProperty("default_status")
+ private Integer defaultStatus;
+
+ /**
+ * 收发货人姓名
+ */
+ @JsonProperty("receive_name")
+ private String receiveName;
+
+ /**
+ * 收货人电话
+ */
+ private String phone;
+
+ /**
+ * 省/直辖市
+ */
+ private String province;
+
+ /**
+ * 市
+ */
+ private String city;
+
+ /**
+ * 区
+ */
+ private String region;
+
+ /**
+ * 详细地址
+ */
+ private String detailAddress;
+}
diff --git a/xdclass-user-service/src/main/java/net/jieyuu/vo/UserVO.java b/xdclass-user-service/src/main/java/net/jieyuu/vo/UserVO.java
new file mode 100644
index 0000000..49c636c
--- /dev/null
+++ b/xdclass-user-service/src/main/java/net/jieyuu/vo/UserVO.java
@@ -0,0 +1,43 @@
+package net.jieyuu.vo;
+
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+
+@Data
+public class UserVO {
+ private Long id;
+
+ /**
+ * 昵称
+ */
+ private String name;
+
+ /**
+ * 头像
+ */
+ @JsonProperty("head_img")
+ private String headImg;
+
+ /**
+ * 用户签名
+ */
+ private String slogan;
+
+ /**
+ * 0表示女,1表示男
+ */
+ private Integer sex;
+
+ /**
+ * 积分
+ */
+ private Integer points;
+
+ /**
+ * 邮箱
+ */
+ private String mail;
+
+}
diff --git a/xdclass-user-service/src/test/java/net/jieyuu/biz/AddressTest.java b/xdclass-user-service/src/test/java/net/jieyuu/biz/AddressTest.java
index a9ac6bb..85f898e 100644
--- a/xdclass-user-service/src/test/java/net/jieyuu/biz/AddressTest.java
+++ b/xdclass-user-service/src/test/java/net/jieyuu/biz/AddressTest.java
@@ -2,8 +2,8 @@ package net.jieyuu.biz;
import lombok.extern.slf4j.Slf4j;
import net.jieyuu.UserServiceApplication;
-import net.jieyuu.model.AddressDO;
import net.jieyuu.service.AddressService;
+import net.jieyuu.vo.AddressVO;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,8 +22,8 @@ public class AddressTest {
@Test
public void testAddressDetail() {
- AddressDO addressDO = addressService.detail(1L);
- log.info(addressDO.toString());
+ AddressVO addressVO = addressService.detail(1L);
+ log.info(addressVO.toString());
}