MkActivitiesCombinationPriceServiceImpl.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package com.kmall.admin.service.impl;
  2. import com.google.common.collect.ImmutableBiMap;
  3. import com.kmall.admin.dto.CombinationPriceGoodsDto;
  4. import com.kmall.admin.dto.DiscountedProductsDto;
  5. import com.kmall.admin.entity.MkActivitiesDiscountEntity;
  6. import com.kmall.common.utils.MapBeanUtil;
  7. import com.kmall.common.utils.R;
  8. import com.kmall.common.utils.RRException;
  9. import com.kmall.common.utils.ValidatorUtil;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import java.math.BigDecimal;
  13. import java.util.ArrayList;
  14. import java.util.Date;
  15. import java.util.List;
  16. import java.util.Map;
  17. import com.kmall.admin.dao.MkActivitiesCombinationPriceDao;
  18. import com.kmall.admin.entity.MkActivitiesCombinationPriceEntity;
  19. import com.kmall.admin.service.MkActivitiesCombinationPriceService;
  20. import org.springframework.transaction.annotation.Transactional;
  21. /**
  22. * 营销活动-组合价Service实现类
  23. *
  24. * @author emato
  25. * @email admin@qhdswl.com
  26. * @date 2020-09-23 10:43:25
  27. */
  28. @Service("mkActivitiesCombinationPriceService")
  29. public class MkActivitiesCombinationPriceServiceImpl implements MkActivitiesCombinationPriceService {
  30. @Autowired
  31. private MkActivitiesCombinationPriceDao mkActivitiesCombinationPriceDao;
  32. @Override
  33. public MkActivitiesCombinationPriceEntity queryObject(Long macpId) {
  34. return mkActivitiesCombinationPriceDao.queryObject(macpId);
  35. }
  36. @Override
  37. public List<MkActivitiesCombinationPriceEntity> queryList(Map<String, Object> map) {
  38. return mkActivitiesCombinationPriceDao.queryList(map);
  39. }
  40. @Override
  41. public int queryTotal(Map<String, Object> map) {
  42. return mkActivitiesCombinationPriceDao.queryTotal(map);
  43. }
  44. @Override
  45. public int save(MkActivitiesCombinationPriceEntity mkActivitiesCombinationPrice) {
  46. return mkActivitiesCombinationPriceDao.save(mkActivitiesCombinationPrice);
  47. }
  48. @Override
  49. public int update(MkActivitiesCombinationPriceEntity mkActivitiesCombinationPrice) {
  50. return mkActivitiesCombinationPriceDao.update(mkActivitiesCombinationPrice);
  51. }
  52. @Override
  53. public int delete(Long macpId) {
  54. return mkActivitiesCombinationPriceDao.delete(macpId);
  55. }
  56. @Override
  57. public int deleteBatch(Long[]macpIds) {
  58. return mkActivitiesCombinationPriceDao.deleteBatch(macpIds);
  59. }
  60. /**
  61. * 上传活动商品
  62. *
  63. * @param combinationPriceGoodsDtoList
  64. * @param storeId
  65. * @param mkaId
  66. */
  67. @Override
  68. @Transactional
  69. public void uploadExcel(List<CombinationPriceGoodsDto> combinationPriceGoodsDtoList, String storeId, String mkaId) {
  70. if (combinationPriceGoodsDtoList != null && combinationPriceGoodsDtoList.size() > 0) {
  71. for (int i = 0; i < combinationPriceGoodsDtoList.size(); i++) {
  72. CombinationPriceGoodsDto combinationPriceGoodsDto = combinationPriceGoodsDtoList.get(i);
  73. Map<String, Object> valideDate = MapBeanUtil.fromObject(combinationPriceGoodsDto);
  74. // 校验excel传入的数据
  75. ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
  76. builder.put("goodsSns", "商品编码");
  77. builder.put("barCodes", "商品条码");
  78. builder.put("combinedPrice", "组合价格");
  79. builder.put("combinedCount", "组合的产品总件数");
  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. String[] goodsSnArray = combinationPriceGoodsDto.getGoodsSns().split(":");
  86. String[] barCodeArray = combinationPriceGoodsDto.getBarCodes().split(":");
  87. if(goodsSnArray.length != barCodeArray.length){
  88. throw new RRException("编码的数量跟条码的数量不一致!");
  89. }
  90. // 保存日常活动商品
  91. List<MkActivitiesCombinationPriceEntity> mkActivitiesCombinationPriceEntityList = new ArrayList<>();
  92. Date createTime = new Date();
  93. for(int index = 0 ; index < goodsSnArray.length ; index ++){
  94. MkActivitiesCombinationPriceEntity mkActivitiesCombinationPriceEntity = new MkActivitiesCombinationPriceEntity();
  95. mkActivitiesCombinationPriceEntity.setGoodsSn(goodsSnArray[index]);
  96. mkActivitiesCombinationPriceEntity.setBarcode(barCodeArray[index]);
  97. mkActivitiesCombinationPriceEntity.setCombinedPrice(new BigDecimal(combinationPriceGoodsDto.getCombinedPrice()));
  98. mkActivitiesCombinationPriceEntity.setCombinationNum(combinationPriceGoodsDto.getCombinedCount());
  99. mkActivitiesCombinationPriceEntity.setDeadline(combinationPriceGoodsDto.getDeadline());
  100. mkActivitiesCombinationPriceEntity.setMkaId(Long.parseLong(mkaId));
  101. mkActivitiesCombinationPriceEntity.setCombinationType(combinationPriceGoodsDto.getGoodsSns());
  102. mkActivitiesCombinationPriceEntity.setCreateTime(createTime);
  103. mkActivitiesCombinationPriceEntityList.add(mkActivitiesCombinationPriceEntity);
  104. }
  105. mkActivitiesCombinationPriceDao.saveBatch(mkActivitiesCombinationPriceEntityList);
  106. }
  107. }
  108. }
  109. }