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 | 183 ++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 162 insertions(+), 21 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 c1ee985..2ed18f8 100644 --- a/manage/src/main/java/com/jilongda/manage/controller/TOrderController.java +++ b/manage/src/main/java/com/jilongda/manage/controller/TOrderController.java @@ -7,14 +7,16 @@ 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.TCoupon; -import com.jilongda.manage.model.TCouponReceive; -import com.jilongda.manage.model.TOptometryDetail; -import com.jilongda.manage.model.TOrder; +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; @@ -23,7 +25,9 @@ import org.springframework.util.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -52,7 +56,77 @@ 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) { @@ -70,12 +144,14 @@ @ApiOperation(value = "查询优惠券") @GetMapping(value = "/getCouponListByUserId") - public ApiResult<List<TCoupon>> getCouponListByUserId(@RequestParam Integer userId, @RequestParam Integer storeId) { + 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); @@ -85,12 +161,8 @@ tCouponReceives.add(tCouponReceive); } } - List<Integer> collect = list.stream().map(TCouponReceive::getCouponId).collect(Collectors.toList()); - if (collect.isEmpty()){ - collect.add(-1); - } - List<TCoupon> list1 = couponService.lambdaQuery().in(TCoupon::getId, collect).list(); - return ApiResult.success(list1); + + return ApiResult.success(tCouponReceives); } @ApiOperation(value = "添加订单") @@ -102,6 +174,11 @@ 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(); @@ -112,22 +189,86 @@ optometryDetailService.saveBatch(optometryDetails); } - // TODO 周哥 补库存 - - return ApiResult.success(); + 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); - - // TODO 周哥 商品信息集合 - - // TODO 周哥 验光处方 判断是关联或者手动 - - + 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