|
|
@@ -13,16 +13,15 @@ import com.zhongzheng.common.utils.DateUtils;
|
|
|
import com.zhongzheng.modules.distribution.bo.DistributionActivityTemplateAddBo;
|
|
|
import com.zhongzheng.modules.distribution.bo.DistributionActivityTemplateEditBo;
|
|
|
import com.zhongzheng.modules.distribution.bo.DistributionActivityTemplateQueryBo;
|
|
|
-import com.zhongzheng.modules.distribution.domain.DistributionActivityTemplate;
|
|
|
-import com.zhongzheng.modules.distribution.domain.DistributionActivityTemplateGoods;
|
|
|
-import com.zhongzheng.modules.distribution.domain.DistributionActivityTemplateRelation;
|
|
|
+import com.zhongzheng.modules.distribution.bo.DistributionStatusEditBo;
|
|
|
+import com.zhongzheng.modules.distribution.domain.*;
|
|
|
import com.zhongzheng.modules.distribution.mapper.DistributionActivityTempMapper;
|
|
|
-import com.zhongzheng.modules.distribution.service.IDistributionActivityTemplateGoodsService;
|
|
|
-import com.zhongzheng.modules.distribution.service.IDistributionActivityTemplateRelationService;
|
|
|
-import com.zhongzheng.modules.distribution.service.IDistributionActivityTemplateService;
|
|
|
+import com.zhongzheng.modules.distribution.service.*;
|
|
|
import com.zhongzheng.modules.distribution.vo.DistributionActivityTemplateGoodsVo;
|
|
|
import com.zhongzheng.modules.distribution.vo.DistributionActivityTemplateVo;
|
|
|
import com.zhongzheng.modules.distribution.vo.DistributionActivityTenantVo;
|
|
|
+import com.zhongzheng.modules.goods.domain.Goods;
|
|
|
+import com.zhongzheng.modules.goods.service.IGoodsService;
|
|
|
import com.zhongzheng.modules.system.domain.SysTenant;
|
|
|
import com.zhongzheng.modules.system.service.ISysTenantService;
|
|
|
import com.zhongzheng.modules.top.goods.domain.TopGoods;
|
|
|
@@ -31,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Collection;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
@@ -49,9 +49,19 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
|
|
|
@Autowired
|
|
|
private IDistributionActivityTemplateGoodsService iDistributionActivityTemplateGoodsService;
|
|
|
@Autowired
|
|
|
+ private IDistributionActivityTemplatePosterService iDistributionActivityTemplatePosterService;
|
|
|
+ @Autowired
|
|
|
+ private IDistributionActivityService iDistributionActivityService;
|
|
|
+ @Autowired
|
|
|
+ private IDistributionActivityPosterService iDistributionActivityPosterService;
|
|
|
+ @Autowired
|
|
|
+ private IDistributionActivityGoodsService iDistributionActivityGoodsService;
|
|
|
+ @Autowired
|
|
|
private ISysTenantService iSysTenantService;
|
|
|
@Autowired
|
|
|
- private ITopGoodsService iSysGoodsService;
|
|
|
+ private ITopGoodsService iTopGoodsService;
|
|
|
+ @Autowired
|
|
|
+ private IGoodsService iGoodsService;
|
|
|
|
|
|
@Override
|
|
|
public DistributionActivityTemplateVo queryById(Long id){
|
|
|
@@ -87,7 +97,7 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
|
|
|
if (CollectionUtils.isNotEmpty(templateGoodsList)){
|
|
|
List<DistributionActivityTemplateGoodsVo> templateGoodsVos = templateGoodsList.stream().map(item -> {
|
|
|
DistributionActivityTemplateGoodsVo goodsVo = BeanUtil.toBean(item, DistributionActivityTemplateGoodsVo.class);
|
|
|
- TopGoods topGoods = iSysGoodsService.getById(goodsVo.getGoodsId());
|
|
|
+ TopGoods topGoods = iTopGoodsService.getById(goodsVo.getGoodsId());
|
|
|
goodsVo.setGoodsName(topGoods.getGoodsName());
|
|
|
goodsVo.setGoodsPrice(topGoods.getStandPrice());
|
|
|
return goodsVo;
|
|
|
@@ -221,4 +231,78 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
|
|
|
}
|
|
|
return this.removeByIds(ids);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean updateStatus(DistributionStatusEditBo bo) {
|
|
|
+ DistributionActivityTemplate template = getById(bo.getDistributionTemplateId());
|
|
|
+ if (ObjectUtils.isNull(template)){
|
|
|
+ throw new CustomException("活动模板吧存在,请检查!");
|
|
|
+ }
|
|
|
+ template.setStatus(bo.getStatus());
|
|
|
+ return updateById(template);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean publishActivity(Long templateId) {
|
|
|
+ DistributionActivityTemplate template = getById(templateId);
|
|
|
+ if (ObjectUtils.isNull(template)){
|
|
|
+ throw new CustomException("模板不存在,请检查!");
|
|
|
+ }
|
|
|
+ //商品信息
|
|
|
+ List<DistributionActivityTemplateGoods> goodsList = iDistributionActivityTemplateGoodsService
|
|
|
+ .list(new LambdaQueryWrapper<DistributionActivityTemplateGoods>()
|
|
|
+ .eq(DistributionActivityTemplateGoods::getDistributionTempId, templateId));
|
|
|
+ if (CollectionUtils.isEmpty(goodsList)){
|
|
|
+ throw new CustomException("模板商品信息为空,请检查!");
|
|
|
+ }
|
|
|
+ //机构信息
|
|
|
+ List<DistributionActivityTemplateRelation> relationList = iDistributionActivityTemplateRelationService
|
|
|
+ .list(new LambdaQueryWrapper<DistributionActivityTemplateRelation>()
|
|
|
+ .eq(DistributionActivityTemplateRelation::getDistributionTempId, templateId)
|
|
|
+ .eq(DistributionActivityTemplateRelation::getStatus,1));
|
|
|
+ if (CollectionUtils.isEmpty(relationList)) {
|
|
|
+ throw new CustomException("指定机构信息为空,请检查!");
|
|
|
+ }
|
|
|
+ List<Long> tenantId = new ArrayList<>();
|
|
|
+ if (relationList.stream().anyMatch(item -> item.getTenantId() == 0L)){
|
|
|
+ //全部机构
|
|
|
+ List<SysTenant> list = iSysTenantService.list(new LambdaQueryWrapper<SysTenant>().eq(SysTenant::getStatus, 1));
|
|
|
+ tenantId = list.stream().map(SysTenant::getTenantId).collect(Collectors.toList());
|
|
|
+ }else {
|
|
|
+ tenantId = relationList.stream().map(DistributionActivityTemplateRelation::getTenantId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ tenantId.forEach(id -> {
|
|
|
+ //同步活动信息
|
|
|
+ DistributionActivityTemplatePoster templatePoster = iDistributionActivityTemplatePosterService.getById(template.getPosterTempId());
|
|
|
+ DistributionActivityPoster poster = BeanUtil.toBean(templatePoster, DistributionActivityPoster.class);
|
|
|
+ poster.setUrl(templatePoster.getPosterUrl());
|
|
|
+ poster.setTenantId(id);
|
|
|
+ iDistributionActivityPosterService.save(poster);
|
|
|
+ DistributionActivity dailyActivity = BeanUtil.toBean(template, DistributionActivity.class);
|
|
|
+ dailyActivity.setPosterId(poster.getPosterId());
|
|
|
+ dailyActivity.setTempId(template.getId());
|
|
|
+ iDistributionActivityService.save(dailyActivity);
|
|
|
+ //商品
|
|
|
+ List<DistributionActivityGoods> activityGoodsList = new ArrayList<>();
|
|
|
+ goodsList.forEach(item -> {
|
|
|
+ TopGoods topGoods = iTopGoodsService.getById(item.getGoodsId());
|
|
|
+ Goods goods = iGoodsService.getOne(new LambdaQueryWrapper<Goods>()
|
|
|
+ .eq(Goods::getCode, topGoods.getCode())
|
|
|
+ .eq(Goods::getTenantId,id)
|
|
|
+ .eq(Goods::getStatus, 1).last("limit 1"));
|
|
|
+ if (ObjectUtils.isNotNull(goods)){
|
|
|
+ DistributionActivityGoods activityGoods = BeanUtil.toBean(item, DistributionActivityGoods.class);
|
|
|
+ activityGoods.setId(null);
|
|
|
+ activityGoods.setGoodsId(goods.getGoodsId());
|
|
|
+ activityGoods.setTenantId(id);
|
|
|
+ activityGoods.setDistributionId(dailyActivity.getDistributionId());
|
|
|
+ activityGoodsList.add(activityGoods);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ iDistributionActivityGoodsService.saveBatch(activityGoodsList);
|
|
|
+ });
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|