Przeglądaj źródła

拼团活动订单菜单

Chris-zy 1 rok temu
rodzic
commit
2b3778625a

+ 51 - 442
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/GroupBuyingOrderMgrController.java

@@ -1,20 +1,8 @@
 package com.qs.mp.web.controller.api.admin;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.qs.mp.admin.domain.TicketPackage;
 import com.qs.mp.admin.domain.param.*;
-import com.qs.mp.admin.domain.vo.TicketPackageVO;
+import com.qs.mp.admin.domain.vo.GroupBuyingOrder;
 import com.qs.mp.admin.service.ITicketPackageService;
-import com.qs.mp.channel.domain.ChannelOrder;
-import com.qs.mp.channel.domain.ChannelOrderDetail;
-import com.qs.mp.channel.domain.ChannelOrderItem;
-import com.qs.mp.channel.domain.excel.ChannelOrderExcel;
-import com.qs.mp.channel.domain.vo.ChannelOrderInfoVO;
-import com.qs.mp.channel.domain.vo.ChannelOrderItemVO;
-import com.qs.mp.channel.domain.vo.ChannelOrderVO;
-import com.qs.mp.channel.domain.vo.ChannelVO;
 import com.qs.mp.channel.service.IChannelOrderDetailService;
 import com.qs.mp.channel.service.IChannelOrderItemService;
 import com.qs.mp.channel.service.IChannelOrderService;
@@ -22,11 +10,10 @@ import com.qs.mp.channel.service.IChannelService;
 import com.qs.mp.common.annotation.Log;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.page.TableDataInfo;
-import com.qs.mp.common.domain.DeliveryCompany;
 import com.qs.mp.common.enums.*;
 import com.qs.mp.common.service.IDeliveryCompanyService;
-import com.qs.mp.common.utils.DateUtils;
-import com.qs.mp.utils.ExcelUtil;
+import com.qs.mp.user.service.IGroupBuyingHitPrizeService;
+import com.qs.mp.user.service.IGroupBuyingOrderService;
 import com.qs.mp.web.controller.common.BaseApiController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -37,7 +24,6 @@ import ma.glasnost.orika.MapperFacade;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -48,200 +34,56 @@ import java.util.*;
 /**
  * @ClassName GroupBuyingOrderMgrController
  * @author yang.zhao
- * @date 2023.9.21
- * @time 21:33
+ * @date 2023.9.23
+ * @time 17:37
  * @Version 1.0
  * @Description
  */
 @RestController
-@RequestMapping("/api/v1/mp/admin/hitprize/order")
+@RequestMapping("/api/v1/mp/admin/groupbuying/order")
 @Api(tags = "拼团抽奖订单管理接口")
 @AllArgsConstructor
 public class GroupBuyingOrderMgrController extends BaseApiController {
 
-  @Autowired
-  private IChannelOrderService channelOrderService;
+	@Autowired
+	private IGroupBuyingOrderService groupBuyingOrderService;
 
-  @Autowired
-  private IChannelOrderItemService channelOrderItemService;
+	@Autowired
+	private IGroupBuyingHitPrizeService groupBuyingHitPrizeService;
 
-  @Autowired
-  private IChannelOrderDetailService channelOrderDetailService;
 
-  @Autowired
-  private IChannelService channelService;
-
-  @Autowired
-  private IDeliveryCompanyService deliveryCompanyService;
-
-  @Autowired
-  private ITicketPackageService ticketPackageService;
-
-  @Autowired
-  private MapperFacade mapperFacade;
-
-
-
-
-  /**
-   * 订单列表
-   */
-  /*@PostMapping("/list")
-  @ApiOperation(value = "订单列表" , notes = "获取所有订单信息")
-  @PreAuthorize("@ss.hasPermi('order:channel:list')")
-  @ApiResponses(
-		  @ApiResponse(code = 200, message = "success", response = ChannelOrderVO.class)
-  )
-  public TableDataInfo list(@RequestBody ChannelOrderQueryParam queryParam) {
-    startPage();
-    QueryWrapper<ChannelOrder> queryWrapper = new QueryWrapper<ChannelOrder>();
-    queryWrapper.eq(null != queryParam && null != queryParam.getChannelId(), "t1.channel_id" ,queryParam.getChannelId());
-    queryWrapper.eq(null != queryParam && StringUtils.isNotBlank(queryParam.getOrderId()), "t1.order_id" ,queryParam.getOrderId());
-	queryWrapper.eq(null != queryParam && null != queryParam.getStatus(), "t1.`status`" ,queryParam.getStatus());
-	queryWrapper.eq(null != queryParam && null != queryParam.getType(), "t1.`type`" ,queryParam.getType());
-	queryWrapper.ge(null != queryParam && null != queryParam.getStartTime(),  "t1.created_time", queryParam.getStartTime());
-	queryWrapper.le(null != queryParam && null != queryParam.getEndTime(), "t1.created_time", queryParam.getEndTime());
-	queryWrapper.like(null != queryParam && StringUtils.isNotBlank(queryParam.getTitle()), "t1.title", queryParam.getTitle());
-    queryWrapper.orderByDesc("t1.created_time").orderByDesc("t1.order_id");
-    List<ChannelOrderVO> channelOrderVOList = channelOrderService.selectChannelOrderVoList(queryWrapper);
-    for (ChannelOrderVO channelOrderVO : channelOrderVOList) {
-    	List<ChannelOrderItem> itemList = channelOrderItemService.list(new LambdaQueryWrapper<ChannelOrderItem>()
-   	          .eq(ChannelOrderItem::getOrderId, channelOrderVO.getOrderId()));
-
-   	    List<ChannelOrderItemVO> itemVOList = mapperFacade.mapAsList(itemList, ChannelOrderItemVO.class);
-        channelOrderVO.setItems(itemVOList);
-    }
-    return getDataTable(channelOrderVOList);
-  }*/
 
 
 	/**
 	 * 拼团活动中奖订单列表
-	 * @param params
+	 * @param groupBuyingOrderParam
 	 * @return
 	 */
-	/*@PostMapping("/list")
+	@PostMapping("/list")
 	@ApiOperation(value = "拼团抽奖订单列表" , notes = "获取所有订单信息")
-	@PreAuthorize("@ss.hasPermi('order:hitprize:list')")
+	@PreAuthorize("@ss.hasPermi('order:groupbuying:list')")
 	@ApiResponses(
-			@ApiResponse(code = 200, message = "success", response = ChannelOrderVO.class)
+			@ApiResponse(code = 200, message = "success", response = Map.class)
 	)
-	public TableDataInfo list(@RequestBody GroupBuyingHitPrizeParam groupBuyingHitPrizeParam) {
-		//活动名称
-		String title = "";
-		//奖品类型
-		String prizeType = "";
-		//奖品状态
-		Integer deliverGoodsStatus = null;
-		if (Objects.nonNull(params.get("title"))) title = params.get("title").toString();
-		if (Objects.nonNull(params.get("prizeType"))) prizeType = params.get("prizeType").toString();
-		if (Objects.nonNull(params.get("deliverGoodsStatus"))) deliverGoodsStatus = Integer.valueOf(params.get("deliverGoodsStatus").toString());
+	public TableDataInfo list(@RequestBody GroupBuyingOrderParam groupBuyingOrderParam) {
 		//开启分页
 		startPage();
-		//查询
-
-
-		QueryWrapper<ChannelOrder> queryWrapper = new QueryWrapper<ChannelOrder>();
-		queryWrapper.eq(null != queryParam && null != queryParam.getChannelId(), "t1.channel_id" ,queryParam.getChannelId());
-		queryWrapper.eq(null != queryParam && StringUtils.isNotBlank(queryParam.getOrderId()), "t1.order_id" ,queryParam.getOrderId());
-		queryWrapper.eq(null != queryParam && null != queryParam.getStatus(), "t1.`status`" ,queryParam.getStatus());
-		queryWrapper.eq(null != queryParam && null != queryParam.getType(), "t1.`type`" ,queryParam.getType());
-		queryWrapper.ge(null != queryParam && null != queryParam.getStartTime(),  "t1.created_time", queryParam.getStartTime());
-		queryWrapper.le(null != queryParam && null != queryParam.getEndTime(), "t1.created_time", queryParam.getEndTime());
-		queryWrapper.like(null != queryParam && StringUtils.isNotBlank(queryParam.getTitle()), "t1.title", queryParam.getTitle());
-		queryWrapper.orderByDesc("t1.created_time").orderByDesc("t1.order_id");
-		List<ChannelOrderVO> channelOrderVOList = channelOrderService.selectChannelOrderVoList(queryWrapper);
-		for (ChannelOrderVO channelOrderVO : channelOrderVOList) {
-			List<ChannelOrderItem> itemList = channelOrderItemService.list(new LambdaQueryWrapper<ChannelOrderItem>()
-					.eq(ChannelOrderItem::getOrderId, channelOrderVO.getOrderId()));
-
-			List<ChannelOrderItemVO> itemVOList = mapperFacade.mapAsList(itemList, ChannelOrderItemVO.class);
-			channelOrderVO.setItems(itemVOList);
-		}
-		return getDataTable(channelOrderVOList);
-	}*/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  @PostMapping("/order/cancel")
-  @PreAuthorize("@ss.hasPermi('order:channel:ship')")
-  @ApiOperation("经销商订单取消")
-  public AjaxResult cancelOrder(@Validated @RequestBody ChannelOrderCancelParam param) {
-	  return AjaxResult.success(channelOrderService.cancelOrderByAdmin(param));
-  }
-
-  /**
-   * 订单详情
-   */
-  @PostMapping("/detail")
-  @ApiOperation(value = "订单详情" , notes = "在订单列表页面查看详情")
-  @PreAuthorize("@ss.hasPermi('order:channel:query')")
-  public AjaxResult query(@RequestBody ChannelOrder order) {
-    if(null == order || StringUtils.isBlank(order.getOrderId())) {
-    	return error(ErrorCodeEnum.ERROR_CODE_1001);
-    }
-    ChannelOrder channelOrder = channelOrderService.getById(order.getOrderId());
-    if(null == channelOrder || StringUtils.isBlank(channelOrder.getOrderId())) {
-    	return error(ErrorCodeEnum.ERROR_CODE_1001);
-    }
-    ChannelOrderInfoVO channelOrderInfoVO = mapperFacade.map(channelOrder, ChannelOrderInfoVO.class);
+		//查询用户中奖信息记录
+		List<GroupBuyingOrder> userOrderRecords = groupBuyingOrderService.selectUserOrder(groupBuyingOrderParam);
+		return getDataTable(userOrderRecords);
+	}
 
-    if(null != channelOrderInfoVO && null != channelOrderInfoVO.getChannelId()) {
-    	ChannelVO channel = channelService.getChannelVoById(channelOrderInfoVO.getChannelId());
-    	channelOrderInfoVO.setChannel(channel);
-    }
-    if(null != channelOrderInfoVO && null != channelOrderInfoVO.getDeliveryId()) {
-    	DeliveryCompany deliveryCompany = deliveryCompanyService.getById(channelOrderInfoVO.getDeliveryId());
-    	channelOrderInfoVO.setDeliveryCompany(deliveryCompany);
-    }
-    List<ChannelOrderItem> itemList = channelOrderItemService.list(new LambdaQueryWrapper<ChannelOrderItem>()
-	          .eq(ChannelOrderItem::getOrderId, channelOrderInfoVO.getOrderId()));
 
-	List<ChannelOrderItemVO> itemVOList = mapperFacade.mapAsList(itemList, ChannelOrderItemVO.class);
-	if(null != itemVOList && itemVOList.size() > 0) {
-		for(ChannelOrderItemVO itemVO : itemVOList) {
-			if(null != itemVO && StringUtils.isNotBlank(itemVO.getBoxId())
-					&& StringUtils.isNotBlank(itemVO.getOrderId())) {
-				LambdaQueryWrapper<ChannelOrderDetail> detailQueryWrapper = new LambdaQueryWrapper<ChannelOrderDetail>();
-				detailQueryWrapper.eq(ChannelOrderDetail::getOrderId, itemVO.getOrderId());
-				detailQueryWrapper.eq(ChannelOrderDetail::getBoxId, itemVO.getBoxId());
-				List<ChannelOrderDetail> detailList = channelOrderDetailService.list(detailQueryWrapper);
-				itemVO.setDetailList(detailList);
-			}
+	@PostMapping("/order/cancel")
+	@PreAuthorize("@ss.hasPermi('order:groupbuying:cancel')")
+	@ApiOperation("经销商订单取消")
+	public AjaxResult cancelOrder(@RequestBody GroupBuyingOrderParam groupBuyingOrderParam) {
+		if (Objects.isNull(groupBuyingOrderParam)){
+			return AjaxResult.error("缺少请求参数!");
 		}
+		return AjaxResult.success(groupBuyingOrderService.cancelOrderByAdmin(groupBuyingOrderParam));
 	}
-	channelOrderInfoVO.setItems(itemVOList);
-    return AjaxResult.success(channelOrderInfoVO);
-  }
+
 
 
   /**
@@ -253,281 +95,48 @@ public class GroupBuyingOrderMgrController extends BaseApiController {
   @ApiResponses(
 		  @ApiResponse(code = 200, message = "操作成功", response = AjaxResult.class)
   )
-  @PreAuthorize("@ss.hasPermi('order:channel:ship')")
-  public AjaxResult ship(@RequestBody ChannelOrderShipParam shipParam) {
-		if(null == shipParam || StringUtils.isBlank(shipParam.getOrderId())) {
+  @PreAuthorize("@ss.hasPermi('order:groupbuying:ship')")
+  public AjaxResult ship(@RequestBody GroupBuyingOrderParam groupBuyingOrderParam) {
+		if(null == groupBuyingOrderParam || StringUtils.isBlank(groupBuyingOrderParam.getOrderId())) {
 			return error(ErrorCodeEnum.ERROR_CODE_1001);
 		}
 
-		ChannelOrder order  = channelOrderService.getById(shipParam.getOrderId());
-		if(null == order || StringUtils.isBlank(order.getOrderId())
-				|| null == order.getChannelId()) {
+		//查询订单记录
+	  	GroupBuyingOrder orderRecord = groupBuyingOrderService.getById(groupBuyingOrderParam.getOrderId());
+		if(null == orderRecord || StringUtils.isBlank(orderRecord.getOrderId())
+				|| null == orderRecord.getChannelId()) {
 			return error(ErrorCodeEnum.ERROR_CODE_1001);
 		}
-		Integer deliveryType = shipParam.getDeliveryType();
+		Integer deliveryType = groupBuyingOrderParam.getDeliveryType();
 	  if (DeliverTypeEnum.DELIVER.getValue().equals(deliveryType)) {
-		  if (Objects.isNull(shipParam.getDeliveryId())) {
+		  if (Objects.isNull(groupBuyingOrderParam.getDeliveryId())) {
 			  return AjaxResult.error("快递公司不能为空");
 		  }
-		  if (StringUtils.isBlank(shipParam.getDeliveryFlowId())) {
+		  if (StringUtils.isBlank(groupBuyingOrderParam.getDeliveryFlowId())) {
 			  return AjaxResult.error("快递单号不能为空");
 		  }
 	  }
 
-		if(null != shipParam && null != shipParam.getPkgIds()
-				&& shipParam.getPkgIds().size() > 0) {
-			ChannelOrder channelOrder = new ChannelOrder();
-			channelOrder.setType(order.getType());
-
-			if (DeliverTypeEnum.NO_DELIVER.getValue().equals(deliveryType)) {
-				// 无需物流,设置发货时间为当前时间
-				channelOrder.setOrderId(shipParam.getOrderId());
-				channelOrder.setChannelId(order.getChannelId());
-				channelOrder.setDeliveryTime(new Date());
-
-			} else if (DeliverTypeEnum.DELIVER.getValue().equals(deliveryType)) {
-				// 快递发货,设置物流信息
-				channelOrder.setOrderId(shipParam.getOrderId());
-				channelOrder.setChannelId(order.getChannelId());
-				channelOrder.setDeliveryId(shipParam.getDeliveryId());
-				channelOrder.setDeliveryFlowId(shipParam.getDeliveryFlowId());
-				channelOrder.setDeliveryTime(new Date());
-			}
-			boolean rtn = channelOrderService.channelOrderShip(channelOrder, shipParam.getPkgIds());
-			return rtn ? AjaxResult.success() : AjaxResult.error("发货失败");
-		}
-		return AjaxResult.error("发货失败");
-  }
-
-	/**
-	 * 订单发货单号修改
-	 */
-	@Log(title = "经销商订单发货单号修改", businessType = BusinessType.UPDATE)
-	@PostMapping("/ship/update")
-	@ApiOperation(value = "订单发货单号修改" , notes = "在订单发货页面提交")
-	@ApiResponses(
-			@ApiResponse(code = 200, message = "操作成功", response = AjaxResult.class)
-	)
-	@PreAuthorize("@ss.hasPermi('order:channel:ship')")
-	public AjaxResult updateShipInfo(@RequestBody ChannelOrderShipParam shipParam) {
-		if(null == shipParam || StringUtils.isBlank(shipParam.getOrderId())) {
-			return error(ErrorCodeEnum.ERROR_CODE_1001);
-		}
-
-		ChannelOrder order  = channelOrderService.getById(shipParam.getOrderId());
-		if(null == order || StringUtils.isBlank(order.getOrderId())
-				|| null == order.getChannelId()) {
-			return error(ErrorCodeEnum.ERROR_CODE_1001);
-		}
-
-		Integer deliveryType = shipParam.getDeliveryType();
-		if (DeliverTypeEnum.DELIVER.getValue().equals(deliveryType)) {
-			if (Objects.isNull(shipParam.getDeliveryId())) {
-				return AjaxResult.error("快递公司不能为空");
-			}
-			if (StringUtils.isBlank(shipParam.getDeliveryFlowId())) {
-				return AjaxResult.error("快递单号不能为空");
-			}
-		}
-
-
-		boolean rtn = false;
+		GroupBuyingOrder groupBuyingOrder = new GroupBuyingOrder();
+		groupBuyingOrder.setOrderId(groupBuyingOrderParam.getOrderId());
 		if (DeliverTypeEnum.NO_DELIVER.getValue().equals(deliveryType)) {
-			// 无需物流,设置单号为空,物流公司为空
-			rtn = channelOrderService.update(new LambdaUpdateWrapper<ChannelOrder>()
-					.set(ChannelOrder::getDeliveryId, null)
-					.set(ChannelOrder::getDeliveryFlowId, null)
-					.set(ChannelOrder::getStatus, DeliverOrderStatusEnum.FINISHED)
-					.eq(ChannelOrder::getOrderId, shipParam.getOrderId()));
+			// 无需物流,设置发货时间为当前时间
+			groupBuyingOrder.setStatus(2);
+			groupBuyingOrder.setDeliveryTime(new Date());
 
 		} else if (DeliverTypeEnum.DELIVER.getValue().equals(deliveryType)) {
-			// 快递发货,原逻辑
-			rtn = channelOrderService.update(new LambdaUpdateWrapper<ChannelOrder>()
-					.set(ChannelOrder::getDeliveryId, shipParam.getDeliveryId())
-					.set(ChannelOrder::getDeliveryFlowId, shipParam.getDeliveryFlowId())
-					.eq(ChannelOrder::getOrderId, shipParam.getOrderId()));
-		}
-
-
-		return rtn ? AjaxResult.success() : AjaxResult.error("修改失败");
-
-	}
-
-	@PostMapping("/item/list")
-	@ApiOperation(value = "获取经销商订单盲票组列表", notes = "")
-	public AjaxResult list(@RequestBody ChannelOrder order) {
-		List<ChannelOrderItemVO> list = new ArrayList<ChannelOrderItemVO>();
-		if (null != order && StringUtils.isNotBlank(order.getOrderId())) {
-			QueryWrapper<ChannelOrderItem> queryWrapper = new QueryWrapper<ChannelOrderItem>();
-			queryWrapper.eq("t1.order_id", order.getOrderId());
-			list = channelOrderItemService.listChannelOrderItemVO(queryWrapper);
+			// 快递发货,设置物流信息
+			groupBuyingOrder.setStatus(2);
+			groupBuyingOrder.setDeliveryId(groupBuyingOrderParam.getDeliveryId());
+			groupBuyingOrder.setDeliveryFlowId(groupBuyingOrderParam.getDeliveryFlowId());
+			groupBuyingOrder.setDeliveryTime(new Date());
 		}
-		return AjaxResult.success(list);
-	}
 
-	@PostMapping("/ticket/pkg/list")
-	@ApiOperation(value = "经销商订单发货筛选盲票包列表", notes = "")
-	public AjaxResult list(@RequestBody ChannelOrderPkgParam orderPkgParam) {
-		List<TicketPackageVO> list = new ArrayList<TicketPackageVO>();
-		QueryWrapper<TicketPackage> queryWrapper = new QueryWrapper<TicketPackage>();
-		queryWrapper.eq("t1.`status`", TicketPkgStatusEnum.FOR_SALE); // 筛选待售
-		if (null != orderPkgParam && StringUtils.isNotBlank(orderPkgParam.getPkgNo())) {
-			queryWrapper.like("t1.pkg_no", orderPkgParam.getPkgNo());
-		}
-		if (null != orderPkgParam && StringUtils.isNotBlank(orderPkgParam.getBoxId())) {
-			queryWrapper.eq("t1.box_id", orderPkgParam.getBoxId());
-			list = ticketPackageService.listTicketPackageVO(queryWrapper);
-		} else {
-			if (null != orderPkgParam && StringUtils.isNotBlank(orderPkgParam.getOrderId())) {
-				// 查询订单明细
-				List<ChannelOrderItem> itemList = channelOrderItemService
-						.list(new LambdaQueryWrapper<ChannelOrderItem>().eq(ChannelOrderItem::getOrderId,
-								orderPkgParam.getOrderId()));
-				if (null != itemList && itemList.size() > 0) {
-					List<String> boxIds = new ArrayList<String>();
-					for (ChannelOrderItem item : itemList) {
-						if (null != item && StringUtils.isNotBlank(item.getBoxId())) {
-							boxIds.add(item.getBoxId());
-						}
-					}
-					if (null != boxIds && boxIds.size() > 0) {
-						queryWrapper.in("t1.box_id", boxIds);
-						list = ticketPackageService.listTicketPackageVO(queryWrapper);
-					}
-				}
-			}
-		}
-		return AjaxResult.success(list);
-	}
+		//更新订单
+	  boolean rtn = groupBuyingOrderService.updateById(groupBuyingOrder);
 
+	  return rtn ? AjaxResult.success() : AjaxResult.error("发货失败");
+  }
 
 
-	@Log(title = "提货订单导出", businessType = BusinessType.EXPORT)
-	@PostMapping("/export")
-	@PreAuthorize("@ss.hasPermi('order:channel:export')")
-	public AjaxResult export(@RequestBody ChannelOrderQueryParam queryParam) {
-		Date startTime = queryParam.getStartTime();
-		Date endTime = queryParam.getEndTime();
-		if (startTime == null || endTime == null) {
-			return AjaxResult.error("导出数据必须设置日期范围");
-		}
-		if (DateUtils.diff(startTime, endTime) > 30) {
-			return AjaxResult.error("导出的数据不能超过31天");
-		}
-
-		List<ChannelOrderExcel> excelList = new ArrayList<ChannelOrderExcel>();
-		List<ChannelOrderVO> listAll = new ArrayList<ChannelOrderVO>();
-		// 首先查询要导出的数据总数
-		QueryWrapper<ChannelOrder> queryWrapper = new QueryWrapper<ChannelOrder>();
-	    queryWrapper.eq(null != queryParam && null != queryParam.getChannelId(), "t1.channel_id" ,queryParam.getChannelId());
-	    queryWrapper.eq(null != queryParam && StringUtils.isNotBlank(queryParam.getOrderId()), "t1.order_id" ,queryParam.getOrderId());
-		queryWrapper.eq(null != queryParam && null != queryParam.getStatus(), "t1.`status`" ,queryParam.getStatus());
-		queryWrapper.eq(null != queryParam && null != queryParam.getType(), "t1.`type`" ,queryParam.getType());
-		queryWrapper.ge(null != queryParam && null != queryParam.getStartTime(),  "t1.created_time", queryParam.getStartTime());
-		queryWrapper.le(null != queryParam && null != queryParam.getEndTime(), "t1.created_time", queryParam.getEndTime());
-		queryWrapper.like(null != queryParam && StringUtils.isNotBlank(queryParam.getTitle()), "t1.title", queryParam.getTitle());
-	    queryWrapper.orderByDesc("t1.created_time", "t1.order_id");
-
-	    int totalSize = channelOrderService.selectChannelOrderCount(queryWrapper);
-		if (totalSize == 0) {
-			return AjaxResult.error("没有符合条件的经销商订单");
-		}
-
-		int pageSize = 2000;
-		if (totalSize > pageSize) {
-			int totalPage = totalSize % pageSize == 0 ? totalSize / pageSize : totalSize / pageSize + 1;
-			for (int i = 0; i < totalPage; i++) {
-				queryWrapper.last("limit " + (i * pageSize) + ", " + pageSize);
-			    List<ChannelOrderVO> channelOrderVOList = channelOrderService.selectChannelOrderVoList(queryWrapper);
-			    for (ChannelOrderVO channelOrderVO : channelOrderVOList) {
-			    	List<ChannelOrderItem> itemList = channelOrderItemService.list(new LambdaQueryWrapper<ChannelOrderItem>()
-			     	          .eq(ChannelOrderItem::getOrderId, channelOrderVO.getOrderId()));
-				  	List<ChannelOrderItemVO> itemVOList = mapperFacade.mapAsList(itemList, ChannelOrderItemVO.class);
-				  	if(null != itemVOList && itemVOList.size() > 0) {
-				  		for(ChannelOrderItemVO itemVO : itemVOList) {
-				  			if(null != itemVO && StringUtils.isNotBlank(itemVO.getBoxId())
-				  					&& StringUtils.isNotBlank(itemVO.getOrderId())) {
-				  				LambdaQueryWrapper<ChannelOrderDetail> detailQueryWrapper = new LambdaQueryWrapper<ChannelOrderDetail>();
-				  				detailQueryWrapper.eq(ChannelOrderDetail::getOrderId, itemVO.getOrderId());
-				  				detailQueryWrapper.eq(ChannelOrderDetail::getBoxId, itemVO.getBoxId());
-				  				List<ChannelOrderDetail> detailList = channelOrderDetailService.list(detailQueryWrapper);
-				  				itemVO.setDetailList(detailList);
-				  			}
-				  		}
-				  	}
-				  	channelOrderVO.setItems(itemVOList);
-			    }
-				if (null != channelOrderVOList && channelOrderVOList.size() > 0) {
-					listAll.addAll(channelOrderVOList);
-				}
-			}
-		} else {
-			listAll = channelOrderService.selectChannelOrderVoList(queryWrapper);
-		    for (ChannelOrderVO channelOrderVO : listAll) {
-		    	List<ChannelOrderItem> itemList = channelOrderItemService.list(new LambdaQueryWrapper<ChannelOrderItem>()
-		     	          .eq(ChannelOrderItem::getOrderId, channelOrderVO.getOrderId()));
-			  	List<ChannelOrderItemVO> itemVOList = mapperFacade.mapAsList(itemList, ChannelOrderItemVO.class);
-			  	if(null != itemVOList && itemVOList.size() > 0) {
-			  		for(ChannelOrderItemVO itemVO : itemVOList) {
-			  			if(null != itemVO && StringUtils.isNotBlank(itemVO.getBoxId())
-			  					&& StringUtils.isNotBlank(itemVO.getOrderId())) {
-			  				LambdaQueryWrapper<ChannelOrderDetail> detailQueryWrapper = new LambdaQueryWrapper<ChannelOrderDetail>();
-			  				detailQueryWrapper.eq(ChannelOrderDetail::getOrderId, itemVO.getOrderId());
-			  				detailQueryWrapper.eq(ChannelOrderDetail::getBoxId, itemVO.getBoxId());
-			  				List<ChannelOrderDetail> detailList = channelOrderDetailService.list(detailQueryWrapper);
-			  				itemVO.setDetailList(detailList);
-			  			}
-			  		}
-			  	}
-			  	channelOrderVO.setItems(itemVOList);
-		    }
-		}
-
-		if (null != listAll && listAll.size() > 0) {
-			// listAll.sort(Comparator.comparing(UserDeliverOrderVO::getOrderId));
-			for (ChannelOrderVO channelOrder : listAll) {
-				if (null != channelOrder && StringUtils.isNotBlank(channelOrder.getOrderId())
-						&& StringUtils.isNotBlank(channelOrder.getReceiver())
-						&& StringUtils.isNotBlank(channelOrder.getTel())
-						&& StringUtils.isNotBlank(channelOrder.getProvince())
-						&& StringUtils.isNotBlank(channelOrder.getCity())
-						&& StringUtils.isNotBlank(channelOrder.getArea())
-						&& StringUtils.isNotBlank(channelOrder.getAddress()) && null != channelOrder.getItems()
-						&& channelOrder.getItems().size() > 0) {
-					for (ChannelOrderItemVO channelOrderItem : channelOrder.getItems()) {
-						if (null != channelOrderItem) {
-							ChannelOrderExcel channelOrderExcel = new ChannelOrderExcel();
-							channelOrderExcel.setTitle(channelOrderItem.getTitle());
-							channelOrderExcel.setOrderNum(channelOrderItem.getOrderNum());
-							if(null != channelOrderItem.getDetailList() && channelOrderItem.getDetailList().size() > 0) {
-								StringBuffer buff = new StringBuffer();
-								for(ChannelOrderDetail orderDetail: channelOrderItem.getDetailList()) {
-									if(null != orderDetail && StringUtils.isNotBlank(orderDetail.getStartSn())
-											&& StringUtils.isNotBlank(orderDetail.getEndSn())) {
-										buff.append("("+orderDetail.getStartSn()+"-"+orderDetail.getEndSn()+")");
-									}
-								}
-								channelOrderExcel.setSnRrange(buff.toString());
-							}
-							channelOrderExcel.setCreatedTime(channelOrder.getCreatedTime());
-							channelOrderExcel.setItemStatus(channelOrder.getStatus().getValue() > 1 ? "已发货" : "未发货");
-							channelOrderExcel.setOrderId(channelOrder.getOrderId());
-							channelOrderExcel.setMemo(channelOrder.getMemo());
-							channelOrderExcel.setStatus(channelOrder.getStatus().getDesc());
-							channelOrderExcel.setChannelName(channelOrder.getChannelName());
-							channelOrderExcel.setParentName(channelOrder.getParentName());
-							channelOrderExcel.setReceiver(channelOrder.getReceiver());
-							channelOrderExcel.setTel(channelOrder.getTel());
-							String address = channelOrder.getProvince() + channelOrder.getCity()
-									+ channelOrder.getArea() + channelOrder.getAddress();
-							channelOrderExcel.setAddress(address);
-							excelList.add(channelOrderExcel);
-						}
-					}
-				}
-			}
-		}
-		ExcelUtil<ChannelOrderExcel> util = new ExcelUtil<ChannelOrderExcel>(ChannelOrderExcel.class);
-		return util.exportExcel(excelList, "经销商盲票订单导出", false);
-	}
 }

+ 37 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/param/GroupBuyingOrderParam.java

@@ -0,0 +1,37 @@
+package com.qs.mp.admin.domain.param;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author yang.zhao
+ */
+@ApiModel(value= "拼团活动订单信息入参类")
+@Data
+public class GroupBuyingOrderParam {
+
+    @ApiModelProperty(value = "订单号",required = false)
+    private String orderId;
+
+    @ApiModelProperty(value = "活动名称",required = false)
+    private String groupbuyingTitle;
+
+    @ApiModelProperty(value = "订单状态;-1 已取消 0:待付款 1:待发货 2:待收货 3:已完成",required = false)
+    private Integer status;
+
+    @ApiModelProperty(value = "奖品类型 goods 实物商品 coupon优惠券 coin平台代币 coupon_pkg券包",required = false)
+    private String prizeType;
+
+    @ApiModelProperty(value = "快递公司ID",required = false)
+    private String deliveryId;
+
+    @ApiModelProperty(value = "快递类型",required = false)
+    private Integer deliveryType;
+
+    @ApiModelProperty(value = "物流单号", required = false)
+    private String deliveryFlowId;
+
+}

+ 0 - 4
mp-service/src/main/java/com/qs/mp/admin/domain/vo/GroupBuyingHitPrize.java

@@ -57,10 +57,6 @@ public class GroupBuyingHitPrize implements Serializable {
     @TableField("prize_type")
     private String prizeType;
 
-    @ApiModelProperty("发货状态,0:待发货,1:已完成")
-    @TableField("deliver_goods_status")
-    private Integer deliverGoodsStatus;
-
     @ApiModelProperty("创建时间")
     @TableField("create_time")
     private Date createTime;

+ 162 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/vo/GroupBuyingOrder.java

@@ -0,0 +1,162 @@
+package com.qs.mp.admin.domain.vo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @describe 拼团活动用户拼团订单实体类
+ * @auther yang.zhao
+ */
+@TableName("mp_groupbuying_order")
+@Data
+@ApiModel("拼团活动用户拼团订单实体类")
+public class GroupBuyingOrder implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("订单号")
+    @TableId(value = "order_id", type = IdType.INPUT)
+    private String orderId;
+
+    @ApiModelProperty("拼团活动ID")
+    @TableId(value = "groupbuying_id")
+    private Long groupbuyingId;
+
+    @ApiModelProperty("拼团活动名称")
+    @TableId(value = "groupbuying_title")
+    private Long groupbuyingTitle;
+
+    @ApiModelProperty("拼团ID")
+    @TableId(value = "group_id")
+    private Long groupId;
+
+    @ApiModelProperty("用户ID")
+    @TableId(value = "user_id")
+    private Long userId;
+
+    @ApiModelProperty("订单金额")
+    @TableId(value = "order_amt")
+    private Integer orderAmt;
+
+    @ApiModelProperty("用户ID")
+    @TableId(value = "group_price")
+    private Integer groupPrice;
+
+    @ApiModelProperty("实付金额")
+    @TableId(value = "pay_amt")
+    private Integer payAmt;
+
+    @ApiModelProperty("分佣的销售额百分比")
+    @TableId(value = "sale_comm_rate")
+    private BigDecimal saleCommRate;
+
+    @ApiModelProperty("订单备注")
+    @TableId(value = "memo")
+    private String memo;
+
+    @ApiModelProperty("订单来源")
+    @TableId(value = "resource")
+    private String resource;
+
+    @ApiModelProperty("订单状态;-1 已取消 0:待付款 1:已完成")
+    @TableId(value = "status")
+    private Integer status;
+
+    @ApiModelProperty("结佣状态 未结0,已结1")
+    @TableId(value = "comm_status")
+    private Integer commStatus;
+
+    @ApiModelProperty("线下购买渠道经销商")
+    @TableId(value = "channel_id")
+    private Long channelId;
+
+    @ApiModelProperty("推广员ID")
+    @TableId(value = "promoter_id")
+    private Long promoterId;
+
+    @ApiModelProperty("用户分享信息")
+    @TableId(value = "share_info")
+    private String shareInfo;
+
+    @ApiModelProperty("来源小程序id")
+    @TableId(value = "app_id")
+    private String appId;
+
+    @ApiModelProperty("支付类型1支付宝,2微信,10支付宝直连")
+    @TableId(value = "pay_type")
+    private String payType;
+
+    @ApiModelProperty("支付时间")
+    @TableId(value = "pay_time")
+    private Date payTime;
+
+    @ApiModelProperty("奖品名称")
+    @TableId(value = "prize_title")
+    private String prizeTitle;
+
+    @ApiModelProperty("奖品类型 goods 实物商品 coupon优惠券 coin平台代币 coupon_pkg券包")
+    @TableId(value = "prize_type")
+    private String prizeType;
+
+    @ApiModelProperty("奖品数")
+    @TableId(value = "prize_quantity")
+    private Integer prizeQuantity;
+
+    @ApiModelProperty("收货地址-省")
+    @TableId(value = "province")
+    private String province;
+
+    @ApiModelProperty("收货地址-市")
+    @TableId(value = "city")
+    private String city;
+
+    @ApiModelProperty("收货地址-区")
+    @TableId(value = "area")
+    private String area;
+
+    @ApiModelProperty("收货地址-详细")
+    @TableId(value = "address")
+    private String address;
+
+    @ApiModelProperty("物流ID")
+    @TableId(value = "delivery_id")
+    private String deliveryId;
+
+    @ApiModelProperty("物流单号")
+    @TableId(value = "delivery_flow_id")
+    private String deliveryFlowId;
+
+    @ApiModelProperty("发货时间")
+    @TableId(value = "delivery_time")
+    private Date deliveryTime;
+
+    @ApiModelProperty("确认收货时间")
+    @TableId(value = "confirm_time")
+    private Date confirmTime;
+
+    @ApiModelProperty("门店名称")
+    @TableId(value = "channel_name")
+    private String channelName;
+
+    @ApiModelProperty("收货人名称")
+    @TableId(value = "user_name")
+    private String userName;
+
+    @ApiModelProperty("收货人手机号")
+    @TableId(value = "phonenumber")
+    private String phonenumber;
+
+    @ApiModelProperty("创建时间")
+    @TableId(value = "create_time")
+    private Date createTime;
+
+    @ApiModelProperty("更新时间")
+    @TableId(value = "update_time")
+    private Date updateTime;
+
+}

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

@@ -0,0 +1,23 @@
+package com.qs.mp.user.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qs.mp.admin.domain.param.GroupBuyingHitPrizeParam;
+import com.qs.mp.admin.domain.vo.GroupBuyingHitPrize;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @auther yang.zhao
+ * @describe 拼团活动中奖信息表mapper类
+ */
+public interface GroupBuyingHitPrizeMapper extends BaseMapper<GroupBuyingHitPrize> {
+
+    /**
+     * 根据参数查询用户中奖信息
+     * @param groupBuyingHitPrizeParam
+     * @return
+     */
+    List<Map<String, Object>> selectUserHitPrize(GroupBuyingHitPrizeParam groupBuyingHitPrizeParam);
+
+}

+ 34 - 0
mp-service/src/main/java/com/qs/mp/user/mapper/GroupBuyingOrderMapper.java

@@ -0,0 +1,34 @@
+package com.qs.mp.user.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.qs.mp.admin.domain.excel.MarketingHitPrizeExcel;
+import com.qs.mp.admin.domain.param.GroupBuyingHitPrizeParam;
+import com.qs.mp.admin.domain.param.GroupBuyingOrderParam;
+import com.qs.mp.admin.domain.vo.GroupBuyingHitPrize;
+import com.qs.mp.admin.domain.vo.GroupBuyingOrder;
+import com.qs.mp.user.domain.MarketingHitPrize;
+import com.qs.mp.user.domain.vo.UserMarketingHitPrizeListVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @auther yang.zhao
+ * @describe 拼团活动订单表mapper类
+ */
+public interface GroupBuyingOrderMapper extends BaseMapper<GroupBuyingOrder> {
+
+    /**
+     * 根据参数查询用户中奖信息
+     * @param GroupBuyingOrderParam
+     * @return
+     */
+    List<GroupBuyingOrder> selectUserOrder(GroupBuyingOrderParam GroupBuyingOrderParam);
+
+
+
+
+}

+ 4 - 23
mp-service/src/main/java/com/qs/mp/user/service/IGroupBuyingHitPrizeService.java

@@ -1,34 +1,15 @@
 package com.qs.mp.user.service;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.qs.mp.admin.domain.excel.MarketingHitPrizeExcel;
-import com.qs.mp.user.domain.MarketingHitPrize;
-import com.qs.mp.user.domain.vo.UserMarketingHitPrizeListVO;
-
-import java.util.List;
+import com.qs.mp.admin.domain.vo.GroupBuyingHitPrize;
 
 /**
  * <p>
- * 营销活动中奖信息表 服务类
+ * 拼团活动中奖信息表 服务类
  * </p>
  *
- * @author quanshu
- * @since 2022-05-16
+ * @author yang.zhao
  */
-public interface IGroupBuyingHitPrizeService extends IService<MarketingHitPrize> {
-
-    /**
-     * 根据条件获取中奖信息列表
-     * @param queryWrapper
-     * @return
-     */
-    List<UserMarketingHitPrizeListVO> listHitPrizeByQueryWrapper(QueryWrapper<MarketingHitPrize> queryWrapper);
+public interface IGroupBuyingHitPrizeService extends IService<GroupBuyingHitPrize> {
 
-    /**
-     * 根据条件获取中奖信息导出列表
-     * @param queryWrapper
-     * @return
-     */
-    List<MarketingHitPrizeExcel> listHitPrizeExportByQueryWrapper(QueryWrapper<MarketingHitPrize> queryWrapper);
 }

+ 34 - 0
mp-service/src/main/java/com/qs/mp/user/service/IGroupBuyingOrderService.java

@@ -0,0 +1,34 @@
+package com.qs.mp.user.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qs.mp.admin.domain.param.GroupBuyingOrderParam;
+import com.qs.mp.admin.domain.vo.GroupBuyingOrder;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 拼团活动订单信息表 服务类
+ * </p>
+ *
+ * @author yang.zhao
+ */
+public interface IGroupBuyingOrderService extends IService<GroupBuyingOrder> {
+
+    /**
+     * 根据参数查询用户订单信息
+     * @param GroupBuyingOrderParam
+     * @return
+     */
+    List<GroupBuyingOrder> selectUserOrder(GroupBuyingOrderParam GroupBuyingOrderParam);
+
+    /**
+     * 取消订单
+     * @param GroupBuyingOrderParam
+     * @return
+     */
+    String cancelOrderByAdmin(GroupBuyingOrderParam GroupBuyingOrderParam);
+
+
+
+}

+ 5 - 20
mp-service/src/main/java/com/qs/mp/user/service/impl/GroupBuyingHitPrizeServiceImpl.java

@@ -1,35 +1,20 @@
 package com.qs.mp.user.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qs.mp.admin.domain.excel.MarketingHitPrizeExcel;
-import com.qs.mp.user.domain.MarketingHitPrize;
-import com.qs.mp.user.domain.vo.UserMarketingHitPrizeListVO;
-import com.qs.mp.user.mapper.MarketingHitPrizeMapper;
-import com.qs.mp.user.service.IMarketingHitPrizeService;
+import com.qs.mp.admin.domain.vo.GroupBuyingHitPrize;
+import com.qs.mp.user.mapper.GroupBuyingHitPrizeMapper;
+import com.qs.mp.user.service.IGroupBuyingHitPrizeService;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
 
 /**
  * <p>
  * 营销活动中奖信息表 服务实现类
  * </p>
  *
- * @author quanshu
- * @since 2022-05-16
+ * @author yang.zhao
  */
 @Service
-public class GroupBuyingHitPrizeServiceImpl extends ServiceImpl<MarketingHitPrizeMapper, MarketingHitPrize> implements IMarketingHitPrizeService {
+public class GroupBuyingHitPrizeServiceImpl extends ServiceImpl<GroupBuyingHitPrizeMapper, GroupBuyingHitPrize> implements IGroupBuyingHitPrizeService {
 
-
-    @Override
-    public List<UserMarketingHitPrizeListVO> listHitPrizeByQueryWrapper(QueryWrapper<MarketingHitPrize> queryWrapper) {
-        return getBaseMapper().listHitPrizeByQueryWrapper(queryWrapper);
-    }
-
-    @Override
-    public List<MarketingHitPrizeExcel> listHitPrizeExportByQueryWrapper(QueryWrapper<MarketingHitPrize> queryWrapper) {
-        return getBaseMapper().listHitPrizeExportByQueryWrapper(queryWrapper);
-    }
 }

+ 105 - 0
mp-service/src/main/java/com/qs/mp/user/service/impl/GroupBuyingOrderServiceImpl.java

@@ -0,0 +1,105 @@
+package com.qs.mp.user.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qs.mp.admin.domain.excel.MarketingHitPrizeExcel;
+import com.qs.mp.admin.domain.param.GroupBuyingOrderParam;
+import com.qs.mp.admin.domain.vo.GroupBuyingOrder;
+import com.qs.mp.common.enums.ChannelOrderStatusEnum;
+import com.qs.mp.common.exception.ServiceException;
+import com.qs.mp.pay.service.IWalletService;
+import com.qs.mp.user.domain.MarketingHitPrize;
+import com.qs.mp.user.domain.vo.UserMarketingHitPrizeListVO;
+import com.qs.mp.user.mapper.GroupBuyingHitPrizeMapper;
+import com.qs.mp.user.mapper.GroupBuyingOrderMapper;
+import com.qs.mp.user.service.IGroupBuyingOrderService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 营销活动订单信息表 服务实现类
+ * </p>
+ *
+ * @author yang.zhao
+ */
+@Service
+public class GroupBuyingOrderServiceImpl extends ServiceImpl<GroupBuyingOrderMapper, GroupBuyingOrder> implements IGroupBuyingOrderService {
+
+    @Autowired
+    private GroupBuyingHitPrizeMapper groupBuyingHitPrizeMapper;
+
+    @Autowired
+    private GroupBuyingOrderMapper groupBuyingOrderMapper;
+
+    @Autowired
+    private IWalletService walletService;
+
+
+    /**
+     * 根据参数查询用户订单记录
+     * @param GroupBuyingOrderParam
+     * @return
+     */
+    @Override
+    public List<GroupBuyingOrder> selectUserOrder(GroupBuyingOrderParam GroupBuyingOrderParam) {
+        List<GroupBuyingOrder> userOrderRecords = groupBuyingOrderMapper.selectUserOrder(GroupBuyingOrderParam);
+        return userOrderRecords;
+    }
+
+
+    /**
+     * 经销商取消订单
+     * @param GroupBuyingOrderParam
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String cancelOrderByAdmin(GroupBuyingOrderParam GroupBuyingOrderParam) {
+        //根据订单号查询订单信息
+        String orderId = GroupBuyingOrderParam.getOrderId();
+        if(StringUtils.isEmpty(orderId)) throw new ServiceException("订单号不能为空!");
+        GroupBuyingOrder groupBuyingOrder = groupBuyingOrderMapper.selectById(orderId);
+        if (Objects.isNull(groupBuyingOrder)) {
+            throw new ServiceException("订单不存在");
+        }
+        if (!ChannelOrderStatusEnum.NOT_DELIVER.equals(groupBuyingOrder.getStatus())) {
+            throw new ServiceException("订单状态异常,不能取消");
+        }
+
+        // 更新订单状态
+        GroupBuyingOrder groupBuyingOrderParam  = new GroupBuyingOrder();
+        groupBuyingOrderParam.setOrderId(groupBuyingOrder.getOrderId());
+        groupBuyingOrderParam.setStatus(ChannelOrderStatusEnum.CANCELED.getValue());
+        this.updateById(groupBuyingOrderParam);
+
+        // 更新销量
+        /*List<ChannelOrderItem> list = channelOrderItemService.list(new LambdaQueryWrapper<ChannelOrderItem>().eq(ChannelOrderItem::getOrderId, param.getOrderId()));
+        if (CollectionUtils.isEmpty(list)) {
+            throw new ServiceException("订单商品不存在");
+        }
+        for (ChannelOrderItem channelOrderItem : list) {
+            TicketBox ticketBox = ticketBoxService.getById(channelOrderItem.getBoxId());
+
+            boolean rst = this.rollbackTicketStatusAndSalePkgQty(channelOrderItem, ticketBox);
+            if (!rst) {
+                throw new ServiceException("操作繁忙,请稍后再试!");
+            }
+        }*/
+
+
+        //退款
+        walletService.refund(groupBuyingOrder.getOrderId(), groupBuyingOrder.getPayAmt(),"经销商取消订单");
+
+
+        return null;
+    }
+
+
+
+}

+ 48 - 0
mp-service/src/main/resources/mapper/user/GroupBuyingHitPrizeMapper.xml

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.qs.mp.user.mapper.GroupBuyingHitPrizeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.qs.mp.admin.domain.vo.GroupBuyingHitPrize">
+        <id column="id" property="id" />
+        <result column="groupbuying_id" property="groupbuyingId" />
+        <result column="group_id" property="groupId" />
+        <result column="user_id" property="userType" />
+        <result column="user_type" property="userType" />
+        <result column="awards_id" property="awardsId" />
+        <result column="prize_id" property="prizeId" />
+        <result column="prize_quantity" property="prizeQuantity" />
+        <result column="prize_type" property="prizeType" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="is_delete" property="isDelete" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, groupbuying_id, group_id, user_id, user_type, awards_id, prize_id, prize_quantity, prize_type, create_time,update_time,is_delete
+    </sql>
+
+
+    <select id="selectUserHitPrize" resultType="java.util.Map">
+        select a.id, a.groupbuying_id, a.group_id, a.user_id, a.user_type, a.awards_id, a.prize_id,
+               a.prize_quantity, a.prize_type, a.deliver_goods_status,a.create_time, b.group_price,
+               CONCAT(c.province,c.city,c.area,c.addr) address, e.channel_id, d.id orderId
+        from mp_groupbuying_hit_prize a
+                 left join mp_groupbuying b on a.groupbuying_id = b.id and b.is_delete = 0
+                 left join mp_user_addr c on a.user_id = c.user_id
+                 left join mp_groupbuying_order d on a.groupbuying_id = d.groupbuying_id and a.group_id = d.group_id and a.user_id = d.user_id
+                 left join mp_channel e on d.channel_id = e.name
+        <where>
+            <if test="null != title and title != ''">
+                b.title like concat('%', #{title}, '%')
+            </if>
+            <if test="null != prizeType and prizeType != ''">
+                and a.prize_type =  #{prizeType}
+            </if>
+        </where>
+        order by a.create_time desc
+    </select>
+
+
+</mapper>

+ 74 - 0
mp-service/src/main/resources/mapper/user/GroupBuyingOrderMapper.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.qs.mp.user.mapper.GroupBuyingOrderMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.qs.mp.admin.domain.vo.GroupBuyingOrder">
+        <id column="order_id" property="orderId" />
+        <result column="groupbuying_id" property="groupbuyingId" />
+        <result column="groupbuying_title" property="groupbuyingTitle" />
+        <result column="group_id" property="groupId" />
+        <result column="user_id" property="userId" />
+        <result column="order_amt" property="orderAmt" />
+        <result column="group_price" property="groupPrice" />
+        <result column="pay_amt" property="payAmt" />
+        <result column="sale_comm_rate" property="saleCommRate" />
+        <result column="memo" property="memo" />
+        <result column="resource" property="resource" />
+        <result column="status" property="status" />
+        <result column="comm_status" property="commStatus" />
+        <result column="channel_id" property="channelId" />
+        <result column="promoter_id" property="promoterId" />
+        <result column="share_info" property="shareInfo" />
+        <result column="app_id" property="appId" />
+        <result column="pay_type" property="payType" />
+        <result column="pay_time" property="payTime" />
+        <result column="prize_title" property="prizeTitle" />
+        <result column="prize_type" property="payTime" />
+        <result column="prize_quantity" property="payTime" />
+        <result column="province" property="payTime" />
+        <result column="city" property="payTime" />
+        <result column="area" property="payTime" />
+        <result column="address" property="payTime" />
+        <result column="delivery_id" property="payTime" />
+        <result column="delivery_flow_id" property="payTime" />
+        <result column="delivery_time" property="payTime" />
+        <result column="confirm_time" property="payTime" />
+        <result column="channel_name" property="payTime" />
+        <result column="user_name" property="payTime" />
+        <result column="phonenumber" property="payTime" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        order_id, groupbuying_id, group_id, user_id, order_amt, group_price, pay_amt,
+            sale_comm_rate, memo, resource, status, comm_status, channel_id, promoter_id,
+            share_info, app_id, pay_type, pay_time, prize_title, prize_type, prize_quantity,
+            province, city, area, address, delivery_id, delivery_flow_id, delivery_time,
+            confirm_time, channel_name, user_name, phonenumber, create_time, update_time
+    </sql>
+
+
+    <select id="selectUserOrder" parameterType="com.qs.mp.admin.domain.param.GroupBuyingOrderParam" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from mp_groupbuying_order
+        <where>
+            <if test="null != groupbuyingTitle and groupbuyingTitle != ''">
+                and groupbuying_title like concat('%', #{groupbuyingTitle}, '%')
+            </if>
+            <if test="null != status and prizeType != ''">
+                and status =  #{status}
+            </if>
+            <if test="null != prizeType and prizeType != ''">
+                and prize_type = #{prizeType}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+
+
+</mapper>