| | |
| | | package com.sinata.rest.modular.mall.controller; |
| | | |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.sinata.common.enums.EnumCityRole; |
| | | import com.sinata.common.enums.EnumIsDelete; |
| | | import com.sinata.common.enums.mall.EnumMallOrderState; |
| | | import com.sinata.common.util.QRCodeUtils; |
| | |
| | | import com.sinata.rest.modular.mall.controller.vo.VoGoodsSku; |
| | | import com.sinata.rest.modular.mall.controller.vo.VoMallOrder; |
| | | import com.sinata.rest.modular.mall.controller.vo.VoMallOrderDetail; |
| | | import com.sinata.rest.modular.mall.model.*; |
| | | import com.sinata.rest.modular.mall.service.*; |
| | | import com.sinata.rest.modular.mall.controller.vo.VoMallOrderDetailGroupSpecGoods; |
| | | import com.sinata.rest.modular.mall.model.MallOrder; |
| | | import com.sinata.rest.modular.mall.model.MallOrderDetail; |
| | | import com.sinata.rest.modular.mall.model.MallOrderMain; |
| | | import com.sinata.rest.modular.mall.service.IMallGoodsService; |
| | | import com.sinata.rest.modular.mall.service.IMallGoodsSkuService; |
| | | import com.sinata.rest.modular.mall.service.IMallGroupSpecService; |
| | | import com.sinata.rest.modular.mall.service.IMallOrderDetailGroupSpecService; |
| | | import com.sinata.rest.modular.mall.service.IMallOrderDetailService; |
| | | import com.sinata.rest.modular.mall.service.IMallOrderMainService; |
| | | import com.sinata.rest.modular.mall.service.IMallOrderService; |
| | | import com.sinata.rest.modular.member.model.MemUser; |
| | | import com.sinata.rest.modular.member.model.MyCoupon; |
| | | import com.sinata.rest.modular.member.service.IMyCouponService; |
| | |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | import javax.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.ResponseEntity; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.bind.annotation.DeleteMapping; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.PutMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.client.RestTemplate; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 订单接口 |
| | |
| | | @Autowired |
| | | private IMallGroupSpecService mallGroupSpecService; |
| | | |
| | | @Autowired |
| | | private IMallOrderDetailGroupSpecService mallOrderDetailGroupSpecService; |
| | | |
| | | @GetMapping(value = "/list") |
| | | @ApiOperation(value = "获取订单列表", notes = "获取订单列表") |
| | | @ApiImplicitParams({ |
| | |
| | | @ApiImplicitParam(name = "orderNo", value = "订单编号", defaultValue = "1", dataType = "String", paramType = "query", required = true), |
| | | }) |
| | | public ApiUtils<VoMallOrder> detail(String orderNo) { |
| | | VoMallOrder order = orderService.getOrderByOrderNo(orderNo); |
| | | if (order == null) { |
| | | VoMallOrder o = orderService.getOrderByOrderNo(orderNo); |
| | | if (o == null) { |
| | | return ApiUtils.returnNG(null, "订单信息不存在"); |
| | | } |
| | | wrapperVoMallOrder(orderNo, o); |
| | | return ApiUtils.returnOK(o); |
| | | } |
| | | |
| | | public VoMallOrder wrapperVoMallOrder(String orderNo, VoMallOrder voMallOrder) { |
| | | try { |
| | | order.setOrderCode(QRCodeUtils.crateQRCode(orderNo, 200, 200)); |
| | | voMallOrder.setOrderCode(QRCodeUtils.crateQRCode(orderNo, 200, 200)); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | List<VoMallOrderDetail> detailList = orderService.getOrderDetailByOrderNoList(orderNo); |
| | | for (VoMallOrderDetail od : detailList) { |
| | | List<Integer> groupSpecGoodsIdList = new ArrayList<>(); |
| | | MallGoodsSku goodsSku = mallGoodsSkuService.getOne( |
| | | Wrappers.<MallGoodsSku>query().lambda() |
| | | .eq(MallGoodsSku::getGoodsId, od.getGoodsId()) |
| | | .eq(MallGoodsSku::getMerchantId, 0) |
| | | .last("LIMIT 1") |
| | | ); |
| | | if (goodsSku != null && StrUtil.isNotBlank(goodsSku.getSpecIds())) { |
| | | String[] specIdArray = goodsSku.getSpecIds().split(","); |
| | | List<MallGroupSpec> groupSpecList = mallGroupSpecService.list( |
| | | Wrappers.<MallGroupSpec>query().lambda() |
| | | .in(MallGroupSpec::getId, specIdArray) |
| | | ); |
| | | for (MallGroupSpec mallGroupSpec : groupSpecList) { |
| | | groupSpecGoodsIdList.addAll( |
| | | Arrays.stream(mallGroupSpec.getGoodsIds().split(",")).map(Integer::parseInt).collect(Collectors.toList()) |
| | | ); |
| | | } |
| | | } |
| | | if (groupSpecGoodsIdList != null && groupSpecGoodsIdList.size() > 0) { |
| | | List<MallGoods> groupSpecGoodsList = mallGoodsService.list( |
| | | Wrappers.<MallGoods>query().lambda() |
| | | .in(MallGoods::getId, groupSpecGoodsIdList) |
| | | ); |
| | | od.setGroupSpecGoodsList(groupSpecGoodsList); |
| | | } |
| | | List<VoMallOrderDetailGroupSpecGoods> voMallOrderDetailGroupSpecGoodsList = mallOrderDetailGroupSpecService.getListByOrderNo(null, od.getOrderDetailNo()); |
| | | od.setGroupSpecGoodsList(voMallOrderDetailGroupSpecGoodsList); |
| | | // List<Integer> groupSpecGoodsIdList = new ArrayList<>(); |
| | | // MallGoodsSku goodsSku = mallGoodsSkuService.getById(od.getSkuId()); |
| | | // if (goodsSku != null && StrUtil.isNotBlank(goodsSku.getSpecIds())) { |
| | | // String[] specIdArray = goodsSku.getSpecIds().split(","); |
| | | // List<MallGroupSpec> groupSpecList = mallGroupSpecService.list( |
| | | // Wrappers.<MallGroupSpec>query().lambda() |
| | | // .in(MallGroupSpec::getId, specIdArray) |
| | | // ); |
| | | // for (MallGroupSpec mallGroupSpec : groupSpecList) { |
| | | // groupSpecGoodsIdList.addAll( |
| | | // Arrays.stream(mallGroupSpec.getGoodsIds().split(",")).map(Integer::parseInt).collect(Collectors.toList()) |
| | | // ); |
| | | // } |
| | | // } |
| | | // if (groupSpecGoodsIdList != null && groupSpecGoodsIdList.size() > 0) { |
| | | // List<MallGoods> groupSpecGoodsList = mallGoodsService.list( |
| | | // Wrappers.<MallGoods>query().lambda() |
| | | // .in(MallGoods::getId, groupSpecGoodsIdList) |
| | | // ); |
| | | // od.setGroupSpecGoodsList(groupSpecGoodsList); |
| | | // } |
| | | } |
| | | order.setDetailList(detailList); |
| | | return ApiUtils.returnOK(order); |
| | | voMallOrder.setDetailList(detailList); |
| | | return voMallOrder; |
| | | } |
| | | |
| | | @GetMapping(value = "/getOrderDetailGroupSpecGoods") |
| | | @ApiOperation(value = "获取订单套餐规格组商品列表", notes = "获取订单套餐规格组商品列表") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "orderNo", value = "订单编号", dataType = "String", paramType = "query", required = true), |
| | | }) |
| | | public ApiUtils<List<VoMallOrderDetailGroupSpecGoods>> getOrderDetailGroupSpecGoods(String orderNo) { |
| | | return ApiUtils.returnOK(mallOrderDetailGroupSpecService.getListByOrderNo(orderNo, null)); |
| | | } |
| | | |
| | | @GetMapping(value = "/getSkuByMerchant") |
| | | @ApiOperation(value = "获取门店sku信息", notes = "获取门店sku信息") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "skuIds", value = "商品Sku串(逗号分隔)", defaultValue = "1", dataType = "String", paramType = "query", required = true), |
| | | @ApiImplicitParam(name = "skuIds", value = "商品Sku串(逗号分隔)", dataType = "String", paramType = "query", required = true), |
| | | @ApiImplicitParam(name = "merchantId", value = "门店ID", defaultValue = "1", dataType = "String", paramType = "query", required = true), |
| | | }) |
| | | public List<VoGoodsSku> getSkuByMerchant(String skuIds, Integer merchantId) { |