|
@@ -12,18 +12,18 @@ import com.zhongzheng.common.core.domain.entity.SysRole;
|
|
|
import com.zhongzheng.common.core.domain.entity.TopSysUser;
|
|
|
import com.zhongzheng.common.exception.CustomException;
|
|
|
import com.zhongzheng.common.utils.DateUtils;
|
|
|
-import com.zhongzheng.modules.distribution.vo.DistributionSellerVo;
|
|
|
-import com.zhongzheng.modules.top.distribution.bo.DistributionActivityTemplateAddBo;
|
|
|
-import com.zhongzheng.modules.top.distribution.bo.DistributionActivityTemplateEditBo;
|
|
|
-import com.zhongzheng.modules.top.distribution.bo.DistributionActivityTemplateQueryBo;
|
|
|
+import com.zhongzheng.common.utils.ToolsUtils;
|
|
|
+import com.zhongzheng.modules.activity.domain.ActivityGoodsPrice;
|
|
|
+import com.zhongzheng.modules.activity.service.IActivityGoodsPriceService;
|
|
|
import com.zhongzheng.modules.distribution.bo.DistributionStatusEditBo;
|
|
|
-import com.zhongzheng.modules.distribution.domain.*;
|
|
|
-import com.zhongzheng.modules.top.distribution.bo.DistributionSellerQuery;
|
|
|
-import com.zhongzheng.modules.top.distribution.mapper.DistributionActivityTempMapper;
|
|
|
-import com.zhongzheng.modules.distribution.service.*;
|
|
|
-import com.zhongzheng.modules.top.distribution.vo.DistributionActivityTemplateGoodsVo;
|
|
|
-import com.zhongzheng.modules.top.distribution.vo.DistributionActivityTemplateVo;
|
|
|
-import com.zhongzheng.modules.top.distribution.vo.DistributionActivityTenantVo;
|
|
|
+import com.zhongzheng.modules.distribution.domain.DistributionActivity;
|
|
|
+import com.zhongzheng.modules.distribution.domain.DistributionActivityGoods;
|
|
|
+import com.zhongzheng.modules.distribution.domain.DistributionActivityPoster;
|
|
|
+import com.zhongzheng.modules.distribution.service.IDistributionActivityGoodsService;
|
|
|
+import com.zhongzheng.modules.distribution.service.IDistributionActivityPosterService;
|
|
|
+import com.zhongzheng.modules.distribution.service.IDistributionActivityService;
|
|
|
+import com.zhongzheng.modules.distribution.service.IDistributionSellerService;
|
|
|
+import com.zhongzheng.modules.distribution.vo.DistributionSellerVo;
|
|
|
import com.zhongzheng.modules.goods.domain.Goods;
|
|
|
import com.zhongzheng.modules.goods.service.IGoodsService;
|
|
|
import com.zhongzheng.modules.inform.bo.InformSysUserAddBo;
|
|
@@ -35,15 +35,25 @@ import com.zhongzheng.modules.system.domain.SysUserRole;
|
|
|
import com.zhongzheng.modules.system.service.ISysRoleService;
|
|
|
import com.zhongzheng.modules.system.service.ISysTenantService;
|
|
|
import com.zhongzheng.modules.system.service.ISysUserRoleService;
|
|
|
+import com.zhongzheng.modules.top.distribution.bo.DistributionActivityTemplateAddBo;
|
|
|
+import com.zhongzheng.modules.top.distribution.bo.DistributionActivityTemplateEditBo;
|
|
|
+import com.zhongzheng.modules.top.distribution.bo.DistributionActivityTemplateQueryBo;
|
|
|
+import com.zhongzheng.modules.top.distribution.bo.DistributionSellerQuery;
|
|
|
import com.zhongzheng.modules.top.distribution.domain.DistributionActivityTemplate;
|
|
|
import com.zhongzheng.modules.top.distribution.domain.DistributionActivityTemplateGoods;
|
|
|
import com.zhongzheng.modules.top.distribution.domain.DistributionActivityTemplatePoster;
|
|
|
import com.zhongzheng.modules.top.distribution.domain.DistributionActivityTemplateRelation;
|
|
|
+import com.zhongzheng.modules.top.distribution.mapper.DistributionActivityTempMapper;
|
|
|
import com.zhongzheng.modules.top.distribution.service.IDistributionActivityTemplateGoodsService;
|
|
|
import com.zhongzheng.modules.top.distribution.service.IDistributionActivityTemplatePosterService;
|
|
|
import com.zhongzheng.modules.top.distribution.service.IDistributionActivityTemplateRelationService;
|
|
|
import com.zhongzheng.modules.top.distribution.service.IDistributionActivityTemplateService;
|
|
|
+import com.zhongzheng.modules.top.distribution.vo.DistributionActivityTemplateGoodsVo;
|
|
|
+import com.zhongzheng.modules.top.distribution.vo.DistributionActivityTemplateVo;
|
|
|
+import com.zhongzheng.modules.top.distribution.vo.DistributionActivityTenantVo;
|
|
|
+import com.zhongzheng.modules.top.goods.domain.TopActivityGoodsPrice;
|
|
|
import com.zhongzheng.modules.top.goods.domain.TopGoods;
|
|
|
+import com.zhongzheng.modules.top.goods.service.ITopActivityGoodsPriceService;
|
|
|
import com.zhongzheng.modules.top.goods.service.ITopGoodsService;
|
|
|
import com.zhongzheng.modules.top.user.service.ITopSysUserService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -95,6 +105,10 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
|
|
|
private ITopSysUserService iTopSysUserService;
|
|
|
@Autowired
|
|
|
private IDistributionSellerService iDistributionSellerService;
|
|
|
+ @Autowired
|
|
|
+ private ITopActivityGoodsPriceService iTopActivityGoodsPriceService;
|
|
|
+ @Autowired
|
|
|
+ private IActivityGoodsPriceService iActivityGoodsPriceService;
|
|
|
|
|
|
@Override
|
|
|
public DistributionActivityTemplateVo queryById(Long id){
|
|
@@ -133,7 +147,22 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
|
|
|
DistributionActivityTemplateGoodsVo goodsVo = BeanUtil.toBean(item, DistributionActivityTemplateGoodsVo.class);
|
|
|
TopGoods topGoods = iTopGoodsService.getById(goodsVo.getGoodsId());
|
|
|
goodsVo.setGoodsName(topGoods.getGoodsName());
|
|
|
- goodsVo.setGoodsPrice(topGoods.getStandPrice());
|
|
|
+ if (item.getProfitType() == 1){
|
|
|
+ //百分比
|
|
|
+ goodsVo.setProfitMax(item.getProfitMax().multiply(new BigDecimal(100)));
|
|
|
+ goodsVo.setProfitOne(item.getProfitOne().multiply(new BigDecimal(100)));
|
|
|
+ goodsVo.setProfitTwo(item.getProfitTwo().multiply(new BigDecimal(100)));
|
|
|
+ goodsVo.setProfitThree(item.getProfitThree().multiply(new BigDecimal(100)));
|
|
|
+ }
|
|
|
+ TopActivityGoodsPrice price = iTopActivityGoodsPriceService
|
|
|
+ .getOne(new LambdaQueryWrapper<TopActivityGoodsPrice>()
|
|
|
+ .eq(TopActivityGoodsPrice::getActivityCode, vo.getCode())
|
|
|
+ .eq(TopActivityGoodsPrice::getGoodsId, item.getGoodsId())
|
|
|
+ .eq(TopActivityGoodsPrice::getStatus, 1)
|
|
|
+ .last("limit 1"));
|
|
|
+ if (ObjectUtils.isNotNull(price)){
|
|
|
+ goodsVo.setGoodsPrice(price.getGoodsPrice());
|
|
|
+ }
|
|
|
return goodsVo;
|
|
|
}).collect(Collectors.toList());
|
|
|
vo.setGoodsList(templateGoodsVos);
|
|
@@ -183,14 +212,15 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
-// @Transactional(rollbackFor = Exception.class)
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean insertByAddBo(DistributionActivityTemplateAddBo bo) {
|
|
|
//活动模板基本信息
|
|
|
DistributionActivityTemplate add = BeanUtil.toBean(bo, DistributionActivityTemplate.class);
|
|
|
validEntityBeforeSave(add);
|
|
|
+ add.setCode(ToolsUtils.getRandomString(8));
|
|
|
add.setCreateTime(DateUtils.getNowTime());
|
|
|
add.setUpdateTime(DateUtils.getNowTime());
|
|
|
- TopSysUser user = iTopSysUserService.getById(bo.getCreateTopSysUserId());
|
|
|
+ TopSysUser user = iTopSysUserService.getTopSysUser(bo.getCreateTopSysUserId());
|
|
|
if (ObjectUtils.isNotNull(user)){
|
|
|
add.setCreateBy(user.getUserName());
|
|
|
}
|
|
@@ -242,6 +272,30 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
|
|
|
return entity;
|
|
|
}).collect(Collectors.toList());
|
|
|
iDistributionActivityTemplateGoodsService.saveBatch(collect);
|
|
|
+
|
|
|
+ //商品活动价格
|
|
|
+ DistributionActivityTemplate template = getById(tempId);
|
|
|
+ bo.getGoodsList().forEach(item -> {
|
|
|
+ TopActivityGoodsPrice goodsPrice = iTopActivityGoodsPriceService
|
|
|
+ .getOne(new LambdaQueryWrapper<TopActivityGoodsPrice>()
|
|
|
+ .eq(TopActivityGoodsPrice::getActivityCode, template.getCode())
|
|
|
+ .eq(TopActivityGoodsPrice::getGoodsId, item.getGoodsId())
|
|
|
+ .last("limit 1"));
|
|
|
+ if (ObjectUtils.isNotNull(goodsPrice)){
|
|
|
+ goodsPrice.setGoodsPrice(item.getGoodsPrice());
|
|
|
+ iTopActivityGoodsPriceService.updateById(goodsPrice);
|
|
|
+ }else {
|
|
|
+ TopActivityGoodsPrice price = new TopActivityGoodsPrice();
|
|
|
+ price.setGoodsPrice(item.getGoodsPrice());
|
|
|
+ price.setActivityCode(template.getCode());
|
|
|
+ price.setStatus(1);
|
|
|
+ price.setGoodsId(item.getGoodsId());
|
|
|
+ price.setType(1);
|
|
|
+ price.setCreateTime(DateUtils.getNowTime());
|
|
|
+ price.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ iTopActivityGoodsPriceService.save(price);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -263,6 +317,8 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
|
|
|
.eq(DistributionActivityTemplateGoods::getDistributionTempId,bo.getId()));
|
|
|
iDistributionActivityTemplateRelationService.remove(new LambdaQueryWrapper<DistributionActivityTemplateRelation>()
|
|
|
.eq(DistributionActivityTemplateRelation::getDistributionTempId,bo.getId()));
|
|
|
+ iTopActivityGoodsPriceService.remove(new LambdaQueryWrapper<TopActivityGoodsPrice>()
|
|
|
+ .eq(TopActivityGoodsPrice::getActivityCode,activityTemp.getCode()));
|
|
|
DistributionActivityTemplateAddBo addBo = new DistributionActivityTemplateAddBo();
|
|
|
addBo.setIsAllOrg(bo.getIsAllOrg());
|
|
|
addBo.setGoodsList(bo.getGoodsList());
|
|
@@ -299,6 +355,7 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public boolean publishActivity(Long templateId) {
|
|
|
DistributionActivityTemplate template = getById(templateId);
|
|
|
if (ObjectUtils.isNull(template)){
|
|
@@ -322,7 +379,7 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
|
|
|
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));
|
|
|
+ List<SysTenant> list = iSysTenantService.getListSysTenant();
|
|
|
tenantId = list.stream().map(SysTenant::getTenantId).collect(Collectors.toList());
|
|
|
}else {
|
|
|
tenantId = relationList.stream().map(DistributionActivityTemplateRelation::getTenantId).collect(Collectors.toList());
|
|
@@ -334,21 +391,19 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
|
|
|
DistributionActivityPoster poster = BeanUtil.toBean(templatePoster, DistributionActivityPoster.class);
|
|
|
poster.setUrl(templatePoster.getPosterUrl());
|
|
|
poster.setTenantId(id);
|
|
|
- iDistributionActivityPosterService.save(poster);
|
|
|
+ iDistributionActivityPosterService.savePoster(poster);
|
|
|
DistributionActivity dailyActivity = BeanUtil.toBean(template, DistributionActivity.class);
|
|
|
dailyActivity.setPosterId(poster.getPosterId());
|
|
|
dailyActivity.setTempId(template.getId());
|
|
|
dailyActivity.setTenantId(id);
|
|
|
dailyActivity.setUseStatus(0);
|
|
|
- iDistributionActivityService.save(dailyActivity);
|
|
|
+ iDistributionActivityService.saveEntity(dailyActivity);
|
|
|
//商品
|
|
|
List<DistributionActivityGoods> activityGoodsList = new ArrayList<>();
|
|
|
+ List<ActivityGoodsPrice> priceList = 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"));
|
|
|
+ Goods goods = iGoodsService.getOneGoods(topGoods.getCode(),id);
|
|
|
if (ObjectUtils.isNotNull(goods)){
|
|
|
DistributionActivityGoods activityGoods = BeanUtil.toBean(item, DistributionActivityGoods.class);
|
|
|
activityGoods.setId(null);
|
|
@@ -356,20 +411,29 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
|
|
|
activityGoods.setTenantId(id);
|
|
|
activityGoods.setDistributionId(dailyActivity.getDistributionId());
|
|
|
activityGoodsList.add(activityGoods);
|
|
|
+
|
|
|
+ //商品活动价格
|
|
|
+ TopActivityGoodsPrice goodsPrice = iTopActivityGoodsPriceService
|
|
|
+ .getOne(new LambdaQueryWrapper<TopActivityGoodsPrice>()
|
|
|
+ .eq(TopActivityGoodsPrice::getActivityCode, template.getCode())
|
|
|
+ .eq(TopActivityGoodsPrice::getStatus, 1)
|
|
|
+ .eq(TopActivityGoodsPrice::getGoodsId,item.getGoodsId()));
|
|
|
+ if (ObjectUtils.isNotNull(goodsPrice)){
|
|
|
+ ActivityGoodsPrice activityGoodsPrice = BeanUtil.toBean(goodsPrice, ActivityGoodsPrice.class);
|
|
|
+ activityGoodsPrice.setTenantId(id);
|
|
|
+ activityGoodsPrice.setGoodsId(goods.getGoodsId());
|
|
|
+ priceList.add(activityGoodsPrice);
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
- iDistributionActivityGoodsService.saveBatch(activityGoodsList);
|
|
|
+ iDistributionActivityGoodsService.saveBatchEntity(activityGoodsList);
|
|
|
+ iActivityGoodsPriceService.saveBatchEntity(priceList);
|
|
|
|
|
|
//站内信通知业务员管理员 seller_admin
|
|
|
- SysRole role = iSysRoleService.getOne(new LambdaQueryWrapper<SysRole>()
|
|
|
- .eq(SysRole::getRoleKey, "seller_admin")
|
|
|
- .eq(SysRole::getTenantId,id)
|
|
|
- .eq(SysRole::getStatus, 1).last("limit 1"));
|
|
|
+ SysRole role = iSysRoleService.getOneSysRole("seller_admin",id);
|
|
|
if (ObjectUtils.isNotNull(role)){
|
|
|
- List<SysUserRole> sysUserRoles = iSysUserRoleService.list(new LambdaQueryWrapper<SysUserRole>()
|
|
|
- .eq(SysUserRole::getRoleId, role.getRoleId())
|
|
|
- .eq(SysUserRole::getTenantId, id));
|
|
|
- InformRemindVo informRemindVo = informRemindService.queryByName("课程试卷未做完7天提醒");
|
|
|
+ List<SysUserRole> sysUserRoles = iSysUserRoleService.getList(role.getRoleId(),id);
|
|
|
+ InformRemindVo informRemindVo = informRemindService.getQueryByName("课程试卷未做完7天提醒");
|
|
|
if (CollectionUtils.isNotEmpty(sysUserRoles) && ObjectUtils.isNotNull(informRemindVo)){
|
|
|
sysUserRoles.forEach(item -> {
|
|
|
InformSysUserAddBo informUserAddBo = new InformSysUserAddBo();
|
|
@@ -383,7 +447,7 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
|
|
|
informUserAddBo.setPlanId(dailyActivity.getDistributionId());
|
|
|
informUserAddBo.setRemind("分销活动提醒");
|
|
|
informUserAddBo.setText("有新的分销活动,请查看!");
|
|
|
- iInformSysUserService.insertByAddBo(informUserAddBo);
|
|
|
+ iInformSysUserService.insertEntity(informUserAddBo);
|
|
|
});
|
|
|
}
|
|
|
}
|