|
@@ -0,0 +1,166 @@
|
|
|
+package com.gree.mall.manager.logic.goods;
|
|
|
+
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.gree.mall.manager.bean.admin.AdminUserCom;
|
|
|
+import com.gree.mall.manager.bean.goods.*;
|
|
|
+import com.gree.mall.manager.commonmapper.CustomGoodsApplyMapper;
|
|
|
+import com.gree.mall.manager.logic.common.CommonLogic;
|
|
|
+import com.gree.mall.manager.plus.entity.Goods;
|
|
|
+import com.gree.mall.manager.plus.entity.GoodsApply;
|
|
|
+import com.gree.mall.manager.plus.entity.GoodsApplyItem;
|
|
|
+import com.gree.mall.manager.plus.entity.GoodsSpec;
|
|
|
+import com.gree.mall.manager.plus.mapper.GoodsApplyMapper;
|
|
|
+import com.gree.mall.manager.plus.service.GoodsApplyItemService;
|
|
|
+import com.gree.mall.manager.plus.service.GoodsApplyService;
|
|
|
+import com.gree.mall.manager.plus.service.GoodsService;
|
|
|
+import com.gree.mall.manager.plus.service.GoodsSpecService;
|
|
|
+import com.gree.mall.manager.zfire.bean.ZfireParamBean;
|
|
|
+import com.gree.mall.manager.zfire.util.FieldUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+@Component
|
|
|
+public class GoodsApplyLogic {
|
|
|
+
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ CommonLogic commonLogic;
|
|
|
+
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ CustomGoodsApplyMapper customGoodsApplyMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ GoodsService goodsService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ GoodsSpecService goodsSpecService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ GoodsApplyService goodsApplyService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ GoodsApplyItemService goodsApplyItemService;
|
|
|
+
|
|
|
+
|
|
|
+ public IPage<GoodsApplyVO> applyList(Page page, ZfireParamBean zfireParam) {
|
|
|
+ //获取当前登录企业id
|
|
|
+ AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
+
|
|
|
+ //1.组装查询条件
|
|
|
+ FieldUtils.supplyParam(zfireParam, GoodsApplyVO.class,adminUser);
|
|
|
+
|
|
|
+ IPage<GoodsApplyVO> goodsVOIPage = customGoodsApplyMapper.goodsList(page, zfireParam);
|
|
|
+ return goodsVOIPage;
|
|
|
+ }
|
|
|
+
|
|
|
+ public GoodsApplyDetail detail(String goodsApplyId, HttpServletRequest request) {
|
|
|
+
|
|
|
+ GoodsApply goodsApply = goodsApplyService.getById(goodsApplyId);
|
|
|
+
|
|
|
+ Goods goods = goodsService.getById(goodsApply.getGoodsId());
|
|
|
+
|
|
|
+ List<GoodsSpec> goodsSpecs = goodsSpecService.lambdaQuery().eq(GoodsSpec::getGoodsId, goods.getGoodsId())
|
|
|
+ .list();
|
|
|
+
|
|
|
+ GoodsApplyDetail goodsApplyDetail = BeanUtil.toBean(goodsApply,GoodsApplyDetail.class);
|
|
|
+
|
|
|
+ goodsApplyDetail.setGoods(goods);
|
|
|
+
|
|
|
+ List<GoodsApplyItemDetail> goodsApplyItemDetails = new ArrayList<>();
|
|
|
+ for (GoodsSpec goodsSpec : goodsSpecs) {
|
|
|
+
|
|
|
+ GoodsApplyItem goodsApplyItem = goodsApplyItemService.lambdaQuery()
|
|
|
+ .eq(GoodsApplyItem::getGoodsApplyId,goodsApplyId)
|
|
|
+ .eq(GoodsApplyItem::getGoodsSpecId, goodsSpec.getGoodsSpecId()).one();
|
|
|
+
|
|
|
+ GoodsApplyItemDetail goodsApplyItemDetail = BeanUtil.toBean(goodsApplyItem, GoodsApplyItemDetail.class);
|
|
|
+
|
|
|
+ goodsApplyItemDetail.setGoodsSpec(goodsSpec);
|
|
|
+
|
|
|
+ goodsApplyItemDetails.add(goodsApplyItemDetail);
|
|
|
+ }
|
|
|
+
|
|
|
+ goodsApplyDetail.setGoodsApplyItems(goodsApplyItemDetails);
|
|
|
+
|
|
|
+ return goodsApplyDetail;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void add(GoodsApplyAddUp goodsApplyAddUp, HttpServletRequest request) {
|
|
|
+
|
|
|
+ goodsApplyAddUp.insert();
|
|
|
+
|
|
|
+ List<GoodsSpec> goodsSpecs = goodsSpecService.lambdaQuery().eq(GoodsSpec::getGoodsId, goodsApplyAddUp.getGoodsId())
|
|
|
+ .list();
|
|
|
+
|
|
|
+ List<GoodsApplyItem> goodsApplyItemList = new ArrayList<>();
|
|
|
+
|
|
|
+ for (GoodsSpec goodsSpec : goodsSpecs) {
|
|
|
+ List<GoodsApplyItem> goodsApplyItems = goodsApplyAddUp.getGoodsApplyItems().stream()
|
|
|
+ .filter(item -> item.getGoodsSpecId().equals(goodsSpec.getGoodsSpecId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(goodsApplyItems)) {
|
|
|
+ goodsApplyItems.get(0).setGoodsId(goodsSpec.getGoodsId());
|
|
|
+ goodsApplyItems.get(0).setGoodsApplyId(goodsApplyAddUp.getGoodsApplyId());
|
|
|
+ goodsApplyItemList.add(goodsApplyItems.get(0));
|
|
|
+ }else {
|
|
|
+ GoodsApplyItem goodsApplyItem = new GoodsApplyItem();
|
|
|
+ goodsApplyItem.setGoodsId(goodsSpec.getGoodsId());
|
|
|
+ goodsApplyItem.setApplyPrice(goodsSpec.getPrice());
|
|
|
+ goodsApplyItem.setGoodsSpecId(goodsSpec.getGoodsSpecId());
|
|
|
+ goodsApplyItem.setGoodsApplyId(goodsApplyAddUp.getGoodsApplyId());
|
|
|
+ goodsApplyItemList.add(goodsApplyItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ goodsApplyItemService.saveBatch(goodsApplyItemList);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void update(GoodsApplyAddUp goodsApplyAddUp, HttpServletRequest request) {
|
|
|
+ goodsApplyService.removeById(goodsApplyAddUp.getGoodsApplyId());
|
|
|
+ goodsApplyItemService.lambdaUpdate().eq(GoodsApplyItem::getGoodsSpecId,goodsApplyAddUp.getGoodsApplyId()).remove();
|
|
|
+
|
|
|
+ goodsApplyAddUp.insert();
|
|
|
+
|
|
|
+ List<GoodsSpec> goodsSpecs = goodsSpecService.lambdaQuery().eq(GoodsSpec::getGoodsId, goodsApplyAddUp.getGoodsId())
|
|
|
+ .list();
|
|
|
+
|
|
|
+ List<GoodsApplyItem> goodsApplyItemList = new ArrayList<>();
|
|
|
+
|
|
|
+ for (GoodsSpec goodsSpec : goodsSpecs) {
|
|
|
+ List<GoodsApplyItem> goodsApplyItems = goodsApplyAddUp.getGoodsApplyItems().stream()
|
|
|
+ .filter(item -> item.getGoodsSpecId().equals(goodsSpec.getGoodsSpecId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(goodsApplyItems)) {
|
|
|
+ goodsApplyItems.get(0).setGoodsId(goodsSpec.getGoodsId());
|
|
|
+ goodsApplyItems.get(0).setGoodsApplyId(goodsApplyAddUp.getGoodsApplyId());
|
|
|
+ goodsApplyItemList.add(goodsApplyItems.get(0));
|
|
|
+ }else {
|
|
|
+ GoodsApplyItem goodsApplyItem = new GoodsApplyItem();
|
|
|
+ goodsApplyItem.setGoodsId(goodsSpec.getGoodsId());
|
|
|
+ goodsApplyItem.setApplyPrice(goodsSpec.getPrice());
|
|
|
+ goodsApplyItem.setGoodsSpecId(goodsSpec.getGoodsSpecId());
|
|
|
+ goodsApplyItem.setGoodsApplyId(goodsApplyAddUp.getGoodsApplyId());
|
|
|
+ goodsApplyItemList.add(goodsApplyItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ goodsApplyItemService.saveBatch(goodsApplyItemList);
|
|
|
+ }
|
|
|
+}
|