| | |
| | | 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.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.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | private TFrameGoodsService frameGoodsService; |
| | | @Autowired |
| | | private TLensGoodsService lensGoodsService; |
| | | @Autowired |
| | | private TModelService modelService; |
| | | @Autowired |
| | | private TLensSeriesService lensSeriesService; |
| | | @Autowired |
| | | private TBrandService brandService; |
| | | @Autowired |
| | | private TOptometryService optometryService; |
| | | @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) { |
| | |
| | | if(Objects.nonNull(user)){ |
| | | dto.setStoreId(user.getStoreId()); |
| | | } |
| | | |
| | | orderService.save(dto); |
| | | |
| | | List<TOptometryDetail> optometryDetails = dto.getOptometryDetails(); |
| | | if (!CollectionUtils.isEmpty(optometryDetails)){ |
| | | for (TOptometryDetail optometryDetail : optometryDetails) { |
| | |
| | | } |
| | | 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())){ |
| | | // 镜片 |
| | | String rLens = orderGood.getRLens(); |
| | | String[] split = rLens.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("库存不足"); |
| | | } |
| | | // TODO 周哥 补库存 |
| | | |
| | | // 减少对应库存 |
| | | 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(); |
| | | } |
| | | |
| | | @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); |
| | | } |
| | | |