更新了商品类别

This commit is contained in:
chen-xin-zhi 2025-02-06 13:07:32 +08:00
parent 583c3f5007
commit 9082882cab
9 changed files with 62 additions and 31 deletions

View File

@ -277,7 +277,7 @@ public class CouponController {
/**
* 小程序端用户查看优惠券
* 小程序端用户根据状态查看优惠券
* @param commonStringRequest 优惠券状态
* @return 当前用户拥有的优惠券列表
*/
@ -396,6 +396,7 @@ public class CouponController {
Long userId = loginUser.getId();
QueryWrapper<UserCoupon> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("userId", userId);
queryWrapper.eq("status", "可用");
List<UserCoupon> userCouponList = userCouponService.list(queryWrapper);
userCouponList = userCouponList.stream().filter(userCoupon -> userCoupon.getCouponVO().getStatus().equals("可用")).toList();

View File

@ -484,9 +484,10 @@ public class GoodController {
ServiceGoodVO serviceGoodVO = new ServiceGoodVO();
BeanUtils.copyProperties(good, serviceGoodVO);
Long goodVOId = serviceGoodVO.getId();
// 获取预约日期表和预约时间段表合并的结果集
List<AppointmentDateTimePeriodVO> appointmentDateTimePeriodVOList = appointmentDateService.queryAppointmentDateDetailById(goodVOId);
List<AppointmentDateVO> appointmentDateVOList = new ArrayList<>();
// 封装预约日期和预约时间段
// 封装服务类商品的预约日期和预约时间段
Map<Long, List<TimePeriodVO>> timeMap = new HashMap<>();
Map<Long, AppointmentDateVO> dateMap = new HashMap<>();
for (AppointmentDateTimePeriodVO appointmentDateTimePeriodVO : appointmentDateTimePeriodVOList) {
@ -510,7 +511,23 @@ public class GoodController {
Set<Long> dateIds = dateMap.keySet();
for (Long dateId : dateIds) {
AppointmentDateVO appointmentDateVO = dateMap.get(dateId);
// 筛序掉已过期的预约日期
String specificDate = appointmentDateVO.getSpecificDate();
String today = DateUtil.today();
int result = DateUtil.compare(DateUtil.parse(specificDate), DateUtil.parse(today));
if (result < 0) continue;
List<TimePeriodVO> timePeriodVOList = timeMap.get(dateId);
if (result == 0) {
timePeriodVOList = timePeriodVOList.stream().filter(timePeriodVO -> {
String startTime = timePeriodVO.getTimeSlot().split("-")[0];
String currentTime = DateUtil.format(DateUtil.date(), "HH:mm");
Date startDate = DateUtil.parse(startTime, "HH:mm");
Date currentDate = DateUtil.parse(currentTime, "HH:mm");
return startDate.after(currentDate);
}).toList();
if (timePeriodVOList.isEmpty()) continue;
}
appointmentDateVO.setTimePeriodVOList(timePeriodVOList);
appointmentDateVOList.add(appointmentDateVO);
}

View File

@ -74,7 +74,6 @@ public class OrderController {
@Resource
private GoodService goodService;
@ -86,11 +85,11 @@ public class OrderController {
/**
* 用户通过购物车创建订单
* 小程序端用户创建常规类商品购物车订单
*/
@PostMapping("/add/cart")
@Transactional(rollbackFor = Exception.class)
@Operation(summary = "用户通过购物车创建订单", description = "参数购物车订单创建请求体权限所有人方法名addCartOrder")
@Operation(summary = "小程序端用户创建常规类商品购物车订单", description = "参数购物车订单创建请求体权限所有人方法名addCartOrder")
public BaseResponse<Long> addCartOrder(@RequestBody CartOrderAddRequest cartOrderAddRequest, HttpServletRequest request) {
if (cartOrderAddRequest == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
@ -99,7 +98,6 @@ public class OrderController {
User loginUser = userService.getLoginUser(request);
Long userId = loginUser.getId();
// 封装成订单创建请求体
OrderMainInfoAddRequest orderMainInfoAddRequest = new OrderMainInfoAddRequest();
BeanUtils.copyProperties(cartOrderAddRequest, orderMainInfoAddRequest);
@ -158,19 +156,32 @@ public class OrderController {
orderMainInfoAddRequest.setOrderItemMainInfoAddRequestList(orderItemMainInfoAddRequestList);
// 创建通用订单(常规类和服务类商品)
Long orderId = orderService.createCommonOrder(orderMainInfoAddRequest, userId, true, cartIds);
// 延迟检查订单状态信息
MultiDelayMessage<Long> msg = new MultiDelayMessage<>(orderId,
10000L, 10000L, 10000L, 15000L, 15000L, 30000L, 30000L, 60000L, 60000L, 120000L, 300000L, 600000L, 600000L);
// 10000L, 10000L, 10000L, 15000L, 15000L, 30000L, 30000L, 60000L, 60000L, 120000L, 300000L, 600000L, 600000L
int delayValue = msg.removeNextDelay().intValue();
rabbitTemplate.convertAndSend(MqConstant.DELAY_EXCHANGE,
MqConstant.DELAY_ORDER_ROUTING_KEY, msg, message -> {
// 添加延迟消息属性
message.getMessageProperties().setDelay(delayValue);
return message;
});
return ResultUtils.success(orderId);
}
/**
* 小程序端创建用户订单
* 小程序端用户创建常规类商品订单
* @param orderMainInfoAddRequest 订单创建请求体
* @return 是否创建成功
*/
@PostMapping("/add")
@Transactional(rollbackFor = Exception.class)
@Operation(summary = "小程序端创建用户订单", description = "参数订单创建请求体权限所有人方法名addOrder")
@Operation(summary = "小程序端用户创建常规类商品订单", description = "参数订单创建请求体权限所有人方法名addOrder")
public BaseResponse<Long> addOrder(@RequestBody OrderMainInfoAddRequest orderMainInfoAddRequest, HttpServletRequest request) {
if (orderMainInfoAddRequest == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
@ -203,7 +214,7 @@ public class OrderController {
/**
* 分页查询所有订单(包括订单明细)
* Web端管理员分页查询订单
* @param orderQueryRequest 订单查询请求体
* @return 订单列表信息
*/
@ -224,13 +235,29 @@ public class OrderController {
BeanUtils.copyProperties(order, orderVO);
return orderVO;
}).toList();
orderVOS.forEach(orderVO -> {
// 封装map集合订单id, 订单明细列表
Map<Long, List<OrderItems>> map = new HashMap<>();
List<OrderItems> orderItemsList = orderItemService.list();
for (OrderItems orderItems : orderItemsList) {
Long orderId = orderItems.getOrderId();
List<OrderItems> orderItemsArrayList = map.get(orderId);
if (orderItemsArrayList == null) {
orderItemsArrayList = new ArrayList<>();
}
orderItemsArrayList.add(orderItems);
map.put(orderId, orderItemsArrayList);
}
for (OrderVO orderVO : orderVOS) {
Long id = orderVO.getId();
QueryWrapper<OrderItems> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("orderId", id);
List<OrderItems> list = orderItemService.list(queryWrapper);
orderVO.setOrderItemList(list);
});
List<OrderItems> orderItemsTempList = map.get(id);
orderVO.setOrderItemList(orderItemsTempList);
}
Page<OrderVO> orderVOPage = new Page<>();
orderVOPage.setRecords(orderVOS);
orderVOPage.setTotal(page.getTotal());

View File

@ -53,11 +53,6 @@ public class AppointmentDate implements Serializable {
*/
private Date updateTime;
/**
* 是否删除
*/
private Integer isDelete;
@Serial
private static final long serialVersionUID = 1L;

View File

@ -57,10 +57,6 @@ public class TimePeriod implements Serializable {
*/
private Date updateTime;
/**
* 是否删除
*/
private Integer isDelete;
@Serial
private static final long serialVersionUID = 1L;

View File

@ -17,9 +17,6 @@ import java.util.Date;
*/
@TableName(value = "user")
@Data
//@Builder
//@AllArgsConstructor
//@NoArgsConstructor
public class User implements Serializable {
/**
* 用户编号

View File

@ -39,7 +39,6 @@ public class UserCoupon implements Serializable {
private CouponVO couponVO;
/**
* 创建时间
*/

View File

@ -21,7 +21,6 @@ public class UserCouponVO implements Serializable {
*/
@TableField(typeHandler = JacksonTypeHandler.class)
private CouponVO couponVO;

View File

@ -6,13 +6,13 @@
<select id="queryAppointmentDateDetail" resultType="com.cultural.heritage.model.vo.appointment.AppointmentDateTimePeriodVO">
select a.id, a.specificDate, a.isAvailable, a.goodId, t.id timePeriodId, t.timeSlot, t.minNumber, t.maxNumber
from appointment_date a, time_period t
where a.id = t.appointmentDateId and a.isDelete = 0 and t.isDelete = 0
where a.id = t.appointmentDateId
</select>
<select id="queryAppointmentDateDetailById" resultType="com.cultural.heritage.model.vo.appointment.AppointmentDateTimePeriodVO">
select a.id, a.specificDate, a.isAvailable, goodId, t.id timePeriodId, t.timeSlot, t.minNumber, t.maxNumber
from appointment_date a, time_period t
where a.id = t.appointmentDateId and a.isDelete = 0 and t.isDelete = 0 and a.goodId = #{goodId}
where a.id = t.appointmentDateId and a.goodId = #{goodId}
</select>
</mapper>