package com.kmall.admin.service.impl; import com.google.common.collect.ImmutableBiMap; import com.kmall.admin.dto.TemporaryPromotionalItemsDto; 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.List; import java.util.Map; import com.kmall.admin.dao.MkActivitiesPromotionDao; import com.kmall.admin.entity.MkActivitiesPromotionEntity; import com.kmall.admin.service.MkActivitiesPromotionService; import org.springframework.transaction.annotation.Transactional; /** * 营销活动-临时促销Service实现类 * * @author emato * @email admin@qhdswl.com * @date 2020-09-23 10:43:25 */ @Service("mkActivitiesPromotionService") public class MkActivitiesPromotionServiceImpl implements MkActivitiesPromotionService { @Autowired private MkActivitiesPromotionDao mkActivitiesPromotionDao; @Override public MkActivitiesPromotionEntity queryObject(Long mapId) { return mkActivitiesPromotionDao.queryObject(mapId); } @Override public List queryList(Map map) { return mkActivitiesPromotionDao.queryList(map); } @Override public int queryTotal(Map map) { return mkActivitiesPromotionDao.queryTotal(map); } @Override public int save(MkActivitiesPromotionEntity mkActivitiesPromotion) { return mkActivitiesPromotionDao.save(mkActivitiesPromotion); } @Override public int update(MkActivitiesPromotionEntity mkActivitiesPromotion) { return mkActivitiesPromotionDao.update(mkActivitiesPromotion); } @Override public int delete(Long mapId) { return mkActivitiesPromotionDao.delete(mapId); } @Override public int deleteBatch(Long[]mapIds) { return mkActivitiesPromotionDao.deleteBatch(mapIds); } /** * 上传活动商品 * @param temporaryPromotionalItemsDtoList * @param storeId * @param mkaId */ @Override @Transactional public void uploadExcel(List temporaryPromotionalItemsDtoList, String storeId, String mkaId) { if (temporaryPromotionalItemsDtoList != null && temporaryPromotionalItemsDtoList.size() > 0) { for (int i = 0; i < temporaryPromotionalItemsDtoList.size(); i++) { TemporaryPromotionalItemsDto temporaryPromotionalItemsDto = temporaryPromotionalItemsDtoList.get(i); Map valideDate = MapBeanUtil.fromObject(temporaryPromotionalItemsDto); // 校验excel传入的数据 ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder(); builder.put("storeId", "门店编号"); builder.put("sku", "商品SKU"); builder.put("barCode", "商品条码"); builder.put("goodsName", "产品名称"); builder.put("goodsEnglishName", "产品英文名称"); builder.put("rejectScore", "是否参与积分抵扣"); builder.put("activitiesPrice", "活动价格"); 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()); } // MkActivitiesPromotionEntity old = mkActivitiesPromotionDao.queryByBarCode(mkaId, temporaryPromotionalItemsDto.getBarCode()); // if(old != null){ // throw new RRException("该商品已经参与本次活动,商品{"+temporaryPromotionalItemsDto.getBarCode()+"}",500); // } // 保存日常活动商品 MkActivitiesPromotionEntity mkActivitiesPromotionEntity = new MkActivitiesPromotionEntity(); mkActivitiesPromotionEntity.setProductName(temporaryPromotionalItemsDto.getGoodsName()); // 商品名称 mkActivitiesPromotionEntity.setActivityPrice(new BigDecimal(temporaryPromotionalItemsDto.getActivitiesPrice())); // 活动价 mkActivitiesPromotionEntity.setShopSn(storeId); // 门店编号 mkActivitiesPromotionEntity.setSku(temporaryPromotionalItemsDto.getSku()); // 商品编号 mkActivitiesPromotionEntity.setBarcode(temporaryPromotionalItemsDto.getBarCode()); // 商品条码 mkActivitiesPromotionEntity.setRejectScore(temporaryPromotionalItemsDto.getRejectScore()); mkActivitiesPromotionEntity.setDeadline(temporaryPromotionalItemsDto.getDeadline());// 商品截止日期 mkActivitiesPromotionEntity.setMkaId(Long.parseLong(mkaId)); mkActivitiesPromotionDao.save(mkActivitiesPromotionEntity); } } } /** * 根据条码查询日常活动价格 * * @param mkaId * @param prodBarcode * @return */ @Override public MkActivitiesPromotionEntity queryByBarCode(String mkaId, String prodBarcode) { return mkActivitiesPromotionDao.queryByBarCode(mkaId,prodBarcode); } /** * 根据条码,门店,当前时间查询 * * @param storeId * @param format * @param lscx * @param prodBarcode * @return */ @Override public MkActivitiesPromotionEntity queryByDateAndBarcode(String storeId, String format, String lscx, String prodBarcode) { return mkActivitiesPromotionDao.queryByDateAndBarcode(storeId,format,lscx,prodBarcode); } /** * 根据sku和活动id批量修改价格 * * @param updatePrice * @param sku * @param mkaId */ @Override public void updatePriceBySku(String updatePrice, String sku, Long mkaId) { mkActivitiesPromotionDao.updatePriceBySku(updatePrice,sku,mkaId); } /** * 查询活动id对应的限时特价活动规则 * * @param mkaId 活动id * @param storeId 门店id * @return 限时特价活动规则 */ @Override public List queryListByMkaIdAndStoreId(int mkaId, String storeId) { return mkActivitiesPromotionDao.queryListByMkaIdAndStoreId(mkaId, storeId); } }