MkActivitiesHalfPriceServiceImpl.java 5.5 KB

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