package com.kmall.admin.service.impl; import com.google.common.collect.ImmutableBiMap; import com.kmall.admin.dao.GoodsDao; import com.kmall.admin.dto.BuyOneGetOneFreeDto; import com.kmall.admin.dto.FreeGoodsDto; import com.kmall.admin.entity.GoodsEntity; import com.kmall.admin.entity.MkActivitiesFullGiftEntity; import com.kmall.common.utils.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.List; import java.util.Map; import com.kmall.admin.dao.MkActivitiesGetOneFreeGoodsDao; import com.kmall.admin.entity.MkActivitiesGetOneFreeGoodsEntity; import com.kmall.admin.service.MkActivitiesGetOneFreeGoodsService; import org.springframework.transaction.annotation.Transactional; /** * 营销活动--买一送 说明:购买商品条码,购买商品品牌,购买商品系列三列不可以同是为空Service实现类 * * @author emato * @email admin@qhdswl.com * @date 2020-09-23 10:43:25 */ @Service("mkActivitiesGetOneFreeGoodsService") public class MkActivitiesGetOneFreeGoodsServiceImpl implements MkActivitiesGetOneFreeGoodsService { @Autowired private GoodsDao goodsDao; @Autowired private MkActivitiesGetOneFreeGoodsDao mkActivitiesGetOneFreeGoodsDao; @Override public MkActivitiesGetOneFreeGoodsEntity queryObject(Long mkaFreeId) { return mkActivitiesGetOneFreeGoodsDao.queryObject(mkaFreeId); } @Override public List queryList(Map map) { return mkActivitiesGetOneFreeGoodsDao.queryList(map); } @Override public int queryTotal(Map map) { return mkActivitiesGetOneFreeGoodsDao.queryTotal(map); } @Override public int save(MkActivitiesGetOneFreeGoodsEntity mkActivitiesGetOneFreeGoods) { GoodsEntity goodsEntity = goodsDao.queryBySku(mkActivitiesGetOneFreeGoods.getGoodsSn()); if(!StringUtils.isNullOrEmpty(goodsEntity)){ mkActivitiesGetOneFreeGoods.setProductName(goodsEntity.getName()); } return mkActivitiesGetOneFreeGoodsDao.save(mkActivitiesGetOneFreeGoods); } @Override public int update(MkActivitiesGetOneFreeGoodsEntity mkActivitiesGetOneFreeGoods) { return mkActivitiesGetOneFreeGoodsDao.update(mkActivitiesGetOneFreeGoods); } @Override public int delete(Long mkaFreeId) { return mkActivitiesGetOneFreeGoodsDao.delete(mkaFreeId); } @Override public int deleteBatch(Long[]mkaFreeIds) { return mkActivitiesGetOneFreeGoodsDao.deleteBatch(mkaFreeIds); } /** * 上传活动商品 * * @param buyOneGetOneFreeDtoList * @param storeId * @param mkaId */ @Override @Transactional public void uploadExcel(List buyOneGetOneFreeDtoList, String storeId, String mkaId) { // TODO 查询所有的品牌 if (buyOneGetOneFreeDtoList != null && buyOneGetOneFreeDtoList.size() > 0) { for (int i = 0; i < buyOneGetOneFreeDtoList.size(); i++) { BuyOneGetOneFreeDto buyOneGetOneFreeDto = buyOneGetOneFreeDtoList.get(i); Map valideDate = MapBeanUtil.fromObject(buyOneGetOneFreeDto); // 校验excel传入的数据 ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder(); builder.put("storeId", "门店编号"); builder.put("buyGoodsSn", "商品编码"); builder.put("buyBarCode", "商品条码"); builder.put("buyNum", "购买数量"); // builder.put("buyBrand", "商品品牌"); builder.put("sendBarCode", "赠送商品条码"); R r = ValidatorUtil.isEmpty(builder.build(), valideDate); if (Integer.valueOf(r.get("code").toString()) != 0) { throw new RRException(r.get("msg").toString()); } // MkActivitiesGetOneFreeGoodsEntity old = mkActivitiesGetOneFreeGoodsDao.queryByCodeOrBrand(Long.parseLong(mkaId), buyOneGetOneFreeDto.getBuyBarCode(), buyOneGetOneFreeDto.getBuyBrand()); // if(old != null){ // throw new RRException("该商品或者该品牌已经参与本次活动,商品{"+buyOneGetOneFreeDto.getBuyBarCode()+"},品牌,{"+buyOneGetOneFreeDto.getBuyBrand()+"}",500); // } // 保存日常活动商品 MkActivitiesGetOneFreeGoodsEntity mkActivitiesGetOneFreeGoodsEntity = new MkActivitiesGetOneFreeGoodsEntity(); mkActivitiesGetOneFreeGoodsEntity.setGoodsSn(buyOneGetOneFreeDto.getBuyGoodsSn()); // 商品编号 mkActivitiesGetOneFreeGoodsEntity.setBarcode(buyOneGetOneFreeDto.getBuyBarCode()); // 商品条码 mkActivitiesGetOneFreeGoodsEntity.setBuyNum(Integer.valueOf(buyOneGetOneFreeDto.getBuyNum())); // 购买数量 mkActivitiesGetOneFreeGoodsEntity.setProductBrand(buyOneGetOneFreeDto.getBuyBrand()); // 商品品牌 mkActivitiesGetOneFreeGoodsEntity.setGiftBarcode(buyOneGetOneFreeDto.getSendBarCode()); // 赠送商品条码 mkActivitiesGetOneFreeGoodsEntity.setShopSn(storeId); // 门店编号 mkActivitiesGetOneFreeGoodsEntity.setMkaId(Long.parseLong(mkaId)); GoodsEntity goodsEntity = goodsDao.queryBySku(buyOneGetOneFreeDto.getBuyBarCode()); if(!StringUtils.isNullOrEmpty(goodsEntity)){ mkActivitiesGetOneFreeGoodsEntity.setProductName(goodsEntity.getName()); //产品中文名 } mkActivitiesGetOneFreeGoodsDao.save(mkActivitiesGetOneFreeGoodsEntity); } } } /** * 根据条码跟品牌名称查询 * * @param mkaId * @param prodBarcode * @param brandName * @return */ @Override public MkActivitiesGetOneFreeGoodsEntity queryByCodeOrBrand(Long mkaId, String prodBarcode, String brandName) { return mkActivitiesGetOneFreeGoodsDao.queryByCodeOrBrand(mkaId,prodBarcode,brandName); } }