package com.kmall.admin.service.impl; import com.google.common.collect.ImmutableBiMap; import com.kmall.admin.dto.CombinationPriceGoodsDto; import com.kmall.admin.dto.DiscountedProductsDto; import com.kmall.admin.entity.MkActivitiesDiscountEntity; import com.kmall.common.utils.MapBeanUtil; import com.kmall.common.utils.R; import com.kmall.common.utils.RRException; import com.kmall.common.utils.ValidatorUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import com.kmall.admin.dao.MkActivitiesCombinationPriceDao; import com.kmall.admin.entity.MkActivitiesCombinationPriceEntity; import com.kmall.admin.service.MkActivitiesCombinationPriceService; import org.springframework.transaction.annotation.Transactional; /** * 营销活动-组合价Service实现类 * * @author emato * @email admin@qhdswl.com * @date 2020-09-23 10:43:25 */ @Service("mkActivitiesCombinationPriceService") public class MkActivitiesCombinationPriceServiceImpl implements MkActivitiesCombinationPriceService { @Autowired private MkActivitiesCombinationPriceDao mkActivitiesCombinationPriceDao; @Override public MkActivitiesCombinationPriceEntity queryObject(Long macpId) { return mkActivitiesCombinationPriceDao.queryObject(macpId); } @Override public List queryList(Map map) { return mkActivitiesCombinationPriceDao.queryList(map); } @Override public int queryTotal(Map map) { return mkActivitiesCombinationPriceDao.queryTotal(map); } @Override public int save(MkActivitiesCombinationPriceEntity mkActivitiesCombinationPrice) { return mkActivitiesCombinationPriceDao.save(mkActivitiesCombinationPrice); } @Override public int update(MkActivitiesCombinationPriceEntity mkActivitiesCombinationPrice) { return mkActivitiesCombinationPriceDao.update(mkActivitiesCombinationPrice); } @Override public int delete(Long macpId) { return mkActivitiesCombinationPriceDao.delete(macpId); } @Override public int deleteBatch(Long[]macpIds) { return mkActivitiesCombinationPriceDao.deleteBatch(macpIds); } /** * 上传活动商品 * * @param combinationPriceGoodsDtoList * @param storeId * @param mkaId */ @Override @Transactional public void uploadExcel(List combinationPriceGoodsDtoList, String storeId, String mkaId) { if (combinationPriceGoodsDtoList != null && combinationPriceGoodsDtoList.size() > 0) { for (int i = 0; i < combinationPriceGoodsDtoList.size(); i++) { CombinationPriceGoodsDto combinationPriceGoodsDto = combinationPriceGoodsDtoList.get(i); Map valideDate = MapBeanUtil.fromObject(combinationPriceGoodsDto); // 校验excel传入的数据 ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder(); builder.put("goodsSns", "商品编码"); builder.put("barCodes", "商品条码"); builder.put("combinedPrice", "组合价格"); builder.put("combinedCount", "组合的产品总件数"); builder.put("deadline", "截止日期"); R r = ValidatorUtil.isEmpty(builder.build(), valideDate); if (Integer.valueOf(r.get("code").toString()) != 0) { throw new RRException(r.get("msg").toString()); } String[] goodsSnArray = combinationPriceGoodsDto.getGoodsSns().split(":"); String[] barCodeArray = combinationPriceGoodsDto.getBarCodes().split(":"); if(goodsSnArray.length != barCodeArray.length){ throw new RRException("编码的数量跟条码的数量不一致!"); } // 保存日常活动商品 List mkActivitiesCombinationPriceEntityList = new ArrayList<>(); Date createTime = new Date(); for(int index = 0 ; index < goodsSnArray.length ; index ++){ MkActivitiesCombinationPriceEntity mkActivitiesCombinationPriceEntity = new MkActivitiesCombinationPriceEntity(); mkActivitiesCombinationPriceEntity.setGoodsSn(goodsSnArray[index]); mkActivitiesCombinationPriceEntity.setBarcode(barCodeArray[index]); mkActivitiesCombinationPriceEntity.setCombinedPrice(new BigDecimal(combinationPriceGoodsDto.getCombinedPrice())); mkActivitiesCombinationPriceEntity.setCombinationNum(combinationPriceGoodsDto.getCombinedCount()); mkActivitiesCombinationPriceEntity.setDeadline(combinationPriceGoodsDto.getDeadline()); mkActivitiesCombinationPriceEntity.setMkaId(Long.parseLong(mkaId)); mkActivitiesCombinationPriceEntity.setCombinationType(combinationPriceGoodsDto.getGoodsSns()); mkActivitiesCombinationPriceEntity.setCreateTime(createTime); mkActivitiesCombinationPriceEntityList.add(mkActivitiesCombinationPriceEntity); } mkActivitiesCombinationPriceDao.saveBatch(mkActivitiesCombinationPriceEntityList); } } } }