diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxPressBatchController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxPressBatchController.java index 8de6e4f3b..2a5331cab 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxPressBatchController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxPressBatchController.java @@ -184,16 +184,56 @@ public class WxPressBatchController extends BaseController { return new ResultData(Result.ERROR,"参数错误"); } String[] cids = cidstr.split(","); - WxPressBatch order = wxPressBatchService.getById(record.getId(), tenantEntity.getTenantId()); - List existsCids = wxPressBatchService.getItemCouponIdList(record.getId(), tenantEntity.getTenantId()); - if (null != cids && cids.length > 0 ) { - List rcids = new ArrayList(); - for (String cid: cids) { - rcids.add(Long.parseLong(cid)); + if (null == cids || cids.length <= 0 ) { + return new ResultData(Result.ERROR,"请选择砍价券"); + } + List rcids = new ArrayList(); + for (String cid: cids) { + rcids.add(Long.parseLong(cid)); + } + //已经存在了的不能再加入 + List arrayCouponIds = wxPressBatchService.getCouponIds(tenantEntity.getTenantId()); + if (null != arrayCouponIds && arrayCouponIds.size() > 0 ) { + if (arrayCouponIds.containsAll(rcids)) { + return new ResultData(Result.ERROR,"所选择的券已经加入了一个批次,不能再加"); } - if (null != existsCids && existsCids.size() > 0 ) { - rcids.removeAll(existsCids); + List extraCouponIds = new ArrayList(); + extraCouponIds.addAll(rcids); + extraCouponIds.removeAll(arrayCouponIds); + + List sameCouponIds = new ArrayList(); + sameCouponIds.addAll(rcids); + sameCouponIds.removeAll(extraCouponIds); + + if (sameCouponIds.size() > 0) { + WxCoupon couponQ = new WxCoupon(); + couponQ.updateTenantInfo(tenantEntity); + couponQ.setIds(sameCouponIds); + List couponList = wxCouponService.list(couponQ); + if (null == couponList || couponList.size() <= 0 ) { + return new ResultData(Result.ERROR,"未查询到这些券"); + } + + Map couponNameMap = new HashMap(); + for (WxCoupon c: couponList) { + couponNameMap.put(c.getId(),c.getTitle()); + } + + StringBuffer sb = new StringBuffer("已经存在一个批次的券:"); + for (Long _cid: sameCouponIds) { + sb.append(couponNameMap.get(_cid)).append(","); + } + return new ResultData(Result.ERROR,sb.toString()); + } + } + + List batchCids = wxPressBatchService.getItemCouponIdList(record.getId(), tenantEntity.getTenantId()); + if (null != cids && cids.length > 0 ) { + + if (null != batchCids && batchCids.size() > 0 ) { + rcids.removeAll(batchCids); } + WxPressBatch order = wxPressBatchService.getById(record.getId(), tenantEntity.getTenantId()); wxPressBatchService.saveItems(order, rcids); } return new ResultData(); diff --git a/mallinkService/src/main/java/com/iformall/service/WxPressBatchService.java b/mallinkService/src/main/java/com/iformall/service/WxPressBatchService.java index 26b2b1c1c..77c5cc581 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxPressBatchService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxPressBatchService.java @@ -42,6 +42,7 @@ public interface WxPressBatchService { PageInfo getItemPage(Long batchId,String tenantId, Integer pageIndex, Integer pageSize); List getItemList(Long batchId,String tenantId); List getItemCouponIdList(Long batchId,String tenantId); + List getCouponIds(String tenantId); void saveItems(WxPressBatch pressBatch,List couponIds); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPressBatchServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPressBatchServiceImpl.java index e375b174c..35fb3635e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPressBatchServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPressBatchServiceImpl.java @@ -110,6 +110,13 @@ public class WxPressBatchServiceImpl implements WxPressBatchService { return wxPressBatchItemMapper.getCouponIds(batchId, tenantId, null); } + @Override + public List getCouponIds(String tenantId) { + WxPressBatchItem iteq = new WxPressBatchItem(); + iteq.setTenantId(tenantId); + return wxPressBatchItemMapper.getCouponIds(null, tenantId, null); + } + @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) public void saveItems(WxPressBatch pressBatch, List couponIds) { diff --git a/mallinkService/src/main/resources/mapper/WxPressBatchItemMapper.xml b/mallinkService/src/main/resources/mapper/WxPressBatchItemMapper.xml index f03d1d380..4614a2934 100644 --- a/mallinkService/src/main/resources/mapper/WxPressBatchItemMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxPressBatchItemMapper.xml @@ -91,7 +91,10 @@