package com.ruoyi.order.controller.business; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.order.domain.dto.*; import com.ruoyi.order.domain.pojo.order.Order; import com.ruoyi.order.domain.vo.*; import com.ruoyi.order.service.order.OrderService; import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.domain.poji.goods.Goods; import com.ruoyi.system.api.model.AddOrderVo; import com.ruoyi.system.api.service.RemoteGoodsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.Date; import java.util.List; /** * @author jqs34 * @ClassName MerOrderController * @description: TODO * @date 2023年05月04日 * @version: 1.0 */ @Api(value = "商户端订单相关接口", tags = "商户端订单相关接口", description = "商户端订单相关接口") @RestController @RequestMapping("/mer/order") public class MerOrderController { @Resource private OrderService orderService; @RequestMapping(value = "/verifyCode", method = RequestMethod.POST) @ApiOperation(value = "核销code") public R verifyCode(@RequestBody MerVerifyCodeDto merVerifyCodeDto) { Long userId = SecurityUtils.getUserId(); merVerifyCodeDto.setUserId(userId); String verifyCode = merVerifyCodeDto.getVerifyCode(); MerVerifyCodeVo merVerifyCodeVo = new MerVerifyCodeVo(); if(!verifyCode.contains("https")){ String[] verifyCodeArr = verifyCode.split("-"); Integer type = Integer.valueOf(verifyCodeArr[0]); verifyCode = verifyCodeArr[1]; merVerifyCodeVo.setVerifyType(type); switch(type){ case 1: MerVerifyOrderVo merVerifyOrderVo = orderService.verifyOrder(verifyCode,merVerifyCodeDto.getShopId()); merVerifyCodeVo.setMerVerifyOrderVo(merVerifyOrderVo); break; case 2: MerVerifyCouponVo merVerifyCouponVo = orderService.verifyCoupon(verifyCode,merVerifyCodeDto.getShopId()); merVerifyCouponVo.setCouponId(merVerifyCouponVo.getMemberCouponId().toString()); merVerifyCodeVo.setMerVerifyCouponVo(merVerifyCouponVo); break; case 3: MerVerifyAwardVo merVerifyAwardVo = orderService.verifyPrize(verifyCode,merVerifyCodeDto.getShopId()); merVerifyCodeVo.setMerVerifyAwardVo(merVerifyAwardVo); break; default: throw new ServiceException(AppErrorConstant.VERIFY_TYPE_MISS); } }else{ merVerifyCodeVo.setVerifyType(1); //三方订单 //抖音 if (verifyCode.contains("douyin")) { MerVerifyOrderVo merVerifyOrderVo = orderService.verifyOrderDouYin(verifyCode, merVerifyCodeDto.getShopId()); merVerifyCodeVo.setMerVerifyOrderVo(merVerifyOrderVo); } //快手 if (verifyCode.contains("ksurl")) { MerVerifyOrderVo merVerifyOrderVo = orderService.verifyOrderKuaiShou(verifyCode, merVerifyCodeDto.getShopId()); merVerifyCodeVo.setMerVerifyOrderVo(merVerifyOrderVo); } } return R.ok(merVerifyCodeVo); } @RequestMapping(value = "/verifyOrder", method = RequestMethod.POST) @ApiOperation(value = "核销code") public R verifyOrder(@RequestBody MerVerifyCodeDto merVerifyCodeDto) { Long userId = SecurityUtils.getUserId(); merVerifyCodeDto.setUserId(userId); String verifyCode = merVerifyCodeDto.getVerifyCode(); MerVerifyOrderVo merVerifyOrderVo = orderService.verifyOrder(verifyCode, merVerifyCodeDto.getShopId()); return R.ok(merVerifyOrderVo); } @RequestMapping(value = "/sureVerifyOrder", method = RequestMethod.POST) @ApiOperation(value = "核销订单") public R sureVerifyOrder(@RequestBody MerVerifyOrderDto merVerifyOrderDto) { Long userId = SecurityUtils.getUserId(); merVerifyOrderDto.setUserId(userId); MerVerifyOrderVo merVerifyOrderVo = null; if (!merVerifyOrderDto.getOrderId().contains("https")) { merVerifyOrderVo = orderService.sureVerifyOrder(merVerifyOrderDto); } else { //三方订单 //抖音 if (merVerifyOrderDto.getOrderId().contains("douyin")) { merVerifyOrderVo = orderService.sureVerifyOrderDouYin(merVerifyOrderDto); } //快手 if (merVerifyOrderDto.getOrderId().contains("ksurl")) { merVerifyOrderVo = orderService.sureVerifyOrderKuaiShou(merVerifyOrderDto); } } return R.ok(merVerifyOrderVo); } @RequestMapping(value = "/sureVerifyCoupon", method = RequestMethod.POST) @ApiOperation(value = "核销优惠券") public R sureVerifyCoupon(@RequestBody MerVerifyCouponDto merVerifyCouponDto) { Long userId = SecurityUtils.getUserId(); merVerifyCouponDto.setUserId(userId); MerVerifyCouponVo merVerifyCouponVo = orderService.sureVerifyCoupon(merVerifyCouponDto); return R.ok(merVerifyCouponVo); } @RequestMapping(value = "/sureVerifyPrize", method = RequestMethod.POST) @ApiOperation(value = "核销奖品") public R sureVerifyPrize(@RequestBody MerVerifyPrizeDto merVerifyPrizeDto) { Long userId = SecurityUtils.getUserId(); merVerifyPrizeDto.setUserId(userId); MerVerifyAwardVo merVerifyAwardVo = orderService.sureVerifyPrize(merVerifyPrizeDto); return R.ok(merVerifyAwardVo); } @RequestMapping(value = "/pageMerMemberNoClearOrder", method = RequestMethod.POST) @ApiOperation(value = "分页获取用户未结清订单") public R> pageMerMemberNoClearOrder(@RequestBody MerMemberNoClearOrderDto merMemberNoClearOrderDto) { Long userId = SecurityUtils.getUserId(); merMemberNoClearOrderDto.setUserId(userId); Page page = new Page<>(); page.setSize(merMemberNoClearOrderDto.getPageSize()); page.setCurrent(merMemberNoClearOrderDto.getPageNum()); List merMemberNoClearOrderVoList = orderService.pageMerMemberNoClearOrder(page,merMemberNoClearOrderDto); return R.ok(page.setRecords(merMemberNoClearOrderVoList)); } @RequestMapping(value = "/merCloseOrder", method = RequestMethod.POST) @ApiOperation(value = "结清订单") public R merCloseOrder(@RequestBody MerCloseOrderDto merCloseOrderDto) { Long userId = SecurityUtils.getUserId(); merCloseOrderDto.setUserId(userId); orderService.merCloseOrder(merCloseOrderDto); return R.ok(); } @RequestMapping(value = "/createNewOrder", method = RequestMethod.POST) @ApiOperation(value = "创建新订单") public R createNewOrder(@RequestBody MerNewOrderDto merNewOrderDto) { Long userId = SecurityUtils.getUserId(); merNewOrderDto.setUserId(userId); orderService.createNewOrder(merNewOrderDto); return R.ok(); } @RequestMapping(value = "/pageMerOrder", method = RequestMethod.POST) @ApiOperation(value = "获取商户端订单列表【2.0】") public R> pageMerOrder(@RequestBody MerOrderPageDto merOrderPageDto) { Long userId = SecurityUtils.getUserId(); merOrderPageDto.setUserId(userId); Page page = new Page<>(); page.setSize(merOrderPageDto.getPageSize()); page.setCurrent(merOrderPageDto.getPageNum()); List merOrderPageVoList = orderService.pageMerOrder(page, merOrderPageDto); return R.ok(page.setRecords(merOrderPageVoList)); } @RequestMapping(value = "/cancelMerOrder", method = RequestMethod.POST) @ApiOperation(value = "商户端取消线下订单【2.0】") public R cancelMerOrder(@RequestBody CancelMerOrderDto dto) { Order order = orderService.getById(dto.getOrderId()); if (null == order) { return R.fail("订单不存在"); } if (order.getOrderStatus() == 0) { return R.fail("订单已取消"); } if (!order.getShopId().equals(dto.getShopId())) { return R.fail("取消失败"); } if (3 != order.getOrderFrom()) { return R.fail("取消失败"); } order.setOrderStatus(0); order.setCancelType(2); order.setCancelTime(new Date()); orderService.updateById(order); return R.ok(); } @RequestMapping(value = "/totalMerOrder", method = RequestMethod.POST) @ApiOperation(value = "商户端订单管理统计") public R totalMerOrder(@RequestBody MerOrderPageDto merOrderPageDto) { Long userId = SecurityUtils.getUserId(); merOrderPageDto.setUserId(userId); MerTotalOrderVo totalOrderVo = orderService.totalMerOrder(merOrderPageDto); return R.ok(totalOrderVo); } @RequestMapping(value = "/pageMerMemberOrder", method = RequestMethod.POST) @ApiOperation(value = "分页商户端用户收银记录【2.0】") public R> pageMerMemberOrder(@RequestBody MerMemberNoClearOrderDto merMemberNoClearOrderDto) { Long userId = SecurityUtils.getUserId(); merMemberNoClearOrderDto.setUserId(userId); Page page = new Page<>(); page.setSize(merMemberNoClearOrderDto.getPageSize()); page.setCurrent(merMemberNoClearOrderDto.getPageNum()); List merMemberNoClearOrderVoList = orderService.pageMerMemberOrder(page,merMemberNoClearOrderDto); return R.ok(page.setRecords(merMemberNoClearOrderVoList)); } @RequestMapping(value = "/pageMerMemberPayOrder", method = RequestMethod.POST) @ApiOperation(value = "获取商户端用户消费记录") public R> pageMerMemberPayOrder(@RequestBody MerMemberNoClearOrderDto merOrderPageDto) { Long userId = SecurityUtils.getUserId(); merOrderPageDto.setUserId(userId); Page page = new Page<>(); page.setSize(merOrderPageDto.getPageSize()); page.setCurrent(merOrderPageDto.getPageNum()); List merOrderPageVoList = orderService.pageMerMemberPayOrder(page,merOrderPageDto); return R.ok(page.setRecords(merOrderPageVoList)); } }