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 eae80b8a8..55f8e51b8 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -568,37 +568,44 @@ public class WxCouponController extends BaseController { WxCouponMall wxCouponMall = new WxCouponMall(); wxCouponMall.updateTenantInfo(getTenantInfo()); wxCouponMall.setProductId(id); - return new ResultData(wxCouponMallService.list(wxCouponMall)); + return new ResultData(wxCouponMallService.list(wxCouponMall,true)); } - @ApiOperation("商场查询:平台券商场列表") - @GetMapping("/couponMalls") + @ApiOperation("平台券商场列表") + @GetMapping("/getCouponMall") @ApiImplicitParams({ - @ApiImplicitParam(name = "ids", value = "ids[]", dataType = "Long", paramType = "query", required = true)}) - public ResultData getMallList(Long[] ids) { - if (null == ids || ids.length <= 0 ) { - return new ResultData(ResultData.ERROR, "缺少参数ids"); - } + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)}) + public ResultData getCouponMall(Long id) { + //如果是集团查询,则查询所有的,如果是商场查询,则只查询商场的 WxCouponMall wxCouponMall = new WxCouponMall(); TenantEntity tenantEntity = getTenantInfo(); if (null == tenantEntity.getParentTenantId()) { wxCouponMall.updateTenantInfo(tenantEntity); + wxCouponMall.setProductId(id); }else { wxCouponMall.setTenantId(tenantEntity.getParentTenantId()); + //一个商场,每个平台券只有一条记录 + wxCouponMall.setMallTenantId(tenantEntity.getTenantId()); + wxCouponMall.setProductId(id); } - //一个商场,每个平台券只有一条记录 - wxCouponMall.setMallTenantId(tenantEntity.getTenantId()); - wxCouponMall.setProductIds(Arrays.asList(ids)); - List mallList= wxCouponMallService.list(wxCouponMall); - if (null == mallList || mallList.size() <= 0 ) { - return new ResultData(); + List mallList= wxCouponMallService.list(wxCouponMall,false); + if (null != mallList && mallList.size() > 0 ) { + boolean isComplete = true; + for (int i = 0 ; i < mallList.size(); i ++) { + WxCouponMall cm = mallList.get(i); + if (EnumCouponMallStatus.UNFINISED.getCode() == cm.getStatus()) { + isComplete = false; + break; + } + } + if (isComplete) { + return new ResultData("{\"isCompleted\":1}"); + }else { + return new ResultData("{\"isCompleted\":0}"); + } + }else { + return new ResultData("{\"isCompleted\":0}"); } - Map productMallMap = new HashMap(); - for (int i = 0 ; i < mallList.size(); i ++) { - WxCouponMall cm = mallList.get(i); - productMallMap.put(cm.getProductId(), cm); - } - return new ResultData(productMallMap); } @ApiOperation("商场设置平台券商户") diff --git a/mallinkAdmin/src/main/resources/db/migration/V2022111500001__plat_coupon.sql b/mallinkAdmin/src/main/resources/db/migration/V2022111500001__plat_coupon.sql index 24fb769f7..878cbe8b7 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V2022111500001__plat_coupon.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V2022111500001__plat_coupon.sql @@ -110,4 +110,6 @@ create table wx_coupon_mall_95 like wx_coupon_mall; create table wx_coupon_mall_96 like wx_coupon_mall; create table wx_coupon_mall_97 like wx_coupon_mall; create table wx_coupon_mall_98 like wx_coupon_mall; -create table wx_coupon_mall_99 like wx_coupon_mall; \ No newline at end of file +create table wx_coupon_mall_99 like wx_coupon_mall; + +drop table wx_coupon_mall; \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java index c0016d9b4..107fae939 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java @@ -394,6 +394,9 @@ public class WxCoupon extends TenantEntity { @TableField(exist = false) private Long[] merchantIds; + + @TableField(exist = false) + private String[] mallTenantIds; public String getSalePriceStr() { if(salePrice!=null) { @@ -496,6 +499,7 @@ public class WxCoupon extends TenantEntity { return valid_date; } + //是不是必须要有商户 public boolean checkCreateWithMerchants() { if(type == null) { return true; @@ -505,5 +509,16 @@ public class WxCoupon extends TenantEntity { } return true; } + + //是不是必须要有商场 + public boolean checkCreateWithMalls() { + if(type == null) { + return false; + } + if(type == EnumCouponType.COUPON_DOUYIN_PLAT.getCode()) { + return true; + } + return false; + } } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponMall.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponMall.java index 22e8c9c18..dc8f22de7 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponMall.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponMall.java @@ -30,4 +30,8 @@ public class WxCouponMall extends TenantEntity { private Date updateDate; @io.swagger.annotations.ApiModelProperty(value="状态",name="status") private Integer status; + + @io.swagger.annotations.ApiModelProperty(value="商场信息",name="mall") + @TableField(exist = false) + protected WxMall mall; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/base/TenantEntity.java b/mallinkService/src/main/java/com/iformall/domain/po/base/TenantEntity.java index 1a0193db2..c69560c9a 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/base/TenantEntity.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/base/TenantEntity.java @@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.EqualsAndHashCode; + +import java.util.List; + import org.apache.commons.lang3.StringUtils; /** @@ -27,6 +30,10 @@ public class TenantEntity extends BaseEntity { @JsonIgnore @TableField(exist = false) protected String shardTableSuffix; + + @io.swagger.annotations.ApiModelProperty(value="租户编号列表,查询使用",name="tenantIdList") + @TableField(exist = false) + protected List tenantIdList; public void updateTenantInfo(TenantEntity info) { tenantId = info.getTenantId(); @@ -82,4 +89,13 @@ public class TenantEntity extends BaseEntity { public void setFinalTenantId(String finalTenantId) { this.finalTenantId = finalTenantId; } + + public List getTenantIdList() { + return tenantIdList; + } + + public void setTenantIdList(List tenantIdList) { + this.tenantIdList = tenantIdList; + } + } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java index c938f0593..64057ed30 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java @@ -14,4 +14,5 @@ public interface WxCouponMallMapper extends CommonMapper { List findList(WxCouponMall wxCouponMall); void updateStatus(WxCouponMall wxCouponMall); + void delteAllByProductId(WxCouponMall wxCouponMall); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java index 1e8480755..29eeda8af 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java @@ -22,7 +22,7 @@ public interface WxCouponMallService { PageInfo listAsPage(WxCouponMall record, Integer pageIndex, Integer pageSize); - List list(WxCouponMall wxCouponMall); + List list(WxCouponMall wxCouponMall,boolean queryMall); void finised(String tenantId,Long couponId,String mallTenantId); void unfinised(String tenantId, Long couponId,Integer couponType, String mallTenantId) throws Exception; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponMallServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponMallServiceImpl.java index 40d64553f..c7ecfc6ed 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponMallServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponMallServiceImpl.java @@ -29,10 +29,36 @@ public class WxCouponMallServiceImpl implements WxCouponMallService { TtCouponChannelPoiMapper ttCouponChannelPoiMapper; @Autowired WxCouponChannelMapper wxCouponChannelMapper; + @Autowired + WxMallMapper wxMallMapper; @Override - public List list(WxCouponMall wxCouponMall){ - return wxCouponMallMapper.findList(wxCouponMall); + public List list(WxCouponMall wxCouponMall,boolean queryMall){ + List list = wxCouponMallMapper.findList(wxCouponMall); + if (queryMall) { + if (null != list && list.size() > 0 ) { + List mallTenantList = new ArrayList();; + for (int i = 0 ;i mallList = wxMallMapper.findList(mallq); + if (null != mallList && mallList.size() > 0) { + Map mallMap = new HashMap(); + for (WxMall m:mallList) { + mallMap.put(m.getTenantId(), m); + } + for (WxCouponMall cm : list) { + cm.setMall(mallMap.get(cm.getMallTenantId())); + } + } + } + } + return list; } @Override 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 5c51f3703..4fed358cc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -147,6 +147,9 @@ public class WxCouponServiceImpl implements WxCouponService { @Autowired PayServiceFactory payServiceFactory; + + @Autowired + WxCouponMallMapper wxCouponMallMapper; @Override public ResultData list(TenantEntity tenantEntity,WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { @@ -520,9 +523,12 @@ public class WxCouponServiceImpl implements WxCouponService { return new ResultData(Result.ERROR,e.getMessage()); } merchantParamList = JSONObject.parseArray(record.getMerchantParams(), JSONObject.class); + }else if (record.checkCreateWithMalls()) { + String[] mallTenantIds = record.getMallTenantIds(); + if (null == mallTenantIds || mallTenantIds.length <= 0 ) { + return new ResultData(Result.ERROR,"请选择商场"); + } } - - final IdWorker idWorker = IdWorker.get(); if (record.getId() == null) { @@ -541,6 +547,17 @@ public class WxCouponServiceImpl implements WxCouponService { cm.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); wxCouponMerchantMapper.insert(cm); }); + }else if (record.checkCreateWithMalls()) { + for (String mt : record.getMallTenantIds()) { + WxCouponMall mall = new WxCouponMall(); + mall.updateTenantInfo(record); + mall.setMallTenantId(mt); + mall.setProductId(record.getId()); + mall.setCreateDate(new Date()); + mall.setUpdateDate(new Date()); + mall.setStatus(EnumCouponMallStatus.UNFINISED.getCode()); + wxCouponMallMapper.insert(mall); + } } if (record.getPasswordSupport() != null && record.getPasswordSupport().equals(EnumCouponPasswordSupport.SUPPORTED.getCode())) { @@ -571,6 +588,21 @@ public class WxCouponServiceImpl implements WxCouponService { } if (record.checkCreateWithMerchants()) { updateCouponMerchants(record,merchantParamList,idWorker); + }else if (record.checkCreateWithMalls()) { + WxCouponMall couponMall = new WxCouponMall(); + couponMall.updateTenantInfo(record); + couponMall.setProductId(record.getId()); + wxCouponMallMapper.delteAllByProductId(couponMall); + for (String mt : record.getMallTenantIds()) { + WxCouponMall mall = new WxCouponMall(); + mall.updateTenantInfo(record); + mall.setMallTenantId(mt); + mall.setProductId(record.getId()); + mall.setCreateDate(new Date()); + mall.setUpdateDate(new Date()); + mall.setStatus(EnumCouponMallStatus.UNFINISED.getCode()); + wxCouponMallMapper.insert(mall); + } } record.setUpdateDate(new Date()); diff --git a/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml index 8a5836da4..7ca9d1158 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml @@ -82,4 +82,7 @@ and `tenant_id` = #{tenantId} and `mall_tenant_id` = #{mallTenantId} + + delete from wx_coupon_mall where `product_id` = #{productId} and `tenant_id` = #{tenantId} + diff --git a/mallinkService/src/main/resources/mapper/WxMallMapper.xml b/mallinkService/src/main/resources/mapper/WxMallMapper.xml index 60eaab8e0..6073cefb3 100644 --- a/mallinkService/src/main/resources/mapper/WxMallMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMallMapper.xml @@ -145,6 +145,13 @@ and `group_support` = #{groupSupport} + + and tenant_id in + + #{tIdItem} + + + and id in