Browse Source

盲票删除

chunping 3 years ago
parent
commit
c47b8f5967

+ 20 - 0
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/TicketBoxMgrController.java

@@ -147,6 +147,26 @@ public class TicketBoxMgrController extends BaseApiController {
 		return AjaxResult.success("操作成功");
 	}
 
+	/**
+	 * 盲票删除
+	 *
+	 * @param
+	 * @return
+	 */
+	@ApiOperation(value = "盲票删除", notes = "管理端盲票删除")
+	@PostMapping("/remove")
+	public AjaxResult remove(@RequestBody TicketBox param) {
+		if (StringUtils.isNotBlank(param.getBoxId())) {
+			return AjaxResult.error("参数缺失");
+		}
+		TicketBox ticketBox = ticketBoxService.getById(param.getBoxId());
+		if (param.getStatus() != TicketBoxStatusEnum.DONE) {
+			return AjaxResult.error("当前状态不是待上架,不能删除");
+		}
+		ticketBoxService.removeTicketBox(param.getBoxId());
+		return AjaxResult.success("删除成功");
+	}
+
 	@Log(title = "盲票导出", businessType = BusinessType.EXPORT)
 	@PostMapping("/export")
 	public AjaxResult exportTicket(@RequestBody BathIdParam ids) {

+ 19 - 15
mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserDeliverOrderController.java

@@ -30,6 +30,7 @@ import com.qs.mp.common.utils.StringUtils;
 import com.qs.mp.framework.redis.RedisKey;
 import com.qs.mp.pay.service.IWalletService;
 import com.qs.mp.user.domain.UserAddr;
+import com.qs.mp.user.domain.UserDeliverOrder;
 import com.qs.mp.user.domain.UserPrizeStorage;
 import com.qs.mp.user.domain.UserTicketOrder;
 import com.qs.mp.user.domain.param.DeliverOrderParam;
@@ -39,6 +40,7 @@ import com.qs.mp.user.domain.vo.TicketOrderSettleVO;
 import com.qs.mp.user.domain.vo.UserCouponVO;
 import com.qs.mp.user.service.IUserAddrService;
 import com.qs.mp.user.service.IUserCouponService;
+import com.qs.mp.user.service.IUserDeliverOrderService;
 import com.qs.mp.user.service.IUserPrizeStorageService;
 import com.qs.mp.user.service.IUserTicketOrderService;
 import com.qs.mp.utils.SecurityUtils;
@@ -60,7 +62,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 @RestController
 @RequestMapping("/api/v1/mp/user/deliver")
-@Api(tags = "用户端购买盲票接口")
+@Api(tags = "用户端奖品提货接口")
 @AllArgsConstructor
 public class UserDeliverOrderController extends BaseApiController {
 
@@ -70,6 +72,9 @@ public class UserDeliverOrderController extends BaseApiController {
   @Autowired
   private IUserAddrService userAddrService;
 
+  @Autowired
+  private IUserDeliverOrderService userDeliverOrderService;
+
   @Autowired
   private IWalletService walletService;
 
@@ -118,19 +123,18 @@ public class UserDeliverOrderController extends BaseApiController {
     return AjaxResult.success(orderSettleVO);
   }
 
-/*
-  *//**
+  /**
    * 提交订单
-   *//*
+   */
   @PostMapping("/order/submit")
   @ApiOperation(value = "提交订单" , notes = "在订单确认页面提交")
-  public AjaxResult submit(@RequestBody UserTicketOrder order) {
+  public AjaxResult submit(@RequestBody UserDeliverOrder order) {
     Long userId = SecurityUtils.getLoginUser().getUserId();
-    TicketOrderSettleVO orderSettleVO = redisCache.getCacheObject(RedisKey.build(RedisKey.USER_TICKET_ORDER_KEY, userId));
+    DeliverOrderSettleVO orderSettleVO = redisCache.getCacheObject(RedisKey.build(RedisKey.USER_DELIVER_ORDER_KEY, userId));
     if (null == orderSettleVO) {
       return AjaxResult.error("订单已过期,请重新下单");
     }
-    String orderId = userTicketOrderService.submitOrder(userId, orderSettleVO);
+    String orderId = userDeliverOrderService.submitOrder(userId, orderSettleVO);
 
     // 清除缓存的订单
     redisCache.deleteObject(RedisKey.build(RedisKey.USER_TICKET_ORDER_KEY, userId));
@@ -139,31 +143,31 @@ public class UserDeliverOrderController extends BaseApiController {
   }
 
 
-  *//**
+  /**
    * 取消订单
-   *//*
+   */
   @PostMapping("/order/cancel")
   @ApiOperation(value = "取消订单" , notes = "在订单列表页面取消")
   public AjaxResult cancel(@RequestBody ChannelOrder order) {
-    userTicketOrderService.cancelOrder(order.getOrderId());
+    userDeliverOrderService.cancelOrder(order.getOrderId());
     return AjaxResult.success("取消成功");
   }
 
-  *//**
+  /**
    * 订单支付
-   *//*
+   */
   @PostMapping("/order/pay")
   @ApiOperation(value = "订单支付" , notes = "在盲票页面支付")
   public AjaxResult pay(@Valid @RequestBody OrderPayParam param) {
     String openId = SecurityUtils.getLoginUser().getUser().getOpenId();
-    UserTicketOrder ticketOrder = userTicketOrderService.getById(param.getOrderId());
+    UserDeliverOrder deliverOrder = userDeliverOrderService.getById(param.getOrderId());
     JSONObject jsonObject;
     try {
-      jsonObject = walletService.pay(BizTypeEnum.USER_ORDER, param.getOrderId(), openId, ticketOrder.getPayAmt());
+      jsonObject = walletService.pay(BizTypeEnum.USER_ORDER, param.getOrderId(), openId, deliverOrder.getFreightAmt());
     }catch (ServiceException e) {
       return AjaxResult.error(e.getMessage());
     }
     return AjaxResult.success(jsonObject);
-  }*/
+  }
 
 }

+ 45 - 0
mp-common/src/main/java/com/qs/mp/common/enums/DeliverOrderStatusEnum.java

@@ -0,0 +1,45 @@
+package com.qs.mp.common.enums;
+
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.annotation.JSONType;
+import com.baomidou.mybatisplus.annotation.IEnum;
+import com.qs.mp.common.json.EnumValueDeserializer;
+
+/**
+ *
+ * 提货订单状态
+ *
+ */
+@JSONType(deserializer = EnumValueDeserializer.class)
+public enum DeliverOrderStatusEnum implements IEnum<Integer> {
+  CANCELED(-1, "已取消"),
+  NOT_PAY(0, "待付款"),
+  NOT_DELIVER(1, "待发货"),
+  NOT_CONFIRM(2, "待收货"),
+  FINISHED(3, "已完成");
+
+  private final int value;
+  private final String desc;
+
+  DeliverOrderStatusEnum(final int value, final String desc) {
+    this.value = value;
+    this.desc = desc;
+  }
+
+  @Override
+  public Integer getValue() {
+    return value;
+  }
+
+  /**
+   * 重写toString,单个转化成json
+   * @return
+   */
+  @Override
+  public String toString() {
+    JSONObject object = new JSONObject();
+    object.put("value",value);
+    object.put("desc", desc);
+    return object.toString();
+  }
+}

+ 3 - 0
mp-common/src/main/java/com/qs/mp/common/enums/TicketBoxStatusEnum.java

@@ -1,13 +1,16 @@
 package com.qs.mp.common.enums;
 
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.annotation.JSONType;
 import com.baomidou.mybatisplus.annotation.IEnum;
+import com.qs.mp.common.json.EnumValueDeserializer;
 
 /**
  *
  * 盲票组上下架状态
  *
  */
+@JSONType(deserializer = EnumValueDeserializer.class)
 public enum TicketBoxStatusEnum implements IEnum<String> {
 
 

+ 3 - 0
mp-common/src/main/java/com/qs/mp/common/enums/TicketPkgStatusEnum.java

@@ -1,13 +1,16 @@
 package com.qs.mp.common.enums;
 
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.annotation.JSONType;
 import com.baomidou.mybatisplus.annotation.IEnum;
+import com.qs.mp.common.json.EnumValueDeserializer;
 
 /**
  *
  * 盲票包销售状态
  *
  */
+@JSONType(deserializer = EnumValueDeserializer.class)
 public enum TicketPkgStatusEnum implements IEnum<String> {
 
   FOR_SALE("forSale", "待售"),

+ 6 - 0
mp-service/src/main/java/com/qs/mp/admin/service/ITicketBoxService.java

@@ -26,4 +26,10 @@ public interface ITicketBoxService extends IService<TicketBox> {
    * @param boxId
    */
   void generateTicket(String boxId);
+
+  /**
+   * 删除票组
+   * @param boxId
+   */
+  void removeTicketBox(String boxId);
 }

+ 10 - 0
mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketBoxServiceImpl.java

@@ -154,6 +154,16 @@ public class TicketBoxServiceImpl extends ServiceImpl<TicketBoxMapper, TicketBox
     return true;
   }
 
+  @Override
+  @Transactional
+  public void removeTicketBox(String boxId) {
+    removeById(boxId);
+    ticketPackageService.remove(new LambdaQueryWrapper<TicketPackage>().eq(TicketPackage::getBoxId, boxId));
+    ticketService.remove(new LambdaQueryWrapper<Ticket>().eq(Ticket::getBoxId, boxId));
+    ticketAwardsService.remove(new LambdaQueryWrapper<TicketAwards>().eq(TicketAwards::getBoxId, boxId));
+    ticketAwardsPrizeService.remove(new LambdaQueryWrapper<TicketAwardsPrize>().eq(TicketAwardsPrize::getBoxId, boxId));
+  }
+
   @Override
   @Transactional
   public void generateTicket(String boxId) {

+ 5 - 1
mp-service/src/main/java/com/qs/mp/user/domain/UserDeliverOrder.java

@@ -1,9 +1,12 @@
 package com.qs.mp.user.domain;
 
+import com.alibaba.fastjson.annotation.JSONField;
+import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.qs.mp.common.enums.DeliverOrderStatusEnum;
 import java.io.Serializable;
 import java.util.Date;
 import lombok.Data;
@@ -101,7 +104,8 @@ public class UserDeliverOrder implements Serializable {
    * 订单状态;-1 已取消 0:待付款 1:待发货 2:待收货 3:已完成
    */
   @TableField("status")
-  private Integer status;
+  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
+  private DeliverOrderStatusEnum status;
 
   /**
    * 创建时间

+ 23 - 0
mp-service/src/main/java/com/qs/mp/user/service/IUserDeliverOrderService.java

@@ -1,7 +1,10 @@
 package com.qs.mp.user.service;
 
+import com.qs.mp.pay.domain.PayOrder;
 import com.qs.mp.user.domain.UserDeliverOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qs.mp.user.domain.vo.DeliverOrderSettleVO;
+import com.qs.mp.user.domain.vo.TicketOrderSettleVO;
 
 /**
  * <p>
@@ -12,5 +15,25 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2022-03-07
  */
 public interface IUserDeliverOrderService extends IService<UserDeliverOrder> {
+  /**
+   * 提交奖品提货订单
+   * @param userId
+   * @param orderSettleVO
+   * @return
+   */
+  String submitOrder(Long userId, DeliverOrderSettleVO orderSettleVO);
 
+  /**
+   * 取消订单
+   * @param orderId
+   * @return
+   */
+  boolean cancelOrder(String orderId);
+
+  /**
+   * 支付成功回调
+   * @param payOrder
+   * @return
+   */
+  boolean paySuccess(PayOrder payOrder);
 }

+ 44 - 0
mp-service/src/main/java/com/qs/mp/user/service/impl/UserDeliverOrderServiceImpl.java

@@ -1,10 +1,17 @@
 package com.qs.mp.user.service.impl;
 
+import com.qs.mp.common.enums.DeliverOrderStatusEnum;
+import com.qs.mp.pay.domain.PayOrder;
+import com.qs.mp.system.service.id.BizIdGenerator;
+import com.qs.mp.user.domain.UserAddr;
 import com.qs.mp.user.domain.UserDeliverOrder;
+import com.qs.mp.user.domain.vo.DeliverOrderSettleVO;
 import com.qs.mp.user.mapper.UserDeliverOrderMapper;
 import com.qs.mp.user.service.IUserDeliverOrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * <p>
@@ -17,4 +24,41 @@ import org.springframework.stereotype.Service;
 @Service
 public class UserDeliverOrderServiceImpl extends ServiceImpl<UserDeliverOrderMapper, UserDeliverOrder> implements IUserDeliverOrderService {
 
+  @Autowired
+  private BizIdGenerator bizIdGenerator;
+
+  @Override
+  @Transactional
+  public String submitOrder(Long userId, DeliverOrderSettleVO orderSettleVO) {
+    UserDeliverOrder userDeliverOrder = new UserDeliverOrder();
+    userDeliverOrder.setOrderId(bizIdGenerator.newId());
+    userDeliverOrder.setUserId(userId);
+    UserAddr userAddr = orderSettleVO.getAddr();
+    userDeliverOrder.setReceiver(userAddr.getReceiver());
+    userDeliverOrder.setTel(userAddr.getMobile());
+    userDeliverOrder.setProvince(userAddr.getProvince());
+    userDeliverOrder.setCity(userAddr.getCity());
+    userDeliverOrder.setArea(userAddr.getArea());
+    userDeliverOrder.setAddress(userAddr.getAddr());
+    userDeliverOrder.setOrderNum(orderSettleVO.getPrizeList().size());
+    userDeliverOrder.setFreightAmt(orderSettleVO.getFreightAmt());
+    userDeliverOrder.setMemo(null);
+    if (orderSettleVO.getPayAmt() > 0) {
+      userDeliverOrder.setStatus(DeliverOrderStatusEnum.NOT_PAY);
+    } else {
+      userDeliverOrder.setStatus(DeliverOrderStatusEnum.NOT_DELIVER);
+    }
+
+    return null;
+  }
+
+  @Override
+  public boolean cancelOrder(String orderId) {
+    return false;
+  }
+
+  @Override
+  public boolean paySuccess(PayOrder payOrder) {
+    return false;
+  }
 }