package com.kmall.admin.service.impl; import com.google.common.collect.ImmutableBiMap; import com.kmall.admin.dao.MkActivitiesFullReductionDao; import com.kmall.admin.dao.MkActivitiesHalfPriceDao; import com.kmall.admin.dto.FullReductionDto; import com.kmall.admin.entity.MkActivitiesHalfPriceEntity; import com.kmall.admin.service.MkActivitiesFullReductionService; import com.kmall.admin.service.MkActivitiesHalfPriceService; 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 org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Map; /** * 商品编码为主要匹配/上传依据,商品条形码为辅助查看而已活动方式满减,满xxx元立减xx元(xService实现类 * * @author emato * @email admin@qhdswl.com * @date 2020-09-23 10:43:25 */ @Service("mkActivitiesHalfPriceService") public class MkActivitiesHalfPriceServiceImpl implements MkActivitiesHalfPriceService { @Autowired private MkActivitiesHalfPriceDao mkActivitiesFullReductionDao; @Override public MkActivitiesHalfPriceEntity queryObject(Long mafrId) { return mkActivitiesFullReductionDao.queryObject(mafrId); } @Override public List queryList(Map map) { return mkActivitiesFullReductionDao.queryList(map); } @Override public int queryTotal(Map map) { return mkActivitiesFullReductionDao.queryTotal(map); } @Override public int save(MkActivitiesHalfPriceEntity mkActivitiesFullReduction) { return mkActivitiesFullReductionDao.save(mkActivitiesFullReduction); } @Override public int update(MkActivitiesHalfPriceEntity mkActivitiesFullReduction) { return mkActivitiesFullReductionDao.update(mkActivitiesFullReduction); } @Override public int delete(Long mafrId) { return mkActivitiesFullReductionDao.delete(mafrId); } @Override public int deleteBatch(Long[]mafrIds) { return mkActivitiesFullReductionDao.deleteBatch(mafrIds); } /** * 上传活动商品 * * @param fullReductionDtoList * @param storeId * @param mkaId */ @Override @Transactional public void uploadExcel(List fullReductionDtoList, String storeId, String mkaId) { // TODO 查询所有的品牌 if (fullReductionDtoList != null && fullReductionDtoList.size() > 0) { for (int i = 0; i < fullReductionDtoList.size(); i++) { FullReductionDto fullReductionDto = fullReductionDtoList.get(i); Map valideDate = MapBeanUtil.fromObject(fullReductionDto); // 校验excel传入的数据 ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder(); builder.put("storeId", "门店编号"); builder.put("goodsSn", "商品编码"); builder.put("barCode", "商品条码"); // builder.put("brand", "商品品牌"); // builder.put("fullReductionPrice", "满减达到金额"); // builder.put("discountedPrice", "优惠金额"); // 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()); } SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String nowTime = format.format(new Date()); MkActivitiesHalfPriceEntity old = mkActivitiesFullReductionDao.queryByCodeOrBrand(Long.parseLong(mkaId),fullReductionDto.getBarCode()); if(old != null){ throw new RRException("该商品或者该品牌已经参与本次活动,商品{"+fullReductionDto.getBarCode()+"},品牌,{"+fullReductionDto.getBrand()+"}",500); } // 保存日常活动商品 MkActivitiesHalfPriceEntity MkActivitiesHalfPriceEntity = new MkActivitiesHalfPriceEntity(); // MkActivitiesHalfPriceEntity.setQualifiedAmount(new BigDecimal(fullReductionDto.getFullReductionPrice())); // 满减达到金额 // MkActivitiesHalfPriceEntity.setDeductionAmount(new BigDecimal(fullReductionDto.getDiscountedPrice())); // 优惠金额 // MkActivitiesHalfPriceEntity.setProductBrand(fullReductionDto.getBrand()); // 商品品牌 MkActivitiesHalfPriceEntity.setGoodsSn(fullReductionDto.getGoodsSn()); // 商品编号 MkActivitiesHalfPriceEntity.setBarcode(fullReductionDto.getBarCode()); // 商品条码 // MkActivitiesHalfPriceEntity.setDeadline(fullReductionDto.getDeadline()); MkActivitiesHalfPriceEntity.setShopSn(storeId); // 门店编号 MkActivitiesHalfPriceEntity.setMkaId(Long.parseLong(mkaId)); mkActivitiesFullReductionDao.save(MkActivitiesHalfPriceEntity); } } } /** * 根据品牌或条形码查询是否有对应的满减活动 * * @param mkaId * @param prodBarcode * @return */ @Override public MkActivitiesHalfPriceEntity queryByCodeOrBrand(Long mkaId, String prodBarcode) { return mkActivitiesFullReductionDao.queryByCodeOrBrand(mkaId,prodBarcode); } }