From ccdfbe32c6c318c73f47b7b5ce94bcbabd89e396 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 1 Mar 2023 10:33:53 +0800 Subject: [PATCH] //couponmerchant --- .../controller/market/WxCouponController.java | 45 +++++++++++++++++++ .../mapper/WxCouponMerchantMapper.java | 6 +++ .../com/iformall/service/WxCouponService.java | 3 ++ .../service/impl/WxCouponServiceImpl.java | 41 +++++++++++++++++ .../mapper/WxCouponMerchantMapper.xml | 32 ++++++++++++- 5 files changed, 126 insertions(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java index faa472431..ef3db5c16 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -302,6 +302,50 @@ public class WxCouponController extends BaseController { } } + /** + * 没有做效验 + * @param wxCoupon + * @return + */ + @ApiOperation("商场批量设置商户") + @PostMapping("/setManyCouponMerchants") + public ResultData setManyCouponMerchants(@RequestBody WxCoupon wxCoupon) { + if(wxCoupon.getIds() == null || wxCoupon.getIds().isEmpty()){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "未选择需要修改的券/卡"); + } + if(wxCoupon.getMerchantIds() == null || wxCoupon.getMerchantIds().length <= 0){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "未选择需要添加删除的门店"); + } + List couponIds = wxCoupon.getIds(); + List merchantIds = Arrays.asList(wxCoupon.getMerchantIds()); + + wxCouponService.addManyCouponMerchants(getTenantInfo(),couponIds,merchantIds); + + return new ResultData(); + } + + /** + * 没有做效验 + * @param wxCoupon + * @return + */ + @ApiOperation("商场批量设置商户") + @PostMapping("/delManyCouponMerchants") + public ResultData delManyCouponMerchants(@RequestBody WxCoupon wxCoupon) { + if(wxCoupon.getIds() == null || wxCoupon.getIds().isEmpty()){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "未选择需要修改的券/卡"); + } + if(wxCoupon.getMerchantIds() == null || wxCoupon.getMerchantIds().length <= 0){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "未选择需要添加删除的门店"); + } + List couponIds = wxCoupon.getIds(); + List merchantIds = Arrays.asList(wxCoupon.getMerchantIds()); + + wxCouponService.delManyCouponMerchants(getTenantInfo(),couponIds,merchantIds); + + return new ResultData(); + } + @ApiOperation("根据id更新库存及有效期接口") @PostMapping("updateStokeAndValidDate") @SystemControllerLog(description = "券投放-库存/有效期更新") @@ -878,4 +922,5 @@ public class WxCouponController extends BaseController { } + } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMerchantMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMerchantMapper.java index e004b314c..f4d75f5b6 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMerchantMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMerchantMapper.java @@ -23,4 +23,10 @@ public interface WxCouponMerchantMapper extends CommonMapper findMerchantProductIds(@Param("tenantId")String tenantId,@Param("merchantIdList")List merchantIdList,@Param("status")Integer status); List findMerchantByProductIds(@Param("tenantId")String tenantId,@Param("productIds")List productIds); List findOnlyMerchantByProductIds(@Param("tenantId")String tenantId,@Param("productIds")List productIds); + + + + int updateStatus(@Param("tenantId")String tenantId, @Param("productId")Long couponId, @Param("merchantIdList")List merchantIds,@Param("status")Integer status); + + int insertList(List addList); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index 207b00b05..eb98d4760 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -304,4 +304,7 @@ public interface WxCouponService { ResultData setCouponMerchants(TenantEntity tenantInfo, WxCoupon wxCoupon); + void addManyCouponMerchants(TenantEntity tenantInfo, List couponIds, List merchantIds); + + void delManyCouponMerchants(TenantEntity tenantInfo, List couponIds, List merchantIds); } 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 394622902..91986caed 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -2008,5 +2008,46 @@ public class WxCouponServiceImpl implements WxCouponService { return new ResultData(); } + @Override + @Transactional(rollbackFor = Exception.class) + public void addManyCouponMerchants(TenantEntity tenantInfo, List couponIds, List merchantIds) { + List add = new ArrayList<>(); + final IdWorker idWorker = IdWorker.get(); + Date now = new Date(); + for (Long couponId:couponIds) { + wxCouponMerchantMapper.updateStatus(tenantInfo.getTenantId(),couponId,merchantIds,EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); + + List couponOldMerchants = wxCouponMerchantMapper.findMerchantIdListByProduct(couponId, tenantInfo.getTenantId()); + List couponAddMerchants = new ArrayList<>(); + couponAddMerchants.addAll(merchantIds); + couponAddMerchants.removeAll(couponOldMerchants); + if(!couponAddMerchants.isEmpty()){ + for (Long addMerchant:couponAddMerchants) { + WxCouponMerchant couponMerchant = new WxCouponMerchant(); + couponMerchant.setId(idWorker.nextId()); + couponMerchant.updateTenantInfo(tenantInfo); + couponMerchant.setProductId(couponId); + couponMerchant.setMerchantId(addMerchant); + couponMerchant.setCreateDate(now); + couponMerchant.setUpdateDate(now); + couponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); + add.add(couponMerchant); + } + } + } + if(!add.isEmpty()){ + wxCouponMerchantMapper.insertList(add); + } + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delManyCouponMerchants(TenantEntity tenantInfo, List couponIds, List merchantIds) { + for (Long couponId:couponIds) { + wxCouponMerchantMapper.updateStatus(tenantInfo.getTenantId(),couponId,merchantIds,EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_INVALID.getCode()); + } + } + } diff --git a/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml index 1aebd5e3a..8dd35025d 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml @@ -167,7 +167,7 @@ GROUP BY product_id HAVING mc = 1 - and wcm.merchant_id in + and wcm.merchant_id in #{merchantIdItem} @@ -191,5 +191,35 @@ + + + + + update wx_coupon_merchant set `status` = #{status},`update_date`=now() + where tenant_id = #{tenantId} + and status != #{status} + and product_id = #{productId} + and merchant_id in + + #{merchantIdItem} + + + + + insert into wx_coupon_merchant + (`id`,`tenant_id`,`parent_tenant_id`,`product_id`,`merchant_id`,`parameter`,`create_date`,`update_date`,`status`) + values + + (#{item.id,jdbcType=BIGINT}, + #{item.tenantId,jdbcType=VARCHAR}, + #{item.parentTenantId,jdbcType=VARCHAR}, + #{item.productId,jdbcType=BIGINT}, + #{item.merchantId,jdbcType=BIGINT}, + #{item.parameter,jdbcType=VARCHAR}, + #{item.createDate,jdbcType=TIMESTAMP}, + #{item.updateDate,jdbcType=TIMESTAMP}, + #{item.status,jdbcType=INTEGER}) + +