优惠券 信息 填充
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package com.czg.controller.user;
|
package com.czg.controller.user;
|
||||||
|
|
||||||
import com.czg.market.entity.MkPointsGoodsRecord;
|
import com.czg.market.entity.MkPointsGoodsRecord;
|
||||||
|
import com.czg.market.service.MkPointsGoodsRecordService;
|
||||||
import com.czg.market.service.MkPointsGoodsService;
|
import com.czg.market.service.MkPointsGoodsService;
|
||||||
import com.czg.order.dto.PointGoodsExchangeDTO;
|
import com.czg.order.dto.PointGoodsExchangeDTO;
|
||||||
import com.czg.order.dto.PointGoodsRefundDTO;
|
import com.czg.order.dto.PointGoodsRefundDTO;
|
||||||
@@ -9,6 +10,7 @@ import com.czg.resp.CzgResult;
|
|||||||
import com.czg.sa.StpKit;
|
import com.czg.sa.StpKit;
|
||||||
import com.czg.utils.ServletUtil;
|
import com.czg.utils.ServletUtil;
|
||||||
import com.mybatisflex.core.paginate.Page;
|
import com.mybatisflex.core.paginate.Page;
|
||||||
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@@ -28,7 +30,8 @@ public class UPointGoodsController {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private MkPointsGoodsService pointsGoodsService;
|
private MkPointsGoodsService pointsGoodsService;
|
||||||
|
@Resource
|
||||||
|
private MkPointsGoodsRecordService goodsRecordService;
|
||||||
@Resource
|
@Resource
|
||||||
private PointsGoodPayService goodPayService;
|
private PointsGoodPayService goodPayService;
|
||||||
|
|
||||||
@@ -87,4 +90,18 @@ public class UPointGoodsController {
|
|||||||
Page<MkPointsGoodsRecord> pages = pointsGoodsService.getGoodsRecordPage(page, size, shopId, status, StpKit.USER.getLoginIdAsLong());
|
Page<MkPointsGoodsRecord> pages = pointsGoodsService.getGoodsRecordPage(page, size, shopId, status, StpKit.USER.getLoginIdAsLong());
|
||||||
return CzgResult.success(pages);
|
return CzgResult.success(pages);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 兑换记录详情
|
||||||
|
*/
|
||||||
|
@GetMapping("/record/one")
|
||||||
|
public CzgResult<MkPointsGoodsRecord> getGoodsRecordOne(@RequestParam Long id,
|
||||||
|
@RequestParam Long shopId) {
|
||||||
|
QueryWrapper queryWrapper = QueryWrapper.create().eq(MkPointsGoodsRecord::getId, id).eq(MkPointsGoodsRecord::getShopId, shopId).eq(MkPointsGoodsRecord::getUserId, StpKit.USER.getLoginIdAsLong());
|
||||||
|
MkPointsGoodsRecord one = goodsRecordService.getOne(queryWrapper);
|
||||||
|
if (one != null) {
|
||||||
|
one.fillCouponInfo();
|
||||||
|
}
|
||||||
|
return CzgResult.success(one);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,12 @@
|
|||||||
package com.czg.market.entity;
|
package com.czg.market.entity;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.mybatisflex.annotation.Column;
|
import com.mybatisflex.annotation.Column;
|
||||||
import com.mybatisflex.annotation.Id;
|
import com.mybatisflex.annotation.Id;
|
||||||
import com.mybatisflex.annotation.KeyType;
|
import com.mybatisflex.annotation.KeyType;
|
||||||
import com.mybatisflex.annotation.Table;
|
import com.mybatisflex.annotation.Table;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@@ -14,6 +17,7 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 积分兑换记录 实体类。
|
* 积分兑换记录 实体类。
|
||||||
@@ -21,6 +25,7 @@ import lombok.NoArgsConstructor;
|
|||||||
* @author ww
|
* @author ww
|
||||||
* @since 2025-12-08
|
* @since 2025-12-08
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@Data
|
@Data
|
||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@@ -66,6 +71,10 @@ public class MkPointsGoodsRecord implements Serializable {
|
|||||||
* 商品类型 优惠劵 其它商品
|
* 商品类型 优惠劵 其它商品
|
||||||
*/
|
*/
|
||||||
private String goodsCategory;
|
private String goodsCategory;
|
||||||
|
/**
|
||||||
|
* 优惠劵信息
|
||||||
|
*/
|
||||||
|
private String couponJson;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 领取方式 店内自取、系统发放
|
* 领取方式 店内自取、系统发放
|
||||||
@@ -145,4 +154,23 @@ public class MkPointsGoodsRecord implements Serializable {
|
|||||||
* 是否删除 0否 1是
|
* 是否删除 0否 1是
|
||||||
*/
|
*/
|
||||||
private Integer isDel;
|
private Integer isDel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 优惠券信息
|
||||||
|
*/
|
||||||
|
@Column(ignore = true)
|
||||||
|
private ShopCoupon couponInfo;
|
||||||
|
|
||||||
|
|
||||||
|
public void fillCouponInfo() {
|
||||||
|
if ("优惠券".equals(goodsCategory)) {
|
||||||
|
if (StrUtil.isNotBlank(couponJson)) {
|
||||||
|
try {
|
||||||
|
couponInfo = JSONObject.parseObject(couponJson, ShopCoupon.class);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("解析优惠券信息失败", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.czg.service.market.service.impl;
|
package com.czg.service.market.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.util.NumberUtil;
|
|
||||||
import com.czg.account.entity.ShopUser;
|
import com.czg.account.entity.ShopUser;
|
||||||
import com.czg.account.service.ShopInfoService;
|
import com.czg.account.service.ShopInfoService;
|
||||||
import com.czg.account.service.ShopUserService;
|
import com.czg.account.service.ShopUserService;
|
||||||
@@ -8,13 +7,12 @@ import com.czg.account.vo.PointsExchangeSummaryVo;
|
|||||||
import com.czg.exception.CzgException;
|
import com.czg.exception.CzgException;
|
||||||
import com.czg.market.dto.MkPointsGoodsRecordDTO;
|
import com.czg.market.dto.MkPointsGoodsRecordDTO;
|
||||||
import com.czg.market.dto.MkPointsGoodsRecordQueryDTO;
|
import com.czg.market.dto.MkPointsGoodsRecordQueryDTO;
|
||||||
import com.czg.sa.StpKit;
|
|
||||||
import com.mybatisflex.core.paginate.Page;
|
|
||||||
import com.mybatisflex.core.query.QueryWrapper;
|
|
||||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
|
||||||
import com.czg.market.entity.MkPointsGoodsRecord;
|
import com.czg.market.entity.MkPointsGoodsRecord;
|
||||||
import com.czg.market.service.MkPointsGoodsRecordService;
|
import com.czg.market.service.MkPointsGoodsRecordService;
|
||||||
import com.czg.service.market.mapper.MkPointsGoodsRecordMapper;
|
import com.czg.service.market.mapper.MkPointsGoodsRecordMapper;
|
||||||
|
import com.mybatisflex.core.paginate.Page;
|
||||||
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
|
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||||
import org.apache.dubbo.config.annotation.DubboReference;
|
import org.apache.dubbo.config.annotation.DubboReference;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -47,6 +45,7 @@ public class MkPointsGoodsRecordServiceImpl extends ServiceImpl<MkPointsGoodsRec
|
|||||||
.like(MkPointsGoodsRecord::getGoodsCategory, param.getGoodsCategory())
|
.like(MkPointsGoodsRecord::getGoodsCategory, param.getGoodsCategory())
|
||||||
, MkPointsGoodsRecordDTO.class);
|
, MkPointsGoodsRecordDTO.class);
|
||||||
pages.getRecords().forEach(data -> {
|
pages.getRecords().forEach(data -> {
|
||||||
|
data.fillCouponInfo();
|
||||||
ShopUser shopUser = shopUserService.getOne(query().eq(ShopUser::getId, data.getShopUserId()).eq(ShopUser::getMainShopId, mainIdByShopId));
|
ShopUser shopUser = shopUserService.getOne(query().eq(ShopUser::getId, data.getShopUserId()).eq(ShopUser::getMainShopId, mainIdByShopId));
|
||||||
data.setHeadImg(shopUser.getHeadImg());
|
data.setHeadImg(shopUser.getHeadImg());
|
||||||
data.setNickName(shopUser.getNickName());
|
data.setNickName(shopUser.getNickName());
|
||||||
|
|||||||
@@ -3,20 +3,22 @@ package com.czg.service.market.service.impl;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.czg.BaseQueryParam;
|
import com.czg.BaseQueryParam;
|
||||||
import com.czg.exception.CzgException;
|
import com.czg.exception.CzgException;
|
||||||
import com.czg.market.entity.*;
|
import com.czg.market.entity.MkPointsGoods;
|
||||||
|
import com.czg.market.entity.MkPointsGoodsRecord;
|
||||||
|
import com.czg.market.entity.MkPointsUser;
|
||||||
|
import com.czg.market.entity.ShopCoupon;
|
||||||
import com.czg.market.service.MkPointsGoodsRecordService;
|
import com.czg.market.service.MkPointsGoodsRecordService;
|
||||||
|
import com.czg.market.service.MkPointsGoodsService;
|
||||||
import com.czg.market.service.MkPointsUserService;
|
import com.czg.market.service.MkPointsUserService;
|
||||||
import com.czg.market.service.ShopCouponService;
|
import com.czg.market.service.ShopCouponService;
|
||||||
import com.czg.order.dto.PointGoodsRefundDTO;
|
import com.czg.order.dto.PointGoodsRefundDTO;
|
||||||
import com.czg.utils.CzgStrUtils;
|
import com.czg.service.market.mapper.MkPointsGoodsMapper;
|
||||||
import com.czg.utils.PageUtil;
|
import com.czg.utils.PageUtil;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.mybatisflex.core.paginate.Page;
|
import com.mybatisflex.core.paginate.Page;
|
||||||
import com.mybatisflex.core.query.QueryWrapper;
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||||
import com.czg.market.service.MkPointsGoodsService;
|
|
||||||
import com.czg.service.market.mapper.MkPointsGoodsMapper;
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -97,7 +99,9 @@ public class MkPointsGoodsServiceImpl extends ServiceImpl<MkPointsGoodsMapper, M
|
|||||||
queryWrapper.eq(MkPointsGoodsRecord::getStatus, status);
|
queryWrapper.eq(MkPointsGoodsRecord::getStatus, status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return goodsRecordService.page(Page.of(page, size), queryWrapper);
|
Page<MkPointsGoodsRecord> pages = goodsRecordService.page(Page.of(page, size), queryWrapper);
|
||||||
|
pages.getRecords().forEach(MkPointsGoodsRecord::fillCouponInfo);
|
||||||
|
return pages;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.czg.service.order.service.impl;
|
|||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.RandomUtil;
|
import cn.hutool.core.util.RandomUtil;
|
||||||
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.czg.account.entity.ShopUser;
|
import com.czg.account.entity.ShopUser;
|
||||||
import com.czg.account.service.ShopUserService;
|
import com.czg.account.service.ShopUserService;
|
||||||
import com.czg.exception.CzgException;
|
import com.czg.exception.CzgException;
|
||||||
@@ -10,11 +11,9 @@ import com.czg.market.dto.MkShopCouponGiftDTO;
|
|||||||
import com.czg.market.entity.MkPointsGoods;
|
import com.czg.market.entity.MkPointsGoods;
|
||||||
import com.czg.market.entity.MkPointsGoodsRecord;
|
import com.czg.market.entity.MkPointsGoodsRecord;
|
||||||
import com.czg.market.entity.MkPointsUser;
|
import com.czg.market.entity.MkPointsUser;
|
||||||
|
import com.czg.market.entity.ShopCoupon;
|
||||||
import com.czg.market.enums.PointsConstant;
|
import com.czg.market.enums.PointsConstant;
|
||||||
import com.czg.market.service.MkPointsGoodsRecordService;
|
import com.czg.market.service.*;
|
||||||
import com.czg.market.service.MkPointsGoodsService;
|
|
||||||
import com.czg.market.service.MkPointsUserService;
|
|
||||||
import com.czg.market.service.MkShopCouponRecordService;
|
|
||||||
import com.czg.order.dto.PointGoodsExchangeDTO;
|
import com.czg.order.dto.PointGoodsExchangeDTO;
|
||||||
import com.czg.order.dto.PointGoodsRefundDTO;
|
import com.czg.order.dto.PointGoodsRefundDTO;
|
||||||
import com.czg.order.service.PointsGoodPayService;
|
import com.czg.order.service.PointsGoodPayService;
|
||||||
@@ -46,6 +45,8 @@ public class PointsGoodPayServiceImpl implements PointsGoodPayService {
|
|||||||
@Resource
|
@Resource
|
||||||
private MkPointsGoodsRecordService goodsRecordService;
|
private MkPointsGoodsRecordService goodsRecordService;
|
||||||
@Resource
|
@Resource
|
||||||
|
private ShopCouponService shopCouponService;
|
||||||
|
@Resource
|
||||||
private MkShopCouponRecordService couponRecordService;
|
private MkShopCouponRecordService couponRecordService;
|
||||||
@Resource
|
@Resource
|
||||||
@Lazy
|
@Lazy
|
||||||
@@ -151,6 +152,10 @@ public class PointsGoodPayServiceImpl implements PointsGoodPayService {
|
|||||||
}
|
}
|
||||||
record.setIsDel(0);
|
record.setIsDel(0);
|
||||||
if ("优惠券".equals(goods.getGoodsCategory())) {
|
if ("优惠券".equals(goods.getGoodsCategory())) {
|
||||||
|
ShopCoupon coupon = shopCouponService.getById(goods.getCouponId());
|
||||||
|
if (coupon != null) {
|
||||||
|
record.setCouponJson(JSONObject.toJSONString(coupon));
|
||||||
|
}
|
||||||
record.setStatus("已完成");
|
record.setStatus("已完成");
|
||||||
record.setCheckoutTime(LocalDateTime.now());
|
record.setCheckoutTime(LocalDateTime.now());
|
||||||
goodsRecordService.save(record);
|
goodsRecordService.save(record);
|
||||||
|
|||||||
Reference in New Issue
Block a user