MkActivitiesFullReductionServiceImpl.java 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package com.kmall.admin.service.impl;
  2. import com.google.common.collect.ImmutableBiMap;
  3. import com.kmall.admin.dto.FullReductionDto;
  4. import com.kmall.admin.dto.TemporaryPromotionalItemsDto;
  5. import com.kmall.admin.entity.MkActivitiesFullGiftEntity;
  6. import com.kmall.admin.entity.MkActivitiesPromotionEntity;
  7. import com.kmall.common.utils.MapBeanUtil;
  8. import com.kmall.common.utils.R;
  9. import com.kmall.common.utils.RRException;
  10. import com.kmall.common.utils.ValidatorUtil;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import java.math.BigDecimal;
  14. import java.text.SimpleDateFormat;
  15. import java.util.Date;
  16. import java.util.List;
  17. import java.util.Map;
  18. import com.kmall.admin.dao.MkActivitiesFullReductionDao;
  19. import com.kmall.admin.entity.MkActivitiesFullReductionEntity;
  20. import com.kmall.admin.service.MkActivitiesFullReductionService;
  21. import org.springframework.transaction.annotation.Transactional;
  22. /**
  23. * 商品编码为主要匹配/上传依据,商品条形码为辅助查看而已活动方式满减,满xxx元立减xx元(xService实现类
  24. *
  25. * @author emato
  26. * @email admin@qhdswl.com
  27. * @date 2020-09-23 10:43:25
  28. */
  29. @Service("mkActivitiesFullReductionService")
  30. public class MkActivitiesFullReductionServiceImpl implements MkActivitiesFullReductionService {
  31. @Autowired
  32. private MkActivitiesFullReductionDao mkActivitiesFullReductionDao;
  33. @Override
  34. public MkActivitiesFullReductionEntity queryObject(Long mafrId) {
  35. return mkActivitiesFullReductionDao.queryObject(mafrId);
  36. }
  37. @Override
  38. public List<MkActivitiesFullReductionEntity> queryList(Map<String, Object> map) {
  39. return mkActivitiesFullReductionDao.queryList(map);
  40. }
  41. @Override
  42. public int queryTotal(Map<String, Object> map) {
  43. return mkActivitiesFullReductionDao.queryTotal(map);
  44. }
  45. @Override
  46. public int save(MkActivitiesFullReductionEntity mkActivitiesFullReduction) {
  47. return mkActivitiesFullReductionDao.save(mkActivitiesFullReduction);
  48. }
  49. @Override
  50. public int update(MkActivitiesFullReductionEntity mkActivitiesFullReduction) {
  51. return mkActivitiesFullReductionDao.update(mkActivitiesFullReduction);
  52. }
  53. @Override
  54. public int delete(Long mafrId) {
  55. return mkActivitiesFullReductionDao.delete(mafrId);
  56. }
  57. @Override
  58. public int deleteBatch(Long[]mafrIds) {
  59. return mkActivitiesFullReductionDao.deleteBatch(mafrIds);
  60. }
  61. /**
  62. * 上传活动商品
  63. *
  64. * @param fullReductionDtoList
  65. * @param storeId
  66. * @param mkaId
  67. */
  68. @Override
  69. @Transactional
  70. public void uploadExcel(List<FullReductionDto> fullReductionDtoList, String storeId, String mkaId) {
  71. // TODO 查询所有的品牌
  72. if (fullReductionDtoList != null && fullReductionDtoList.size() > 0) {
  73. for (int i = 0; i < fullReductionDtoList.size(); i++) {
  74. FullReductionDto fullReductionDto = fullReductionDtoList.get(i);
  75. Map<String, Object> valideDate = MapBeanUtil.fromObject(fullReductionDto);
  76. // 校验excel传入的数据
  77. ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
  78. builder.put("storeId", "门店编号");
  79. builder.put("goodsSn", "商品编码");
  80. builder.put("barCode", "商品条码");
  81. builder.put("brand", "商品品牌");
  82. builder.put("fullReductionPrice", "满减达到金额");
  83. builder.put("discountedPrice", "优惠金额");
  84. builder.put("deadline", "截止日期");
  85. R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
  86. if (Integer.valueOf(r.get("code").toString()) != 0) {
  87. throw new RRException(r.get("msg").toString());
  88. }
  89. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  90. String nowTime = format.format(new Date());
  91. MkActivitiesFullReductionEntity old = mkActivitiesFullReductionDao.queryByCodeOrBrand(Long.parseLong(mkaId),fullReductionDto.getBarCode(),fullReductionDto.getBrand(),nowTime);
  92. if(old != null){
  93. throw new RRException("该商品或者该品牌已经参与本次活动,商品{"+fullReductionDto.getBarCode()+"},品牌,{"+fullReductionDto.getBrand()+"}",500);
  94. }
  95. // 保存日常活动商品
  96. MkActivitiesFullReductionEntity mkActivitiesFullReductionEntity = new MkActivitiesFullReductionEntity();
  97. mkActivitiesFullReductionEntity.setQualifiedAmount(new BigDecimal(fullReductionDto.getFullReductionPrice())); // 满减达到金额
  98. mkActivitiesFullReductionEntity.setDeductionAmount(new BigDecimal(fullReductionDto.getDiscountedPrice())); // 优惠金额
  99. mkActivitiesFullReductionEntity.setProductBrand(fullReductionDto.getBrand()); // 商品品牌
  100. mkActivitiesFullReductionEntity.setGoodsSn(fullReductionDto.getGoodsSn()); // 商品编号
  101. mkActivitiesFullReductionEntity.setBarcode(fullReductionDto.getBarCode()); // 商品条码
  102. mkActivitiesFullReductionEntity.setDeadline(fullReductionDto.getDeadline());
  103. mkActivitiesFullReductionEntity.setShopSn(storeId); // 门店编号
  104. mkActivitiesFullReductionEntity.setMkaId(Long.parseLong(mkaId));
  105. mkActivitiesFullReductionDao.save(mkActivitiesFullReductionEntity);
  106. }
  107. }
  108. }
  109. /**
  110. * 根据品牌或条形码查询是否有对应的满减活动
  111. *
  112. * @param mkaId
  113. * @param prodBarcode
  114. * @param brandName
  115. * @return
  116. */
  117. @Override
  118. public MkActivitiesFullReductionEntity queryByCodeOrBrand(Long mkaId, String prodBarcode, String brandName,String deadline) {
  119. return mkActivitiesFullReductionDao.queryByCodeOrBrand(mkaId,prodBarcode,brandName,deadline);
  120. }
  121. }