From bf765893039bc7968b8160a70bda778526dca98c Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 31 十二月 2024 15:28:19 +0800
Subject: [PATCH] 定时任务

---
 manage/src/main/java/com/jilongda/manage/controller/TOrderController.java |  259 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 257 insertions(+), 2 deletions(-)

diff --git a/manage/src/main/java/com/jilongda/manage/controller/TOrderController.java b/manage/src/main/java/com/jilongda/manage/controller/TOrderController.java
index ebffdbd..2ed18f8 100644
--- a/manage/src/main/java/com/jilongda/manage/controller/TOrderController.java
+++ b/manage/src/main/java/com/jilongda/manage/controller/TOrderController.java
@@ -1,9 +1,35 @@
 package com.jilongda.manage.controller;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.jilongda.common.basic.ApiResult;
+import com.jilongda.common.basic.PageInfo;
+import com.jilongda.manage.authority.model.SecUser;
+import com.jilongda.manage.authority.service.SecUserService;
+import com.jilongda.manage.dto.TOrderDTO;
+import com.jilongda.manage.model.*;
+import com.jilongda.manage.query.TModelQuery;
+import com.jilongda.manage.query.TOptometryQuery;
+import com.jilongda.manage.query.TOrderQuery;
+import com.jilongda.manage.service.*;
+import com.jilongda.manage.utils.LoginInfoUtil;
+import com.jilongda.manage.utils.OssUploadUtil;
+import com.jilongda.manage.vo.TModelVO;
+import com.jilongda.manage.vo.TOptometryVO;
+import com.jilongda.manage.vo.TOrderListVO;
+import com.jilongda.manage.vo.TOrderVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
-import org.springframework.web.bind.annotation.RestController;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -13,9 +39,238 @@
  * @author 无关风月
  * @since 2024-12-09
  */
+@Api(tags = "销售订单")
 @RestController
 @RequestMapping("/t-order")
 public class TOrderController {
 
+    @Autowired
+    private TAppUserService tAppUserService;
+    @Autowired
+    private SecUserService secUserService;
+    @Autowired
+    private TCouponReceiveService couponReceiveService;
+    @Autowired
+    private TCouponService couponService;
+    @Autowired
+    private TOrderService orderService;
+    @Autowired
+    private TOptometryDetailService optometryDetailService;
+    @Autowired
+    private TOrderGoodsService orderGoodsService;
+    @Autowired
+    private TFrameGoodsService frameGoodsService;
+    @Autowired
+    private TLensGoodsService lensGoodsService;
+    @Autowired
+    private TModelService modelService;
+    @Autowired
+    private TLensSeriesService lensSeriesService;
+    @Autowired
+    private TBrandService brandService;
+    @Autowired
+    private TOptometryService optometryService;
+    @PostMapping("/obs-upload")
+    @ApiOperation(value = "文件上传",tags = "管理后台-文件上传")
+    public ApiResult<String> uploadOSS(@RequestPart("file") MultipartFile file) {
+        try {
+            // 上传并返回访问地址
+            String fileName = file.getOriginalFilename();
+            String prefix = fileName.substring(fileName.lastIndexOf("."));
+            long fileSize = file.getSize();
+            String url = OssUploadUtil.ossUpload("eyes/",file);
+            return ApiResult.success(url);
+        } catch (Exception e) {
+            System.err.println("上传文件失败"+e);
+            return ApiResult.failed(e.getMessage());
+        }
+    }
+    @ApiOperation(value = "销售订单分页列表")
+    @PostMapping(value = "/pageList")
+    public ApiResult<PageInfo<TOrderListVO>> pageList(@RequestBody TOrderQuery query) {
+        if (StringUtils.hasLength(query.getStartTime())){
+            query.setStartTime(query.getStartTime()+" 00:00:00");
+            query.setEndTime(query.getEndTime()+" 23:59:59");
+        }
+        List<Integer> orderIds = new ArrayList<>();
+        List<Integer> collect = tAppUserService.lambdaQuery()
+                .eq(StringUtils.hasLength(query.getWxName()), TAppUser::getName, query.getWxName())
+                .eq(StringUtils.hasLength(query.getPhone()), TAppUser::getName, query.getPhone()).list()
+                .stream().map(TAppUser::getId).collect(Collectors.toList());
+        if (StringUtils.hasLength(query.getWxName())||StringUtils.hasLength(query.getPhone())){
+            query.setUserIds(collect);
+            if (collect.isEmpty())return ApiResult.success(new PageInfo<>());
+        }
+        List<Integer> collect1 = orderGoodsService.lambdaQuery()
+                .eq(StringUtils.hasLength(query.getBrandLens()), TOrderGoods::getBrandName, query.getBrandLens())
+                .eq(StringUtils.hasLength(query.getSeries()), TOrderGoods::getSeriesName, query.getSeries())
+                .eq((query.getType() != null), TOrderGoods::getType, query.getType())
+                .eq(StringUtils.hasLength(query.getRefractiveIndex()), TOrderGoods::getRefractiveIndex, query.getRefractiveIndex()).list()
+                .stream().map(TOrderGoods::getOrderId).collect(Collectors.toList());
+        if (StringUtils.hasLength(query.getBrandLens())||StringUtils.hasLength(query.getSeries())||query.getType() != null||
+                StringUtils.hasLength(query.getRefractiveIndex())){
+            orderIds.addAll(collect1);
+        }
+        List<Integer> collect2 = orderGoodsService.lambdaQuery()
+                .eq(StringUtils.hasLength(query.getBrandFrame()), TOrderGoods::getBrandName, query.getBrandFrame())
+                .eq(StringUtils.hasLength(query.getModelName()), TOrderGoods::getModelName, query.getModelName())
+                .eq(StringUtils.hasLength(query.getColor()), TOrderGoods::getColor, query.getColor()).list()
+                .stream().map(TOrderGoods::getOrderId).collect(Collectors.toList());
+        if (StringUtils.hasLength(query.getBrandFrame())||StringUtils.hasLength(query.getModelName())||
+                StringUtils.hasLength(query.getColor())){
+            orderIds.addAll(collect2);
+        }
+        if (StringUtils.hasLength(query.getBrandFrame())||StringUtils.hasLength(query.getModelName())||
+                StringUtils.hasLength(query.getColor())||StringUtils.hasLength(query.getBrandLens())||StringUtils.hasLength(query.getSeries())||query.getType() != null||
+                StringUtils.hasLength(query.getRefractiveIndex())){
+            if (orderIds.isEmpty())return ApiResult.success(new PageInfo<>());
+        }
+        return ApiResult.success(orderService.pageList(query));
+    }
+    @ApiOperation(value = "查询用户信息")
+    @GetMapping(value = "/getUserById")
+    public ApiResult getUserById(@RequestParam Integer userId) {
+        return ApiResult.success(tAppUserService.getById(userId));
+    }
+
+    @ApiOperation(value = "查询员工信息")
+    @GetMapping(value = "/getStaffList")
+    public ApiResult getStaffList() {
+        List<SecUser> list = secUserService.list(Wrappers.lambdaQuery(SecUser.class)
+                .eq(SecUser::getUserType, 3)
+                .eq(SecUser::getIsDelete, 0));
+        return ApiResult.success(list);
+    }
+
+    @ApiOperation(value = "查询优惠券")
+    @GetMapping(value = "/getCouponListByUserId")
+    public ApiResult<List<TCouponReceive>> getCouponListByUserId(@RequestParam Integer userId, @RequestParam Integer storeId) {
+        List<TCouponReceive> list = couponReceiveService.list(Wrappers.lambdaQuery(TCouponReceive.class)
+                .eq(TCouponReceive::getUserId, userId)
+                .eq(TCouponReceive::getStatus, 1));
+        List<TCouponReceive> tCouponReceives = new ArrayList<>();
+        for (TCouponReceive tCouponReceive : list) {
+            TCoupon byId = couponService.getById(tCouponReceive.getCouponId());
+            tCouponReceive.setCouponName(byId.getName());
+            if (StringUtils.hasLength(tCouponReceive.getStoreId())){
+                if (Arrays.asList(tCouponReceive.getStoreId().split(",")).contains(storeId+"")){
+                    tCouponReceives.add(tCouponReceive);
+                }
+            }else{
+                // 通用
+                tCouponReceives.add(tCouponReceive);
+            }
+        }
+
+        return ApiResult.success(tCouponReceives);
+    }
+
+    @ApiOperation(value = "添加订单")
+    @PostMapping(value = "/addOrder")
+    public ApiResult addOrder(@RequestBody TOrderDTO dto) {
+
+        // 查询店员
+        SecUser user = secUserService.getById(dto.getSysId());
+        if(Objects.nonNull(user)){
+            dto.setStoreId(user.getStoreId());
+        }
+        if (dto.getUserId()!=null){
+            TAppUser byId = tAppUserService.getById(dto.getUserId());
+            dto.setName(byId.getName());
+            dto.setPhone(byId.getPhone());
+        }
+        orderService.save(dto);
+
+        List<TOptometryDetail> optometryDetails = dto.getOptometryDetails();
+        if (!CollectionUtils.isEmpty(optometryDetails)){
+            for (TOptometryDetail optometryDetail : optometryDetails) {
+                optometryDetail.setOrderId(dto.getId());
+            }
+            optometryDetailService.saveBatch(optometryDetails);
+        }
+
+        List<TOrderGoods> orderGoods = dto.getOrderGoods();
+        List<TLensGoods> tLensGoods = new ArrayList<>();
+        List<TFrameGoods> tFrameGoods = new ArrayList<>();
+        for (TOrderGoods orderGood : orderGoods) {
+            orderGood.setOrderId(dto.getId());
+            if (StringUtils.hasLength(orderGood.getSeriesName())){
+                // 镜片
+                orderGood.setRLens(orderGood.getRightLens());
+                orderGood.setLLens(orderGood.getLeftLens());
+                String rLens = orderGood.getRLens();
+                String[] split = null;
+                if(StringUtils.hasLength(rLens)){
+                    split = rLens.split(",");
+                }else {
+                    split = orderGood.getLLens().split(",");
+                }
+                TBrand one1 = brandService.lambdaQuery().eq(TBrand::getName, orderGood.getBrandName())
+                        .eq(TBrand::getType, 2).one();
+                TLensSeries one2 = lensSeriesService.lambdaQuery().eq(TLensSeries::getName, orderGood.getSeriesName())
+                        .eq(TLensSeries::getBrandId, one1.getId()).one();
+                TLensGoods one = lensGoodsService.lambdaQuery()
+                        .eq(StringUtils.hasLength(orderGood.getSeriesName()),TLensGoods::getSeriesId, one2.getId())
+                        .eq(StringUtils.hasLength(orderGood.getRefractiveIndex()),TLensGoods::getRefractiveIndex, orderGood.getRefractiveIndex())
+                        .eq(orderGood.getType()!=null,TLensGoods::getLensType, orderGood.getType())
+                        .eq(split.length>0,TLensGoods::getBallMirror, split[0])
+                        .eq(split.length>=2,TLensGoods::getColumnMirror, split[1])
+                        .one();
+                if (one!=null){
+                    if (one.getTotal()-1<0){
+                        return ApiResult.failed("库存不足");
+                    }
+                    // 减少对应库存
+                    one.setTotal(one.getTotal()-1);
+                    tLensGoods.add(one);
+                }else {
+                    return ApiResult.failed("商品不存在");
+                }
+            }else{
+                TModel one1 = modelService.lambdaQuery().eq(TModel::getName, orderGood.getModelName())
+                        .eq(TModel::getColor, orderGood.getColor()).one();
+                BigDecimal cost = one1.getCost();
+                orderGood.setCost(cost);
+                TFrameGoods one = frameGoodsService.lambdaQuery()
+                        .eq(TFrameGoods::getModelId, one1.getId())
+                        .eq(TFrameGoods::getColor, orderGood.getColor()).one();
+                if (one!=null){
+                    if (one.getTotal()-1<0){
+                        return ApiResult.failed("库存不足");
+                    }
+                    // 增加对应库存
+                    one.setTotal(one.getTotal()-1);
+                    tFrameGoods.add(one);
+                }else{
+                    return ApiResult.failed("商品不存在");
+                }
+            }
+        }
+        orderGoodsService.saveBatch(orderGoods);
+        lensGoodsService.updateBatchById(tLensGoods);
+        frameGoodsService.updateBatchById(tFrameGoods);
+        return ApiResult.success(dto.getId());
+    }
+
+    @ApiOperation(value = "销售订单详情")
+    @GetMapping(value = "/getOrderDetailById")
+    public ApiResult getOrderDetailById(@RequestParam Integer orderId) {
+        TOrder byId = orderService.getById(orderId);
+
+        TOrderVO orderVO = orderService.getOrderDetailById(orderId);
+        List<TOrderGoods> list = orderGoodsService.lambdaQuery().eq(TOrderGoods::getOrderId, orderId).list();
+        orderVO.setOrderGoods(list);
+        if (byId.getOptometryId()!=null){
+            // 选择验光单
+            List<TOptometryDetail> list1 = optometryDetailService.lambdaQuery().eq(TOptometryDetail::getOptometryId, byId.getOptometryId()).list();
+            orderVO.setOptometryDetails(list1);
+        }else{
+            // 手动填写验光单
+            List<TOptometryDetail> list1 = optometryDetailService.lambdaQuery().eq(TOptometryDetail::getOrderId, orderId).list();
+            orderVO.setOptometryDetails(list1);
+        }
+        return ApiResult.success(orderVO);
+    }
+
 }
 

--
Gitblit v1.7.1