diff --git a/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/ShopStoreSameCityTransportBaseDTO.java b/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/ShopStoreSameCityTransportBaseDTO.java index a1e129cc..acef7ebe 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/ShopStoreSameCityTransportBaseDTO.java +++ b/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/ShopStoreSameCityTransportBaseDTO.java @@ -27,8 +27,8 @@ public class ShopStoreSameCityTransportBaseDTO implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "店铺同城快递基础运费设置") - ShopStoreSameCityTransportBase shopStoreSameCityTransportBase; + ShopStoreSameCityTransportBase transportBase; @ApiModelProperty(value = "店铺同城快递运费设置(起送条件+优惠条件)") - public List shopStoreSameCityTransportList; + public List transportList; } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportBaseService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportBaseService.java index c5a061c2..a8a0f94f 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportBaseService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportBaseService.java @@ -9,6 +9,7 @@ package com.suisung.mall.shop.store.service; import com.suisung.mall.common.api.CommonResult; +import com.suisung.mall.common.modules.store.ShopStoreSameCityTransportBase; import com.suisung.mall.common.pojo.dto.ShopStoreSameCityTransportBaseDTO; public interface ShopStoreSameCityTransportBaseService { @@ -32,4 +33,12 @@ public interface ShopStoreSameCityTransportBaseService { * @return */ ShopStoreSameCityTransportBaseDTO getDetailById(Long storeId); + + + /** + * 保存同城配送基础设置(存在更新,不存在新增) + * @param shopStoreSameCityTransportBase + * @return + */ + Boolean saveOrUpdateShopStoreSameCityTransportBase(ShopStoreSameCityTransportBase shopStoreSameCityTransportBase); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportService.java index 44afce26..405d4da7 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportService.java @@ -23,4 +23,12 @@ public interface ShopStoreSameCityTransportService { * @return */ List selectShopStoreSameCityTransportList(Long transportBaseId); + + /** + * 保存同城配送扩展设置列表(存在就更新,不存在就新增) + * @param transportBaseId + * @param transportList + * @return 成功的记录数 + */ + Integer saveOrUpdateShopStoreSameCityTransportList(Long transportBaseId, List transportList); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreActivityBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreActivityBaseServiceImpl.java index abec2e0f..1b8bc092 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreActivityBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreActivityBaseServiceImpl.java @@ -82,79 +82,127 @@ import static com.suisung.mall.common.utils.ContextUtil.getCurrentUser; @Service public class ShopStoreActivityBaseServiceImpl extends BaseServiceImpl implements ShopStoreActivityBaseService { - @Autowired - private ShopProductIndexService shopProductIndexService; - - @Autowired - private ShopActivityMarketingHistoryService shopActivityMarketingHistoryService; - - @Autowired - private ShopStoreBaseService shopStoreBaseService; - - @Autowired - private ShopBaseActivityTypeService shopBaseActivityTypeService; - - @Autowired - private UserInfoService userInfoService; - - @Autowired - private AccountService accountService; - - @Autowired - private ShopUserVoucherService userVoucherService; - - @Autowired - private ShopActivityCutpriceHistoryService shopActivityCutpriceHistoryService; - - @Autowired - private ShopStoreActivityBaseService shopStoreActivityBaseService; - - @Autowired - private ShopActivityCutpriceService shopActivityCutpriceService; - - @Autowired - private ShopProductItemService shopProductItemService; - - @Autowired - private ShopBaseCurrencyService shopBaseCurrencyService; - - @Autowired - private ShopProductImageService shopProductImageService; - - @Autowired - private ShopProductBaseService shopProductBaseService; - - @Autowired - private ShopActivityLotteryHistoryService shopActivityLotteryHistoryService; - - @Autowired - private ShopStoreActivityItemService shopStoreActivityItemService; - - @Autowired - private ShopActivityGroupbuyStoreHistoryService activityGroupbuyStoreHistoryService; - - @Autowired - private ShopActivityGroupbookingService shopActivityGroupbookingService; - - @Autowired - private ShopBaseStateCodeService shopBaseStateCodeService; - - @Autowired - private ShopStoreActivityCodeService shopStoreActivityCodeService; - - @Autowired - private ShopOrderDataService shopOrderDataService; - + private static final Logger logger = LoggerFactory.getLogger(ShopStoreActivityBaseServiceImpl.class); @Autowired ShopOrderBaseService shopOrderBaseService; - @Autowired ShopUserVoucherService shopUserVoucherService; - + @Autowired + private ShopProductIndexService shopProductIndexService; + @Autowired + private ShopActivityMarketingHistoryService shopActivityMarketingHistoryService; + @Autowired + private ShopStoreBaseService shopStoreBaseService; + @Autowired + private ShopBaseActivityTypeService shopBaseActivityTypeService; + @Autowired + private UserInfoService userInfoService; + @Autowired + private AccountService accountService; + @Autowired + private ShopUserVoucherService userVoucherService; + @Autowired + private ShopActivityCutpriceHistoryService shopActivityCutpriceHistoryService; + @Autowired + private ShopStoreActivityBaseService shopStoreActivityBaseService; + @Autowired + private ShopActivityCutpriceService shopActivityCutpriceService; + @Autowired + private ShopProductItemService shopProductItemService; + @Autowired + private ShopBaseCurrencyService shopBaseCurrencyService; + @Autowired + private ShopProductImageService shopProductImageService; + @Autowired + private ShopProductBaseService shopProductBaseService; + @Autowired + private ShopActivityLotteryHistoryService shopActivityLotteryHistoryService; + @Autowired + private ShopStoreActivityItemService shopStoreActivityItemService; + @Autowired + private ShopActivityGroupbuyStoreHistoryService activityGroupbuyStoreHistoryService; + @Autowired + private ShopActivityGroupbookingService shopActivityGroupbookingService; + @Autowired + private ShopBaseStateCodeService shopBaseStateCodeService; + @Autowired + private ShopStoreActivityCodeService shopStoreActivityCodeService; + @Autowired + private ShopOrderDataService shopOrderDataService; @Autowired private AccountBaseConfigService accountBaseConfigService; - private static Logger logger = LoggerFactory.getLogger(ShopStoreActivityBaseServiceImpl.class); + /** + * 返回随机金额数组 (分为单位) + * + * @param money (元为单位) + * @param num + * @return + */ + public static List randMoney(BigDecimal money, Integer num) { + + // 只有一个人直接返回 + if (num == 1) return Collections.singletonList(NumberUtil.mul(money, 100).intValue()); + + money = NumberUtil.mul(money, 100); // 将元转成分(小数计算有误差,随机数也都是整数) + BigDecimal rest_money = money; // 初始化,剩余钱的变量 + Integer average = NumberUtil.div(rest_money, num, 0).intValue(); // 求出均分情况下,每人的红包值 + List arr = new ArrayList<>(); + + if (ObjectUtil.compare(average, 1) < 0) { + // 钱不够所有人分 + return Stream.generate(() -> 0).limit(num).collect(Collectors.toList()); + } else if (ObjectUtil.compare(average, 1) == 0) { + // 所有人*均分这笔钱(钱数只够这么分的) + for (Integer i = 0; i < num; i++) { + arr.add(average); + } + } else { + // 每个人随机分配 + for (int i = 0; i < num; i++) { + BigDecimal range_money = NumberUtil.div(rest_money, (num - i), 0); + Integer rand_money = RandomUtil.randomInt(1, range_money.intValue()); + arr.add(rand_money); + rest_money = NumberUtil.sub(rest_money, rand_money); // 获取剩下的钱 + } + } + + int arr_sum = 0; // 保存数组和 + if (CollUtil.isNotEmpty(arr)) { + // 随机分配,会调用此方法将剩余的钱分掉,此数组为随机分配后的结果 + arr_sum = arr.stream().mapToInt(Integer::intValue).sum(); // 统计随机分配已经分配了总钱数 + } else { + // 初始化每个人的数组,兼容下边循环处理部分 + arr = Stream.generate(() -> 0).limit(num).collect(Collectors.toList()); + } + + BigDecimal add_money = NumberUtil.sub(money, arr_sum); + // 如果总钱数和之前随机分配的数组的总和差值为0,就说明随机分配已经将钱全部分出去了,就不需要再*均分配处理了 + if (ObjectUtil.compare(add_money, BigDecimal.ZERO) == 0) { + return arr; + } + + // 先把剩余的能均分的部分均分一下,然后若再有剩余,则从前到后,注意分配 + // 如果之前有随机分配,则是将剩余的钱*均追加入随机分配的值里 + Integer avg_add_money = NumberUtil.div(add_money, num, 0).intValue(); + arr = arr.stream().map(s -> s + avg_add_money).collect(Collectors.toList()); + // 分配后,求和,用于修正最后剩余的零钱 + arr_sum = arr.stream().mapToInt(Integer::intValue).sum(); + // 如果还有剩余,这部分说明每人一分都不够,就从头开始没人一分的分下去,直到分完为止 + BigDecimal odd_money = NumberUtil.sub(money, arr_sum, 0); + int i = 0; + while (ObjectUtil.compare(odd_money, BigDecimal.ONE) >= 0) { + arr.set(i, arr.get(i) + 1); // 每人加1分钱 + odd_money = NumberUtil.sub(odd_money, 1); // 剩余的金额,每分掉一个人,就减1分钱 + if (i == num) { + i = 0; + } else { + i++; + } + } + + return arr; + } /** * 取得活动相关产品信息 @@ -1439,7 +1487,7 @@ public class ShopStoreActivityBaseServiceImpl extends BaseServiceImpl item_ids = items.stream().map(s -> Convert.toLong(s.get("item_id"))).distinct().collect(Collectors.toList()); @@ -1498,7 +1546,7 @@ public class ShopStoreActivityBaseServiceImpl extends BaseServiceImpl item_ids = items.stream().map(s -> Convert.toLong(s.get("item_id"))).distinct().collect(Collectors.toList()); @@ -1574,7 +1622,7 @@ public class ShopStoreActivityBaseServiceImpl extends BaseServiceImpl { Long iid = Convert.toLong(dis.get("item_id")); Integer dis_item_quantity = Convert.toInt(dis.get("rate")); - Integer cart_quantity = (Integer) cart_item_info_row.get(iid); + Integer cart_quantity = cart_item_info_row.get(iid); discountMap.put(iid, dis); @@ -1717,7 +1765,7 @@ public class ShopStoreActivityBaseServiceImpl extends BaseServiceImpl item_ids = items.stream().map(s -> Convert.toLong(s.get("item_id"))).distinct().collect(Collectors.toList()); @@ -2729,7 +2777,6 @@ public class ShopStoreActivityBaseServiceImpl extends BaseServiceImpl discount = ObjectUtil.defaultIfNull((List) activity_rule.get("discount"), new ArrayList<>()); - - List fold_item_ids = new ArrayList<>(); - Map discountMap = new HashMap<>(); - - discount.forEach(dis -> { - Long iid = Convert.toLong(dis.get("item_id")); - fold_item_ids.add(iid); - discountMap.put(iid, dis); - }); - - List item = shopProductItemService.getItem(fold_item_ids); - - data.put("item", item); - data.put("store_is_selfsupport", shopStoreBase.getStore_is_selfsupport()); - data.put("store_name", shopStoreBase.getStore_name()); - data.put("play_amount", giftbag_amount); - - data.put("activity_rule", Convert.toMap(Object.class, Object.class, activity_rule)); - } - } - return data; - } - /* @Override public boolean settleActivityVoucherPrize() { @@ -4251,77 +4258,43 @@ public class ShopStoreActivityBaseServiceImpl extends BaseServiceImpl randMoney(BigDecimal money, Integer num) { + if (CheckUtil.isNotEmpty(activity_id)) { + ShopStoreActivityBase shopStoreActivityBase = shopStoreActivityBaseService.get(activity_id); - // 只有一个人直接返回 - if (num == 1) return Collections.singletonList(NumberUtil.mul(money, 100).intValue()); + data = Convert.toMap(Object.class, Object.class, shopStoreActivityBase); - money = NumberUtil.mul(money, 100); // 将元转成分(小数计算有误差,随机数也都是整数) - BigDecimal rest_money = money; // 初始化,剩余钱的变量 - Integer average = NumberUtil.div(rest_money, num, 0).intValue(); // 求出均分情况下,每人的红包值 - List arr = new ArrayList<>(); + if (shopStoreActivityBase != null) { + ShopStoreBase shopStoreBase = shopStoreBaseService.get(shopStoreActivityBase.getStore_id()); - if (ObjectUtil.compare(average, 1) < 0) { - // 钱不够所有人分 - return Stream.generate(() -> 0).limit(num).collect(Collectors.toList()); - } else if (ObjectUtil.compare(average, 1) == 0) { - // 所有人*均分这笔钱(钱数只够这么分的) - for (Integer i = 0; i < num; i++) { - arr.add(average); - } - } else { - // 每个人随机分配 - for (int i = 0; i < num; i++) { - BigDecimal range_money = NumberUtil.div(rest_money, (num - i), 0); - Integer rand_money = RandomUtil.randomInt(1, range_money.intValue()); - arr.add(rand_money); - rest_money = NumberUtil.sub(rest_money, rand_money); // 获取剩下的钱 + + cn.hutool.json.JSONObject activity_rule = JSONUtil.parseObj(shopStoreActivityBase.getActivity_rule()); + BigDecimal giftbag_amount = Convert.toBigDecimal(activity_rule.get("giftbag_amount"), BigDecimal.ZERO); + List discount = ObjectUtil.defaultIfNull((List) activity_rule.get("discount"), new ArrayList<>()); + + List fold_item_ids = new ArrayList<>(); + Map discountMap = new HashMap<>(); + + discount.forEach(dis -> { + Long iid = Convert.toLong(dis.get("item_id")); + fold_item_ids.add(iid); + discountMap.put(iid, dis); + }); + + List item = shopProductItemService.getItem(fold_item_ids); + + data.put("item", item); + data.put("store_is_selfsupport", shopStoreBase.getStore_is_selfsupport()); + data.put("store_name", shopStoreBase.getStore_name()); + data.put("play_amount", giftbag_amount); + + data.put("activity_rule", Convert.toMap(Object.class, Object.class, activity_rule)); } } - - int arr_sum = 0; // 保存数组和 - if (CollUtil.isNotEmpty(arr)) { - // 随机分配,会调用此方法将剩余的钱分掉,此数组为随机分配后的结果 - arr_sum = arr.stream().mapToInt(Integer::intValue).sum(); // 统计随机分配已经分配了总钱数 - } else { - // 初始化每个人的数组,兼容下边循环处理部分 - arr = Stream.generate(() -> 0).limit(num).collect(Collectors.toList()); - } - - BigDecimal add_money = NumberUtil.sub(money, arr_sum); - // 如果总钱数和之前随机分配的数组的总和差值为0,就说明随机分配已经将钱全部分出去了,就不需要再*均分配处理了 - if (ObjectUtil.compare(add_money, BigDecimal.ZERO) == 0) { - return arr; - } - - // 先把剩余的能均分的部分均分一下,然后若再有剩余,则从前到后,注意分配 - // 如果之前有随机分配,则是将剩余的钱*均追加入随机分配的值里 - Integer avg_add_money = NumberUtil.div(add_money, num, 0).intValue(); - arr = arr.stream().map(s -> s + avg_add_money).collect(Collectors.toList()); - // 分配后,求和,用于修正最后剩余的零钱 - arr_sum = arr.stream().mapToInt(Integer::intValue).sum(); - // 如果还有剩余,这部分说明每人一分都不够,就从头开始没人一分的分下去,直到分完为止 - BigDecimal odd_money = NumberUtil.sub(money, arr_sum, 0); - int i = 0; - while (ObjectUtil.compare(odd_money, BigDecimal.ONE) >= 0) { - arr.set(i, arr.get(i) + 1); // 每人加1分钱 - odd_money = NumberUtil.sub(odd_money, 1); // 剩余的金额,每分掉一个人,就减1分钱 - if (i == num) { - i = 0; - } else { - i++; - } - } - - return arr; + return data; } @Transactional @@ -4420,7 +4393,7 @@ public class ShopStoreActivityBaseServiceImpl extends BaseServiceImpl item = Convert.toList(Long.class, rule_row.get("item")); - item.remove(item.indexOf(item_id)); + item.remove(item_id); rule_row.put("item", item); Map data = new HashMap(); @@ -4856,9 +4829,7 @@ public class ShopStoreActivityBaseServiceImpl extends BaseServiceImpl item = Convert.toList(Long.class, activity_row.get("item_id")); - if (item.contains(item_id)) { - item.remove(item_id); - } + item.remove(item_id); ShopStoreActivityBase activityBase = new ShopStoreActivityBase(); activityBase.setActivity_id(activity_id); @@ -4893,9 +4864,7 @@ public class ShopStoreActivityBaseServiceImpl extends BaseServiceImpl item = Convert.toList(Long.class, buy.get("item")); - if (item.contains(item_id)) { - item.remove(item_id); - } + item.remove(item_id); buy.put("item", item); ShopStoreActivityBase activityBase = new ShopStoreActivityBase(); @@ -4995,8 +4964,8 @@ public class ShopStoreActivityBaseServiceImpl extends BaseServiceImpl checkItem(List item_ids, Map activity) { QueryWrapper itemQueryWrapper = new QueryWrapper<>(); itemQueryWrapper.in("item_id", item_ids) - .le("activity_item_starttime", (Date) activity.get("activity_endtime")) - .ge("activity_item_endtime", (Date) activity.get("activity_starttime")); + .le("activity_item_starttime", activity.get("activity_endtime")) + .ge("activity_item_endtime", activity.get("activity_starttime")); List item_row = shopStoreActivityItemService.find(itemQueryWrapper); List item_id_row = item_row.stream().map(s -> s.getItem_id()).distinct().collect(Collectors.toList()); @@ -5079,7 +5048,7 @@ public class ShopStoreActivityBaseServiceImpl extends BaseServiceImpl implements ShopStoreBaseService { + private static final Logger logger = LoggerFactory.getLogger(ShopStoreBaseServiceImpl.class); + private static List StoreFilterOptData; @Autowired private ShopPlantformSubsiteService shopPlantformSubsiteService; - @Autowired private InvoicingCustomerLevelService invoicingCustomerLevelService; - @Autowired private ShopStoreConfigService shopStoreConfigService; - @Autowired private ShopStoreProductTagService shopStoreProductTagService; - @Autowired private ShopStoreTransportTypeService shopStoreTransportTypeService; - @Autowired private ShopStoreEmployeeRightsBaseService shopStoreEmployeeRightsBaseService; - @Autowired private ShopProductIndexService shopProductIndexService; - @Autowired private ShopProductIndexMapper shopProductIndexMapper; - @Autowired private ShopStoreEmployeeRightsGroupService shopStoreEmployeeRightsGroupService; - @Autowired private ShopBaseProductTagService shopBaseProductTagService; - @Autowired private ShopBaseStoreGradeService shopBaseStoreGradeService; - @Autowired private InvoicingWarehouseBaseService invoicingWarehouseBaseService; - @Autowired private ShopStoreBaseMapper shopStoreBaseMapper; - @Autowired private ShopStoreAnalyticsService shopStoreAnalyticsService; - @Autowired private AccountBaseConfigService accountBaseConfigService; - @Autowired private UserInfoService userInfoService; - @Autowired private ShopStoreInfoService shopStoreInfoService; - @Autowired private ShopStoreActivityBaseService shopStoreActivityBaseService; - @Autowired private ShopProductBaseService shopProductBaseService; - @Autowired private ShopStoreBaseService shopStoreBaseService; - @Autowired private ShopBaseStoreCategoryService shopBaseStoreCategoryService; - @Autowired private ShopStoreProductCategoryService productCategoryService; - @Autowired private ShopUserFavoritesStoreService userFavoritesStoreService; - @Autowired private ShopStoreCompanyService shopStoreCompanyService; - @Autowired private CmsService cmsService; - @Autowired private AccountService accountService; - @Autowired private PayService payService; - @Autowired private ShopStoreEmployeeService shopStoreEmployeeService; - @Autowired private ShopDistributionPlantformUserService shopDistributionPlantformUserService; - @Autowired private ShopUserFavoritesStoreService shopUserFavoritesStoreService; - @Autowired private ShopPageBaseService shopPageBaseService; - @Autowired private ShopPageModuleService shopPageModuleService; - @Autowired private ThreadPoolExecutor executor; - private static Logger logger = LoggerFactory.getLogger(ShopStoreBaseServiceImpl.class); - - private static List StoreFilterOptData; - /** * 读取分页列表 * @@ -1315,7 +1281,7 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl items = cmsService.getFixArticle(1008l); + List items = cmsService.getFixArticle(1008L); row.put("items", items); UserDto user = getCurrentUser(); @@ -1356,7 +1322,7 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl infoOpl = store_info_rows.stream().filter(s -> ObjectUtil.equal(s.getStore_id(), store_id)).findFirst(); ShopStoreInfo info = infoOpl.orElseGet(ShopStoreInfo::new); - Long store_end_time = Convert.toLong(item.get("store_end_time"), 0l); + Long store_end_time = Convert.toLong(item.get("store_end_time"), 0L); item.put("store_start_time", info.getStore_start_time()); item.put("store_end_time", DateUtil.date(store_end_time)); @@ -2847,7 +2813,7 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl queryWrapper= new QueryWrapper<>(); + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.orderByAsc("region_id"); - if (count != null || count > 0) { - queryWrapper.last("limit " + count); + if (count != null || count > 0) { + queryWrapper.last("limit " + count); } List recordList = find(queryWrapper); @@ -46,7 +46,7 @@ public class ShopStorePrinterRegionServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("region", record.getRegion()); ShopStorePrinterRegion existRecord = getOne(queryWrapper); - if (existRecord!=null && existRecord.getRegion_id() > 0) { + if (existRecord != null && existRecord.getRegion_id() > 0) { return CommonResult.success("打票机型号已添加,请勿重复操作"); } - if (add(record)){ + if (add(record)) { return CommonResult.success(); } @@ -72,24 +72,24 @@ public class ShopStorePrinterRegionServiceImpl extends BaseServiceImpl retPair = feieUtil.addPrinter(String.format("%s#%s#%s", record.getPrinter_sn(), record.getPrinter_key(), record.getPrinter_name())); + Pair retPair = feieUtil.addPrinter(String.format("%s#%s#%s", record.getPrinter_sn(), record.getPrinter_key(), record.getPrinter_name())); if (retPair.getFirst()) { updateWrapper.set("flag", ConstantError.Enable); - updateWrapper.set("status",ConstantError.Enable); + updateWrapper.set("status", ConstantError.Enable); } else { msg = msg + ",但打印机绑定未成功,请检查打印机编号和密钥是否填写正确。"; updateWrapper.set("flag", ConstantError.Disable2); - updateWrapper.set("status",ConstantError.Disable2); + updateWrapper.set("status", ConstantError.Disable2); } // 解绑之前的打印机 @@ -276,7 +275,7 @@ public class ShopStorePrinterServiceImpl extends BaseServiceImpl retPair = feieUtil.addPrinter(String.format("%s#%s#%s", record.getPrinter_sn(), record.getPrinter_key(), record.getPrinter_name())); + Pair retPair = feieUtil.addPrinter(String.format("%s#%s#%s", record.getPrinter_sn(), record.getPrinter_key(), record.getPrinter_name())); if (!retPair.getFirst()) { return CommonResult.failed(retPair.getSecond()); } } else { status = ConstantError.Disable2; // 向厂家解绑打印机 - boolean success = feieUtil.delPrinter(record.getPrinter_sn()); + boolean success = feieUtil.delPrinter(record.getPrinter_sn()); if (!success) { return CommonResult.failed("打印机解绑定未成功,操作失败。"); } @@ -304,7 +303,7 @@ public class ShopStorePrinterServiceImpl extends BaseServiceImpl updateWrapper = new UpdateWrapper<>(); @@ -313,7 +312,7 @@ public class ShopStorePrinterServiceImpl extends BaseServiceImpl implements ShopStoreSameCityTransportBaseService { - @Autowired + @Resource private ShopStoreSameCityTransportService shopStoreSameCityTransportService; - @Autowired + @Resource private ShopStoreBaseService shopStoreBaseService; /** @@ -42,7 +46,19 @@ public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("store_id", storeId); queryWrapper.orderByAsc("transport_base_id"); - ShopStoreSameCityTransportBase shopStoreSameCityTransportBase = getOne(queryWrapper); - if (shopStoreSameCityTransportBase == null) { - shopStoreSameCityTransportBase = new ShopStoreSameCityTransportBase(); - shopStoreSameCityTransportBase.setStore_id(storeId); + ShopStoreSameCityTransportBase transportBase = getOne(queryWrapper); + if (transportBase == null) { + transportBase = new ShopStoreSameCityTransportBase(); + transportBase.setStore_id(storeId); - // 获取店铺的地址和经纬度 - shopStoreSameCityTransportBase.setStore_address(StrUtil.removeAll(shopStoreBase.getStore_area(),"/") + shopStoreBase.getStore_address()); - shopStoreSameCityTransportBase.setStore_longitude(Convert.toBigDecimal(shopStoreBase.getStore_longitude())); - shopStoreSameCityTransportBase.setStore_latitude(Convert.toBigDecimal(shopStoreBase.getStore_latitude())); + // 没有记录时,指定默认值 + transportBase.setArea_type(1); + transportBase.setBasis(1); + transportBase.setDistance_base(5); + transportBase.setWeight_base(5); + transportBase.setDelivery_base_fee(BigDecimal.valueOf(5)); + transportBase.setDistance_increase_km(1); + transportBase.setDistance_increase_fee(BigDecimal.valueOf(1)); + transportBase.setWeight_increase_kg(1); + transportBase.setWeight_increase_fee(BigDecimal.valueOf(1)); + + // 从 shop_store_base 表获取店铺的地址和经纬度 + transportBase.setStore_address(StrUtil.removeAll(shopStoreBase.getStore_area(), "/") + shopStoreBase.getStore_address()); + transportBase.setStore_longitude(Convert.toBigDecimal(shopStoreBase.getStore_longitude())); + transportBase.setStore_latitude(Convert.toBigDecimal(shopStoreBase.getStore_latitude())); } ShopStoreSameCityTransportBaseDTO shopStoreSameCityTransportBaseDTO = new ShopStoreSameCityTransportBaseDTO(); - shopStoreSameCityTransportBaseDTO.setShopStoreSameCityTransportBase(shopStoreSameCityTransportBase); + shopStoreSameCityTransportBaseDTO.setTransportBase(transportBase); // 多个店铺同城快递运费设置(起送条件+优惠条件) - List shopStoreSameCityTransportList = shopStoreSameCityTransportService.selectShopStoreSameCityTransportList(shopStoreSameCityTransportBase.getTransport_base_id()); - shopStoreSameCityTransportBaseDTO.setShopStoreSameCityTransportList(shopStoreSameCityTransportList); + List transportList = shopStoreSameCityTransportService.selectShopStoreSameCityTransportList(transportBase.getTransport_base_id()); + shopStoreSameCityTransportBaseDTO.setTransportList(transportList); return shopStoreSameCityTransportBaseDTO; } + + public Boolean saveOrUpdateShopStoreSameCityTransportBase(ShopStoreSameCityTransportBase transportBase) { + if (transportBase == null || transportBase.getStore_id() == null || transportBase.getStore_id() <= 0) { + return false; + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("store_id", transportBase.getStore_id()); + ShopStoreSameCityTransportBase transportBaseExist = getOne(queryWrapper); + if (transportBase == null) { + // 新增记录 + transportBase.setCreated_by(transportBase.getUpdated_by()); + return save(transportBase); + } + + Long transportBaseId = transportBase.getTransport_base_id(); + if (transportBaseId == null || transportBase.getTransport_base_id() <= 0) { + transportBase.setTransport_base_id(transportBaseExist.getTransport_base_id()); + } + + // 更新记录 + return updateById(transportBase); + } } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportServiceImpl.java index 9d7c2156..b97753f6 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportServiceImpl.java @@ -32,7 +32,7 @@ public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl selectShopStoreSameCityTransportList(Long transportBaseId) { - if (transportBaseId == null||transportBaseId <= 0) { + if (transportBaseId == null || transportBaseId <= 0) { return Collections.emptyList(); } @@ -42,10 +42,46 @@ public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl shopStoreSameCityTransportList = list(queryWrapper); - if(CollectionUtil.isEmpty(shopStoreSameCityTransportList)){ + if (CollectionUtil.isEmpty(shopStoreSameCityTransportList)) { shopStoreSameCityTransportList = Collections.emptyList(); } return shopStoreSameCityTransportList; } + + /** + * 保存同城配送扩展设置列表(存在就更新,不存在就新增) + * + * @param transportBaseId + * @param transportList + * @return 成功的记录数 + */ + @Override + public Integer saveOrUpdateShopStoreSameCityTransportList(Long transportBaseId, List transportList) { + if (CollectionUtil.isEmpty(transportList) || transportBaseId == null || transportBaseId <= 0) { + return 0; + } + + int count = 0; + for (ShopStoreSameCityTransport transport : transportList) { + if (transport == null || transport.getTransport_id() == null || transport.getTransport_id() <= 0) { + transport.setTransport_base_id(transportBaseId); + if (save(transport)) { + count += 1; + } + } else { + if (transport.getTransport_base_id() == null || transport.getTransport_base_id() <= 0) { + transport.setTransport_base_id(transportBaseId); + } + + if (updateById(transport)) { + count += 1; + } + } + } + + return count; + } + + }