package com.kmall.admin.service.impl; import com.google.common.collect.ImmutableBiMap; import com.kmall.admin.dto.FullReductionDto; 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.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Map; import com.kmall.admin.dao.MkActivitiesFullReductionDao; import com.kmall.admin.entity.MkActivitiesFullReductionEntity; import com.kmall.admin.service.MkActivitiesFullReductionService; import org.springframework.transaction.annotation.Transactional; /** * 商品编码为主要匹配/上传依据,商品条形码为辅助查看而已活动方式满减,满xxx元立减xx元(xService实现类 * * @author emato * @email admin@qhdswl.com * @date 2020-09-23 10:43:25 */ @Service("mkActivitiesFullReductionService") public class MkActivitiesFullReductionServiceImpl implements MkActivitiesFullReductionService { @Autowired private MkActivitiesFullReductionDao mkActivitiesFullReductionDao; @Override public MkActivitiesFullReductionEntity 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(MkActivitiesFullReductionEntity mkActivitiesFullReduction) { return mkActivitiesFullReductionDao.save(mkActivitiesFullReduction); } @Override public int update(MkActivitiesFullReductionEntity 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()); MkActivitiesFullReductionEntity old = mkActivitiesFullReductionDao.queryByCodeOrBrand(mkaId,fullReductionDto.getBarCode(),fullReductionDto.getBrand(),nowTime); if(old != null){ throw new RRException("该商品或者该品牌已经参与本次活动,商品{"+fullReductionDto.getBarCode()+"},品牌,{"+fullReductionDto.getBrand()+"}",500); } // 保存日常活动商品 MkActivitiesFullReductionEntity mkActivitiesFullReductionEntity = new MkActivitiesFullReductionEntity(); mkActivitiesFullReductionEntity.setQualifiedAmount(new BigDecimal(fullReductionDto.getFullReductionPrice())); // 满减达到金额 mkActivitiesFullReductionEntity.setDeductionAmount(new BigDecimal(fullReductionDto.getDiscountedPrice())); // 优惠金额 mkActivitiesFullReductionEntity.setProductBrand(fullReductionDto.getBrand()); // 商品品牌 mkActivitiesFullReductionEntity.setGoodsSn(fullReductionDto.getGoodsSn()); // 商品编号 mkActivitiesFullReductionEntity.setBarcode(fullReductionDto.getBarCode()); // 商品条码 mkActivitiesFullReductionEntity.setDeadline(fullReductionDto.getDeadline()); mkActivitiesFullReductionEntity.setShopSn(storeId); // 门店编号 mkActivitiesFullReductionEntity.setMkaId(Long.parseLong(mkaId)); mkActivitiesFullReductionDao.save(mkActivitiesFullReductionEntity); } } } /** * 根据品牌或条形码查询是否有对应的满减活动 * * @param mkaId * @param prodBarcode * @param brandName * @return */ @Override public MkActivitiesFullReductionEntity queryByCodeOrBrand(String mkaId, String prodBarcode, String brandName, String deadline) { return mkActivitiesFullReductionDao.queryByCodeOrBrand(mkaId,prodBarcode,brandName,deadline); } }