瀏覽代碼

订单列表完成

wangzhengliang 3 年之前
父節點
當前提交
e8df560125

+ 1 - 1
src/main/java/com/chuanghai/ihotel/aop/LoginCheckAspect.java

@@ -40,7 +40,7 @@ public class LoginCheckAspect {
     @Around("@annotation(com.chuanghai.ihotel.anno.AdminLoginCheck)")
     @Around("@annotation(com.chuanghai.ihotel.anno.AdminLoginCheck)")
     public Object userLoginCheck(ProceedingJoinPoint point) throws Throwable {
     public Object userLoginCheck(ProceedingJoinPoint point) throws Throwable {
         Claims claims = validateToken("admin_token");
         Claims claims = validateToken("admin_token");
-        Long adminId = (Long) claims.get("admin_id");
+        Long adminId = Long.valueOf((String) claims.get("admin_id"));
         if (adminId == null) {
         if (adminId == null) {
             throw new RRException(BizCodeEnume.TOKEN_INVALID);
             throw new RRException(BizCodeEnume.TOKEN_INVALID);
         }
         }

+ 26 - 4
src/main/java/com/chuanghai/ihotel/controller/HotelOrderController.java

@@ -1,5 +1,7 @@
 package com.chuanghai.ihotel.controller;
 package com.chuanghai.ihotel.controller;
 
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.chuanghai.ihotel.anno.AdminLoginCheck;
 import com.chuanghai.ihotel.anno.ParamCheck;
 import com.chuanghai.ihotel.anno.ParamCheck;
 import com.chuanghai.ihotel.anno.RepeatSubmit;
 import com.chuanghai.ihotel.anno.RepeatSubmit;
 import com.chuanghai.ihotel.anno.UserLoginCheck;
 import com.chuanghai.ihotel.anno.UserLoginCheck;
@@ -11,6 +13,7 @@ import com.chuanghai.ihotel.common.utils.PageParam;
 import com.chuanghai.ihotel.common.utils.PageUtils;
 import com.chuanghai.ihotel.common.utils.PageUtils;
 import com.chuanghai.ihotel.constant.RedisKey;
 import com.chuanghai.ihotel.constant.RedisKey;
 import com.chuanghai.ihotel.controller.request.ConfrimOrderRequest;
 import com.chuanghai.ihotel.controller.request.ConfrimOrderRequest;
+import com.chuanghai.ihotel.controller.request.OrderQueryRequest;
 import com.chuanghai.ihotel.controller.request.SubmitOrderRequest;
 import com.chuanghai.ihotel.controller.request.SubmitOrderRequest;
 import com.chuanghai.ihotel.entity.HotelOrderEntity;
 import com.chuanghai.ihotel.entity.HotelOrderEntity;
 import com.chuanghai.ihotel.service.HotelOrderService;
 import com.chuanghai.ihotel.service.HotelOrderService;
@@ -19,6 +22,7 @@ import com.chuanghai.ihotel.vo.ConfirmOrderVO;
 import com.chuanghai.ihotel.vo.LoginUserVO;
 import com.chuanghai.ihotel.vo.LoginUserVO;
 import com.chuanghai.ihotel.vo.OrderSubmitTokenVO;
 import com.chuanghai.ihotel.vo.OrderSubmitTokenVO;
 import com.chuanghai.ihotel.vo.OrderSubmitVO;
 import com.chuanghai.ihotel.vo.OrderSubmitVO;
+import com.chuanghai.ihotel.vo.UserOrderIndexVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.DeleteMapping;
@@ -116,12 +120,30 @@ public class HotelOrderController {
     }
     }
 
 
     /**
     /**
-     * 订单列表
+     * 订单列表【用户端】
+     * @param userToken 用户token
+     * @param pageParam 分页参数
+     * @param request 查询参数
+     * @return
      */
      */
-    @GetMapping("/list")
-    public CommonResult<PageUtils<HotelOrderEntity>> list(PageParam pageParam){
-        PageUtils page = hotelOrderService.queryPage(pageParam);
+    @UserLoginCheck
+    @GetMapping("/user/page")
+    public CommonResult<PageUtils<UserOrderIndexVO>> userOrderPage(@RequestHeader("user_token") String userToken,
+                                                                   PageParam pageParam,
+                                                                   OrderQueryRequest request) {
+        PageUtils page = hotelOrderService.userOrderPage(pageParam, request);
+        return CommonResult.ok().setResult(page);
+    }
 
 
+    /**
+     * 订单列表【管理端】
+     */
+    @AdminLoginCheck
+    @GetMapping("/admin/page")
+    public CommonResult<PageUtils<HotelOrderEntity>> page(@RequestHeader("admin_token") String adminToken,
+                                                          PageParam pageParam,
+                                                          OrderQueryRequest request){
+        PageUtils page = hotelOrderService.queryPage(pageParam, request);
         return CommonResult.ok().setResult(page);
         return CommonResult.ok().setResult(page);
     }
     }
 
 

+ 59 - 0
src/main/java/com/chuanghai/ihotel/controller/request/OrderQueryRequest.java

@@ -0,0 +1,59 @@
+package com.chuanghai.ihotel.controller.request;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @Author: codingliang
+ * @Description: 订单查询
+ * @Date: 2022-07-29 17:01
+ * @Version: V1.0
+ **/
+@Data
+public class OrderQueryRequest {
+    /**
+     * 订单id
+     */
+    private Long orderId;
+    /**
+     * 订单编号
+     */
+    private String orderNo;
+    /**
+     * 订单用户标识
+     */
+    private String userFlag;
+    /**
+     * 用户姓名
+     */
+    private String userName;
+    /**
+     * 用户手机号码
+     */
+    private String userPhone;
+    /**
+     * 房间编号
+     */
+    private String roomNo;
+    /**
+     * 房型id
+     */
+    private Long roomTypeId;
+    /**
+     * 状态 0已取消、1待支付、2待入住、3已入住、4-1退款中、4-2欠款待支付、5已完成
+     */
+    private String statu;
+    /**
+     * 最早入住时间 最早可入住时间
+     */
+    private LocalDateTime enableStartTime;
+    /**
+     * 最晚离店时间 最晚要离店时间
+     */
+    private LocalDateTime enableEndTime;
+    /**
+     * 删除标识 1正常,0删除
+     */
+    private String deleteFlag;
+}

+ 15 - 0
src/main/java/com/chuanghai/ihotel/entity/HotelOrderEntity.java

@@ -3,6 +3,9 @@ package com.chuanghai.ihotel.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.chuanghai.ihotel.util.BigDecimalSerializer;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import lombok.Data;
 import lombok.Data;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
@@ -59,8 +62,13 @@ public class HotelOrderEntity implements Serializable {
 	 */
 	 */
 	private String roomTypeName;
 	private String roomTypeName;
 	/**
 	/**
+	 * 房型主图
+	 */
+	private String roomTypeMasterImg;
+	/**
 	 * 实际支付金额
 	 * 实际支付金额
 	 */
 	 */
+	@JsonSerialize(using = BigDecimalSerializer.class)
 	private BigDecimal payAmount;
 	private BigDecimal payAmount;
 	/**
 	/**
 	 * 支付方式 (保留字段,页面暂不显示)
 	 * 支付方式 (保留字段,页面暂不显示)
@@ -69,10 +77,12 @@ public class HotelOrderEntity implements Serializable {
 	/**
 	/**
 	 * 下单时间
 	 * 下单时间
 	 */
 	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private LocalDateTime createTime;
 	private LocalDateTime createTime;
 	/**
 	/**
 	 * 支付时间
 	 * 支付时间
 	 */
 	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private LocalDateTime payTime;
 	private LocalDateTime payTime;
 	/**
 	/**
 	 * 订单状态 0已取消、1待支付、2待入住、3已入住、4待结账、5已完成
 	 * 订单状态 0已取消、1待支付、2待入住、3已入住、4待结账、5已完成
@@ -85,22 +95,27 @@ public class HotelOrderEntity implements Serializable {
 	/**
 	/**
 	 * 最早入住时间 最早可入住时间
 	 * 最早入住时间 最早可入住时间
 	 */
 	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private LocalDateTime enableStartTime;
 	private LocalDateTime enableStartTime;
 	/**
 	/**
 	 * 最晚离店时间 最晚要离店时间
 	 * 最晚离店时间 最晚要离店时间
 	 */
 	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private LocalDateTime enableEndTime;
 	private LocalDateTime enableEndTime;
 	/**
 	/**
 	 * 实际入住时间
 	 * 实际入住时间
 	 */
 	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private LocalDateTime realStartTime;
 	private LocalDateTime realStartTime;
 	/**
 	/**
 	 * 实际离店时间
 	 * 实际离店时间
 	 */
 	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private LocalDateTime realEndTime;
 	private LocalDateTime realEndTime;
 	/**
 	/**
 	 * 预计到店时间 预计到店时间
 	 * 预计到店时间 预计到店时间
 	 */
 	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private LocalDateTime mayIntoTime;
 	private LocalDateTime mayIntoTime;
 	/**
 	/**
 	 * 备注
 	 * 备注

+ 10 - 1
src/main/java/com/chuanghai/ihotel/service/HotelOrderService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.chuanghai.ihotel.common.utils.PageUtils;
 import com.chuanghai.ihotel.common.utils.PageUtils;
 import com.chuanghai.ihotel.common.utils.PageParam;
 import com.chuanghai.ihotel.common.utils.PageParam;
 import com.chuanghai.ihotel.controller.request.ConfrimOrderRequest;
 import com.chuanghai.ihotel.controller.request.ConfrimOrderRequest;
+import com.chuanghai.ihotel.controller.request.OrderQueryRequest;
 import com.chuanghai.ihotel.controller.request.SubmitOrderRequest;
 import com.chuanghai.ihotel.controller.request.SubmitOrderRequest;
 import com.chuanghai.ihotel.dto.EventMessageDTO;
 import com.chuanghai.ihotel.dto.EventMessageDTO;
 import com.chuanghai.ihotel.entity.HotelOrderEntity;
 import com.chuanghai.ihotel.entity.HotelOrderEntity;
@@ -21,7 +22,15 @@ import java.time.LocalDateTime;
  */
  */
 public interface HotelOrderService extends IService<HotelOrderEntity> {
 public interface HotelOrderService extends IService<HotelOrderEntity> {
 
 
-    PageUtils queryPage(PageParam pageParam);
+    PageUtils queryPage(PageParam pageParam, OrderQueryRequest request);
+
+    /**
+     * 用户端订单列表
+     * @param pageParam
+     * @param request
+     * @return
+     */
+    PageUtils userOrderPage(PageParam pageParam, OrderQueryRequest request);
 
 
     HotelOrderEntity findByOrderNo(String orderNo);
     HotelOrderEntity findByOrderNo(String orderNo);
 
 

+ 52 - 3
src/main/java/com/chuanghai/ihotel/service/impl/HotelOrderServiceImpl.java

@@ -15,6 +15,7 @@ import com.chuanghai.ihotel.config.JXNXSPayConfig;
 import com.chuanghai.ihotel.config.RabbitMQConfig;
 import com.chuanghai.ihotel.config.RabbitMQConfig;
 import com.chuanghai.ihotel.constant.TimeConstant;
 import com.chuanghai.ihotel.constant.TimeConstant;
 import com.chuanghai.ihotel.controller.request.ConfrimOrderRequest;
 import com.chuanghai.ihotel.controller.request.ConfrimOrderRequest;
+import com.chuanghai.ihotel.controller.request.OrderQueryRequest;
 import com.chuanghai.ihotel.controller.request.SubmitOrderRequest;
 import com.chuanghai.ihotel.controller.request.SubmitOrderRequest;
 import com.chuanghai.ihotel.dao.HotelOrderDao;
 import com.chuanghai.ihotel.dao.HotelOrderDao;
 import com.chuanghai.ihotel.dto.EventMessageDTO;
 import com.chuanghai.ihotel.dto.EventMessageDTO;
@@ -38,6 +39,7 @@ import com.chuanghai.ihotel.util.CommonUtil;
 import com.chuanghai.ihotel.vo.ConfirmOrderVO;
 import com.chuanghai.ihotel.vo.ConfirmOrderVO;
 import com.chuanghai.ihotel.vo.LoginUserVO;
 import com.chuanghai.ihotel.vo.LoginUserVO;
 import com.chuanghai.ihotel.vo.OrderSubmitVO;
 import com.chuanghai.ihotel.vo.OrderSubmitVO;
+import com.chuanghai.ihotel.vo.UserOrderIndexVO;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.amqp.rabbit.core.RabbitTemplate;
 import org.springframework.amqp.rabbit.core.RabbitTemplate;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
@@ -50,7 +52,9 @@ import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.time.temporal.ChronoUnit;
 import java.time.temporal.ChronoUnit;
+import java.util.List;
 import java.util.Map;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 
 @Slf4j
 @Slf4j
 @Service("hotelOrderService")
 @Service("hotelOrderService")
@@ -76,16 +80,61 @@ public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrder
     private RabbitMQConfig rabbitMQConfig;
     private RabbitMQConfig rabbitMQConfig;
 
 
     @Override
     @Override
-    public PageUtils queryPage(PageParam pageParam) {
+    public PageUtils queryPage(PageParam pageParam, OrderQueryRequest request) {
+        QueryWrapper<HotelOrderEntity> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(request.getOrderId() != null, "id", request.getOrderId());
+        queryWrapper.eq(StringUtils.hasText(request.getDeleteFlag()), "delete_flag", request.getDeleteFlag());
+        queryWrapper.eq(StringUtils.hasText(request.getOrderNo()), "order_no", request.getOrderNo());
+        queryWrapper.eq(StringUtils.hasText(request.getUserFlag()), "user_flag", request.getUserFlag());
+        queryWrapper.eq(StringUtils.hasText(request.getUserName()), "user_name", request.getUserName());
+        queryWrapper.eq(StringUtils.hasText(request.getUserPhone()), "user_phone", request.getUserPhone());
+        queryWrapper.eq(StringUtils.hasText(request.getRoomNo()), "room_no", request.getRoomNo());
+        queryWrapper.eq(request.getRoomTypeId() != null, "room_type_id", request.getRoomTypeId());
+
+        String statu = request.getStatu();
+        if (StringUtils.hasText(statu)) {
+            if (statu.contains("-")) {
+                String[] split = statu.split("-");
+                queryWrapper.eq("order_statu", split[0]);
+                queryWrapper.eq("biz_statu", split[1]);
+            } else {
+                queryWrapper.eq("order_statu", statu);
+            }
+        }
+
+        queryWrapper.ge(request.getEnableStartTime() != null, "enable_start_time", request.getEnableStartTime());
+        queryWrapper.le(request.getEnableStartTime() != null, "enable_end_time", request.getEnableStartTime());
+
         IPage<HotelOrderEntity> page = this.page(
         IPage<HotelOrderEntity> page = this.page(
                 new MyQuery<HotelOrderEntity>().getPage(pageParam),
                 new MyQuery<HotelOrderEntity>().getPage(pageParam),
-                new QueryWrapper<>()
+                queryWrapper
         );
         );
 
 
         return new PageUtils(page);
         return new PageUtils(page);
     }
     }
 
 
     @Override
     @Override
+    public PageUtils userOrderPage(PageParam pageParam, OrderQueryRequest request) {
+        pageParam.setOrderField("create_time");
+        pageParam.setOrder("desc");
+
+        LoginUserVO loginUserVO = LoginCheckAspect.threadLocal.get();
+        request.setUserFlag(loginUserVO.getCardNumber());
+        request.setDeleteFlag("1"); // 1未删除
+
+        PageUtils pageUtils = this.queryPage(pageParam, request);
+        List<HotelOrderEntity> list = pageUtils.getList();
+        List<UserOrderIndexVO> collect = list.stream().map(e -> {
+            UserOrderIndexVO vo = new UserOrderIndexVO();
+            BeanUtils.copyProperties(e, vo);
+            return vo;
+        }).collect(Collectors.toList());
+
+        pageUtils.setList(collect);
+        return pageUtils;
+    }
+
+    @Override
     public HotelOrderEntity findByOrderNo(String orderNo) {
     public HotelOrderEntity findByOrderNo(String orderNo) {
         QueryWrapper<HotelOrderEntity> queryWrapper = new QueryWrapper<>();
         QueryWrapper<HotelOrderEntity> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("order_no", orderNo);
         queryWrapper.eq("order_no", orderNo);
@@ -241,6 +290,7 @@ public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrder
         hotelOrder.setRoomId(roomId);
         hotelOrder.setRoomId(roomId);
         hotelOrder.setRoomNo(room.getRoomNo());
         hotelOrder.setRoomNo(room.getRoomNo());
         hotelOrder.setRoomTypeName(roomType.getTypeName());
         hotelOrder.setRoomTypeName(roomType.getTypeName());
+        hotelOrder.setRoomTypeMasterImg(roomType.getTypeImage().split(",")[0]);
         hotelOrder.setCreateTime(LocalDateTime.now());
         hotelOrder.setCreateTime(LocalDateTime.now());
         hotelOrder.setOrderStatu(OrderStatuEnum.WAIT_PAY.getCode());
         hotelOrder.setOrderStatu(OrderStatuEnum.WAIT_PAY.getCode());
         hotelOrder.setBizStatu(OrderBillStatuEnum.WAIT_HANDLE.getCode());
         hotelOrder.setBizStatu(OrderBillStatuEnum.WAIT_HANDLE.getCode());
@@ -326,5 +376,4 @@ public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrder
         roomRealtimeStatuService.releaseByBizId(orderEntity.getId());
         roomRealtimeStatuService.releaseByBizId(orderEntity.getId());
         return true;
         return true;
     }
     }
-
 }
 }

+ 3 - 3
src/main/java/com/chuanghai/ihotel/util/JWTUtil.java

@@ -42,8 +42,7 @@ public class JWTUtil {
      * @param loginUser
      * @param loginUser
      * @return
      * @return
      */
      */
-    public static String geneJsonWebTokne(LoginUserVO loginUser) {
-
+    public static String geneJsonWebToken(LoginUserVO loginUser) {
         if (loginUser == null) {
         if (loginUser == null) {
             throw new NullPointerException("对象为空");
             throw new NullPointerException("对象为空");
         }
         }
@@ -52,6 +51,7 @@ public class JWTUtil {
                 //配置payload
                 //配置payload
                 .claim("card_number", loginUser.getCardNumber())
                 .claim("card_number", loginUser.getCardNumber())
                 .claim("identity_type", loginUser.getIdentityType())
                 .claim("identity_type", loginUser.getIdentityType())
+                .claim("admin_id", loginUser.getAdminId().toString())
                 .setIssuedAt(new Date())
                 .setIssuedAt(new Date())
                 .setExpiration(new Date(CommonUtil.getCurrentTimestamp() + EXPIRED))
                 .setExpiration(new Date(CommonUtil.getCurrentTimestamp() + EXPIRED))
                 .signWith(SignatureAlgorithm.HS256, SECRET).compact();
                 .signWith(SignatureAlgorithm.HS256, SECRET).compact();
@@ -75,6 +75,6 @@ public class JWTUtil {
     }
     }
 
 
     public static void main(String[] args) {
     public static void main(String[] args) {
-        System.out.println(geneJsonWebTokne(LoginUserVO.builder().cardNumber("123456").identityType("1").build()));
+        System.out.println(geneJsonWebToken(LoginUserVO.builder().adminId(1L).cardNumber("123456").identityType("1").build()));
     }
     }
 }
 }

+ 60 - 0
src/main/java/com/chuanghai/ihotel/vo/UserOrderIndexVO.java

@@ -0,0 +1,60 @@
+package com.chuanghai.ihotel.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @Author: codingliang
+ * @Description: 用户订单首页vo
+ * @Date: 2022-07-29 16:50
+ * @Version: V1.0
+ **/
+@Data
+public class UserOrderIndexVO {
+
+    /**
+     * 订单id
+     */
+    private Long id;
+    /**
+     * 订单编号
+     */
+    private String orderNo;
+    /**
+     * 入住时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+    /**
+     * 离店时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime enableStartTime;
+    /**
+     * 下单时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime enableEndTime;
+    /**
+     * 订单状态 0已取消、1待支付、2待入住、3已入住、4待结账、5已完成
+     */
+    private String orderStatu;
+    /**
+     * 业务状态 0待处理、1发起退款、2发起结账支付、3退款或结账支付完成,订单状态为4的时候,显示该状态
+     */
+    private String bizStatu;
+    /**
+     * 房型id
+     */
+    private Long roomTypeId;
+    /**
+     * 房型名称
+     */
+    private String roomTypeName;
+    /**
+     * 房型主图
+     */
+    private String roomTypeMasterImg;
+}

+ 1 - 0
src/main/resources/mapper/ihotel/HotelOrderDao.xml

@@ -14,6 +14,7 @@
         <result property="roomNo" column="room_no"/>
         <result property="roomNo" column="room_no"/>
         <result property="roomTypeId" column="room_type_id"/>
         <result property="roomTypeId" column="room_type_id"/>
         <result property="roomTypeName" column="room_type_name"/>
         <result property="roomTypeName" column="room_type_name"/>
+        <result property="roomTypeMasterImg" column="room_type_master_img"/>
         <result property="payAmount" column="pay_amount"/>
         <result property="payAmount" column="pay_amount"/>
         <result property="payMethod" column="pay_method"/>
         <result property="payMethod" column="pay_method"/>
         <result property="createTime" column="create_time"/>
         <result property="createTime" column="create_time"/>