MkActivitiesHalfPriceServiceImpl.java 5.7 KB

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