会员商品 优惠卷列表

This commit is contained in:
2024-09-02 15:30:32 +08:00
parent 119b6ba9c7
commit b3850469ec
14 changed files with 240 additions and 26 deletions

View File

@@ -0,0 +1,32 @@
package com.chaozhanggui.system.cashierservice.controller;
import com.chaozhanggui.system.cashierservice.entity.dto.UserCouponDto;
import com.chaozhanggui.system.cashierservice.service.TbUserCouponsService;
import com.chaozhanggui.system.cashierservice.sign.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("userConpons")
public class TbUserCouponsController {
/**
* 服务对象
*/
@Autowired
private TbUserCouponsService tbUserCouponsService;
/**
* 查询优惠卷
* @param conponDto
* @return
*/
@RequestMapping("find")
public Result queryByPage(@RequestBody UserCouponDto conponDto) {
return tbUserCouponsService.queryByPage(conponDto);
}
}

View File

@@ -2,6 +2,8 @@ package com.chaozhanggui.system.cashierservice.dao;
import com.chaozhanggui.system.cashierservice.entity.TbActivateInRecord;
import com.chaozhanggui.system.cashierservice.entity.TbProduct;
import com.chaozhanggui.system.cashierservice.entity.TbUserCoupons;
import com.chaozhanggui.system.cashierservice.entity.vo.UserCouponVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -31,6 +33,7 @@ public interface TbActivateInRecordMapper {
List<TbActivateInRecord> queryAll(TbActivateInRecord tbActivateInRecord);
List<TbProduct> queryByVipIdAndShopId(@Param("vipUserId") Integer vipUserId, @Param("shopId") Integer shopId);
List<UserCouponVo> queryVipPro(@Param("vipUserId") Integer vipUserId, @Param("shopId") Integer shopId);
int queryByVipIdAndShopIdAndProId(@Param("vipUserId") Integer vipUserId, @Param("shopId") Integer shopId,@Param("productId") Integer productId);
List<TbActivateInRecord> queryAllByVipIdAndShopIdAndProId(@Param("vipUserId") Integer vipUserId, @Param("shopId") Integer shopId,@Param("productId") Integer productId);

View File

@@ -1,6 +1,7 @@
package com.chaozhanggui.system.cashierservice.dao;
import com.chaozhanggui.system.cashierservice.entity.TbActivateOutRecord;
import com.chaozhanggui.system.cashierservice.entity.vo.UserCouponVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -29,6 +30,8 @@ public interface TbActivateOutRecordMapper {
*/
List<TbActivateOutRecord> queryAll(TbActivateOutRecord tbActivateOutRecord);
List<UserCouponVo> queryVipPro(@Param("vipUserId") Integer vipUserId, @Param("shopId") Integer shopId);
/**
* 新增数据

View File

@@ -1,6 +1,8 @@
package com.chaozhanggui.system.cashierservice.dao;
import com.chaozhanggui.system.cashierservice.entity.TbUserCoupons;
import com.chaozhanggui.system.cashierservice.entity.dto.UserCouponDto;
import com.chaozhanggui.system.cashierservice.entity.vo.UserCouponVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
@@ -18,6 +20,7 @@ public interface TbUserCouponsMapper {
int insertSelective(TbUserCoupons record);
TbUserCoupons selectByPrimaryKey(Integer id);
List<UserCouponVo> queryAllSelective(UserCouponDto record);
int updateByPrimaryKeySelective(TbUserCoupons record);

View File

@@ -7,10 +7,11 @@ import java.math.BigDecimal;
import java.util.Date;
@Data
public class TbUserCoupons implements Serializable {
public class TbUserCoupons implements Serializable{
private Integer id;
private String userId;
private String detail;
private Integer orderId;
private BigDecimal couponsPrice;

View File

@@ -0,0 +1,11 @@
package com.chaozhanggui.system.cashierservice.entity.dto;
import lombok.Data;
@Data
public class UserCouponDto extends BasePageDto{
private Integer userId;
private Integer status;
private Integer shopId;
}

View File

@@ -0,0 +1,33 @@
package com.chaozhanggui.system.cashierservice.entity.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class UserCouponVo {
/**
* 2 会员商品卷
*/
private Integer type;
/**
* 卷描述
*/
private String detail;
/**
* 优惠金额
*/
private BigDecimal couponsPrice = BigDecimal.ZERO;
/**
* 多少可用
*/
private BigDecimal couponsAmount = BigDecimal.ZERO;
/**
* 数量
*/
private Integer num;
/**
* 卷状态 0 未使用
*/
private String status;
}

View File

@@ -654,28 +654,7 @@ public class CartService {
couponAmount = userCoupons.getCouponsAmount();
} else {
TbUserCoupons userCoupons = userCouponsMapper.selectByPrimaryKey(couponsId);
if (Objects.isNull(userCoupons) || !userCoupons.getStatus().equals("0")) {
log.info("开始处理订单");
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("status", "fail");
jsonObject1.put("msg", "优惠券已使用");
jsonObject1.put("type", jsonObject.getString("type"));
jsonObject1.put("data", "");
PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), key, jsonObject.getString("userId"), true);
log.info("消息推送");
return;
}
if (N.gt(userCoupons.getCouponsAmount(), totalAmount)) {
log.info("开始处理订单");
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("status", "fail");
jsonObject1.put("msg", "订单金额小于优惠价金额");
jsonObject1.put("type", jsonObject.getString("type"));
jsonObject1.put("data", "");
PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), key, jsonObject.getString("userId"), true);
log.info("消息推送");
return;
}
totalAmount = totalAmount.subtract(userCoupons.getCouponsAmount());
userCoupons.setStatus("1");
userCoupons.setEndTime(DateUtils.getNewDate(new Date(), 5, 30));

View File

@@ -0,0 +1,22 @@
package com.chaozhanggui.system.cashierservice.service;
import com.chaozhanggui.system.cashierservice.entity.dto.UserCouponDto;
import com.chaozhanggui.system.cashierservice.sign.Result;
/**
* (TbUserCoupons)表服务接口
*
* @author ww
* @since 2024-09-02 13:38:20
*/
public interface TbUserCouponsService {
/**
* 分页查询
*
* @param tbUserCoupons 筛选条件
* @return 查询结果
*/
Result queryByPage(UserCouponDto tbUserCoupons);
}

View File

@@ -0,0 +1,70 @@
package com.chaozhanggui.system.cashierservice.service.impl;
import com.chaozhanggui.system.cashierservice.dao.TbActivateInRecordMapper;
import com.chaozhanggui.system.cashierservice.dao.TbActivateOutRecordMapper;
import com.chaozhanggui.system.cashierservice.dao.TbShopUserMapper;
import com.chaozhanggui.system.cashierservice.dao.TbUserCouponsMapper;
import com.chaozhanggui.system.cashierservice.entity.dto.UserCouponDto;
import com.chaozhanggui.system.cashierservice.entity.vo.ShopUserListVo;
import com.chaozhanggui.system.cashierservice.entity.vo.UserCouponVo;
import com.chaozhanggui.system.cashierservice.service.TbUserCouponsService;
import com.chaozhanggui.system.cashierservice.sign.CodeEnum;
import com.chaozhanggui.system.cashierservice.sign.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* (TbUserCoupons)表服务实现类
*
* @author ww
* @since 2024-09-02 13:38:20
*/
@Primary
@Service
public class TbUserCouponsServiceImpl implements TbUserCouponsService {
@Resource
private TbUserCouponsMapper tbUserCouponsMapper;
@Resource
private TbActivateInRecordMapper inRecordMapper;
@Resource
private TbActivateOutRecordMapper outRecordMapper;
@Autowired
private TbShopUserMapper tbShopUserMapper;
/**
* 分页查询
* @return 查询结果
*/
@Override
public Result queryByPage(UserCouponDto couponDto) {
// PageHelper.startPage(couponDto.getPage(), couponDto.getSize());
// List<TbUserCoupons> result = tbUserCouponsMapper.queryAllSelective(couponDto);
// return new Result(CodeEnum.SUCCESS, new PageInfo<>(result));
// List<UserCouponVo> result = tbUserCouponsMapper.queryAllSelective(couponDto);
List<UserCouponVo> result = new ArrayList<>();
List<ShopUserListVo> tbShopUsers = tbShopUserMapper.selectByUserId(couponDto.getUserId().toString(), couponDto.getShopId()==null?null:couponDto.getShopId().toString());
if (!CollectionUtils.isEmpty(tbShopUsers)) {
tbShopUsers.forEach(s -> {
if (couponDto.getStatus()==null || (couponDto.getStatus() != null && couponDto.getStatus() != 0)) {
List<UserCouponVo> unuseCoupon = inRecordMapper.queryVipPro(s.getMemberId().intValue(), s.getShopId().intValue());
result.addAll(unuseCoupon);
}
if (couponDto.getStatus()==null || (couponDto.getStatus() != null && couponDto.getStatus() != 1)) {
List<UserCouponVo> useCoupon = outRecordMapper.queryVipPro(s.getMemberId().intValue(), s.getShopId().intValue());
result.addAll(useCoupon);
}
});
}
return new Result(CodeEnum.SUCCESS, result);
}
}