新用户注册发放券功能feign编写

This commit is contained in:
jieyuu 2024-08-22 00:32:43 +08:00
parent beb9cf783d
commit 4c84214cd2
7 changed files with 58 additions and 12 deletions

View File

@ -4,7 +4,7 @@ package net.jieyuu.controller;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import net.jieyuu.enums.CouponCategoryEnum;
import net.jieyuu.request.NewUserRequest;
import net.jieyuu.request.NewUserCouponRequest;
import net.jieyuu.service.CouponService;
import net.jieyuu.utils.JsonData;
import org.springframework.beans.factory.annotation.Autowired;
@ -52,8 +52,8 @@ public class CouponController {
@ApiOperation("拉新发放优惠券")
@PostMapping("new_user_coupon")
public JsonData addNewUserCoupon(@ApiParam("用户对象") @RequestBody NewUserRequest newUserRequest) {
JsonData jsonData = couponService.initNewUserCoupon(newUserRequest);
public JsonData addNewUserCoupon(@ApiParam("用户对象") @RequestBody NewUserCouponRequest newUserCouponRequest) {
JsonData jsonData = couponService.initNewUserCoupon(newUserCouponRequest);
return jsonData;
}

View File

@ -8,7 +8,7 @@ import lombok.Data;
@ApiModel
@Data
public class NewUserRequest {
public class NewUserCouponRequest {
@ApiModelProperty(value = "新用户注册id", example = "19")
@JsonProperty("user_id")

View File

@ -2,7 +2,7 @@ package net.jieyuu.service;
import net.jieyuu.enums.CouponCategoryEnum;
import net.jieyuu.request.NewUserRequest;
import net.jieyuu.request.NewUserCouponRequest;
import net.jieyuu.utils.JsonData;
import java.util.Map;
@ -35,8 +35,8 @@ public interface CouponService {
/**
* 新用户注册发放优惠券
* @param newUserRequest
* @param newUserCouponRequest
* @return
*/
JsonData initNewUserCoupon(NewUserRequest newUserRequest);
JsonData initNewUserCoupon(NewUserCouponRequest newUserCouponRequest);
}

View File

@ -15,7 +15,7 @@ import net.jieyuu.model.CouponDO;
import net.jieyuu.mapper.CouponMapper;
import net.jieyuu.model.CouponRecordDO;
import net.jieyuu.model.LoginUser;
import net.jieyuu.request.NewUserRequest;
import net.jieyuu.request.NewUserCouponRequest;
import net.jieyuu.service.CouponService;
import net.jieyuu.utils.CommonUtil;
import net.jieyuu.utils.JsonData;
@ -136,15 +136,15 @@ public class CouponServiceImpl implements CouponService {
* <p>
* 本地发放优惠券需要构造token存入threadlocal
*
* @param newUserRequest
* @param newUserCouponRequest
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public JsonData initNewUserCoupon(NewUserRequest newUserRequest) {
public JsonData initNewUserCoupon(NewUserCouponRequest newUserCouponRequest) {
LoginUser loginUser = new LoginUser();
loginUser.setName(newUserRequest.getName());
loginUser.setId(newUserRequest.getUserId());
loginUser.setName(newUserCouponRequest.getName());
loginUser.setId(newUserCouponRequest.getUserId());
// 发放优惠券接口需要threadlocal
LoginInterceptor.threadLocal.set(loginUser);

View File

@ -0,0 +1,20 @@
package net.jieyuu.feign;
import net.jieyuu.request.NewUserCouponRequest;
import net.jieyuu.utils.JsonData;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(name = "xdclass-coupon-service")
public interface CouponFeignService {
/**
* 新用户注册发放优惠券
*
* @param newUserCouponRequest
* @return
*/
@PostMapping("/api/coupon/v1/new_user_coupon")
JsonData addNewUserCoupon(@RequestBody NewUserCouponRequest newUserCouponRequest);
}

View File

@ -0,0 +1,17 @@
package net.jieyuu.request;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class NewUserCouponRequest {
@JsonProperty("user_id")
private long userId;
@JsonProperty("name")
private String name;
}

View File

@ -6,10 +6,12 @@ import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import net.jieyuu.enums.BizCodeEnum;
import net.jieyuu.enums.SendCodeEnum;
import net.jieyuu.feign.CouponFeignService;
import net.jieyuu.interceptor.LoginInterceptor;
import net.jieyuu.model.LoginUser;
import net.jieyuu.model.UserDO;
import net.jieyuu.mapper.UserMapper;
import net.jieyuu.request.NewUserCouponRequest;
import net.jieyuu.request.UserLoginRequest;
import net.jieyuu.request.UserRegisterRequest;
import net.jieyuu.service.NotifyService;
@ -41,6 +43,8 @@ import java.util.List;
@Slf4j
public class UserServiceImpl extends ServiceImpl<UserMapper, UserDO> implements UserService {
@Autowired
private CouponFeignService couponFeignService;
@Autowired
private NotifyService notifyService;
@ -127,6 +131,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, UserDO> implements
* @param userDO
*/
private void userRegisterInitTask(UserDO userDO) {
NewUserCouponRequest request = new NewUserCouponRequest();
request.setName(userDO.getName());
request.setUserId(userDO.getId());
JsonData jsonData = couponFeignService.addNewUserCoupon(request);
log.info("发放新用户注册优惠券: {},结果:{}", request.toString(), jsonData.toString());
}