From 6702fb99867893c1974c0b9bd64b614ad6b36895 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Tue, 6 Sep 2022 16:49:08 +0800 Subject: [PATCH 01/25] fix pressbatch bug --- .../com/iformall/controller/market/WxPressBatchController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 cc84f3ccc..a6c789ba7 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxPressBatchController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxPressBatchController.java @@ -155,7 +155,7 @@ public class WxPressBatchController extends BaseController { WxPressBatch record1 = wxPressBatchService.getById(record.getId(), getTenantInfo().getTenantId()); record1.setPromoterLimitRule(record.getPromoterLimitRule()); record1.setPromoterAllowCount(record.getPromoterAllowCount()); - record1.setBargainerAllowCount(record1.getBargainerAllowCount()); + record1.setBargainerAllowCount(record.getBargainerAllowCount()); record1.setBargainerAllowSame(record.getBargainerAllowSame()); wxPressBatchService.saveOrUpdate(record1); return new ResultData(); From e828d73ad7902375ad4d9a3c3d2fc62669f17c80 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Tue, 6 Sep 2022 19:19:26 +0800 Subject: [PATCH 02/25] fix press --- .../market/WxPressBatchController.java | 51 +++++++++++++++++-- .../mapper/WxCouponChannelMapper.java | 2 + .../service/WxCouponChannelService.java | 1 + .../iformall/service/WxPressBatchService.java | 1 + .../impl/WxCouponChannelServiceImpl.java | 5 ++ .../service/impl/WxPressBatchServiceImpl.java | 8 +++ .../mapper/WxCouponChannelMapper.xml | 5 ++ 7 files changed, 70 insertions(+), 3 deletions(-) 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 a6c789ba7..402622cb9 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxPressBatchController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxPressBatchController.java @@ -9,14 +9,20 @@ import com.iformall.controller.base.BaseController; import com.iformall.domain.po.AliBusinessCircleOrder; import com.iformall.domain.po.WxBusinessCircleOrder; import com.iformall.domain.po.WxCoupon; +import com.iformall.domain.po.WxCouponChannel; import com.iformall.domain.po.WxPressBatch; import com.iformall.domain.po.WxPressBatchItem; import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumCouponChannelStatus; +import com.iformall.enums.EnumCouponChannelType; import com.iformall.enums.EnumCouponContentType; import com.iformall.enums.EnumCouponSourceType; +import com.iformall.enums.EnumCouponType; import com.iformall.enums.EnumRentContractAppStatus; import com.iformall.service.AliBusinessCircleOrderService; +import com.iformall.service.WxCouponChannelService; +import com.iformall.service.WxCouponService; import com.iformall.service.WxPressBatchService; import com.iformall.utils.Constant; import io.swagger.annotations.Api; @@ -46,7 +52,13 @@ public class WxPressBatchController extends BaseController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired - private WxPressBatchService wxPressBatchService; + WxPressBatchService wxPressBatchService; + + @Autowired + WxCouponService wxCouponService; + + @Autowired + WxCouponChannelService wxCouponChannelService; @ApiOperation("分页列表接口") @GetMapping("list") @@ -84,7 +96,7 @@ public class WxPressBatchController extends BaseController { return new ResultData(order); } - @ApiOperation("详情接口") + @ApiOperation("砍价券接口") @GetMapping("itemList") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)}) @@ -92,7 +104,15 @@ public class WxPressBatchController extends BaseController { if (null == id) { return new ResultData(Result.ERROR,"参数错误"); } - List list = wxPressBatchService.getItemList(id, getTenantInfo().getTenantId()); + List couponIdList = wxPressBatchService.getItemCouponIdList(id, getTenantInfo().getTenantId()); + WxCoupon record = new WxCoupon(); + record.updateTenantInfo(getTenantInfo()); + if (null != couponIdList && couponIdList.size() > 0 ) { + record.setIds(couponIdList); + }else { + record.setId(0L); + } + List list = wxCouponService.list(record); return new ResultData(list); } @@ -105,6 +125,31 @@ public class WxPressBatchController extends BaseController { wxPressBatchService.deleteBatch(record.getId(), getTenantInfo().getTenantId()); return new ResultData(); } + + @ApiOperation("已投放砍价券列表接口") + @GetMapping("couponList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true),}) + public ResultData couponList(@ModelAttribute WxCoupon record, Integer pageNum, Integer pageSize) { + WxCouponChannel couponChannelQ = new WxCouponChannel(); + couponChannelQ.updateTenantInfo(getTenantInfo()); + couponChannelQ.setType(EnumCouponType.COUPON_PRESS.getCode()); + couponChannelQ.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_PRESS.getCode()); + couponChannelQ.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); + List couponIds = wxCouponChannelService.findCouponIdList(couponChannelQ); + if (null == record) { + record = new WxCoupon(); + } + record.updateTenantInfo(couponChannelQ); + if (null != couponIds && couponIds.size() > 0 ) { + record.setIds(couponIds); + }else { + record.setId(0L); + } + PageInfo page = wxCouponService.listAsPage(record, pageNum, pageSize); + return new ResultData(page); + } @ApiOperation("新增items") diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponChannelMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponChannelMapper.java index 772e28109..7a6ab3547 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponChannelMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponChannelMapper.java @@ -13,6 +13,8 @@ public interface WxCouponChannelMapper extends CommonMapper findList(WxCouponChannel wxCouponChannel); + + List findCouponIdList(WxCouponChannel wxCouponChannel); int countCoupon(WxCouponChannel wxCouponChannel); diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponChannelService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponChannelService.java index 2053055f8..5f53778b7 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponChannelService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponChannelService.java @@ -26,6 +26,7 @@ public interface WxCouponChannelService { */ PageInfo listAsPage(WxCouponChannel record, Integer pageIndex, Integer pageSize); List findList(WxCouponChannel record); + List findCouponIdList(WxCouponChannel record); WxCouponCVo findDetailVo(Long id,String tenantId,boolean hasMerchant); diff --git a/mallinkService/src/main/java/com/iformall/service/WxPressBatchService.java b/mallinkService/src/main/java/com/iformall/service/WxPressBatchService.java index 970a2629c..143a61507 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxPressBatchService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxPressBatchService.java @@ -40,6 +40,7 @@ public interface WxPressBatchService { WxPressBatch getById(Long id,String tenantId); List getItemList(Long batchId,String tenantId); + List getItemCouponIdList(Long batchId,String tenantId); void saveItems(WxPressBatch pressBatch,String[] couponIds); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java index d70db8505..403e1bdf6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -113,6 +113,11 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { return wxCouponChannelMapper.findList(record); } + @Override + public List findCouponIdList(WxCouponChannel record) { + return wxCouponChannelMapper.findCouponIdList(record); + } + @Override public WxCouponChannel getById(Long id,String tenantId) { return wxCouponChannelMapper.selectById(id,tenantId); 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 bd7cfa1bb..cafa1dbe6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPressBatchServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPressBatchServiceImpl.java @@ -94,6 +94,14 @@ public class WxPressBatchServiceImpl implements WxPressBatchService { return wxPressBatchItemMapper.findList(iteq); } + @Override + public List getItemCouponIdList(Long batchId, String tenantId) { + WxPressBatchItem iteq = new WxPressBatchItem(); + iteq.setTenantId(tenantId); + iteq.setPressBatchId(batchId); + return wxPressBatchItemMapper.getCouponIds(batchId, tenantId, null); + } + @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) public void saveItems(WxPressBatch pressBatch, String[] couponIds) { diff --git a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml index d4a0848e8..5f6cbef84 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml @@ -143,6 +143,11 @@ select from wx_coupon_channel cc + + update wx_coupon_channel From 40c8e54cd694859e43d7618689db2f5813eda4b3 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Tue, 6 Sep 2022 19:41:02 +0800 Subject: [PATCH 03/25] fix press --- .../iformall/controller/market/WxPressBatchController.java | 2 +- .../src/main/java/com/iformall/service/WxCouponService.java | 2 ++ .../java/com/iformall/service/impl/WxCouponServiceImpl.java | 5 +++++ 3 files changed, 8 insertions(+), 1 deletion(-) 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 402622cb9..1c824750e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxPressBatchController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxPressBatchController.java @@ -147,7 +147,7 @@ public class WxPressBatchController extends BaseController { }else { record.setId(0L); } - PageInfo page = wxCouponService.listAsPage(record, pageNum, pageSize); + PageInfo page = wxCouponService.simplelistAsPage(record, pageNum, pageSize); return new ResultData(page); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index 486c62be9..4fd278442 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -31,6 +31,8 @@ public interface WxCouponService { * @return */ PageInfo listAsPage(WxCoupon record, Integer pageIndex, Integer pageSize); + + PageInfo simplelistAsPage(WxCoupon record, Integer pageIndex, Integer pageSize); /** * 卡类列表,包括统计 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java index 323481746..99c76dd92 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -210,6 +210,11 @@ public class WxCouponServiceImpl implements WxCouponService { public List list(WxCoupon wxCoupon){ return wxCouponMapper.findList(wxCoupon); } + + @Override + public PageInfo simplelistAsPage(WxCoupon record, Integer pageNum, Integer pageSize) { + return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxCouponMapper.findList(record)); + } @Override public PageInfo listAsPage(WxCoupon record, Integer pageIndex, Integer pageSize) { From 3b909509e282ab16a22a5444d5eae2b392cdf1c4 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Tue, 6 Sep 2022 19:59:26 +0800 Subject: [PATCH 04/25] fix press batch --- .../market/WxPressBatchController.java | 32 +++++++++++++------ .../iformall/domain/po/WxPressBatchItem.java | 4 +++ 2 files changed, 27 insertions(+), 9 deletions(-) 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 1c824750e..2633b5fda 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxPressBatchController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxPressBatchController.java @@ -104,16 +104,30 @@ public class WxPressBatchController extends BaseController { if (null == id) { return new ResultData(Result.ERROR,"参数错误"); } - List couponIdList = wxPressBatchService.getItemCouponIdList(id, getTenantInfo().getTenantId()); - WxCoupon record = new WxCoupon(); - record.updateTenantInfo(getTenantInfo()); - if (null != couponIdList && couponIdList.size() > 0 ) { - record.setIds(couponIdList); - }else { - record.setId(0L); + TenantEntity tenantEntity = getTenantInfo(); + List items = wxPressBatchService.getItemList(id, tenantEntity.getTenantId()); + if (null != items && items.size() > 0 ) { + List couponIdList = wxPressBatchService.getItemCouponIdList(id, tenantEntity.getTenantId()); + WxCoupon record = new WxCoupon(); + record.updateTenantInfo(getTenantInfo()); + if (null != couponIdList && couponIdList.size() > 0 ) { + record.setIds(couponIdList); + }else { + record.setId(0L); + } + List list = wxCouponService.list(record); + Map couponMap = new HashMap(); + if (null != list && list.size() > 0 ) { + for (WxCoupon c : list) { + couponMap.put(c.getId(), c); + } + } + for (WxPressBatchItem pbi : items) { + WxCoupon coupon = couponMap.get(pbi.getCouponId()); + pbi.setCoupon(coupon); + } } - List list = wxCouponService.list(record); - return new ResultData(list); + return new ResultData(items); } @ApiOperation("删除接口") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxPressBatchItem.java b/mallinkService/src/main/java/com/iformall/domain/po/WxPressBatchItem.java index 916fa890a..34bd8cb62 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxPressBatchItem.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxPressBatchItem.java @@ -1,5 +1,6 @@ package com.iformall.domain.po; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.iformall.domain.po.base.TenantEntity; import lombok.Data; @@ -27,4 +28,7 @@ public class WxPressBatchItem extends TenantEntity { private Date createDate; @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") private Date updateDate; + + @TableField(exist = false) + private WxCoupon coupon; } From f6ef65905d9a3312b66dd68b533a0157f48760e9 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 7 Sep 2022 11:03:44 +0800 Subject: [PATCH 05/25] =?UTF-8?q?//=20=E5=88=86=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/schedule/CouponOrderExpiringSchedule.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java index 269553a2e..799ce5107 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java @@ -205,7 +205,8 @@ public class CouponOrderExpiringSchedule { wxPayOrder.setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); wxPayOrder = wxPayOrderMapper.selectOne(new QueryWrapper(wxPayOrder)); - if (wxPayOrder != null) { + //todo EnumPayShare.YES.getCode().equals(wxPayOrder.getShare()) 临时判断只有分账的才去分账 + if (wxPayOrder != null && EnumPayShare.YES.getCode().equals(wxPayOrder.getShare())) { WxSharingOrderDto wxSharingOrderDto = new WxSharingOrderDto(); wxSharingOrderDto.setCUserId(wxPayOrder.getCUserId()); wxSharingOrderDto.setMerchantId(0L); From 9ca418757d27a3bb4bd6ba679e2ed50f54f8868c Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 7 Sep 2022 11:06:23 +0800 Subject: [PATCH 06/25] =?UTF-8?q?//=20=E5=AE=9A=E6=97=B6test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/schedule/CouponOrderExpiringSchedule.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java index 799ce5107..16c6029cc 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java @@ -87,8 +87,8 @@ public class CouponOrderExpiringSchedule { } - @Scheduled(cron = "0 0 5 * * ?") // 每天凌晨00:05 - //@Scheduled(cron = "0 */10 * * * ?") // 测试10秒中一次 +// @Scheduled(cron = "0 0 5 * * ?") // 每天凌晨00:05 + @Scheduled(cron = "0 */10 * * * ?") // 测试10秒中一次 public void couponOrderRefundSchedule() { CouponOrderExpiringSchedule proxy = (CouponOrderExpiringSchedule) AopContext.currentProxy(); List malls = getMalls(); From 02805849a5188037ffe538b545c4c79a1b39df85 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 7 Sep 2022 12:06:21 +0800 Subject: [PATCH 07/25] fix press bug --- .../market/WxPressBatchController.java | 25 +++++++++++++++---- .../iformall/service/WxPressBatchService.java | 3 ++- .../service/impl/WxPressBatchServiceImpl.java | 14 ++++++++--- 3 files changed, 33 insertions(+), 9 deletions(-) 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 2633b5fda..8de6e4f3b 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxPressBatchController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxPressBatchController.java @@ -42,6 +42,8 @@ import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -99,13 +101,16 @@ public class WxPressBatchController extends BaseController { @ApiOperation("砍价券接口") @GetMapping("itemList") @ApiImplicitParams({ - @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)}) - public ResultData itemList(Long id) { + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true), + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + public ResultData itemList(Long id, Integer pageNum, Integer pageSize) { if (null == id) { return new ResultData(Result.ERROR,"参数错误"); } TenantEntity tenantEntity = getTenantInfo(); - List items = wxPressBatchService.getItemList(id, tenantEntity.getTenantId()); + PageInfo itemPage = wxPressBatchService.getItemPage(id, tenantEntity.getTenantId(),pageNum,pageSize); + List items = itemPage.getList(); if (null != items && items.size() > 0 ) { List couponIdList = wxPressBatchService.getItemCouponIdList(id, tenantEntity.getTenantId()); WxCoupon record = new WxCoupon(); @@ -127,7 +132,7 @@ public class WxPressBatchController extends BaseController { pbi.setCoupon(coupon); } } - return new ResultData(items); + return new ResultData(itemPage); } @ApiOperation("删除接口") @@ -180,7 +185,17 @@ public class WxPressBatchController extends BaseController { } String[] cids = cidstr.split(","); WxPressBatch order = wxPressBatchService.getById(record.getId(), tenantEntity.getTenantId()); - wxPressBatchService.saveItems(order, cids); + 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 != existsCids && existsCids.size() > 0 ) { + rcids.removeAll(existsCids); + } + 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 143a61507..26b2b1c1c 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxPressBatchService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxPressBatchService.java @@ -39,10 +39,11 @@ public interface WxPressBatchService { WxPressBatch getById(Long id,String tenantId); + PageInfo getItemPage(Long batchId,String tenantId, Integer pageIndex, Integer pageSize); List getItemList(Long batchId,String tenantId); List getItemCouponIdList(Long batchId,String tenantId); - void saveItems(WxPressBatch pressBatch,String[] couponIds); + void saveItems(WxPressBatch pressBatch,List couponIds); void deleteBatch(Long id,String tenantId); void deleteItemById(Long itemId,String tenantId); 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 cafa1dbe6..87849dfc4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPressBatchServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPressBatchServiceImpl.java @@ -86,6 +86,14 @@ public class WxPressBatchServiceImpl implements WxPressBatchService { return wxPressBatchMapper.getById(id, tenantId); } + @Override + public PageInfo getItemPage(Long batchId,String tenantId, Integer pageIndex, Integer pageSize) { + WxPressBatchItem iteq = new WxPressBatchItem(); + iteq.setTenantId(tenantId); + iteq.setPressBatchId(batchId); + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxPressBatchItemMapper.findList(iteq)); + } + @Override public List getItemList(Long batchId, String tenantId) { WxPressBatchItem iteq = new WxPressBatchItem(); @@ -104,12 +112,12 @@ public class WxPressBatchServiceImpl implements WxPressBatchService { @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public void saveItems(WxPressBatch pressBatch, String[] couponIds) { - for (String cid : couponIds) { + public void saveItems(WxPressBatch pressBatch, List couponIds) { + for (Long cid : couponIds) { WxPressBatchItem iteq = new WxPressBatchItem(); iteq.updateTenantInfo(pressBatch); iteq.setPressBatchId(pressBatch.getId()); - iteq.setCouponId(Long.parseLong(cid)); + iteq.setCouponId(cid); iteq.setPressBatchStatus(pressBatch.getStatus()); iteq.setCreateDate(new Date()); iteq.setUpdateDate(new Date()); From 6340a34310f586c164f20583e3de1ae493a6561e Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 7 Sep 2022 13:56:19 +0800 Subject: [PATCH 08/25] // test --- .../service/impl/WxCouponServiceImpl.java | 57 ++++++++++++------- 1 file changed, 35 insertions(+), 22 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java index 99c76dd92..3becbb531 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -679,20 +679,24 @@ public class WxCouponServiceImpl implements WxCouponService { } PayShareAdapterService payShareServie = payServiceFactory.getPayShareAdapterService(payWay.getCode(),payAccount.getPayVersion()); + List merchantIds = new ArrayList<>(); + for (JSONObject o:merchantParamList) { + merchantIds.add(o.getLong("id")); + } + WxMerchant merchantQ = new WxMerchant(); + merchantQ.updateTenantInfo(record); + merchantQ.setIds(merchantIds); + Map idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ); if (EnumPayMchType.DIRECT.equals(payMchType)) { Long merchantId = null; - if (merchantParamList.size() > 1) { - List merchantIds = new ArrayList<>(); - for (JSONObject o:merchantParamList) { - merchantIds.add(o.getLong("id")); - } - WxMerchant merchantQ = new WxMerchant(); - merchantQ.updateTenantInfo(record); - merchantQ.setIds(merchantIds); - merchantQ.setIsAdmin(EnumYesOrNo.YES.getCode()); - merchantQ.setStatus(EnumMerchantStatus.VALID.getCode()); - List list = wxMerchantMapper.findIdList(merchantQ); + if (merchantIds.size() > 1) { + WxMerchant merchantQ2 = new WxMerchant(); + merchantQ2.updateTenantInfo(record); + merchantQ2.setIds(merchantIds); + merchantQ2.setIsAdmin(EnumYesOrNo.YES.getCode()); + merchantQ2.setStatus(EnumMerchantStatus.VALID.getCode()); + List list = wxMerchantMapper.findIdList(merchantQ2); if(list == null || list.isEmpty()){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "直连模式多门店券需包含一个商管商户"); }else if(list.size() > 1){ @@ -702,28 +706,28 @@ public class WxCouponServiceImpl implements WxCouponService { merchantId = list.get(0); }else{ record.setMerchantType(EnumCouponMerchantType.ONE_MERCHANT.getCode()); - merchantId = merchantParamList.get(0).getLong("id"); + merchantId = merchantIds.get(0); } WxProfitSharingReceiver receiver = payShareServie.getReceiver(payAccount, merchantId, null, payMchTypeEnum.getCode()); if (receiver == null) { - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "对应门店至少进件一种支付模式"); + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "["+idAndNamesMap.get(merchantId)+"]未配置收款账户"); } if (EnumAppPlat.TOUTIAO.equals(plat)) { if (!MerchantImportStatus.improt_success.getCode().equals(receiver.getWxImportStatus()) && !MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus()) && !MerchantImportStatus.improt_success.getCode().equals(receiver.getHzImportStatus())) { - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "对应门店至少进件一种支付模式"); + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "["+idAndNamesMap.get(merchantId)+"]未配置收款账户"); } } } else if (EnumPayShare.YES.equals(isShare)) { - for (int i = 0, size = merchantParamList.size(); i < size; i++) { - JSONObject jsonObject = merchantParamList.get(i); - Long merchantId = jsonObject.getLong("id"); + List merchantNames = new ArrayList(); + for (Long merchantId:merchantIds) { WxProfitSharingReceiver receiver = payShareServie.getReceiver(payAccount, merchantId, null, payMchTypeEnum.getCode()); - int n = i + 1; if (receiver == null) { - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "第(" + n + ")个商户还未配置分账账户或未进件"); + merchantNames.add(idAndNamesMap.get(merchantId)); + continue; +// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "第(" + n + ")个商户还未配置分账账户或未进件"); } if (EnumAppPlat.TOUTIAO.equals(plat)) { QueryMerchantResult openPayResult = payAccount.getOpenPayResult(); @@ -734,18 +738,27 @@ public class WxCouponServiceImpl implements WxCouponService { } if(EnumYesOrNo.YES.getCode().equals(openPayResult.getAlipay()) && !MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus())){ - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "第(" + n + ")个商户未进件支付宝"); + merchantNames.add(idAndNamesMap.get(merchantId)); + continue; +// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "["+idAndNamesMap.get(merchantId)+"]未进件支付宝"); } if(EnumYesOrNo.YES.getCode().equals(openPayResult.getWx()) && !MerchantImportStatus.improt_success.getCode().equals(receiver.getWxImportStatus())){ - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "第(" + n + ")个商户未进件微信"); + merchantNames.add(idAndNamesMap.get(merchantId)); + continue; +// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "["+idAndNamesMap.get(merchantId)+"]未进件微信"); } if(EnumYesOrNo.YES.getCode().equals(openPayResult.getHz()) && !MerchantImportStatus.improt_success.getCode().equals(receiver.getHzImportStatus())){ - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "第(" + n + ")个商户未进件抖音"); + merchantNames.add(idAndNamesMap.get(merchantId)); + continue; +// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "["+idAndNamesMap.get(merchantId)+"]未进件抖音"); } } } + if(!merchantNames.isEmpty()){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), JSONArray.toJSONString(merchantNames)+"未配置分账账户"); + } } } return new ResultData(); From 681e4dbc784499f737a6f5beeaf70b81571d53a0 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 7 Sep 2022 13:57:14 +0800 Subject: [PATCH 09/25] fix press bug --- .../src/main/resources/mapper/WxPressBatchItemMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/resources/mapper/WxPressBatchItemMapper.xml b/mallinkService/src/main/resources/mapper/WxPressBatchItemMapper.xml index b3121f7d1..f03d1d380 100644 --- a/mallinkService/src/main/resources/mapper/WxPressBatchItemMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxPressBatchItemMapper.xml @@ -83,7 +83,7 @@ - delete from wx_press_batch_item where `id` = #{id} and tenant_id=#{tenantId} and `press_batch_id` = #{pressBatchId} + delete from wx_press_batch_item where `id` = #{id} and tenant_id=#{tenantId} From 242ad0a76751df75bd93c0f0cdf57c9be3103420 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 7 Sep 2022 13:59:18 +0800 Subject: [PATCH 10/25] // test --- .../com/iformall/schedule/CouponOrderExpiringSchedule.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java index 16c6029cc..1e5ad773a 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java @@ -87,8 +87,8 @@ public class CouponOrderExpiringSchedule { } -// @Scheduled(cron = "0 0 5 * * ?") // 每天凌晨00:05 - @Scheduled(cron = "0 */10 * * * ?") // 测试10秒中一次 + @Scheduled(cron = "0 0 5 * * ?") // 每天凌晨00:05 +// @Scheduled(cron = "0 */10 * * * ?") // 测试10秒中一次 public void couponOrderRefundSchedule() { CouponOrderExpiringSchedule proxy = (CouponOrderExpiringSchedule) AopContext.currentProxy(); List malls = getMalls(); From 90c3d5d6557ba93fb7c46c17bd995ced3da8cd19 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 7 Sep 2022 14:18:04 +0800 Subject: [PATCH 11/25] fix bug --- .../src/main/resources/mapper/WxPressBatchMapper.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mallinkService/src/main/resources/mapper/WxPressBatchMapper.xml b/mallinkService/src/main/resources/mapper/WxPressBatchMapper.xml index ec2775530..658fcbe0f 100644 --- a/mallinkService/src/main/resources/mapper/WxPressBatchMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxPressBatchMapper.xml @@ -35,6 +35,10 @@ and `status` = #{status} + + and `name` like concat('%', #{name},'%') + + and `promoter_limit_rule` = #{promoterLimitRule} From 17614595f531da7fc6637b00e93cc28799b02b4e Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 7 Sep 2022 14:29:02 +0800 Subject: [PATCH 12/25] // test --- mallinkService/src/main/resources/mapper/WxPressBatchMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/resources/mapper/WxPressBatchMapper.xml b/mallinkService/src/main/resources/mapper/WxPressBatchMapper.xml index 658fcbe0f..c7a7118c5 100644 --- a/mallinkService/src/main/resources/mapper/WxPressBatchMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxPressBatchMapper.xml @@ -35,7 +35,7 @@ and `status` = #{status} - + and `name` like concat('%', #{name},'%') From 6c42de016d680f2d30e92a3ba97104e2a2efa71f Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 7 Sep 2022 15:34:36 +0800 Subject: [PATCH 13/25] fix bug --- .../java/com/iformall/controller/WxPressOrderController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java index 1e3077ca7..b4d4d3249 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java @@ -175,6 +175,7 @@ public class WxPressOrderController extends BaseController { //验证砍价批次规则 ResultData result = wxPressBatchService.checkBargainerPressBatchRule(order, memberId); if (Result.SUCCESS != result.code) { + redisLock.unlock(orderIdStr, timeStr); return result; } try { From bdcb152ceef0677581cf56ca9c85140be9228e6d Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 7 Sep 2022 16:13:51 +0800 Subject: [PATCH 14/25] fix bug --- .../service/impl/WxOrderServiceImpl.java | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 5d987703c..8e8477d8d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -778,15 +778,25 @@ public class WxOrderServiceImpl implements WxOrderService { if (null != checkPressResult) { WxPressBatch pressBatch = checkPressResult.getPressBatch(); List cids = checkPressResult.getCouponIdList(); - couponOrderQ.setCouponIds(cids); - if (pressBatch.getPromoterLimitRule().equals(EnumCouponUseLimitRule.TOBEUSED_USELIMIT.getCode())) { - couponOrderQ.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); - } - int _count = wxCouponOrderMapper.findProductCount(couponOrderQ)+couponNumber; - if (_count > pressBatch.getPromoterAllowCount()) { - throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"当前用户已达砍价["+counpon.getTitle()+"]所在批次活动发起次数上限."); + if (null != cids && cids.size() > 0 ) { + couponOrderQ.setCouponIds(cids); + //判断这些券发起中+已完成的 + WxOrder order = new WxOrder(); + order.setCouponIds(cids); + //if (pressBatch.getPromoterLimitRule().equals(EnumCouponUseLimitRule.TOBEUSED_USELIMIT.getCode())) { + List statusS = new ArrayList(); + statusS.add(EnumOrderStatus.ORDER_STATUS_PRESSING.getCode()); + statusS.add(EnumOrderStatus.ORDER_STATUS_PRESS_COMPLETE.getCode()); + order.setStatusS(statusS); + //} + int _count = wxOrderMapper.countCouponConditionType1(order); + if (_count > pressBatch.getPromoterAllowCount()) { + throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"当前用户已达砍价["+counpon.getTitle()+"]所在批次活动发起次数上限."); + } + return _count; + }else { + throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"砍价批次["+pressBatch.getName()+"]未设置券."); } - return _count; }else { if (counpon.getUseLimitRule().equals(EnumCouponUseLimitRule.TOBEUSED_USELIMIT.getCode())) { couponOrderQ.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); From 735c6e062e993e7719d4525b50faaa81b6514133 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 7 Sep 2022 16:29:54 +0800 Subject: [PATCH 15/25] fix press bug --- .../com/iformall/service/impl/WxOrderServiceImpl.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 8e8477d8d..0dd4f32fe 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -781,15 +781,16 @@ public class WxOrderServiceImpl implements WxOrderService { if (null != cids && cids.size() > 0 ) { couponOrderQ.setCouponIds(cids); //判断这些券发起中+已完成的 - WxOrder order = new WxOrder(); - order.setCouponIds(cids); + WxOrder orderq = new WxOrder(); + orderq.updateTenantInfo(counpon); + orderq.setCouponIds(cids); //if (pressBatch.getPromoterLimitRule().equals(EnumCouponUseLimitRule.TOBEUSED_USELIMIT.getCode())) { List statusS = new ArrayList(); statusS.add(EnumOrderStatus.ORDER_STATUS_PRESSING.getCode()); statusS.add(EnumOrderStatus.ORDER_STATUS_PRESS_COMPLETE.getCode()); - order.setStatusS(statusS); + orderq.setStatusS(statusS); //} - int _count = wxOrderMapper.countCouponConditionType1(order); + int _count = wxOrderMapper.countCouponConditionType1(orderq); if (_count > pressBatch.getPromoterAllowCount()) { throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"当前用户已达砍价["+counpon.getTitle()+"]所在批次活动发起次数上限."); } From 6debc4c5c5d055388e1115018e01249d33c0c78b Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 7 Sep 2022 17:20:35 +0800 Subject: [PATCH 16/25] fix bug --- .../java/com/iformall/service/impl/WxOrderServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 0dd4f32fe..90106c4a9 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -791,7 +791,7 @@ public class WxOrderServiceImpl implements WxOrderService { orderq.setStatusS(statusS); //} int _count = wxOrderMapper.countCouponConditionType1(orderq); - if (_count > pressBatch.getPromoterAllowCount()) { + if (_count >= pressBatch.getPromoterAllowCount()) { throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"当前用户已达砍价["+counpon.getTitle()+"]所在批次活动发起次数上限."); } return _count; @@ -1015,7 +1015,7 @@ public class WxOrderServiceImpl implements WxOrderService { try { grouponCount = getUserOrderGroupCount(user, coupon); } catch (Exception e) { - throw new MallinkException(ErrorCode.DB_FAIL.getCode(),"["+coupon.getTitle()+"]查询拼团中订单错误."); + throw new MallinkException(ErrorCode.DB_FAIL.getCode(),"["+coupon.getTitle()+"]"+e.getMessage()); } if (grouponCount >= coupon.getUseLimitQuantity()) { throw new MallinkException(ErrorCode.ORDER_IS_LIMITED.getCode(),"["+coupon.getTitle()+"]购买超限."); @@ -1025,7 +1025,7 @@ public class WxOrderServiceImpl implements WxOrderService { try { paidCount = getUserCouponOrderCount(user, coupon,number,isPressOrder); } catch (Exception e) { - throw new MallinkException(ErrorCode.DB_FAIL.getCode(),"["+coupon.getTitle()+"]查询待使用订单错误."+e.getMessage()); + throw new MallinkException(ErrorCode.DB_FAIL.getCode(),e.getMessage()); } if (paidCount > coupon.getUseLimitQuantity()) { throw new MallinkException(ErrorCode.ORDER_IS_LIMITED.getCode(),"此券购买数量已超限["+coupon.getTitle()+"], couponId: " + coupon.getId() + ", count: " + paidCount); From 06927b6c6495b299f49520897322299818eb5f92 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 7 Sep 2022 17:40:09 +0800 Subject: [PATCH 17/25] fix bug --- .../java/com/iformall/service/impl/WxOrderServiceImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 90106c4a9..d67af3ef4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -811,7 +811,9 @@ public class WxOrderServiceImpl implements WxOrderService { couponOrderQ.setCouponId(counpon.getId()); } return wxCouponOrderMapper.findProductCount(couponOrderQ)+couponNumber; - } catch (Exception e) { + } catch(MallinkException e1) { + throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),e1.getMessage()); + }catch (Exception e) { logger.error("购买是否超限-DB, couponId: " + counpon.getId() + ", e:" + e.getMessage(),e); throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"["+counpon.getTitle()+"]查询待使用订单错误."+e.getMessage()); } From 62e272c6b6910c010651f1230beb2b71a527f050 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 7 Sep 2022 17:53:34 +0800 Subject: [PATCH 18/25] fix press bug --- .../main/java/com/iformall/service/impl/WxOrderServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index d67af3ef4..e18f9b54b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -792,7 +792,7 @@ public class WxOrderServiceImpl implements WxOrderService { //} int _count = wxOrderMapper.countCouponConditionType1(orderq); if (_count >= pressBatch.getPromoterAllowCount()) { - throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"当前用户已达砍价["+counpon.getTitle()+"]所在批次活动发起次数上限."); + throw new MallinkException(ErrorCode.ORDER_IS_FAIL.getCode(),"当前用户发起砍价次数已超限.["+pressBatch.getName()+"]"); } return _count; }else { From 0642530211bf6525afaad56d41d72a4968171d50 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 7 Sep 2022 17:55:33 +0800 Subject: [PATCH 19/25] fix press bug --- .../main/java/com/iformall/service/impl/WxOrderServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index e18f9b54b..7102c7ba5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -784,6 +784,7 @@ public class WxOrderServiceImpl implements WxOrderService { WxOrder orderq = new WxOrder(); orderq.updateTenantInfo(counpon); orderq.setCouponIds(cids); + orderq.setCUserId(user.getId()); //if (pressBatch.getPromoterLimitRule().equals(EnumCouponUseLimitRule.TOBEUSED_USELIMIT.getCode())) { List statusS = new ArrayList(); statusS.add(EnumOrderStatus.ORDER_STATUS_PRESSING.getCode()); From ffc928eb01be182042ce15f56a631246ce2322bb Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 7 Sep 2022 18:15:33 +0800 Subject: [PATCH 20/25] fix press bug --- .../main/java/com/iformall/mapper/WxOrderPressMapper.java | 1 + .../com/iformall/service/impl/WxPressBatchServiceImpl.java | 4 ++-- .../src/main/resources/mapper/WxOrderPressMapper.xml | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOrderPressMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOrderPressMapper.java index 01bb9adde..59fc01ef5 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxOrderPressMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOrderPressMapper.java @@ -13,5 +13,6 @@ public interface WxOrderPressMapper extends CommonMapper { WxOrderPress selectById(@Param("id")Long id,@Param("tenantId")String tenantId); List findList(WxOrderPress wxOrderPress); List findPressList(Map paramMap); + Integer findCount(WxOrderPress wxOrderPress); } 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 87849dfc4..2a76aaf2e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPressBatchServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPressBatchServiceImpl.java @@ -194,9 +194,9 @@ public class WxPressBatchServiceImpl implements WxPressBatchService { orderPressQ.setTenantId(order.getTenantId()); orderPressQ.setUserId(cUserId); orderPressQ.setCouponIds(batchCouponIds); - int count = wxOrderPressMapper.selectCount(new QueryWrapper<>(orderPressQ)); + int count = wxOrderPressMapper.findCount(orderPressQ); if(count >= pressBatch.getBargainerAllowCount().intValue()) { - return new ResultData(Result.ERROR,"当前用户砍价次数已达批次活动设定上限,"); + return new ResultData(Result.ERROR,"当前用户砍价次数已达批次活动设定上限["+pressBatch.getName()+"]"); } else { return new ResultData(); } diff --git a/mallinkService/src/main/resources/mapper/WxOrderPressMapper.xml b/mallinkService/src/main/resources/mapper/WxOrderPressMapper.xml index a3fe2c222..8949a6139 100644 --- a/mallinkService/src/main/resources/mapper/WxOrderPressMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOrderPressMapper.xml @@ -67,4 +67,9 @@ where op.`order_id` = #{orderId} and op.tenant_id = #{tenantId} order by op.`create_date` desc + + From 77c470316e0da1c5975f1329cd5a2d84b36a0e00 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 7 Sep 2022 19:08:03 +0800 Subject: [PATCH 21/25] fix press bug --- .../java/com/iformall/service/impl/WxPressBatchServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 2a76aaf2e..705056423 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPressBatchServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPressBatchServiceImpl.java @@ -186,7 +186,7 @@ public class WxPressBatchServiceImpl implements WxPressBatchService { orderPressQ1.setCouponId(order.getProductId()); int count1 = wxOrderPressMapper.selectCount(new QueryWrapper<>(orderPressQ1)); if(count1 >= 1) { - return new ResultData(Result.ERROR,"当前用户砍已砍过相同商品,"); + return new ResultData(Result.ERROR,"当前用户已砍过相同商品"); } } //查询当前用户参与这些券的砍价次数 From e9b83610f2de73c2aebed21e3d3bbc67450a39fd Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 7 Sep 2022 19:08:55 +0800 Subject: [PATCH 22/25] fix press bug --- .../java/com/iformall/service/impl/WxPressBatchServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 705056423..e375b174c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPressBatchServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPressBatchServiceImpl.java @@ -196,7 +196,7 @@ public class WxPressBatchServiceImpl implements WxPressBatchService { orderPressQ.setCouponIds(batchCouponIds); int count = wxOrderPressMapper.findCount(orderPressQ); if(count >= pressBatch.getBargainerAllowCount().intValue()) { - return new ResultData(Result.ERROR,"当前用户砍价次数已达批次活动设定上限["+pressBatch.getName()+"]"); + return new ResultData(Result.ERROR,"当前用户帮砍次数已达批次活动设定上限["+pressBatch.getName()+"]"); } else { return new ResultData(); } From 14834307606e15e8a7fd17e544f07d4230d9a9be Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 7 Sep 2022 19:49:27 +0800 Subject: [PATCH 23/25] fix press bug --- .../market/WxPressBatchController.java | 56 ++++++++++++++++--- .../iformall/service/WxPressBatchService.java | 1 + .../service/impl/WxPressBatchServiceImpl.java | 7 +++ .../mapper/WxPressBatchItemMapper.xml | 5 +- 4 files changed, 60 insertions(+), 9 deletions(-) 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 @@