Pu Zhibing
2024-11-29 b36a96a2241968732e33b2287a6bbe2f82d889ad
开发确认购物车订单逻辑
1个文件已添加
9个文件已修改
99 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/UserCouponClientFallbackFactory.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/UserCouponClient.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/CouponInfoVo.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/PaymentUserCouponVo.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserAddressController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/UserCouponService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserCouponServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ConfirmOrderVo.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/UserCouponClientFallbackFactory.java
@@ -3,6 +3,7 @@
import com.ruoyi.account.api.feignClient.UserCouponClient;
import com.ruoyi.account.api.vo.CouponInfoVo;
import com.ruoyi.account.api.vo.PaymentUserCoupon;
import com.ruoyi.account.api.vo.PaymentUserCouponVo;
import com.ruoyi.common.core.domain.R;
import org.springframework.cloud.openfeign.FallbackFactory;
@@ -18,7 +19,7 @@
        return new UserCouponClient() {
            
            @Override
            public R<List<CouponInfoVo>> getPaymentUserCoupon(PaymentUserCoupon paymentUserCoupon) {
            public R<List<PaymentUserCouponVo>> getPaymentUserCoupon(PaymentUserCoupon paymentUserCoupon) {
                return R.fail("根据id获取优惠券数据失败:" + cause.getMessage());
            }
        };
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/UserCouponClient.java
@@ -3,6 +3,7 @@
import com.ruoyi.account.api.factory.UserCouponClientFallbackFactory;
import com.ruoyi.account.api.vo.CouponInfoVo;
import com.ruoyi.account.api.vo.PaymentUserCoupon;
import com.ruoyi.account.api.vo.PaymentUserCouponVo;
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
@@ -24,5 +25,5 @@
     * @return
     */
    @PostMapping("/user-coupon/getPaymentUserCoupon")
    R<List<CouponInfoVo>> getPaymentUserCoupon(@RequestBody PaymentUserCoupon paymentUserCoupon);
    R<List<PaymentUserCouponVo>> getPaymentUserCoupon(@RequestBody PaymentUserCoupon paymentUserCoupon);
}
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/CouponInfoVo.java
@@ -1,38 +1,6 @@
package com.ruoyi.account.api.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @author zhibing.pu
 * @Date 2024/11/25 17:59
 */
@Data
@ApiModel
public class CouponInfoVo {
    @ApiModelProperty("优惠券id")
    private Long id;
    @ApiModelProperty("优惠券名称")
    private String name;
    @ApiModelProperty("优惠券类型 1=满减券,2=代金券,3=折扣券,4=商品券")
    private Integer couponType;
    @ApiModelProperty("满x元")
    private BigDecimal conditionAmount;
    @ApiModelProperty("减x元")
    private BigDecimal discountAmount;
    @ApiModelProperty("代金x元")
    private BigDecimal moneyAmount;
    @ApiModelProperty("折扣")
    private BigDecimal discount;
    @ApiModelProperty("有效期开始时间")
    private String periodStartTime;
    @ApiModelProperty("有效期结束时间")
    private String periodEndTime;
    @ApiModelProperty("是否可用")
    private Boolean available;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/PaymentUserCouponVo.java
New file
@@ -0,0 +1,36 @@
package com.ruoyi.account.api.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @author zhibing.pu
 * @Date 2024/11/29 16:39
 */
@Data
@ApiModel
public class PaymentUserCouponVo {
    @ApiModelProperty("优惠券id")
    private Long id;
    @ApiModelProperty("优惠券名称")
    private String name;
    @ApiModelProperty("优惠券类型 1=满减券,2=代金券,3=折扣券,4=商品券")
    private Integer couponType;
    @ApiModelProperty("满x元")
    private BigDecimal conditionAmount;
    @ApiModelProperty("减x元")
    private BigDecimal discountAmount;
    @ApiModelProperty("代金x元")
    private BigDecimal moneyAmount;
    @ApiModelProperty("折扣")
    private BigDecimal discount;
    @ApiModelProperty("有效期开始时间")
    private String periodStartTime;
    @ApiModelProperty("有效期结束时间")
    private String periodEndTime;
    @ApiModelProperty("是否可用")
    private Boolean available;
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserAddressController.java
@@ -63,7 +63,7 @@
    @PostMapping("/add")
    @ApiOperation(value = "添加", tags = {"小程序-个人中心首页-我的地址"})
    public R add(@RequestBody UserAddress userAddress){
        Long userId = tokenService.getLoginUserApplet().getUserId();
        Long userId = tokenService.getLoginUserApplet().getUserid();
        userAddress.setAppUserId(userId);
        userAddressService.save(userAddress);
        return R.ok();
@@ -87,7 +87,7 @@
    @PostMapping("/set")
    @ApiOperation(value = "设为默认", tags = {"小程序-个人中心首页-我的地址"})
    public R set(@RequestParam Integer id){
        Long userId = tokenService.getLoginUserApplet().getUserId();
        Long userId = tokenService.getLoginUserApplet().getUserid();
        List<UserAddress> list = userAddressService.lambdaQuery().eq(UserAddress::getAppUserId, userId).list();
        for (UserAddress userAddress : list) {
            userAddress.setIsDefault(0);
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java
@@ -7,6 +7,7 @@
import com.ruoyi.account.api.model.UserCoupon;
import com.ruoyi.account.api.model.UserPoint;
import com.ruoyi.account.api.vo.CouponInfoVo;
import com.ruoyi.account.api.vo.PaymentUserCouponVo;
import com.ruoyi.account.service.AppUserService;
import com.ruoyi.account.service.UserCouponService;
import com.ruoyi.account.service.UserPointService;
@@ -145,8 +146,8 @@
     */
    @ResponseBody
    @PostMapping("/getPaymentUserCoupon")
    public R<List<CouponInfoVo>> getPaymentUserCoupon(@RequestBody PaymentUserCoupon paymentUserCoupon){
        List<CouponInfoVo> userCoupon = userCouponService.getUserCoupon(paymentUserCoupon.getUserId(), paymentUserCoupon.getOrderMoney(), paymentUserCoupon.getType());
    public R<List<PaymentUserCouponVo>> getPaymentUserCoupon(@RequestBody PaymentUserCoupon paymentUserCoupon){
        List<PaymentUserCouponVo> userCoupon = userCouponService.getUserCoupon(paymentUserCoupon.getUserId(), paymentUserCoupon.getOrderMoney(), paymentUserCoupon.getType());
        return R.ok(userCoupon);
    }
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/UserCouponService.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.account.api.model.UserCoupon;
import com.ruoyi.account.api.vo.CouponInfoVo;
import com.ruoyi.account.api.vo.PaymentUserCouponVo;
import org.springframework.web.bind.annotation.RequestParam;
import java.math.BigDecimal;
@@ -23,5 +24,5 @@
     * @param userId
     * @return
     */
    List<CouponInfoVo> getUserCoupon(Long userId, BigDecimal orderMoney, Integer type);
    List<PaymentUserCouponVo> getUserCoupon(Long userId, BigDecimal orderMoney, Integer type);
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserCouponServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.api.vo.CouponInfoVo;
import com.ruoyi.account.api.vo.PaymentUserCouponVo;
import com.ruoyi.account.mapper.UserCouponMapper;
import com.ruoyi.account.api.model.UserCoupon;
import com.ruoyi.account.service.UserCouponService;
@@ -40,7 +41,7 @@
     * @return
     */
    @Override
    public List<CouponInfoVo> getUserCoupon(Long userId, BigDecimal orderMoney, Integer type) {
    public List<PaymentUserCouponVo> getUserCoupon(Long userId, BigDecimal orderMoney, Integer type) {
        List<UserCoupon> list = this.list(new LambdaQueryWrapper<UserCoupon>().eq(UserCoupon::getAppUserId, userId).eq(UserCoupon::getDelFlag, 0)
                .last(" and now() between start_time and end_time"));
        List<Integer> couponIds = list.stream().map(UserCoupon::getCouponId).collect(Collectors.toList());
@@ -50,10 +51,10 @@
        List<CouponInfo> couponInfoList = couponInfoClient.getCouponInfoList(couponIds).getData();
        //构建返回数据
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        List<CouponInfoVo> infoVoList = new ArrayList<>();
        List<PaymentUserCouponVo> infoVoList = new ArrayList<>();
        for (UserCoupon userCoupon : list) {
            CouponInfo couponInfo = couponInfoList.stream().filter(s -> s.getId().equals(userCoupon.getCouponId())).findFirst().get();
            CouponInfoVo couponInfoVo = new CouponInfoVo();
            PaymentUserCouponVo couponInfoVo = new PaymentUserCouponVo();
            couponInfoVo.setId(userCoupon.getId());
            couponInfoVo.setName(couponInfo.getCouponName());
            couponInfoVo.setCouponType(couponInfo.getCouponType());
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -12,6 +12,7 @@
import com.ruoyi.account.api.model.UserAddress;
import com.ruoyi.account.api.vo.CouponInfoVo;
import com.ruoyi.account.api.vo.PaymentUserCoupon;
import com.ruoyi.account.api.vo.PaymentUserCouponVo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.security.service.TokenService;
@@ -325,7 +326,7 @@
        paymentUserCoupon.setUserId(userid);
        paymentUserCoupon.setOrderMoney(orderMoney);
        paymentUserCoupon.setType(confirmOrder.getType());
        List<CouponInfoVo> data = userCouponClient.getPaymentUserCoupon(paymentUserCoupon).getData();
        List<PaymentUserCouponVo> data = userCouponClient.getPaymentUserCoupon(paymentUserCoupon).getData();
        confirmOrderVo.setCoupon(data);
        //获取快递策略
        SystemConfig systemConfig = systemConfigClient.getSystemConfig(3).getData();
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ConfirmOrderVo.java
@@ -2,6 +2,7 @@
import com.ruoyi.account.api.model.UserAddress;
import com.ruoyi.account.api.vo.CouponInfoVo;
import com.ruoyi.account.api.vo.PaymentUserCouponVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -45,5 +46,5 @@
    @ApiModelProperty("活动是否可以和优惠券同时使用")
    private Boolean useSimultaneously;
    @ApiModelProperty("优惠券列表")
    private List<CouponInfoVo> coupon;
    private List<PaymentUserCouponVo> coupon;
}