From a1243df87bd548b2ddb81d828b0eca9d9bb24374 Mon Sep 17 00:00:00 2001 From: xhxu Date: Fri, 11 Nov 2022 17:31:20 +0800 Subject: [PATCH 001/144] //good --- .../iformall/enums/EnumCouponChannelType.java | 8 ++ .../impl/TtCouponGoodsServiceImpl.java | 92 +++++++++---------- 2 files changed, 49 insertions(+), 51 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCouponChannelType.java b/mallinkService/src/main/java/com/iformall/enums/EnumCouponChannelType.java index 37868742c..34bd5e737 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCouponChannelType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCouponChannelType.java @@ -5,6 +5,14 @@ package com.iformall.enums; */ public enum EnumCouponChannelType { + /** + * //投放到抖音渠道。 + * //初次投放,只为展示审核,不让购买。 + * //当券投放到其他渠道时,此渠道自动上架,才可购买。 + * //其他所有渠道下架后,该渠道自动下架。 + */ + COUPON_CHANNEL_ID_DOUYIN(0,"抖音"), + COUPON_CHANNEL_ID_LIST(1, "列表"), COUPON_CHANNEL_ID_TIMED(2, "限时抢购"), COUPON_CHANNEL_ID_CAMPAIN(3, "幻灯片"), // banner图, 宣传页,轮播图,走马灯 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java index d58b69af3..96c0924d3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java @@ -163,28 +163,6 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } //获取门店,确保所有门店匹配poi -// List couponMerchantList = wxCouponService.getCouponMerchantList(coupon, coupon.getId()); -// if(couponMerchantList.size() > 0){ -// List isAdminList = couponMerchantList.stream().filter(m -> EnumYesOrNo.YES.getCode().equals(m.getIsAdmin())).collect(Collectors.toList()); -// if(isAdminList != null && isAdminList.size() == 1){ -// couponMerchantList = isAdminList; -// }else if(isAdminList != null && isAdminList.size() > 1){ -// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"数据异常,存在多个商管商户"); -// } -// } -// List poiList = new ArrayList(); -// for (WxMerchantVo mvo:couponMerchantList){ -// if(StringUtils.isNotBlank(mvo.getSupplierExtId())){ -// Product.PoiStruct poiStruct = new Product.PoiStruct(); -// poiStruct.setSupplierExtId(mvo.getSupplierExtId()); -// poiList.add(poiStruct); -// } -// } -// if(poiList.isEmpty()){ -// return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),"未找到poi门店"); -// } - - List merchantIds = wxCouponMerchantMapper.findMerchantIdListByProduct(coupon.getId(), coupon.getTenantId()); TtMerchantPoi poiQ = new TtMerchantPoi(); poiQ.updateTenantInfo(coupon); @@ -209,39 +187,51 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { merchantQ.setSortColumns(BaseEntity.SortField.MerchantAdmin); WxMerchant merchant = wxMerchantMapper.findIdNameList(merchantQ).get(0); - //查询是否有上架的 + //投放到抖音渠道,获取详情地址,以做审核 WxCouponChannel wxCouponChannelQuery = new WxCouponChannel(); wxCouponChannelQuery.updateTenantInfo(coupon); wxCouponChannelQuery.setCouponId(coupon.getId()); - wxCouponChannelQuery.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN_LIST.getCode()); - wxCouponChannelQuery.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); + wxCouponChannelQuery.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN.getCode()); List wxCouponChannels = wxCouponChannelMapper.findList(wxCouponChannelQuery); - if(wxCouponChannels.size() > 0){ - return new ResultData(ErrorCode.COUPON_CHANNEL_IS_EXISTED); - } - //预审核的作废掉 重新投放 - wxCouponChannelQuery.setStatus(EnumCouponChannelStatus.STATUS_BEFORE.getCode()); - WxCouponChannel updCouponChannel = new WxCouponChannel(); - updCouponChannel.setStatus(EnumCouponChannelStatus.STATUS_AFTER.getCode()); - updCouponChannel.setUpdateDate(new Date()); - wxCouponChannelMapper.update(updCouponChannel,new QueryWrapper<>(wxCouponChannelQuery)); - //投放预审核 - WxCouponChannel wxCouponChannel = new WxCouponChannel(); - final IdWorker idWorker = IdWorker.get(); - wxCouponChannel.setId(idWorker.nextId()); - wxCouponChannel.updateTenantInfo(coupon); - wxCouponChannel.setShowBeginTime(new Date()); - wxCouponChannel.setBeginTime(new Date()); - wxCouponChannel.setEndTime(coupon.getValidEndDate()); - wxCouponChannel.setStatus(EnumCouponChannelStatus.STATUS_BEFORE.getCode()); - wxCouponChannel.setCouponId(coupon.getId()); - wxCouponChannel.setMakeMerchantId(coupon.getMakeMerchantId()); - wxCouponChannel.setType(coupon.getType()); - wxCouponChannel.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN_LIST.getCode()); - wxCouponChannel.setBusiness(coupon.getBusiness()); - wxCouponChannel.setSubBusiness(coupon.getSubBusiness()); - wxCouponChannel.setTitle(coupon.getTitle()); - wxCouponChannelMapper.insert(wxCouponChannel); + WxCouponChannel wxCouponChannel = null; + Date now = new Date(); + if(wxCouponChannels == null || wxCouponChannels.isEmpty()){ + wxCouponChannel = new WxCouponChannel(); + final IdWorker idWorker = IdWorker.get(); + wxCouponChannel.setId(idWorker.nextId()); + wxCouponChannel.updateTenantInfo(coupon); + wxCouponChannel.setShowBeginTime(now); + wxCouponChannel.setBeginTime(now); + wxCouponChannel.setEndTime(coupon.getValidEndDate()); + wxCouponChannel.setStatus(EnumCouponChannelStatus.STATUS_BEFORE.getCode()); + wxCouponChannel.setCouponId(coupon.getId()); + wxCouponChannel.setMakeMerchantId(coupon.getMakeMerchantId()); + wxCouponChannel.setType(coupon.getType()); + wxCouponChannel.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN.getCode()); + wxCouponChannel.setBusiness(coupon.getBusiness()); + wxCouponChannel.setSubBusiness(coupon.getSubBusiness()); + wxCouponChannel.setTitle(coupon.getTitle()); + wxCouponChannelMapper.insert(wxCouponChannel); + + }else if(wxCouponChannels.size() == 1){ + wxCouponChannel = wxCouponChannels.get(0); + wxCouponChannel.setShowBeginTime(now); + wxCouponChannel.setBeginTime(now); + wxCouponChannel.setEndTime(coupon.getValidEndDate()); + wxCouponChannel.setStatus(EnumCouponChannelStatus.STATUS_BEFORE.getCode()); + wxCouponChannel.setCouponId(coupon.getId()); + wxCouponChannel.setMakeMerchantId(coupon.getMakeMerchantId()); + wxCouponChannel.setType(coupon.getType()); + wxCouponChannel.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN.getCode()); + wxCouponChannel.setBusiness(coupon.getBusiness()); + wxCouponChannel.setSubBusiness(coupon.getSubBusiness()); + wxCouponChannel.setTitle(coupon.getTitle()); + wxCouponChannel.setUpdateDate(now); + wxCouponChannelMapper.updateById(wxCouponChannel); + + }else{ + return new ResultData(ErrorCode.COUPON_CHANNEL_IS_EXISTED.getCode(),"此券状态异常,请重新创建"); + } //提交审核 try { From 234850518f9da49a83ad137c7401e6192481cba4 Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 15 Nov 2022 10:11:08 +0800 Subject: [PATCH 002/144] //coupon --- .../controller/market/WxCouponController.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) 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 c4065cc9d..8d2d6e84f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -67,22 +67,22 @@ public class WxCouponController extends BaseController { @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) @SystemControllerLog(description = "券投放-列表") - public ResultData list(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize,Integer dataType,Boolean isList) { + public ResultData list(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize,Boolean isList) { logger.debug("[" + getIpAddr() + "] WxCouponController::list"); if (wxCoupon == null) wxCoupon = new WxCoupon(); - if(null != dataType && dataType == 1){ - wxCoupon.updateTenantInfo(getTenantInfo()); - }else{ - wxCoupon.updateTenantInfo(getTenantInfo()); - } + wxCoupon.updateTenantInfo(getTenantInfo()); + + //默认A端建券 if(null == wxCoupon.getSourceType()){ wxCoupon.setSourceType(EnumCouponSourceType.COUPONSource_Admin.getCode()); } + //排序处理 if(StringUtils.isNotBlank(wxCoupon.getSortColumn())){ String coryColumn = "c."+wxCoupon.getSortColumns(); wxCoupon.setSortColumns(coryColumn); wxCoupon.setSortColumn(null); } + if(wxCoupon.getTargetAd() != null ){ if(wxCoupon.getTargetAd() == EnumCouponChannelType.COUPON_CHANNEL_ID_TIMED.getCode() || wxCoupon.getTargetAd() == EnumCouponChannelType.COUPON_CHANNEL_ID_GAME.getCode()){ @@ -98,7 +98,8 @@ public class WxCouponController extends BaseController { } } - if(!(isList == null?false:isList) && wxCoupon.getSendType() == null){ + //isList true 查全部 / 否则 只查询主动领取和定向投放的。 + if(!(isList == null?false:isList)){ Integer[] sendTypeArray = { EnumCouponSendType.ACTIVE.getCode(), EnumCouponSendType.PASSIVE.getCode(),}; From aabe7ba2157af092f087b6424e0077c275e5343c Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Tue, 15 Nov 2022 14:14:55 +0800 Subject: [PATCH 003/144] add coupon type --- .../src/main/java/com/iformall/enums/EnumCouponType.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java b/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java index 7f6d64b8b..31102a9c5 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java @@ -28,7 +28,7 @@ public enum EnumCouponType { COUPON_CREDIT(50,"积分券"), COUPON_CREDIT_PARK(51,"积分停车券"), // COUPON_CREDIT_DOUYIN(55,"抖音积分券"), - + COUPON_PLAT(53,"平台券"), CARD_MULTIMCH(100, "消费卡"), ; From 26dd8365f69fde75f5b94f8733b4770d86892247 Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 15 Nov 2022 17:43:40 +0800 Subject: [PATCH 004/144] //coupon --- .../controller/market/WxCouponController.java | 15 --- .../java/com/iformall/domain/po/WxCoupon.java | 3 + .../iformall/enums/EnumCouponChannelType.java | 97 +++++++++++++++++++ .../com/iformall/enums/EnumCouponType.java | 24 ++++- .../service/impl/WxCouponServiceImpl.java | 79 +++++++++++++-- .../main/resources/mapper/WxCouponMapper.xml | 15 +-- 6 files changed, 196 insertions(+), 37 deletions(-) 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 8d2d6e84f..4e267c5bd 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -83,21 +83,6 @@ public class WxCouponController extends BaseController { wxCoupon.setSortColumn(null); } - if(wxCoupon.getTargetAd() != null ){ - if(wxCoupon.getTargetAd() == EnumCouponChannelType.COUPON_CHANNEL_ID_TIMED.getCode() - || wxCoupon.getTargetAd() == EnumCouponChannelType.COUPON_CHANNEL_ID_GAME.getCode()){ - Integer[] typeArray = { - EnumCouponType.COUPON_MANJIAN.getCode(), - EnumCouponType.COUPON_DAIJIN.getCode(), - EnumCouponType.COUPON_LIPIN.getCode(), - EnumCouponType.COUPON_TINGCHE.getCode(), - EnumCouponType.COUPON_MULTIMCH.getCode(), - EnumCouponType.COUPON_DOUYIN.getCode()}; - - wxCoupon.setTypes(Arrays.asList(typeArray)); - } - } - //isList true 查全部 / 否则 只查询主动领取和定向投放的。 if(!(isList == null?false:isList)){ Integer[] sendTypeArray = { 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 0e380a147..773cdb50c 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java @@ -42,6 +42,9 @@ public class WxCoupon extends TenantEntity { @TableField(exist = false) protected List notinTypes; + @TableField(exist = false) + protected Integer plat; + @TableField(exist = false) protected String channels; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCouponChannelType.java b/mallinkService/src/main/java/com/iformall/enums/EnumCouponChannelType.java index 34bd5e737..b319b82b2 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCouponChannelType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCouponChannelType.java @@ -1,5 +1,11 @@ package com.iformall.enums; +import com.iformall.common.ErrorCode; +import com.iformall.exception.MallinkException; + +import java.util.ArrayList; +import java.util.List; + /** * Created by Stormeye on 2018/08/09. */ @@ -10,9 +16,12 @@ public enum EnumCouponChannelType { * //初次投放,只为展示审核,不让购买。 * //当券投放到其他渠道时,此渠道自动上架,才可购买。 * //其他所有渠道下架后,该渠道自动下架。 + * + * //该渠道不做任何查询 */ COUPON_CHANNEL_ID_DOUYIN(0,"抖音"), + COUPON_CHANNEL_ID_LIST(1, "列表"), COUPON_CHANNEL_ID_TIMED(2, "限时抢购"), COUPON_CHANNEL_ID_CAMPAIN(3, "幻灯片"), // banner图, 宣传页,轮播图,走马灯 @@ -46,6 +55,41 @@ public enum EnumCouponChannelType { this.message = message; } + /** + * 微信平台的渠道 + */ + public static List getWeiXinType(){ + List typeList = new ArrayList<>(); + typeList.add(COUPON_CHANNEL_ID_LIST.getCode()); + typeList.add(COUPON_CHANNEL_ID_TIMED.getCode()); + typeList.add(COUPON_CHANNEL_ID_GAME.getCode()); + typeList.add(COUPON_CHANNEL_ID_CARD.getCode()); + typeList.add(COUPON_CHANNEL_ID_PRESS.getCode()); + typeList.add(COUPON_CHANNEL_ID_ORDER_GROUP.getCode()); + typeList.add(COUPON_CHANNEL_ID_CREDIT.getCode()); + typeList.add(COUPON_CHANNEL_ID_H5.getCode()); + typeList.add(COUPON_CHANNEL_ID_WXLIVE_LIST.getCode()); + return typeList; + } + + /** + * 抖音平台的渠道 + */ + public static List getDouYinType(){ + List typeList = new ArrayList<>(); + typeList.add(COUPON_CHANNEL_ID_DOUYIN_LIST.getCode()); + return typeList; + } + + public static EnumAppPlat getAppPlat(Integer code) { + if(getWeiXinType().contains(code)){ + return EnumAppPlat.WX; + }else if(getDouYinType().contains(code)){ + return EnumAppPlat.TOUTIAO; + } + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "券类型错误,未找到对应平台"); + } + public Integer getCode() { return code; } @@ -53,4 +97,57 @@ public enum EnumCouponChannelType { public String getMessage() { return message; } + + //根据渠道筛选券类型 + public static List getCouponTypeBy(Integer code){ + List codes = new ArrayList<>(); + if(COUPON_CHANNEL_ID_LIST.getCode().equals(code)){ + //微信 列表 渠道 + //满减,代金,礼品,停车,通用,预购商品,可配送商品,券礼包 + codes.add(EnumCouponType.COUPON_MANJIAN.getCode()); + codes.add(EnumCouponType.COUPON_DAIJIN.getCode()); + codes.add(EnumCouponType.COUPON_LIPIN.getCode()); + codes.add(EnumCouponType.COUPON_TINGCHE.getCode()); + codes.add(EnumCouponType.COUPON_MULTIMCH.getCode()); + codes.add(EnumCouponType.COUPON_PREORDER.getCode()); + codes.add(EnumCouponType.COUPON_DISTRIBUTION.getCode()); + codes.add(EnumCouponType.COUPON_GIFT.getCode()); + }else if(COUPON_CHANNEL_ID_TIMED.getCode().equals(code) + || COUPON_CHANNEL_ID_GAME.getCode().equals(code)){ + //微信 限时抢购,游戏 渠道 + //可用 满减,代金,礼品,停车,通用 + codes.add(EnumCouponType.COUPON_MANJIAN.getCode()); + codes.add(EnumCouponType.COUPON_DAIJIN.getCode()); + codes.add(EnumCouponType.COUPON_LIPIN.getCode()); + codes.add(EnumCouponType.COUPON_TINGCHE.getCode()); + codes.add(EnumCouponType.COUPON_MULTIMCH.getCode()); + }else if(COUPON_CHANNEL_ID_CARD.getCode().equals(code)){ + //微信 卡频道 + //可用 消费卡 + codes.add(EnumCouponType.CARD_MULTIMCH.getCode()); + }else if(COUPON_CHANNEL_ID_PRESS.getCode().equals(code)){ + //微信 砍价频道 + //可用 砍价券 + codes.add(EnumCouponType.COUPON_PRESS.getCode()); + }else if(COUPON_CHANNEL_ID_ORDER_GROUP.getCode().equals(code)){ + //微信 拼团频道 + //可用 拼团券 + codes.add(EnumCouponType.COUPON_GROUP.getCode()); + }else if(COUPON_CHANNEL_ID_CAMPAIN.getCode().equals(code) + || COUPON_CHANNEL_ID_TOPIC.getCode().equals(code)){ + //宣传页 专题 (不分平台)查所有券 + //平台从其他地方区分 + codes.addAll(EnumCouponType.getAllCodes()); + }else if(COUPON_CHANNEL_ID_CREDIT.getCode().equals(code)){ + //微信 积分商城 + codes.add(EnumCouponType.COUPON_CREDIT.getCode()); + codes.add(EnumCouponType.COUPON_CREDIT_PARK.getCode()); + }else if(COUPON_CHANNEL_ID_DOUYIN_LIST.getCode().equals(code)){ + //抖音 列表 + codes.add(EnumCouponType.COUPON_DOUYIN.getCode()); + codes.add(EnumCouponType.COUPON_DOUYIN_PLAT.getCode()); + codes.add(EnumCouponType.COUPON_DOUYIN_BRAND.getCode()); + } + return codes; + } } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java b/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java index 7f6d64b8b..a714ff03c 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java @@ -29,6 +29,9 @@ public enum EnumCouponType { COUPON_CREDIT_PARK(51,"积分停车券"), // COUPON_CREDIT_DOUYIN(55,"抖音积分券"), + COUPON_DOUYIN_PLAT(67, "抖音集团平台券"), + COUPON_DOUYIN_BRAND(68, "抖音集团品牌券"), + CARD_MULTIMCH(100, "消费卡"), ; @@ -40,6 +43,14 @@ public enum EnumCouponType { } return null; } + + public static List getAllCodes(){ + List codes = new ArrayList<>(); + for (EnumCouponType value : values()) { + codes.add(value.getCode()); + } + return codes; + } public static boolean mustHasMerchant(Integer code) { if (null == code) { @@ -75,6 +86,8 @@ public enum EnumCouponType { List typeList = new ArrayList<>(); typeList.add(COUPON_DOUYIN.getCode()); // typeList.add(COUPON_CREDIT_DOUYIN.getCode()); + typeList.add(COUPON_DOUYIN_PLAT.getCode()); + typeList.add(COUPON_DOUYIN_BRAND.getCode()); return typeList; } @@ -101,7 +114,7 @@ public enum EnumCouponType { } /** - * 有价 并且永不分账的券类型 + * 微信 有价 并且永不分账的券类型 */ public static List getPlatType(){ List typeList = new ArrayList<>(); @@ -119,4 +132,13 @@ public enum EnumCouponType { throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "券类型错误,未找到对应平台"); } + public static List getTypeCode(Integer plat){ + if(EnumAppPlat.WX.getCode().equals(plat)){ + return getWeiXinType(); + }else if(EnumAppPlat.TOUTIAO.getCode().equals(plat)){ + return getDouYinType(); + } + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "券平台错误,未找到对应类型"); + } + } 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 1bd98f61c..a2c36b592 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -152,12 +152,7 @@ public class WxCouponServiceImpl implements WxCouponService { public ResultData list(TenantEntity tenantEntity,WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { if (null == wxCoupon) wxCoupon = new WxCoupon(); wxCoupon.updateTenantInfo(tenantEntity); - if(StringUtils.isBlank(wxCoupon.getSortColumns())){ - wxCoupon.setSortColumns(BaseEntity.SortField.CCreateDate_DESC, BaseEntity.SortField.CId_DESC); - } - PageInfo page = null; - if (wxCoupon.getStatus() != null && wxCoupon.getStatus() == -1) - wxCoupon.setStatus(null); + handCouponList(wxCoupon); //除了a端列表 其他默认需要过滤 if(!EnumFilterPut.NO.equals(wxCoupon.getFilterCanPut())) { @@ -169,8 +164,8 @@ public class WxCouponServiceImpl implements WxCouponService { wxCoupon.setPressModelId(couponModel.getPressModelId()); } } - - page = listAsPage(wxCoupon, pageNum, pageSize); + + PageInfo page = listAsPage(wxCoupon, pageNum, pageSize); List wxCouponList = page.getList(); @@ -212,6 +207,74 @@ public class WxCouponServiceImpl implements WxCouponService { return new ResultData(page); } + + private void handCouponList(WxCoupon wxCoupon){ + //默认排序 + if(StringUtils.isBlank(wxCoupon.getSortColumns())){ + wxCoupon.setSortColumns(BaseEntity.SortField.CCreateDate_DESC, BaseEntity.SortField.CId_DESC); + } + if (wxCoupon.getStatus() != null && wxCoupon.getStatus() == -1){ + wxCoupon.setStatus(null); + } + //门店处理 + if(wxCoupon.getMerchantId() != null){ + List merchantIds = new ArrayList(); + merchantIds.add(wxCoupon.getMerchantId()); + List mcids = wxCouponMerchantMapper.findMerchantProductIds(wxCoupon.getTenantId(), merchantIds,0); + if(mcids == null || mcids.isEmpty()){ + wxCoupon.setId(-999L); + return; + }else{ + wxCoupon.setIds(mcids); + } + } + + //券类型处理 + if(wxCoupon.getType() != null){ + if(wxCoupon.getPlat() == null){ + wxCoupon.setPlat(EnumCouponType.getAppPlat(wxCoupon.getType()).getCode()); + } + }else{ + List types = wxCoupon.getTypes(); + if(wxCoupon.getTargetAd() != null){ + if(wxCoupon.getPlat() == null){ + wxCoupon.setPlat(EnumCouponChannelType.getAppPlat(wxCoupon.getTargetAd()).getCode()); + } + List couponTypes = EnumCouponChannelType.getCouponTypeBy(wxCoupon.getTargetAd()); + if(couponTypes.isEmpty()){ + wxCoupon.setId(-999L); + return; + }else{ + if(types == null || types.isEmpty()){ + types = couponTypes; + }else{ + types.retainAll(couponTypes); + if(types.isEmpty()){ + wxCoupon.setId(-999L); + return; + } + } + } + } + if(wxCoupon.getPlat() == null){ + //默认查微信平台 + wxCoupon.setPlat(EnumAppPlat.WX.getCode()); + } + List typeCode = EnumCouponType.getTypeCode(wxCoupon.getPlat()); + if(types == null || types.isEmpty()){ + types = typeCode; + }else{ + types.retainAll(typeCode); + if(types.isEmpty()){ + wxCoupon.setId(-999L); + return; + } + } + wxCoupon.setTypes(types); + } + + } + @Override public List list(WxCoupon wxCoupon){ diff --git a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml index 8298470e6..1ce966648 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml @@ -115,7 +115,7 @@ - distinct c.`id`,c.`tenant_id`,c.`parent_tenant_id`,c.`make_merchant_id`,c.`type`,c.`cover_img`,c.`cover_picture`,c.`detail_picture`, + c.`id`,c.`tenant_id`,c.`parent_tenant_id`,c.`make_merchant_id`,c.`type`,c.`cover_img`,c.`cover_picture`,c.`detail_picture`, c.`title`,c.`sub_title`,c.`item_group`,c.`sale_price`,c.`freight_price`,c.`use_price`,c.`use_limit_rule`,c.`use_limit_quantity`,c.`send_type`, c.`valid_type`,c.`valid_start_date`,c.`valid_end_date`,c.pick_start_date,c.pick_end_date,c.`valid_days`,c.`detail`,c.`price`,c.tail_price,c.orig_price,c.`unit`,c.`remain_inventory`,c.`inventory`, c.`remark`,c.`status`,c.`create_date`,c.`update_date`,c.`business`,c.`sub_business`,c.`support_transfer`,c.`subsidy_num`,c.`subsidy_type`, @@ -495,11 +495,6 @@ and c.`parent_tenant_id` = #{parentTenantId} - - - and c.`type` in (1,2,3,4,5,6,10,11,12,66) - - and c.`type` = #{type} @@ -647,10 +642,6 @@ and c.`merchant_type` = #{merchantType} - - and cm.`merchant_id` = #{merchantId} - - and JSON_CONTAINS(c.gift_list,json_array(#{giftList})) @@ -683,7 +674,6 @@ select from wx_coupon c - left join wx_coupon_merchant cm on c.id = cm.product_id and cm.status = 0 @@ -693,9 +683,8 @@ From f03507461a3bcf395d12cc7ae17df23e03eb146f Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 15 Nov 2022 19:57:36 +0800 Subject: [PATCH 005/144] //coupon --- .../java/com/iformall/domain/po/WxCoupon.java | 20 +++++++ .../mapper/WxCouponChannelMapper.java | 6 +- .../impl/TtCouponGoodsServiceImpl.java | 2 +- .../impl/WxCouponChannelServiceImpl.java | 54 +++++++++++++++++ .../service/impl/WxCouponServiceImpl.java | 4 ++ .../mapper/WxCouponChannelMapper.xml | 29 +++++++++ .../main/resources/mapper/WxCouponMapper.xml | 59 ++++++++++++++++--- 7 files changed, 164 insertions(+), 10 deletions(-) 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 773cdb50c..050f2f899 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java @@ -366,6 +366,26 @@ public class WxCoupon extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "审批流参数", name = "flowParams") private Map flowParams; + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="spuId",name="spuId")//goodsId + private String spuId; + + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="状态:0-审核中,1-上架,2-下架,3-审核拒绝 4-审核通过",name="poiStatus") + private Integer poiStatus; + + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="描述",name="statusDesc") + private String statusDesc; + + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="状态:0-审核中,1-上架,2-下架,3-审核拒绝 4-审核通过",name="lastStatus") + private Integer lastStatus; + + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="描述",name="lastStatusDesc") + private String lastStatusDesc; + @io.swagger.annotations.ApiModelProperty(value = "是否删除1是0否", name = "isDel") private Integer isDel; diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponChannelMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponChannelMapper.java index 7a6ab3547..a32c0b20b 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponChannelMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponChannelMapper.java @@ -24,7 +24,7 @@ public interface WxCouponChannelMapper extends CommonMapper ttChannelList(TtCouponChannelVo ttChannelVo); Long findCouponIdById(@Param("id")Long id,@Param("tenantId")String tenantId); + + int updateStatusByTargetAd(WxCouponChannel updCC); + + int selectCountExclude(WxCouponChannel ccQ); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java index e89e2db42..71c1bfc5b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java @@ -379,7 +379,7 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { WxCouponChannel wxCouponChannelQuery = new WxCouponChannel(); wxCouponChannelQuery.updateTenantInfo(wxCoupon); wxCouponChannelQuery.setCouponId(wxCoupon.getId()); - wxCouponChannelQuery.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN_LIST.getCode()); +// wxCouponChannelQuery.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN_LIST.getCode()); wxCouponChannelQuery.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); List wxCouponChannels = wxCouponChannelMapper.findList(wxCouponChannelQuery); if(wxCouponChannels.size() > 0){ 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 267d08bf5..6010053f0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -153,6 +153,16 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { if (list != null && list.size() > 0) { return new ResultData(ErrorCode.COUPON_CHANNEL_IS_EXISTED); } + + if(EnumCouponType.getDouYinType().contains(orignal.getType())){ + TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(wxCoupon.getTenantId(),wxCoupon.getId()); + if(ttCouponChannelPoi == null || !EnumSpuSyncStatus.sync_audit_pass.getCode().equals(ttCouponChannelPoi.getLastStatus())){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该商品未提交审核或审核未通过"); + } + //上架该券的审核渠道 + updateOnlineDouyin(orignal,orignal.getCouponId()); + } + } } Long couponId = null; @@ -169,6 +179,10 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { //浮层下架 wxFloatingLayerMapper.updateStatus(orignal.getCouponId()); + if(EnumCouponType.getDouYinType().contains(orignal.getType())){ + //下架该券的审核渠道(如所有渠道都已下线) + updateTakeOffDouyin(orignal); + } } } record.setUpdateDate(new Date()); @@ -190,6 +204,45 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { return new ResultData(); } + /** + * 前置 该券已审核通过 + * //上架该券的审核渠道 + * @param tenantEntity + * @param couponId + */ + public void updateOnlineDouyin(TenantEntity tenantEntity,Long couponId){ + WxCouponChannel updCC = new WxCouponChannel(); + updCC.updateTenantInfo(tenantEntity); + updCC.setCouponId(couponId); + updCC.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN.getCode()); + updCC.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); + updCC.setUpdateDate(new Date()); + wxCouponChannelMapper.updateStatusByTargetAd(updCC); + } + + /** + * //下架该券的审核渠道(如所有其他渠道都已下线) + * @param couponChannel + */ + public void updateTakeOffDouyin(WxCouponChannel couponChannel){ + WxCouponChannel ccQ = new WxCouponChannel(); + ccQ.updateTenantInfo(couponChannel); + ccQ.setCouponId(couponChannel.getCouponId()); + ccQ.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); + //Exclude + ccQ.setId(couponChannel.getId()); + ccQ.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN.getCode()); + if(wxCouponChannelMapper.selectCountExclude(ccQ) == 0){ + WxCouponChannel updCC = new WxCouponChannel(); + updCC.updateTenantInfo(couponChannel); + updCC.setCouponId(couponChannel.getCouponId()); + updCC.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN.getCode()); + updCC.setStatus(EnumCouponChannelStatus.STATUS_TAKE_OFFF.getCode()); + updCC.setUpdateDate(new Date()); + wxCouponChannelMapper.updateStatusByTargetAd(updCC); + } + } + @Override public void spuStatusSyncByCoupon(TenantEntity tenantEntity, Long couponId) { FmInsideProductPushMsg productPush = new FmInsideProductPushMsg(); @@ -646,6 +699,7 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { wxCouponChannel.setBusiness(wxCoupon.getBusiness()); wxCouponChannel.setSubBusiness(wxCoupon.getSubBusiness()); wxCouponChannel.setTitle(wxCoupon.getTitle()); + wxCouponChannel.setTtSpuId(wxCoupon.getGoodsId()); wxCouponChannel.setChannelPrice(channelPrice); wxCouponChannel.setChannelStock(channelStock); ResultData resultData = saveOrUpdate(wxCouponChannel); 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 a2c36b592..4a53c384a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -240,6 +240,10 @@ public class WxCouponServiceImpl implements WxCouponService { if(wxCoupon.getPlat() == null){ wxCoupon.setPlat(EnumCouponChannelType.getAppPlat(wxCoupon.getTargetAd()).getCode()); } + if(EnumAppPlat.TOUTIAO.getCode().equals(wxCoupon.getPlat())){ + //渠道查询时只查询审核通过的 + wxCoupon.setLastStatus(EnumSpuSyncStatus.sync_audit_pass.getCode()); + } List couponTypes = EnumCouponChannelType.getCouponTypeBy(wxCoupon.getTargetAd()); if(couponTypes.isEmpty()){ wxCoupon.setId(-999L); diff --git a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml index 884f1810d..19e885475 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml @@ -535,4 +535,33 @@ and id = #{id} + + update wx_coupon_channel + set status=#{status}, update_date=#{updateDate} + where status != #{status} + and coupon_id = #{couponId} + and target_ad = #{targetAd} + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + + + + diff --git a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml index 1ce966648..9e3af5585 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml @@ -60,6 +60,12 @@ + + + + + + @@ -476,13 +482,6 @@ - where c.is_del = 0 - - and 0 = (select count(*) from wx_coupon_channel cc - where c.`id` = cc.coupon_id - and cc.status = 0 - and cc.target_ad = #{targetAd}) - and c.`id` = #{id} @@ -646,6 +645,13 @@ and JSON_CONTAINS(c.gift_list,json_array(#{giftList})) + + and 0 = (select count(*) from wx_coupon_channel cc + where c.`id` = cc.coupon_id + and cc.status = 0 + and cc.target_ad = #{targetAd}) + + and c.id in @@ -667,14 +673,34 @@ - order by ${sortColumns} From 8482951210f2d7f2cd5c03cd88bb18b241dc4f38 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 16 Nov 2022 17:31:27 +0800 Subject: [PATCH 006/144] //merchant --- .../migration/V2022111600001__add_mall_permission.sql | 4 ++++ .../java/com/iformall/service/WxMerchantService.java | 8 ++++++++ .../iformall/service/impl/WxMerchantServiceImpl.java | 10 ++++++++++ 3 files changed, 22 insertions(+) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V2022111600001__add_mall_permission.sql diff --git a/mallinkAdmin/src/main/resources/db/migration/V2022111600001__add_mall_permission.sql b/mallinkAdmin/src/main/resources/db/migration/V2022111600001__add_mall_permission.sql new file mode 100644 index 000000000..116a0096b --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V2022111600001__add_mall_permission.sql @@ -0,0 +1,4 @@ +INSERT INTO `mallink`.`mall_permission`(`id`, `name`, `parent_id`, `available`, `permission`, `resource_type`, `module_color`, `module_color_num`, `url`, `icon`, `version_type`, `sort`) VALUES (648, '抖音平台券', 602, 'Y', NULL, 1, NULL, NULL, 'douyinPlatCoupon', NULL, 0, 648); +INSERT INTO `mallink`.`mall_permission`(`id`, `name`, `parent_id`, `available`, `permission`, `resource_type`, `module_color`, `module_color_num`, `url`, `icon`, `version_type`, `sort`) VALUES (649, '抖音品牌券', 602, 'Y', NULL, 1, NULL, NULL, 'douyinBrandCoupon', NULL, 0, 649); + +INSERT INTO `mallink`.`mall_sale_type`(`id`, `name`, `type`, `period`, `menus`) VALUES (101, '抖音集团版', 101, 12, '[1, 2, 4, 5, 6, 50, 105, 110, 201, 205, 202, 211, 212, 221, 222, 223, 224, 251, 409, 410, 411, 416, 500, 502, 504, 505, 506, 507, 511, 512, 521, 522, 523, 591, 592, 595, 601, 602, 605, 610, 615, 622, 648, 649, 676, 711, 901, 902, 904, 907, 61501, 61502]'); diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java index 4592d2fab..719d6702f 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java @@ -95,6 +95,14 @@ public interface WxMerchantService { */ List findList(WxMerchant record); + /** + * 根据商管商户 + * + * @param tenantEntity + * @return + */ + List findAdminList(TenantEntity tenantEntity); + /** * 查询商户列表 * @param tenantEntity diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index c8e3533ed..2ea1bc34f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -275,6 +275,16 @@ public class WxMerchantServiceImpl implements WxMerchantService { return wxMerchantMapper.findList(record); } + @Override + public List findAdminList(TenantEntity tenantEntity) { + WxMerchant wxMerchant = new WxMerchant(); + wxMerchant.updateTenantInfo(tenantEntity); + wxMerchant.setStatus(EnumMerchantStatus.VALID.getCode()); + wxMerchant.setIsAdmin(EnumMerchantAdmin.PUBLIC_ADMIN.getCode()); + List list = findList(wxMerchant); + return list; + } + @Override public List findList(TenantEntity tenantEntity) { WxMerchant wxMerchant = new WxMerchant(); From 0d035e9b796269ca503da508fc8215ea9ae462e5 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 16 Nov 2022 19:10:27 +0800 Subject: [PATCH 007/144] fix plat coupon --- .../controller/market/WxCouponController.java | 54 +++++++ .../migration/V2022111500001__plat_coupon.sql | 113 +++++++++++++ .../config/BaseMyBatisConfiguration.java | 7 + .../com/iformall/domain/po/WxCouponMall.java | 33 ++++ .../iformall/mapper/WxCouponMallMapper.java | 16 ++ .../iformall/service/WxCouponMallService.java | 27 ++++ .../com/iformall/service/WxCouponService.java | 2 + .../service/impl/WxCouponMallServiceImpl.java | 31 ++++ .../service/impl/WxCouponServiceImpl.java | 148 ++++++++++-------- .../resources/mapper/WxCouponMallMapper.xml | 87 ++++++++++ 10 files changed, 456 insertions(+), 62 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V2022111500001__plat_coupon.sql create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxCouponMall.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/WxCouponMallServiceImpl.java create mode 100644 mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml 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 8d2d6e84f..be1fd820b 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -55,6 +55,8 @@ public class WxCouponController extends BaseController { @Autowired private WxMallService wxMallService; @Autowired + private WxCouponMallService wxCouponMallService; + @Autowired RedisLock redisLock; @Autowired @@ -573,5 +575,57 @@ public class WxCouponController extends BaseController { CouponCacheUtils.removeCouponCache(redisTemplate, wxCoupon.getId()); return result; } + + @ApiOperation("集团查询:查询平台券商场列表") + @GetMapping("/getPlatMallList") + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) + public ResultData getPlatMallList(@RequestParam Long id) { + WxCouponMall wxCouponMall = new WxCouponMall(); + wxCouponMall.updateTenantInfo(getTenantInfo()); + wxCouponMall.setProductId(id); + return new ResultData(wxCouponMallService.list(wxCouponMall)); + } + + @ApiOperation("商场查询:平台券列表") + @GetMapping("/couponMalls") + @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"); + } + WxCouponMall wxCouponMall = new WxCouponMall(); + TenantEntity tenantEntity = getTenantInfo(); + if (null == tenantEntity.getParentTenantId()) { + wxCouponMall.updateTenantInfo(tenantEntity); + }else { + wxCouponMall.setTenantId(tenantEntity.getParentTenantId()); + } + //一个商场,每个平台券只有一条记录 + wxCouponMall.setMallTenantId(tenantEntity.getTenantId()); + wxCouponMall.setProductIds(Arrays.asList(ids)); + List mallList= wxCouponMallService.list(wxCouponMall); + if (null == mallList || mallList.size() <= 0 ) { + return new ResultData(); + } + 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("商场设置平台券商户") + @PostMapping("/setMerchants") + public ResultData setMerchant(@RequestBody WxCoupon wxCoupon) { + wxCoupon.updateTenantInfo(getTenantInfo()); + try { + wxCouponService.setCouponMerchants(wxCoupon); + } catch (Exception e) { + return new ResultData(Result.ERROR,e.getMessage()); + } + return new ResultData(); + } } diff --git a/mallinkAdmin/src/main/resources/db/migration/V2022111500001__plat_coupon.sql b/mallinkAdmin/src/main/resources/db/migration/V2022111500001__plat_coupon.sql new file mode 100644 index 000000000..24fb769f7 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V2022111500001__plat_coupon.sql @@ -0,0 +1,113 @@ +CREATE TABLE `wx_coupon_mall` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(5) NOT NULL, + `parent_tenant_id` varchar(5) DEFAULT NULL, + `product_id` bigint(20) NOT NULL, + `mall_tenant_id` varchar(5) NOT NULL, + `create_date` datetime DEFAULT NULL, + `update_date` datetime DEFAULT NULL, + `status` int(1) NOT NULL DEFAULT '0' COMMENT '0-未就绪,1-已就绪', + PRIMARY KEY (`id`), + UNIQUE KEY `UNIQUE_P_M` (`product_id`,`mall_tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +create table wx_coupon_mall_0 like wx_coupon_mall; +create table wx_coupon_mall_1 like wx_coupon_mall; +create table wx_coupon_mall_2 like wx_coupon_mall; +create table wx_coupon_mall_3 like wx_coupon_mall; +create table wx_coupon_mall_4 like wx_coupon_mall; +create table wx_coupon_mall_5 like wx_coupon_mall; +create table wx_coupon_mall_6 like wx_coupon_mall; +create table wx_coupon_mall_7 like wx_coupon_mall; +create table wx_coupon_mall_8 like wx_coupon_mall; +create table wx_coupon_mall_9 like wx_coupon_mall; +create table wx_coupon_mall_10 like wx_coupon_mall; +create table wx_coupon_mall_11 like wx_coupon_mall; +create table wx_coupon_mall_12 like wx_coupon_mall; +create table wx_coupon_mall_13 like wx_coupon_mall; +create table wx_coupon_mall_14 like wx_coupon_mall; +create table wx_coupon_mall_15 like wx_coupon_mall; +create table wx_coupon_mall_16 like wx_coupon_mall; +create table wx_coupon_mall_17 like wx_coupon_mall; +create table wx_coupon_mall_18 like wx_coupon_mall; +create table wx_coupon_mall_19 like wx_coupon_mall; +create table wx_coupon_mall_20 like wx_coupon_mall; +create table wx_coupon_mall_21 like wx_coupon_mall; +create table wx_coupon_mall_22 like wx_coupon_mall; +create table wx_coupon_mall_23 like wx_coupon_mall; +create table wx_coupon_mall_24 like wx_coupon_mall; +create table wx_coupon_mall_25 like wx_coupon_mall; +create table wx_coupon_mall_26 like wx_coupon_mall; +create table wx_coupon_mall_27 like wx_coupon_mall; +create table wx_coupon_mall_28 like wx_coupon_mall; +create table wx_coupon_mall_29 like wx_coupon_mall; +create table wx_coupon_mall_30 like wx_coupon_mall; +create table wx_coupon_mall_31 like wx_coupon_mall; +create table wx_coupon_mall_32 like wx_coupon_mall; +create table wx_coupon_mall_33 like wx_coupon_mall; +create table wx_coupon_mall_34 like wx_coupon_mall; +create table wx_coupon_mall_35 like wx_coupon_mall; +create table wx_coupon_mall_36 like wx_coupon_mall; +create table wx_coupon_mall_37 like wx_coupon_mall; +create table wx_coupon_mall_38 like wx_coupon_mall; +create table wx_coupon_mall_39 like wx_coupon_mall; +create table wx_coupon_mall_40 like wx_coupon_mall; +create table wx_coupon_mall_41 like wx_coupon_mall; +create table wx_coupon_mall_42 like wx_coupon_mall; +create table wx_coupon_mall_43 like wx_coupon_mall; +create table wx_coupon_mall_44 like wx_coupon_mall; +create table wx_coupon_mall_45 like wx_coupon_mall; +create table wx_coupon_mall_46 like wx_coupon_mall; +create table wx_coupon_mall_47 like wx_coupon_mall; +create table wx_coupon_mall_48 like wx_coupon_mall; +create table wx_coupon_mall_49 like wx_coupon_mall; +create table wx_coupon_mall_50 like wx_coupon_mall; +create table wx_coupon_mall_51 like wx_coupon_mall; +create table wx_coupon_mall_52 like wx_coupon_mall; +create table wx_coupon_mall_53 like wx_coupon_mall; +create table wx_coupon_mall_54 like wx_coupon_mall; +create table wx_coupon_mall_55 like wx_coupon_mall; +create table wx_coupon_mall_56 like wx_coupon_mall; +create table wx_coupon_mall_57 like wx_coupon_mall; +create table wx_coupon_mall_58 like wx_coupon_mall; +create table wx_coupon_mall_59 like wx_coupon_mall; +create table wx_coupon_mall_60 like wx_coupon_mall; +create table wx_coupon_mall_61 like wx_coupon_mall; +create table wx_coupon_mall_62 like wx_coupon_mall; +create table wx_coupon_mall_63 like wx_coupon_mall; +create table wx_coupon_mall_64 like wx_coupon_mall; +create table wx_coupon_mall_65 like wx_coupon_mall; +create table wx_coupon_mall_66 like wx_coupon_mall; +create table wx_coupon_mall_67 like wx_coupon_mall; +create table wx_coupon_mall_68 like wx_coupon_mall; +create table wx_coupon_mall_69 like wx_coupon_mall; +create table wx_coupon_mall_70 like wx_coupon_mall; +create table wx_coupon_mall_71 like wx_coupon_mall; +create table wx_coupon_mall_72 like wx_coupon_mall; +create table wx_coupon_mall_73 like wx_coupon_mall; +create table wx_coupon_mall_74 like wx_coupon_mall; +create table wx_coupon_mall_75 like wx_coupon_mall; +create table wx_coupon_mall_76 like wx_coupon_mall; +create table wx_coupon_mall_77 like wx_coupon_mall; +create table wx_coupon_mall_78 like wx_coupon_mall; +create table wx_coupon_mall_79 like wx_coupon_mall; +create table wx_coupon_mall_80 like wx_coupon_mall; +create table wx_coupon_mall_81 like wx_coupon_mall; +create table wx_coupon_mall_82 like wx_coupon_mall; +create table wx_coupon_mall_83 like wx_coupon_mall; +create table wx_coupon_mall_84 like wx_coupon_mall; +create table wx_coupon_mall_85 like wx_coupon_mall; +create table wx_coupon_mall_86 like wx_coupon_mall; +create table wx_coupon_mall_87 like wx_coupon_mall; +create table wx_coupon_mall_88 like wx_coupon_mall; +create table wx_coupon_mall_89 like wx_coupon_mall; +create table wx_coupon_mall_90 like wx_coupon_mall; +create table wx_coupon_mall_91 like wx_coupon_mall; +create table wx_coupon_mall_92 like wx_coupon_mall; +create table wx_coupon_mall_93 like wx_coupon_mall; +create table wx_coupon_mall_94 like wx_coupon_mall; +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 diff --git a/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java b/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java index edf813cbd..d9da5085b 100644 --- a/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java +++ b/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java @@ -323,6 +323,13 @@ public class BaseMyBatisConfiguration { wxPressBatchItemSharding.setRule(EnumShardingRule.HASH.getCode()); shardingList.add(wxPressBatchItemSharding); + ShardingSphere wxCouponMallSharding = new ShardingSphere(); + wxCouponMallSharding.setColumn("tenant_id"); + wxCouponMallSharding.setTableName("wx_coupon_mall"); + wxCouponMallSharding.setCount(100); + wxCouponMallSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCouponMallSharding); + //初始化 shardingSpherePlugin.setShardingSpheres(shardingList); Properties properties = new Properties(); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponMall.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponMall.java new file mode 100644 index 000000000..22e8c9c18 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponMall.java @@ -0,0 +1,33 @@ +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; +import lombok.EqualsAndHashCode; + +import java.util.Date; +import java.util.List; + +@TableName(value = "wx_coupon_mall") +@Data +@EqualsAndHashCode(callSuper = true) +public class WxCouponMall extends TenantEntity { + + private static final long serialVersionUID = -2285755324480617990L; + + protected Long id; + + @io.swagger.annotations.ApiModelProperty(value="",name="productId") + private Long productId; + @TableField(exist = false) + private List productIds; + @io.swagger.annotations.ApiModelProperty(value="",name="mallTenantId") + private String mallTenantId; + @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") + private Date createDate; + @io.swagger.annotations.ApiModelProperty(value="修改时间",name="updateDate") + private Date updateDate; + @io.swagger.annotations.ApiModelProperty(value="状态",name="status") + private Integer status; +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java new file mode 100644 index 000000000..8730942fd --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java @@ -0,0 +1,16 @@ +package com.iformall.mapper; + + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxCouponMall; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Param; + +public interface WxCouponMallMapper extends CommonMapper { + + List findList(WxCouponMall wxCouponMerchant); + List findMerchantListByProduct(@Param("productId")Long productId,@Param("tenantId")String tenantId); +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java new file mode 100644 index 000000000..97b23d0f0 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java @@ -0,0 +1,27 @@ +package com.iformall.service; + +import java.util.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.github.pagehelper.PageInfo; +import com.iformall.common.ResultData; +import com.iformall.domain.po.TtCouponChannelPoi; +import com.iformall.domain.po.WxAppinfo; +import com.iformall.domain.po.WxCoupon; +import com.iformall.domain.po.WxCouponMall; +import com.iformall.domain.po.WxMerchant; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.vo.TtCouponVo; +import com.iformall.domain.vo.WxCouponCVo; +import com.iformall.domain.vo.WxCouponStatisVo; +import com.iformall.domain.vo.WxMerchantVo; + +public interface WxCouponMallService { + + PageInfo listAsPage(WxCouponMall record, Integer pageIndex, Integer pageSize); + + List list(WxCouponMall wxCouponMall); + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index 6411ad043..266f2a9c4 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -287,4 +287,6 @@ public interface WxCouponService { * @return */ ResultData disable(TenantEntity tenantInfo, Long couponId); + + void setCouponMerchants(WxCoupon wxCoupon) 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 new file mode 100644 index 000000000..82cc1f89e --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponMallServiceImpl.java @@ -0,0 +1,31 @@ +package com.iformall.service.impl; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.iformall.domain.po.*; +import com.iformall.mapper.*; +import com.iformall.service.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.*; + +@Service +public class WxCouponMallServiceImpl implements WxCouponMallService { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + WxCouponMallMapper wxCouponMallMapper; + + @Override + public List list(WxCouponMall wxCouponMall){ + return wxCouponMallMapper.findList(wxCouponMall); + } + + @Override + public PageInfo listAsPage(WxCouponMall record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponMallMapper.findList(record)); + } + +} 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 1bd98f61c..4ed45446c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -440,19 +440,13 @@ public class WxCouponServiceImpl implements WxCouponService { if(Result.SUCCESS != giftResult.code){ return giftResult; } - - ResultData receiverResult = checkCouponMerchantReceiver(record); - if(Result.SUCCESS != receiverResult.code){ - return receiverResult; - } - List merchantList = (List) receiverResult.data; - - if(merchantList.size() > 1){ - record.setBusiness(EnumBusiness.BUSINESS_ID6.getCode()); - }else{ - record.setBusiness(merchantList.get(0).getBusinessId()); - record.setSubBusiness(merchantList.get(0).getSubBusinessId()); - } + + try { + checkCouponMerchantReceiverAndUpdate(record); + }catch(Exception e) { + return new ResultData(Result.ERROR,e.getMessage()); + } + List merchantParamList = JSONObject.parseArray(record.getMerchantParams(), JSONObject.class); @@ -500,41 +494,7 @@ public class WxCouponServiceImpl implements WxCouponService { record.setInventory(oldCoupon.getInventory() + record.getRemainInventory() - oldCoupon.getRemainInventory()); } } - - WxCouponMerchant cmParam = new WxCouponMerchant(); - cmParam.updateTenantInfo(record); - cmParam.setProductId(record.getId()); - List oldList = wxCouponMerchantMapper.findList(cmParam); - merchantParamList.stream().forEach(merchantParam -> { - WxCouponMerchant cm = new WxCouponMerchant(); - WxCouponMerchantDto wxCouponMerchantDto = parseMerchantParam(merchantParam); - cm.updateTenantInfo(record); - cm.setMerchantId(wxCouponMerchantDto.getMerchantId()); - cm.setProductId(record.getId()); - WxCouponMerchant rcm = wxCouponMerchantMapper.selectOne(new QueryWrapper<>(cm)); - if (rcm != null) { - rcm.setParameter(wxCouponMerchantDto.getParameter()); - rcm.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); - rcm.setUpdateDate(new Date()); - wxCouponMerchantMapper.updateById(rcm); - }else { - cm.setId(idWorker.nextId()); - cm.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); - cm.setParameter(wxCouponMerchantDto.getParameter()); - cm.setCreateDate(new Date()); - cm.setUpdateDate(new Date()); - wxCouponMerchantMapper.insert(cm); - } - oldList.removeIf( - old->old.getProductId().equals(record.getId()) && - old.getMerchantId().equals(wxCouponMerchantDto.getMerchantId())); - }); - - oldList.stream().forEach(old->{ - old.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_INVALID.getCode()); - old.setUpdateDate(new Date()); - wxCouponMerchantMapper.updateById(old); - }); + updateCouponMerchants(record,merchantParamList,idWorker); record.setUpdateDate(new Date()); wxCouponMapper.updateById(record); @@ -545,11 +505,62 @@ public class WxCouponServiceImpl implements WxCouponService { return new ResultData(record.getId()); } - private ResultData checkCouponMerchantReceiver(WxCoupon record){ + private void updateCouponMerchants(WxCoupon record,List merchantParamList,final IdWorker idWorker) { + WxCouponMerchant cmParam = new WxCouponMerchant(); + cmParam.updateTenantInfo(record); + cmParam.setProductId(record.getId()); + List oldList = wxCouponMerchantMapper.findList(cmParam); + merchantParamList.stream().forEach(merchantParam -> { + WxCouponMerchant cm = new WxCouponMerchant(); + WxCouponMerchantDto wxCouponMerchantDto = parseMerchantParam(merchantParam); + cm.updateTenantInfo(record); + cm.setMerchantId(wxCouponMerchantDto.getMerchantId()); + cm.setProductId(record.getId()); + WxCouponMerchant rcm = wxCouponMerchantMapper.selectOne(new QueryWrapper<>(cm)); + if (rcm != null) { + rcm.setParameter(wxCouponMerchantDto.getParameter()); + rcm.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); + rcm.setUpdateDate(new Date()); + wxCouponMerchantMapper.updateById(rcm); + }else { + cm.setId(idWorker.nextId()); + cm.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); + cm.setParameter(wxCouponMerchantDto.getParameter()); + cm.setCreateDate(new Date()); + cm.setUpdateDate(new Date()); + wxCouponMerchantMapper.insert(cm); + } + oldList.removeIf( + old->old.getProductId().equals(record.getId()) && + old.getMerchantId().equals(wxCouponMerchantDto.getMerchantId())); + }); + + oldList.stream().forEach(old->{ + old.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_INVALID.getCode()); + old.setUpdateDate(new Date()); + wxCouponMerchantMapper.updateById(old); + }); + } + + private void checkCouponMerchantReceiverAndUpdate(WxCoupon wxCoupon) throws Exception{ + try { + List merchantList = checkCouponMerchantReceiver(wxCoupon); + if(merchantList.size() > 1){ + wxCoupon.setBusiness(EnumBusiness.BUSINESS_ID6.getCode()); + }else{ + wxCoupon.setBusiness(merchantList.get(0).getBusinessId()); + wxCoupon.setSubBusiness(merchantList.get(0).getSubBusinessId()); + } + }catch (Exception e) { + throw e; + } + } + + private List checkCouponMerchantReceiver(WxCoupon record) throws Exception{ List merchantParamList = JSONObject.parseArray(record.getMerchantParams(), JSONObject.class); if(merchantParamList == null || merchantParamList.isEmpty()){ - return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),"所属商户为空"); + throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),"所属商户为空"); } List merchantIds = new ArrayList<>(); for (JSONObject o:merchantParamList) { @@ -560,12 +571,12 @@ public class WxCouponServiceImpl implements WxCouponService { merchantQ.setIds(merchantIds); List merchantList = wxMerchantService.findList(merchantQ); if(merchantList.size() != merchantParamList.size()){ - return new ResultData(ErrorCode.MERCHANT_INFO_NOT_EQUAL.getCode(),"所属商户信息异常"); + throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_EQUAL.getCode(),"所属商户信息异常"); } List badMerchant = merchantList.stream().filter(m -> !EnumMerchantStatus.VALID.getCode().equals(m.getStatus())).collect(toList()); if(badMerchant != null && !badMerchant.isEmpty()){ List badNames = badMerchant.stream().map(WxMerchant::getName).collect(toList()); - return new ResultData(ErrorCode.MERCHANT_INFO_NOT_VALID.getCode(),JSONArray.toJSONString(badNames)+"被停用"); + throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_VALID.getCode(),JSONArray.toJSONString(badNames)+"被停用"); } if(record.getSalePrice() != null && record.getSalePrice() > 0) { @@ -573,11 +584,11 @@ public class WxCouponServiceImpl implements WxCouponService { EnumPayWay payWay = EnumAppPlat.getPayWay(plat); WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(record,plat); if (cAppInfo == null) { - return new ResultData(ErrorCode.APP_ID_NOT_FOUND); + throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); } WxPayAccount payAccount = payAccountMapper.selectById(cAppInfo.getPayId()); if (payAccount == null) { - return new ResultData(ErrorCode.APP_ID_NOT_FOUND); + throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); } //判断商户是否匹配poi @@ -590,7 +601,7 @@ public class WxCouponServiceImpl implements WxCouponService { } } if(!badPoiNames.isEmpty()){ - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), JSONArray.toJSONString(badPoiNames)+"未匹配poi"); + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), JSONArray.toJSONString(badPoiNames)+"未匹配poi"); } } @@ -607,9 +618,9 @@ public class WxCouponServiceImpl implements WxCouponService { }else{ List adminMerchant = merchantList.stream().filter(m -> EnumMerchantAdmin.PUBLIC_ADMIN.getCode().equals(m.getIsAdmin())).collect(toList()); if(adminMerchant == null || adminMerchant.isEmpty()){ - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "多门店券需包含一个商管商户"); + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "多门店券需包含一个商管商户"); }else if(adminMerchant.size() > 1){ - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "多门店券只能包含一个商管商户"); + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "多门店券只能包含一个商管商户"); } record.setMerchantType(EnumCouponMerchantType.MULTIPLE_MERCHANT.getCode()); makeMerchant = adminMerchant.get(0); @@ -619,13 +630,13 @@ public class WxCouponServiceImpl implements WxCouponService { WxProfitSharingReceiver receiver = payShareServie.getReceiver(payAccount, makeMerchant.getId(), null, payMchType.getCode()); if (receiver == null) { - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "[\""+makeMerchant.getName()+"\"]未配置收款账户"); + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "[\""+makeMerchant.getName()+"\"]未配置收款账户"); } 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(), "[\""+makeMerchant.getName()+"\"]未配置收款账户"); + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "[\""+makeMerchant.getName()+"\"]未配置收款账户"); } } } else if (EnumPayShare.YES.equals(isShare)) { @@ -643,7 +654,7 @@ public class WxCouponServiceImpl implements WxCouponService { if(!EnumYesOrNo.YES.getCode().equals(openPayResult.getAlipay()) && !EnumYesOrNo.YES.getCode().equals(openPayResult.getWx()) && !EnumYesOrNo.YES.getCode().equals(openPayResult.getHz())){ - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "分账模式未设置开通支付渠道"); + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "分账模式未设置开通支付渠道"); } if(EnumYesOrNo.YES.getCode().equals(openPayResult.getAlipay()) && !MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus())){ @@ -663,11 +674,11 @@ public class WxCouponServiceImpl implements WxCouponService { } } if(!badNames.isEmpty()){ - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), JSONArray.toJSONString(badNames)+"未配置分账账户"); + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), JSONArray.toJSONString(badNames)+"未配置分账账户"); } } } - return new ResultData(merchantList); + return merchantList; } @Override @@ -1320,4 +1331,17 @@ public class WxCouponServiceImpl implements WxCouponService { return new ResultData(); } + @Override + public void setCouponMerchants(WxCoupon wxCoupon) throws Exception { + try { + checkCouponMerchantReceiverAndUpdate(wxCoupon); + List merchantParamList = JSONObject.parseArray(wxCoupon.getMerchantParams(), JSONObject.class); + final IdWorker idWorker = IdWorker.get(); + updateCouponMerchants(wxCoupon,merchantParamList,idWorker); + }catch(Exception e) { + throw e; + } + } + + } diff --git a/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml new file mode 100644 index 000000000..7a5c012ce --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + `id`,`tenant_id`,`parent_tenant_id`,`product_id`,`mall_tenant_id`,`create_date`,`update_date`,`status` + + + + where 1 = 1 + + + and `id` = #{id} + + + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + and `product_id` = #{productId} + + + + + and `mall_tenant_id` = #{mallTenantId} + + + + + and `create_date` = #{createDate} + + + + + and `update_date` = #{updateDate} + + + + + and `status` = #{status} + + + + + and id in + + #{idItem} + + + + and product_id in + + #{productIdItem} + + + + order by ${sortColumns} + + + + + + + From 3004d754ab4d64167cfdcc1811a2d37175a1d9fa Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Thu, 17 Nov 2022 10:53:40 +0800 Subject: [PATCH 008/144] fix bug --- .../java/com/iformall/domain/po/WxCoupon.java | 10 ++++ .../service/impl/WxCouponServiceImpl.java | 51 +++++++++++-------- 2 files changed, 39 insertions(+), 22 deletions(-) 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 050f2f899..b9fcf2c8b 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java @@ -489,5 +489,15 @@ public class WxCoupon extends TenantEntity { } return valid_date; } + + public boolean checkCreateWithMerchants() { + if(type == null) { + return true; + } + if(type == EnumCouponType.COUPON_DOUYIN_PLAT.getCode()) { + return false; + } + return true; + } } 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 3eb900841..8d8144637 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -508,32 +508,37 @@ public class WxCouponServiceImpl implements WxCouponService { return giftResult; } - try { - checkCouponMerchantReceiverAndUpdate(record); - }catch(Exception e) { - return new ResultData(Result.ERROR,e.getMessage()); - } + //平台券先不设置商户 + List merchantParamList = null; + if (record.checkCreateWithMerchants()) { + try { + checkCouponMerchantReceiverAndUpdate(record); + }catch(Exception e) { + return new ResultData(Result.ERROR,e.getMessage()); + } + merchantParamList = JSONObject.parseArray(record.getMerchantParams(), JSONObject.class); + } - - List merchantParamList = JSONObject.parseArray(record.getMerchantParams(), JSONObject.class); + final IdWorker idWorker = IdWorker.get(); if (record.getId() == null) { record.setId(idWorker.nextId()); - - merchantParamList.forEach(merchantParam -> { - WxCouponMerchant cm = new WxCouponMerchant(); - WxCouponMerchantDto wxCouponMerchantDto = parseMerchantParam(merchantParam); - cm.setId(idWorker.nextId()); - cm.updateTenantInfo(record); - cm.setMerchantId(wxCouponMerchantDto.getMerchantId()); - cm.setParameter(wxCouponMerchantDto.getParameter()); - cm.setProductId(record.getId()); - cm.setCreateDate(new Date()); - cm.setUpdateDate(new Date()); - cm.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); - wxCouponMerchantMapper.insert(cm); - }); + if (record.checkCreateWithMerchants()) { + merchantParamList.forEach(merchantParam -> { + WxCouponMerchant cm = new WxCouponMerchant(); + WxCouponMerchantDto wxCouponMerchantDto = parseMerchantParam(merchantParam); + cm.setId(idWorker.nextId()); + cm.updateTenantInfo(record); + cm.setMerchantId(wxCouponMerchantDto.getMerchantId()); + cm.setParameter(wxCouponMerchantDto.getParameter()); + cm.setProductId(record.getId()); + cm.setCreateDate(new Date()); + cm.setUpdateDate(new Date()); + cm.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); + wxCouponMerchantMapper.insert(cm); + }); + } if (record.getPasswordSupport() != null && record.getPasswordSupport().equals(EnumCouponPasswordSupport.SUPPORTED.getCode())) { // todo 生成卡密无法修改, 调整 @@ -561,7 +566,9 @@ public class WxCouponServiceImpl implements WxCouponService { record.setInventory(oldCoupon.getInventory() + record.getRemainInventory() - oldCoupon.getRemainInventory()); } } - updateCouponMerchants(record,merchantParamList,idWorker); + if (record.checkCreateWithMerchants()) { + updateCouponMerchants(record,merchantParamList,idWorker); + } record.setUpdateDate(new Date()); wxCouponMapper.updateById(record); From 7528f986a9c85e9e02f12b2e7a808cc410da2e4c Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 17 Nov 2022 13:45:59 +0800 Subject: [PATCH 009/144] //config --- .../controller/basic/WxProjectConfigController.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java index 268e9f51a..b9739d2b4 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java @@ -249,9 +249,9 @@ public class WxProjectConfigController extends BaseController { if(StringUtils.isBlank(wxPayAccount.getNotifyUrl())){ wxPayAccount.setNotifyUrl(wechatWebProperties.getUrl()+"/wxPay/notify"); } - if(StringUtils.isBlank(wxPayAccount.getCertPath())){ - wxPayAccount.setCertPath("/opt/iformall/service/apiclient_cert.p12"); - } +// if(StringUtils.isBlank(wxPayAccount.getCertPath())){ +// wxPayAccount.setCertPath("/opt/iformall/service/apiclient_cert.p12"); +// } if(wxPayAccount.getType() == null){ wxPayAccount.setType(1);//0:普通商户模式, 1:服务商模式(默认服务商模式) } From f5e08359c513fa36375275a1fbbf965e1f238f13 Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 17 Nov 2022 15:39:15 +0800 Subject: [PATCH 010/144] //coupon --- .../java/com/iformall/service/impl/WxCouponServiceImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 8d8144637..a456c470d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -235,7 +235,10 @@ public class WxCouponServiceImpl implements WxCouponService { wxCoupon.setPlat(EnumCouponType.getAppPlat(wxCoupon.getType()).getCode()); } }else{ - List types = wxCoupon.getTypes(); + List types = new ArrayList<>(); + if(wxCoupon.getTypes() != null && !wxCoupon.getTypes().isEmpty()){ + types.addAll(wxCoupon.getTypes()); + } if(wxCoupon.getTargetAd() != null){ if(wxCoupon.getPlat() == null){ wxCoupon.setPlat(EnumCouponChannelType.getAppPlat(wxCoupon.getTargetAd()).getCode()); From ededb6ea499b1dead828f3064275827f6b197b05 Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 17 Nov 2022 16:53:37 +0800 Subject: [PATCH 011/144] //rent --- .../iformall/controller/contract/WxRentContractController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java index 2a49d38eb..09d871f7e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java @@ -651,7 +651,7 @@ public class WxRentContractController extends WxContractBaseController { }else if (rentContract.getRentShopType().intValue() == EnumRentShopType.POINT.getCode().intValue()) { rentContract.setFlowParams(generateFlowParams(EnumFlowKey.NEW_SHOP_CONTRACT, EnumFlowContractType.RENT_POINT, wxRentContract.getRemark(), wxRentContract.getId(),null)); } - }else if(rentContract.getOperationType().intValue() == EnumContractOperationType.PART.getCode().intValue()){ + }else if(rentContract.getOperationType().intValue() == EnumContractOperationType.WHOLE.getCode().intValue()){ if (rentContract.getRentShopType().intValue() == EnumRentShopType.SHOP.getCode().intValue()) { rentContract.setFlowParams(generateFlowParams(EnumFlowKey.NNEW_RENT_CONTRACT, EnumFlowContractType.WHOLE_SHOP, wxRentContract.getRemark(), wxRentContract.getId(),wxRentContract.getPropertyId())); }else if (rentContract.getRentShopType().intValue() == EnumRentShopType.POINT.getCode().intValue()) { From 6db15e819616f8f1fcb694c2324722650c07f2a4 Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 17 Nov 2022 17:26:06 +0800 Subject: [PATCH 012/144] //web --- .../com/iformall/douyin/web/api/impl/TtWebServiceImpl.java | 2 +- .../java/com/iformall/douyin/web/config/TtWebConstants.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebServiceImpl.java b/mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebServiceImpl.java index d33dd5514..160590bb5 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebServiceImpl.java @@ -235,7 +235,7 @@ public class TtWebServiceImpl implements TtWebService, RequestHttp Date: Thu, 17 Nov 2022 19:41:23 +0800 Subject: [PATCH 013/144] fix bug --- .../controller/market/WxCouponController.java | 15 +- .../java/com/iformall/domain/po/WxCoupon.java | 3 + .../com/iformall/service/WxCouponService.java | 2 + .../service/impl/WxCouponServiceImpl.java | 157 ++++++++++++++---- 4 files changed, 141 insertions(+), 36 deletions(-) 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 68b52475e..0f523e8c2 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -571,7 +571,7 @@ public class WxCouponController extends BaseController { return new ResultData(wxCouponMallService.list(wxCouponMall)); } - @ApiOperation("商场查询:平台券列表") + @ApiOperation("商场查询:平台券商场列表") @GetMapping("/couponMalls") @ApiImplicitParams({ @ApiImplicitParam(name = "ids", value = "ids[]", dataType = "Long", paramType = "query", required = true)}) @@ -612,5 +612,18 @@ public class WxCouponController extends BaseController { } return new ResultData(); } + + @ApiOperation("券商户是否自动分账") + @PostMapping("/couponMerchantAutoShare") + public ResultData couponMerchantAutoShare(@RequestBody WxCoupon wxCoupon) { + wxCoupon.updateTenantInfo(getTenantInfo()); + try { + Map map = wxCouponService.couponMerchantAutoShare(wxCoupon); + return new ResultData(map); + } catch (Exception e) { + return new ResultData(Result.ERROR,e.getMessage()); + } + + } } 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 b9fcf2c8b..b39c51cdb 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java @@ -388,6 +388,9 @@ public class WxCoupon extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "是否删除1是0否", name = "isDel") private Integer isDel; + + @TableField(exist = false) + private Long[] merchantIds; public String getSalePriceStr() { if(salePrice!=null) { diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index 266f2a9c4..21cb817a8 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -289,4 +289,6 @@ public interface WxCouponService { ResultData disable(TenantEntity tenantInfo, Long couponId); void setCouponMerchants(WxCoupon wxCoupon) throws Exception; + + Map couponMerchantAutoShare(WxCoupon wxCoupon) throws Exception; } 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 8d8144637..97c14ab34 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -706,46 +706,29 @@ public class WxCouponServiceImpl implements WxCouponService { if (receiver == null) { throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "[\""+makeMerchant.getName()+"\"]未配置收款账户"); } + //如果是直连,抖音,多商户券必须只配置支付宝 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())) { - throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "[\""+makeMerchant.getName()+"\"]未配置收款账户"); - } + if (merchantList.size() > 1 ) { + if (MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus()) && + !MerchantImportStatus.improt_success.getCode().equals(receiver.getWxImportStatus()) ) { + }else { + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "[\""+makeMerchant.getName()+"\"]配置收款账户错误,多商户券主收款账户不能配置微信."); + } + }else { + if (!MerchantImportStatus.improt_success.getCode().equals(receiver.getWxImportStatus()) + && !MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus()) + && !MerchantImportStatus.improt_success.getCode().equals(receiver.getHzImportStatus())) { + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "[\""+makeMerchant.getName()+"\"]未配置收款账户"); + } + } } } else if (EnumPayShare.YES.equals(isShare)) { List badNames = new ArrayList(); for (WxMerchant merchant:merchantList) { - WxProfitSharingReceiver receiver = payShareServie.getReceiver(payAccount, merchant.getId(), null, payMchType.getCode()); - - if (receiver == null) { - badNames.add(merchant.getName()); - continue; - } - if (EnumAppPlat.TOUTIAO.equals(plat)) { - QueryMerchantResult openPayResult = payAccount.getOpenPayResult(); - - if(!EnumYesOrNo.YES.getCode().equals(openPayResult.getAlipay()) - && !EnumYesOrNo.YES.getCode().equals(openPayResult.getWx()) - && !EnumYesOrNo.YES.getCode().equals(openPayResult.getHz())){ - throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "分账模式未设置开通支付渠道"); - } - if(EnumYesOrNo.YES.getCode().equals(openPayResult.getAlipay()) - && !MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus())){ - badNames.add(merchant.getName()); - continue; - } - if(EnumYesOrNo.YES.getCode().equals(openPayResult.getWx()) - && !MerchantImportStatus.improt_success.getCode().equals(receiver.getWxImportStatus())){ - badNames.add(merchant.getName()); - continue; - } - if(EnumYesOrNo.YES.getCode().equals(openPayResult.getHz()) - && !MerchantImportStatus.improt_success.getCode().equals(receiver.getHzImportStatus())){ - badNames.add(merchant.getName()); - continue; - } - } + boolean isBad = toTalPayMchTypeMerchantIsBad(payShareServie,payAccount,merchant.getName(),merchant.getId(),payMchType,plat); + if (isBad) { + badNames.add(merchant.getName()); + } } if(!badNames.isEmpty()){ throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), JSONArray.toJSONString(badNames)+"未配置分账账户"); @@ -754,6 +737,37 @@ public class WxCouponServiceImpl implements WxCouponService { } return merchantList; } + + //总分模式下不能分账的商户 + private boolean toTalPayMchTypeMerchantIsBad(PayShareAdapterService payShareServie,WxPayAccount payAccount, + String merchantName,Long merchantId,EnumPayMchType payMchType,EnumAppPlat plat) throws Exception { + WxProfitSharingReceiver receiver = payShareServie.getReceiver(payAccount, merchantId, null, payMchType.getCode()); + if (receiver == null) { + return true; + } + if (EnumAppPlat.TOUTIAO.equals(plat)) { + QueryMerchantResult openPayResult = payAccount.getOpenPayResult(); + + if(!EnumYesOrNo.YES.getCode().equals(openPayResult.getAlipay()) + && !EnumYesOrNo.YES.getCode().equals(openPayResult.getWx()) + && !EnumYesOrNo.YES.getCode().equals(openPayResult.getHz())){ + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "分账模式未设置开通支付渠道"); + } + if(EnumYesOrNo.YES.getCode().equals(openPayResult.getAlipay()) + && !MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus())){ + return true; + } + if(EnumYesOrNo.YES.getCode().equals(openPayResult.getWx()) + && !MerchantImportStatus.improt_success.getCode().equals(receiver.getWxImportStatus())){ + return true; + } + if(EnumYesOrNo.YES.getCode().equals(openPayResult.getHz()) + && !MerchantImportStatus.improt_success.getCode().equals(receiver.getHzImportStatus())){ + return true; + } + } + return false; + } @Override public ResultData updateTtProduct(WxCoupon record) { @@ -1416,6 +1430,79 @@ public class WxCouponServiceImpl implements WxCouponService { throw e; } } + + private Map generateMerchantAutoShareAll(Long[] merchantIds,boolean auto) { + Map merchantAutoShareMap = new HashMap(); + for (Long mid:merchantIds) { + merchantAutoShareMap.put(mid, auto); + } + return merchantAutoShareMap; + } + @Override + public Map couponMerchantAutoShare(WxCoupon wxCoupon) throws Exception { + if (null == wxCoupon.getMerchantIds() || null == wxCoupon.getId() || null == wxCoupon.getType() || null == wxCoupon.getMerchantType()) { + throw new MallinkException(Result.ERROR,"缺少参数"); + } + EnumAppPlat plat = EnumCouponType.getAppPlat(wxCoupon.getType()); + EnumPayWay payWay = EnumAppPlat.getPayWay(plat); + WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(wxCoupon,plat); + if (cAppInfo == null) { + throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); + } + WxPayAccount payAccount = payAccountMapper.selectById(cAppInfo.getPayId()); + if (payAccount == null) { + throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); + } + EnumPayMchType payMchType = EnumPayMchType.getEnum(payAccount.getMchType()); + EnumPayShare isShare = EnumPayShare.getEnum(payAccount.getShare()); + PayShareAdapterService payShareServie = payServiceFactory.getPayShareAdapterService(payWay.getCode(),payAccount.getPayVersion()); + //直连模式,如果是单商户券,则都可以;如果是多商户券,抖音则只要开通了支付宝就可以,微信则不行。 + if (payMchType == EnumPayMchType.DIRECT) { + if (EnumCouponMerchantType.ONE_MERCHANT.getCode() == wxCoupon.getMerchantType()) { + return generateMerchantAutoShareAll(wxCoupon.getMerchantIds(),true); + }else { + if (plat == EnumAppPlat.TOUTIAO) { + Map merchantAutoShareMap = new HashMap(); + for (Long mid:wxCoupon.getMerchantIds()) { + //开通了支付宝就可以 + WxProfitSharingReceiver receiver = payShareServie.getReceiver(payAccount, mid, null, payMchType.getCode()); + if (MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus())) { + merchantAutoShareMap.put(mid, true); + }else { + merchantAutoShareMap.put(mid, false); + } + } + return merchantAutoShareMap; + }else if (plat == EnumAppPlat.WX){ + return generateMerchantAutoShareAll(wxCoupon.getMerchantIds(),false); + }else { + return generateMerchantAutoShareAll(wxCoupon.getMerchantIds(),false); + } + } + }else { + //总分模式,分账开启,微信平台则认为是100%分账,抖音则只要开通了支付宝就可以。 + if (isShare == EnumPayShare.YES) { + if (plat == EnumAppPlat.WX) { + return generateMerchantAutoShareAll(wxCoupon.getMerchantIds(),true); + }else if (plat == EnumAppPlat.TOUTIAO) { + Map merchantAutoShareMap = new HashMap(); + for (Long mid:wxCoupon.getMerchantIds()) { + boolean isBad = toTalPayMchTypeMerchantIsBad(payShareServie,payAccount,String.valueOf(mid),mid,payMchType,plat); + if (isBad) { + merchantAutoShareMap.put(mid, false); + }else { + merchantAutoShareMap.put(mid, true); + } + } + return merchantAutoShareMap; + }else { + return generateMerchantAutoShareAll(wxCoupon.getMerchantIds(),true); + } + }else { + return generateMerchantAutoShareAll(wxCoupon.getMerchantIds(),false); + } + } + } } From 50589b32201e39e5cdf82ccce39eaff48acaa931 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Fri, 18 Nov 2022 16:17:32 +0800 Subject: [PATCH 014/144] fix bug --- .../controller/market/WxCouponController.java | 39 +++++++++++++++ .../domain/po/TtCouponChannelPoi.java | 2 +- .../iformall/enums/EnumCouponMallStatus.java | 36 ++++++++++++++ .../com/iformall/enums/EnumSpuSyncStatus.java | 11 +++++ .../iformall/mapper/WxCouponMallMapper.java | 5 +- .../iformall/service/WxCouponMallService.java | 3 ++ .../service/impl/WxCouponMallServiceImpl.java | 48 +++++++++++++++++++ .../resources/mapper/WxCouponMallMapper.xml | 12 ++--- 8 files changed, 146 insertions(+), 10 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumCouponMallStatus.java 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 0f523e8c2..eae80b8a8 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -625,5 +625,44 @@ public class WxCouponController extends BaseController { } } + + @ApiOperation("商场设置平台券已完成") + @PostMapping("/setPlatCouponFinished") + public ResultData setPlatCouponFinished(@RequestBody WxCoupon wxCoupon) { + try { + TenantEntity tenantEntity = getTenantInfo(); + String mallTenantId = tenantEntity.getTenantId(); + String tenantId = tenantEntity.getTenantId(); + if (null != tenantEntity.getParentTenantId()) { + tenantId = tenantEntity.getParentTenantId(); + } + wxCouponMallService.finised(tenantId, wxCoupon.getId(), mallTenantId); + return new ResultData(); + } catch (Exception e) { + return new ResultData(Result.ERROR,e.getMessage()); + } + + } + + @ApiOperation("商场设置平台券已完成") + @PostMapping("/setPlatCouponUnFinished") + public ResultData setPlatCouponUnFinished(@RequestBody WxCoupon wxCoupon) { + try { + if (null == wxCoupon.getType()) { + return new ResultData(Result.ERROR,"缺少参数"); + } + TenantEntity tenantEntity = getTenantInfo(); + String mallTenantId = tenantEntity.getTenantId(); + String tenantId = tenantEntity.getTenantId(); + if (null != tenantEntity.getParentTenantId()) { + tenantId = tenantEntity.getParentTenantId(); + } + wxCouponMallService.unfinised(tenantId, wxCoupon.getId(),wxCoupon.getType(), mallTenantId); + return new ResultData(); + } catch (Exception e) { + return new ResultData(Result.ERROR,e.getMessage()); + } + + } } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/TtCouponChannelPoi.java b/mallinkService/src/main/java/com/iformall/domain/po/TtCouponChannelPoi.java index 03866d5ab..cfd78b340 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/TtCouponChannelPoi.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/TtCouponChannelPoi.java @@ -32,7 +32,7 @@ public class TtCouponChannelPoi extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="描述",name="statusDesc") private String statusDesc; - @io.swagger.annotations.ApiModelProperty(value="状态:0-审核中,1-上架,2-下架,3-审核拒绝 4-审核通过",name="lastStatus") + @io.swagger.annotations.ApiModelProperty(value="EnumSpuSyncStatus状态:0-审核中,1-上架,2-下架,3-审核拒绝 4-审核通过",name="lastStatus") private Integer lastStatus; @io.swagger.annotations.ApiModelProperty(value="描述",name="lastStatusDesc") diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCouponMallStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumCouponMallStatus.java new file mode 100644 index 000000000..280a58b05 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCouponMallStatus.java @@ -0,0 +1,36 @@ +package com.iformall.enums; + +/** + * Created by Stormeye on 2018/08/09. + */ +public enum EnumCouponMallStatus { + + UNFINISED(0, "未设置完成"), + FINISED(1, "已设置完成") + ; + + public static EnumCouponMallStatus getEnum(Integer code) { + for (EnumCouponMallStatus value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumCouponMallStatus(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumSpuSyncStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumSpuSyncStatus.java index 43de3788a..231f0e696 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumSpuSyncStatus.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumSpuSyncStatus.java @@ -38,4 +38,15 @@ public enum EnumSpuSyncStatus { public String getMessage() { return message; } + + public static boolean isValid(Integer code) { + if (code == sync_auditing.getCode()) { + return true; + }else if (code == sync_put_on.getCode()) { + return true; + }else if (code == sync_audit_pass.getCode()) { + return true; + } + return false; + } } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java index 8730942fd..c938f0593 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java @@ -3,6 +3,7 @@ package com.iformall.mapper; import com.iformall.common.CommonMapper; import com.iformall.domain.po.WxCouponMall; +import com.iformall.domain.po.base.TenantEntity; import java.util.List; import java.util.Map; @@ -11,6 +12,6 @@ import org.apache.ibatis.annotations.Param; public interface WxCouponMallMapper extends CommonMapper { - List findList(WxCouponMall wxCouponMerchant); - List findMerchantListByProduct(@Param("productId")Long productId,@Param("tenantId")String tenantId); + List findList(WxCouponMall wxCouponMall); + void updateStatus(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 97b23d0f0..1e8480755 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java @@ -24,4 +24,7 @@ public interface WxCouponMallService { List list(WxCouponMall wxCouponMall); + 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 82cc1f89e..40d64553f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponMallServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponMallServiceImpl.java @@ -2,7 +2,15 @@ package com.iformall.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.iformall.common.ErrorCode; import com.iformall.domain.po.*; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumAppPlat; +import com.iformall.enums.EnumCouponChannelStatus; +import com.iformall.enums.EnumCouponMallStatus; +import com.iformall.enums.EnumCouponType; +import com.iformall.enums.EnumSpuSyncStatus; +import com.iformall.exception.MallinkException; import com.iformall.mapper.*; import com.iformall.service.*; import org.slf4j.Logger; @@ -17,6 +25,10 @@ public class WxCouponMallServiceImpl implements WxCouponMallService { @Autowired WxCouponMallMapper wxCouponMallMapper; + @Autowired + TtCouponChannelPoiMapper ttCouponChannelPoiMapper; + @Autowired + WxCouponChannelMapper wxCouponChannelMapper; @Override public List list(WxCouponMall wxCouponMall){ @@ -28,4 +40,40 @@ public class WxCouponMallServiceImpl implements WxCouponMallService { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponMallMapper.findList(record)); } + @Override + public void finised(String tenantId, Long couponId, String mallTenantId) { + WxCouponMall couponMall = new WxCouponMall(); + couponMall.setTenantId(tenantId); + couponMall.setMallTenantId(mallTenantId); + couponMall.setProductId(couponId); + couponMall.setStatus(EnumCouponMallStatus.FINISED.getCode()); + wxCouponMallMapper.updateStatus(couponMall); + } + + @Override + public void unfinised(String tenantId, Long couponId,Integer couponType, String mallTenantId) throws Exception{ + //抖音平台查询的是未提交抖音审核的,微信是未上架的 + EnumAppPlat plat = EnumCouponType.getAppPlat(couponType); + if (plat == EnumAppPlat.TOUTIAO) { + TtCouponChannelPoi poi = ttCouponChannelPoiMapper.selectById(tenantId, couponId); + if (null != poi &&( EnumSpuSyncStatus.isValid(poi.getLastStatus()))) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"券已在抖音审核流程中,无法修改。"); + } + }else if (plat == EnumAppPlat.WX) { + WxCouponChannel couponChannel = new WxCouponChannel(); + couponChannel.setTenantId(tenantId); + couponChannel.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); + List clist = wxCouponChannelMapper.findList(couponChannel); + if (null != clist && clist.size() > 0 ) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"券已投放且上架,无法修改。"); + } + } + WxCouponMall couponMall = new WxCouponMall(); + couponMall.setTenantId(tenantId); + couponMall.setMallTenantId(mallTenantId); + couponMall.setProductId(couponId); + couponMall.setStatus(EnumCouponMallStatus.UNFINISED.getCode()); + wxCouponMallMapper.updateStatus(couponMall); + } + } diff --git a/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml index 7a5c012ce..8a5836da4 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml @@ -76,12 +76,10 @@ from wx_coupon_mall - - + + + update wx_coupon_mall set status = #{status} where `product_id` = #{productId} + and `tenant_id` = #{tenantId} and `mall_tenant_id` = #{mallTenantId} + From 272621ee2f3683c23e1190115623dead8a712cb9 Mon Sep 17 00:00:00 2001 From: xhxu Date: Fri, 18 Nov 2022 18:20:12 +0800 Subject: [PATCH 015/144] //coupon --- .../controller/callback/TtWebController.java | 4 +- .../impl/TtCouponGoodsServiceImpl.java | 40 +++-- .../impl/WxCouponChannelServiceImpl.java | 148 ++++++++++-------- .../service/impl/WxCouponServiceImpl.java | 4 +- 4 files changed, 114 insertions(+), 82 deletions(-) diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/TtWebController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/TtWebController.java index 1e3ad99cc..7f0c413d8 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/TtWebController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/TtWebController.java @@ -116,7 +116,9 @@ public class TtWebController extends BaseController { couponChannelPoi.setLastStatusDesc(reason); }else if("PASS".equals(status)){ - couponChannelPoi.setLastStatus(EnumSpuSyncStatus.sync_audit_pass.getCode()); +// couponChannelPoi.setLastStatus(EnumSpuSyncStatus.sync_audit_pass.getCode()); + //抖音审核通过既上架 + couponChannelPoi.setLastStatus(EnumSpuSyncStatus.sync_put_on.getCode()); couponChannelPoi.setLastStatusDesc(reason); }else{ diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java index 263f4c0ce..d2cc4c90c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java @@ -312,7 +312,9 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { ttCouponChannelPoiMapper.updateById(ttCouponChannelPoi); }else if(product.getDraftStatus().intValue() == 1 && !EnumSpuSyncStatus.sync_audit_pass.getCode().equals(ttCouponChannelPoi.getLastStatus())){ - ttCouponChannelPoi.setLastStatus(EnumSpuSyncStatus.sync_audit_pass.getCode()); +// ttCouponChannelPoi.setLastStatus(EnumSpuSyncStatus.sync_audit_pass.getCode()); + //审核通过 + ttCouponChannelPoi.setLastStatus(EnumSpuSyncStatus.sync_put_on.getCode()); ttCouponChannelPoi.setLastStatusDesc(""); ttCouponChannelPoi.setUpdateDate(new Date()); ttCouponChannelPoiMapper.updateById(ttCouponChannelPoi); @@ -341,14 +343,17 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { Product product = products.get(0); if(product.getOnlineStatus().intValue() == 1 && !EnumSpuSyncStatus.sync_put_on.getCode().equals(ttCouponChannelPoi.getStatus())){ ttCouponChannelPoi.setStatus(EnumSpuSyncStatus.sync_put_on.getCode()); + ttCouponChannelPoi.setLastStatus(EnumSpuSyncStatus.sync_put_on.getCode()); ttCouponChannelPoi.setUpdateDate(new Date()); ttCouponChannelPoiMapper.updateById(ttCouponChannelPoi); }else if(product.getOnlineStatus().intValue() == 2 && !EnumSpuSyncStatus.sync_pull_off.getCode().equals(ttCouponChannelPoi.getStatus())){ ttCouponChannelPoi.setStatus(EnumSpuSyncStatus.sync_pull_off.getCode()); + ttCouponChannelPoi.setLastStatus(EnumSpuSyncStatus.sync_pull_off.getCode()); ttCouponChannelPoi.setUpdateDate(new Date()); ttCouponChannelPoiMapper.updateById(ttCouponChannelPoi); }else if(product.getOnlineStatus().intValue() == 3 && !EnumSpuSyncStatus.sync_audit_disable.getCode().equals(ttCouponChannelPoi.getStatus())){ ttCouponChannelPoi.setStatus(EnumSpuSyncStatus.sync_audit_disable.getCode()); + ttCouponChannelPoi.setLastStatus(EnumSpuSyncStatus.sync_audit_disable.getCode()); ttCouponChannelPoi.setUpdateDate(new Date()); ttCouponChannelPoiMapper.updateById(ttCouponChannelPoi); } @@ -369,12 +374,13 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未找到"); } TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(tenantInfo.getTenantId(),id); - if(ttCouponChannelPoi == null || !EnumSpuSyncStatus.sync_audit_pass.getCode().equals(ttCouponChannelPoi.getLastStatus())){ + if(ttCouponChannelPoi == null || EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_rejection.getCode().equals(ttCouponChannelPoi.getLastStatus())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); } //查询上架 - //op_type int64 TRUE 1-上线 2-下线 - Integer op_type = 2; + //op_type int64 TRUE EnumSpuSyncStatus 1-上线 2-下线 + Integer op_type = EnumSpuSyncStatus.sync_pull_off.getCode(); if(!EnumCouponStatus.COUPON_STATUS_TAKE_OFFF.getCode().equals(wxCoupon.getStatus())){ WxCouponChannel wxCouponChannelQuery = new WxCouponChannel(); wxCouponChannelQuery.updateTenantInfo(wxCoupon); @@ -383,7 +389,7 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { wxCouponChannelQuery.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); List wxCouponChannels = wxCouponChannelMapper.findList(wxCouponChannelQuery); if(wxCouponChannels.size() > 0){ - op_type = 1; + op_type = EnumSpuSyncStatus.sync_put_on.getCode(); } } @@ -391,6 +397,12 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { TtWebService ttWebService = ttMerchantPoiService.getTtWebService(ttCouponChannelPoi); boolean b = ttWebService.getGoodsService().productOperate(null,wxCoupon.getId().toString(),op_type); if(b){ + TtCouponChannelPoi ccPoi = new TtCouponChannelPoi(); + ccPoi.setId(ttCouponChannelPoi.getId()); + ccPoi.updateTenantInfo(ttCouponChannelPoi); + ccPoi.setLastStatus(op_type); + ccPoi.setUpdateDate(new Date()); + ttCouponChannelPoiMapper.updateById(ccPoi); return new ResultData(); }else{ return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),"同步失败"); @@ -409,7 +421,8 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未找到"); } TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(tenantInfo.getTenantId(),id); - if(ttCouponChannelPoi == null || !EnumSpuSyncStatus.sync_audit_pass.getCode().equals(ttCouponChannelPoi.getLastStatus())){ + if(ttCouponChannelPoi == null || EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_rejection.getCode().equals(ttCouponChannelPoi.getLastStatus())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); } try { @@ -434,7 +447,8 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未找到"); } TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(tenantInfo.getTenantId(),id); - if(ttCouponChannelPoi == null || !EnumSpuSyncStatus.sync_audit_pass.getCode().equals(ttCouponChannelPoi.getLastStatus())){ + if(ttCouponChannelPoi == null || EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_rejection.getCode().equals(ttCouponChannelPoi.getLastStatus())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); } try { @@ -537,7 +551,8 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { @Override public ResultData poiPlanList(TenantEntity tenantInfo,Long couponId, Integer pageNum, Integer pageSize) { TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(tenantInfo.getTenantId(),couponId); - if(ttCouponChannelPoi == null || !EnumSpuSyncStatus.sync_audit_pass.getCode().equals(ttCouponChannelPoi.getLastStatus())){ + if(ttCouponChannelPoi == null || EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_rejection.getCode().equals(ttCouponChannelPoi.getLastStatus())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); } try { @@ -553,7 +568,8 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { @Override public ResultData poiOrientedPlanList(TenantEntity tenantInfo,Long couponId, Integer pageNum, Integer pageSize) { TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(tenantInfo.getTenantId(),couponId); - if(ttCouponChannelPoi == null || !EnumSpuSyncStatus.sync_audit_pass.getCode().equals(ttCouponChannelPoi.getLastStatus())){ + if(ttCouponChannelPoi == null || EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_rejection.getCode().equals(ttCouponChannelPoi.getLastStatus())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); } try { @@ -576,7 +592,8 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { return new ResultData(ErrorCode.COUPON_ORDER_TYPE_NOT_SUPPORTED); } TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(wxCoupon.getTenantId(),wxCoupon.getId()); - if(ttCouponChannelPoi == null || !EnumSpuSyncStatus.sync_audit_pass.getCode().equals(ttCouponChannelPoi.getLastStatus())){ + if(ttCouponChannelPoi == null || EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_rejection.getCode().equals(ttCouponChannelPoi.getLastStatus())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); } try { @@ -627,7 +644,8 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { return new ResultData(ErrorCode.COUPON_ORDER_TYPE_NOT_SUPPORTED); } TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(wxCoupon.getTenantId(),wxCoupon.getId()); - if(ttCouponChannelPoi == null || !EnumSpuSyncStatus.sync_audit_pass.getCode().equals(ttCouponChannelPoi.getLastStatus())){ + if(ttCouponChannelPoi == null || EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_rejection.getCode().equals(ttCouponChannelPoi.getLastStatus())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); } try { 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 6010053f0..5447e0a3d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -124,81 +124,83 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { } @Override + @Transactional(rollbackFor = {Exception.class}) public ResultData saveOrUpdate(WxCouponChannel record) { - if (record.getId() == null) { - //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); - final IdWorker idWorker = IdWorker.get(); - record.setId(idWorker.nextId()); - wxCouponChannelMapper.insert(record); - return new ResultData(record); - } else { - if (record.getCouponId() != null && record.getStatus() != null) { - WxCouponChannel orignal = getById(record.getId(),record.getTenantId()); - if (orignal.getStatus().equals(EnumCouponChannelStatus.STATUS_TAKE_OFFF.getCode()) - && record.getStatus().equals(EnumCouponChannelStatus.STATUS_THROW_IN.getCode())) { - - WxCoupon wxCoupon = wxCouponService.getById(orignal.getCouponId(),orignal.getTenantId()); - if (wxCoupon == null) - return new ResultData(ErrorCode.COUPON_IS_EMPTY); - if (wxCoupon.getStatus().equals(EnumCouponStatus.COUPON_STATUS_TAKE_OFFF)) - return new ResultData(ErrorCode.COUPON_IS_TAKE_OFF); + boolean isThrowIn = false;//是否上架 + boolean isTakeOff = false;//是否下架 + if (record.getCouponId() != null) { + WxCoupon wxCoupon = wxCouponService.getById(record.getCouponId(),record.getTenantId()); + if (wxCoupon == null){ + return new ResultData(ErrorCode.COUPON_IS_EMPTY); + } + if (wxCoupon.getStatus().equals(EnumCouponStatus.COUPON_STATUS_TAKE_OFFF)){ + return new ResultData(ErrorCode.COUPON_IS_TAKE_OFF); + } + if(EnumCouponType.getDouYinType().contains(wxCoupon.getType())){ + TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(wxCoupon.getTenantId(),wxCoupon.getId()); + if(ttCouponChannelPoi == null || EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_rejection.getCode().equals(ttCouponChannelPoi.getLastStatus())){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); + } + } + if(record.getStatus() != null){ + if(record.getId() != null){ + WxCouponChannel old = getById(record.getId(),record.getTenantId()); + if(old.getStatus().equals(EnumCouponChannelStatus.STATUS_TAKE_OFFF.getCode()) + && record.getStatus().equals(EnumCouponChannelStatus.STATUS_THROW_IN.getCode())){ + if(record.getTargetAd() == null){ + record.setTargetAd(old.getTargetAd()); + } + isThrowIn = true; + }else if (old.getStatus().equals(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()) + && record.getStatus().equals(EnumCouponChannelStatus.STATUS_TAKE_OFFF.getCode())) { + isTakeOff = true; + } + }else{ + if(record.getStatus().equals(EnumCouponChannelStatus.STATUS_THROW_IN.getCode())){ + isThrowIn = true; + } + } + if(isThrowIn){ //查找是否该券 在该频道有其他上架 WxCouponChannel query = new WxCouponChannel(); - query.updateTenantInfo(orignal); - query.setCouponId(orignal.getCouponId()); + query.updateTenantInfo(record); + query.setCouponId(record.getCouponId()); query.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode());//已上架 - query.setTargetAd(orignal.getTargetAd()); + query.setTargetAd(record.getTargetAd()); List list = wxCouponChannelMapper.findList(query); if (list != null && list.size() > 0) { return new ResultData(ErrorCode.COUPON_CHANNEL_IS_EXISTED); } - - if(EnumCouponType.getDouYinType().contains(orignal.getType())){ - TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(wxCoupon.getTenantId(),wxCoupon.getId()); - if(ttCouponChannelPoi == null || !EnumSpuSyncStatus.sync_audit_pass.getCode().equals(ttCouponChannelPoi.getLastStatus())){ - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该商品未提交审核或审核未通过"); - } - //上架该券的审核渠道 - updateOnlineDouyin(orignal,orignal.getCouponId()); - } - + //上架该券的审核渠道 + updateOnlineDouyin(wxCoupon); } - } - Long couponId = null; - if (record.getStatus() != null) { - WxCouponChannel orignal = getById(record.getId(),record.getTenantId()); - if (orignal.getStatus().equals(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()) - && record.getStatus().equals(EnumCouponChannelStatus.STATUS_TAKE_OFFF.getCode())) { - couponId = orignal.getCouponId(); + + if(isTakeOff){ wxScreenAdService.updateStatusByCouponChannelId(record.getId(),record,EnumScreenAdStatus.INVALID.getCode()); //下架拼团券 wxOrderService.updateOrderGroupStatusByCouponChannelId(record.getId(), record, EnumOrderStatus.ORDER_STATUS_COOPERATING_CANCEL.getCode()); //修改卡状态 - wxCardInfoMapper.updateTransferStatusByCouponId(orignal.getCouponId()); + wxCardInfoMapper.updateTransferStatusByCouponId(record.getCouponId()); //浮层下架 - wxFloatingLayerMapper.updateStatus(orignal.getCouponId()); + wxFloatingLayerMapper.updateStatus(record.getCouponId()); - if(EnumCouponType.getDouYinType().contains(orignal.getType())){ - //下架该券的审核渠道(如所有渠道都已下线) - updateTakeOffDouyin(orignal); - } + //下架该券的审核渠道(如所有渠道都已下线) + updateTakeOffDouyin(wxCoupon,record.getId()); } } + } + + if (record.getId() == null) { + //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); + final IdWorker idWorker = IdWorker.get(); + record.setId(idWorker.nextId()); + wxCouponChannelMapper.insert(record); + } else { record.setUpdateDate(new Date()); wxCouponChannelMapper.updateById(record); - - try{ - if(EnumCouponStatus.COUPON_STATUS_TAKE_OFFF.getCode().equals(record.getStatus()) && couponId != null){ - //同步抖音状态 - spuStatusSyncByCoupon(record,couponId); - } - }catch(Exception e){ - logger.error("send spuStatusSync error: " + e.getMessage()); - } - } - //清除缓存 clearCache(record); return new ResultData(); @@ -207,39 +209,48 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { /** * 前置 该券已审核通过 * //上架该券的审核渠道 - * @param tenantEntity - * @param couponId + * @param wxCoupon */ - public void updateOnlineDouyin(TenantEntity tenantEntity,Long couponId){ + public void updateOnlineDouyin(WxCoupon wxCoupon){ + if(!EnumCouponType.getDouYinType().contains(wxCoupon.getType())){ + return; + } WxCouponChannel updCC = new WxCouponChannel(); - updCC.updateTenantInfo(tenantEntity); - updCC.setCouponId(couponId); + updCC.updateTenantInfo(wxCoupon); + updCC.setCouponId(wxCoupon.getId()); updCC.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN.getCode()); updCC.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); updCC.setUpdateDate(new Date()); wxCouponChannelMapper.updateStatusByTargetAd(updCC); + + spuStatusSyncByCoupon(wxCoupon,wxCoupon.getId()); } /** * //下架该券的审核渠道(如所有其他渠道都已下线) - * @param couponChannel + * @param wxCoupon */ - public void updateTakeOffDouyin(WxCouponChannel couponChannel){ + public void updateTakeOffDouyin(WxCoupon wxCoupon,Long couponChannelId){ + if(!EnumCouponType.getDouYinType().contains(wxCoupon.getType())){ + return; + } WxCouponChannel ccQ = new WxCouponChannel(); - ccQ.updateTenantInfo(couponChannel); - ccQ.setCouponId(couponChannel.getCouponId()); + ccQ.updateTenantInfo(wxCoupon); + ccQ.setCouponId(wxCoupon.getId()); ccQ.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); //Exclude - ccQ.setId(couponChannel.getId()); + ccQ.setId(couponChannelId); ccQ.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN.getCode()); if(wxCouponChannelMapper.selectCountExclude(ccQ) == 0){ WxCouponChannel updCC = new WxCouponChannel(); - updCC.updateTenantInfo(couponChannel); - updCC.setCouponId(couponChannel.getCouponId()); + updCC.updateTenantInfo(wxCoupon); + updCC.setCouponId(wxCoupon.getId()); updCC.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN.getCode()); updCC.setStatus(EnumCouponChannelStatus.STATUS_TAKE_OFFF.getCode()); updCC.setUpdateDate(new Date()); wxCouponChannelMapper.updateStatusByTargetAd(updCC); + + spuStatusSyncByCoupon(wxCoupon,wxCoupon.getId()); } } @@ -873,8 +884,9 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { @Override public ResultData updateOnline(WxCouponChannel wxCouponChannel) { TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectByChannelId(wxCouponChannel.getTenantId(),wxCouponChannel.getId()); - if(ttCouponChannelPoi == null || !EnumSpuSyncStatus.sync_audit_pass.getCode().equals(ttCouponChannelPoi.getLastStatus())){ - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该商品未提交审核或审核未通过"); + if(ttCouponChannelPoi == null || EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_rejection.getCode().equals(ttCouponChannelPoi.getLastStatus())){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); } Date date = new Date(); WxCouponChannel updChannel = new WxCouponChannel(); 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 a456c470d..aeaa4b5a5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -244,8 +244,8 @@ public class WxCouponServiceImpl implements WxCouponService { wxCoupon.setPlat(EnumCouponChannelType.getAppPlat(wxCoupon.getTargetAd()).getCode()); } if(EnumAppPlat.TOUTIAO.getCode().equals(wxCoupon.getPlat())){ - //渠道查询时只查询审核通过的 - wxCoupon.setLastStatus(EnumSpuSyncStatus.sync_audit_pass.getCode()); + //渠道查询时只查询审核通过的(上架的) + wxCoupon.setLastStatus(EnumSpuSyncStatus.sync_put_on.getCode()); } List couponTypes = EnumCouponChannelType.getCouponTypeBy(wxCoupon.getTargetAd()); if(couponTypes.isEmpty()){ From bb2123904d8d524fda5d3d712164a33441532bf0 Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 21 Nov 2022 18:08:06 +0800 Subject: [PATCH 016/144] //coupon brand --- .../V2022111600001__add_mall_permission.sql | 7 +- .../V2022112100001__add_coupon_brand.sql | 200 ++++++++++++++++++ .../java/com/iformall/domain/po/WxCoupon.java | 3 + .../main/resources/mapper/WxCouponMapper.xml | 12 +- 4 files changed, 220 insertions(+), 2 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V2022112100001__add_coupon_brand.sql diff --git a/mallinkAdmin/src/main/resources/db/migration/V2022111600001__add_mall_permission.sql b/mallinkAdmin/src/main/resources/db/migration/V2022111600001__add_mall_permission.sql index 116a0096b..baf83f7d2 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V2022111600001__add_mall_permission.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V2022111600001__add_mall_permission.sql @@ -1,4 +1,9 @@ INSERT INTO `mallink`.`mall_permission`(`id`, `name`, `parent_id`, `available`, `permission`, `resource_type`, `module_color`, `module_color_num`, `url`, `icon`, `version_type`, `sort`) VALUES (648, '抖音平台券', 602, 'Y', NULL, 1, NULL, NULL, 'douyinPlatCoupon', NULL, 0, 648); INSERT INTO `mallink`.`mall_permission`(`id`, `name`, `parent_id`, `available`, `permission`, `resource_type`, `module_color`, `module_color_num`, `url`, `icon`, `version_type`, `sort`) VALUES (649, '抖音品牌券', 602, 'Y', NULL, 1, NULL, NULL, 'douyinBrandCoupon', NULL, 0, 649); -INSERT INTO `mallink`.`mall_sale_type`(`id`, `name`, `type`, `period`, `menus`) VALUES (101, '抖音集团版', 101, 12, '[1, 2, 4, 5, 6, 50, 105, 110, 201, 205, 202, 211, 212, 221, 222, 223, 224, 251, 409, 410, 411, 416, 500, 502, 504, 505, 506, 507, 511, 512, 521, 522, 523, 591, 592, 595, 601, 602, 605, 610, 615, 622, 648, 649, 676, 711, 901, 902, 904, 907, 61501, 61502]'); +INSERT INTO `mallink`.`mall_sale_type`(`id`, `name`, `type`, `period`, `menus`) VALUES (101, '抖音集团版', 101, 12, '[1, 2, 4, 5, 6, 50, 105, 110, 201, 205, 202, 211, 212, 221, 222, 223, 224, 251, 409, 410, 411, 416, 500, 502, 504, 505, 506, 507, 511, 512, 521, 522, 523, 591, 592, 595, 601, 602, 605, 606, 610, 615, 622, 648, 649, 676, 680, 711, 901, 902, 904, 907, 61501, 61502]'); + + +INSERT INTO `mallink`.`mall_permission`(`id`, `name`, `parent_id`, `available`, `permission`, `resource_type`, `module_color`, `module_color_num`, `url`, `icon`, `version_type`, `sort`) VALUES (650, '抖音平台券', 602, 'Y', NULL, 1, NULL, NULL, 'douyinSubPlatCoupon', NULL, 0, 650); + +INSERT INTO `mallink`.`mall_sale_type`(`id`, `name`, `type`, `period`, `menus`) VALUES (102, '抖音集团子版', 102, 12, '[1, 2, 4, 5, 6, 50, 105, 110, 201, 205, 202, 211, 212, 221, 222, 223, 224, 251, 409, 410, 411, 416, 500, 502, 504, 505, 506, 507, 508, 511, 512, 521, 522, 523, 591, 592, 595, 601, 602, 605, 606, 610, 615, 622, 647, 650, 676, 680, 711, 901, 902, 904, 907, 5310, 5320, 61501, 61502]'); diff --git a/mallinkAdmin/src/main/resources/db/migration/V2022112100001__add_coupon_brand.sql b/mallinkAdmin/src/main/resources/db/migration/V2022112100001__add_coupon_brand.sql new file mode 100644 index 000000000..c559df8bd --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V2022112100001__add_coupon_brand.sql @@ -0,0 +1,200 @@ +ALTER TABLE `mallink`.`wx_coupon_0` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_1` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_2` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_3` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_4` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_5` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_6` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_7` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_8` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_9` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_10` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_11` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_12` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_13` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_14` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_15` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_16` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_17` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_18` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_19` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_20` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_21` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_22` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_23` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_24` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_25` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_26` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_27` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_28` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_29` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_30` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_31` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_32` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_33` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_34` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_35` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_36` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_37` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_38` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_39` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_40` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_41` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_42` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_43` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_44` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_45` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_46` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_47` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_48` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_49` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_50` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_51` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_52` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_53` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_54` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_55` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_56` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_57` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_58` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_59` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_60` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_61` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_62` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_63` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_64` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_65` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_66` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_67` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_68` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_69` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_70` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_71` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_72` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_73` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_74` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_75` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_76` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_77` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_78` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_79` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_80` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_81` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_82` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_83` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_84` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_85` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_86` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_87` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_88` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_89` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_90` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_91` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_92` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_93` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_94` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_95` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_96` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_97` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_98` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_99` +ADD COLUMN `brand` bigint(20) COMMENT '品牌' AFTER `make_merchant_id`; \ 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 b39c51cdb..c0016d9b4 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java @@ -255,6 +255,9 @@ public class WxCoupon extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="直连收款门店",name="makeMerchantId") private Long makeMerchantId; + @io.swagger.annotations.ApiModelProperty(value="品牌",name="brand") + private Long brand; + @io.swagger.annotations.ApiModelProperty(value="第三方商品Id",name="goodsId") private String goodsId; diff --git a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml index 9e3af5585..4ce873f6d 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml @@ -6,6 +6,7 @@ + @@ -72,6 +73,7 @@ + @@ -121,7 +123,7 @@ - c.`id`,c.`tenant_id`,c.`parent_tenant_id`,c.`make_merchant_id`,c.`type`,c.`cover_img`,c.`cover_picture`,c.`detail_picture`, + c.`id`,c.`tenant_id`,c.`parent_tenant_id`,c.`make_merchant_id`,c.`brand`,c.`type`,c.`cover_img`,c.`cover_picture`,c.`detail_picture`, c.`title`,c.`sub_title`,c.`item_group`,c.`sale_price`,c.`freight_price`,c.`use_price`,c.`use_limit_rule`,c.`use_limit_quantity`,c.`send_type`, c.`valid_type`,c.`valid_start_date`,c.`valid_end_date`,c.pick_start_date,c.pick_end_date,c.`valid_days`,c.`detail`,c.`price`,c.tail_price,c.orig_price,c.`unit`,c.`remain_inventory`,c.`inventory`, c.`remark`,c.`status`,c.`create_date`,c.`update_date`,c.`business`,c.`sub_business`,c.`support_transfer`,c.`subsidy_num`,c.`subsidy_type`, @@ -147,6 +149,14 @@ and `parent_tenant_id` = #{parentTenantId} + + and `make_merchant_id` = #{makeMerchantId} + + + + and `brand` = #{brand} + + and `type` = #{type} From 263ea368c588bca0d132c7af3b87b610fcfd773f Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Tue, 22 Nov 2022 10:15:33 +0800 Subject: [PATCH 017/144] fix bug --- .../controller/market/WxCouponController.java | 4 +-- .../com/iformall/domain/po/WxCouponMall.java | 4 +++ .../iformall/domain/po/base/TenantEntity.java | 16 ++++++++++ .../iformall/service/WxCouponMallService.java | 2 +- .../service/impl/WxCouponMallServiceImpl.java | 30 +++++++++++++++++-- .../main/resources/mapper/WxMallMapper.xml | 7 +++++ 6 files changed, 58 insertions(+), 5 deletions(-) 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..6ad68d4c7 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -568,7 +568,7 @@ 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("商场查询:平台券商场列表") @@ -589,7 +589,7 @@ public class WxCouponController extends BaseController { //一个商场,每个平台券只有一条记录 wxCouponMall.setMallTenantId(tenantEntity.getTenantId()); wxCouponMall.setProductIds(Arrays.asList(ids)); - List mallList= wxCouponMallService.list(wxCouponMall); + List mallList= wxCouponMallService.list(wxCouponMall,false); if (null == mallList || mallList.size() <= 0 ) { return new ResultData(); } 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/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/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 From 1f627f1313777f231b46474d1e5eb6700ba198b1 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Tue, 22 Nov 2022 10:52:33 +0800 Subject: [PATCH 018/144] fix bug --- .../migration/V2022111500001__plat_coupon.sql | 4 ++- .../java/com/iformall/domain/po/WxCoupon.java | 15 ++++++++ .../iformall/mapper/WxCouponMallMapper.java | 1 + .../service/impl/WxCouponServiceImpl.java | 36 +++++++++++++++++-- .../resources/mapper/WxCouponMallMapper.xml | 3 ++ 5 files changed, 56 insertions(+), 3 deletions(-) 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/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/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} + From f64b88b574afb759e264c66e03adf8e5ef9d8a83 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Tue, 22 Nov 2022 11:17:44 +0800 Subject: [PATCH 019/144] fix bug --- .../controller/market/WxCouponController.java | 43 +++++++++++-------- 1 file changed, 25 insertions(+), 18 deletions(-) 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 6ad68d4c7..55f8e51b8 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -571,34 +571,41 @@ public class WxCouponController extends BaseController { 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,false); - if (null == mallList || mallList.size() <= 0 ) { - return new ResultData(); + 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("商场设置平台券商户") From 9a60b01ad3235461d88c714f12fda05d32652415 Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 22 Nov 2022 11:43:28 +0800 Subject: [PATCH 020/144] //coupon brand --- .../basic/WxProjectConfigController.java | 5 +++-- .../main/java/com/iformall/common/ErrorCode.java | 1 + .../main/java/com/iformall/enums/EnumSaleType.java | 1 + .../java/com/iformall/mapper/WxMerchantMapper.java | 2 ++ .../com/iformall/service/WxMerchantService.java | 1 + .../service/impl/WxMerchantServiceImpl.java | 14 ++++++++++++++ .../impl/WxRentPropertyContractServiceImpl.java | 1 + .../src/main/resources/mapper/WxMerchantMapper.xml | 14 ++++++++++++++ .../basic/WxProjectConfigController.java | 7 ++++--- 9 files changed, 41 insertions(+), 5 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java index b9739d2b4..4ac381cb1 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java @@ -154,7 +154,7 @@ public class WxProjectConfigController extends BaseController { tenantEntity.setTenantId(wxMall.getId().toString()); WxMall parentWxMall = wxMallService.getByTenantInfo(tenantEntity); - if(parentWxMall == null || !EnumSaleType.GROUP.getCode().equals(parentWxMall.getSaleType()) + if(parentWxMall == null || !parentWxMall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode()) || StringUtils.isNotBlank(parentWxMall.getParentTenantId())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); @@ -177,7 +177,8 @@ public class WxProjectConfigController extends BaseController { logger.debug("[" + getIpAddr() + "] WxProjectConfigController::initMall"); try { //集团版 - if(EnumSaleType.GROUP.getCode().equals(wxMall.getSaleType())){ + if(EnumSaleType.GROUP.getCode().equals(wxMall.getSaleType()) + || EnumSaleType.GROUP_v1.getCode().equals(wxMall.getSaleType())){ wxMall.setGroupSupport(EnumGroupSupport.SUPPORT.getCode()); }else{ wxMall.setGroupSupport(EnumGroupSupport.NOT_SUPPORT.getCode()); diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index b34b3b6e8..2fb2ac045 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -113,6 +113,7 @@ public enum ErrorCode{ MERCHANT_BUSER_NOT_VALID(2016, "商户用户不存在或已被禁用"), MERCHANT_HASRENTCONTRACT(2017,"该商户存在计租中合同"), MERCHANT_CODE_IS_FOUND(2018, "商户编码已存在"), + MERCHANT_BRAND_IS_FOUND(2019, "品牌商户已存在"), /** * 券 diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumSaleType.java b/mallinkService/src/main/java/com/iformall/enums/EnumSaleType.java index 5b1f5169c..2379bfa62 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumSaleType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumSaleType.java @@ -13,6 +13,7 @@ public enum EnumSaleType { WX_ENJOY_TRY(4, "速享试用版"), TT_ALL_ROUND(11, "抖音尊享版"), GROUP(100, "集团版"), + GROUP_v1(101, "集团版"), WX_JM_ALL_ROUND(1035001036,"金茂全能版"), ; diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java index d751472a6..acdceeb66 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java @@ -30,6 +30,7 @@ public interface WxMerchantMapper extends CommonMapper { int hasMerchant(WxMerchant wxMerchant); int hasMerchantEncode(WxMerchant wxMerchant); + int hasMerchantBrand(WxMerchant wxMerchant); void updateCreditLocked(WxMerchant wxMerchant); @@ -56,4 +57,5 @@ public interface WxMerchantMapper extends CommonMapper { Map findShopMerchant(@Param("id")Long id); int deleteByUpdate(Long id); + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java index 719d6702f..76e910f84 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java @@ -160,6 +160,7 @@ public interface WxMerchantService { boolean hasMerchant(WxMerchant wxMerchant); boolean hasMerchantEncode(WxMerchant wxMerchant); + boolean hasMerchantBrand(WxMerchant wxMerchant); WxMerchant getMerchantByEncode(String encode); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index 2ea1bc34f..8c486f4af 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -509,9 +509,14 @@ public class WxMerchantServiceImpl implements WxMerchantService { if (hasMerchant(wxMerchant)) { return new ResultData(ErrorCode.MERCHANT_NAME_IS_FOUND); } + //检查商户唯一编码 if (hasMerchantEncode(wxMerchant)) { return new ResultData(ErrorCode.MERCHANT_CODE_IS_FOUND); } + //检查品牌 + if (hasMerchantBrand(wxMerchant)) { + return new ResultData(ErrorCode.MERCHANT_BRAND_IS_FOUND); + } //保存商户商铺的关联 List shopidlist = wxMerchant.getShopids(); if (shopidlist.isEmpty()) { @@ -1026,6 +1031,15 @@ public class WxMerchantServiceImpl implements WxMerchantService { } } + @Override + public boolean hasMerchantBrand(WxMerchant wxMerchant) { + if(wxMerchant.getBrand() != null && wxMallService.isgroupSupport(wxMerchant)){ + wxMerchant.setStatus(EnumMerchantStatus.VALID.getCode()); + return wxMerchantMapper.hasMerchantBrand(wxMerchant) > 0 ? true : false; + } + return false; + } + @Override public WxMerchant getMerchantByEncode(String encode){ return wxMerchantMapper.getMerchantByEncode(encode); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentPropertyContractServiceImpl.java index 7dbaa22a3..5147c1370 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentPropertyContractServiceImpl.java @@ -101,6 +101,7 @@ public class WxRentPropertyContractServiceImpl implements WxRentPropertyContract data.put("status", wfr.getStatus()); data.put("userName", wfr.getUserName()); data.put("remark", wfr.getRemark()); + data.put("updateDate",wfr.getUpdateDate()); result.add(data); } return new ResultData(result); diff --git a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml index f0c4b050c..3a99819ab 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml @@ -313,10 +313,24 @@ + + + update wx_merchant set credit_locked = #{creditLocked} where tenant_id = #{tenantId} diff --git a/mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java b/mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java index d2da2e7a4..c2185a0dc 100644 --- a/mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java +++ b/mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java @@ -174,7 +174,8 @@ public class WxProjectConfigController extends BaseController { logger.debug("[" + getIpAddr() + "] WxProjectConfigController::initMall"); try { //集团版 - if(EnumSaleType.GROUP.getCode().equals(wxMall.getSaleType())){ + if(EnumSaleType.GROUP.getCode().equals(wxMall.getSaleType()) + || EnumSaleType.GROUP_v1.getCode().equals(wxMall.getSaleType())){ wxMall.setGroupSupport(EnumGroupSupport.SUPPORT.getCode()); }else{ wxMall.setGroupSupport(EnumGroupSupport.NOT_SUPPORT.getCode()); @@ -653,7 +654,7 @@ public class WxProjectConfigController extends BaseController { TenantEntity tenantEntity = new TenantEntity(); tenantEntity.setTenantId(tenantId); WxMall parentWxMall = wxMallService.getByTenantInfo(tenantEntity); - if(parentWxMall == null || !EnumSaleType.GROUP.getCode().equals(parentWxMall.getSaleType()) + if(parentWxMall == null || !parentWxMall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode()) || StringUtils.isNotBlank(parentWxMall.getParentTenantId())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); @@ -690,7 +691,7 @@ public class WxProjectConfigController extends BaseController { tenantEntity.setTenantId(tenantId); WxMall parentWxMall = wxMallService.getByTenantInfo(tenantEntity); - if(parentWxMall == null || !EnumSaleType.GROUP.getCode().equals(parentWxMall.getSaleType()) + if(parentWxMall == null || !parentWxMall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode()) || StringUtils.isNotBlank(parentWxMall.getParentTenantId())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); From f2949fe268af81c695fb006d35affcc3b9ac78d7 Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 22 Nov 2022 15:24:28 +0800 Subject: [PATCH 021/144] //coupon brand --- .../controller/basic/WxBrandController.java | 18 ++++++++++----- .../com/iformall/tenant/TenantInfoImpl.java | 2 ++ .../V2022112200001__update_brand.sql | 4 ++++ .../com/iformall/tenant/TenantInfoImpl.java | 2 ++ .../com/iformall/tenant/TenantInfoImpl.java | 2 ++ .../com/iformall/tenant/TenantInfoImpl.java | 2 ++ .../service/impl/WxBrandServiceImpl.java | 4 ++-- .../controller/basic/WxBrandController.java | 22 +++++++++++++------ 8 files changed, 41 insertions(+), 15 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V2022112200001__update_brand.sql diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxBrandController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxBrandController.java index bcbc18009..8ac33d2bc 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxBrandController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxBrandController.java @@ -2,6 +2,8 @@ package com.iformall.controller.basic; import com.github.pagehelper.PageInfo; import com.iformall.annotation.SystemControllerLog; +import com.iformall.annotation.TenantIgnore; +import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; @@ -49,7 +51,7 @@ public class WxBrandController extends BaseController { if (null == wxBrand) { wxBrand = new WxBrand(); } - wxBrand.updateTenantInfo(getTenantInfo()); + wxBrand.setTenantId(getTenantInfo().getFinalTenantId()); wxBrand.setSortColumns(BaseEntity.SortField.Id_DESC); final PageInfo page = wxBrandService.listAsPage(wxBrand, pageNum, pageSize); return new ResultData(page); @@ -59,20 +61,24 @@ public class WxBrandController extends BaseController { @SystemControllerLog(description = "品牌-增加") public ResultData add(@RequestBody WxBrand wxBrand) { logger.debug("[" + getIpAddr() + "] WxBrandController::add"); - wxBrand.updateTenantInfo(getTenantInfo()); + wxBrand.setTenantId(getTenantInfo().getFinalTenantId()); return wxBrandService.save(wxBrand); } + @TenantIgnore @PostMapping("update") @SystemControllerLog(description = "品牌-更新") public ResultData update(@RequestBody WxBrand wxBrand) { logger.debug("[" + getIpAddr() + "] WxBrandController::update"); - wxBrand.updateTenantInfo(getTenantInfo()); + + if(wxBrand.getId() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } if(EnumDelFlag.YES.getCode().equals(wxBrand.getIsDel())){ //判断是否解绑商户 WxMerchant wxMerchant = new WxMerchant(); - wxMerchant.updateTenantInfo(wxBrand); +// wxMerchant.updateTenantInfo(wxBrand); wxMerchant.setIsDel(EnumYesOrNo.NO.getCode()); wxMerchant.setBrand(wxBrand.getId()); @@ -118,10 +124,10 @@ public class WxBrandController extends BaseController { public ResultData hasBrand(String name, Long id) { logger.debug("[" + getIpAddr() + "] WxBrandController::hasBrand"); WxBrand wxBrand = new WxBrand(); - wxBrand.updateTenantInfo(getTenantInfo()); + wxBrand.setId(id); + wxBrand.setTenantId(getTenantInfo().getFinalTenantId()); wxBrand.setName(name); - wxBrand.setId(id); return wxBrandService.hasBrand(wxBrand); } diff --git a/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java b/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java index bffd69cbd..516ece127 100644 --- a/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java +++ b/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java @@ -22,6 +22,7 @@ public class TenantInfoImpl implements TenantInfo { "mall_permission", "mall_sale_type", "mall_user_role", + "wx_brand", "wx_channel", "wx_business", "wx_sub_business", @@ -74,6 +75,7 @@ public class TenantInfoImpl implements TenantInfo { "wx_mall", "wx_appinfo", "wx_authorizer_info", + "wx_brand", "wx_c_user", "tt_c_user", "wx_user_visit", diff --git a/mallinkAdmin/src/main/resources/db/migration/V2022112200001__update_brand.sql b/mallinkAdmin/src/main/resources/db/migration/V2022112200001__update_brand.sql new file mode 100644 index 000000000..591f32362 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V2022112200001__update_brand.sql @@ -0,0 +1,4 @@ +--历史品牌数据 +UPDATE `mallink`.`wx_brand` SET `tenant_id` = `parent_tenant_id` WHERE `parent_tenant_id` is not null and `parent_tenant_id` != ''; + +UPDATE `mallink`.`wx_brand` SET `parent_tenant_id` = null; \ No newline at end of file diff --git a/mallinkBApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java b/mallinkBApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java index db75874e7..1c08c0f19 100644 --- a/mallinkBApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java +++ b/mallinkBApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java @@ -23,6 +23,7 @@ public class TenantInfoImpl implements TenantInfo { "mall_permission", "mall_sale_type", "mall_user_role", + "wx_brand", "wx_channel", "wx_business", "wx_coupon_type", @@ -62,6 +63,7 @@ public class TenantInfoImpl implements TenantInfo { "wx_mall", "wx_appinfo", "wx_authorizer_info", + "wx_brand", "wx_c_user", "tt_c_user", "wx_user_visit", diff --git a/mallinkCApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java b/mallinkCApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java index 136963e46..1fba2c551 100644 --- a/mallinkCApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java +++ b/mallinkCApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java @@ -23,6 +23,7 @@ public class TenantInfoImpl implements TenantInfo { "mall_permission", "mall_sale_type", "mall_user_role", + "wx_brand", "wx_channel", "wx_business", "wx_coupon_type", @@ -67,6 +68,7 @@ public class TenantInfoImpl implements TenantInfo { "wx_mall", "wx_appinfo", "wx_authorizer_info", + "wx_brand", "wx_c_user", "tt_c_user", "wx_user_visit", diff --git a/mallinkNeuPosAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java b/mallinkNeuPosAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java index 136963e46..1fba2c551 100644 --- a/mallinkNeuPosAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java +++ b/mallinkNeuPosAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java @@ -23,6 +23,7 @@ public class TenantInfoImpl implements TenantInfo { "mall_permission", "mall_sale_type", "mall_user_role", + "wx_brand", "wx_channel", "wx_business", "wx_coupon_type", @@ -67,6 +68,7 @@ public class TenantInfoImpl implements TenantInfo { "wx_mall", "wx_appinfo", "wx_authorizer_info", + "wx_brand", "wx_c_user", "tt_c_user", "wx_user_visit", diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBrandServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBrandServiceImpl.java index 17fc75e43..043580740 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBrandServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBrandServiceImpl.java @@ -101,7 +101,7 @@ public class WxBrandServiceImpl implements WxBrandService { @Override public List> queryBrand(TenantEntity tenantEntity) { WxBrand wxBrand = new WxBrand(); - wxBrand.updateTenantInfo(tenantEntity); + wxBrand.setTenantId(tenantEntity.getFinalTenantId()); return wxBrandMapper.queryBrandByTenant(wxBrand); } @@ -115,7 +115,7 @@ public class WxBrandServiceImpl implements WxBrandService { @Override public Map getAllMap(TenantEntity tenantEntity) { WxBrand brandQ = new WxBrand(); - brandQ.updateTenantInfo(tenantEntity); + brandQ.setTenantId(tenantEntity.getFinalTenantId()); List brandList = wxBrandMapper.findList(brandQ); Map map = new HashMap(); if (null != brandList) { diff --git a/mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxBrandController.java b/mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxBrandController.java index 1ad48608f..8ac33d2bc 100644 --- a/mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxBrandController.java +++ b/mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxBrandController.java @@ -2,6 +2,8 @@ package com.iformall.controller.basic; import com.github.pagehelper.PageInfo; import com.iformall.annotation.SystemControllerLog; +import com.iformall.annotation.TenantIgnore; +import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; @@ -9,6 +11,7 @@ import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.WxBrand; import com.iformall.domain.po.WxMerchant; import com.iformall.enums.EnumDelFlag; +import com.iformall.enums.EnumYesOrNo; import com.iformall.service.WxBrandService; import com.iformall.service.WxMerchantService; import io.swagger.annotations.ApiImplicitParam; @@ -48,7 +51,7 @@ public class WxBrandController extends BaseController { if (null == wxBrand) { wxBrand = new WxBrand(); } - wxBrand.updateTenantInfo(getTenantInfo()); + wxBrand.setTenantId(getTenantInfo().getFinalTenantId()); wxBrand.setSortColumns(BaseEntity.SortField.Id_DESC); final PageInfo page = wxBrandService.listAsPage(wxBrand, pageNum, pageSize); return new ResultData(page); @@ -58,22 +61,26 @@ public class WxBrandController extends BaseController { @SystemControllerLog(description = "品牌-增加") public ResultData add(@RequestBody WxBrand wxBrand) { logger.debug("[" + getIpAddr() + "] WxBrandController::add"); - wxBrand.updateTenantInfo(getTenantInfo()); + wxBrand.setTenantId(getTenantInfo().getFinalTenantId()); return wxBrandService.save(wxBrand); } + @TenantIgnore @PostMapping("update") @SystemControllerLog(description = "品牌-更新") public ResultData update(@RequestBody WxBrand wxBrand) { logger.debug("[" + getIpAddr() + "] WxBrandController::update"); - wxBrand.updateTenantInfo(getTenantInfo()); + + if(wxBrand.getId() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } if(EnumDelFlag.YES.getCode().equals(wxBrand.getIsDel())){ //判断是否解绑商户 WxMerchant wxMerchant = new WxMerchant(); - wxMerchant.setIsDel(0); +// wxMerchant.updateTenantInfo(wxBrand); + wxMerchant.setIsDel(EnumYesOrNo.NO.getCode()); wxMerchant.setBrand(wxBrand.getId()); - wxMerchant.updateTenantInfo(wxBrand); List merchantList = wxMerchantService.findList(wxMerchant); if(CollectionUtils.isNotEmpty(merchantList)){ @@ -117,9 +124,10 @@ public class WxBrandController extends BaseController { public ResultData hasBrand(String name, Long id) { logger.debug("[" + getIpAddr() + "] WxBrandController::hasBrand"); WxBrand wxBrand = new WxBrand(); - wxBrand.updateTenantInfo(getTenantInfo()); - wxBrand.setName(name); wxBrand.setId(id); + wxBrand.setTenantId(getTenantInfo().getFinalTenantId()); + wxBrand.setName(name); + return wxBrandService.hasBrand(wxBrand); } From 752ca540f960e699a819163e39c2a3f1a2e5ad10 Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 22 Nov 2022 15:43:26 +0800 Subject: [PATCH 022/144] //coupon brand --- .../com/iformall/service/impl/WxCouponChannelServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 5447e0a3d..8ae1a002b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -203,7 +203,7 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { } //清除缓存 clearCache(record); - return new ResultData(); + return new ResultData(record); } /** From b8f21f993fccd58e11bbc34d54565ec62755ad00 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Tue, 22 Nov 2022 15:47:33 +0800 Subject: [PATCH 023/144] fix bug --- .../com/iformall/service/impl/WxCouponServiceImpl.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 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 4fed358cc..64f49db8f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -1475,10 +1475,14 @@ public class WxCouponServiceImpl implements WxCouponService { } @Override public Map couponMerchantAutoShare(WxCoupon wxCoupon) throws Exception { - if (null == wxCoupon.getMerchantIds() || null == wxCoupon.getId() || null == wxCoupon.getType() || null == wxCoupon.getMerchantType()) { + if (null == wxCoupon.getMerchantIds() || null == wxCoupon.getId()) { throw new MallinkException(Result.ERROR,"缺少参数"); } - EnumAppPlat plat = EnumCouponType.getAppPlat(wxCoupon.getType()); + WxCoupon coupon = wxCouponMapper.selectById(wxCoupon.getId(), wxCoupon.getTenantId()); + if (null == coupon) { + throw new MallinkException(Result.ERROR,"未查询到券"); + } + EnumAppPlat plat = EnumCouponType.getAppPlat(coupon.getType()); EnumPayWay payWay = EnumAppPlat.getPayWay(plat); WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(wxCoupon,plat); if (cAppInfo == null) { @@ -1493,7 +1497,7 @@ public class WxCouponServiceImpl implements WxCouponService { PayShareAdapterService payShareServie = payServiceFactory.getPayShareAdapterService(payWay.getCode(),payAccount.getPayVersion()); //直连模式,如果是单商户券,则都可以;如果是多商户券,抖音则只要开通了支付宝就可以,微信则不行。 if (payMchType == EnumPayMchType.DIRECT) { - if (EnumCouponMerchantType.ONE_MERCHANT.getCode() == wxCoupon.getMerchantType()) { + if (EnumCouponMerchantType.ONE_MERCHANT.getCode() == coupon.getMerchantType()) { return generateMerchantAutoShareAll(wxCoupon.getMerchantIds(),true); }else { if (plat == EnumAppPlat.TOUTIAO) { From 725be532d0e18f5944878f6cfd9cc938fe931010 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Tue, 22 Nov 2022 16:26:02 +0800 Subject: [PATCH 024/144] fix bug --- .../service/impl/WxCouponServiceImpl.java | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 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 64f49db8f..05f86e838 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -1473,16 +1473,30 @@ public class WxCouponServiceImpl implements WxCouponService { } return merchantAutoShareMap; } + @Override public Map couponMerchantAutoShare(WxCoupon wxCoupon) throws Exception { - if (null == wxCoupon.getMerchantIds() || null == wxCoupon.getId()) { + if (null == wxCoupon.getMerchantIds()) { throw new MallinkException(Result.ERROR,"缺少参数"); } - WxCoupon coupon = wxCouponMapper.selectById(wxCoupon.getId(), wxCoupon.getTenantId()); - if (null == coupon) { - throw new MallinkException(Result.ERROR,"未查询到券"); + + Integer couponType = wxCoupon.getType(); + Integer couponMerchantType = wxCoupon.getMerchantType(); + //新增 + if (null == wxCoupon.getId()) { + if (null == wxCoupon.getType() || null == wxCoupon.getMerchantType()) { + throw new MallinkException(Result.ERROR,"缺少参数"); + } + //更新 + }else { + WxCoupon coupon = wxCouponMapper.selectById(wxCoupon.getId(), wxCoupon.getTenantId()); + if (null == coupon) { + throw new MallinkException(Result.ERROR,"未查询到券"); + } + couponType = coupon.getType(); + couponMerchantType = coupon.getMerchantType(); } - EnumAppPlat plat = EnumCouponType.getAppPlat(coupon.getType()); + EnumAppPlat plat = EnumCouponType.getAppPlat(couponType); EnumPayWay payWay = EnumAppPlat.getPayWay(plat); WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(wxCoupon,plat); if (cAppInfo == null) { @@ -1497,7 +1511,7 @@ public class WxCouponServiceImpl implements WxCouponService { PayShareAdapterService payShareServie = payServiceFactory.getPayShareAdapterService(payWay.getCode(),payAccount.getPayVersion()); //直连模式,如果是单商户券,则都可以;如果是多商户券,抖音则只要开通了支付宝就可以,微信则不行。 if (payMchType == EnumPayMchType.DIRECT) { - if (EnumCouponMerchantType.ONE_MERCHANT.getCode() == coupon.getMerchantType()) { + if (EnumCouponMerchantType.ONE_MERCHANT.getCode() == couponMerchantType) { return generateMerchantAutoShareAll(wxCoupon.getMerchantIds(),true); }else { if (plat == EnumAppPlat.TOUTIAO) { From a9a64679b34991cad31279a03e68c8739fba6034 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Tue, 22 Nov 2022 16:50:28 +0800 Subject: [PATCH 025/144] bug --- .../controller/market/WxCouponController.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) 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 55f8e51b8..e8a32540d 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -68,13 +68,28 @@ public class WxCouponController extends BaseController { @ApiImplicitParams({ @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) - @SystemControllerLog(description = "券投放-列表") public ResultData list(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize,Boolean isList) { logger.debug("[" + getIpAddr() + "] WxCouponController::list"); if (wxCoupon == null) wxCoupon = new WxCoupon(); wxCoupon.updateTenantInfo(getTenantInfo()); - - //默认A端建券 + return couponList(wxCoupon, pageNum, pageSize, isList); + } + + @ApiOperation("父券分页列表接口") + @GetMapping("parentCouponList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + public ResultData parentCouponList(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize,Boolean isList) { + logger.debug("[" + getIpAddr() + "] WxCouponController::list"); + if (wxCoupon == null) wxCoupon = new WxCoupon(); + wxCoupon.setTenantId(getTenantInfo().getParentTenantId()); + wxCoupon.setParentTenantId(null); + return couponList(wxCoupon, pageNum, pageSize, isList); + } + + private ResultData couponList(WxCoupon wxCoupon, Integer pageNum, Integer pageSize,Boolean isList) { + //默认A端建券 if(null == wxCoupon.getSourceType()){ wxCoupon.setSourceType(EnumCouponSourceType.COUPONSource_Admin.getCode()); } From a8bc657bf7aa79292ed32c3d49f39e7d289bb877 Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 22 Nov 2022 17:26:32 +0800 Subject: [PATCH 026/144] //coupon --- .../iformall/service/impl/TtCouponGoodsServiceImpl.java | 7 ++++++- .../iformall/service/impl/WxCouponChannelServiceImpl.java | 1 - 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java index d2cc4c90c..c5c6755e2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java @@ -385,7 +385,7 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { WxCouponChannel wxCouponChannelQuery = new WxCouponChannel(); wxCouponChannelQuery.updateTenantInfo(wxCoupon); wxCouponChannelQuery.setCouponId(wxCoupon.getId()); -// wxCouponChannelQuery.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN_LIST.getCode()); + wxCouponChannelQuery.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN.getCode()); wxCouponChannelQuery.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); List wxCouponChannels = wxCouponChannelMapper.findList(wxCouponChannelQuery); if(wxCouponChannels.size() > 0){ @@ -393,6 +393,11 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } } + if(op_type.equals(ttCouponChannelPoi.getLastStatus())){ + logger.info("与线上状态一致, 无需同步{}"+wxCoupon.getId()); + return new ResultData(); + } + try { TtWebService ttWebService = ttMerchantPoiService.getTtWebService(ttCouponChannelPoi); boolean b = ttWebService.getGoodsService().productOperate(null,wxCoupon.getId().toString(),op_type); 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 8ae1a002b..9f732c12f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -660,7 +660,6 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { // 投放渠道 if(channelId.equals(EnumCouponChannelType.COUPON_CHANNEL_ID_LIST.getCode()) || // 列表 - channelId.equals(EnumCouponChannelType.COUPON_CHANNEL_ID_CARD.getCode()) || // 卡频道 channelId.equals(EnumCouponChannelType.COUPON_CHANNEL_ID_PRESS.getCode()) || // 砍价 channelId.equals(EnumCouponChannelType.COUPON_CHANNEL_ID_ORDER_GROUP.getCode()) || // 拼团 From f0d8eb4935316575325f3a823c979dd2a522145f Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Tue, 22 Nov 2022 17:58:05 +0800 Subject: [PATCH 027/144] fix bug --- .../iformall/controller/market/WxCouponController.java | 9 +++++++++ 1 file changed, 9 insertions(+) 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 e8a32540d..23c9ed24f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -406,6 +406,15 @@ public class WxCouponController extends BaseController { logger.debug("[" + getIpAddr() + "] WxCouponController::findById"); return new ResultData(wxCouponService.getVoById(id,getTenantInfo().getTenantId())); } + + @ApiOperation("根据id查询接口") + @GetMapping("/findParentCouponById") + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) + @SystemControllerLog(description = "券投放-查询") + public ResultData findParentCouponById(@RequestParam Long id) { + logger.debug("[" + getIpAddr() + "] WxCouponController::findById"); + return new ResultData(wxCouponService.getVoById(id,getTenantInfo().getParentTenantId())); + } @TenantIgnore @ApiOperation("卡营销列表接口") From dbc58893174eea22454a310677c6ef989d77351a Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Tue, 22 Nov 2022 18:46:05 +0800 Subject: [PATCH 028/144] fix bug --- .../java/com/iformall/controller/market/WxCouponController.java | 2 ++ 1 file changed, 2 insertions(+) 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 23c9ed24f..b0afc8b98 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -75,6 +75,7 @@ public class WxCouponController extends BaseController { return couponList(wxCoupon, pageNum, pageSize, isList); } + @TenantIgnore @ApiOperation("父券分页列表接口") @GetMapping("parentCouponList") @ApiImplicitParams({ @@ -407,6 +408,7 @@ public class WxCouponController extends BaseController { return new ResultData(wxCouponService.getVoById(id,getTenantInfo().getTenantId())); } + @TenantIgnore @ApiOperation("根据id查询接口") @GetMapping("/findParentCouponById") @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) From b6c8579c83831cf06134fd38a9799aabd3ec39c0 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 23 Nov 2022 10:42:12 +0800 Subject: [PATCH 029/144] //coupon --- .../impl/WxCouponChannelServiceImpl.java | 112 +++++++++--------- 1 file changed, 57 insertions(+), 55 deletions(-) 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 9f732c12f..6354f4dc0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -128,68 +128,70 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { public ResultData saveOrUpdate(WxCouponChannel record) { boolean isThrowIn = false;//是否上架 boolean isTakeOff = false;//是否下架 - if (record.getCouponId() != null) { - WxCoupon wxCoupon = wxCouponService.getById(record.getCouponId(),record.getTenantId()); - if (wxCoupon == null){ + WxCoupon wxCoupon = null; + if(record.getId() == null){ + if (record.getCouponId() != null) { + wxCoupon = wxCouponService.getById(record.getCouponId(),record.getTenantId()); + }else{ return new ResultData(ErrorCode.COUPON_IS_EMPTY); } - if (wxCoupon.getStatus().equals(EnumCouponStatus.COUPON_STATUS_TAKE_OFFF)){ - return new ResultData(ErrorCode.COUPON_IS_TAKE_OFF); + if(EnumCouponChannelStatus.STATUS_THROW_IN.getCode().equals(record.getStatus())){ + isThrowIn = true; } - if(EnumCouponType.getDouYinType().contains(wxCoupon.getType())){ - TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(wxCoupon.getTenantId(),wxCoupon.getId()); - if(ttCouponChannelPoi == null || EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) - || EnumSpuSyncStatus.sync_audit_rejection.getCode().equals(ttCouponChannelPoi.getLastStatus())){ - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); + }else{ + WxCouponChannel old = getById(record.getId(),record.getTenantId()); + wxCoupon = wxCouponService.getById(old.getCouponId(),old.getTenantId()); + if(EnumCouponChannelStatus.STATUS_TAKE_OFFF.getCode().equals(old.getStatus()) + && EnumCouponChannelStatus.STATUS_THROW_IN.getCode().equals(record.getStatus())){ + if(record.getTargetAd() == null){ + record.setTargetAd(old.getTargetAd()); } + isThrowIn = true; + }else if (old.getStatus().equals(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()) + && record.getStatus().equals(EnumCouponChannelStatus.STATUS_TAKE_OFFF.getCode())) { + isTakeOff = true; } - if(record.getStatus() != null){ - if(record.getId() != null){ - WxCouponChannel old = getById(record.getId(),record.getTenantId()); - if(old.getStatus().equals(EnumCouponChannelStatus.STATUS_TAKE_OFFF.getCode()) - && record.getStatus().equals(EnumCouponChannelStatus.STATUS_THROW_IN.getCode())){ - if(record.getTargetAd() == null){ - record.setTargetAd(old.getTargetAd()); - } - isThrowIn = true; - }else if (old.getStatus().equals(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()) - && record.getStatus().equals(EnumCouponChannelStatus.STATUS_TAKE_OFFF.getCode())) { - isTakeOff = true; - } - }else{ - if(record.getStatus().equals(EnumCouponChannelStatus.STATUS_THROW_IN.getCode())){ - isThrowIn = true; - } - } - - if(isThrowIn){ - //查找是否该券 在该频道有其他上架 - WxCouponChannel query = new WxCouponChannel(); - query.updateTenantInfo(record); - query.setCouponId(record.getCouponId()); - query.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode());//已上架 - query.setTargetAd(record.getTargetAd()); - List list = wxCouponChannelMapper.findList(query); - if (list != null && list.size() > 0) { - return new ResultData(ErrorCode.COUPON_CHANNEL_IS_EXISTED); - } - //上架该券的审核渠道 - updateOnlineDouyin(wxCoupon); - } + } + if (wxCoupon == null){ + return new ResultData(ErrorCode.COUPON_IS_EMPTY); + } + if (wxCoupon.getStatus().equals(EnumCouponStatus.COUPON_STATUS_TAKE_OFFF)){ + return new ResultData(ErrorCode.COUPON_IS_TAKE_OFF); + } + if(EnumCouponType.getDouYinType().contains(wxCoupon.getType())){ + TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(wxCoupon.getTenantId(),wxCoupon.getId()); + if(ttCouponChannelPoi == null || EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_rejection.getCode().equals(ttCouponChannelPoi.getLastStatus())){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); + } + } - if(isTakeOff){ - wxScreenAdService.updateStatusByCouponChannelId(record.getId(),record,EnumScreenAdStatus.INVALID.getCode()); - //下架拼团券 - wxOrderService.updateOrderGroupStatusByCouponChannelId(record.getId(), record, EnumOrderStatus.ORDER_STATUS_COOPERATING_CANCEL.getCode()); - //修改卡状态 - wxCardInfoMapper.updateTransferStatusByCouponId(record.getCouponId()); - //浮层下架 - wxFloatingLayerMapper.updateStatus(record.getCouponId()); - - //下架该券的审核渠道(如所有渠道都已下线) - updateTakeOffDouyin(wxCoupon,record.getId()); - } + if(isThrowIn){ + //查找是否该券 在该频道有其他上架 + WxCouponChannel query = new WxCouponChannel(); + query.updateTenantInfo(record); + query.setCouponId(record.getCouponId()); + query.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode());//已上架 + query.setTargetAd(record.getTargetAd()); + List list = wxCouponChannelMapper.findList(query); + if (list != null && list.size() > 0) { + return new ResultData(ErrorCode.COUPON_CHANNEL_IS_EXISTED); } + //上架该券的审核渠道 + updateOnlineDouyin(wxCoupon); + } + + if(isTakeOff){ + wxScreenAdService.updateStatusByCouponChannelId(record.getId(),record,EnumScreenAdStatus.INVALID.getCode()); + //下架拼团券 + wxOrderService.updateOrderGroupStatusByCouponChannelId(record.getId(), record, EnumOrderStatus.ORDER_STATUS_COOPERATING_CANCEL.getCode()); + //修改卡状态 + wxCardInfoMapper.updateTransferStatusByCouponId(record.getCouponId()); + //浮层下架 + wxFloatingLayerMapper.updateStatus(record.getCouponId()); + + //下架该券的审核渠道(如所有渠道都已下线) + updateTakeOffDouyin(wxCoupon,record.getId()); } if (record.getId() == null) { From 8552d6609e79dd1159e182a07e02d2b11b840137 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 23 Nov 2022 10:51:50 +0800 Subject: [PATCH 030/144] fix bug --- .../controller/market/WxCouponController.java | 20 +++++++++++++++++-- .../com/iformall/service/WxCouponService.java | 2 +- .../service/impl/WxCouponServiceImpl.java | 4 ++-- 3 files changed, 21 insertions(+), 5 deletions(-) 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 b0afc8b98..2f62dadd8 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -646,12 +646,28 @@ public class WxCouponController extends BaseController { return new ResultData(); } - @ApiOperation("券商户是否自动分账") + @ApiOperation("自己券商户是否自动分账") @PostMapping("/couponMerchantAutoShare") public ResultData couponMerchantAutoShare(@RequestBody WxCoupon wxCoupon) { wxCoupon.updateTenantInfo(getTenantInfo()); try { - Map map = wxCouponService.couponMerchantAutoShare(wxCoupon); + Map map = wxCouponService.couponMerchantAutoShare(wxCoupon,wxCoupon); + return new ResultData(map); + } catch (Exception e) { + return new ResultData(Result.ERROR,e.getMessage()); + } + + } + + @TenantIgnore + @ApiOperation("父券商户是否自动分账") + @PostMapping("/parentCouponMerchantAutoShare") + public ResultData parentCouponMerchantAutoShare(@RequestBody WxCoupon wxCoupon) { + TenantEntity tenantEntity = getTenantInfo(); + wxCoupon.setTenantId(tenantEntity.getParentTenantId()); + wxCoupon.setParentTenantId(null); + try { + Map map = wxCouponService.couponMerchantAutoShare(tenantEntity,wxCoupon); return new ResultData(map); } catch (Exception e) { return new ResultData(Result.ERROR,e.getMessage()); diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index 21cb817a8..887e77369 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -290,5 +290,5 @@ public interface WxCouponService { void setCouponMerchants(WxCoupon wxCoupon) throws Exception; - Map couponMerchantAutoShare(WxCoupon wxCoupon) throws Exception; + Map couponMerchantAutoShare(TenantEntity tenantEntity,WxCoupon wxCoupon) throws Exception; } 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 05f86e838..2f40ced53 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -1475,7 +1475,7 @@ public class WxCouponServiceImpl implements WxCouponService { } @Override - public Map couponMerchantAutoShare(WxCoupon wxCoupon) throws Exception { + public Map couponMerchantAutoShare(TenantEntity tenantEntity,WxCoupon wxCoupon) throws Exception { if (null == wxCoupon.getMerchantIds()) { throw new MallinkException(Result.ERROR,"缺少参数"); } @@ -1498,7 +1498,7 @@ public class WxCouponServiceImpl implements WxCouponService { } EnumAppPlat plat = EnumCouponType.getAppPlat(couponType); EnumPayWay payWay = EnumAppPlat.getPayWay(plat); - WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(wxCoupon,plat); + WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(tenantEntity,plat); if (cAppInfo == null) { throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); } From 912d447c47613b37bfd14b9c7362134fce992b89 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 23 Nov 2022 11:12:17 +0800 Subject: [PATCH 031/144] fix bug --- .../com/iformall/controller/market/WxCouponController.java | 4 ++-- .../src/main/java/com/iformall/enums/EnumCouponType.java | 6 ++++++ .../com/iformall/service/impl/WxCouponServiceImpl.java | 7 ++++++- 3 files changed, 14 insertions(+), 3 deletions(-) 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 2f62dadd8..763b390ef 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -651,7 +651,7 @@ public class WxCouponController extends BaseController { public ResultData couponMerchantAutoShare(@RequestBody WxCoupon wxCoupon) { wxCoupon.updateTenantInfo(getTenantInfo()); try { - Map map = wxCouponService.couponMerchantAutoShare(wxCoupon,wxCoupon); + Map map = wxCouponService.couponMerchantAutoShare(wxCoupon); return new ResultData(map); } catch (Exception e) { return new ResultData(Result.ERROR,e.getMessage()); @@ -667,7 +667,7 @@ public class WxCouponController extends BaseController { wxCoupon.setTenantId(tenantEntity.getParentTenantId()); wxCoupon.setParentTenantId(null); try { - Map map = wxCouponService.couponMerchantAutoShare(tenantEntity,wxCoupon); + Map map = wxCouponService.couponMerchantAutoShare(wxCoupon); return new ResultData(map); } catch (Exception e) { return new ResultData(Result.ERROR,e.getMessage()); diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java b/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java index a714ff03c..df91d2d30 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java @@ -141,4 +141,10 @@ public enum EnumCouponType { throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "券平台错误,未找到对应类型"); } + public static boolean isParentCoupon(Integer couponType) { + if (couponType == COUPON_DOUYIN_PLAT.getCode() || couponType == COUPON_DOUYIN_BRAND.getCode()) { + return true; + } + return false; + } } 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 2f40ced53..7aaff3b97 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -1498,7 +1498,12 @@ public class WxCouponServiceImpl implements WxCouponService { } EnumAppPlat plat = EnumCouponType.getAppPlat(couponType); EnumPayWay payWay = EnumAppPlat.getPayWay(plat); - WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(tenantEntity,plat); + WxAppinfo cAppInfo = null; + if (EnumCouponType.isParentCoupon(couponType)) { + cAppInfo = wxAppinfoService.getCAppInfo(wxCoupon,plat); + }else { + cAppInfo = wxAppinfoService.getCAppInfo(tenantEntity,plat); + } if (cAppInfo == null) { throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); } From 83ab2a981da361a616429238701b7918acfa6b1c Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Wed, 23 Nov 2022 11:13:59 +0800 Subject: [PATCH 032/144] fix bug --- .../com/iformall/controller/market/WxCouponController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 763b390ef..2f62dadd8 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -651,7 +651,7 @@ public class WxCouponController extends BaseController { public ResultData couponMerchantAutoShare(@RequestBody WxCoupon wxCoupon) { wxCoupon.updateTenantInfo(getTenantInfo()); try { - Map map = wxCouponService.couponMerchantAutoShare(wxCoupon); + Map map = wxCouponService.couponMerchantAutoShare(wxCoupon,wxCoupon); return new ResultData(map); } catch (Exception e) { return new ResultData(Result.ERROR,e.getMessage()); @@ -667,7 +667,7 @@ public class WxCouponController extends BaseController { wxCoupon.setTenantId(tenantEntity.getParentTenantId()); wxCoupon.setParentTenantId(null); try { - Map map = wxCouponService.couponMerchantAutoShare(wxCoupon); + Map map = wxCouponService.couponMerchantAutoShare(tenantEntity,wxCoupon); return new ResultData(map); } catch (Exception e) { return new ResultData(Result.ERROR,e.getMessage()); From 41b49d1a80bdedea1e2a066fe35c885ddd0205b3 Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Wed, 23 Nov 2022 21:10:35 +0800 Subject: [PATCH 033/144] fix bug --- .../controller/market/WxCouponController.java | 9 +- .../java/com/iformall/domain/po/WxCoupon.java | 25 +- .../com/iformall/enums/EnumCouponType.java | 23 ++ .../com/iformall/service/WxCouponService.java | 2 +- .../service/impl/WxCouponServiceImpl.java | 273 ++++++++++++------ 5 files changed, 210 insertions(+), 122 deletions(-) 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 2f62dadd8..cf1086978 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -149,6 +149,7 @@ public class WxCouponController extends BaseController { return wxCouponService.list(wxCoupon,wxCoupon, pageNum, pageSize); //全列表 } + @TenantIgnore @ApiOperation("新增接口") @PostMapping("add") @SystemControllerLog(description = "券投放-新增") @@ -180,6 +181,7 @@ public class WxCouponController extends BaseController { return resultData; } + @TenantIgnore @ApiOperation("根据id更新接口") @PostMapping("update") @SystemControllerLog(description = "券投放-更新") @@ -635,11 +637,10 @@ public class WxCouponController extends BaseController { } @ApiOperation("商场设置平台券商户") - @PostMapping("/setMerchants") - public ResultData setMerchant(@RequestBody WxCoupon wxCoupon) { - wxCoupon.updateTenantInfo(getTenantInfo()); + @PostMapping("/setParentCouponMerchants") + public ResultData setMallMerchants(@RequestBody WxCoupon wxCoupon) { try { - wxCouponService.setCouponMerchants(wxCoupon); + wxCouponService.setParentCouponMallMerchants(getTenantInfo(),wxCoupon); } catch (Exception e) { return new ResultData(Result.ERROR,e.getMessage()); } 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 107fae939..36cc5f6c3 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java @@ -206,6 +206,9 @@ public class WxCoupon extends TenantEntity { private Long merchantId; @TableField(exist = false) private String merchantName; + + @TableField(exist = false) + private String childMerchantParams; @TableField(exist = false) @io.swagger.annotations.ApiModelProperty(value="投放频道参数,用来过滤",name="targetAd") @@ -498,27 +501,5 @@ public class WxCoupon extends TenantEntity { } return valid_date; } - - //是不是必须要有商户 - public boolean checkCreateWithMerchants() { - if(type == null) { - return true; - } - if(type == EnumCouponType.COUPON_DOUYIN_PLAT.getCode()) { - return false; - } - 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/enums/EnumCouponType.java b/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java index df91d2d30..d79f975e7 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java @@ -141,6 +141,29 @@ public enum EnumCouponType { throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "券平台错误,未找到对应类型"); } + //是不是必须要有商户 + public static boolean checkCreateWithMerchants(Integer type) { + if(type == null) { + return true; + } + if(type == COUPON_DOUYIN_PLAT.getCode()) { + return false; + } + return true; + } + + //是不是必须要有商场 + public static boolean checkCreateWithMalls(Integer type) { + if(type == null) { + return false; + } + if(type == COUPON_DOUYIN_PLAT.getCode()) { + return true; + } + return false; + } + + public static boolean isParentCoupon(Integer couponType) { if (couponType == COUPON_DOUYIN_PLAT.getCode() || couponType == COUPON_DOUYIN_BRAND.getCode()) { return true; diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index 887e77369..8ce538c49 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -288,7 +288,7 @@ public interface WxCouponService { */ ResultData disable(TenantEntity tenantInfo, Long couponId); - void setCouponMerchants(WxCoupon wxCoupon) throws Exception; + void setParentCouponMallMerchants(TenantEntity mallTenantEntity,WxCoupon wxCoupon) throws Exception; Map couponMerchantAutoShare(TenantEntity tenantEntity,WxCoupon wxCoupon) throws Exception; } 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 7aaff3b97..617d569cf 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -515,15 +515,14 @@ public class WxCouponServiceImpl implements WxCouponService { } //平台券先不设置商户 - List merchantParamList = null; - if (record.checkCreateWithMerchants()) { + Map tenantMerchantMap = null; + if (EnumCouponType.checkCreateWithMerchants(record.getType())) { try { - checkCouponMerchantReceiverAndUpdate(record); + tenantMerchantMap = checkCouponMerchantReceiver(record,true); }catch(Exception e) { return new ResultData(Result.ERROR,e.getMessage()); } - merchantParamList = JSONObject.parseArray(record.getMerchantParams(), JSONObject.class); - }else if (record.checkCreateWithMalls()) { + }else if (EnumCouponType.checkCreateWithMalls(record.getType())) { String[] mallTenantIds = record.getMallTenantIds(); if (null == mallTenantIds || mallTenantIds.length <= 0 ) { return new ResultData(Result.ERROR,"请选择商场"); @@ -533,21 +532,26 @@ public class WxCouponServiceImpl implements WxCouponService { final IdWorker idWorker = IdWorker.get(); if (record.getId() == null) { record.setId(idWorker.nextId()); - if (record.checkCreateWithMerchants()) { - merchantParamList.forEach(merchantParam -> { - WxCouponMerchant cm = new WxCouponMerchant(); - WxCouponMerchantDto wxCouponMerchantDto = parseMerchantParam(merchantParam); - cm.setId(idWorker.nextId()); - cm.updateTenantInfo(record); - cm.setMerchantId(wxCouponMerchantDto.getMerchantId()); - cm.setParameter(wxCouponMerchantDto.getParameter()); - cm.setProductId(record.getId()); - cm.setCreateDate(new Date()); - cm.setUpdateDate(new Date()); - cm.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); - wxCouponMerchantMapper.insert(cm); - }); - }else if (record.checkCreateWithMalls()) { + if (EnumCouponType.checkCreateWithMerchants(record.getType())) { + for (Iterator it = tenantMerchantMap.keySet().iterator();it.hasNext();) { + TenantEntity mallTenant = it.next(); + String merchantParamListString = tenantMerchantMap.get(mallTenant); + List merchantParamList = JSONArray.parseArray(merchantParamListString, JSONObject.class); + merchantParamList.forEach(merchantParam -> { + WxCouponMerchant cm = new WxCouponMerchant(); + WxCouponMerchantDto wxCouponMerchantDto = parseMerchantParam(merchantParam); + cm.setId(idWorker.nextId()); + cm.updateTenantInfo(mallTenant); + cm.setMerchantId(wxCouponMerchantDto.getMerchantId()); + cm.setParameter(wxCouponMerchantDto.getParameter()); + cm.setProductId(record.getId()); + cm.setCreateDate(new Date()); + cm.setUpdateDate(new Date()); + cm.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); + wxCouponMerchantMapper.insert(cm); + }); + } + }else if (EnumCouponType.checkCreateWithMalls(record.getType())) { for (String mt : record.getMallTenantIds()) { WxCouponMall mall = new WxCouponMall(); mall.updateTenantInfo(record); @@ -586,9 +590,14 @@ public class WxCouponServiceImpl implements WxCouponService { record.setInventory(oldCoupon.getInventory() + record.getRemainInventory() - oldCoupon.getRemainInventory()); } } - if (record.checkCreateWithMerchants()) { - updateCouponMerchants(record,merchantParamList,idWorker); - }else if (record.checkCreateWithMalls()) { + if (EnumCouponType.checkCreateWithMerchants(record.getType())) { + try { + updateCouponMerchants(record,idWorker); + } catch (Exception e) { + logger.error("updateCouponMerchants error.",e); + return new ResultData(Result.ERROR,"更新商户出错。"+e.getMessage()); + } + }else if (EnumCouponType.checkCreateWithMalls(record.getType())) { WxCouponMall couponMall = new WxCouponMall(); couponMall.updateTenantInfo(record); couponMall.setProductId(record.getId()); @@ -614,69 +623,107 @@ public class WxCouponServiceImpl implements WxCouponService { return new ResultData(record.getId()); } - private void updateCouponMerchants(WxCoupon record,List merchantParamList,final IdWorker idWorker) { - WxCouponMerchant cmParam = new WxCouponMerchant(); - cmParam.updateTenantInfo(record); - cmParam.setProductId(record.getId()); - List oldList = wxCouponMerchantMapper.findList(cmParam); - merchantParamList.stream().forEach(merchantParam -> { - WxCouponMerchant cm = new WxCouponMerchant(); - WxCouponMerchantDto wxCouponMerchantDto = parseMerchantParam(merchantParam); - cm.updateTenantInfo(record); - cm.setMerchantId(wxCouponMerchantDto.getMerchantId()); - cm.setProductId(record.getId()); - WxCouponMerchant rcm = wxCouponMerchantMapper.selectOne(new QueryWrapper<>(cm)); - if (rcm != null) { - rcm.setParameter(wxCouponMerchantDto.getParameter()); - rcm.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); - rcm.setUpdateDate(new Date()); - wxCouponMerchantMapper.updateById(rcm); - }else { - cm.setId(idWorker.nextId()); - cm.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); - cm.setParameter(wxCouponMerchantDto.getParameter()); - cm.setCreateDate(new Date()); - cm.setUpdateDate(new Date()); - wxCouponMerchantMapper.insert(cm); - } - oldList.removeIf( - old->old.getProductId().equals(record.getId()) && - old.getMerchantId().equals(wxCouponMerchantDto.getMerchantId())); - }); - - oldList.stream().forEach(old->{ - old.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_INVALID.getCode()); - old.setUpdateDate(new Date()); - wxCouponMerchantMapper.updateById(old); - }); + private void updateCouponMerchants(WxCoupon record,final IdWorker idWorker) throws Exception { + Map tenantMerchantParmMap = checkCouponMerchantReceiver(record,false); + for (Iterator it = tenantMerchantParmMap.keySet().iterator();it.hasNext();) { + TenantEntity mallTenantEntity = it.next(); + WxCouponMerchant cmParam = new WxCouponMerchant(); + cmParam.updateTenantInfo(mallTenantEntity); + cmParam.setProductId(record.getId()); + List oldList = wxCouponMerchantMapper.findList(cmParam); + List merchantParamList = JSONArray.parseArray(tenantMerchantParmMap.get(mallTenantEntity),JSONObject.class); + merchantParamList.stream().forEach(merchantParam -> { + WxCouponMerchant cm = new WxCouponMerchant(); + WxCouponMerchantDto wxCouponMerchantDto = parseMerchantParam(merchantParam); + cm.updateTenantInfo(mallTenantEntity); + cm.setMerchantId(wxCouponMerchantDto.getMerchantId()); + cm.setProductId(record.getId()); + WxCouponMerchant rcm = wxCouponMerchantMapper.selectOne(new QueryWrapper<>(cm)); + if (rcm != null) { + rcm.setParameter(wxCouponMerchantDto.getParameter()); + rcm.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); + rcm.setUpdateDate(new Date()); + wxCouponMerchantMapper.updateById(rcm); + }else { + cm.setId(idWorker.nextId()); + cm.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); + cm.setParameter(wxCouponMerchantDto.getParameter()); + cm.setCreateDate(new Date()); + cm.setUpdateDate(new Date()); + wxCouponMerchantMapper.insert(cm); + } + oldList.removeIf( + old->old.getProductId().equals(record.getId()) && + old.getMerchantId().equals(wxCouponMerchantDto.getMerchantId())); + }); + + oldList.stream().forEach(old->{ + old.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_INVALID.getCode()); + old.setUpdateDate(new Date()); + wxCouponMerchantMapper.updateById(old); + }); + } + } - private void checkCouponMerchantReceiverAndUpdate(WxCoupon wxCoupon) throws Exception{ - try { - List merchantList = checkCouponMerchantReceiver(wxCoupon); - if(merchantList.size() > 1){ - wxCoupon.setBusiness(EnumBusiness.BUSINESS_ID6.getCode()); - }else{ - wxCoupon.setBusiness(merchantList.get(0).getBusinessId()); - wxCoupon.setSubBusiness(merchantList.get(0).getSubBusinessId()); + //返回商场商户,key:商场tenant value:merchantParams + private Map checkCouponMerchantReceiver(WxCoupon record,boolean check) throws Exception{ + /* + * 父券对应子商场商户 + */ + if (EnumCouponType.isParentCoupon(record.getType())) { + if (StringUtils.isBlank(record.getChildMerchantParams())){ + throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),"所属商户为空"); + } + List tenantMerchantParamList = JSONObject.parseArray(record.getChildMerchantParams(), JSONObject.class); + if(tenantMerchantParamList == null || tenantMerchantParamList.isEmpty()){ + throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),"所属商户为空"); } - }catch (Exception e) { - throw e; - } + Map retMap = new HashMap(); + for (JSONObject o:tenantMerchantParamList) { + String mallTenantId = o.getString("tenantId"); + String mallParentTenantId = record.getTenantId(); + String mallMerchantParams = o.getString("mallMerchantParams"); + TenantEntity mallTenantEntity = new TenantEntity(); + mallTenantEntity.setTenantId(mallTenantId); + mallTenantEntity.setParentTenantId(mallParentTenantId); + if (check) { + List merchantList = checkCouponOneMallMerchantReceiver(mallTenantEntity,mallMerchantParams,record); + record.setBusiness(EnumBusiness.BUSINESS_ID6.getCode()); + } + retMap.put(mallTenantEntity, mallMerchantParams); + } + return retMap; + }else { + if (check) { + List merchantList = checkCouponOneMallMerchantReceiver(record,record.getMerchantParams(),record); + if(merchantList.size() > 1){ + record.setBusiness(EnumBusiness.BUSINESS_ID6.getCode()); + }else{ + record.setBusiness(merchantList.get(0).getBusinessId()); + record.setSubBusiness(merchantList.get(0).getSubBusinessId()); + } + } + Map retMap = new HashMap(); + TenantEntity tenantEntity = new TenantEntity(); + tenantEntity.updateTenantInfo(record); + retMap.put(tenantEntity, record.getMerchantParams()); + return retMap; + } } - private List checkCouponMerchantReceiver(WxCoupon record) throws Exception{ - List merchantParamList = JSONObject.parseArray(record.getMerchantParams(), JSONObject.class); - - if(merchantParamList == null || merchantParamList.isEmpty()){ + private List checkCouponOneMallMerchantReceiver(TenantEntity mallTenantEntity,String merchantParams,WxCoupon record) throws Exception { + List merchantParamList = JSONObject.parseArray(merchantParams, JSONObject.class); + if(merchantParamList == null || merchantParamList.isEmpty()){ throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),"所属商户为空"); } + List merchantIds = new ArrayList<>(); for (JSONObject o:merchantParamList) { merchantIds.add(o.getLong("id")); } WxMerchant merchantQ = new WxMerchant(); - merchantQ.updateTenantInfo(record); + merchantQ.updateTenantInfo(mallTenantEntity); merchantQ.setIds(merchantIds); List merchantList = wxMerchantService.findList(merchantQ); if(merchantList.size() != merchantParamList.size()){ @@ -691,7 +738,7 @@ public class WxCouponServiceImpl implements WxCouponService { if(record.getSalePrice() != null && record.getSalePrice() > 0) { EnumAppPlat plat = EnumCouponType.getAppPlat(record.getType()); EnumPayWay payWay = EnumAppPlat.getPayWay(plat); - WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(record,plat); + WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(mallTenantEntity,plat); if (cAppInfo == null) { throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); } @@ -720,21 +767,7 @@ public class WxCouponServiceImpl implements WxCouponService { PayShareAdapterService payShareServie = payServiceFactory.getPayShareAdapterService(payWay.getCode(),payAccount.getPayVersion()); if (EnumPayMchType.DIRECT.equals(payMchType)) { - WxMerchant makeMerchant = null; - if(merchantList.size() == 1){ - record.setMerchantType(EnumCouponMerchantType.ONE_MERCHANT.getCode()); - makeMerchant = merchantList.get(0); - }else{ - List adminMerchant = merchantList.stream().filter(m -> EnumMerchantAdmin.PUBLIC_ADMIN.getCode().equals(m.getIsAdmin())).collect(toList()); - if(adminMerchant == null || adminMerchant.isEmpty()){ - throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "多门店券需包含一个商管商户"); - }else if(adminMerchant.size() > 1){ - throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "多门店券只能包含一个商管商户"); - } - record.setMerchantType(EnumCouponMerchantType.MULTIPLE_MERCHANT.getCode()); - makeMerchant = adminMerchant.get(0); - } - + WxMerchant makeMerchant = getDirectPayAccountMerchant(merchantList,record); record.setMakeMerchantId(makeMerchant.getId()); WxProfitSharingReceiver receiver = payShareServie.getReceiver(payAccount, makeMerchant.getId(), null, payMchType.getCode()); @@ -773,6 +806,37 @@ public class WxCouponServiceImpl implements WxCouponService { return merchantList; } + //直联模式收款商户 + private WxMerchant getDirectPayAccountMerchant(List merchantList,WxCoupon coupon) throws Exception{ + WxMerchant makeMerchant = null; + //平台券,集团商管商户 + if (EnumCouponType.COUPON_DOUYIN_PLAT.getCode() == coupon.getType()) { + //TODO 查询集团商管商户 + + //品牌券,查询集团品牌商户 + }else if (EnumCouponType.COUPON_DOUYIN_BRAND.getCode() == coupon.getType()) { + + //商场券 + }else { + if(coupon.getMerchantType() == EnumCouponMerchantType.ONE_MERCHANT.getCode()){ + if (merchantList.size() == 1) { + makeMerchant = merchantList.get(0); + }else { + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "单商户券只能有一个商户"); + } + }else { + List adminMerchant = merchantList.stream().filter(m -> EnumMerchantAdmin.PUBLIC_ADMIN.getCode().equals(m.getIsAdmin())).collect(toList()); + if(adminMerchant == null || adminMerchant.isEmpty()){ + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "多门店券需包含一个商管商户"); + }else if(adminMerchant.size() > 1){ + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "多门店券只能包含一个商管商户"); + } + makeMerchant = adminMerchant.get(0); + } + } + return makeMerchant; + } + //总分模式下不能分账的商户 private boolean toTalPayMchTypeMerchantIsBad(PayShareAdapterService payShareServie,WxPayAccount payAccount, String merchantName,Long merchantId,EnumPayMchType payMchType,EnumAppPlat plat) throws Exception { @@ -1158,7 +1222,9 @@ public class WxCouponServiceImpl implements WxCouponService { public WxCoupon findById(WxCoupon wxCoupon) { WxCoupon query = new WxCoupon(); query.setId(wxCoupon.getId()); - query.setType(wxCoupon.getType()); + if (null != wxCoupon.getType()) { + query.setType(wxCoupon.getType()); + } query.setTenantId(wxCoupon.getTenantId()); List list = wxCouponMapper.findCouponList(query); if(CollectionUtils.isNotEmpty(list)){ @@ -1455,12 +1521,29 @@ public class WxCouponServiceImpl implements WxCouponService { } @Override - public void setCouponMerchants(WxCoupon wxCoupon) throws Exception { + public void setParentCouponMallMerchants(TenantEntity mallTenantEntity,WxCoupon wxCoupon) throws Exception { try { - checkCouponMerchantReceiverAndUpdate(wxCoupon); - List merchantParamList = JSONObject.parseArray(wxCoupon.getMerchantParams(), JSONObject.class); + WxCoupon coupon = wxCouponMapper.selectById(wxCoupon.getId(), mallTenantEntity.getParentTenantId()); + if (null == coupon) { + throw new MallinkException(Result.ERROR,"券未查询到"); + } + if (null == wxCoupon.getMerchantIds()) { + throw new MallinkException(Result.ERROR,"请选择商户"); + } + // + StringBuffer merchantParams = new StringBuffer("{\"tenantId\":").append(mallTenantEntity.getTenantId()).append(",\"mallMerchantParams\":").append("["); + Long[] mids = wxCoupon.getMerchantIds(); + for (int i = 0 ;i < mids.length; i++ ){ + merchantParams.append("{\"id\":").append(mids[i]).append("}"); + if (i < mids.length-1 ) { + merchantParams.append(","); + } + } + merchantParams.append("]"); + coupon.setChildMerchantParams(merchantParams.toString()); + checkCouponMerchantReceiver(coupon,true); final IdWorker idWorker = IdWorker.get(); - updateCouponMerchants(wxCoupon,merchantParamList,idWorker); + updateCouponMerchants(coupon,idWorker); }catch(Exception e) { throw e; } From 398d752ba6d4ef80298de0f7be5adc3117ef453e Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 24 Nov 2022 10:56:58 +0800 Subject: [PATCH 034/144] //coupon merchant --- .../iformall/service/WxMerchantService.java | 5 +++++ .../service/impl/WxCouponServiceImpl.java | 4 ++-- .../service/impl/WxMerchantServiceImpl.java | 22 +++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java index 76e910f84..d8dcd2031 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java @@ -3,6 +3,7 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.dto.WxMerchantDto; +import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxMerchantCorp; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.WxMerchant; @@ -200,4 +201,8 @@ public interface WxMerchantService { List findMerchantListByProduct(TenantEntity tenantEntity,Long productId,boolean hasShop); WxMerchantCorp getMerchantCorp(TenantEntity tenantInfo, Long id); + + WxMerchant findAdmin(TenantEntity tenantEntity); + + WxMerchant findBrandAdmin(TenantEntity tenantEntity, Long brandId); } 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 617d569cf..77db55873 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -812,10 +812,10 @@ public class WxCouponServiceImpl implements WxCouponService { //平台券,集团商管商户 if (EnumCouponType.COUPON_DOUYIN_PLAT.getCode() == coupon.getType()) { //TODO 查询集团商管商户 - + makeMerchant = wxMerchantService.findAdmin(coupon); //品牌券,查询集团品牌商户 }else if (EnumCouponType.COUPON_DOUYIN_BRAND.getCode() == coupon.getType()) { - + makeMerchant = wxMerchantService.findBrandAdmin(coupon,coupon.getBrand()); //商场券 }else { if(coupon.getMerchantType() == EnumCouponMerchantType.ONE_MERCHANT.getCode()){ diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index 8c486f4af..0c418c33b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -1889,4 +1889,26 @@ public class WxMerchantServiceImpl implements WxMerchantService { } return null; } + + @Override + public WxMerchant findAdmin(TenantEntity tenantEntity) { + List adminList = findAdminList(tenantEntity); + if(adminList.size() > 0){ + return adminList.get(0); + } + return null; + } + + @Override + public WxMerchant findBrandAdmin(TenantEntity tenantEntity, Long brand) { + WxMerchant wxMerchant = new WxMerchant(); + wxMerchant.setTenantId(tenantEntity.getFinalTenantId()); + wxMerchant.setStatus(EnumMerchantStatus.VALID.getCode()); + wxMerchant.setBrand(brand); + List list = findList(wxMerchant); + if(list.size() > 0){ + return list.get(0); + } + return null; + } } From 569e489021b34362da8a25dc29bcf7aa99552ac7 Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Thu, 24 Nov 2022 11:15:29 +0800 Subject: [PATCH 035/144] fix bug --- .../controller/WxCouponController.java | 4 ++- .../interceptor/AuthorizationInterceptor.java | 30 +++++++++++++++---- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java index 25d71a990..22080aa0c 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java @@ -72,12 +72,14 @@ public class WxCouponController extends BaseController { @ApiOperation("根据id(couponChannel)查询详情接口") @GetMapping("/couponDetail") @ApiImplicitParams({ - @ApiImplicitParam(name = "couponChannelId", value = "couponChannelId", dataType = "String", paramType = "query", required = true)}) + @ApiImplicitParam(name = "couponChannelId", value = "couponChannelId", dataType = "String", paramType = "query", required = true), + @ApiImplicitParam(name = "mallTenantId", value = "mallTenantId", dataType = "String", paramType = "query", required = false)}) public ResultData couponDetail(String couponChannelId) { if ((StringUtils.isBlank(couponChannelId) || couponChannelId.equalsIgnoreCase(Constant.UNDEFINED)) ) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId为空"); } + Long couponChannelIdL = 0L; try { diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index df5ed6b19..720c66d37 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -63,15 +63,29 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if(cUser == null || cUser.getExpireTime().getTime() < System.currentTimeMillis()){ throw new MallinkException(ErrorCode.NET_TOKEN_INVALID.getCode(), "URL:" + request.getRequestURL() + " token失效,请重新登录"); } - + + //集团版中针对某一商场的业务需要传递mallTenantId + String mallTenantId = request.getHeader("mallTenantId"); + if(StringUtils.isBlank(mallTenantId)){ + mallTenantId = request.getParameter("mallTenantId"); + } + + //设置userId到request里,后续根据userId,获取用户信息 request.setAttribute(Constant.LOGIN_USER_KEY, cUser.getId()); - request.setAttribute(Constant.TENANT_ID, cUser.getTenantId()); + + + if (!StringUtils.isBlank(mallTenantId)) { + request.setAttribute(Constant.TENANT_ID, mallTenantId); + request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getTenantId()); + }else { + request.setAttribute(Constant.TENANT_ID, cUser.getTenantId()); + if (StringUtils.isNotBlank(cUser.getParentTenantId())) { + request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getParentTenantId()); + } + } request.setAttribute(Constant.REQUEST_C_USER_KEY, cUser); request.setAttribute(Constant.APP_INFO,cUser.getAppinfo()); - if (StringUtils.isNotBlank(cUser.getParentTenantId())) { - request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getParentTenantId()); - } if(cUser.basicInfoIs()){ request.setAttribute(Constant.LOGIN_MEMBER_KEY, cUser.getUserId()); } @@ -86,7 +100,11 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if(tenantIgnoreAnnotation != null){ TenantThreadLocal.remove(); }else { - TenantThreadLocal.setCurrentThreadTenant(cUser.getTenantId(), cUser.getParentTenantId()); + if (!StringUtils.isBlank(mallTenantId)) { + TenantThreadLocal.setCurrentThreadTenant(cUser.getTenantId(), cUser.getParentTenantId()); + }else { + TenantThreadLocal.setCurrentThreadTenant(mallTenantId, cUser.getTenantId()); + } } return true; From db3ea4d139d63a33c6d2b05f7f9c63379332164a Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Thu, 24 Nov 2022 11:38:14 +0800 Subject: [PATCH 036/144] fix bug --- .../com/iformall/controller/market/WxCouponController.java | 1 + .../src/main/java/com/iformall/mapper/WxCouponMapper.java | 2 ++ .../com/iformall/service/impl/WxCouponServiceImpl.java | 7 ++++++- .../src/main/resources/mapper/WxCouponMapper.xml | 4 ++++ 4 files changed, 13 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 cf1086978..3fd630fd6 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -636,6 +636,7 @@ public class WxCouponController extends BaseController { } } + @TenantIgnore @ApiOperation("商场设置平台券商户") @PostMapping("/setParentCouponMerchants") public ResultData setMallMerchants(@RequestBody WxCoupon wxCoupon) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java index 33ce2f7d2..64d4a47cc 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java @@ -125,4 +125,6 @@ public interface WxCouponMapper extends CommonMapper { List ttCouponList(TtCouponVo ttCouponVo); Integer findCategoryIdById(@Param("id")Long id,@Param("tenantId")String tenantId); + + void setMakeMerchantId(WxCoupon couponQ); } 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 77db55873..e6e7cf2de 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -811,7 +811,7 @@ public class WxCouponServiceImpl implements WxCouponService { WxMerchant makeMerchant = null; //平台券,集团商管商户 if (EnumCouponType.COUPON_DOUYIN_PLAT.getCode() == coupon.getType()) { - //TODO 查询集团商管商户 + //查询集团商管商户 makeMerchant = wxMerchantService.findAdmin(coupon); //品牌券,查询集团品牌商户 }else if (EnumCouponType.COUPON_DOUYIN_BRAND.getCode() == coupon.getType()) { @@ -1530,6 +1530,7 @@ public class WxCouponServiceImpl implements WxCouponService { if (null == wxCoupon.getMerchantIds()) { throw new MallinkException(Result.ERROR,"请选择商户"); } + Long makeMerchantId = coupon.getMakeMerchantId(); // StringBuffer merchantParams = new StringBuffer("{\"tenantId\":").append(mallTenantEntity.getTenantId()).append(",\"mallMerchantParams\":").append("["); Long[] mids = wxCoupon.getMerchantIds(); @@ -1544,6 +1545,10 @@ public class WxCouponServiceImpl implements WxCouponService { checkCouponMerchantReceiver(coupon,true); final IdWorker idWorker = IdWorker.get(); updateCouponMerchants(coupon,idWorker); + //平台券设置商管商户 + if (null == makeMerchantId) { + wxCouponMapper.setMakeMerchantId(coupon); + } }catch(Exception e) { throw e; } diff --git a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml index 4ce873f6d..1ab55a626 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml @@ -1494,5 +1494,9 @@ where id = #{id} and tenant_id = #{tenantId} + + + update wx_coupon set make_merchant_id = #{makeMerchantId} where id = #{id} and tenant_id = #{tenantId} + From 5b0871a3aafc8dea468e2c3c51a693cc708c3f05 Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Thu, 24 Nov 2022 11:40:08 +0800 Subject: [PATCH 037/144] fix bug --- .../java/com/iformall/service/impl/WxCouponServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) 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 e6e7cf2de..c90f1f61b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -768,6 +768,9 @@ public class WxCouponServiceImpl implements WxCouponService { if (EnumPayMchType.DIRECT.equals(payMchType)) { WxMerchant makeMerchant = getDirectPayAccountMerchant(merchantList,record); + if (null == makeMerchant) { + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "没有收款商户"); + } record.setMakeMerchantId(makeMerchant.getId()); WxProfitSharingReceiver receiver = payShareServie.getReceiver(payAccount, makeMerchant.getId(), null, payMchType.getCode()); From f8b4136230f506a2759f1370a588d45b9e87ef63 Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Thu, 24 Nov 2022 15:22:20 +0800 Subject: [PATCH 038/144] fix bug --- .../java/com/iformall/service/impl/WxCouponServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 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 c90f1f61b..001f422f3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -1535,7 +1535,7 @@ public class WxCouponServiceImpl implements WxCouponService { } Long makeMerchantId = coupon.getMakeMerchantId(); // - StringBuffer merchantParams = new StringBuffer("{\"tenantId\":").append(mallTenantEntity.getTenantId()).append(",\"mallMerchantParams\":").append("["); + StringBuffer merchantParams = new StringBuffer("[{\"tenantId\":").append(mallTenantEntity.getTenantId()).append(",\"mallMerchantParams\":").append("["); Long[] mids = wxCoupon.getMerchantIds(); for (int i = 0 ;i < mids.length; i++ ){ merchantParams.append("{\"id\":").append(mids[i]).append("}"); @@ -1543,13 +1543,13 @@ public class WxCouponServiceImpl implements WxCouponService { merchantParams.append(","); } } - merchantParams.append("]"); + merchantParams.append("]}]"); coupon.setChildMerchantParams(merchantParams.toString()); checkCouponMerchantReceiver(coupon,true); final IdWorker idWorker = IdWorker.get(); updateCouponMerchants(coupon,idWorker); //平台券设置商管商户 - if (null == makeMerchantId) { + if (null == makeMerchantId && null != coupon.getMakeMerchantId()){ wxCouponMapper.setMakeMerchantId(coupon); } }catch(Exception e) { From 0f181b3cf8de2b6ffdc3d229ab9606660a1a3abc Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Thu, 24 Nov 2022 18:36:35 +0800 Subject: [PATCH 039/144] fix bug --- .../java/com/iformall/service/impl/WxCouponServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 001f422f3..1135209f4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -772,7 +772,7 @@ public class WxCouponServiceImpl implements WxCouponService { throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "没有收款商户"); } record.setMakeMerchantId(makeMerchant.getId()); - WxProfitSharingReceiver receiver = payShareServie.getReceiver(payAccount, makeMerchant.getId(), null, payMchType.getCode()); + WxProfitSharingReceiver receiver = payShareServie.getReceiver(makeMerchant, makeMerchant.getId(), null, payMchType.getCode()); if (receiver == null) { throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "[\""+makeMerchant.getName()+"\"]未配置收款账户"); From 0c7372f484994e25fe72695d95edad0dac24d52a Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Thu, 24 Nov 2022 19:17:43 +0800 Subject: [PATCH 040/144] fix bug --- .../service/impl/WxCouponServiceImpl.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 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 1135209f4..4128cb130 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -396,15 +396,20 @@ public class WxCouponServiceImpl implements WxCouponService { private Long parseMerchantId(JSONObject merchantParam){ - return Long.valueOf(merchantParam.getString("id")); + if (!StringUtils.isBlank(merchantParam.getString("id"))){ + return Long.valueOf(merchantParam.getString("id")); + } + return null; } private String parseParameter(JSONObject merchantParam){ return merchantParam.getString("parameter"); } private Integer parseBusiness(JSONObject merchantParam){ String businessIdStr = merchantParam.getString("businessId"); - return Integer.valueOf(businessIdStr); - + if ( !StringUtils.isBlank(businessIdStr)) { + return Integer.valueOf(businessIdStr); + } + return null; } private Integer parseSubBusiness(JSONObject merchantParam){ String subBusinessIdStr = merchantParam.getString("subBusinessId"); @@ -1538,7 +1543,7 @@ public class WxCouponServiceImpl implements WxCouponService { StringBuffer merchantParams = new StringBuffer("[{\"tenantId\":").append(mallTenantEntity.getTenantId()).append(",\"mallMerchantParams\":").append("["); Long[] mids = wxCoupon.getMerchantIds(); for (int i = 0 ;i < mids.length; i++ ){ - merchantParams.append("{\"id\":").append(mids[i]).append("}"); + merchantParams.append("{\"id\":").append(mids[i]).append(",\"businessId\":").append(EnumBusiness.BUSINESS_ID6.getCode()).append("}"); if (i < mids.length-1 ) { merchantParams.append(","); } @@ -1549,7 +1554,7 @@ public class WxCouponServiceImpl implements WxCouponService { final IdWorker idWorker = IdWorker.get(); updateCouponMerchants(coupon,idWorker); //平台券设置商管商户 - if (null == makeMerchantId && null != coupon.getMakeMerchantId()){ + if (null != coupon.getMakeMerchantId()) { wxCouponMapper.setMakeMerchantId(coupon); } }catch(Exception e) { From 8fecf0f24bafe88b32c88ff0e3d694f209104ad0 Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Thu, 24 Nov 2022 19:45:44 +0800 Subject: [PATCH 041/144] fix bug --- .../controller/market/WxCouponController.java | 6 ++++-- .../com/iformall/controller/WxCouponController.java | 3 ++- .../iformall/controller/WxCouponOrderController.java | 2 +- .../com/iformall/controller/WxCouponController.java | 12 +++++++----- .../iformall/controller/WxCouponOrderController.java | 5 +++-- .../iformall/controller/WxPressOrderController.java | 8 ++++++-- .../java/com/iformall/service/WxCouponService.java | 2 +- .../iformall/service/impl/WxCouponServiceImpl.java | 6 +++--- 8 files changed, 27 insertions(+), 17 deletions(-) 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 3fd630fd6..2c1357fd2 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -407,7 +407,8 @@ public class WxCouponController extends BaseController { @SystemControllerLog(description = "券投放-查询") public ResultData findById(@RequestParam Long id) { logger.debug("[" + getIpAddr() + "] WxCouponController::findById"); - return new ResultData(wxCouponService.getVoById(id,getTenantInfo().getTenantId())); + TenantEntity tenantEntity = getTenantInfo(); + return new ResultData(wxCouponService.getVoById(id,tenantEntity.getTenantId(),tenantEntity)); } @TenantIgnore @@ -417,7 +418,8 @@ public class WxCouponController extends BaseController { @SystemControllerLog(description = "券投放-查询") public ResultData findParentCouponById(@RequestParam Long id) { logger.debug("[" + getIpAddr() + "] WxCouponController::findById"); - return new ResultData(wxCouponService.getVoById(id,getTenantInfo().getParentTenantId())); + TenantEntity tenantEntity = getTenantInfo(); + return new ResultData(wxCouponService.getVoById(id,getTenantInfo().getParentTenantId(),tenantEntity)); } @TenantIgnore diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponController.java index 226edae9f..90ecfed59 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponController.java @@ -383,7 +383,8 @@ public class WxCouponController extends BaseController { @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) public ResultData findById(@RequestParam Long id) { logger.debug("[" + getIpAddr() + "] WxCouponController::findById"); - return new ResultData(wxCouponService.getVoById(id,getTenantInfo().getTenantId())); + TenantEntity tenantEntity = getTenantInfo(); + return new ResultData(wxCouponService.getVoById(id,tenantEntity.getTenantId(),tenantEntity)); } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index e57b8ba8d..de3bc24ec 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -210,7 +210,7 @@ public class WxCouponOrderController extends BaseController { return new ResultData(ErrorCode.COUPON_IS_EMPTY); } } else { - wxCouponCVo = wxCouponService.getVoById(wxCouponOrderCVo.getCouponId(),wxMerchantBUser.getTenantId()); + wxCouponCVo = wxCouponService.getVoById(wxCouponOrderCVo.getCouponId(),wxMerchantBUser.getTenantId(),wxMerchantBUser); if (wxCouponCVo == null) { return new ResultData(ErrorCode.COUPON_IS_EMPTY); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java index 22080aa0c..9cd01193e 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java @@ -11,6 +11,7 @@ import java.util.stream.Collectors; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxMiniappThemeValue; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumCouponType; import com.iformall.enums.EnumMerchantStatus; import com.iformall.utils.*; @@ -393,7 +394,8 @@ public class WxCouponController extends BaseController { //WxCouponCVo wxCouponCVo = wxCouponChannelService.findDetailVo(couponChannelIdL); WxCouponCVo wxCouponCVo = null; try { - wxCouponCVo = generateWxCouponCVoex(couponChannelIdL,couponIdL,getTenantInfo().getTenantId()); + TenantEntity tenantEntity = getTenantInfo(); + wxCouponCVo = generateWxCouponCVoex(couponChannelIdL,couponIdL,tenantEntity.getTenantId(),tenantEntity); } catch (IllegalAccessException e) { logger.error("coupon detail fail,copyproperties error" + couponChannelId,e); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "coupon detail fail,copyproperties error" + couponChannelId); @@ -529,13 +531,13 @@ public class WxCouponController extends BaseController { } - private WxCouponCVo generateWxCouponCVoex(Long couponChannelIdL,Long couponIdL,String tenantId) throws IllegalAccessException, InvocationTargetException { + private WxCouponCVo generateWxCouponCVoex(Long couponChannelIdL,Long couponIdL,String couponTenantId,TenantEntity mallTenantEntity) throws IllegalAccessException, InvocationTargetException { if(couponChannelIdL > 0l){ - WxCouponChannel cc = wxCouponChannelService.getById(couponChannelIdL,tenantId); + WxCouponChannel cc = wxCouponChannelService.getById(couponChannelIdL,couponTenantId); if(cc == null){ return null; } - WxCouponCVo wxcv = couponService.getVoById(cc.getCouponId(),tenantId); + WxCouponCVo wxcv = couponService.getVoById(cc.getCouponId(),couponTenantId,mallTenantEntity); if(wxcv == null){ return null; } @@ -554,7 +556,7 @@ public class WxCouponController extends BaseController { wxcv.setTtSpuId(cc.getTtSpuId()); return wxcv; }else if(couponIdL > 0l){ - WxCouponCVo wxcv = couponService.getVoById(couponIdL,tenantId); + WxCouponCVo wxcv = couponService.getVoById(couponIdL,couponTenantId,mallTenantEntity); return wxcv; } return null; diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index 1c61f0132..3e3d7e03a 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -119,7 +119,8 @@ public class WxCouponOrderController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } - WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderService.simpleDetailCUserVo(couponOrderId,getTenantInfo()); + TenantEntity tenantEntity = getTenantInfo(); + WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderService.simpleDetailCUserVo(couponOrderId,tenantEntity); if (wxCouponOrderCVo == null) { return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); } @@ -144,7 +145,7 @@ public class WxCouponOrderController extends BaseController { return new ResultData(ErrorCode.COUPON_IS_EMPTY); } } else { - wxCouponCVo = wxCouponService.getVoById(wxCouponOrderCVo.getCouponId(),wxCouponOrderCVo.getTenantId()); + wxCouponCVo = wxCouponService.getVoById(wxCouponOrderCVo.getCouponId(),wxCouponOrderCVo.getTenantId(),tenantEntity); if (wxCouponCVo == null) { return new ResultData(ErrorCode.COUPON_IS_EMPTY); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java index b4d4d3249..7492605a7 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java @@ -6,6 +6,7 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.WxCUser; import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.WxOrderPress; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxCouponCVo; import com.iformall.enums.EnumOrderPressStatus; import com.iformall.enums.EnumOrderStatus; @@ -91,12 +92,15 @@ public class WxPressOrderController extends BaseController { ValueOperations operations = orderRedisTemplate.opsForValue(); // 缓存 boolean hasKey = orderRedisTemplate.hasKey(key); + + TenantEntity tenantEntity = getTenantInfo(); + if (hasKey) { // 从缓存获取砍价订单信息 order = operations.get(key); } else { // 订单没有入缓存,需要从数据库中读取 - order = wxOrderService.getById(orderId,getTenantInfo().getTenantId()); + order = wxOrderService.getById(orderId,tenantEntity.getTenantId()); if (order != null) { // 订单优化,进缓存 orderRedisTemplate.opsForValue().set(key, order, 3600, TimeUnit.SECONDS); @@ -117,7 +121,7 @@ public class WxPressOrderController extends BaseController { wxCouponCVo = cdOperations.get(cdKey); } else { // 券信息没有入缓存,需要从数据库中读取 - wxCouponCVo = wxCouponService.getVoById(order.getProductId(),order.getTenantId()); + wxCouponCVo = wxCouponService.getVoById(order.getProductId(),order.getTenantId(),tenantEntity); if (wxCouponCVo != null) { // 券详情优化,进缓存 couponCVoRedisTemplate.opsForValue().set(cdKey, wxCouponCVo, 3600, TimeUnit.SECONDS); diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index 8ce538c49..f4ee77673 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -81,7 +81,7 @@ public interface WxCouponService { WxCoupon getHtmlById(Long id,String tenantId); - WxCouponCVo getVoById(Long id,String tenantId); + WxCouponCVo getVoById(Long id,String couponTenantId,TenantEntity mallTenantEntity); WxCouponCVo getVoStatusById(Long id,String tenantId); 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 4128cb130..5a3449e1f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -353,15 +353,15 @@ public class WxCouponServiceImpl implements WxCouponService { } @Override - public WxCouponCVo getVoById(Long id,String tenantId) { - WxCouponCVo wxCouponCVo = wxCouponMapper.findVoDetail(id,tenantId); + public WxCouponCVo getVoById(Long id,String couponTenantId,TenantEntity mallTenantEntity) { + WxCouponCVo wxCouponCVo = wxCouponMapper.findVoDetail(id,couponTenantId); if(wxCouponCVo == null){ return null; } List couponIdList = new ArrayList(); couponIdList.add(wxCouponCVo.getId()); - Map> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIdList, wxCouponCVo,true); + Map> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIdList, mallTenantEntity,true); List merchantList = couponMerchantVoMap.get(wxCouponCVo.getId()); if (merchantList != null) { From 7f23766cee12af7d968f6d403baf76398a8273d5 Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Thu, 24 Nov 2022 19:59:53 +0800 Subject: [PATCH 042/144] fix bug --- .../com/iformall/controller/market/WxCouponController.java | 4 +++- 1 file changed, 3 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 2c1357fd2..95bd0ee6e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -679,6 +679,7 @@ public class WxCouponController extends BaseController { } + @TenantIgnore @ApiOperation("商场设置平台券已完成") @PostMapping("/setPlatCouponFinished") public ResultData setPlatCouponFinished(@RequestBody WxCoupon wxCoupon) { @@ -697,7 +698,8 @@ public class WxCouponController extends BaseController { } - @ApiOperation("商场设置平台券已完成") + @TenantIgnore + @ApiOperation("商场设置平台券未完成") @PostMapping("/setPlatCouponUnFinished") public ResultData setPlatCouponUnFinished(@RequestBody WxCoupon wxCoupon) { try { From 14e9a48a5b73385fef63fa226fe8c447d3f2af91 Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Thu, 24 Nov 2022 20:58:18 +0800 Subject: [PATCH 043/144] fix bug --- .../basic/WxProjectConfigController.java | 18 ++++++++++++++++++ .../controller/market/WxCouponController.java | 16 +++++++++++++++- .../iformall/mapper/WxCouponMallMapper.java | 1 + .../iformall/service/WxCouponMallService.java | 1 + .../service/impl/WxCouponMallServiceImpl.java | 5 +++++ .../resources/mapper/WxCouponMallMapper.xml | 5 +++++ 6 files changed, 45 insertions(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java index 4ac381cb1..de62541d0 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java @@ -118,6 +118,24 @@ public class WxProjectConfigController extends BaseController { // // } + @ApiOperation("查询商场集团列表") + @GetMapping(value = "/childMallList") + @SystemControllerLog(description = "商场基础数据") + @TenantIgnore + public ResultData childMallList(@ModelAttribute WxMall wxMall, Integer pageNum, Integer pageSize) { + logger.debug("[" + getIpAddr() + "] WxProjectConfigController::getMallList"); + try { + if(wxMall == null){ + wxMall = new WxMall(); + } + wxMall.setParentTenantId(this.getTenantInfo().getTenantId()); + PageInfo page = wxMallService.listAsPage(wxMall, pageNum, pageSize); + return new ResultData(page); + }catch (Exception e){ + logger.error(e.getMessage(),e); + return new ResultData(ErrorCode.SYS_SERVER_ERROR); + } + } @ApiOperation("查询商场集团列表") @GetMapping(value = "/mallList") 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 95bd0ee6e..473ee58eb 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -84,8 +84,22 @@ public class WxCouponController extends BaseController { public ResultData parentCouponList(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize,Boolean isList) { logger.debug("[" + getIpAddr() + "] WxCouponController::list"); if (wxCoupon == null) wxCoupon = new WxCoupon(); - wxCoupon.setTenantId(getTenantInfo().getParentTenantId()); + TenantEntity mallTenantEntity = getTenantInfo(); + wxCoupon.setTenantId(mallTenantEntity.getParentTenantId()); wxCoupon.setParentTenantId(null); + //平台券 + if (EnumCouponType.COUPON_DOUYIN_PLAT.getCode() == wxCoupon.getType()) { + //查询已经分配了的parentCouponList + WxCouponMall couponMall = new WxCouponMall(); + couponMall.updateTenantInfo(wxCoupon); + couponMall.setMallTenantId(mallTenantEntity.getTenantId()); + List couponIds = wxCouponMallService.listCouponIds(couponMall); + if (null != couponIds && couponIds.size() > 0 ) { + wxCoupon.setIds(couponIds); + }else { + wxCoupon.setId(-1L); + } + } return couponList(wxCoupon, pageNum, pageSize, isList); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java index 64057ed30..a71c617c8 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java @@ -13,6 +13,7 @@ import org.apache.ibatis.annotations.Param; public interface WxCouponMallMapper extends CommonMapper { List findList(WxCouponMall wxCouponMall); + List findCouponIdList(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 29eeda8af..560398a41 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java @@ -23,6 +23,7 @@ public interface WxCouponMallService { PageInfo listAsPage(WxCouponMall record, Integer pageIndex, Integer pageSize); List list(WxCouponMall wxCouponMall,boolean queryMall); + List listCouponIds(WxCouponMall wxCouponMall); 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 c7ecfc6ed..74cbcf681 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponMallServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponMallServiceImpl.java @@ -61,6 +61,11 @@ public class WxCouponMallServiceImpl implements WxCouponMallService { return list; } + @Override + public List listCouponIds(WxCouponMall wxCouponMall){ + return wxCouponMallMapper.findCouponIdList(wxCouponMall); + } + @Override public PageInfo listAsPage(WxCouponMall record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponMallMapper.findList(record)); diff --git a/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml index 7ca9d1158..7b7e5e3f4 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml @@ -77,6 +77,11 @@ + + update wx_coupon_mall set status = #{status} where `product_id` = #{productId} and `tenant_id` = #{tenantId} and `mall_tenant_id` = #{mallTenantId} From 8a316d8669bfd088a027b1ef2ff3379ca555aafc Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Thu, 24 Nov 2022 21:53:56 +0800 Subject: [PATCH 044/144] fix bug --- .../controller/market/WxCouponController.java | 1 + .../iformall/service/WxCouponMallService.java | 4 +-- .../service/impl/WxCouponMallServiceImpl.java | 25 ++++++++++++++----- 3 files changed, 22 insertions(+), 8 deletions(-) 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 473ee58eb..562779b30 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -615,6 +615,7 @@ public class WxCouponController extends BaseController { return new ResultData(wxCouponMallService.list(wxCouponMall,true)); } + @TenantIgnore @ApiOperation("平台券商场列表") @GetMapping("/getCouponMall") @ApiImplicitParams({ diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java index 560398a41..5fb18b377 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java @@ -25,7 +25,7 @@ public interface WxCouponMallService { List list(WxCouponMall wxCouponMall,boolean queryMall); List listCouponIds(WxCouponMall wxCouponMall); - void finised(String tenantId,Long couponId,String mallTenantId); - void unfinised(String tenantId, Long couponId,Integer couponType, String mallTenantId) throws Exception; + void finised(String couponTenantId,Long couponId,String mallTenantId); + void unfinised(String couponTenantId, 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 74cbcf681..b30f46510 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponMallServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponMallServiceImpl.java @@ -8,6 +8,7 @@ import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumAppPlat; import com.iformall.enums.EnumCouponChannelStatus; import com.iformall.enums.EnumCouponMallStatus; +import com.iformall.enums.EnumCouponMerchantStatus; import com.iformall.enums.EnumCouponType; import com.iformall.enums.EnumSpuSyncStatus; import com.iformall.exception.MallinkException; @@ -31,6 +32,8 @@ public class WxCouponMallServiceImpl implements WxCouponMallService { WxCouponChannelMapper wxCouponChannelMapper; @Autowired WxMallMapper wxMallMapper; + @Autowired + WxCouponMerchantMapper wxCouponMerchantMapper; @Override public List list(WxCouponMall wxCouponMall,boolean queryMall){ @@ -72,9 +75,19 @@ public class WxCouponMallServiceImpl implements WxCouponMallService { } @Override - public void finised(String tenantId, Long couponId, String mallTenantId) { + public void finised(String couponTenantId, Long couponId, String mallTenantId) { + //查询商户设置了没有 + WxCouponMerchant cmParam = new WxCouponMerchant(); + cmParam.setTenantId(mallTenantId); + cmParam.setProductId(couponId); + cmParam.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); + List merchantList = wxCouponMerchantMapper.findList(cmParam); + if (null == merchantList || merchantList.size() <= 0 ) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"未设置有效商户"); + } + WxCouponMall couponMall = new WxCouponMall(); - couponMall.setTenantId(tenantId); + couponMall.setTenantId(couponTenantId); couponMall.setMallTenantId(mallTenantId); couponMall.setProductId(couponId); couponMall.setStatus(EnumCouponMallStatus.FINISED.getCode()); @@ -82,17 +95,17 @@ public class WxCouponMallServiceImpl implements WxCouponMallService { } @Override - public void unfinised(String tenantId, Long couponId,Integer couponType, String mallTenantId) throws Exception{ + public void unfinised(String couponTenantId, Long couponId,Integer couponType, String mallTenantId) throws Exception{ //抖音平台查询的是未提交抖音审核的,微信是未上架的 EnumAppPlat plat = EnumCouponType.getAppPlat(couponType); if (plat == EnumAppPlat.TOUTIAO) { - TtCouponChannelPoi poi = ttCouponChannelPoiMapper.selectById(tenantId, couponId); + TtCouponChannelPoi poi = ttCouponChannelPoiMapper.selectById(couponTenantId, couponId); if (null != poi &&( EnumSpuSyncStatus.isValid(poi.getLastStatus()))) { throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"券已在抖音审核流程中,无法修改。"); } }else if (plat == EnumAppPlat.WX) { WxCouponChannel couponChannel = new WxCouponChannel(); - couponChannel.setTenantId(tenantId); + couponChannel.setTenantId(couponTenantId); couponChannel.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); List clist = wxCouponChannelMapper.findList(couponChannel); if (null != clist && clist.size() > 0 ) { @@ -100,7 +113,7 @@ public class WxCouponMallServiceImpl implements WxCouponMallService { } } WxCouponMall couponMall = new WxCouponMall(); - couponMall.setTenantId(tenantId); + couponMall.setTenantId(couponTenantId); couponMall.setMallTenantId(mallTenantId); couponMall.setProductId(couponId); couponMall.setStatus(EnumCouponMallStatus.UNFINISED.getCode()); From 875a3883fe6f708908ada2bb0a210663798b07c2 Mon Sep 17 00:00:00 2001 From: xhxu Date: Fri, 25 Nov 2022 17:47:06 +0800 Subject: [PATCH 045/144] =?UTF-8?q?//APPID=20=E4=B8=8D=E5=94=AF=E4=B8=80?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/WxProjectConfigController.java | 16 +++-- .../V2022112200001__update_brand.sql | 9 ++- .../iformall/controller/BaseController.java | 4 ++ .../iformall/controller/WxInfoController.java | 2 +- .../iformall/controller/WxMallController.java | 2 +- .../controller/WxMerchantBUserController.java | 5 +- .../controller/WxMicroPayController.java | 2 +- .../controller/WxPayAccountController.java | 7 +- .../controller/WxPayBillController.java | 2 +- .../iformall/controller/BaseController.java | 24 +++++-- .../WxCuserFloatingLayerController.java | 5 +- .../controller/WxOrderController.java | 9 ++- .../controller/WxPayOrderController.java | 2 +- .../controller/base/BaseController.java | 21 ++++++ .../controller/callback/TtPayController.java | 11 ++- .../controller/callback/TtWebController.java | 2 +- .../callback/WxPayBillController.java | 26 ++++++- .../controller/callback/WxPayController.java | 35 ++++++--- .../iformall/controller/BaseController.java | 22 ------ .../schedule/WeChatAccessTokenSchedule.java | 3 +- .../com/iformall/domain/po/WxPayAccount.java | 4 +- .../request/TtPayUnifiedOrderV2Request.java | 2 +- .../com/iformall/mapper/WxAppinfoMapper.java | 10 +-- .../com/iformall/pay/WxMicroPayOrderP.java | 1 + .../com/iformall/pay/WxMicroPayOrderSP.java | 1 + .../java/com/iformall/pay/WxPayOrderP.java | 1 + .../java/com/iformall/pay/WxPayOrderSP.java | 1 + .../iformall/service/WxAppinfoService.java | 5 +- .../service/WxCuserFloatingLayerService.java | 2 +- .../service/WxMerchantBUserService.java | 2 +- .../iformall/service/WxPayBillService.java | 2 +- .../cuser/wx/WxBUserServiceAdapter.java | 8 ++- .../cuser/wx/WxCUserServiceAdapter.java | 8 ++- .../impl/TtMerchantPoiServiceImpl.java | 4 +- .../service/impl/WxAppinfoServiceImpl.java | 29 +++++++- .../impl/WxAuthorizerInfoServiceImpl.java | 25 ++----- .../impl/WxCouponOrderServiceImpl.java | 1 + .../impl/WxCuserFloatingLayerServiceImpl.java | 11 +-- .../impl/WxMerchantBUserServiceImpl.java | 38 ++++++---- .../service/impl/WxOrderServiceImpl.java | 1 + .../service/impl/WxPayBillServiceImpl.java | 7 +- .../impl/WxTemplateMsgServiceImpl.java | 3 +- .../msg/impl/SendSmartAppMsgServiceImpl.java | 2 +- .../impl/SendWeappUniformMsgServiceImpl.java | 5 +- .../douyin/v1/BaseTtPayAdapterService.java | 14 ++++ .../miniApp/TtMiniAppPayAdapterService.java | 3 + .../pay/wx/BaseWxPayAdapterService.java | 11 +++ .../wx/sft/entity/SFTPayCommonMiniAppReq.java | 1 + .../appPay/WxMiniAppPaySFTAdapterService.java | 3 + .../appPay/WxMiniAppPayAdapterService.java | 2 + .../maPay/WxMiniMaPayAdapterService.java | 2 + .../wx/v3/entity/V3PayCommonMiniAppReq.java | 1 + .../appPay/WxMiniAppPayV3AdapterService.java | 1 + .../refund/douyin/TtRefundAdapterService.java | 25 +++++-- .../refund/wx/v2/WxRefundAdapterService.java | 71 ++++++++++--------- .../share/PayShareBaseAdapterService.java | 2 + .../share/douyin/TtPayShareService.java | 14 +++- .../main/java/com/iformall/utils/MaUtil.java | 8 ++- .../main/resources/mapper/WxAppinfoMapper.xml | 10 +++ 59 files changed, 374 insertions(+), 176 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java index 4ac381cb1..dca5729a7 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java @@ -367,7 +367,8 @@ public class WxProjectConfigController extends BaseController { if(byId == null){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"未找到小程序"); } - if(!EnumAppType.B.getCode().equals(byId.getType()) && !EnumAppType.C.getCode().equals(byId.getType())){ + if(!EnumAppType.B.getCode().equals(byId.getType()) + && !EnumAppType.C.getCode().equals(byId.getType())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"小程序类型不支持"); } if(wxAppinfo.getEnable() == null || @@ -799,14 +800,15 @@ public class WxProjectConfigController extends BaseController { @GetMapping("/ttcallback/query/settings") @SystemControllerLog(description = "") @TenantIgnore - public ResultData ttcallbackQuerySettings(String appid) { + public ResultData ttcallbackQuerySettings(String tenantId,String appid) { logger.debug("[" + getIpAddr() + "] WxProjectConfigController::ttcallbackQuerySettings"); try { - WxAppinfo appinfo = wxAppinfoService.getByAppId(appid); + WxAppinfo appinfo = wxAppinfoService.getByAppId(appid,tenantId); if(appinfo == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"未找到对应的小程序"); } - if(!EnumAppPlat.TOUTIAO.getCode().equals(appinfo.getPlat()) || !EnumAppType.C.getCode().equals(appinfo.getType())){ + if(!EnumAppPlat.TOUTIAO.getCode().equals(appinfo.getPlat()) + || !EnumAppType.C.getCode().equals(appinfo.getType())){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"该小程序不支持"); } WxPayAccount payAccount = wxPayAccountService.getById(appinfo.getPayId()); @@ -829,6 +831,7 @@ public class WxProjectConfigController extends BaseController { public ResultData ttcallbackSettings(@RequestBody Map map) { logger.debug("[" + getIpAddr() + "] WxProjectConfigController::ttcallbackSettings"); String appid = map.get("appid"); + String tenantId = map.get("tenantId"); String create_order_callback = map.get("createOrderCallback"); String refund_callback = map.get("refundCallback"); String delivery_qrcode_redirect = map.get("deliveryQrcodeRedirect"); @@ -837,11 +840,12 @@ public class WxProjectConfigController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } try { - WxAppinfo appinfo = wxAppinfoService.getByAppId(appid); + WxAppinfo appinfo = wxAppinfoService.getByAppId(appid,tenantId); if(appinfo == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"未找到对应的小程序"); } - if(!EnumAppPlat.TOUTIAO.getCode().equals(appinfo.getPlat()) || !EnumAppType.C.getCode().equals(appinfo.getType())){ + if(!EnumAppPlat.TOUTIAO.getCode().equals(appinfo.getPlat()) + || !EnumAppType.C.getCode().equals(appinfo.getType())){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"该小程序不支持"); } WxPayAccount payAccount = wxPayAccountService.getById(appinfo.getPayId()); diff --git a/mallinkAdmin/src/main/resources/db/migration/V2022112200001__update_brand.sql b/mallinkAdmin/src/main/resources/db/migration/V2022112200001__update_brand.sql index 591f32362..582a07e34 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V2022112200001__update_brand.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V2022112200001__update_brand.sql @@ -1,4 +1,11 @@ --历史品牌数据 UPDATE `mallink`.`wx_brand` SET `tenant_id` = `parent_tenant_id` WHERE `parent_tenant_id` is not null and `parent_tenant_id` != ''; -UPDATE `mallink`.`wx_brand` SET `parent_tenant_id` = null; \ No newline at end of file +UPDATE `mallink`.`wx_brand` SET `parent_tenant_id` = null; + + + +--appinfo +ALTER TABLE `mallink`.`wx_appinfo` +DROP INDEX `appid_index`, +ADD INDEX `appid_index`(`app_id`, `tenant_id`) USING BTREE; \ No newline at end of file diff --git a/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java index 177b86c8d..5b0afe02f 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java @@ -168,6 +168,10 @@ public class BaseController { return wxAppinfoService.getByAppId(appId); } + public WxAppinfo getAppInfo(String appId,String tenantId) { + return wxAppinfoService.getByAppId(appId,tenantId); + } + public String getIpAddr() { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String ipaddress = IPUtil.getIpAddr(request); diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java index cf534d0c2..c682d452b 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java @@ -446,7 +446,7 @@ public class WxInfoController extends BaseController { CUser user = getCUser(); if (user != null) { - WxAppinfo wxAppinfo = wxAppinfoService.getByAppId(user.getAppId()); + WxAppinfo wxAppinfo = getAppInfo(user.getAppId()); if(wxAppinfo == null){ return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMallController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMallController.java index e9da433f9..7cdf0c0da 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMallController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMallController.java @@ -51,7 +51,7 @@ public class WxMallController extends BaseController { @GetMapping("/getAppIcon") @ApiImplicitParam(name = "appId", value = "appId", dataType = "String", paramType = "query", required = true) public ResultData getAppIcon(String appId) { - WxAppinfo appInfo = wxAppinfoService.getByAppId(appId); + WxAppinfo appInfo = getAppInfo(appId); if (appInfo == null) { return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java index 118f11fad..168333504 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java @@ -149,7 +149,7 @@ public class WxMerchantBUserController extends BaseController { if (StringUtils.isNotBlank(latitude) && StringUtils.isNotBlank(longitude)) { logger.info("B端用户: " + phone + " 登录 IP" + ipaddress + ", 经纬度(" + longitude + "," + latitude + ")"); } - WxAppinfo wxAppinfo = wxAppinfoService.getByAppId(appId); + WxAppinfo wxAppinfo = getAppInfo(appId); if(wxAppinfo == null){ return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } @@ -306,8 +306,7 @@ public class WxMerchantBUserController extends BaseController { if (StringUtils.isBlank(pwd)) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "密码不能为空"); } - - return wxMerchantBUserService.updatePwd(appId, phone, code, pwd); + return wxMerchantBUserService.updatePwd(getTenantInfo(), phone, code, pwd); } } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java index 8edc2fe6a..8edc30d11 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java @@ -299,7 +299,7 @@ public class WxMicroPayController extends BaseController { } WxMerchantBUser bUser = getLoginBUser(); - WxAppinfo appinfo = getAppInfo(bUser.getAppId()); + WxAppinfo appinfo = getAppInfo(bUser.getAppId(),bUser.getTenantId()); try { ResultData rd = wxRefundOrderService.createRefundOrderFromMicroPay(appinfo, orderId, EnumPayType.PAY_B_REFUND, bUser.getId()); return rd; diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxPayAccountController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxPayAccountController.java index 00f545be3..9c21004d0 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxPayAccountController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxPayAccountController.java @@ -40,11 +40,12 @@ public class WxPayAccountController extends BaseController { public ResultData getPayAccount(@RequestBody Map paramMap) { logger.info("/api/payAccount/getPayAccount" + paramMap.toString()); String appId = paramMap.get("appId"); - if (StringUtils.isBlank(appId)) { - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "appId不能为空"); + String tenantId = paramMap.get("tenantId"); + if (StringUtils.isBlank(appId) || StringUtils.isBlank(tenantId)) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } - WxAppinfo wxAppinfo = getAppInfo(appId); + WxAppinfo wxAppinfo = getAppInfo(appId,tenantId); if(wxAppinfo == null){ return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxPayBillController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxPayBillController.java index c6d306f05..70735cb63 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxPayBillController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxPayBillController.java @@ -103,7 +103,7 @@ public class WxPayBillController extends BaseController { //openid String openid = paramMap.get("openId"); //获取小程序配置信息 - WxAppinfo appInfo = getAppInfo(appid); + WxAppinfo appInfo = getAppInfo(appid,getTenantInfo().getTenantId()); //支付账单参数 WxPayBill record = new WxPayBill(); record.setBillId(billId); diff --git a/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java index f50a926e4..55664bcd5 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java @@ -1,6 +1,7 @@ package com.iformall.controller; import cn.binarywang.wx.miniapp.api.WxMaService; +import com.alibaba.fastjson.JSONObject; import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.ResultData; @@ -38,6 +39,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; +import java.util.Map; @RestController public class BaseController { @@ -243,10 +245,6 @@ public class BaseController { RedisCacheUtils.removeCache(objectCommonRedisTemplate, shortKey); } - public WxAppinfo getAppInfo(String appId) { - return wxAppinfoService.getByAppIdFromRedis(appId); - } - public WxMaService getWeappService(String appId) { if(isFmOpen) { return openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); @@ -275,5 +273,23 @@ public class BaseController { return ipaddress; } + /** + * 根据扩展字段获取tenantId + */ + public String getTenantId(String attach){ + if(StringUtils.isNotBlank(attach)){ + try{ + Map map = JSONObject.parseObject(attach, Map.class); + String tenantId = map.get("tenantId").toString(); + if(StringUtils.isNotBlank(tenantId)){ + return tenantId; + } + }catch (Exception e){ + + } + } + return null; + } + } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCuserFloatingLayerController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCuserFloatingLayerController.java index 290d5349c..2a88f7d89 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCuserFloatingLayerController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCuserFloatingLayerController.java @@ -30,14 +30,13 @@ public class WxCuserFloatingLayerController extends BaseController { @Autowired WxCuserFloatingLayerService wxCuserFloatingLayerService; - @AuthIgnore @ApiOperation("获取浮层") @GetMapping("/getFloatingLayer") @ApiImplicitParams({ @ApiImplicitParam(name = "openId", value = "openId", dataType = "String", paramType = "query", required = true), @ApiImplicitParam(name = "appId", value = "appId", dataType = "String", paramType = "query", required = true)}) - public ResultData getAppIcon(String openId, String appId) { - WxFloatingLayer wxFloatingLayer = wxCuserFloatingLayerService.getFloatingLayer(openId, appId); + public ResultData getAppIcon(String openId) { + WxFloatingLayer wxFloatingLayer = wxCuserFloatingLayerService.getFloatingLayer(getTenantInfo(),openId); return new ResultData(Result.SUCCESS, "查询成功", wxFloatingLayer); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java index 04e579b20..5d84c9747 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java @@ -187,6 +187,7 @@ public class WxOrderController extends BaseController { String open_id = msgObject.getString("open_id"); //透传字段 Long composeOrderId = null; + String tenantId = null; try{ String cp_extra = msgObject.getString("cp_extra"); if(StringUtils.isBlank(cp_extra)){ @@ -197,16 +198,17 @@ public class WxOrderController extends BaseController { Map couponMap = JSONObject.parseObject(cp_extra, Map.class); String idstr = couponMap.get("composeOrderId"); composeOrderId = Long.parseLong(idstr); + tenantId = couponMap.get("tenantId"); }catch(Exception e){ } - if(composeOrderId == null){ + if(composeOrderId == null || StringUtils.isBlank(tenantId)){ map.put("err_no",ErrorCode.SYS_PARAMETER_NOT_NULL.getCode()); map.put("err_tips","透传字段格式不正确"); return map; } //验证app - WxAppinfo appinfo = wxAppinfoService.getByAppIdFromRedis(app_id); + WxAppinfo appinfo = wxAppinfoService.getByAppIdFromRedis(app_id,tenantId); if(appinfo == null || !EnumAppPlat.TOUTIAO.getCode().equals(appinfo.getPlat()) || !EnumAppType.C.getCode().equals(appinfo.getType())){ map.put("err_no",ErrorCode.APP_ID_NOT_FOUND.getCode()); @@ -752,9 +754,10 @@ public class WxOrderController extends BaseController { JSONObject msgObject = JSONObject.parseObject(msg); String app_id = msgObject.getString("app_id"); String open_id = msgObject.getString("open_id"); + String cp_extra = msgObject.getString("cp_extra"); //验证app - WxAppinfo appinfo = wxAppinfoService.getByAppId(app_id); + WxAppinfo appinfo = wxAppinfoService.getByAppId(app_id,getTenantId(cp_extra)); if(appinfo == null || !EnumAppPlat.TOUTIAO.getCode().equals(appinfo.getPlat()) || !EnumAppType.C.getCode().equals(appinfo.getType())){ map.put("err_no",ErrorCode.APP_ID_NOT_FOUND.getCode()); diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java index 8ae49592a..97ff599b0 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxPayOrderController.java @@ -113,7 +113,7 @@ public class WxPayOrderController extends BaseController { if (null != wxCUserBasicInfo && EnumCreditLockedStatus.CLOSE.getCode().equals(wxCUserBasicInfo.getStatus())) { return new ResultData(ErrorCode.MEMBER_IS_LOCKED); } - WxAppinfo appInfo = getAppInfo(appId); + WxAppinfo appInfo = wxAppinfoService.getByAppIdFromRedis(appId,getTenantInfo().getTenantId()); if(appInfo == null) { return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } diff --git a/mallinkCallback/src/main/java/com/iformall/controller/base/BaseController.java b/mallinkCallback/src/main/java/com/iformall/controller/base/BaseController.java index 757299519..a1dfca5fb 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/base/BaseController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/base/BaseController.java @@ -1,7 +1,9 @@ package com.iformall.controller.base; +import com.alibaba.fastjson.JSONObject; import com.iformall.domain.po.base.TenantEntity; import com.iformall.utils.IPUtil; +import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.RestController; @@ -13,6 +15,7 @@ import java.beans.PropertyEditorSupport; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Map; @RestController public class BaseController { @@ -44,4 +47,22 @@ public class BaseController { String ipaddress = IPUtil.getIpAddr(request); return ipaddress; } + + /** + * 根据扩展字段获取tenantId + */ + public String getTenantId(String attach){ + if(StringUtils.isNotBlank(attach)){ + try{ + Map map = JSONObject.parseObject(attach, Map.class); + String tenantId = map.get("tenantId").toString(); + if(StringUtils.isNotBlank(tenantId)){ + return tenantId; + } + }catch (Exception e){ + + } + } + return null; + } } diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/TtPayController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/TtPayController.java index c4f38faba..6ede014bf 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/TtPayController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/TtPayController.java @@ -100,6 +100,7 @@ public class TtPayController extends BaseController { Map pMap = JSONObject.parseObject(msg, Map.class); String appid; + String tenantId; WxAppinfo appinfo; WxPayAccount payAccount; Boolean is2_0 = false; @@ -111,7 +112,9 @@ public class TtPayController extends BaseController { String nonce = request.getHeader("Byte-Nonce-Str"); appid = (String) pMap.get("app_id"); - appinfo = appinfoService.getByAppId(appid); + String cp_extra = (String) pMap.get("cp_extra"); + tenantId = getTenantId(cp_extra); + appinfo = appinfoService.getByAppId(appid,tenantId); payAccount = payAccountService.getById(appinfo.getPayId()); TtPayService ttPayService = maUtil.getTtPayService(appinfo, payAccount); @@ -134,7 +137,9 @@ public class TtPayController extends BaseController { String nonce = (String) parameterMap.get("nonce"); appid = (String) pMap.get("appid"); - appinfo = appinfoService.getByAppId(appid); + String cp_extra = (String) pMap.get("cp_extra"); + tenantId = getTenantId(cp_extra); + appinfo = appinfoService.getByAppId(appid,tenantId); payAccount = payAccountService.getById(appinfo.getPayId()); Map paramMap = new HashMap<>(); @@ -207,6 +212,7 @@ public class TtPayController extends BaseController { } Map map = new HashMap<>(); + map.put("tenantId",tenantId); map.put("appid",appid); map.put("cp_refundno",cp_refundno); map.put("status",status); @@ -216,6 +222,7 @@ public class TtPayController extends BaseController { String jsonMsg = JSON.toJSONString(map); FmInsideNotifyRefundSuccessMsg refundSuccessMsg = new FmInsideNotifyRefundSuccessMsg(); + refundSuccessMsg.setTenantId(tenantId); refundSuccessMsg.setMsgType(EnumMsgRecordType.INSIDE_NOTIFY_REFUND_SUCCESS.getCode()); refundSuccessMsg.setDelayTimeLevel(3); refundSuccessMsg.setPayWay(EnumPayWay.PAY_WAY_TT.getCode()); diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/TtWebController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/TtWebController.java index 7f0c413d8..c5056a84b 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/TtWebController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/TtWebController.java @@ -109,7 +109,7 @@ public class TtWebController extends BaseController { // String status = (String) content.get("status"); TtCouponChannelPoi couponChannelPoi = new TtCouponChannelPoi(); - couponChannelPoi.updateTenantInfo(appInfo); +// couponChannelPoi.updateTenantInfo(appInfo); couponChannelPoi.setSpuId(product_id); if("FAIL".equals(status)){ couponChannelPoi.setLastStatus(EnumSpuSyncStatus.sync_audit_rejection.getCode()); diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxPayBillController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxPayBillController.java index 0985dc963..8ed3504f5 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxPayBillController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxPayBillController.java @@ -1,13 +1,16 @@ package com.iformall.controller.callback; +import com.alibaba.fastjson.JSON; import com.iformall.controller.base.BaseController; import com.iformall.enums.EnumPayVersion; import com.iformall.enums.EnumPayWay; import com.iformall.exception.BizMessageException; import com.iformall.exception.MallinkException; import com.iformall.pay.WxPayment; +import com.iformall.service.MailService; import com.iformall.service.WxPayBillService; import com.iformall.service.WxRefundOrderService; +import com.iformall.utils.DateUtils; import com.iformall.utils.XmlUtil; import org.apache.commons.io.IOUtils; import org.jdom2.JDOMException; @@ -24,6 +27,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; +import java.util.Date; import java.util.Map; import java.util.SortedMap; import java.util.TreeMap; @@ -37,6 +41,12 @@ public class WxPayBillController extends BaseController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); + @Autowired + private String fmExceptionEmails; + + @Autowired + private MailService mailService; + @Autowired private WxPayBillService wxPayBillService; @@ -69,7 +79,8 @@ public class WxPayBillController extends BaseController { try { paramMap = WxPayment.xmlToMap(resultxml); logger.info("微信支付回调, notify, param: " + paramMap.toString() ); - String response = wxPayBillService.notify(paramMap, EnumPayWay.PAY_WAY_WECHAT); + String attach = paramMap.get("attach"); + String response = wxPayBillService.notify(getTenantId(attach),paramMap, EnumPayWay.PAY_WAY_WECHAT); logger.info("微信支付回调, notify success, req : " + resultxml + ", resp: " + response.toString()); return response; } catch (BizMessageException e) { @@ -121,6 +132,7 @@ public class WxPayBillController extends BaseController { xml = IOUtils.toString(request.getInputStream(), Charset.forName("UTF-8")); logger.info(xml); paramMap = WxPayment.xmlToMap(xml); + response = wxRefundOrderService.notify(paramMap, EnumPayWay.PAY_WAY_WECHAT,EnumPayVersion.WX_PAY_V2); logger.info("refund wxpay, notify success, req : " + xml + ", resp: " + response.toString()); return response; @@ -160,7 +172,17 @@ public class WxPayBillController extends BaseController { xml = IOUtils.toString(request.getInputStream(), Charset.forName("UTF-8")); paramMap = WxPayment.xmlToMap(xml); logger.info("share wxpay, notify, param: " + xml ); - response = wxPayBillService.notify(paramMap, EnumPayWay.PAY_WAY_WECHAT); + //发邮件 + String[] receivers = fmExceptionEmails.split(","); + StringBuilder sb = new StringBuilder(); + sb.append(DateUtils.date2String(new Date())); + sb.append("\n"); + sb.append("分账回调 :WxPayBillController"); + sb.append("\n"); + sb.append(JSON.toJSONString(paramMap)); + //发送邮件 + mailService.sendSimpleMail(receivers, "排查回调位置", sb.toString()); +// response = wxPayBillService.notify(paramMap, EnumPayWay.PAY_WAY_WECHAT); logger.info("share wxpay, notify success, req : " + xml + ", resp: " + response.toString()); return response; } catch (BizMessageException e) { diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxPayController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxPayController.java index 192324f34..060905998 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxPayController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxPayController.java @@ -10,9 +10,11 @@ import com.iformall.exception.BizMessageException; import com.iformall.exception.MallinkException; import com.iformall.mq.MqBaseProducer; import com.iformall.pay.WxPayment; +import com.iformall.service.MailService; import com.iformall.service.WxPayOrderService; import com.iformall.service.WxRefundOrderService; import com.iformall.service.WxSubsidyService; +import com.iformall.utils.DateUtils; import com.iformall.utils.XmlUtil; import org.apache.commons.io.IOUtils; import org.jdom2.JDOMException; @@ -32,10 +34,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; -import java.util.HashMap; -import java.util.Map; -import java.util.SortedMap; -import java.util.TreeMap; +import java.util.*; @RestController @RequestMapping("/wxPay/notify") @@ -51,14 +50,20 @@ public class WxPayController extends BaseController { @Autowired private MqBaseProducer mqBaseProducer; + + @Autowired + private String fmExceptionEmails; + + @Autowired + private MailService mailService; /** * * @return 接收微信异步通知 * @throws Exception 可能产生的任何异常 */ - @RequestMapping(value = "/pay", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) + @RequestMapping(value = "/pay/{tenantId}", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @ResponseBody - public String _payNotify(HttpServletRequest request) throws IOException, JDOMException { + public String _payNotify(@PathVariable String tenantId,HttpServletRequest request) throws IOException, JDOMException { logger.info("[" +getIpAddr() + "]微信支付回调"); SortedMap resultMap = new TreeMap(); resultMap.put("return_code", "SUCCESS"); @@ -139,8 +144,8 @@ public class WxPayController extends BaseController { * @return 接收微信退款异步通知 * @throws Exception 可能产生的任何异常 */ - @RequestMapping(value = "/refund") - public String __refundNotify(HttpServletRequest request) throws Exception { + @RequestMapping(value = "/refund/{tenantId}") + public String __refundNotify(@PathVariable String tenantId,HttpServletRequest request) throws Exception { logger.info("[" +getIpAddr() + "]微信退款回调"); Map paramMap = null; String response = ""; @@ -152,6 +157,7 @@ public class WxPayController extends BaseController { String jsonMsg = JSON.toJSONString(paramMap); FmInsideNotifyRefundSuccessMsg refundSuccessMsg = new FmInsideNotifyRefundSuccessMsg(); + refundSuccessMsg.setTenantId(tenantId); refundSuccessMsg.setMsgType(EnumMsgRecordType.INSIDE_NOTIFY_REFUND_SUCCESS.getCode()); refundSuccessMsg.setDelayTimeLevel(3); refundSuccessMsg.setPayWay(EnumPayWay.PAY_WAY_WECHAT.getCode()); @@ -216,6 +222,7 @@ public class WxPayController extends BaseController { String jsonMsg = JSON.toJSONString(paramMap); FmInsideNotifyRefundSuccessMsg refundSuccessMsg = new FmInsideNotifyRefundSuccessMsg(); + refundSuccessMsg.setTenantId(tenantId); refundSuccessMsg.setMsgType(EnumMsgRecordType.INSIDE_NOTIFY_REFUND_SUCCESS.getCode()); refundSuccessMsg.setDelayTimeLevel(3); refundSuccessMsg.setPayWay(EnumPayWay.PAY_WAY_WECHAT.getCode()); @@ -262,8 +269,18 @@ public class WxPayController extends BaseController { try { xml = IOUtils.toString(request.getInputStream(), Charset.forName("UTF-8")); paramMap = WxPayment.xmlToMap(xml); + //发邮件 + String[] receivers = fmExceptionEmails.split(","); + StringBuilder sb = new StringBuilder(); + sb.append(DateUtils.date2String(new Date())); + sb.append("\n"); + sb.append("分账回调 WxPayController:"); + sb.append("\n"); + sb.append(JSON.toJSONString(paramMap)); + //发送邮件 + mailService.sendSimpleMail(receivers, "排查回调位置", sb.toString()); logger.info("share wxpay, notify, param: " + xml ); - response = wxPayOrderService.shareNotify(paramMap, EnumPayWay.PAY_WAY_WECHAT,EnumPayVersion.WX_PAY_V2); +// response = wxPayOrderService.shareNotify(paramMap, EnumPayWay.PAY_WAY_WECHAT,EnumPayVersion.WX_PAY_V2); logger.info("share wxpay, notify success, req : " + xml + ", resp: " + response.toString()); return response; } catch (BizMessageException e) { diff --git a/mallinkPosApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkPosApi/src/main/java/com/iformall/controller/BaseController.java index 9de3e25f0..018a5b523 100644 --- a/mallinkPosApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkPosApi/src/main/java/com/iformall/controller/BaseController.java @@ -56,28 +56,6 @@ public class BaseController { }); } - public WxAppinfo getAppInfo(String appId) { - return wxAppinfoService.getByAppId(appId); - } - - public WxMaService getWeappService(String appId) { - if(isFmOpen) { - return openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); - } else { - WxAppinfo appinfo = wxAppinfoService.getByAppId(appId); - WxMaService service = maUtil.getWeappService(appinfo); - return service; - } - } - - public WxMaService getWeappServiceByAppInfo(WxAppinfo appinfo) { - if(!isFmOpen) { - WxMaService service = maUtil.getWeappService(appinfo); - return service; - } - return null; - } - public String getIpAddr() { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String ipaddress = IPUtil.getIpAddr(request); diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/WeChatAccessTokenSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/WeChatAccessTokenSchedule.java index a8ab2ceb4..7f8317e2a 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/WeChatAccessTokenSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/WeChatAccessTokenSchedule.java @@ -52,10 +52,11 @@ public class WeChatAccessTokenSchedule { try { String accessToken = wxMaService.getAccessToken(true); WxAppinfo updateAppInfo = new WxAppinfo(); + updateAppInfo.setAppId(appinfo.getAppId()); updateAppInfo.setAccessToken(accessToken); updateAppInfo.setLastTokenTime(new Date()); updateAppInfo.setExpiresIn(7200); - wxAppinfoMapper.updateById(updateAppInfo); + wxAppinfoMapper.updateAccessToken(updateAppInfo); } catch (WxErrorException e) { logger.error(e.getMessage()); } catch (Exception e) { diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxPayAccount.java b/mallinkService/src/main/java/com/iformall/domain/po/WxPayAccount.java index 9d18c0054..58a50fa3b 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxPayAccount.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxPayAccount.java @@ -81,13 +81,13 @@ public class WxPayAccount extends TenantEntity { return notifyUrl + "/pay/v3/"+this.getTenantId(); } public String getPayNotifyUrl() { - return notifyUrl + "/pay"; + return notifyUrl + "/pay/"+this.getTenantId(); } public String getRefundNotifyV3Url() { return notifyUrl + "/refund/v3/"+this.getTenantId(); } public String getRefundNotifyUrl() { - return notifyUrl + "/refund"; + return notifyUrl + "/refund/"+this.getTenantId(); } public String getSubsidyNotifyV3Url() { return notifyUrl + "/subsidyPay/v3/"+this.getTenantId(); diff --git a/mallinkService/src/main/java/com/iformall/douyin/payv2/request/TtPayUnifiedOrderV2Request.java b/mallinkService/src/main/java/com/iformall/douyin/payv2/request/TtPayUnifiedOrderV2Request.java index c24e50a9f..295a7652c 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/payv2/request/TtPayUnifiedOrderV2Request.java +++ b/mallinkService/src/main/java/com/iformall/douyin/payv2/request/TtPayUnifiedOrderV2Request.java @@ -97,7 +97,7 @@ public class TtPayUnifiedOrderV2Request implements Serializable { * 开发者自定义透传字段,不支持二进制,长度 <= 2048 byte */ @SerializedName(value = "cp_extra") - private PageEntry cpExtra; + private String cpExtra; /** * 否 diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxAppinfoMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxAppinfoMapper.java index 75f538f44..414561c14 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxAppinfoMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxAppinfoMapper.java @@ -7,10 +7,10 @@ import com.iformall.domain.po.WxAppinfo; public interface WxAppinfoMapper extends CommonMapper { List findList(WxAppinfo wxAppinfo); - - + WxAppinfo findByAppId(String appId); - - - + + WxAppinfo findByAppId(String appId,String tenantId); + + int updateAccessToken(WxAppinfo updateApp); } diff --git a/mallinkService/src/main/java/com/iformall/pay/WxMicroPayOrderP.java b/mallinkService/src/main/java/com/iformall/pay/WxMicroPayOrderP.java index 79073d506..c00678fde 100644 --- a/mallinkService/src/main/java/com/iformall/pay/WxMicroPayOrderP.java +++ b/mallinkService/src/main/java/com/iformall/pay/WxMicroPayOrderP.java @@ -14,6 +14,7 @@ public class WxMicroPayOrderP { private String nonce_str; // 随机字符串 private String sign; // 签名 private String body; // 商品简单描述 128 + private String attach; // 附加数据 private String out_trade_no; // 商户订单号 private Integer total_fee; // 支付金额 private String spbill_create_ip; // 支付IP diff --git a/mallinkService/src/main/java/com/iformall/pay/WxMicroPayOrderSP.java b/mallinkService/src/main/java/com/iformall/pay/WxMicroPayOrderSP.java index 8e228b055..ae67d67b7 100644 --- a/mallinkService/src/main/java/com/iformall/pay/WxMicroPayOrderSP.java +++ b/mallinkService/src/main/java/com/iformall/pay/WxMicroPayOrderSP.java @@ -17,6 +17,7 @@ public class WxMicroPayOrderSP { private String sign; // 签名 private String sign_type; // 签名类型 private String body; // 商品简单描述 128 + private String attach; // 附加数据 private String out_trade_no; // 商户订单号 private Integer total_fee; // 支付金额 private String spbill_create_ip; // 支付IP diff --git a/mallinkService/src/main/java/com/iformall/pay/WxPayOrderP.java b/mallinkService/src/main/java/com/iformall/pay/WxPayOrderP.java index b491581da..7a64b1a8a 100644 --- a/mallinkService/src/main/java/com/iformall/pay/WxPayOrderP.java +++ b/mallinkService/src/main/java/com/iformall/pay/WxPayOrderP.java @@ -13,6 +13,7 @@ public class WxPayOrderP { private String nonce_str; // 随机字符串 private String sign; // 签名 private String body; // 商品简单描述 128 + private String attach; // 附加数据 private String out_trade_no; // 商户订单号 private Integer total_fee; // 支付金额 private String spbill_create_ip; // 支付IP diff --git a/mallinkService/src/main/java/com/iformall/pay/WxPayOrderSP.java b/mallinkService/src/main/java/com/iformall/pay/WxPayOrderSP.java index 72d238a9f..ad057a5ad 100644 --- a/mallinkService/src/main/java/com/iformall/pay/WxPayOrderSP.java +++ b/mallinkService/src/main/java/com/iformall/pay/WxPayOrderSP.java @@ -16,6 +16,7 @@ public class WxPayOrderSP { private String sign; // 签名 private String sign_type; // 签名类型 private String body; // 商品简单描述 128 + private String attach; // 附加数据 private String out_trade_no; // 商户订单号 private String total_fee; // 支付金额 private String spbill_create_ip; // 支付IP diff --git a/mallinkService/src/main/java/com/iformall/service/WxAppinfoService.java b/mallinkService/src/main/java/com/iformall/service/WxAppinfoService.java index 752c04d69..4f2b98aa9 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxAppinfoService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxAppinfoService.java @@ -52,12 +52,13 @@ public interface WxAppinfoService { WxAppinfo getById(Long id); /** - * 根据appId获得实体 + * 多个存在获取集团的。 * * @param appId * @return */ WxAppinfo getByAppId(String appId); + WxAppinfo getByAppId(String appId,String tenantId); /** * 获取c端小程序信息 @@ -83,7 +84,7 @@ public interface WxAppinfoService { */ void deleteById(Long id); - WxAppinfo getByAppIdFromRedis(String appId); + WxAppinfo getByAppIdFromRedis(String appId,String tenantId); WxAppinfo getByIdFromRedis(Long id); WxAppinfo getCAppInfoFromRedis(String tenantId, EnumAppPlat appPlat); diff --git a/mallinkService/src/main/java/com/iformall/service/WxCuserFloatingLayerService.java b/mallinkService/src/main/java/com/iformall/service/WxCuserFloatingLayerService.java index 96a29997a..91687f10b 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCuserFloatingLayerService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCuserFloatingLayerService.java @@ -8,6 +8,6 @@ import com.iformall.domain.po.base.TenantEntity; */ public interface WxCuserFloatingLayerService { - WxFloatingLayer getFloatingLayer(String openId, String appId); + WxFloatingLayer getFloatingLayer(TenantEntity tenantEntity,String openId); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantBUserService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantBUserService.java index 1f3d0f2b7..00c58f123 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantBUserService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantBUserService.java @@ -64,6 +64,6 @@ public interface WxMerchantBUserService { boolean hasPhone(TenantEntity tenantEntity, String phone); - ResultData updatePwd(String appId, String phone, String code, String pwd); + ResultData updatePwd(TenantEntity tenantEntity, String phone, String code, String pwd); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxPayBillService.java b/mallinkService/src/main/java/com/iformall/service/WxPayBillService.java index a2d7e13a4..97a48a3e9 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxPayBillService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxPayBillService.java @@ -43,7 +43,7 @@ public interface WxPayBillService { * @param payWay 支付方式 * @return */ - String notify(Map paramMap, EnumPayWay payWay); + String notify(String tenantId,Map paramMap, EnumPayWay payWay); /** * 支付成功处理 diff --git a/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxBUserServiceAdapter.java b/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxBUserServiceAdapter.java index 88401b201..d66696dcc 100644 --- a/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxBUserServiceAdapter.java +++ b/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxBUserServiceAdapter.java @@ -14,6 +14,7 @@ import com.iformall.domain.vo.UserCountVo; import com.iformall.domain.vo.UserStructureVo; import com.iformall.enums.EnumAppPlat; import com.iformall.exception.MallinkException; +import com.iformall.mapper.WxAppinfoMapper; import com.iformall.mapper.WxBuserMapper; import com.iformall.service.WxAppinfoService; import com.iformall.service.cuser.BasicCUserService; @@ -40,6 +41,9 @@ public class WxBUserServiceAdapter extends BasicCUserService implements CUserSer @Autowired private WxAppinfoService wxAppinfoService; + @Autowired + private WxAppinfoMapper wxAppinfoMapper; + @Autowired private FmOpenService openService; @@ -300,14 +304,14 @@ public class WxBUserServiceAdapter extends BasicCUserService implements CUserSer try { String accessToken = wxMaService.getAccessToken(true); WxAppinfo updateApp = new WxAppinfo(); - updateApp.setId(wxAppinfo.getId()); + updateApp.setAppId(wxAppinfo.getAppId()); updateApp.setAccessToken(accessToken); updateApp.setLastTokenTime(new Date()); updateApp.setExpiresIn(7200); wxAppinfo.setAccessToken(updateApp.getAccessToken()); wxAppinfo.setLastTokenTime(updateApp.getLastTokenTime()); wxAppinfo.setExpiresIn(updateApp.getExpiresIn()); - wxAppinfoService.saveOrUpdate(updateApp); + wxAppinfoMapper.updateAccessToken(updateApp); } catch (WxErrorException e) { logger.error(e.getMessage()); diff --git a/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java b/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java index 3d2080092..b2ecbeb59 100644 --- a/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java +++ b/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java @@ -16,6 +16,7 @@ import com.iformall.enums.EnumAppPlat; import com.iformall.enums.EnumAssignTagsTrigger; import com.iformall.enums.EnumPayVersion; import com.iformall.enums.EnumYesOrNo; +import com.iformall.mapper.WxAppinfoMapper; import com.iformall.mapper.WxMallMapper; import com.iformall.service.WxAppinfoService; import com.iformall.service.WxCUserBasicInfoService; @@ -58,6 +59,9 @@ public class WxCUserServiceAdapter extends BasicCUserService implements CUserSer @Autowired private WxAppinfoService wxAppinfoService; + @Autowired + private WxAppinfoMapper wxAppinfoMapper; + @Autowired private FmOpenService openService; @@ -405,14 +409,14 @@ public class WxCUserServiceAdapter extends BasicCUserService implements CUserSer try { String accessToken = wxMaService.getAccessToken(true); WxAppinfo updateApp = new WxAppinfo(); - updateApp.setId(wxAppinfo.getId()); + updateApp.setAppId(wxAppinfo.getAppId()); updateApp.setAccessToken(accessToken); updateApp.setLastTokenTime(new Date()); updateApp.setExpiresIn(7200); wxAppinfo.setAccessToken(updateApp.getAccessToken()); wxAppinfo.setLastTokenTime(updateApp.getLastTokenTime()); wxAppinfo.setExpiresIn(updateApp.getExpiresIn()); - wxAppinfoService.saveOrUpdate(updateApp); + wxAppinfoMapper.updateAccessToken(updateApp); } catch (WxErrorException e) { logger.error(e.getMessage()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtMerchantPoiServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtMerchantPoiServiceImpl.java index 4437ca024..8b10e046f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtMerchantPoiServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtMerchantPoiServiceImpl.java @@ -605,14 +605,14 @@ public class TtMerchantPoiServiceImpl implements TtMerchantPoiService { try { String accessToken = ttWebService.getAccessToken(true); WxAppinfo updateApp = new WxAppinfo(); - updateApp.setId(appinfo.getId()); + updateApp.setAppId(appinfo.getAppId()); updateApp.setAccessToken(accessToken); updateApp.setLastTokenTime(new Date()); updateApp.setExpiresIn(7200); appinfo.setAccessToken(updateApp.getAccessToken()); appinfo.setLastTokenTime(updateApp.getLastTokenTime()); appinfo.setExpiresIn(updateApp.getExpiresIn()); - wxAppinfoMapper.updateById(updateApp); + wxAppinfoMapper.updateAccessToken(updateApp); } catch (WxErrorException e) { logger.error(e.getMessage()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAppinfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAppinfoServiceImpl.java index 1f319ce51..45bc0c49d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxAppinfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAppinfoServiceImpl.java @@ -14,6 +14,7 @@ import com.iformall.enums.EnumCouponType; import com.iformall.enums.EnumPayWay; import com.iformall.mapper.WxAppinfoMapper; import com.iformall.service.WxAppinfoService; +import com.iformall.service.WxMallService; import com.iformall.utils.Constant; import com.iformall.utils.RedisCacheUtils; @@ -36,6 +37,9 @@ public class WxAppinfoServiceImpl implements WxAppinfoService { @Autowired WxAppinfoMapper wxAppinfoMapper; + @Autowired + WxMallService wxMallService; + @Autowired @Qualifier("objectCommonRedisTemplate") RedisTemplate wxAppinfoRedisTemplate; @@ -95,7 +99,26 @@ public class WxAppinfoServiceImpl implements WxAppinfoService { @Override public WxAppinfo getByAppId(String appId) { - return wxAppinfoMapper.findByAppId(appId); + WxAppinfo appinfoQ = new WxAppinfo(); + appinfoQ.setAppId(appId); + List list = wxAppinfoMapper.findList(appinfoQ); + if(list.size() == 1){ + return list.get(0); + }else if(list.size() > 0){ + for (WxAppinfo appinfo:list) { + TenantEntity tenantEntity = new TenantEntity(); + tenantEntity.setTenantId(appinfo.getTenantId()); + if(wxMallService.isgroupSupport(tenantEntity)){ + return appinfo; + } + } + } + return null; + } + + @Override + public WxAppinfo getByAppId(String appId, String tenantId) { + return wxAppinfoMapper.findByAppId(appId,tenantId); } @Override @@ -155,9 +178,9 @@ public class WxAppinfoServiceImpl implements WxAppinfoService { } @Override - public WxAppinfo getByAppIdFromRedis(String appId) { + public WxAppinfo getByAppIdFromRedis(String appId,String tenantId) { WxAppinfo record = null; - String key = Constant.appinfoPrev + appId; + String key = Constant.appinfoPrev + tenantId + ":" + appId; record = RedisCacheUtils.getCacheObject(wxAppinfoRedisTemplate, key, WxAppinfo.class); if (null == record) { record = this.getByAppId(appId); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAuthorizerInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAuthorizerInfoServiceImpl.java index 72e259c70..870b344bb 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxAuthorizerInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAuthorizerInfoServiceImpl.java @@ -162,34 +162,23 @@ public class WxAuthorizerInfoServiceImpl implements WxAuthorizerInfoService { logger.error(e.getMessage()); } if (authorizerInfo == null) { - WxAppinfo appinfo = appinfoMapper.findByAppId(record.getAuthorizerAppid()); - if(appinfo != null) { - record.setId(appinfo.getId()); -// record.updateTenantInfo(appinfo.getTenantInfo()); - record.setTenantId(appinfo.getTenantId()); - record.setType(appinfo.getType()); - } else { - //record.setId(UUID.randomUUID().toString().replaceAll("-", "")); - final IdWorker idWorker = IdWorker.get(); - record.setId(idWorker.nextId()); - } + final IdWorker idWorker = IdWorker.get(); + record.setId(idWorker.nextId()); record.setCreateTime(curDate); record.setUpdateTime(curDate); // 授权表 添加 authorizerInfoMapper.insert(record); - if(appinfo.getType() != null) { - if (appinfo.getType().equals(EnumAppType.C.getCode()) || - appinfo.getType().equals(EnumAppType.B.getCode())) { + if(record.getType() != null) { + if (record.getType().equals(EnumAppType.C.getCode()) || + record.getType().equals(EnumAppType.B.getCode())) { // C/B 扩展配置表添加 WxWeappExtSet weappExtSet = new WxWeappExtSet(); weappExtSet.setId(record.getId()); weappExtSet.setAppId(record.getAuthorizerAppid()); - if (appinfo.getType().equals(EnumAppType.C.getCode())) { + if (record.getType().equals(EnumAppType.C.getCode())) { weappExtSet.setCarSupport(EnumCarSupport.NOCAR.getCode()); } - if (appinfo != null) { - weappExtSet.setType(appinfo.getType()); - } + weappExtSet.setType(record.getType()); weappExtSet.setCreateDate(curDate); weappExtSet.setUpdateDate(curDate); weappExtSetMapper.insert(weappExtSet); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index 66ef72f57..e12dd6122 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -2076,6 +2076,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { WxAuthorizerInfo weappInfo = authorizerInfoMapper.findMp(authQ); if (weappInfo != null) { AppUniformMsg appUniformMsg = new AppUniformMsg(); + appUniformMsg.setTenantId(coupon.getTenantId()); appUniformMsg.setMsgType(EnumMsgRecordType.SMART_APP_UNIFORM.getCode()); appUniformMsg.setAppId(user.getAppId()); appUniformMsg.setTo(user.getOpenId()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCuserFloatingLayerServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCuserFloatingLayerServiceImpl.java index 7fb655ae8..9120097a2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCuserFloatingLayerServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCuserFloatingLayerServiceImpl.java @@ -43,19 +43,14 @@ public class WxCuserFloatingLayerServiceImpl implements WxCuserFloatingLayerServ @Override - public WxFloatingLayer getFloatingLayer(String openId, String appId) { - WxAppinfo appinfo = appinfoMapper.findByAppId(appId); - if (StringUtils.isBlank(openId)) { - return getWxFloatingLayer(appinfo.getTenantId()); - } + public WxFloatingLayer getFloatingLayer(TenantEntity tenantEntity,String openId) { //1 查看是否存在用户,用户不存在 直接返回浮层信息 WxCUser user = new WxCUser(); user.setOpenId(openId); - user.setAppId(appId); - user.setTenantId(appinfo.getTenantId()); + user.setTenantId(tenantEntity.getTenantId()); WxCUser byOpenId = wxCUserMapper.findByOpenId(user); if (byOpenId == null) { - return getWxFloatingLayer(appinfo.getTenantId()); + return getWxFloatingLayer(tenantEntity.getTenantId()); } //2 用户存在 查看是否已有弹出记录 没有 保存记录后返回浮层信息 WxCuserFloatingLayer wxCuserFloatingLayerQuery = new WxCuserFloatingLayer(); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java index 53b884613..f4a3f0300 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java @@ -19,6 +19,7 @@ import com.iformall.mapper.WxAppinfoMapper; import com.iformall.mapper.WxMerchantBUserMapper; import com.iformall.mapper.WxMerchantMapper; import com.iformall.mapper.WxMsgValidationcodeMapper; +import com.iformall.service.WxMallService; import com.iformall.service.WxMerchantBUserService; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -36,6 +37,9 @@ import java.util.stream.Collectors; public class WxMerchantBUserServiceImpl implements WxMerchantBUserService { private final Logger logger = LoggerFactory.getLogger(this.getClass()); + @Autowired + WxMallService wxMallService; + @Autowired WxAppinfoMapper wxAppinfoMapper; @@ -144,10 +148,10 @@ public class WxMerchantBUserServiceImpl implements WxMerchantBUserService { } @Override - public ResultData updatePwd(String appId, String phone, String code, String pwd) { - WxAppinfo appinfo = wxAppinfoMapper.findByAppId(appId); + public ResultData updatePwd(TenantEntity tenantEntity, String phone, String code, String pwd) { + WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode(); - wxMsgValidationcode.setTenantId(appinfo.getTenantId()); + wxMsgValidationcode.setTenantId(tenantEntity.getTenantId()); wxMsgValidationcode.setPhone(phone); wxMsgValidationcode.setCode(code); List msgValidationCodeList = wxMsgValidationcodeMapper.findList(wxMsgValidationcode); @@ -157,22 +161,30 @@ public class WxMerchantBUserServiceImpl implements WxMerchantBUserService { if (msgValidationCodeList.size() > 0) { //更新 WxMerchantBUser bUser = new WxMerchantBUser(); - bUser.setTenantId(appinfo.getTenantId()); + bUser.setTenantId(tenantEntity.getTenantId()); bUser.setPhone(phone); - bUser.setAppId(appId); bUser.setStatus(EnumMerchantBUserStatus.VALID.getCode()); List list = wxMerchantBUserMapper.findList(bUser); + if(wxMallService.isgroupSupport(tenantEntity)){ + bUser.setTenantId(null); + bUser.setParentTenantId(tenantEntity.getTenantId()); + List list1 = wxMerchantBUserMapper.findList(bUser); + if(list1.size() > 0){ + list.addAll(list1); + } + } if (list.size() > 0) { - bUser = list.get(0); - bUser.setUserPwd(pwd); - try { - wxMerchantBUserMapper.updateById(bUser); - } catch (Exception e) { - logger.error("db failed: 商户-" + bUser.getId() + ", e:" + e.getMessage()); - throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); + for (WxMerchantBUser merchantBUser:list) { + merchantBUser.setUserPwd(pwd); + try { + wxMerchantBUserMapper.updateById(bUser); + } catch (Exception e) { + logger.error("db failed: 商户-" + bUser.getId() + ", e:" + e.getMessage()); + throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); + } } } else { - logger.error("B端用户不是这个app的用户:" + appId); + logger.error("未找到用户:"); throw new MallinkException(ErrorCode.BUSER_NOT_IN_APP); } } 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 2f8355dec..1aef31fd1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -1798,6 +1798,7 @@ public class WxOrderServiceImpl implements WxOrderService { WxAuthorizerInfo weappInfo = authorizerInfoMapper.findMp(authQ); if (weappInfo != null) { AppUniformMsg appUniformMsg = new AppUniformMsg(); + appUniformMsg.setTenantId(coupon.getTenantId()); appUniformMsg.setMsgType(EnumMsgRecordType.SMART_APP_UNIFORM.getCode()); appUniformMsg.setAppId(user.getAppId()); appUniformMsg.setTo(user.getOpenId()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayBillServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayBillServiceImpl.java index 4d3e55546..86416b0ca 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayBillServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayBillServiceImpl.java @@ -576,7 +576,7 @@ public class WxPayBillServiceImpl implements WxPayBillService { * @return */ @Override - public String notify(Map paramMap, EnumPayWay payWay) { + public String notify(String tenantId,Map paramMap, EnumPayWay payWay) { // how to get wechatAppId, wechatMchId, partnerKey logger.info("-------------"); logger.info("微信回调返回值:" + JSONObject.toJSONString(paramMap)); @@ -585,18 +585,19 @@ public class WxPayBillServiceImpl implements WxPayBillService { String subAppId = paramMap.get("sub_appid"); String mchId = paramMap.get("mch_id"); String subMchId = paramMap.get("sub_mch_id"); + String attach = paramMap.get("attach"); WxAppinfo appinfo; boolean isNormal = true; if (StringUtils.isBlank(subAppId) && StringUtils.isBlank(subMchId)) { // 普通商户号 - appinfo = wxAppinfoMapper.findByAppId(appId); + appinfo = wxAppinfoMapper.findByAppId(appId,tenantId); if (appinfo == null) { throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); } isNormal = true; } else { // 服务号 现在用hmac-sha256 - appinfo = wxAppinfoMapper.findByAppId(subAppId); + appinfo = wxAppinfoMapper.findByAppId(subAppId,tenantId); if (appinfo == null) { throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxTemplateMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxTemplateMsgServiceImpl.java index 95b60e3f0..4d4f79ec4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxTemplateMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxTemplateMsgServiceImpl.java @@ -124,8 +124,7 @@ public class WxTemplateMsgServiceImpl implements WxTemplateMsgService { if(isFmOpen) { wxMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appinfo.getAppId()); } else { - WxAppinfo appInfo = wxAppinfoService.getByAppId(appinfo.getAppId()); - wxMaService = maUtil.getWeappService(appInfo); + wxMaService = maUtil.getWeappService(appinfo); } String s = ""; if(byId.getType() == EnumTemplateType.ACTIVITY_REMIND.getCode()){ diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java index 92e7b4cb6..7b51fba43 100644 --- a/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java @@ -76,7 +76,7 @@ public class SendSmartAppMsgServiceImpl implements MsgSendService { return; } if(0 == msg.getOnOff().intValue()){ - WxAppinfo appInfo = wxAppinfoService.getByAppId(smartAppMsg.getAppId()); + WxAppinfo appInfo = wxAppinfoService.getByAppId(smartAppMsg.getAppId(),tenantEntity.getTenantId()); if(EnumTemplateType.TT_SEND_COUPON_REMIND.getCode().equals(msg.getType())){ //发抖音 TtMaService ttappService = maUtil.getTtMaService(appInfo); diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/SendWeappUniformMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendWeappUniformMsgServiceImpl.java index e3ae39ed4..6a7a9f307 100644 --- a/mallinkService/src/main/java/com/iformall/service/msg/impl/SendWeappUniformMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendWeappUniformMsgServiceImpl.java @@ -48,10 +48,7 @@ public class SendWeappUniformMsgServiceImpl implements MsgSendService { AppUniformMsg appUniformMsg = (AppUniformMsg)baseMsg; String tenantId = appUniformMsg.getTenantId(); - if (StringUtils.isBlank(tenantId)) { - WxAppinfo appinfo = appinfoMapper.findByAppId(appUniformMsg.getAppId()); - tenantId = appinfo.getTenantId(); - } + WxTemplateMsg msg = null; WxMaService wxMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appUniformMsg.getAppId()); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/BaseTtPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/BaseTtPayAdapterService.java index a4a2d1e63..7445ca7c1 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/BaseTtPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/BaseTtPayAdapterService.java @@ -1,5 +1,6 @@ package com.iformall.service.pay.service.pay.douyin.v1; +import com.alibaba.fastjson.JSON; import com.iformall.common.ErrorCode; import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxPayAccount; @@ -21,6 +22,8 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import java.io.File; +import java.util.HashMap; +import java.util.Map; @Slf4j public class BaseTtPayAdapterService { @@ -28,6 +31,17 @@ public class BaseTtPayAdapterService { @Autowired protected MaUtil maUtil; + /** + * 做为支付的扩展数据 + * @param payOrder + * @return + */ + protected String getCpExtra(WxPayOrder payOrder) { + Map map = new HashMap<>(); + map.put("tenantId",payOrder.getTenantId()); + return JSON.toJSONString(map); + } + protected PayQueryAdapterResult queryPayStatus(WxPayOrder oldRecord, WxAppinfo appInfo, WxPayAccount payAccount) throws Exception { TtPayService ttPayService = maUtil.getTtPayService(appInfo, payAccount); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java index 3e1005bde..6fb2f5038 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java @@ -138,6 +138,8 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen pageEntry.setParams(JSON.toJSONString(paramMap)); request.setOrderEntrySchema(pageEntry); + request.setCpExtra(getCpExtra(record)); + TtPayUnifiedOrderV2Result orderV2 = ttPayService.createOrderV2(request); JSONObject allExtParam = new JSONObject(); @@ -452,6 +454,7 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen map.put("outOrderNo",record.getOrderId()); map.put("createPay",record.isCreatPay()); if(record.isCreatPay()){ + map.put("callbackData",JSONObject.parseObject(getCpExtra(record),Map.class)); Map payment = new HashMap(); payment.put("totalAmount",composeOrder.getPayment()); map.put("payment",payment); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/BaseWxPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/BaseWxPayAdapterService.java index 50ed78f5f..7a9c1e834 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/BaseWxPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/BaseWxPayAdapterService.java @@ -59,6 +59,17 @@ public class BaseWxPayAdapterService { @Autowired MaUtil maUtil; + + /** + * 做为支付的扩展数据 + * @param payOrder + * @return + */ + protected String getAttach(WxPayOrder payOrder) { + Map map = new HashMap<>(); + map.put("tenantId",payOrder.getTenantId()); + return JSON.toJSONString(map); + } protected String getMerchantUid(WxPayOrder payOrder,WxOrder order) { WxComposeChildOrderShare share = payOrder.getChildOrderShare(order.getId()); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/sft/entity/SFTPayCommonMiniAppReq.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/sft/entity/SFTPayCommonMiniAppReq.java index 9d547cd58..3900e412e 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/sft/entity/SFTPayCommonMiniAppReq.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/sft/entity/SFTPayCommonMiniAppReq.java @@ -9,6 +9,7 @@ public class SFTPayCommonMiniAppReq { private String sp_mchid;//服务商户号 private String sub_mchid;//二级商户号 private String description;//商品描述 + private String attach;// 附加数据 private String out_trade_no;//商户订单号 private String notify_url;//通知地址,不允许携带查询串 private SFTPaySettleReq settle_info;//结算信息 diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/sft/miniApp/appPay/WxMiniAppPaySFTAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/sft/miniApp/appPay/WxMiniAppPaySFTAdapterService.java index 1aae1f8c6..d23d65cb4 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/sft/miniApp/appPay/WxMiniAppPaySFTAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/sft/miniApp/appPay/WxMiniAppPaySFTAdapterService.java @@ -75,6 +75,7 @@ public class WxMiniAppPaySFTAdapterService extends BaseWxPaySFTAdapterService i }catch(Exception e) { req.setDescription("weixin miniApp product"); } + req.setAttach(getAttach(record)); req.setOut_trade_no(String.valueOf(composeOrder.getMainOrderId())); req.setNotify_url(payAccount.getPayNotifyV3Url()); @@ -104,6 +105,8 @@ public class WxMiniAppPaySFTAdapterService extends BaseWxPaySFTAdapterService i List suborders = new ArrayList(); for (WxOrder order : childOrders) { SFTCombineItemOrder so = new SFTCombineItemOrder(); + + String subMchId = getMerchantUid(record,order); so.initByWxOrder(payAccount, order, subMchId, appInfo, productName, String.valueOf(record.getId())); suborders.add(so); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v2/miniApp/appPay/WxMiniAppPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v2/miniApp/appPay/WxMiniAppPayAdapterService.java index 6d1a6f101..0438b5b62 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v2/miniApp/appPay/WxMiniAppPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v2/miniApp/appPay/WxMiniAppPayAdapterService.java @@ -68,6 +68,7 @@ public class WxMiniAppPayAdapterService extends BaseWxPayV2AdapterService implem wxPayOrderP.setMch_id(payAccount.getMchId()); wxPayOrderP.setNonce_str(noncestr); wxPayOrderP.setBody(productName); + wxPayOrderP.setAttach(getAttach(record)); wxPayOrderP.setOut_trade_no(record.getPayOrderNo()); wxPayOrderP.setTotal_fee(composeOrder.getPayment()); wxPayOrderP.setSpbill_create_ip(record.getIp()); // 终端IP @@ -143,6 +144,7 @@ public class WxMiniAppPayAdapterService extends BaseWxPayV2AdapterService implem wxPayOrderSP.setSub_mch_id(payAccount.getSubMchId()); wxPayOrderSP.setNonce_str(noncestr); wxPayOrderSP.setBody(productName); + wxPayOrderSP.setAttach(getAttach(record)); wxPayOrderSP.setOut_trade_no(record.getPayOrderNo()); wxPayOrderSP.setTotal_fee(composeOrder.getPayment().toString()); wxPayOrderSP.setSpbill_create_ip(record.getIp()); // 终端IP diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v2/miniApp/maPay/WxMiniMaPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v2/miniApp/maPay/WxMiniMaPayAdapterService.java index 9d7f35ebb..2969397e6 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v2/miniApp/maPay/WxMiniMaPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v2/miniApp/maPay/WxMiniMaPayAdapterService.java @@ -58,6 +58,7 @@ public class WxMiniMaPayAdapterService extends BaseWxPayV2AdapterService impleme wxPayOrderP.setDevice_info(bUserPhone); wxPayOrderP.setNonce_str(noncestr); wxPayOrderP.setBody(productName); + wxPayOrderP.setAttach(getAttach(record)); wxPayOrderP.setOut_trade_no(record.getPayOrderNo()); wxPayOrderP.setTotal_fee(record.getPayAmount()); wxPayOrderP.setSpbill_create_ip(record.getIp()); // 终端IP @@ -121,6 +122,7 @@ public class WxMiniMaPayAdapterService extends BaseWxPayV2AdapterService impleme wxPayOrderSP.setDevice_info(bUserPhone); wxPayOrderSP.setNonce_str(noncestr); wxPayOrderSP.setBody(productName); + wxPayOrderSP.setAttach(getAttach(record)); wxPayOrderSP.setOut_trade_no(record.getPayOrderNo()); wxPayOrderSP.setTotal_fee(record.getPayAmount()); wxPayOrderSP.setSpbill_create_ip(record.getIp()); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v3/entity/V3PayCommonMiniAppReq.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v3/entity/V3PayCommonMiniAppReq.java index e4b38a30f..a36ee504a 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v3/entity/V3PayCommonMiniAppReq.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v3/entity/V3PayCommonMiniAppReq.java @@ -11,6 +11,7 @@ public class V3PayCommonMiniAppReq { private String sub_mchid;//二级商户号 private String description;//商品描述 private String out_trade_no;//商户订单号 + private String attach;//附加数据,在查询API和支付通知中原样返回,可作为自定义参数使用,实际情况下只有支付完成状态才会返回该字段。 private String notify_url;//通知地址,不允许携带查询串 private V3PaySettleReq settle_info;//结算信息 private V3PayAmountReq amount;//订单金额 diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v3/miniApp/appPay/WxMiniAppPayV3AdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v3/miniApp/appPay/WxMiniAppPayV3AdapterService.java index a073ffbc6..0cb39b026 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v3/miniApp/appPay/WxMiniAppPayV3AdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v3/miniApp/appPay/WxMiniAppPayV3AdapterService.java @@ -92,6 +92,7 @@ public class WxMiniAppPayV3AdapterService extends BaseWxPayV3AdapterService impl req.setDescription("weixin miniApp product"); } req.setOut_trade_no(record.getPayOrderNo()); + req.setAttach(getAttach(record)); req.setNotify_url(payAccount.getPayNotifyV3Url()); V3PaySettleReq settle = new V3PaySettleReq(); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/refund/douyin/TtRefundAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/refund/douyin/TtRefundAdapterService.java index 265e06759..88daf18d1 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/refund/douyin/TtRefundAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/refund/douyin/TtRefundAdapterService.java @@ -45,6 +45,17 @@ public class TtRefundAdapterService implements RefundPayAdapterService{ @Autowired WxOrderService wxOrderService; + + /** + * 做为分账的扩展数据 + * @param + * @return + */ + protected String getCpExtra(WxRefundOrder record) { + Map map = new HashMap<>(); + map.put("tenantId",record.getTenantId()); + return JSON.toJSONString(map); + } @Override public RefundAdapterResult refund(WxPayAccount payAccount,WxAppinfo appInfo,WxRefundOrder record,WxPayOrder payOrder,Long orderId,EnumPayType payType) { @@ -54,6 +65,7 @@ public class TtRefundAdapterService implements RefundPayAdapterService{ TtPayRefundV2Request request = new TtPayRefundV2Request(); request.setOutOrderNo(payOrder.getPayOrderNo()); request.setOutRefundNo(record.getId().toString()); + request.setCpExtra(getCpExtra(record)); TtPayRefundV2Request.PageEntry pageEntry = new TtPayRefundV2Request.PageEntry(); pageEntry.setPath(Constant.mainPageUrl); Map paramMap = new HashMap<>(); @@ -173,9 +185,16 @@ public class TtRefundAdapterService implements RefundPayAdapterService{ @Override public RefundNotifyAdapterResult notify(Map paramMap, EnumPayWay payWay) { log.info("TtRefundAdapterService notify{}"+paramMap); + String tenantId = paramMap.get("tenantId"); + /** + * + */ + String refundno = paramMap.get("cp_refundno"); + Long refundOrderId = Long.valueOf(refundno); + WxRefundOrder refundOrder = wxRefundOrderMapper.selectById(refundOrderId); String appId = paramMap.get("appid"); - WxAppinfo appinfo = wxAppinfoMapper.findByAppId(appId); + WxAppinfo appinfo = wxAppinfoMapper.findByAppId(appId,tenantId); if (appinfo == null) { log.error("未找到appid信息:" + appId); throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); @@ -189,9 +208,7 @@ public class TtRefundAdapterService implements RefundPayAdapterService{ log.error("notify refund, wxpay status not success, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); return notifyErrorResult("订单状态码非SUCCESS"); } - String refundno = paramMap.get("cp_refundno"); - Long refundOrderId = Long.valueOf(refundno); - WxRefundOrder refundOrder = wxRefundOrderMapper.selectById(refundOrderId); + // 验证退款金额 if (!paramMap.get("refund_amount").equals(refundOrder.getRefundFee().toString())) { log.error("notify refund, wxpay check refund_fee is invalid, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/refund/wx/v2/WxRefundAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/refund/wx/v2/WxRefundAdapterService.java index 7511414c7..b047c3a5b 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/refund/wx/v2/WxRefundAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/refund/wx/v2/WxRefundAdapterService.java @@ -563,35 +563,38 @@ public class WxRefundAdapterService implements RefundPayAdapterService{ String req_info = CipherUtil.decryptReqInfo(paramMap.get("req_info"), partnerKey); Map reqMap = WxPayment.xmlToMap(req_info); - String payOrderNo = reqMap.get("out_trade_no"); - Long payOrderId = Long.valueOf(payOrderNo); - WxPayOrder payOrder = wxPayOrderMapper.selectById(payOrderId,payAccount.getTenantId()); - if (payOrder == null) { - log.warn("notify refund, wxpay check pay order not exists, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); - return notifyErrorResult("支付订单不存在"); - } - // 验证支付金额 - if (!reqMap.get("total_fee").equals(payOrder.getPayAmount().toString())) { - log.warn("notify refund, wxpay check total_fee is invalid, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); - return notifyErrorResult("支付订单总金额不一致"); - } String refundIdStr = reqMap.get("out_refund_no"); Long refundOrderId = Long.valueOf(refundIdStr); WxRefundOrder refundOrder = wxRefundOrderMapper.selectById(refundOrderId); if (refundOrder == null) { - log.warn("notify refund, wxpay check pay order not exists, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); - return notifyErrorResult("退款订单不存在"); + log.warn("notify refund, wxpay check pay order not exists, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); + return notifyErrorResult("退款订单不存在"); } // 验证支付金额 if (!reqMap.get("total_fee").equals(refundOrder.getTotalFee().toString())) { - log.warn("notify refund, wxpay check total_fee is invalid, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); - return notifyErrorResult("订单总金额不一致"); + log.warn("notify refund, wxpay check total_fee is invalid, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); + return notifyErrorResult("订单总金额不一致"); } // 验证退款金额 if (!reqMap.get("refund_fee").equals(refundOrder.getRefundFee().toString())) { - log.warn("notify refund, wxpay check refund_fee is invalid, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); - return notifyErrorResult("退款总金额不一致"); + log.warn("notify refund, wxpay check refund_fee is invalid, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); + return notifyErrorResult("退款总金额不一致"); + } + + + String payOrderNo = reqMap.get("out_trade_no"); + Long payOrderId = Long.valueOf(payOrderNo); + WxPayOrder payOrder = wxPayOrderMapper.selectById(payOrderId,refundOrder.getTenantId()); + if (payOrder == null) { + log.warn("notify refund, wxpay check pay order not exists, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); + return notifyErrorResult("支付订单不存在"); + } + // 验证支付金额 + if (!reqMap.get("total_fee").equals(payOrder.getPayAmount().toString())) { + log.warn("notify refund, wxpay check total_fee is invalid, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); + return notifyErrorResult("支付订单总金额不一致"); } + // 处理支付成功 //handleRefundSuccess(refundOrder, reqMap.get("transaction_id"), reqMap.get("refund_id")); @@ -634,21 +637,6 @@ public class WxRefundAdapterService implements RefundPayAdapterService{ log.info(req_info); Map reqMap = WxPayment.xmlToMap(req_info); - String payOrderNo = reqMap.get("out_trade_no"); - if (payOrderNo == null) { - return notifySuccessResult(reqMap.get("transaction_id"), reqMap.get("refund_id"), null); - } - Long payOrderId = Long.valueOf(payOrderNo); - WxPayOrder payOrder = wxPayOrderMapper.selectById(payOrderId,payAccount.getTenantId()); - if (payOrder == null) { - log.warn("notify refund, wxpay check pay order not exists, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); - return notifyErrorResult("支付订单不存在"); - } - // 验证支付金额 - if (!reqMap.get("total_fee").equals(payOrder.getPayAmount().toString())) { - log.warn("notify refund, wxpay check total_fee is invalid, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); - return notifyErrorResult("支付订单总金额不一致"); - } String refundIdStr = reqMap.get("out_refund_no"); Long refundOrderId = Long.valueOf(refundIdStr); WxRefundOrder refundOrder = wxRefundOrderMapper.selectById(refundOrderId); @@ -667,6 +655,23 @@ public class WxRefundAdapterService implements RefundPayAdapterService{ return notifyErrorResult("退款总金额不一致"); } + String payOrderNo = reqMap.get("out_trade_no"); + if (payOrderNo == null) { + return notifySuccessResult(reqMap.get("transaction_id"), reqMap.get("refund_id"), null); + } + Long payOrderId = Long.valueOf(payOrderNo); + WxPayOrder payOrder = wxPayOrderMapper.selectById(payOrderId,refundOrder.getTenantId()); + if (payOrder == null) { + log.warn("notify refund, wxpay check pay order not exists, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); + return notifyErrorResult("支付订单不存在"); + } + // 验证支付金额 + if (!reqMap.get("total_fee").equals(payOrder.getPayAmount().toString())) { + log.warn("notify refund, wxpay check total_fee is invalid, paramMap: " + paramMap.toString() + ", payWay:" + payWay.toString()); + return notifyErrorResult("支付订单总金额不一致"); + } + + log.info("notify refund, wxpay checksign success, paramMap:{}, paramMap: " + reqMap.toString() + ", payWay:" + payWay.toString()); return notifySuccessResult(reqMap.get("transaction_id"), reqMap.get("refund_id"), refundOrder); } diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/share/PayShareBaseAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/share/PayShareBaseAdapterService.java index c767e1582..66dd0cb8a 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/share/PayShareBaseAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/share/PayShareBaseAdapterService.java @@ -1,6 +1,7 @@ package com.iformall.service.pay.service.share; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -12,6 +13,7 @@ import com.iformall.common.ErrorCode; import com.iformall.domain.dto.WxSharingOrderDto; import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxPayAccount; +import com.iformall.domain.po.WxProfitSharingOrder; import com.iformall.domain.po.WxProfitSharingReceiver; import com.iformall.enums.EnumProfitSharingReceiverStatus; import com.iformall.enums.EnumProfitSharingReceiverType; diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/share/douyin/TtPayShareService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/share/douyin/TtPayShareService.java index f999dd01c..15d0f912e 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/share/douyin/TtPayShareService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/share/douyin/TtPayShareService.java @@ -77,7 +77,17 @@ public class TtPayShareService extends PayShareBaseAdapterService{ @Lazy @Autowired WxProfitSharingReceiverService wxProfitSharingReceiverService; - + + /** + * 做为分账的扩展数据 + * @param payOrder + * @return + */ + protected String getCpExtra(WxProfitSharingOrder record) { + Map map = new HashMap<>(); + map.put("tenantId",record.getTenantId()); + return JSON.toJSONString(map); + } @Override public Integer getSubsidyType() { @@ -109,6 +119,7 @@ public class TtPayShareService extends PayShareBaseAdapterService{ TtPayService ttPayService = maUtil.getTtPayService(appInfo, payAccount); ProfitSharingRequest request = new ProfitSharingRequest(); request.setOutOrderNo(record.getOrderId().toString()); + request.setCpExtra(getCpExtra(record)); if(record.getOutSettleNo() == null){ record.setOutSettleNo(record.getId()); }else{ @@ -160,6 +171,7 @@ public class TtPayShareService extends PayShareBaseAdapterService{ TtPayService ttPayService = maUtil.getTtPayService(appInfo, payAccount); ProfitSharingRequest request = new ProfitSharingRequest(); request.setOutOrderNo(record.getOrderId().toString()); + request.setCpExtra(getCpExtra(record)); if(record.getOutSettleNo() == null){ record.setOutSettleNo(record.getId()); }else{ diff --git a/mallinkService/src/main/java/com/iformall/utils/MaUtil.java b/mallinkService/src/main/java/com/iformall/utils/MaUtil.java index 8b71fcfe8..599e1b1ec 100644 --- a/mallinkService/src/main/java/com/iformall/utils/MaUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/MaUtil.java @@ -23,6 +23,7 @@ import com.iformall.douyin.web.api.TtWebService; import com.iformall.douyin.web.api.impl.TtWebServiceImpl; import com.iformall.douyin.web.config.TtWebDefaultConfigImpl; import com.iformall.douyin.web.enums.TtWebApiBeginEnum; +import com.iformall.mapper.WxAppinfoMapper; import com.iformall.service.WxAppinfoService; import lombok.extern.flogger.Flogger; import me.chanjar.weixin.common.error.WxErrorException; @@ -40,6 +41,9 @@ public class MaUtil { @Autowired private WxAppinfoService wxAppinfoService; + @Autowired + private WxAppinfoMapper wxAppinfoMapper; + private static Map serviceMap = new ConcurrentHashMap(); private static Map appServiceKeyMap = new ConcurrentHashMap(); @@ -230,14 +234,14 @@ public class MaUtil { try { String accessToken = ttMaService.getAccessToken(true); WxAppinfo updateApp = new WxAppinfo(); - updateApp.setId(wxAppinfo.getId()); + updateApp.setAppId(wxAppinfo.getAppId()); updateApp.setAccessToken(accessToken); updateApp.setLastTokenTime(new Date()); updateApp.setExpiresIn(7200); wxAppinfo.setAccessToken(updateApp.getAccessToken()); wxAppinfo.setLastTokenTime(updateApp.getLastTokenTime()); wxAppinfo.setExpiresIn(updateApp.getExpiresIn()); - wxAppinfoService.saveOrUpdate(updateApp); + wxAppinfoMapper.updateAccessToken(updateApp); } catch (WxErrorException e) { logger.error(e.getMessage()); diff --git a/mallinkService/src/main/resources/mapper/WxAppinfoMapper.xml b/mallinkService/src/main/resources/mapper/WxAppinfoMapper.xml index 1cd3622fe..b896b433b 100644 --- a/mallinkService/src/main/resources/mapper/WxAppinfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxAppinfoMapper.xml @@ -112,5 +112,15 @@ SELECT * FROM wx_appinfo WHERE `app_id` = #{appId} + + and `tenant_id` = #{tenantId} + + limit 1 + + + update wx_appinfo set + `access_token` = #{accessToken}, `last_token_time` = #{lastTokenTime}, `expires_in` = #{expiresIn} + where `app_id` = #{appId} + From c745c7a5feff68c429bbbb08133f9ef1a510a7ea Mon Sep 17 00:00:00 2001 From: xhxu Date: Fri, 25 Nov 2022 18:06:49 +0800 Subject: [PATCH 046/144] =?UTF-8?q?//=E6=8F=90=E5=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/interceptor/AuthorizationInterceptor.java | 4 +++- .../com/iformall/service/impl/TtCouponGoodsServiceImpl.java | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index 720c66d37..5514dc0db 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -77,7 +77,9 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if (!StringUtils.isBlank(mallTenantId)) { request.setAttribute(Constant.TENANT_ID, mallTenantId); - request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getTenantId()); + if(!mallTenantId.equals(cUser.getTenantId())){ + request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getTenantId()); + } }else { request.setAttribute(Constant.TENANT_ID, cUser.getTenantId()); if (StringUtils.isNotBlank(cUser.getParentTenantId())) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java index c5c6755e2..8e9a62d83 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java @@ -529,6 +529,7 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { map.put("path", Constant.mainPageUrl); Map paramMap = new HashMap<>(); paramMap.put("type","orderAffirm"); + paramMap.put("tenantId",tenantEntity.getTenantId()); paramMap.put("couponChannelId",couponChannelId); map.put("params",JSON.toJSONString(paramMap)); return JSON.toJSONString(map); From d542d40af04c7fea27088967c14e7491af6c180e Mon Sep 17 00:00:00 2001 From: xhxu Date: Fri, 25 Nov 2022 18:15:11 +0800 Subject: [PATCH 047/144] // --- .../iformall/schedule/WeChatAccessTokenSchedule.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/WeChatAccessTokenSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/WeChatAccessTokenSchedule.java index 7f8317e2a..e7d435cc2 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/WeChatAccessTokenSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/WeChatAccessTokenSchedule.java @@ -14,6 +14,8 @@ import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Component public class WeChatAccessTokenSchedule { @@ -38,10 +40,15 @@ public class WeChatAccessTokenSchedule { WxAppinfo appinfoQ = new WxAppinfo(); List appList = wxAppinfoMapper.findList(appinfoQ); + Map> collect = appList.stream().collect(Collectors.groupingBy(WxAppinfo::getAppId, Collectors.toList())); - for (WxAppinfo appinfo : appList) { - resetAccessToken(appinfo); + for (String appId:collect.keySet()) { + List wxAppinfoList = collect.get(appId); + resetAccessToken(wxAppinfoList.get(0)); } +// for (WxAppinfo appinfo : appList) { +// resetAccessToken(appinfo); +// } } logger.info("微信访问AccessToken获取定时任务结束"); From da9a9898cffc6e1bf3d600b02bdbe5a01be532e1 Mon Sep 17 00:00:00 2001 From: xhxu Date: Fri, 25 Nov 2022 18:32:07 +0800 Subject: [PATCH 048/144] // --- .../com/iformall/interceptor/AuthorizationInterceptor.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index 5514dc0db..59940ef64 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -75,9 +75,11 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { request.setAttribute(Constant.LOGIN_USER_KEY, cUser.getId()); - if (!StringUtils.isBlank(mallTenantId)) { + if (StringUtils.isNotBlank(mallTenantId)) { request.setAttribute(Constant.TENANT_ID, mallTenantId); - if(!mallTenantId.equals(cUser.getTenantId())){ + if (StringUtils.isNotBlank(cUser.getParentTenantId())) { + request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getParentTenantId()); + }else if(!mallTenantId.equals(cUser.getTenantId())){ request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getTenantId()); } }else { From 849101d2f003f22ee053388079a17f4fe772d6c2 Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Fri, 25 Nov 2022 20:12:59 +0800 Subject: [PATCH 049/144] fix bug --- .../market/TtCouponGoodsController.java | 2 + .../com/iformall/enums/EnumCouponType.java | 2 +- .../impl/TtCouponGoodsServiceImpl.java | 94 ++++++++++++++++--- .../service/impl/WxCouponServiceImpl.java | 24 ++++- 4 files changed, 104 insertions(+), 18 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java index 61f5ffd99..60a03d46f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java @@ -1,6 +1,7 @@ package com.iformall.controller.market; import com.iformall.annotation.SystemControllerLog; +import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; @@ -119,6 +120,7 @@ public class TtCouponGoodsController extends BaseController { } + @TenantIgnore @ApiOperation("提交审核") @PostMapping("product/save") @SystemControllerLog(description = "提交审核") diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java b/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java index d79f975e7..9e8d69a42 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCouponType.java @@ -157,7 +157,7 @@ public enum EnumCouponType { if(type == null) { return false; } - if(type == COUPON_DOUYIN_PLAT.getCode()) { + if(type == COUPON_DOUYIN_PLAT.getCode() || type == COUPON_DOUYIN_BRAND.getCode()) { return true; } return false; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java index c5c6755e2..2d80f8779 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java @@ -26,6 +26,7 @@ import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Propagation; @@ -81,6 +82,14 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { @Autowired TtGoodsCategoryMapper ttGoodsCategoryMapper; + + @Lazy + @Autowired + WxCouponMallService wxCouponMallService; + + @Lazy + @Autowired + WxMerchantService wxMerchantService; @Override public ResultData couponList(TtCouponVo ttCouponVo, Integer pageNum, Integer pageSize) { @@ -163,11 +172,60 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } //获取门店,确保所有门店匹配poi - List merchantIds = wxCouponMerchantMapper.findMerchantIdListByProduct(coupon.getId(), coupon.getTenantId()); - TtMerchantPoi poiQ = new TtMerchantPoi(); - poiQ.updateTenantInfo(coupon); - poiQ.setIds(merchantIds); - List pois = ttMerchantPoiMapper.findList(poiQ); + List merchantIds = null; + List couponMallList = null; + if (EnumCouponType.isParentCoupon(coupon.getType())) { + WxCouponMall couponMall = new WxCouponMall(); + couponMall.updateTenantInfo(coupon); + couponMall.setProductId(coupon.getId()); + couponMall.setStatus(EnumCouponMallStatus.FINISED.getCode()); + couponMallList = wxCouponMallService.list(couponMall, false); + if (null == couponMallList || couponMallList.size() <= 0 ) { + return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),"未完成设置关联商场"); + } + for (int i = 0 ; i < couponMallList.size(); i++ ) { + WxCouponMall cm = couponMallList.get(i); + List mchids = wxCouponMerchantMapper.findMerchantIdListByProduct(coupon.getId(), cm.getMallTenantId()); + if (null != mchids) { + if (null == merchantIds) { + merchantIds = new ArrayList(); + } + merchantIds.addAll(mchids); + } + } + }else { + merchantIds = wxCouponMerchantMapper.findMerchantIdListByProduct(coupon.getId(), coupon.getTenantId()); + } + if (null == merchantIds || merchantIds.size() <= 0) { + return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),"未设置商户"); + } + + List pois = null; + if (EnumCouponType.isParentCoupon(coupon.getType())) { + if (null == couponMallList || couponMallList.size() <= 0 ) { + return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),"未完成设置关联商场"); + } + for (int i = 0 ; i < couponMallList.size(); i++ ) { + WxCouponMall cm = couponMallList.get(i); + TtMerchantPoi poiQ = new TtMerchantPoi(); + poiQ.setTenantId(cm.getTenantId()); + poiQ.setIds(merchantIds); + List pois1 = ttMerchantPoiMapper.findList(poiQ); + if (null != pois1) { + if (null == pois) { + pois = new ArrayList(); + } + pois.addAll(pois1); + } + } + + }else { + TtMerchantPoi poiQ = new TtMerchantPoi(); + poiQ.updateTenantInfo(coupon); + poiQ.setIds(merchantIds); + pois = ttMerchantPoiMapper.findList(poiQ); + } + if(pois == null || pois.isEmpty()){ return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),"未找到poi门店"); } @@ -181,12 +239,24 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { poiList.add(poiStruct); } - WxMerchant merchantQ = new WxMerchant(); - merchantQ.updateTenantInfo(coupon); - merchantQ.setIds(merchantIds); - merchantQ.setSortColumns(BaseEntity.SortField.MerchantAdmin); - WxMerchant merchant = wxMerchantMapper.findIdNameList(merchantQ).get(0); - + WxMerchant payAccountMerchant = null; + if (EnumCouponType.isParentCoupon(coupon.getType())) { + if (EnumCouponType.COUPON_DOUYIN_PLAT.getCode() == coupon.getType()) { + payAccountMerchant = wxMerchantService.findAdmin(coupon); + }else if (EnumCouponType.COUPON_DOUYIN_BRAND.getCode() == coupon.getType()) { + payAccountMerchant = wxMerchantService.findBrandAdmin(coupon, coupon.getBrand()); + }else { + return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),"当前券类型未找到收款商户"); + } + + }else { + WxMerchant merchantQ = new WxMerchant(); + merchantQ.updateTenantInfo(coupon); + merchantQ.setIds(merchantIds); + merchantQ.setSortColumns(BaseEntity.SortField.MerchantAdmin); + payAccountMerchant = wxMerchantMapper.findIdNameList(merchantQ).get(0); + } + //投放到抖音渠道,获取详情地址,以做审核 WxCouponChannel wxCouponChannelQuery = new WxCouponChannel(); wxCouponChannelQuery.updateTenantInfo(coupon); @@ -244,7 +314,7 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { prostruct.setCategoryId(ttattrs.getCategoryId()); prostruct.setProductType(ttattrs.getProductType()); prostruct.setBizLine(5);//默认小程序 - prostruct.setAccountName(merchant.getName()); + prostruct.setAccountName(payAccountMerchant.getName()); prostruct.setSoldStartTime((long) DateUtils.getSecondTimestamp(wxCouponChannel.getBeginTime())); prostruct.setSoldEndTime((long) DateUtils.getSecondTimestamp(wxCouponChannel.getEndTime())); 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 5a3449e1f..710f94782 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -527,7 +527,8 @@ public class WxCouponServiceImpl implements WxCouponService { }catch(Exception e) { return new ResultData(Result.ERROR,e.getMessage()); } - }else if (EnumCouponType.checkCreateWithMalls(record.getType())) { + } + if (EnumCouponType.checkCreateWithMalls(record.getType())) { String[] mallTenantIds = record.getMallTenantIds(); if (null == mallTenantIds || mallTenantIds.length <= 0 ) { return new ResultData(Result.ERROR,"请选择商场"); @@ -556,7 +557,9 @@ public class WxCouponServiceImpl implements WxCouponService { wxCouponMerchantMapper.insert(cm); }); } - }else if (EnumCouponType.checkCreateWithMalls(record.getType())) { + } + + if (EnumCouponType.checkCreateWithMalls(record.getType())) { for (String mt : record.getMallTenantIds()) { WxCouponMall mall = new WxCouponMall(); mall.updateTenantInfo(record); @@ -564,7 +567,12 @@ public class WxCouponServiceImpl implements WxCouponService { mall.setProductId(record.getId()); mall.setCreateDate(new Date()); mall.setUpdateDate(new Date()); - mall.setStatus(EnumCouponMallStatus.UNFINISED.getCode()); + //如果是直接设置到商户的,直接变为已完成 + if (EnumCouponType.checkCreateWithMerchants(record.getType())) { + mall.setStatus(EnumCouponMallStatus.FINISED.getCode()); + }else { + mall.setStatus(EnumCouponMallStatus.UNFINISED.getCode()); + } wxCouponMallMapper.insert(mall); } } @@ -602,7 +610,9 @@ public class WxCouponServiceImpl implements WxCouponService { logger.error("updateCouponMerchants error.",e); return new ResultData(Result.ERROR,"更新商户出错。"+e.getMessage()); } - }else if (EnumCouponType.checkCreateWithMalls(record.getType())) { + } + + if (EnumCouponType.checkCreateWithMalls(record.getType())) { WxCouponMall couponMall = new WxCouponMall(); couponMall.updateTenantInfo(record); couponMall.setProductId(record.getId()); @@ -614,7 +624,11 @@ public class WxCouponServiceImpl implements WxCouponService { mall.setProductId(record.getId()); mall.setCreateDate(new Date()); mall.setUpdateDate(new Date()); - mall.setStatus(EnumCouponMallStatus.UNFINISED.getCode()); + if (EnumCouponType.checkCreateWithMerchants(record.getType())) { + mall.setStatus(EnumCouponMallStatus.FINISED.getCode()); + }else { + mall.setStatus(EnumCouponMallStatus.UNFINISED.getCode()); + } wxCouponMallMapper.insert(mall); } } From d260fd905df6b76e8ce07e2a54cd20829ad7bda0 Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Fri, 25 Nov 2022 20:49:42 +0800 Subject: [PATCH 050/144] fix bug --- .../service/impl/WxCouponServiceImpl.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 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 710f94782..fb8211348 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -616,6 +616,14 @@ public class WxCouponServiceImpl implements WxCouponService { WxCouponMall couponMall = new WxCouponMall(); couponMall.updateTenantInfo(record); couponMall.setProductId(record.getId()); + List couponMallList = wxCouponMallMapper.findList(couponMall); + Map alreadyMallTenant = new HashMap(); + if (null != couponMallList && couponMallList.size() > 0 ) { + for (int i = 0 ; i < couponMallList.size() ; i ++) { + WxCouponMall c = couponMallList.get(i); + alreadyMallTenant.put(c.getMallTenantId(),c.getStatus()); + } + } wxCouponMallMapper.delteAllByProductId(couponMall); for (String mt : record.getMallTenantIds()) { WxCouponMall mall = new WxCouponMall(); @@ -624,10 +632,15 @@ public class WxCouponServiceImpl implements WxCouponService { mall.setProductId(record.getId()); mall.setCreateDate(new Date()); mall.setUpdateDate(new Date()); - if (EnumCouponType.checkCreateWithMerchants(record.getType())) { - mall.setStatus(EnumCouponMallStatus.FINISED.getCode()); + Integer status = alreadyMallTenant.get(mt); + if (null != status ) { + mall.setStatus(status); }else { - mall.setStatus(EnumCouponMallStatus.UNFINISED.getCode()); + if (EnumCouponType.checkCreateWithMerchants(record.getType())) { + mall.setStatus(EnumCouponMallStatus.FINISED.getCode()); + }else { + mall.setStatus(EnumCouponMallStatus.UNFINISED.getCode()); + } } wxCouponMallMapper.insert(mall); } From 25d54262f67a82cbcdd2187d2f2ca7acff5e22b0 Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Fri, 25 Nov 2022 21:02:37 +0800 Subject: [PATCH 051/144] fix bug --- .../com/iformall/service/impl/TtCouponGoodsServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java index 97ab4085a..ac7ccaf58 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java @@ -208,7 +208,7 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { for (int i = 0 ; i < couponMallList.size(); i++ ) { WxCouponMall cm = couponMallList.get(i); TtMerchantPoi poiQ = new TtMerchantPoi(); - poiQ.setTenantId(cm.getTenantId()); + poiQ.setTenantId(cm.getMallTenantId()); poiQ.setIds(merchantIds); List pois1 = ttMerchantPoiMapper.findList(poiQ); if (null != pois1) { From 0b228df9acada7dbfcb72425ad401ae5a7f2f480 Mon Sep 17 00:00:00 2001 From: xhxu Date: Fri, 25 Nov 2022 21:31:45 +0800 Subject: [PATCH 052/144] // --- .../java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java index ac7ccaf58..b7a882f59 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java @@ -587,6 +587,7 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { map.put("path", Constant.mainPageUrl); Map paramMap = new HashMap<>(); paramMap.put("type","cd"); + paramMap.put("tenantId",tenantEntity.getTenantId()); paramMap.put("couponChannelId",couponChannelId); map.put("params",JSON.toJSONString(paramMap)); return JSON.toJSONString(map); From 0aae646b4a1fee35d6522c0334cd81d432cf2d4b Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Fri, 25 Nov 2022 21:53:53 +0800 Subject: [PATCH 053/144] fix bug --- .../impl/WxCouponChannelServiceImpl.java | 43 ++++++++++++++++--- 1 file changed, 37 insertions(+), 6 deletions(-) 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 6354f4dc0..3904f093c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -96,6 +96,9 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { @Autowired private WxProfitSharingReceiverMapper wxProfitSharingReceiverMapper; + @Autowired + private WxCouponMallMapper wxCouponMallMapper; + /** * B端业务端 * @param record @@ -596,11 +599,39 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { - private boolean isCouponMerchantValid(Long couponId,TenantEntity tenantEntity) { - List merchantVoList = wxMerchantService.findMerchantListByProduct(tenantEntity,couponId,false); - if (merchantVoList.stream().anyMatch((cm->cm.getMerchantStatus().equals(EnumMerchantStatus.VALID.getCode())))){ - return true; - } + private boolean isCouponMerchantValid(Long couponId,Integer couponType,TenantEntity couponTenantEntity) { + if (EnumCouponType.isParentCoupon(couponType)) { + WxCouponMall couponMall = new WxCouponMall(); + couponMall.updateTenantInfo(couponTenantEntity); + couponMall.setProductId(couponId); + couponMall.setStatus(EnumCouponMallStatus.FINISED.getCode()) ; + List couponMallList = wxCouponMallMapper.findList(couponMall); + if (null == couponMallList ) { + return false; + } + for (int i = 0 ; i < couponMallList.size(); i++) { + WxCouponMall wcm = couponMallList.get(i); + TenantEntity mallTenantEntity = new TenantEntity(); + mallTenantEntity.setTenantId(wcm.getMallTenantId()); + mallTenantEntity.setParentTenantId(couponTenantEntity.getTenantId()); + List merchantVoList = wxMerchantService.findMerchantListByProduct(mallTenantEntity,couponId,false); + if (null != merchantVoList && merchantVoList.size() > 0 ) { + if (merchantVoList.stream().anyMatch((cm->cm.getMerchantStatus().equals(EnumMerchantStatus.VALID.getCode())))){ + return true; + } + } + } + return false; + + }else { + List merchantVoList = wxMerchantService.findMerchantListByProduct(couponTenantEntity,couponId,false); + if (null == merchantVoList || merchantVoList.size() <=0 ) { + return false; + } + if (merchantVoList.stream().anyMatch((cm->cm.getMerchantStatus().equals(EnumMerchantStatus.VALID.getCode())))){ + return true; + } + } return false; } @@ -653,7 +684,7 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { } if(!EnumCouponType.COUPON_GIFT.getCode().equals(wxCoupon.getType()) - && !isCouponMerchantValid(wxCoupon.getId(),wxCoupon)) { + && !isCouponMerchantValid(wxCoupon.getId(),wxCoupon.getType(),wxCoupon)) { logger.debug(wxCoupon.getId()+couponid+ErrorCode.MERCHANT_INFO_NOT_FOUND.getMessage()); vo.toCouponChannnelVo(wxCoupon,channelId); vo.setErrorMsg(ErrorCode.MERCHANT_INFO_NOT_FOUND.getMessage()); From 6838b91896853decfae528b0a9c94054ab9f986e Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Fri, 25 Nov 2022 22:00:22 +0800 Subject: [PATCH 054/144] fix bug --- .../iformall/controller/market/WxCouponChannelController.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java index b94a8ed31..ad7cada00 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java @@ -3,6 +3,7 @@ package com.iformall.controller.market; import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageInfo; import com.iformall.annotation.SystemControllerLog; +import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; @@ -128,6 +129,7 @@ public class WxCouponChannelController extends BaseController { return new ResultData(Result.SUCCESS, "查询成功", wxCouponChannelService.getById(id,getTenantInfo().getTenantId())); } + @TenantIgnore @ApiOperation("批量新增") @PostMapping("/addbatch") @SystemControllerLog(description = "券投放-批量新增") From 97c0f1337f4f06c716b5c5c28b4cc73c9b1f4a35 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 26 Nov 2022 11:00:23 +0800 Subject: [PATCH 055/144] // --- .../java/com/iformall/controller/WxUserGrantController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index 379da787c..626543582 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -214,7 +214,7 @@ public class WxUserGrantController extends BaseController { } if(mallList != null && mallList.size() >0){ mallList.stream().forEach(cs -> { - WxAppinfo cAppInfo = wxAppinfoService.getCAppInfoFromRedis(cs.getTenantId(), EnumAppPlat.WX); + WxAppinfo cAppInfo = wxAppinfoService.getCAppInfoFromRedis(cs.getTenantId(), appPlat); cs.setAppId(cAppInfo.getAppId()); }); resultMap.put("subMalls", JSON.toJSONString(mallList)); From 53ac3a2043c3639bf0088e58a6f302476198599f Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Sat, 26 Nov 2022 12:41:53 +0800 Subject: [PATCH 056/144] fix bug --- .../service/impl/TtCouponGoodsServiceImpl.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java index b7a882f59..635544949 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java @@ -192,7 +192,21 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } merchantIds.addAll(mchids); } + //添加商管商户poi + TenantEntity mallTenantEntity = new TenantEntity(); + mallTenantEntity.setTenantId(cm.getMallTenantId()); + mallTenantEntity.setParentTenantId(coupon.getTenantId()); + WxMerchant adminMerchant = wxMerchantService.findAdmin(mallTenantEntity); + if (null == adminMerchant) { + return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),"商场"+cm.getMallTenantId()+"未设置商管商户"); + } + if (!merchantIds.contains(adminMerchant.getId())){ + merchantIds.add(adminMerchant.getId()); + } } + + + }else { merchantIds = wxCouponMerchantMapper.findMerchantIdListByProduct(coupon.getId(), coupon.getTenantId()); } From 69e0f204874769cf50b7425250670f49b248de4d Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Sat, 26 Nov 2022 12:42:17 +0800 Subject: [PATCH 057/144] fix bug --- .../com/iformall/service/impl/TtCouponGoodsServiceImpl.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java index 635544949..256f1790e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java @@ -205,8 +205,6 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { } } - - }else { merchantIds = wxCouponMerchantMapper.findMerchantIdListByProduct(coupon.getId(), coupon.getTenantId()); } From 7977407c492d17c982bf7d25946f22b59eec1cb1 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 26 Nov 2022 13:58:20 +0800 Subject: [PATCH 058/144] // --- .../controller/WxOrderController.java | 3 +- .../com/iformall/service/WxCouponService.java | 11 ++++- .../impl/WxCouponChannelServiceImpl.java | 40 +------------------ .../service/impl/WxCouponServiceImpl.java | 39 +++++++++++++++++- .../service/impl/WxOrderServiceImpl.java | 4 +- 5 files changed, 53 insertions(+), 44 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java index 5d84c9747..2378c58e3 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java @@ -140,7 +140,8 @@ public class WxOrderController extends BaseController { } return wxOrderService.composeSaveOrder(false,EnumComposeOrder.ONE_NUMBER_ORDER_BATCH,orderSaveDto,memberId,getPayWay(),getTenantInfo(),this.getPayVersion()); } - + + @TenantIgnore @ApiOperation(value = "单个券单个订单,卡(分账导致无法批量下单)、拼团,砍价用", notes = "{\"couponChannelId\":\"String\",\"couponId\":\"String\",\"press\":\"String\",\"orderGroupId\":\"String\",\"formId\":\"String\"}") @PostMapping("save") public ResultData saveOrder(@RequestBody OrderSaveDto orderSaveDto) { diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index f4ee77673..3ff870081 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -290,5 +290,14 @@ public interface WxCouponService { void setParentCouponMallMerchants(TenantEntity mallTenantEntity,WxCoupon wxCoupon) throws Exception; - Map couponMerchantAutoShare(TenantEntity tenantEntity,WxCoupon wxCoupon) throws Exception; + Map couponMerchantAutoShare(TenantEntity tenantEntity,WxCoupon wxCoupon) throws Exception; + + /** + * 判断门店商户是否可用 + * @param couponId + * @param couponType + * @param couponTenantEntity + * @return + */ + boolean isCouponMerchantValid(Long couponId,Integer couponType,TenantEntity couponTenantEntity); } 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 3904f093c..77d9bbb66 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -596,44 +596,6 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { } return retList; } - - - - private boolean isCouponMerchantValid(Long couponId,Integer couponType,TenantEntity couponTenantEntity) { - if (EnumCouponType.isParentCoupon(couponType)) { - WxCouponMall couponMall = new WxCouponMall(); - couponMall.updateTenantInfo(couponTenantEntity); - couponMall.setProductId(couponId); - couponMall.setStatus(EnumCouponMallStatus.FINISED.getCode()) ; - List couponMallList = wxCouponMallMapper.findList(couponMall); - if (null == couponMallList ) { - return false; - } - for (int i = 0 ; i < couponMallList.size(); i++) { - WxCouponMall wcm = couponMallList.get(i); - TenantEntity mallTenantEntity = new TenantEntity(); - mallTenantEntity.setTenantId(wcm.getMallTenantId()); - mallTenantEntity.setParentTenantId(couponTenantEntity.getTenantId()); - List merchantVoList = wxMerchantService.findMerchantListByProduct(mallTenantEntity,couponId,false); - if (null != merchantVoList && merchantVoList.size() > 0 ) { - if (merchantVoList.stream().anyMatch((cm->cm.getMerchantStatus().equals(EnumMerchantStatus.VALID.getCode())))){ - return true; - } - } - } - return false; - - }else { - List merchantVoList = wxMerchantService.findMerchantListByProduct(couponTenantEntity,couponId,false); - if (null == merchantVoList || merchantVoList.size() <=0 ) { - return false; - } - if (merchantVoList.stream().anyMatch((cm->cm.getMerchantStatus().equals(EnumMerchantStatus.VALID.getCode())))){ - return true; - } - } - return false; - } @Override public WxCouponChannelAddVo addCouponChannel(Long couponid,Integer channelId, TenantEntity tenantEntity,Date showBeginTime,Date beginTime,Date endTime,Integer channelPrice,Integer channelStock){ @@ -684,7 +646,7 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { } if(!EnumCouponType.COUPON_GIFT.getCode().equals(wxCoupon.getType()) - && !isCouponMerchantValid(wxCoupon.getId(),wxCoupon.getType(),wxCoupon)) { + && !wxCouponService.isCouponMerchantValid(wxCoupon.getId(),wxCoupon.getType(),wxCoupon)) { logger.debug(wxCoupon.getId()+couponid+ErrorCode.MERCHANT_INFO_NOT_FOUND.getMessage()); vo.toCouponChannnelVo(wxCoupon,channelId); vo.setErrorMsg(ErrorCode.MERCHANT_INFO_NOT_FOUND.getMessage()); 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 fb8211348..508990c68 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -1684,6 +1684,43 @@ public class WxCouponServiceImpl implements WxCouponService { } } } - + + @Override + public boolean isCouponMerchantValid(Long couponId, Integer couponType, TenantEntity couponTenantEntity) { + if (EnumCouponType.isParentCoupon(couponType)) { + WxCouponMall couponMall = new WxCouponMall(); + couponMall.updateTenantInfo(couponTenantEntity); + couponMall.setProductId(couponId); + couponMall.setStatus(EnumCouponMallStatus.FINISED.getCode()) ; + List couponMallList = wxCouponMallMapper.findList(couponMall); + if (null == couponMallList ) { + return false; + } + for (int i = 0 ; i < couponMallList.size(); i++) { + WxCouponMall wcm = couponMallList.get(i); + TenantEntity mallTenantEntity = new TenantEntity(); + mallTenantEntity.setTenantId(wcm.getMallTenantId()); + mallTenantEntity.setParentTenantId(couponTenantEntity.getTenantId()); + List merchantVoList = wxMerchantService.findMerchantListByProduct(mallTenantEntity,couponId,false); + if (null != merchantVoList && merchantVoList.size() > 0 ) { + if (merchantVoList.stream().anyMatch((cm->cm.getMerchantStatus().equals(EnumMerchantStatus.VALID.getCode())))){ + return true; + } + } + } + return false; + + }else { + List merchantVoList = wxMerchantService.findMerchantListByProduct(couponTenantEntity,couponId,false); + if (null == merchantVoList || merchantVoList.size() <=0 ) { + return false; + } + if (merchantVoList.stream().anyMatch((cm->cm.getMerchantStatus().equals(EnumMerchantStatus.VALID.getCode())))){ + return true; + } + } + return false; + } + } 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 1aef31fd1..766489fbc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -3235,8 +3235,8 @@ public class WxOrderServiceImpl implements WxOrderService { throw new MallinkException(ErrorCode.COUPON_IS_EMPTY.getCode(),premsg+"不存在"); } if (EnumCouponType.mustHasMerchant(coupon.getType())) { - // 检查券商户信息 - if (!isCouponMerchantValid(coupon.getId(),coupon)) { + // 检查券商户信息isCouponMerchantValid + if (!wxCouponService.isCouponMerchantValid(coupon.getId(),coupon.getType(),coupon)) { throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),premsg+"商户信息没找到"); } } From 3c350e94061062dc88c87e433084955adb5ff2a4 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 26 Nov 2022 15:08:40 +0800 Subject: [PATCH 059/144] // --- .../service/pay/douyin/v1/BaseTtPayAdapterService.java | 10 ++++++---- .../douyin/v1/miniApp/TtMiniAppPayAdapterService.java | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/BaseTtPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/BaseTtPayAdapterService.java index 7445ca7c1..9ec9d9363 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/BaseTtPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/BaseTtPayAdapterService.java @@ -12,6 +12,7 @@ import com.iformall.douyin.pay.orderQuery.OrderQueryResult; import com.iformall.douyin.payv2.result.TtPayOrderQueryV2Result; import com.iformall.enums.EnumPayStatus; import com.iformall.exception.MallinkException; +import com.iformall.service.order.entity.WxComposeOrder; import com.iformall.service.pay.service.pay.entity.PayAdapterResult; import com.iformall.service.pay.service.pay.entity.PayQueryAdapterResult; import com.iformall.utils.MaUtil; @@ -33,12 +34,13 @@ public class BaseTtPayAdapterService { /** * 做为支付的扩展数据 - * @param payOrder + * @param * @return */ - protected String getCpExtra(WxPayOrder payOrder) { - Map map = new HashMap<>(); - map.put("tenantId",payOrder.getTenantId()); + protected String getCallbackData(WxPayOrder record) { + Map map = new HashMap<>(); + map.put("composeOrderId",record.getOrderId()); + map.put("tenantId",record.getTenantId()); return JSON.toJSONString(map); } diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java index 6fb2f5038..0b098b6c4 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java @@ -138,7 +138,7 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen pageEntry.setParams(JSON.toJSONString(paramMap)); request.setOrderEntrySchema(pageEntry); - request.setCpExtra(getCpExtra(record)); + request.setCpExtra(getCallbackData(record)); TtPayUnifiedOrderV2Result orderV2 = ttPayService.createOrderV2(request); @@ -454,7 +454,7 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen map.put("outOrderNo",record.getOrderId()); map.put("createPay",record.isCreatPay()); if(record.isCreatPay()){ - map.put("callbackData",JSONObject.parseObject(getCpExtra(record),Map.class)); + map.put("callbackData",JSONObject.parseObject(getCallbackData(record),Map.class)); Map payment = new HashMap(); payment.put("totalAmount",composeOrder.getPayment()); map.put("payment",payment); From 2975f73e6a2d68e07c6229e0accbd529216ffbe3 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 26 Nov 2022 16:02:37 +0800 Subject: [PATCH 060/144] // --- .../impl/TtCouponGoodsServiceImpl.java | 8 +++++++ .../service/impl/WxCouponServiceImpl.java | 22 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java index 256f1790e..3c16897fe 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java @@ -161,6 +161,14 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { @Override @Transactional(isolation=Isolation.SERIALIZABLE, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) public ResultData productSave(WxCoupon coupon) throws Exception { + TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(coupon.getTenantId(),coupon.getId()); + if(ttCouponChannelPoi != null && + (EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_put_on.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_disable.getCode().equals(ttCouponChannelPoi.getLastStatus()))){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"该券状态不允许提交审核"); + } + WxCoupon ttattrs = wxCouponService.getAttrsById(coupon.getId(), coupon.getTenantId()); if(ttattrs.getProductType() == null || ttattrs.getCategoryId() == null || ttattrs.getProductAttrKeyValueMap().isEmpty() 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 508990c68..84069a902 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 + TtCouponChannelPoiMapper ttCouponChannelPoiMapper; @Autowired WxCouponMallMapper wxCouponMallMapper; @@ -587,6 +590,15 @@ public class WxCouponServiceImpl implements WxCouponService { wxCouponMapper.insert(record); } else { + if(EnumCouponType.getDouYinType().contains(record.getType())){ + TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(record.getTenantId(),record.getId()); + if(ttCouponChannelPoi != null && + (EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_put_on.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_disable.getCode().equals(ttCouponChannelPoi.getLastStatus()))){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"该券状态不允许修改"); + } + } if(record.getInventory() != null && record.getRemainInventory() != null) { // 库存修改检查 @@ -905,6 +917,16 @@ public class WxCouponServiceImpl implements WxCouponService { @Override public ResultData updateTtProduct(WxCoupon record) { + if(EnumCouponType.getDouYinType().contains(record.getType())){ + TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(record.getTenantId(),record.getId()); + if(ttCouponChannelPoi != null && + (EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_put_on.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_disable.getCode().equals(ttCouponChannelPoi.getLastStatus()))){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"该券状态不允许修改"); + } + } + if(StringUtils.isBlank(record.getProductAttrs()) || StringUtils.isBlank(record.getSkuAttrs())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } From 2d0c339d0fe69e9f840d0bb02c15ff7e0ef0aecb Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Sat, 26 Nov 2022 22:15:36 +0800 Subject: [PATCH 061/144] fix bug --- .../controller/WxCouponController.java | 5 ++- .../com/iformall/service/WxCouponService.java | 3 +- .../service/impl/WxCouponServiceImpl.java | 35 +++++++++++++++++-- .../service/impl/WxMerchantServiceImpl.java | 12 +++---- .../service/util/CouponCacheUtils.java | 8 +++-- 5 files changed, 49 insertions(+), 14 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java index 9cd01193e..30c46ecb8 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java @@ -28,10 +28,12 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.alibaba.fastjson.JSON; +import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxCouponChannel; +import com.iformall.domain.po.WxMall; import com.iformall.domain.vo.WxCouponCVo; import com.iformall.domain.vo.WxMerchantVo; import com.iformall.enums.EnumCouponChannelActivityStatus; @@ -281,6 +283,7 @@ public class WxCouponController extends BaseController { return new ResultData(sb.toString()); } + @TenantIgnore @ApiOperation("根据id(couponChannel)查询商品商户接口") @GetMapping("/couponMerchant") @ApiImplicitParams({ @@ -314,7 +317,7 @@ public class WxCouponController extends BaseController { CouponCacheUtils.setCouponChannelCache(redisTemplate, couponChannelIdL, couponChannel); } - List volist = CouponCacheUtils.getCouponMerchantCache(redisTemplate, couponChannel.getId()); + Map> volist = CouponCacheUtils.getCouponMerchantCache(redisTemplate, couponChannel.getId()); if (null == volist) { volist = couponService.getCouponMerchantList(getTenantInfo(), couponChannel.getCouponId()); if (null != volist && volist.size() > 0 ) { diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index f4ee77673..7d30051b6 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -10,6 +10,7 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.TtCouponChannelPoi; import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxCoupon; +import com.iformall.domain.po.WxMall; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.TtCouponVo; @@ -278,7 +279,7 @@ public interface WxCouponService { Map getCouponMap(List couponIds, TenantEntity tenantEntity); - List getCouponMerchantList(TenantEntity tenantInfo, Long couponId); + Map> getCouponMerchantList(TenantEntity tenantInfo, Long couponId); /** * 作废卷 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 fb8211348..26834c665 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -150,6 +150,9 @@ public class WxCouponServiceImpl implements WxCouponService { @Autowired WxCouponMallMapper wxCouponMallMapper; + + @Autowired + WxMallMapper wxMallMapper; @Override public ResultData list(TenantEntity tenantEntity,WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { @@ -1507,10 +1510,36 @@ public class WxCouponServiceImpl implements WxCouponService { } @Override - public List getCouponMerchantList(TenantEntity tenantInfo, Long couponId) { - List couponIdList = new ArrayList(); + public Map> getCouponMerchantList(TenantEntity tenantInfo, Long couponId) { + WxCoupon wxCoupon = wxCouponMapper.selectById(couponId,tenantInfo.getTenantId()); + if (EnumCouponType.isParentCoupon(wxCoupon.getType())){ + WxCouponMall couponMall = new WxCouponMall(); + couponMall.updateTenantInfo(tenantInfo); + couponMall.setProductId(couponId); + couponMall.setStatus(EnumCouponMallStatus.FINISED.getCode()); + List couponMallList = wxCouponMallMapper.findList(couponMall); + if (null != couponMallList && couponMallList.size()> 0 ) { + Map> mallMerchantMap = new HashMap>(); + for (int i = 0 ; i < couponMallList.size();i++) { + WxCouponMall cm = couponMallList.get(i); + WxMall mall = wxMallMapper.getByTenantId(cm.getMallTenantId()); + mallMerchantMap.put(mall, getCouponMerchantList(couponId,mall)); + } + return mallMerchantMap; + } + return null; + }else { + Map> mallMerchantMap = new HashMap>(); + WxMall mall = wxMallMapper.getByTenantId(tenantInfo.getTenantId()); + mallMerchantMap.put(mall, getCouponMerchantList(couponId,mall)); + return mallMerchantMap; + } + } + + private List getCouponMerchantList(Long couponId,TenantEntity mallTenantEntity) { + List couponIdList = new ArrayList(); couponIdList.add(couponId); - Map> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIdList, tenantInfo,true); + Map> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIdList, mallTenantEntity,true); List merchantList = couponMerchantVoMap.get(couponId); if (merchantList != null) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index 0c418c33b..cc239f228 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -1411,15 +1411,15 @@ public class WxMerchantServiceImpl implements WxMerchantService { } @Override - public Map> findCouponMerchantVoList(List couponIds,TenantEntity tenantEntity,boolean hasShop) { + public Map> findCouponMerchantVoList(List couponIds,TenantEntity mallTenantEntity,boolean hasShop) { Map> retMap = new HashMap>(); if (null == couponIds || couponIds.size() <= 0) { return retMap; } - List merchantIds = wxCouponMerchantMapper.findMerchantByProductIds(tenantEntity.getTenantId(), couponIds); + List merchantIds = wxCouponMerchantMapper.findMerchantByProductIds(mallTenantEntity.getTenantId(), couponIds); if(null != merchantIds && merchantIds.size() > 0 ) { TtMerchantPoi poiQ = new TtMerchantPoi(); - poiQ.updateTenantInfo(tenantEntity); + poiQ.updateTenantInfo(mallTenantEntity); poiQ.setIds(merchantIds); List poiList = ttMerchantPoiMapper.findList(poiQ); Map poiMap = new HashMap(); @@ -1433,7 +1433,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { } WxMerchant merchantQ = new WxMerchant(); - merchantQ.updateTenantInfo(tenantEntity); + merchantQ.updateTenantInfo(mallTenantEntity); merchantQ.setIds(merchantIds); List merchantList = wxMerchantMapper.findList(merchantQ); Map merchantMap = new HashMap(); @@ -1455,7 +1455,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { } WxCouponMerchant couponMerchantQ = new WxCouponMerchant(); - couponMerchantQ.updateTenantInfo(tenantEntity); + couponMerchantQ.updateTenantInfo(mallTenantEntity); couponMerchantQ.setStatus(0); couponMerchantQ.setProductIds(couponIds); List couponMerchantList = wxCouponMerchantMapper.findList(couponMerchantQ); @@ -1465,7 +1465,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { Map> merchantShopVoList = null; if (hasShop) { - merchantShopVoList = wxShopService.findMerchantShopVoListMap(tenantEntity,merchantIds); + merchantShopVoList = wxShopService.findMerchantShopVoListMap(mallTenantEntity,merchantIds); } diff --git a/mallinkService/src/main/java/com/iformall/service/util/CouponCacheUtils.java b/mallinkService/src/main/java/com/iformall/service/util/CouponCacheUtils.java index a9e97702d..d498a3ed7 100644 --- a/mallinkService/src/main/java/com/iformall/service/util/CouponCacheUtils.java +++ b/mallinkService/src/main/java/com/iformall/service/util/CouponCacheUtils.java @@ -1,6 +1,7 @@ package com.iformall.service.util; import java.util.List; +import java.util.Map; import org.apache.commons.lang3.StringUtils; import org.springframework.data.redis.core.RedisTemplate; @@ -8,6 +9,7 @@ import org.springframework.data.redis.core.RedisTemplate; import com.github.pagehelper.PageInfo; import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxCouponChannel; +import com.iformall.domain.po.WxMall; import com.iformall.domain.vo.WxMerchantVo; import com.iformall.enums.EnumCacheKey; import com.iformall.utils.RedisCacheUtils; @@ -50,14 +52,14 @@ public class CouponCacheUtils { RedisCacheUtils.removeCache(template, key); } - public static void setCouponMerchantCache(RedisTemplate template,Long couponId,List merchantList) { + public static void setCouponMerchantCache(RedisTemplate template,Long couponId,Map> merchantList) { String key = "couponMerchant:"+couponId; RedisCacheUtils.cache(template, key, merchantList, 24*3600); } - public static List getCouponMerchantCache(RedisTemplate template,Long couponId) { + public static Map> getCouponMerchantCache(RedisTemplate template,Long couponId) { String key = "couponMerchant:"+couponId; - return RedisCacheUtils.getCacheListObject(template, key,WxMerchantVo.class); + return (Map>) RedisCacheUtils.getCacheListObject(template, key,Map.class); } public static void removeDouyinLivePageCache(RedisTemplate template,String tenantId,Integer targetAd,Integer bussiness) { From 89f221034e147c383d110a99e23980978d716d35 Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Sat, 26 Nov 2022 22:33:57 +0800 Subject: [PATCH 062/144] fix bug --- .../interceptor/AuthorizationInterceptor.java | 26 +++++++++++++++---- .../interceptor/AuthorizationInterceptor.java | 8 ++---- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index 3e33eb8b8..daa217e05 100644 --- a/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -69,6 +69,12 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if(StringUtils.isBlank(token) && StringUtils.isBlank(bid)){ throw new MallinkException(ErrorCode.NET_TOKEN_EMPTY); } + + //集团版中针对某一商场的业务需要传递mallTenantId + String mallTenantId = request.getHeader("mallTenantId"); + if(StringUtils.isBlank(mallTenantId)){ + mallTenantId = request.getParameter("mallTenantId"); + } // 查询token信息 String tenantId = null; @@ -78,9 +84,13 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if (user == null || user.getExpireTime().getTime() < System.currentTimeMillis()) { throw new MallinkException(ErrorCode.NET_TOKEN_INVALID.getCode(), "URL:" + request.getRequestURL() + " token失效,请重新登录"); } - - tenantId = user.getTenantId(); - parenTenantId = user.getParentTenantId(); + if (StringUtils.isBlank(mallTenantId)) { + tenantId = user.getTenantId(); + parenTenantId = user.getParentTenantId(); + }else { + tenantId = mallTenantId; + parenTenantId = user.getTenantId(); + } request.setAttribute(Constant.LOGIN_USER_KEY, user.getId()); request.setAttribute(Constant.TENANT_ID, tenantId); request.setAttribute(Constant.REQUEST_C_USER_KEY, user); @@ -94,8 +104,14 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if (buser == null) { throw new MallinkException(ErrorCode.NET_TOKEN_INVALID.getCode(), "URL:" + request.getRequestURL() + " bid失效,请重新登录"); } - tenantId = buser.getTenantId(); - parenTenantId = buser.getParentTenantId(); + + if (StringUtils.isBlank(mallTenantId)) { + tenantId = buser.getTenantId(); + parenTenantId = buser.getParentTenantId(); + }else { + tenantId = mallTenantId; + parenTenantId = buser.getTenantId(); + } request.setAttribute(Constant.LOGIN_B_USER_KEY, buser.getId()); request.setAttribute(Constant.TENANT_ID, tenantId); if (StringUtils.isNotBlank(parenTenantId)) { diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index 59940ef64..3f206b2d9 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -77,11 +77,7 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if (StringUtils.isNotBlank(mallTenantId)) { request.setAttribute(Constant.TENANT_ID, mallTenantId); - if (StringUtils.isNotBlank(cUser.getParentTenantId())) { - request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getParentTenantId()); - }else if(!mallTenantId.equals(cUser.getTenantId())){ - request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getTenantId()); - } + request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getTenantId()); }else { request.setAttribute(Constant.TENANT_ID, cUser.getTenantId()); if (StringUtils.isNotBlank(cUser.getParentTenantId())) { @@ -104,7 +100,7 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if(tenantIgnoreAnnotation != null){ TenantThreadLocal.remove(); }else { - if (!StringUtils.isBlank(mallTenantId)) { + if (StringUtils.isBlank(mallTenantId)) { TenantThreadLocal.setCurrentThreadTenant(cUser.getTenantId(), cUser.getParentTenantId()); }else { TenantThreadLocal.setCurrentThreadTenant(mallTenantId, cUser.getTenantId()); From f379ad4d5a6987f02dfed5a92321b4083fbfb03f Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Sat, 26 Nov 2022 22:57:57 +0800 Subject: [PATCH 063/144] fix bug --- .../iformall/controller/BaseController.java | 2 ++ .../controller/WxCouponOrderController.java | 25 ++++++++++++++++--- .../interceptor/AuthorizationInterceptor.java | 5 ++++ .../iformall/controller/BaseController.java | 2 ++ .../interceptor/AuthorizationInterceptor.java | 5 ++-- .../iformall/domain/po/base/TenantEntity.java | 12 +++++++++ .../java/com/iformall/utils/Constant.java | 1 + 7 files changed, 46 insertions(+), 6 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java index 5b0afe02f..285f85cd6 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java @@ -158,9 +158,11 @@ public class BaseController { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String tenantId = (String) request.getAttribute(Constant.TENANT_ID); String parentTenantId = (String) request.getAttribute(Constant.PARENT_TENANT_ID); + boolean isChildMall = (boolean)request.getAttribute(Constant.IS_CHILD_MALL); TenantEntity tenantEntity = new TenantEntity(); tenantEntity.setTenantId(tenantId); tenantEntity.setParentTenantId(parentTenantId); + tenantEntity.setChildMall(isChildMall); return tenantEntity; } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index de3bc24ec..d3ce767ac 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -4,10 +4,12 @@ import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageInfo; import com.iformall.annotation.AuthIgnore; import com.iformall.annotation.RedisCache; +import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxCouponCVo; import com.iformall.domain.vo.WxCouponOrderBVo; import com.iformall.domain.vo.WxCouponOrderCVo; @@ -282,6 +284,7 @@ public class WxCouponOrderController extends BaseController { return new ResultData(wxCouponOrderCVo); } + @TenantIgnore @ApiOperation(value = "核销接口", notes = "{\"couponOrderId\":\"string\"}") @PostMapping("verify") public ResultData verify(@RequestBody Map paramMap) { @@ -313,8 +316,19 @@ public class WxCouponOrderController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } - WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderService.detailCUserVo(couponOrderIdStr,getTenantInfo()); - + TenantEntity tenantEntity = getTenantInfo(); + + WxCouponOrderCVo wxCouponOrderCVo = null; + if (tenantEntity.isChildMall()) { + //查询父 + TenantEntity parentTenant = new TenantEntity(); + parentTenant.setTenantId(tenantEntity.getParentTenantId()); + parentTenant.setParentTenantId(null); + wxCouponOrderCVo = wxCouponOrderService.detailCUserVo(couponOrderIdStr,parentTenant); + }else { + wxCouponOrderCVo = wxCouponOrderService.detailCUserVo(couponOrderIdStr,tenantEntity); + } + if (wxCouponOrderCVo == null) return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); @@ -353,7 +367,12 @@ public class WxCouponOrderController extends BaseController { } } - WxCouponOrder wxCouponOrder = wxCouponOrderService.getById(couponOrderId,getTenantInfo().getTenantId()); + WxCouponOrder wxCouponOrder = null; + if (tenantEntity.isChildMall()) { + wxCouponOrder = wxCouponOrderService.getById(couponOrderId,tenantEntity.getParentTenantId()); + }else { + wxCouponOrder = wxCouponOrderService.getById(couponOrderId,tenantEntity.getTenantId()); + } if (wxCouponOrder == null) { logger.error("券ID不存在:" + couponOrderId); return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); diff --git a/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index daa217e05..25e85bc4c 100644 --- a/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -79,6 +79,7 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { // 查询token信息 String tenantId = null; String parenTenantId = null; + boolean isChildMall = false; if (!StringUtils.isBlank(token)) { BaseCUserEntity user = cUserTokenService.getBByToken(token); if (user == null || user.getExpireTime().getTime() < System.currentTimeMillis()) { @@ -90,11 +91,13 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { }else { tenantId = mallTenantId; parenTenantId = user.getTenantId(); + isChildMall = true; } request.setAttribute(Constant.LOGIN_USER_KEY, user.getId()); request.setAttribute(Constant.TENANT_ID, tenantId); request.setAttribute(Constant.REQUEST_C_USER_KEY, user); request.setAttribute(Constant.APP_INFO, user.getAppinfo()); + request.setAttribute(Constant.IS_CHILD_MALL,isChildMall); if (StringUtils.isNotBlank(parenTenantId)) { request.setAttribute(Constant.PARENT_TENANT_ID, parenTenantId); } @@ -111,8 +114,10 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { }else { tenantId = mallTenantId; parenTenantId = buser.getTenantId(); + isChildMall = true; } request.setAttribute(Constant.LOGIN_B_USER_KEY, buser.getId()); + request.setAttribute(Constant.IS_CHILD_MALL,isChildMall); request.setAttribute(Constant.TENANT_ID, tenantId); if (StringUtils.isNotBlank(parenTenantId)) { request.setAttribute(Constant.PARENT_TENANT_ID, parenTenantId); diff --git a/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java index 55664bcd5..894dc8cbc 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java @@ -113,9 +113,11 @@ public class BaseController { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String tenantId = (String) request.getAttribute(Constant.TENANT_ID); String parentTenantId = (String) request.getAttribute(Constant.PARENT_TENANT_ID); + boolean isChildMall = (boolean)request.getAttribute(Constant.IS_CHILD_MALL); TenantEntity tenantEntity = new TenantEntity() ; tenantEntity.setTenantId(tenantId); tenantEntity.setParentTenantId(parentTenantId); + tenantEntity.setChildMall(isChildMall); return tenantEntity; } diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index 3f206b2d9..cebe20c7c 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -69,20 +69,19 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if(StringUtils.isBlank(mallTenantId)){ mallTenantId = request.getParameter("mallTenantId"); } - - //设置userId到request里,后续根据userId,获取用户信息 request.setAttribute(Constant.LOGIN_USER_KEY, cUser.getId()); - if (StringUtils.isNotBlank(mallTenantId)) { request.setAttribute(Constant.TENANT_ID, mallTenantId); request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getTenantId()); + request.setAttribute(Constant.IS_CHILD_MALL,true); }else { request.setAttribute(Constant.TENANT_ID, cUser.getTenantId()); if (StringUtils.isNotBlank(cUser.getParentTenantId())) { request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getParentTenantId()); } + request.setAttribute(Constant.IS_CHILD_MALL,false); } request.setAttribute(Constant.REQUEST_C_USER_KEY, cUser); request.setAttribute(Constant.APP_INFO,cUser.getAppinfo()); 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 c69560c9a..c51c796aa 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 @@ -26,6 +26,10 @@ public class TenantEntity extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value="父租户ID",name="parentTenantId") @TableField(exist = false) protected String finalTenantId; + + @io.swagger.annotations.ApiModelProperty(value="是否是集团统一小程序版本下的子广场",name="isChildMall") + @TableField(exist = false) + protected boolean isChildMall; @JsonIgnore @TableField(exist = false) @@ -97,5 +101,13 @@ public class TenantEntity extends BaseEntity { public void setTenantIdList(List tenantIdList) { this.tenantIdList = tenantIdList; } + + public boolean isChildMall() { + return isChildMall; + } + + public void setChildMall(boolean isChildMall) { + this.isChildMall = isChildMall; + } } diff --git a/mallinkService/src/main/java/com/iformall/utils/Constant.java b/mallinkService/src/main/java/com/iformall/utils/Constant.java index d5b8c76ca..59a024188 100644 --- a/mallinkService/src/main/java/com/iformall/utils/Constant.java +++ b/mallinkService/src/main/java/com/iformall/utils/Constant.java @@ -64,6 +64,7 @@ public class Constant { public static final String APP_Id = "APP_Id"; public static final String APP_NAME = "APP_NAME"; public static final String APP_INFO = "APPINFO"; + public static final String IS_CHILD_MALL = "IS_CHILD_MALL"; public static final String LOGIN_B_USER_KEY = "LOGIN_B_USER_KEY"; From 8e5fc7e0c5ad87a702ab8e58ee5cff400b345c07 Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Sun, 27 Nov 2022 10:38:34 +0800 Subject: [PATCH 064/144] fix bug --- .../iformall/controller/BaseController.java | 20 ++++++++++++++----- .../impl/WxCouponOrderServiceImpl.java | 6 +++--- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java index 285f85cd6..dce7d5f83 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java @@ -138,12 +138,22 @@ public class BaseController { throw new MallinkException(ErrorCode.USER_IS_EMPTY); } TenantEntity tenantEntity = getTenantInfo(); - if (user.getTenantId() == null) { - user.setTenantId(tenantEntity.getTenantId()); - } - if (user.getParentTenantId() == null) { - user.setParentTenantId(tenantEntity.getParentTenantId()); + if (tenantEntity.isChildMall()) { + if (user.getTenantId() == null) { + user.setTenantId(tenantEntity.getParentTenantId()); + } + if (user.getParentTenantId() == null) { + user.setParentTenantId(null); + } + }else { + if (user.getTenantId() == null) { + user.setTenantId(tenantEntity.getTenantId()); + } + if (user.getParentTenantId() == null) { + user.setParentTenantId(tenantEntity.getParentTenantId()); + } } + return user; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index e12dd6122..7fdfe6766 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -1266,7 +1266,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { if(EnumCouponType.COUPON_DISTRIBUTION.getCode().equals(wxCoupon.getType())){ //可配送商品 WxCouponMerchant wxCouponMerchant = new WxCouponMerchant(); - wxCouponMerchant.updateTenantInfo(wxCoupon); + wxCouponMerchant.updateTenantInfo(bUser); wxCouponMerchant.setProductId(wxCoupon.getId()); wxCouponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); WxCouponMerchant cm = null; @@ -1295,7 +1295,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { throw new MallinkException(ErrorCode.VERIFY_COUPON_TYPE_NOT_SUPPORT); } WxCouponMerchant wxCouponMerchant = new WxCouponMerchant(); - wxCouponMerchant.updateTenantInfo(wxCoupon); + wxCouponMerchant.updateTenantInfo(bUser); wxCouponMerchant.setProductId(wxCoupon.getId()); wxCouponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); List couponMerchantList = wxCouponMerchantMapper.findList(wxCouponMerchant); @@ -1315,7 +1315,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { if(wxPayOrder != null && EnumPayMchType.TOTAL.getCode().equals(wxPayOrder.getMchType()) && EnumPayShare.YES.getCode().equals(wxPayOrder.getShare())){ WxProfitSharingReceiver receiver = payServiceFactory.getPayShareAdapterService(wxPayOrder.getPayVendor(),couponOrder.getPayVersion()) - .getReceiver(couponOrder, merchantId, wxPayOrder.getTtPayWay(),wxPayOrder.getMchType()); + .getReceiver(bUser, merchantId, wxPayOrder.getTtPayWay(),wxPayOrder.getMchType()); if (null == receiver) { throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL.getCode(),"当前商户没有配置收款账号。"); } From 8b3a7400f42ad265243787b70c144e2c1fb8d37f Mon Sep 17 00:00:00 2001 From: xhxu Date: Sun, 27 Nov 2022 13:11:48 +0800 Subject: [PATCH 065/144] // --- .../controller/WxMerchantBUserController.java | 40 ++++++++++--------- .../WxMsgValidationcodeController.java | 4 +- .../service/WxMerchantBUserService.java | 2 +- .../impl/WxMerchantBUserServiceImpl.java | 13 +----- .../mapper/WxMerchantBUserMapper.xml | 2 +- 5 files changed, 28 insertions(+), 33 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java index 168333504..7a3301774 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java @@ -3,6 +3,7 @@ package com.iformall.controller; import com.iformall.annotation.AuthIgnore; import com.iformall.annotation.RedisCache; +import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; @@ -122,6 +123,7 @@ public class WxMerchantBUserController extends BaseController { * @param map * @return */ + @TenantIgnore @AuthIgnore @PostMapping("/login") @ApiOperation(value = "用户登录", notes = "{" + @@ -158,8 +160,8 @@ public class WxMerchantBUserController extends BaseController { } WxMerchantBUser userQ = new WxMerchantBUser(); - userQ.updateTenantInfo(wxAppinfo); -// userQ.setAppId(appId); +// userQ.updateTenantInfo(wxAppinfo); + userQ.setAppId(appId); userQ.setPhone(phone); userQ.setStatus(EnumMerchantBUserStatus.VALID.getCode()); List orgList = wxMerchantBUserService.getBUserByAppId(userQ); @@ -174,12 +176,12 @@ public class WxMerchantBUserController extends BaseController { ResultData merchantStatus = checkMerchantStatus(orgUser); if (merchantStatus != null) return merchantStatus; - try { - wxMerchantBUserService.saveOrUpdate(orgUser); - } catch (Exception e) { - logger.error("B端用户更新用户信息失败, e:" + e.getMessage()); - return new ResultData(ErrorCode.DB_FAIL.getCode(), "数据库保存失败,e:" + e.getMessage()); - } +// try { +// wxMerchantBUserService.saveOrUpdate(orgUser); +// } catch (Exception e) { +// logger.error("B端用户更新用户信息失败, e:" + e.getMessage()); +// return new ResultData(ErrorCode.DB_FAIL.getCode(), "数据库保存失败,e:" + e.getMessage()); +// } Map resultMap = new HashMap<>(); resultMap.put("bUserId", orgUser.getId()); resultMap.put("logined", true); @@ -202,9 +204,9 @@ public class WxMerchantBUserController extends BaseController { List merchantListInfo = wxMerchantBUserService.getMerchantInfoByBUser(userQ); Map resultMap = new HashMap<>(); resultMap.put("merchantList", merchantListInfo); - resultMap.put("logined", true); - resultMap.put("bUserId", orgUser.getId()); - request.setAttribute(Constant.LOGIN_B_USER_KEY, orgUser.getId()); + resultMap.put("logined", false); +// resultMap.put("bUserId", orgUser.getId()); +// request.setAttribute(Constant.LOGIN_B_USER_KEY, orgUser.getId()); return new ResultData(resultMap); } else { logger.error(ErrorCode.PASSWORD_ERROR.getMessage()); @@ -220,6 +222,7 @@ public class WxMerchantBUserController extends BaseController { } } + @TenantIgnore @AuthIgnore @PostMapping("/selectMerchant") @ApiOperation(value = "选择商户", notes = "{" + @@ -245,12 +248,12 @@ public class WxMerchantBUserController extends BaseController { if (orgUser != null) { ResultData merchantStatus = checkMerchantStatus(orgUser); if (merchantStatus != null) return merchantStatus; - try { - wxMerchantBUserService.saveOrUpdate(orgUser); - } catch (Exception e) { - logger.error("B端用户更新用户信息失败, e:" + e.getMessage()); - return new ResultData(ErrorCode.DB_FAIL.getCode(), "数据库保存失败,e:" + e.getMessage()); - } +// try { +// wxMerchantBUserService.saveOrUpdate(orgUser); +// } catch (Exception e) { +// logger.error("B端用户更新用户信息失败, e:" + e.getMessage()); +// return new ResultData(ErrorCode.DB_FAIL.getCode(), "数据库保存失败,e:" + e.getMessage()); +// } Map resultMap = new HashMap<>(); resultMap.put("bUserId", orgUser.getId()); resultMap.put("logined", true); @@ -285,6 +288,7 @@ public class WxMerchantBUserController extends BaseController { } + @TenantIgnore @AuthIgnore @ApiOperation(value = "修改密码,集团版会修改集团下同一手机号的密码", notes = "{\"appId\",\"string\", \"phone\",\"string\",\"code\",\"string\",\"pwd\",\"string\"}") @PostMapping("/updatepwd") @@ -306,7 +310,7 @@ public class WxMerchantBUserController extends BaseController { if (StringUtils.isBlank(pwd)) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "密码不能为空"); } - return wxMerchantBUserService.updatePwd(getTenantInfo(), phone, code, pwd); + return wxMerchantBUserService.updatePwd(appId, phone, code, pwd); } } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java index fcca737fb..1fe79b5fd 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java @@ -1,5 +1,6 @@ package com.iformall.controller; +import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.domain.po.WxMerchant; @@ -37,8 +38,7 @@ public class WxMsgValidationcodeController extends BaseController { @Autowired private WxMerchantService wxMerchantService; - - + @TenantIgnore @GetMapping("sendvalidationcode") @ApiImplicitParams({ @ApiImplicitParam(name = "phone", value = "手机号", dataType = "String", paramType = "query", required = true), diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantBUserService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantBUserService.java index 00c58f123..1f3d0f2b7 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantBUserService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantBUserService.java @@ -64,6 +64,6 @@ public interface WxMerchantBUserService { boolean hasPhone(TenantEntity tenantEntity, String phone); - ResultData updatePwd(TenantEntity tenantEntity, String phone, String code, String pwd); + ResultData updatePwd(String appId, String phone, String code, String pwd); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java index f4a3f0300..c0e06e6fc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java @@ -148,10 +148,9 @@ public class WxMerchantBUserServiceImpl implements WxMerchantBUserService { } @Override - public ResultData updatePwd(TenantEntity tenantEntity, String phone, String code, String pwd) { + public ResultData updatePwd(String appId, String phone, String code, String pwd) { WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode(); - wxMsgValidationcode.setTenantId(tenantEntity.getTenantId()); wxMsgValidationcode.setPhone(phone); wxMsgValidationcode.setCode(code); List msgValidationCodeList = wxMsgValidationcodeMapper.findList(wxMsgValidationcode); @@ -161,18 +160,10 @@ public class WxMerchantBUserServiceImpl implements WxMerchantBUserService { if (msgValidationCodeList.size() > 0) { //更新 WxMerchantBUser bUser = new WxMerchantBUser(); - bUser.setTenantId(tenantEntity.getTenantId()); + bUser.setAppId(appId); bUser.setPhone(phone); bUser.setStatus(EnumMerchantBUserStatus.VALID.getCode()); List list = wxMerchantBUserMapper.findList(bUser); - if(wxMallService.isgroupSupport(tenantEntity)){ - bUser.setTenantId(null); - bUser.setParentTenantId(tenantEntity.getTenantId()); - List list1 = wxMerchantBUserMapper.findList(bUser); - if(list1.size() > 0){ - list.addAll(list1); - } - } if (list.size() > 0) { for (WxMerchantBUser merchantBUser:list) { merchantBUser.setUserPwd(pwd); diff --git a/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml index ba745d56e..9db3cffde 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml @@ -155,7 +155,7 @@ mbu.tenant_id, mbu.parent_tenant_id, m.name tenant_name, mc.name merchant_name, mbu.id bu_user_id, mbu.merchant_id, mc.img_url from wx_merchant_b_user mbu, wx_merchant mc, wx_mall m - m.tenant_id = mbu.parent_tenant_id + m.tenant_id = mbu.tenant_id and mbu.merchant_id = mc.id and mc.status = 1 and mbu.`app_id` = #{appId} From 7ce94b3800789a1af18123fc81a07d051a1184f0 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sun, 27 Nov 2022 16:00:01 +0800 Subject: [PATCH 066/144] // --- .../controller/WxMerchantBUserController.java | 20 ++++-- .../WxMsgValidationcodeController.java | 13 +++- .../iformall/service/impl/PosServiceImpl.java | 2 +- .../com/iformall/service/WxMallService.java | 3 + .../service/WxMerchantBUserService.java | 7 ++- .../iformall/service/WxMerchantService.java | 2 + .../service/impl/WxMallServiceImpl.java | 11 ++++ .../impl/WxMerchantBUserServiceImpl.java | 62 ++++++++++++++++--- .../service/impl/WxMerchantServiceImpl.java | 11 ++++ 9 files changed, 112 insertions(+), 19 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java index 7a3301774..07cd9f699 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java @@ -160,11 +160,11 @@ public class WxMerchantBUserController extends BaseController { } WxMerchantBUser userQ = new WxMerchantBUser(); -// userQ.updateTenantInfo(wxAppinfo); - userQ.setAppId(appId); + userQ.updateTenantInfo(wxAppinfo); +// userQ.setAppId(appId); userQ.setPhone(phone); userQ.setStatus(EnumMerchantBUserStatus.VALID.getCode()); - List orgList = wxMerchantBUserService.getBUserByAppId(userQ); + List orgList = wxMerchantBUserService.findAllList(userQ); if (orgList.size() == 1) { // 集团内只发现一个用户 @@ -201,7 +201,7 @@ public class WxMerchantBUserController extends BaseController { // check password if (orgUser.getUserPwd().equalsIgnoreCase(password)) { // 返回多个(商场+商户) - List merchantListInfo = wxMerchantBUserService.getMerchantInfoByBUser(userQ); + List merchantListInfo = wxMerchantBUserService.handMerchantBUser(orgList); Map resultMap = new HashMap<>(); resultMap.put("merchantList", merchantListInfo); resultMap.put("logined", false); @@ -242,7 +242,7 @@ public class WxMerchantBUserController extends BaseController { WxMerchantBUser userQ = new WxMerchantBUser(); userQ.setId(Long.valueOf(buUserIdStr)); userQ.setMerchantId(Long.valueOf(merchantIdStr)); - List orgList = wxMerchantBUserService.getBUserByAppId(userQ); + List orgList = wxMerchantBUserService.findList(userQ); if (orgList.size() == 1) { WxMerchantBUser orgUser = orgList.get(0); if (orgUser != null) { @@ -301,6 +301,14 @@ public class WxMerchantBUserController extends BaseController { if (StringUtils.isBlank(appId)) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "appId不能为空"); } + WxAppinfo wxAppinfo = getAppInfo(appId); + if(wxAppinfo == null){ + return new ResultData(ErrorCode.APP_ID_NOT_FOUND); + } + if(!wxAppinfo.getEnable().equals(EnumEnableType.Enable.getCode())){ + return new ResultData(ErrorCode.APP_ID_NOT_ENABLE); + } + if (StringUtils.isBlank(phone)) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "手机号不能为空"); } @@ -310,7 +318,7 @@ public class WxMerchantBUserController extends BaseController { if (StringUtils.isBlank(pwd)) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "密码不能为空"); } - return wxMerchantBUserService.updatePwd(appId, phone, code, pwd); + return wxMerchantBUserService.updatePwd(wxAppinfo.getTenantId(), phone, code, pwd); } } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java index 1fe79b5fd..54381992e 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java @@ -3,6 +3,7 @@ package com.iformall.controller; import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; +import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.po.WxMsgValidationcode; @@ -46,12 +47,20 @@ public class WxMsgValidationcodeController extends BaseController { @ApiImplicitParam(name = "appid", value = "appid", dataType = "String", paramType = "query", required = true)}) public ResultData sendvalidationcode(String phone, String type, String appid) { + WxAppinfo wxAppinfo = getAppInfo(appid); + if(wxAppinfo == null){ + return new ResultData(ErrorCode.APP_ID_NOT_FOUND); + } + if(!wxAppinfo.getEnable().equals(EnumEnableType.Enable.getCode())){ + return new ResultData(ErrorCode.APP_ID_NOT_ENABLE); + } + WxMerchantBUser userQ = new WxMerchantBUser(); - userQ.setAppId(appid); + userQ.updateTenantInfo(wxAppinfo); userQ.setPhone(phone); userQ.setStatus(EnumMerchantBUserStatus.VALID.getCode()); - List orgUserList = wxMerchantBUserService.getBUserByAppId(userQ); + List orgUserList = wxMerchantBUserService.findList(userQ); if (orgUserList.size() <= 0) { logger.error("B端用户不存在, phone: " + phone); return new ResultData(ErrorCode.USER_IS_EMPTY); diff --git a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java index 5e52e8687..70caa7297 100644 --- a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java +++ b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java @@ -109,7 +109,7 @@ public class PosServiceImpl implements PosService { List orgUserList = null; try { - orgUserList = merchantBUserService.getBUserByAppId(userQ); + orgUserList = merchantBUserService.findList(userQ); } catch (Exception e) { String errMessage = ErrorCode.MERCHANT_BUSER_NOT_VALID.getMessage() + "phone: " + phone + ", " +e.getMessage(); throw new MallinkException(ErrorCode.MERCHANT_BUSER_NOT_VALID.getCode(), errMessage); diff --git a/mallinkService/src/main/java/com/iformall/service/WxMallService.java b/mallinkService/src/main/java/com/iformall/service/WxMallService.java index 065d6089c..d9e2665b1 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMallService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMallService.java @@ -7,6 +7,7 @@ import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.WxMall; import java.util.List; +import java.util.Map; public interface WxMallService { @@ -93,4 +94,6 @@ public interface WxMallService { boolean mallValid(Long loginUserId,WxMall mall); boolean isgroupSupport(TenantEntity tenantEntity); + + Map getMallMap(WxMall mallQ); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantBUserService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantBUserService.java index 1f3d0f2b7..e022fd049 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantBUserService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantBUserService.java @@ -43,7 +43,7 @@ public interface WxMerchantBUserService { * @param record * @return */ - List getBUserByAppId(WxMerchantBUser record); + List findList(WxMerchantBUser record); List getMerchantInfoByBUser(WxMerchantBUser record); @@ -64,6 +64,9 @@ public interface WxMerchantBUserService { boolean hasPhone(TenantEntity tenantEntity, String phone); - ResultData updatePwd(String appId, String phone, String code, String pwd); + ResultData updatePwd(String tenantId, String phone, String code, String pwd); + List findAllList(WxMerchantBUser userQ); + + List handMerchantBUser(List orgList); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java index d8dcd2031..c0a3af2e9 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java @@ -205,4 +205,6 @@ public interface WxMerchantService { WxMerchant findAdmin(TenantEntity tenantEntity); WxMerchant findBrandAdmin(TenantEntity tenantEntity, Long brandId); + + Map findMerchantMap(WxMerchant merchantQ); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMallServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMallServiceImpl.java index 12b00b4c5..f9500b135 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMallServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMallServiceImpl.java @@ -34,6 +34,7 @@ import org.springframework.util.Assert; import java.util.*; import java.util.concurrent.TimeUnit; +import java.util.function.Function; import java.util.stream.Collectors; @Service @@ -397,4 +398,14 @@ public class WxMallServiceImpl implements WxMallService { return false; } + @Override + public Map getMallMap(WxMall mallQ) { + Map mallMap = new HashMap<>(); + List list = this.findList(mallQ); + if(!list.isEmpty()){ + mallMap = list.stream().collect(Collectors.toMap(WxMall::getTenantId, Function.identity())); + } + return mallMap; + } + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java index c0e06e6fc..83702d820 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java @@ -6,10 +6,7 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.ResultData; -import com.iformall.domain.po.WxAppinfo; -import com.iformall.domain.po.WxMerchant; -import com.iformall.domain.po.WxMerchantBUser; -import com.iformall.domain.po.WxMsgValidationcode; +import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxMerchantBuInfoVo; import com.iformall.enums.EnumMerchantBUserStatus; @@ -21,6 +18,7 @@ import com.iformall.mapper.WxMerchantMapper; import com.iformall.mapper.WxMsgValidationcodeMapper; import com.iformall.service.WxMallService; import com.iformall.service.WxMerchantBUserService; +import com.iformall.service.WxMerchantService; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,6 +41,9 @@ public class WxMerchantBUserServiceImpl implements WxMerchantBUserService { @Autowired WxAppinfoMapper wxAppinfoMapper; + @Autowired + WxMerchantService wxMerchantService; + @Autowired WxMerchantMapper wxMerchantMapper; @@ -99,7 +100,7 @@ public class WxMerchantBUserServiceImpl implements WxMerchantBUserService { } @Override - public List getBUserByAppId(WxMerchantBUser record) { + public List findList(WxMerchantBUser record) { return wxMerchantBUserMapper.findList(record); } @@ -148,9 +149,10 @@ public class WxMerchantBUserServiceImpl implements WxMerchantBUserService { } @Override - public ResultData updatePwd(String appId, String phone, String code, String pwd) { + public ResultData updatePwd(String tenantId, String phone, String code, String pwd) { WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode(); + wxMsgValidationcode.setTenantId(tenantId); wxMsgValidationcode.setPhone(phone); wxMsgValidationcode.setCode(code); List msgValidationCodeList = wxMsgValidationcodeMapper.findList(wxMsgValidationcode); @@ -160,10 +162,10 @@ public class WxMerchantBUserServiceImpl implements WxMerchantBUserService { if (msgValidationCodeList.size() > 0) { //更新 WxMerchantBUser bUser = new WxMerchantBUser(); - bUser.setAppId(appId); + bUser.setTenantId(tenantId); bUser.setPhone(phone); bUser.setStatus(EnumMerchantBUserStatus.VALID.getCode()); - List list = wxMerchantBUserMapper.findList(bUser); + List list = this.findAllList(bUser); if (list.size() > 0) { for (WxMerchantBUser merchantBUser:list) { merchantBUser.setUserPwd(pwd); @@ -182,5 +184,49 @@ public class WxMerchantBUserServiceImpl implements WxMerchantBUserService { return new ResultData(); } + @Override + public List findAllList(WxMerchantBUser userQ) { + if(StringUtils.isBlank(userQ.getTenantId())){ + return new ArrayList<>(); + } + List list = this.findList(userQ); + if(wxMallService.isgroupSupport(userQ)){ + userQ.setTenantId(null); + userQ.setParentTenantId(userQ.getTenantId()); + List list1 = wxMerchantBUserMapper.findList(userQ); + if(list1.size() > 0){ + list.addAll(list1); + } + } + return list; + } + + @Override + public List handMerchantBUser(List orgList) { + List tenantIds = orgList.stream().map(mb -> mb.getTenantId()).collect(Collectors.toList()); + WxMall mallQ = new WxMall(); + mallQ.setTenantIdList(tenantIds); + Map mallMap = wxMallService.getMallMap(mallQ); + List merchantIds = orgList.stream().map(mb -> mb.getMerchantId()).collect(Collectors.toList()); + WxMerchant merchantQ = new WxMerchant(); + merchantQ.setIds(merchantIds); + Map merchantMap = wxMerchantService.findMerchantMap(merchantQ); + + List listvo = new ArrayList<>(); + for (WxMerchantBUser bUser:orgList) { + WxMerchantBuInfoVo mbvo = new WxMerchantBuInfoVo(); + WxMall wxMall = mallMap.get(mbvo.getTenantId()); + mbvo.updateTenantInfo(wxMall); + mbvo.setTenantName(wxMall.getName()); + mbvo.setMerchantId(mbvo.getMerchantId()); + WxMerchant merchant = merchantMap.get(mbvo.getMerchantId()); + mbvo.setMerchantName(merchant.getName()); + mbvo.setImgUrl(merchant.getImgUrl()); + mbvo.setBuUserId(bUser.getId()); + listvo.add(mbvo); + } + return listvo; + } + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index cc239f228..f0510d9e4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -39,6 +39,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -1911,4 +1912,14 @@ public class WxMerchantServiceImpl implements WxMerchantService { } return null; } + + @Override + public Map findMerchantMap(WxMerchant merchantQ) { + Map merchantMap = new HashMap<>(); + List list = this.findList(merchantQ); + if(!list.isEmpty()){ + merchantMap = list.stream().collect(Collectors.toMap(WxMerchant::getId, Function.identity())); + } + return merchantMap; + } } From a3e95359a9c8892f01279420269e421208a95c64 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sun, 27 Nov 2022 16:35:38 +0800 Subject: [PATCH 067/144] // --- .../service/impl/WxMerchantBUserServiceImpl.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java index 83702d820..5661cd075 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java @@ -22,6 +22,7 @@ import com.iformall.service.WxMerchantService; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -191,9 +192,11 @@ public class WxMerchantBUserServiceImpl implements WxMerchantBUserService { } List list = this.findList(userQ); if(wxMallService.isgroupSupport(userQ)){ - userQ.setTenantId(null); - userQ.setParentTenantId(userQ.getTenantId()); - List list1 = wxMerchantBUserMapper.findList(userQ); + WxMerchantBUser userQ2 = new WxMerchantBUser(); + BeanUtils.copyProperties(userQ2,userQ); + userQ2.setTenantId(null); + userQ2.setParentTenantId(userQ.getTenantId()); + List list1 = wxMerchantBUserMapper.findList(userQ2); if(list1.size() > 0){ list.addAll(list1); } From a10f20bd5a39d486a7031aa62bd8cd468cd6e406 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sun, 27 Nov 2022 17:23:27 +0800 Subject: [PATCH 068/144] // --- .../com/iformall/service/impl/WxMerchantBUserServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java index 5661cd075..f26a12f13 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java @@ -193,7 +193,7 @@ public class WxMerchantBUserServiceImpl implements WxMerchantBUserService { List list = this.findList(userQ); if(wxMallService.isgroupSupport(userQ)){ WxMerchantBUser userQ2 = new WxMerchantBUser(); - BeanUtils.copyProperties(userQ2,userQ); + BeanUtils.copyProperties(userQ,userQ2); userQ2.setTenantId(null); userQ2.setParentTenantId(userQ.getTenantId()); List list1 = wxMerchantBUserMapper.findList(userQ2); From c75b2e1ed5b05f473f41adc8815b0fa9de974646 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sun, 27 Nov 2022 18:10:37 +0800 Subject: [PATCH 069/144] //test --- .../main/java/com/iformall/controller/WxInfoController.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java index c682d452b..d47f4ae9b 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java @@ -2,6 +2,7 @@ package com.iformall.controller; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.iformall.annotation.AuthIgnore; import com.iformall.annotation.TenantIgnore; @@ -87,6 +88,7 @@ public class WxInfoController extends BaseController { if (buUser == null) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "登录用户未找到"); } + logger.info(JSON.toJSONString(buUser)); //其他参数 String systemInfo = param.get("systemInfo"); WxAppinfo wxAppinfo = getAppInfo(appId); @@ -100,11 +102,14 @@ public class WxInfoController extends BaseController { if(appPlat == null){ return new ResultData(ErrorCode.APP_PLAT_ERROR); } + logger.info(JSON.toJSONString(wxAppinfo)); WxMall wxMall = mallService.getByTenantId(wxAppinfo.getTenantId()); if(wxMall == null){ return new ResultData(ErrorCode.MALL_INFO_NOT_FOUND); } + logger.info(JSON.toJSONString(wxMall)); + String session_key = null; String openId = null; String unionId = null; From cef91afde7a92abdb066f2d1fffee54c104be7a2 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sun, 27 Nov 2022 18:32:44 +0800 Subject: [PATCH 070/144] //test --- .../main/java/com/iformall/controller/WxInfoController.java | 4 ---- .../com/iformall/service/impl/WxMerchantBUserServiceImpl.java | 4 ++-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java index d47f4ae9b..8f6464ee8 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java @@ -88,7 +88,6 @@ public class WxInfoController extends BaseController { if (buUser == null) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "登录用户未找到"); } - logger.info(JSON.toJSONString(buUser)); //其他参数 String systemInfo = param.get("systemInfo"); WxAppinfo wxAppinfo = getAppInfo(appId); @@ -102,14 +101,11 @@ public class WxInfoController extends BaseController { if(appPlat == null){ return new ResultData(ErrorCode.APP_PLAT_ERROR); } - logger.info(JSON.toJSONString(wxAppinfo)); WxMall wxMall = mallService.getByTenantId(wxAppinfo.getTenantId()); if(wxMall == null){ return new ResultData(ErrorCode.MALL_INFO_NOT_FOUND); } - logger.info(JSON.toJSONString(wxMall)); - String session_key = null; String openId = null; String unionId = null; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java index f26a12f13..2f4358ff7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantBUserServiceImpl.java @@ -218,11 +218,11 @@ public class WxMerchantBUserServiceImpl implements WxMerchantBUserService { List listvo = new ArrayList<>(); for (WxMerchantBUser bUser:orgList) { WxMerchantBuInfoVo mbvo = new WxMerchantBuInfoVo(); - WxMall wxMall = mallMap.get(mbvo.getTenantId()); + WxMall wxMall = mallMap.get(bUser.getTenantId()); mbvo.updateTenantInfo(wxMall); mbvo.setTenantName(wxMall.getName()); mbvo.setMerchantId(mbvo.getMerchantId()); - WxMerchant merchant = merchantMap.get(mbvo.getMerchantId()); + WxMerchant merchant = merchantMap.get(bUser.getMerchantId()); mbvo.setMerchantName(merchant.getName()); mbvo.setImgUrl(merchant.getImgUrl()); mbvo.setBuUserId(bUser.getId()); From 1a4309f81e7c2ed6dae4c4071e5151157e595763 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sun, 27 Nov 2022 21:40:37 +0800 Subject: [PATCH 071/144] //b test --- .../iformall/controller/BaseController.java | 51 +++------ .../controller/WxCouponOrderController.java | 2 +- .../iformall/controller/WxInfoController.java | 6 +- .../controller/WxMerchantController.java | 4 +- .../interceptor/AuthorizationInterceptor.java | 107 +++++++++++------- 5 files changed, 94 insertions(+), 76 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java index dce7d5f83..9e69658c3 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java @@ -91,17 +91,8 @@ public class BaseController { //该方法兼容微信登陆和非微信登陆 public WxMerchantBUser getLoginBUser() { - Long wxBuserId = getWxBuserId(); - if (null != wxBuserId) { - CUser buser = getCUser(); - Long userId = buser.getUserId(); - WxMerchantBUser user = getWxMerchantBUser(userId); - user.setBuserId(buser.getId()); - return user; - }else { - Long userId = getMerchantBUserId(); - return getWxMerchantBUser(userId); - } + Long userId = getMerchantBUserId(); + return getWxMerchantBUser(userId); } public Long getWxBuserId() { @@ -109,12 +100,6 @@ public class BaseController { Long id = (Long) request.getAttribute(Constant.LOGIN_USER_KEY); return id; } - - public WxAppinfo getCurrentApp() { - HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); - WxAppinfo appInfo = (WxAppinfo) request.getAttribute(Constant.APP_INFO); - return appInfo; - } public CUser getCUser() { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); @@ -137,22 +122,22 @@ public class BaseController { if(user == null){ throw new MallinkException(ErrorCode.USER_IS_EMPTY); } - TenantEntity tenantEntity = getTenantInfo(); - if (tenantEntity.isChildMall()) { - if (user.getTenantId() == null) { - user.setTenantId(tenantEntity.getParentTenantId()); - } - if (user.getParentTenantId() == null) { - user.setParentTenantId(null); - } - }else { - if (user.getTenantId() == null) { - user.setTenantId(tenantEntity.getTenantId()); - } - if (user.getParentTenantId() == null) { - user.setParentTenantId(tenantEntity.getParentTenantId()); - } - } +// TenantEntity tenantEntity = getTenantInfo(); +// if (tenantEntity.isChildMall()) { +// if (user.getTenantId() == null) { +// user.setTenantId(tenantEntity.getParentTenantId()); +// } +// if (user.getParentTenantId() == null) { +// user.setParentTenantId(null); +// } +// }else { +// if (user.getTenantId() == null) { +// user.setTenantId(tenantEntity.getTenantId()); +// } +// if (user.getParentTenantId() == null) { +// user.setParentTenantId(tenantEntity.getParentTenantId()); +// } +// } return user; } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index d3ce767ac..12db8699a 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -378,7 +378,7 @@ public class WxCouponOrderController extends BaseController { return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); } - WxMerchantBUser wxMerchantBUser = wxMerchantBUserService.getById(getLoginBUser().getId()); + WxMerchantBUser wxMerchantBUser = getLoginBUser(); if (wxMerchantBUser == null) { logger.error("核销员ID不存在:" + getLoginBUser().getId()); throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(), "核销员ID不存在或者无权限"); diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java index 8f6464ee8..ba71b60fc 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java @@ -428,6 +428,7 @@ public class WxInfoController extends BaseController { * @param map * @return */ + @TenantIgnore @PostMapping("/getUserInfo") @ApiOperation(value = "授权后获取用户的昵称,unionId等信息", notes = "{\"encryptedData\":\"string\",\"iv\":\"string\"}") public ResultData getUserInfo(@RequestBody Map map) { @@ -447,7 +448,7 @@ public class WxInfoController extends BaseController { CUser user = getCUser(); if (user != null) { - WxAppinfo wxAppinfo = getAppInfo(user.getAppId()); + WxAppinfo wxAppinfo = getAppInfo(user.getAppId(),user.getTenantId()); if(wxAppinfo == null){ return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } @@ -469,6 +470,7 @@ public class WxInfoController extends BaseController { } } + @TenantIgnore @PostMapping("/updateExtInfo") @ApiOperation(value = "用户更新扩展信息(手机)", notes = "{\"systemInfo\":\"string\"}") public ResultData updateExtInfo(@RequestBody Map map) { @@ -486,6 +488,7 @@ public class WxInfoController extends BaseController { return new ResultData(); } + @TenantIgnore @PostMapping("/updateLBS") @ApiOperation(value = "用户更新位置信息", notes = "{\"latitude\":\"string\",\"longitude\":\"string\"}") public ResultData updateLBS(@RequestBody Map map) { @@ -505,6 +508,7 @@ public class WxInfoController extends BaseController { return new ResultData(); } + @TenantIgnore @PostMapping("/updateScene") @ApiOperation(value = "用户更新scene", notes = "{\"scene\":\"string\"}") public ResultData updateScene(@RequestBody Map map) { diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantController.java index cae3f5243..4b171b6dc 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantController.java @@ -1,6 +1,7 @@ package com.iformall.controller; import com.iformall.annotation.RedisCache; +import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.domain.po.*; @@ -131,6 +132,7 @@ public class WxMerchantController extends BaseController { return new ResultData(has); } + @TenantIgnore @ApiOperation("获取微信OpenId") @GetMapping("/getOpenIdByPhone") @ApiImplicitParam(name = "phone", value = "商户C端注册手机号", dataType = "String", paramType = "query", required = true) @@ -145,7 +147,7 @@ public class WxMerchantController extends BaseController { phone = wxMerchant.getLinkPhone(); } WxCUser cuUser = new WxCUser(); - cuUser.updateTenantInfo(getTenantInfo()); + cuUser.updateTenantInfo(buser); cuUser.setPhone(phone); try { WxCUser mUser = cUserService.getByObject(cuUser); diff --git a/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index 25e85bc4c..9672c8ccc 100644 --- a/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -71,59 +71,86 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { } //集团版中针对某一商场的业务需要传递mallTenantId - String mallTenantId = request.getHeader("mallTenantId"); - if(StringUtils.isBlank(mallTenantId)){ - mallTenantId = request.getParameter("mallTenantId"); - } +// String mallTenantId = request.getHeader("mallTenantId"); +// if(StringUtils.isBlank(mallTenantId)){ +// mallTenantId = request.getParameter("mallTenantId"); +// } +// +// String tenantId = null; +// String parenTenantId = null; +// boolean isChildMall = false; +// if (!StringUtils.isBlank(token)) { +// BaseCUserEntity user = cUserTokenService.getBByToken(token); +// if (user == null || user.getExpireTime().getTime() < System.currentTimeMillis()) { +// throw new MallinkException(ErrorCode.NET_TOKEN_INVALID.getCode(), "URL:" + request.getRequestURL() + " token失效,请重新登录"); +// } +// if (StringUtils.isBlank(mallTenantId)) { +// tenantId = user.getTenantId(); +// parenTenantId = user.getParentTenantId(); +// }else { +// tenantId = mallTenantId; +// parenTenantId = user.getTenantId(); +// isChildMall = true; +// } +// request.setAttribute(Constant.LOGIN_USER_KEY, user.getId()); +// request.setAttribute(Constant.TENANT_ID, tenantId); +// request.setAttribute(Constant.REQUEST_C_USER_KEY, user); +// request.setAttribute(Constant.APP_INFO, user.getAppinfo()); +// request.setAttribute(Constant.IS_CHILD_MALL,isChildMall); +// if (StringUtils.isNotBlank(parenTenantId)) { +// request.setAttribute(Constant.PARENT_TENANT_ID, parenTenantId); +// } +// +// }else if (!StringUtils.isBlank(bid)) { +// WxMerchantBUser buser = wxMerchantBUserService.getById(Long.parseLong(bid)); +// if (buser == null) { +// throw new MallinkException(ErrorCode.NET_TOKEN_INVALID.getCode(), "URL:" + request.getRequestURL() + " bid失效,请重新登录"); +// } +// +// if (StringUtils.isBlank(mallTenantId)) { +// tenantId = buser.getTenantId(); +// parenTenantId = buser.getParentTenantId(); +// }else { +// tenantId = mallTenantId; +// parenTenantId = buser.getTenantId(); +// isChildMall = true; +// } +// request.setAttribute(Constant.LOGIN_B_USER_KEY, buser.getId()); +// request.setAttribute(Constant.IS_CHILD_MALL,isChildMall); +// request.setAttribute(Constant.TENANT_ID, tenantId); +// if (StringUtils.isNotBlank(parenTenantId)) { +// request.setAttribute(Constant.PARENT_TENANT_ID, parenTenantId); +// } +// } // 查询token信息 + WxMerchantBUser buser = null; String tenantId = null; String parenTenantId = null; - boolean isChildMall = false; - if (!StringUtils.isBlank(token)) { + if (StringUtils.isNotBlank(token)) { BaseCUserEntity user = cUserTokenService.getBByToken(token); if (user == null || user.getExpireTime().getTime() < System.currentTimeMillis()) { throw new MallinkException(ErrorCode.NET_TOKEN_INVALID.getCode(), "URL:" + request.getRequestURL() + " token失效,请重新登录"); } - if (StringUtils.isBlank(mallTenantId)) { - tenantId = user.getTenantId(); - parenTenantId = user.getParentTenantId(); - }else { - tenantId = mallTenantId; - parenTenantId = user.getTenantId(); - isChildMall = true; - } request.setAttribute(Constant.LOGIN_USER_KEY, user.getId()); - request.setAttribute(Constant.TENANT_ID, tenantId); request.setAttribute(Constant.REQUEST_C_USER_KEY, user); - request.setAttribute(Constant.APP_INFO, user.getAppinfo()); - request.setAttribute(Constant.IS_CHILD_MALL,isChildMall); - if (StringUtils.isNotBlank(parenTenantId)) { - request.setAttribute(Constant.PARENT_TENANT_ID, parenTenantId); + if(user.getUserId() != null){ + buser = wxMerchantBUserService.getById(user.getUserId()); } - - }else if (!StringUtils.isBlank(bid)) { - WxMerchantBUser buser = wxMerchantBUserService.getById(Long.parseLong(bid)); - if (buser == null) { - throw new MallinkException(ErrorCode.NET_TOKEN_INVALID.getCode(), "URL:" + request.getRequestURL() + " bid失效,请重新登录"); - } - - if (StringUtils.isBlank(mallTenantId)) { - tenantId = buser.getTenantId(); - parenTenantId = buser.getParentTenantId(); - }else { - tenantId = mallTenantId; - parenTenantId = buser.getTenantId(); - isChildMall = true; - } - request.setAttribute(Constant.LOGIN_B_USER_KEY, buser.getId()); - request.setAttribute(Constant.IS_CHILD_MALL,isChildMall); - request.setAttribute(Constant.TENANT_ID, tenantId); - if (StringUtils.isNotBlank(parenTenantId)) { - request.setAttribute(Constant.PARENT_TENANT_ID, parenTenantId); - } + }else if (StringUtils.isNotBlank(bid)) { + buser = wxMerchantBUserService.getById(Long.parseLong(bid)); } + if (buser == null) { + throw new MallinkException(ErrorCode.NET_TOKEN_INVALID.getCode(), "URL:" + request.getRequestURL() + " bid失效,请重新登录"); + } + tenantId = buser.getTenantId(); + request.setAttribute(Constant.LOGIN_B_USER_KEY, buser.getId()); + request.setAttribute(Constant.TENANT_ID, buser.getTenantId()); + if (StringUtils.isNotBlank(buser.getParentTenantId())) { + parenTenantId = buser.getParentTenantId(); + request.setAttribute(Constant.PARENT_TENANT_ID, parenTenantId); + } //如果是要不需要自动设置tenantI信息 TenantIgnore tenantIgnoreAnnotation = null; From 28d0e03730b8b3da3d3c54dd441b6735c853b8f6 Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 28 Nov 2022 15:54:18 +0800 Subject: [PATCH 072/144] //b test --- .../com/iformall/tenant/TenantInfoImpl.java | 6 +++ .../iformall/controller/BaseController.java | 2 - .../controller/PosOrderController.java | 8 ++- .../iformall/controller/WxBillController.java | 3 +- .../interceptor/AuthorizationInterceptor.java | 32 +++++++++--- .../com/iformall/tenant/TenantInfoImpl.java | 8 ++- .../iformall/controller/BaseController.java | 18 +++---- .../interceptor/AuthorizationInterceptor.java | 51 +++++++++++++++---- .../com/iformall/tenant/TenantInfoImpl.java | 6 +++ .../com/iformall/tenant/TenantInfoImpl.java | 6 +++ 10 files changed, 104 insertions(+), 36 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java b/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java index 516ece127..ee9d2df59 100644 --- a/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java +++ b/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java @@ -66,6 +66,9 @@ public class TenantInfoImpl implements TenantInfo { "fengniao_map_config", "wx_c_user", "tt_c_user", + "tt_buser", + "wx_buser", + "wx_merchant_b_user", "wx_user_visit", "tt_goods_category", @@ -78,6 +81,9 @@ public class TenantInfoImpl implements TenantInfo { "wx_brand", "wx_c_user", "tt_c_user", + "tt_buser", + "wx_buser", + "wx_merchant_b_user", "wx_user_visit", "wx_c_user_car", "wx_c_user_from_b", diff --git a/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java index 9e69658c3..7f12c8de7 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java @@ -153,11 +153,9 @@ public class BaseController { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String tenantId = (String) request.getAttribute(Constant.TENANT_ID); String parentTenantId = (String) request.getAttribute(Constant.PARENT_TENANT_ID); - boolean isChildMall = (boolean)request.getAttribute(Constant.IS_CHILD_MALL); TenantEntity tenantEntity = new TenantEntity(); tenantEntity.setTenantId(tenantId); tenantEntity.setParentTenantId(parentTenantId); - tenantEntity.setChildMall(isChildMall); return tenantEntity; } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/PosOrderController.java b/mallinkBApi/src/main/java/com/iformall/controller/PosOrderController.java index cd1f409cc..8f45b5b74 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/PosOrderController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/PosOrderController.java @@ -36,6 +36,8 @@ public class PosOrderController extends BaseController { @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) public ResultData list(@ModelAttribute PosOrder posOrder, Integer pageNum, Integer pageSize) { if (null == posOrder) posOrder = new PosOrder(); + WxMerchantBUser user = getLoginBUser(); + posOrder.updateTenantInfo(user); final PageInfo page = posOrderService.listAsPage(posOrder, pageNum, pageSize); return new ResultData(page); } @@ -72,7 +74,8 @@ public class PosOrderController extends BaseController { @ApiOperation("根据id更新接口") @PostMapping("update") public ResultData update(@RequestBody PosOrder posOrder) { - posOrder.updateTenantInfo(getTenantInfo()); + WxMerchantBUser user = getLoginBUser(); + posOrder.updateTenantInfo(user); posOrderService.saveOrUpdate(posOrder); return new ResultData(); } @@ -89,7 +92,8 @@ public class PosOrderController extends BaseController { @GetMapping("/findById") @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) public ResultData findById(Long id) { - return new ResultData(Result.SUCCESS, "查询成功", posOrderService.getById(id,getTenantInfo().getTenantId())); + WxMerchantBUser user = getLoginBUser(); + return new ResultData(Result.SUCCESS, "查询成功", posOrderService.getById(id,user.getTenantId())); } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java index 19073d033..b7d27c6f6 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java @@ -117,8 +117,7 @@ public class WxBillController extends BaseController { if(!billFinishHasWorkFlow(wxBillAll)) { return new ResultData(ErrorCode.FLOW_FAIL.getCode(),"商户账单完结审批不存在工作流,不能提交审批。"); } - WxMerchantBUser buser = this.getLoginBUser(); - + WxMerchantBUser buser = getLoginBUser(); Map billObject = wxBillAllService.detail(wxBillAll.getId(), wxBillAll.getBillTypeValue()); diff --git a/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index 9672c8ccc..5f57d8ccb 100644 --- a/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -6,11 +6,13 @@ import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.TenantThreadLocal; import com.iformall.domain.po.WxBuser; +import com.iformall.domain.po.WxMall; import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.po.base.BaseCUserEntity; import com.iformall.exception.MallinkException; import com.iformall.service.CUserTokenService; import com.iformall.service.WxBuserTokenService; +import com.iformall.service.WxMallService; import com.iformall.service.WxMerchantBUserService; import com.iformall.utils.Constant; import org.apache.commons.lang3.StringUtils; @@ -38,6 +40,9 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { @Autowired private WxMerchantBUserService wxMerchantBUserService; + @Autowired + private WxMallService wxMallService; + @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { AuthIgnore annotation; @@ -71,10 +76,10 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { } //集团版中针对某一商场的业务需要传递mallTenantId -// String mallTenantId = request.getHeader("mallTenantId"); -// if(StringUtils.isBlank(mallTenantId)){ -// mallTenantId = request.getParameter("mallTenantId"); -// } + String mallTenantId = request.getHeader("mallTenantId"); + if(StringUtils.isBlank(mallTenantId)){ + mallTenantId = request.getParameter("mallTenantId"); + } // // String tenantId = null; // String parenTenantId = null; @@ -144,11 +149,22 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if (buser == null) { throw new MallinkException(ErrorCode.NET_TOKEN_INVALID.getCode(), "URL:" + request.getRequestURL() + " bid失效,请重新登录"); } - tenantId = buser.getTenantId(); + if(StringUtils.isNotBlank(mallTenantId)){ + tenantId = mallTenantId; + WxMall mall = wxMallService.getByTenantId(tenantId); + if(StringUtils.isNotBlank(mall.getParentTenantId())){ + parenTenantId = mall.getParentTenantId(); + } + }else{ + tenantId = buser.getTenantId(); + if (StringUtils.isNotBlank(buser.getParentTenantId())) { + parenTenantId = buser.getParentTenantId(); + } + } + request.setAttribute(Constant.LOGIN_B_USER_KEY, buser.getId()); - request.setAttribute(Constant.TENANT_ID, buser.getTenantId()); - if (StringUtils.isNotBlank(buser.getParentTenantId())) { - parenTenantId = buser.getParentTenantId(); + request.setAttribute(Constant.TENANT_ID, tenantId); + if (StringUtils.isNotBlank(parenTenantId)) { request.setAttribute(Constant.PARENT_TENANT_ID, parenTenantId); } diff --git a/mallinkBApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java b/mallinkBApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java index 1c08c0f19..31c93f93f 100644 --- a/mallinkBApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java +++ b/mallinkBApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java @@ -55,6 +55,9 @@ public class TenantInfoImpl implements TenantInfo { "fengniao_map_config", "wx_c_user", "tt_c_user", + "tt_buser", + "wx_buser", + "wx_merchant_b_user", "wx_user_visit", "tt_goods_category", }; @@ -66,6 +69,9 @@ public class TenantInfoImpl implements TenantInfo { "wx_brand", "wx_c_user", "tt_c_user", + "tt_buser", + "wx_buser", + "wx_merchant_b_user", "wx_user_visit", "wx_c_user_basic_info", "user_basic_info_address", @@ -76,8 +82,6 @@ public class TenantInfoImpl implements TenantInfo { "wx_c_user_from_b", "wx_c_user_tags", "wx_cuser_floating_layer", - "wx_buser", - "tt_buser", "wx_floating_layer", "wx_user_visit", "wx_level_config", diff --git a/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java index 894dc8cbc..293322ede 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java @@ -113,11 +113,11 @@ public class BaseController { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String tenantId = (String) request.getAttribute(Constant.TENANT_ID); String parentTenantId = (String) request.getAttribute(Constant.PARENT_TENANT_ID); - boolean isChildMall = (boolean)request.getAttribute(Constant.IS_CHILD_MALL); +// boolean isChildMall = (boolean)request.getAttribute(Constant.IS_CHILD_MALL); TenantEntity tenantEntity = new TenantEntity() ; tenantEntity.setTenantId(tenantId); tenantEntity.setParentTenantId(parentTenantId); - tenantEntity.setChildMall(isChildMall); +// tenantEntity.setChildMall(isChildMall); return tenantEntity; } @@ -188,13 +188,13 @@ public class BaseController { if(user == null){ throw new MallinkException(ErrorCode.USER_IS_EMPTY); } - TenantEntity tenantEntity = getTenantInfo(); - if (user.getTenantId() == null) { - user.setTenantId(tenantEntity.getTenantId()); - } - if (user.getParentTenantId() == null) { - user.setParentTenantId(tenantEntity.getParentTenantId()); - } +// TenantEntity tenantEntity = getTenantInfo(); +// if (user.getTenantId() == null) { +// user.setTenantId(tenantEntity.getTenantId()); +// } +// if (user.getParentTenantId() == null) { +// user.setParentTenantId(tenantEntity.getParentTenantId()); +// } return user; } diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index cebe20c7c..c2ab40178 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -5,9 +5,11 @@ import com.iformall.annotation.AuthIgnore; import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.TenantThreadLocal; +import com.iformall.domain.po.WxMall; import com.iformall.domain.po.base.BaseCUserEntity; import com.iformall.exception.MallinkException; import com.iformall.service.CUserTokenService; +import com.iformall.service.WxMallService; import com.iformall.utils.Constant; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -26,9 +28,13 @@ import javax.servlet.http.HttpServletResponse; */ @Component public class AuthorizationInterceptor extends HandlerInterceptorAdapter { + @Autowired private CUserTokenService cUserTokenService; + @Autowired + private WxMallService wxMallService; + @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { @@ -69,25 +75,48 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if(StringUtils.isBlank(mallTenantId)){ mallTenantId = request.getParameter("mallTenantId"); } + String tenantId = null; + String parenTenantId = null; //设置userId到request里,后续根据userId,获取用户信息 request.setAttribute(Constant.LOGIN_USER_KEY, cUser.getId()); - - if (StringUtils.isNotBlank(mallTenantId)) { - request.setAttribute(Constant.TENANT_ID, mallTenantId); - request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getTenantId()); - request.setAttribute(Constant.IS_CHILD_MALL,true); - }else { - request.setAttribute(Constant.TENANT_ID, cUser.getTenantId()); - if (StringUtils.isNotBlank(cUser.getParentTenantId())) { - request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getParentTenantId()); + + if(StringUtils.isNotBlank(mallTenantId)){ + tenantId = mallTenantId; + WxMall mall = wxMallService.getByTenantId(tenantId); + if(StringUtils.isNotBlank(mall.getParentTenantId())){ + parenTenantId = mall.getParentTenantId(); + } + }else{ + tenantId = cUser.getTenantId(); + if (StringUtils.isNotBlank(cUser.getParentTenantId())) { + parenTenantId = cUser.getParentTenantId(); } - request.setAttribute(Constant.IS_CHILD_MALL,false); } + +// if (StringUtils.isNotBlank(mallTenantId)) { +// request.setAttribute(Constant.TENANT_ID, mallTenantId); +// request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getTenantId()); +// request.setAttribute(Constant.IS_CHILD_MALL,true); +// }else { +// request.setAttribute(Constant.TENANT_ID, cUser.getTenantId()); +// if (StringUtils.isNotBlank(cUser.getParentTenantId())) { +// request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getParentTenantId()); +// } +// request.setAttribute(Constant.IS_CHILD_MALL,false); +// } + + request.setAttribute(Constant.TENANT_ID, tenantId); + if(StringUtils.isNotBlank(parenTenantId)){ + request.setAttribute(Constant.PARENT_TENANT_ID, parenTenantId); + } + request.setAttribute(Constant.REQUEST_C_USER_KEY, cUser); - request.setAttribute(Constant.APP_INFO,cUser.getAppinfo()); if(cUser.basicInfoIs()){ request.setAttribute(Constant.LOGIN_MEMBER_KEY, cUser.getUserId()); } + + request.setAttribute(Constant.APP_INFO,cUser.getAppinfo()); + //如果是要不需要自动设置tenantI信息 TenantIgnore tenantIgnoreAnnotation = null; diff --git a/mallinkCApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java b/mallinkCApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java index 1fba2c551..2102881f6 100644 --- a/mallinkCApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java +++ b/mallinkCApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java @@ -60,6 +60,9 @@ public class TenantInfoImpl implements TenantInfo { "fengniao_map_config", "wx_c_user", "tt_c_user", + "tt_buser", + "wx_buser", + "wx_merchant_b_user", "wx_user_visit", "tt_goods_category", }; @@ -71,6 +74,9 @@ public class TenantInfoImpl implements TenantInfo { "wx_brand", "wx_c_user", "tt_c_user", + "tt_buser", + "wx_buser", + "wx_merchant_b_user", "wx_user_visit", "wx_c_user_basic_info", "user_basic_info_address", diff --git a/mallinkNeuPosAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java b/mallinkNeuPosAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java index 1fba2c551..2102881f6 100644 --- a/mallinkNeuPosAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java +++ b/mallinkNeuPosAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java @@ -60,6 +60,9 @@ public class TenantInfoImpl implements TenantInfo { "fengniao_map_config", "wx_c_user", "tt_c_user", + "tt_buser", + "wx_buser", + "wx_merchant_b_user", "wx_user_visit", "tt_goods_category", }; @@ -71,6 +74,9 @@ public class TenantInfoImpl implements TenantInfo { "wx_brand", "wx_c_user", "tt_c_user", + "tt_buser", + "wx_buser", + "wx_merchant_b_user", "wx_user_visit", "wx_c_user_basic_info", "user_basic_info_address", From c8a8a58e542463076f8c2069584814c03970f4ad Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 28 Nov 2022 18:25:52 +0800 Subject: [PATCH 073/144] //b test --- .../com/iformall/controller/WxInfoController.java | 10 +++++----- .../controller/WxMerchantBUserController.java | 2 +- .../interceptor/AuthorizationInterceptor.java | 6 ++++++ .../iformall/controller/WxUserGrantController.java | 6 +++--- .../interceptor/AuthorizationInterceptor.java | 12 +++++++++--- 5 files changed, 24 insertions(+), 12 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java index ba71b60fc..b8235eccf 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java @@ -157,11 +157,11 @@ public class WxInfoController extends BaseController { cUser = cuserFactory.getBUserService(appPlat).handleLoginUser(cUser,null); resultMap.put("token", cUser.getToken()); - request.setAttribute(Constant.LOGIN_USER_KEY, cUser.getId()); - request.setAttribute(Constant.TENANT_ID, buUser.getTenantId()); - if (StringUtils.isNotBlank(buUser.getParentTenantId())) { - request.setAttribute(Constant.PARENT_TENANT_ID, buUser.getParentTenantId()); - } +// request.setAttribute(Constant.LOGIN_USER_KEY, cUser.getId()); +// request.setAttribute(Constant.TENANT_ID, buUser.getTenantId()); +// if (StringUtils.isNotBlank(buUser.getParentTenantId())) { +// request.setAttribute(Constant.PARENT_TENANT_ID, buUser.getParentTenantId()); +// } return new ResultData(resultMap); } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java index 07cd9f699..e549cf9b4 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java @@ -185,7 +185,7 @@ public class WxMerchantBUserController extends BaseController { Map resultMap = new HashMap<>(); resultMap.put("bUserId", orgUser.getId()); resultMap.put("logined", true); - request.setAttribute(Constant.LOGIN_B_USER_KEY, orgUser.getId()); +// request.setAttribute(Constant.LOGIN_B_USER_KEY, orgUser.getId()); return new ResultData(resultMap); } else { return new ResultData(ErrorCode.PASSWORD_ERROR); diff --git a/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index 5f57d8ccb..9086f9a6a 100644 --- a/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -162,6 +162,12 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { } } + if(!tenantId.equals(buser.getTenantId()) + || !buser.getTenantId().equals(parenTenantId) + || !tenantId.equals(buser.getParentTenantId())){ + throw new MallinkException(ErrorCode.SYS_AUTH_ERROR); + } + request.setAttribute(Constant.LOGIN_B_USER_KEY, buser.getId()); request.setAttribute(Constant.TENANT_ID, tenantId); if (StringUtils.isNotBlank(parenTenantId)) { diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index 626543582..d78616034 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -244,8 +244,8 @@ public class WxUserGrantController extends BaseController { } HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); - request.setAttribute(Constant.TENANT_ID, wxMall.getTenantId()); - request.setAttribute(Constant.PARENT_TENANT_ID, wxMall.getParentTenantId()); +// request.setAttribute(Constant.TENANT_ID, wxMall.getTenantId()); +// request.setAttribute(Constant.PARENT_TENANT_ID, wxMall.getParentTenantId()); String ipaddress = IPUtil.getIpAddr(request); CUser cUser = new CUser(); @@ -270,7 +270,7 @@ public class WxUserGrantController extends BaseController { cUser = cuserFactory.getCUserService(appPlat).handleLoginUser(cUser,wxCUserFrom); resultMap.put("token", cUser.getToken()); - request.setAttribute(Constant.LOGIN_USER_KEY, cUser.getId()); +// request.setAttribute(Constant.LOGIN_USER_KEY, cUser.getId()); return new ResultData(resultMap); } diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index c2ab40178..02a691015 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -92,6 +92,12 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { parenTenantId = cUser.getParentTenantId(); } } + + if(!tenantId.equals(cUser.getTenantId()) + || !cUser.getTenantId().equals(parenTenantId) + || !tenantId.equals(cUser.getParentTenantId())){ + throw new MallinkException(ErrorCode.SYS_AUTH_ERROR); + } // if (StringUtils.isNotBlank(mallTenantId)) { // request.setAttribute(Constant.TENANT_ID, mallTenantId); @@ -106,13 +112,13 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { // } request.setAttribute(Constant.TENANT_ID, tenantId); - if(StringUtils.isNotBlank(parenTenantId)){ - request.setAttribute(Constant.PARENT_TENANT_ID, parenTenantId); - } + request.setAttribute(Constant.PARENT_TENANT_ID, parenTenantId); request.setAttribute(Constant.REQUEST_C_USER_KEY, cUser); if(cUser.basicInfoIs()){ request.setAttribute(Constant.LOGIN_MEMBER_KEY, cUser.getUserId()); + }else{ + request.setAttribute(Constant.LOGIN_MEMBER_KEY, null); } request.setAttribute(Constant.APP_INFO,cUser.getAppinfo()); From 82bb71882e4a66b93fe19398e6dd26fad5168c02 Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 28 Nov 2022 18:38:55 +0800 Subject: [PATCH 074/144] //b test --- .../com/iformall/interceptor/AuthorizationInterceptor.java | 4 ++-- .../com/iformall/interceptor/AuthorizationInterceptor.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index 9086f9a6a..16578bc56 100644 --- a/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -163,8 +163,8 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { } if(!tenantId.equals(buser.getTenantId()) - || !buser.getTenantId().equals(parenTenantId) - || !tenantId.equals(buser.getParentTenantId())){ + && !buser.getTenantId().equals(parenTenantId) + && !tenantId.equals(buser.getParentTenantId())){ throw new MallinkException(ErrorCode.SYS_AUTH_ERROR); } diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index 02a691015..0b94c502a 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -94,8 +94,8 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { } if(!tenantId.equals(cUser.getTenantId()) - || !cUser.getTenantId().equals(parenTenantId) - || !tenantId.equals(cUser.getParentTenantId())){ + && !cUser.getTenantId().equals(parenTenantId) + && !tenantId.equals(cUser.getParentTenantId())){ throw new MallinkException(ErrorCode.SYS_AUTH_ERROR); } From 4c67c1376a9cc9ebcfaa641c67964788e3efab03 Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 28 Nov 2022 19:52:05 +0800 Subject: [PATCH 075/144] //b test --- .../controller/WxOrderController.java | 25 +++++++++++-------- .../interceptor/AuthorizationInterceptor.java | 8 ++++++ .../com/iformall/service/WxOrderService.java | 2 +- .../service/impl/WxOrderServiceImpl.java | 3 ++- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java index 2378c58e3..dc63d351f 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java @@ -61,6 +61,9 @@ import java.util.*; public class WxOrderController extends BaseController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); + @Autowired + private WxMallService mallService; + @Autowired private WxCouponChannelService wxCouponChannelService; @@ -207,9 +210,10 @@ public class WxOrderController extends BaseController { map.put("err_tips","透传字段格式不正确"); return map; } + WxMall mall = mallService.getByTenantId(tenantId); - //验证app - WxAppinfo appinfo = wxAppinfoService.getByAppIdFromRedis(app_id,tenantId); + //验证app todo 想想集团版多小程序和单小程序怎么处理 + WxAppinfo appinfo = wxAppinfoService.getByAppIdFromRedis(app_id,mall.getFinalTenantId()); if(appinfo == null || !EnumAppPlat.TOUTIAO.getCode().equals(appinfo.getPlat()) || !EnumAppType.C.getCode().equals(appinfo.getType())){ map.put("err_no",ErrorCode.APP_ID_NOT_FOUND.getCode()); @@ -223,10 +227,10 @@ public class WxOrderController extends BaseController { return map; } TenantEntity tenantEntity = new TenantEntity(); - tenantEntity.updateTenantInfo(appinfo); + tenantEntity.updateTenantInfo(mall); //验证用户 Long memberId = null; - TtCUser cuser = (TtCUser) cuserFactory.getCUserService(EnumAppPlat.TOUTIAO).getByOpenId(open_id, tenantEntity.getTenantId()); + TtCUser cuser = (TtCUser) cuserFactory.getCUserService(EnumAppPlat.TOUTIAO).getByOpenId(open_id, appinfo.getTenantId()); if(cuser != null && cuser.getUserId() != null){ memberId = cuser.getUserId(); } @@ -253,7 +257,7 @@ public class WxOrderController extends BaseController { Map data = new HashMap<>(); data.put("out_order_no",order.getMainOrderId().toString()); data.put("pay_expire_seconds",14*60); - data.put("order_entry_schema",wxOrderService.getOrderEntrySchema(order.getMainOrderId())); + data.put("order_entry_schema",wxOrderService.getOrderEntrySchema(mall.getTenantId(),order.getMainOrderId())); if(order.getExtParam() != null && !order.getExtParam().isEmpty()){ data.put("order_goods_info",order.getExtParam()); } @@ -756,9 +760,10 @@ public class WxOrderController extends BaseController { String app_id = msgObject.getString("app_id"); String open_id = msgObject.getString("open_id"); String cp_extra = msgObject.getString("cp_extra"); - + String tenantId = getTenantId(cp_extra); + WxMall mall = mallService.getByTenantId(tenantId); //验证app - WxAppinfo appinfo = wxAppinfoService.getByAppId(app_id,getTenantId(cp_extra)); + WxAppinfo appinfo = wxAppinfoService.getByAppId(app_id); if(appinfo == null || !EnumAppPlat.TOUTIAO.getCode().equals(appinfo.getPlat()) || !EnumAppType.C.getCode().equals(appinfo.getType())){ map.put("err_no",ErrorCode.APP_ID_NOT_FOUND.getCode()); @@ -772,10 +777,10 @@ public class WxOrderController extends BaseController { return map; } TenantEntity tenantEntity = new TenantEntity(); - tenantEntity.updateTenantInfo(appinfo); + tenantEntity.updateTenantInfo(mall); //验证用户 Long memberId = null; - TtCUser cuser = (TtCUser) cuserFactory.getCUserService(EnumAppPlat.TOUTIAO).getByOpenId(open_id, tenantEntity.getTenantId()); + TtCUser cuser = (TtCUser) cuserFactory.getCUserService(EnumAppPlat.TOUTIAO).getByOpenId(open_id, appinfo.getTenantId()); if(cuser != null && cuser.getUserId() != null){ memberId = cuser.getUserId(); } @@ -794,7 +799,7 @@ public class WxOrderController extends BaseController { WxRefundOrder refundOrder = (WxRefundOrder) resultData.data; Map data = new HashMap<>(); data.put("out_refund_no",refundOrder.getId().toString()); - data.put("order_entry_schema",wxOrderService.getOrderEntrySchema(Long.parseLong(refundOrder.getPayOrderNo()))); + data.put("order_entry_schema",wxOrderService.getOrderEntrySchema(mall.getTenantId(),Long.parseLong(refundOrder.getPayOrderNo()))); map.put("data",data); map.put("err_no",0); map.put("err_tips",resultData.message); diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index 0b94c502a..e773e7972 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -1,6 +1,7 @@ package com.iformall.interceptor; +import com.alibaba.fastjson.JSONObject; import com.iformall.annotation.AuthIgnore; import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; @@ -75,6 +76,13 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if(StringUtils.isBlank(mallTenantId)){ mallTenantId = request.getParameter("mallTenantId"); } + if(StringUtils.isBlank(mallTenantId)){ + try{ + String body = ((BodyReaderHttpServletRequestWrapper) request).getBody(); + mallTenantId = JSONObject.parseObject(body).getString("mallTenantId"); + }catch(Exception e){} + } + String tenantId = null; String parenTenantId = null; //设置userId到request里,后续根据userId,获取用户信息 diff --git a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java index ede0b39ee..e43827e78 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java @@ -265,7 +265,7 @@ public interface WxOrderService { WxBatchOrder getWxBatchOrder(TenantEntity tenantInfo, Long orderId); - Map getOrderEntrySchema(Long mainOrderId); + Map getOrderEntrySchema(String tenantId,Long mainOrderId); int updateCpsStatus(WxOrder order); 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 766489fbc..e226c51a2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -3588,11 +3588,12 @@ public class WxOrderServiceImpl implements WxOrderService { } @Override - public Map getOrderEntrySchema(Long mainOrderId) { + public Map getOrderEntrySchema(String tenantId,Long mainOrderId) { Map map = new HashMap<>(); map.put("path", Constant.mainPageUrl); Map paramMap = new HashMap<>(); paramMap.put("type","dt"); + paramMap.put("tenantId",tenantId); paramMap.put("orderId",mainOrderId); map.put("params", JSON.toJSONString(paramMap)); return map; From c6119cb8596f5c683ec3250a1b2e3ae4ba205fc6 Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Mon, 28 Nov 2022 22:30:54 +0800 Subject: [PATCH 076/144] fix verify --- .../controller/base/BaseController.java | 3 + .../market/WxCouponOrderController.java | 2 + .../interceptor/CurrentTenantInterceptor.java | 24 +- .../migration/V2022111500001__plat_coupon.sql | 408 +++++++++++++++++- .../controller/WxCouponOrderController.java | 2 +- .../interceptor/AuthorizationInterceptor.java | 10 +- .../controller/WxCouponOrderController.java | 2 +- .../interceptor/AuthorizationInterceptor.java | 4 +- .../iformall/service/impl/PosServiceImpl.java | 24 +- .../schedule/CouponOrderExpiringSchedule.java | 2 +- .../schedule/SharingOrderRedoSchedule.java | 2 +- .../com/iformall/domain/po/WxCouponOrder.java | 2 + .../domain/po/WxProfitSharingOrder.java | 2 + .../domain/po/WxProfitSharingResult.java | 3 +- .../com/iformall/domain/po/msg/BaseMsg.java | 4 + .../domain/po/msg/FmInsideOrderPushMsg.java | 2 + .../iformall/domain/vo/WxOrderCouponVo.java | 3 + .../iformall/service/WxCashOutService.java | 2 +- .../service/WxCouponOrderService.java | 4 +- .../com/iformall/service/WxOrderService.java | 2 +- .../service/WxProfitSharingOrderService.java | 5 +- .../service/impl/WxCardSpendServiceImpl.java | 4 +- .../service/impl/WxCashOutServiceImpl.java | 5 +- .../impl/WxCouponOrderServiceImpl.java | 264 ++++++++---- .../service/impl/WxOrderServiceImpl.java | 7 +- .../service/impl/WxPayOrderServiceImpl.java | 15 +- .../impl/WxProfitSharingOrderServiceImpl.java | 18 +- .../impl/WxRefundOrderServiceImpl.java | 1 + .../FmInsideCouponVerifyMsgServiceImpl.java | 3 +- ...InsideOrderPushDeliveryMsgServiceImpl.java | 7 +- .../resources/mapper/WxCouponOrderMapper.xml | 27 +- .../mapper/WxProfitSharingOrderMapper.xml | 8 +- .../mapper/WxProfitSharingResultMapper.xml | 8 +- 33 files changed, 720 insertions(+), 159 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java b/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java index a303f45ff..f47828646 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java @@ -8,6 +8,7 @@ import java.util.Date; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.base.TenantEntity; import com.iformall.shiro.UserSession; +import com.iformall.utils.Constant; import com.iformall.utils.IPUtil; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; @@ -74,9 +75,11 @@ public class BaseController { Session session = SecurityUtils.getSubject().getSession(); String tenantId = (String)session.getAttribute(UserSession.tenantId); String parentTenantId = (String)session.getAttribute(UserSession.parentTenantId); + boolean isChildMall = (boolean)session.getAttribute(Constant.IS_CHILD_MALL); TenantEntity tenantEntity = new TenantEntity(); tenantEntity.setTenantId(tenantId); tenantEntity.setParentTenantId(parentTenantId); + tenantEntity.setChildMall(isChildMall); return tenantEntity; } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java index e32a132ef..80cb6bc86 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java @@ -2,11 +2,13 @@ package com.iformall.controller.market; import com.github.pagehelper.PageInfo; import com.iformall.annotation.SystemControllerLog; +import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxCouponOrder; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxCouponOrderBVo; import com.iformall.enums.EnumAppType; import com.iformall.enums.EnumPayType; diff --git a/mallinkAdmin/src/main/java/com/iformall/interceptor/CurrentTenantInterceptor.java b/mallinkAdmin/src/main/java/com/iformall/interceptor/CurrentTenantInterceptor.java index aa77a078b..7c85bd068 100644 --- a/mallinkAdmin/src/main/java/com/iformall/interceptor/CurrentTenantInterceptor.java +++ b/mallinkAdmin/src/main/java/com/iformall/interceptor/CurrentTenantInterceptor.java @@ -2,12 +2,15 @@ package com.iformall.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import com.iformall.annotation.TenantIgnore; import com.iformall.common.TenantThreadLocal; import com.iformall.shiro.UserSession; +import com.iformall.utils.Constant; /** * 权限(Token)验证 @@ -21,8 +24,25 @@ public class CurrentTenantInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - TenantThreadLocal.setCurrentThreadTenant((String)request.getSession().getAttribute(UserSession.tenantId), - (String)request.getSession().getAttribute(UserSession.parentTenantId)); + //集团版中针对某一商场的业务需要传递mallTenantId + String mallTenantId = request.getHeader("mallTenantId"); + if(StringUtils.isBlank(mallTenantId)){ + mallTenantId = request.getParameter("mallTenantId"); + } + String tenantId = (String)request.getSession().getAttribute(UserSession.tenantId); + String parenTenantId = (String)request.getSession().getAttribute(UserSession.parentTenantId); + boolean isChildMall = false; +// if (StringUtils.isNotBlank(mallTenantId) && (!mallTenantId.equals(tenantId))) { +// parenTenantId = tenantId; +// tenantId = mallTenantId; +// isChildMall = true; +// } +// request.getSession().setAttribute(UserSession.tenantId,tenantId); +// request.getSession().setAttribute(UserSession.parentTenantId,parenTenantId); + request.getSession().setAttribute(Constant.IS_CHILD_MALL,isChildMall); + + + TenantThreadLocal.setCurrentThreadTenant(tenantId, parenTenantId); TenantIgnore annotation = null; if(handler instanceof HandlerMethod) { 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 878cbe8b7..12bad6c0e 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V2022111500001__plat_coupon.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V2022111500001__plat_coupon.sql @@ -112,4 +112,410 @@ 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; -drop table wx_coupon_mall; \ No newline at end of file +drop table wx_coupon_mall; + + +ALTER TABLE `mallink`.`wx_coupon_order_0` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_1` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_2` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_3` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_4` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_5` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_6` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_7` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_8` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_9` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_10` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_11` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_12` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_13` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_14` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_15` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_16` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_17` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_18` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_19` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_20` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_21` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_22` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_23` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_24` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_25` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_26` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_27` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_28` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_29` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_30` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_31` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_32` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_33` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_34` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_35` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_36` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_37` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_38` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_39` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_40` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_41` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_42` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_43` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_44` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_45` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_46` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_47` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_48` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_49` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_50` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_51` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_52` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_53` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_54` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_55` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_56` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_57` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_58` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_59` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_60` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_61` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_62` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_63` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_64` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_65` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_66` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_67` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_68` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_69` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_70` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_71` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_72` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_73` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_74` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_75` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_76` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_77` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_78` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_79` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_80` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_81` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_82` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_83` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_84` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_85` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_86` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_87` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_88` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_89` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_90` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_91` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_92` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_93` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_94` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_95` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_96` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_97` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_98` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; +ALTER TABLE `mallink`.`wx_coupon_order_99` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `b_merchant_id`; + +ALTER TABLE `mallink`.`wx_profit_sharing_order_0` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_1` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_2` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_3` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_4` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_5` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_6` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_7` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_8` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_9` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_10` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_11` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_12` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_13` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_14` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_15` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_16` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_17` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_18` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_19` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_20` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_21` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_22` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_23` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_24` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_25` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_26` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_27` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_28` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_29` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_30` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_31` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_32` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_33` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_34` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_35` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_36` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_37` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_38` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_39` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_40` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_41` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_42` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_43` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_44` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_45` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_46` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_47` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_48` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_49` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_50` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_51` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_52` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_53` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_54` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_55` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_56` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_57` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_58` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_59` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_60` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_61` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_62` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_63` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_64` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_65` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_66` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_67` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_68` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_69` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_70` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_71` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_72` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_73` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_74` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_75` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_76` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_77` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_78` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_79` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_80` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_81` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_82` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_83` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_84` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_85` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_86` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_87` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_88` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_89` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_90` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_91` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_92` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_93` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_94` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_95` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_96` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_97` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_98` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_99` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; + +ALTER TABLE `mallink`.`wx_profit_sharing_result` +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; \ No newline at end of file diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index d3ce767ac..59b8ebf5f 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -401,7 +401,7 @@ public class WxCouponOrderController extends BaseController { } if (couponOrder != null && couponOrder.getMerchantId() != null) { - wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder, couponOrderId, couponOrder.getMerchantId(),couponOrder.getBMerchantId()); + wxCouponOrderService.sendInsideCouponVerifyMsg(wxMerchantBUser,couponOrder, couponOrderId, couponOrder.getMerchantId(),couponOrder.getBMerchantId()); } return new ResultData(couponOrder); diff --git a/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index 25e85bc4c..a61e5190d 100644 --- a/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -85,13 +85,13 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if (user == null || user.getExpireTime().getTime() < System.currentTimeMillis()) { throw new MallinkException(ErrorCode.NET_TOKEN_INVALID.getCode(), "URL:" + request.getRequestURL() + " token失效,请重新登录"); } - if (StringUtils.isBlank(mallTenantId)) { - tenantId = user.getTenantId(); - parenTenantId = user.getParentTenantId(); - }else { - tenantId = mallTenantId; + if (StringUtils.isNotBlank(mallTenantId) && (!mallTenantId.equals(user.getTenantId()))) { + tenantId = mallTenantId; parenTenantId = user.getTenantId(); isChildMall = true; + }else { + tenantId = user.getTenantId(); + parenTenantId = user.getParentTenantId(); } request.setAttribute(Constant.LOGIN_USER_KEY, user.getId()); request.setAttribute(Constant.TENANT_ID, tenantId); diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index 3e3d7e03a..94e6adcaf 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -517,7 +517,7 @@ public class WxCouponOrderController extends BaseController { } if (couponOrder != null && couponOrder.getMerchantId() != null) { - wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder, couponOrderId, couponOrder.getMerchantId(),couponOrder.getBMerchantId()); + wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder,couponOrder, couponOrderId, couponOrder.getMerchantId(),couponOrder.getBMerchantId()); } return new ResultData(couponOrder); diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index cebe20c7c..d98cac493 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -72,8 +72,8 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { //设置userId到request里,后续根据userId,获取用户信息 request.setAttribute(Constant.LOGIN_USER_KEY, cUser.getId()); - if (StringUtils.isNotBlank(mallTenantId)) { - request.setAttribute(Constant.TENANT_ID, mallTenantId); + if (StringUtils.isNotBlank(mallTenantId) && (!mallTenantId.equals(cUser.getTenantId()))) { + request.setAttribute(Constant.TENANT_ID, mallTenantId); request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getTenantId()); request.setAttribute(Constant.IS_CHILD_MALL,true); }else { diff --git a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java index 5e52e8687..0ea03a72d 100644 --- a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java +++ b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java @@ -447,7 +447,8 @@ public class PosServiceImpl implements PosService { * @param couponOrderIdStr * @return */ - public JSONObject oneCouponVerify(PromotionCalc promotionCalc,TenantEntity tenantinfo, String couponOrderIdStr, Long merchantId, Long buUserId, Long posOrderId) { + public JSONObject oneCouponVerify(PromotionCalc promotionCalc,TenantEntity tenantinfo, String couponOrderIdStr, Long merchantId, + Long buUserId,String mallTenantId, Long posOrderId) { JSONObject retObj = new JSONObject(); Date now = new Date(); // 1. 获取券包信息 @@ -473,7 +474,7 @@ public class PosServiceImpl implements PosService { } try { - doVerify(retObj, EnumPosActionType.VERIFY_INDEPENT, couponOrderCVo, wxCoupon, merchantId, buUserId, posOrderId); + doVerify(retObj, EnumPosActionType.VERIFY_INDEPENT, couponOrderCVo, wxCoupon, merchantId, buUserId,mallTenantId, posOrderId); } catch (MallinkException e) { logger.error(e.getMessage()); throw new MallinkException(e.getErrorCode(), e.getMessage()); @@ -564,7 +565,8 @@ public class PosServiceImpl implements PosService { * @param couponSelected * @return */ - private JSONObject oneCouponPay(PromotionCalc promotionCalc, WxCouponOrderCVo couponOrderCVo, Long merchantId, Long buUserId, Long posOrderId, boolean couponSelected) { + private JSONObject oneCouponPay(PromotionCalc promotionCalc, WxCouponOrderCVo couponOrderCVo, Long merchantId, + Long buUserId, String mallTenantId,Long posOrderId, boolean couponSelected) { JSONObject retObj = new JSONObject(); Date curDate = new Date(); @@ -624,7 +626,7 @@ public class PosServiceImpl implements PosService { throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL); } try { - doVerify(retObj, EnumPosActionType.VERIFY_PAY, couponOrderCVo, wxCoupon, merchantId, buUserId, posOrderId); + doVerify(retObj, EnumPosActionType.VERIFY_PAY, couponOrderCVo, wxCoupon, merchantId, buUserId,mallTenantId, posOrderId); } catch (MallinkException e) { logger.error(e.getMessage()); throw new MallinkException(e.getErrorCode(), e.getMessage()); @@ -883,7 +885,7 @@ public class PosServiceImpl implements PosService { String couponOrderIdStr = couponOrderArr.getString(0); if (couponOrderIdStr != null) { try { - JSONObject couponPromoMap = oneCouponVerify(promotionCalc,tenantEntity, couponOrderIdStr, merchantId, buUserId, posOrderId); + JSONObject couponPromoMap = oneCouponVerify(promotionCalc,tenantEntity, couponOrderIdStr, merchantId, buUserId,merchant.getTenantId(), posOrderId); couponList.add(couponPromoMap); } catch (MallinkException e) { throw new MallinkException(e.getErrorCode(), e.getMessage()); @@ -967,7 +969,7 @@ public class PosServiceImpl implements PosService { WxCouponOrderCVo couponOrderCVo = avaCoList.get(i); boolean selCoupon = isSelCoupon(selCoArr, couponOrderCVo.getId()); try { - JSONObject couponObj = oneCouponPay(promotionCalc, couponOrderCVo, merchantId, buUserId, posOrderId, selCoupon); + JSONObject couponObj = oneCouponPay(promotionCalc, couponOrderCVo, merchantId, buUserId,merchant.getTenantId(), posOrderId, selCoupon); couponList.add(couponObj); } catch (MallinkException e) { throw new MallinkException(e.getErrorCode(), e.getMessage()); @@ -1277,7 +1279,7 @@ public class PosServiceImpl implements PosService { * @param posOrderId */ private void doVerify(JSONObject retMap, EnumPosActionType actionType, WxCouponOrderCVo couponOrderCVo, WxCoupon coupon, - Long merchantId, Long buUserId, Long posOrderId) { + Long merchantId, Long buUserId,String mallTenantId, Long posOrderId) { int num = 0; // 1. insert posOrderId PosCouponOrderVerify posCouponOrderVerify = new PosCouponOrderVerify(); @@ -1307,6 +1309,7 @@ public class PosServiceImpl implements PosService { } couponOrder.setBUserId(buUserId); couponOrder.setBMerchantId(merchantId); + couponOrder.setBTenantId(mallTenantId); couponOrder.setUpdateDate(curDate); if (couponOrderCVo.getBUserId() == null) { num = couponOrderMapper.updateVerifyCouponOrder(couponOrder); @@ -2172,15 +2175,18 @@ public class PosServiceImpl implements PosService { } // 4. 积分 + WxMerchant wxMerchant = merchantMapper.selectById(merchantBUser.getMerchantId()); + if (null == wxMerchant) { + throw new MallinkException(ErrorCode.COUPON_MERCHANT_NOT_FOUND); + } try { - WxMerchant wxMerchant = merchantMapper.selectById(merchantBUser.getMerchantId()); int credit = posAddCredit(couponOrderCVo, wxCoupon, merchantBUser, wxMerchant); scoreCreditCalc.setCredit(scoreCreditCalc.getCredit() + credit); } catch (Exception e) { logger.error("交易核销积分异常:" + e.getMessage()); } // 3. 核销后处理 - couponOrderService.sendInsideCouponVerifyMsg(merchantBUser, couponOrderId, merchantBUser.getMerchantId(),merchantBUser.getMerchantId()); + couponOrderService.sendInsideCouponVerifyMsg(wxMerchant,merchantBUser, couponOrderId, merchantBUser.getMerchantId(),merchantBUser.getMerchantId()); } return payOrder; } diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java index 713123ba4..fb019d771 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java @@ -134,7 +134,7 @@ public class CouponOrderExpiringSchedule { } if (couponOrder != null && couponOrder.getMerchantId() != null) { - wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder, couponOrder.getId(), couponOrder.getMerchantId(),couponOrder.getBMerchantId()); + wxCouponOrderService.sendInsideCouponVerifyMsg(mall,couponOrder, couponOrder.getId(), couponOrder.getMerchantId(),couponOrder.getBMerchantId()); } }); } diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java index 095de9480..52d36612c 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java @@ -72,7 +72,7 @@ public class SharingOrderRedoSchedule { + " ID:" +sharingOrder.getId() + " RES: wxPayOrder is null." ); } - ResultData result = wxProfitSharingOrderService.redoSharingOrder(sharingOrder,wxPayOrder); + ResultData result = wxProfitSharingOrderService.redoSharingOrder(mall,sharingOrder,wxPayOrder); if (result.code != ResultData.SUCCESS) { logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getMessage() + " ID:" +sharingOrder.getId() diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java index 0d267d630..e6b5c938f 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java @@ -43,6 +43,8 @@ public class WxCouponOrder extends TenantEntity { private Long bMerchantId; @TableField(exist = false) private List bMerchantIdList; + @io.swagger.annotations.ApiModelProperty(value = "b端核销商场tenantId", name = "bTenantId") + private String bTenantId; @io.swagger.annotations.ApiModelProperty(value = "操作券A端用户ID", name = "aUserId") private Long aUserId; @io.swagger.annotations.ApiModelProperty(value = "用户订单ID", name = "orderId") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingOrder.java index 9cff2cb2d..b3bd63d29 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingOrder.java @@ -18,6 +18,8 @@ public class WxProfitSharingOrder extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="核销商户ID",name="merchantId") private Long merchantId; + @io.swagger.annotations.ApiModelProperty(value="b端核销商场tenantId",name="bTenantId") + private String bTenantId; @io.swagger.annotations.ApiModelProperty(value="支付时收款商户,直连模式必须有",name="payMerchantId") private Long payMerchantId; @io.swagger.annotations.ApiModelProperty(value="支付时收款商户平台账号,直连模式必须有",name="payMerchantMchId") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingResult.java b/mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingResult.java index 79007f550..ca132287b 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingResult.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingResult.java @@ -16,7 +16,8 @@ public class WxProfitSharingResult extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="商户ID",name="merchantId") private Long merchantId; - + @io.swagger.annotations.ApiModelProperty(value="b端核销商场tenantId",name="bTenantId") + private String bTenantId; @io.swagger.annotations.ApiModelProperty(value="分账订单号",name="sharingOrderId") private Long sharingOrderId; @io.swagger.annotations.ApiModelProperty(value="分账接收方id",name="sharingReceiverId") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/msg/BaseMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/BaseMsg.java index a1f87156f..f99da5db6 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/msg/BaseMsg.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/BaseMsg.java @@ -32,6 +32,10 @@ public class BaseMsg extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value="父租户id",name="parentTenantId") private String parentTenantId; + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value = "商场tenant", name = "mallTenantEntity") + private TenantEntity mallTenantEntity; + @io.swagger.annotations.ApiModelProperty(value="唯一标识",name="uuid") @TableField(exist = false) private String uuid; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideOrderPushMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideOrderPushMsg.java index de0ce14d8..60c0ffbe3 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideOrderPushMsg.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideOrderPushMsg.java @@ -1,5 +1,7 @@ package com.iformall.domain.po.msg; +import com.iformall.domain.po.base.TenantEntity; + import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxOrderCouponVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxOrderCouponVo.java index ebcc5a03f..79eb55629 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxOrderCouponVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxOrderCouponVo.java @@ -77,6 +77,8 @@ public class WxOrderCouponVo extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "操作券B端小程序用户商户ID", name = "bMerchantId") private Long bMerchantId; + @io.swagger.annotations.ApiModelProperty(value = "商场tenant", name = "bTenantId") + private String bTenantId; /** 券类型信息 */ @io.swagger.annotations.ApiModelProperty(value="券类型(1.满减券,2.代金券,3.团购券,4.礼品券,5.停车券,6.多商户券,8.砍价券,9.团购券,100.消费卡)",name="type") @@ -273,6 +275,7 @@ public class WxOrderCouponVo extends TenantEntity { this.setCouponOrderId(couponOrder.getId()); this.setCouponOrderStatus(couponOrder.getCouponOrderStatus()); this.setBMerchantId(couponOrder.getBMerchantId()); + this.setBTenantId(couponOrder.getBTenantId()); this.setShippingStatus(couponOrder.getShippingStatus()); this.setDeliveryInfo(couponOrder.getDeliveryInfo()); this.setCreateDate(couponOrder.getCreateDate()); diff --git a/mallinkService/src/main/java/com/iformall/service/WxCashOutService.java b/mallinkService/src/main/java/com/iformall/service/WxCashOutService.java index dfe835176..9fce75a33 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCashOutService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCashOutService.java @@ -49,6 +49,6 @@ public interface WxCashOutService { */ ResultData reCashout(WxMerchantBUser buser,WxCashOut record,EnumPayWay payWay); - void addCashOut(Long merchantId,Integer amount) throws MallinkException; + void addCashOut(WxMerchant merchant,Integer amount) throws MallinkException; } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java index 2d4c8d32c..08c613149 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java @@ -66,7 +66,7 @@ public interface WxCouponOrderService { /** * 核销后发送消息 */ - void sendInsideCouponVerifyMsg(TenantEntity tenantEntity, Long couponOrderId, Long merchantId, Long bmerchantId); + void sendInsideCouponVerifyMsg(TenantEntity mallTenantEntity,TenantEntity couponOrderTenantEntity, Long couponOrderId, Long merchantId, Long bmerchantId); /** * 核销后处理 @@ -95,7 +95,7 @@ public interface WxCouponOrderService { * 核销分账 * @param couponOrder */ - void shareAfterVerify(WxCouponOrder couponOrder, Long merchantId,boolean mulityShare); + void shareAfterVerify(WxCouponOrder couponOrder, WxMerchant wxMerchant,boolean mulityShare); /** * 核销后补贴 diff --git a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java index ede0b39ee..78c2addcb 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java @@ -253,7 +253,7 @@ public interface WxOrderService { void sendInsideOrderPushMsg(TenantEntity tenantEntity,Long composeOrderId); - void sendInsideOrderPushDeliveryMsg(TenantEntity tenantEntity,Long composeOrderId,Long couponOrderId); + void sendInsideOrderPushDeliveryMsg(TenantEntity couponOrderTenantEntity,Long composeOrderId,Long couponOrderId); PageInfo listGoodsCAsPage(WxOrder wxOrder, Integer pageNum, Integer pageSize); diff --git a/mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java index 39a26eec9..7f95e0ae9 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java @@ -4,6 +4,7 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.dto.WxSharingOrderDto; +import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxPayOrder; import com.iformall.domain.po.WxProfitSharingOrder; import com.iformall.domain.po.base.TenantEntity; @@ -21,12 +22,12 @@ public interface WxProfitSharingOrderService { /** * 创建分账订单 */ - ResultData createSharingOrder(WxSharingOrderDto wxSharingOrderDto,WxPayOrder payOrder); + ResultData createSharingOrder(TenantEntity mallTenantEntity,WxSharingOrderDto wxSharingOrderDto,WxPayOrder payOrder); /** * 分账重试 */ - ResultData redoSharingOrder(WxProfitSharingOrder sharingOrder,WxPayOrder payOrder); + ResultData redoSharingOrder(TenantEntity mallTenantEntity,WxProfitSharingOrder sharingOrder,WxPayOrder payOrder); /** * 分账完结重试 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java index 7e0638615..aa4a03afd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java @@ -293,7 +293,9 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { //更新商户余额 if (real_payment > 0) { - wxCashOutService.addCashOut(couponMerchant.getMerchantId(), real_payment); + Long merchantId = couponMerchant.getMerchantId(); + WxMerchant merchant = wxMerchantMapper.selectById(merchantId); + wxCashOutService.addCashOut(merchant, real_payment); } } // } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCashOutServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCashOutServiceImpl.java index 8bffe3adb..e9f895841 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCashOutServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCashOutServiceImpl.java @@ -321,8 +321,7 @@ public class WxCashOutServiceImpl implements WxCashOutService { } @Override - public void addCashOut(Long merchantId, Integer amount) throws MallinkException{ - WxMerchant merchant = wxMerchantMapper.selectById(merchantId); + public void addCashOut(WxMerchant merchant, Integer amount) throws MallinkException{ WxMall mall = wxMallMapper.getByTenantId(merchant.getTenantId()); if (null != mall && mall.getCashOutSupport().intValue() == EnumCashOut.YES.getCode().intValue()) { if (null != merchant) { @@ -337,7 +336,7 @@ public class WxCashOutServiceImpl implements WxCashOutService { redisLock.unlock("merchantLockCashSet_"+merchant.getId(), timeStr); }catch(Exception e) { redisLock.unlock("merchantLockCashSet_"+merchant.getId(), timeStr); - logger.error("addCashOut error."+merchantId,e); + logger.error("addCashOut error."+merchant.getId(),e); throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"addCashOut error."+e.getMessage()); }finally { redisLock.unlock("merchantLockCashSet_"+merchant.getId(), timeStr); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index 7fdfe6766..c146aad22 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -380,19 +380,32 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { return pageInfo; } - private List handleToCouponOrderBVoList(TenantEntity tenantEntity,List couponOrderList,boolean hasMerchant,boolean hasShop) { + private List handleToCouponOrderBVoList(TenantEntity couponOrderTenantEntity,List couponOrderList,boolean hasMerchant,boolean hasShop) { List retList = null; if (null != couponOrderList && couponOrderList.size() > 0 ) { retList = new ArrayList(); - List bUserIdList = new ArrayList(); + Map> mallBUserIdList = new HashMap>(); List cUserIdList = new ArrayList(); List couponIdList = new ArrayList(); + List mallTenantIdList = new ArrayList(); for (int j = 0 ; j < couponOrderList.size(); j ++) { WxCouponOrder co = couponOrderList.get(j); Long bUserId = co.getBUserId(); - if (null != bUserId && (!bUserIdList.contains(bUserId))) { - bUserIdList.add(bUserId); + if (null != bUserId ) { + String mallTenantId = co.getBTenantId(); + if (!StringUtils.isBlank(mallTenantId)){ + List bUserIdList = mallBUserIdList.get(mallTenantId); + if (null == bUserIdList) { + bUserIdList = new ArrayList(); + } + if (bUserIdList.contains(bUserId)) { + bUserIdList.add(bUserId); + } + if (!mallTenantIdList.contains(mallTenantId)) { + mallTenantIdList.add(mallTenantId); + } + } } Long cUserId = co.getcUserId(); @@ -408,44 +421,62 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { //获取到buserId Map bUserMap = new HashMap(); - List merchantIdList = null; - if (bUserIdList.size() > 0 ) { - merchantIdList = new ArrayList(); - WxMerchantBUser merchantBUserQ = new WxMerchantBUser(); - merchantBUserQ.updateTenantInfo(tenantEntity); - merchantBUserQ.setIds(bUserIdList); - List bUserList = wxMerchantBUserMapper.findSimpleList(merchantBUserQ); - if (null != bUserList) { - for (int k = 0 ; k < bUserList.size() ; k++) { - WxMerchantBUser b = bUserList.get(k); - bUserMap.put(b.getId(), b); - if (!merchantIdList.contains(b.getMerchantId())) { - merchantIdList.add(b.getMerchantId()); - } - } - } + Map> mallMerchantIdList = null; + if (mallBUserIdList.size() > 0 ) { + mallMerchantIdList = new HashMap>(); + for (Iterator it = mallBUserIdList.keySet().iterator();it.hasNext();) { + String mallTenantId = it.next(); + List bUserIdList = mallBUserIdList.get(mallTenantId); + if (null != bUserIdList && bUserIdList.size() > 0 ) { + WxMerchantBUser merchantBUserQ = new WxMerchantBUser(); + merchantBUserQ.setTenantId(mallTenantId); + merchantBUserQ.setIds(bUserIdList); + List bUserList = wxMerchantBUserMapper.findSimpleList(merchantBUserQ); + if (null != bUserList) { + List merchantIdList = mallMerchantIdList.get(mallTenantId); + if (null == merchantIdList) { + merchantIdList = new ArrayList<>(); + } + for (int k = 0 ; k < bUserList.size() ; k++) { + WxMerchantBUser b = bUserList.get(k); + bUserMap.put(b.getId(), b); + if (!merchantIdList.contains(b.getMerchantId())) { + merchantIdList.add(b.getMerchantId()); + } + } + } + } + } + } //merchant Map merchantSimpleMap = new HashMap(); - if (null != merchantIdList && merchantIdList.size() > 0) { - WxMerchant merchantQ = new WxMerchant(); - merchantQ.updateTenantInfo(tenantEntity); - merchantQ.setIds(merchantIdList); - List merchantList = wxMerchantMapper.findIdNameList(merchantQ); - if (null != merchantList) { - for (int k = 0 ; k < merchantList.size() ; k++) { - WxMerchant m = merchantList.get(k); - merchantSimpleMap.put(m.getId(), m); - } + if (null != mallMerchantIdList && mallMerchantIdList.size() > 0) { + for (Iterator it = mallMerchantIdList.keySet().iterator();it.hasNext();) { + String mallTenantId = it.next(); + List merchantIdList = mallMerchantIdList.get(mallTenantId); + if (null != merchantIdList && merchantIdList.size() > 0 ){ + WxMerchant merchantQ = new WxMerchant(); + merchantQ.setTenantId(mallTenantId); + merchantQ.setIds(merchantIdList); + List merchantList = wxMerchantMapper.findIdNameList(merchantQ); + if (null != merchantList) { + for (int k = 0 ; k < merchantList.size() ; k++) { + WxMerchant m = merchantList.get(k); + merchantSimpleMap.put(m.getId(), m); + } + } + } } + } //获取到cUserId Map cUserSimpleMap = new HashMap(); if (cUserIdList.size() > 0 ) { WxCUserBasicInfo cBasicInfoQ = new WxCUserBasicInfo(); - cBasicInfoQ.setFinalTenantId(tenantEntity.getFinalTenantId()); + cBasicInfoQ.setFinalTenantId(couponOrderTenantEntity.getFinalTenantId()); cBasicInfoQ.setIds(cUserIdList); List cUserBasicInfoList = wxCUserBasicInfoMapper.findListPhoneAndNameByIds(cBasicInfoQ); if (null != cUserBasicInfoList) { @@ -460,7 +491,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { Map couponMap = new HashMap(); if (couponIdList.size() > 0 ) { WxCoupon couponQ = new WxCoupon(); - couponQ.updateTenantInfo(tenantEntity); + couponQ.updateTenantInfo(couponOrderTenantEntity); couponQ.setIds(couponIdList); List couponList = wxCouponMapper.findTenantSimpleList(couponQ); if (null != couponList) { @@ -470,13 +501,28 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } } } - Map> couponMerchantVoMap = null; + Map>> mallCouponMerchantVoMap = null; if (hasMerchant) { - couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIdList, tenantEntity,hasShop); + if (mallTenantIdList.size() > 0 ) { + mallCouponMerchantVoMap = new HashMap>>(); + for (int i = 0 ; i < mallTenantIdList.size();i++) { + String mallTenantId = mallTenantIdList.get(i); + TenantEntity mallTenantEntity = new TenantEntity(); + mallTenantEntity.setTenantId(mallTenantId); + Map> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIdList, mallTenantEntity,hasShop); + mallCouponMerchantVoMap.put(mallTenantId, couponMerchantVoMap); + } + } } for (int i = 0 ; i < couponOrderList.size() ; i ++) { WxCouponOrder couponOrder = couponOrderList.get(i); + Map> couponMerchantVoMap = null; + if (!StringUtils.isBlank(couponOrder.getBTenantId())) { + if (null != mallCouponMerchantVoMap){ + couponMerchantVoMap = mallCouponMerchantVoMap.get(couponOrder.getBTenantId()); + } + } WxCouponOrderBVo bvo = couponOrdertoBVo(couponOrder,bUserMap,merchantSimpleMap,cUserSimpleMap,couponMap,hasMerchant,couponMerchantVoMap); if (null != bvo ) { retList.add(bvo); @@ -849,28 +895,44 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { return new ResultData(retPageInfo); } - private List handleQueryResult(boolean cUserEntry,List list,TenantEntity tenantEntity) { + private List handleQueryResult(boolean cUserEntry,List list,TenantEntity couponOrderTenantEntity) { if (null != list && list.size() > 0) { //循环list,获取 cUserId List cUserIdList = new ArrayList(); - List bUserIdList = new ArrayList(); - List merchantIdList = new ArrayList(); + Map> mallBUserIdList = new HashMap>(); + Map> mallMerchantIdList = new HashMap>(); List couponIdList = new ArrayList(); + List mallTenantIdList = new ArrayList(); for (int i = 0 ; i < list.size() ; i ++ ) { WxCouponOrder bo = list.get(i); Long cusrid = bo.getcUserId(); if (null != cusrid && (!cUserIdList.contains(cusrid))) { cUserIdList.add(cusrid); } - Long bUserId = bo.getBUserId(); - if(null != bUserId && (!bUserIdList.contains(bUserId))){ - bUserIdList.add(bUserId); - } - - Long bmerchantId = bo.getBMerchantId(); - if (null != bmerchantId && (!merchantIdList.contains(bmerchantId))) { - merchantIdList.add(bmerchantId); + if (!StringUtils.isBlank(bo.getBTenantId())){ + List bUserIdList = mallBUserIdList.get(bo.getBTenantId()); + if (null == bUserIdList) { + bUserIdList = new ArrayList(); + } + Long bUserId = bo.getBUserId(); + if(null != bUserId && (!bUserIdList.contains(bUserId))){ + bUserIdList.add(bUserId); + } + + List merchantIdList = mallMerchantIdList.get(bo.getBTenantId()); + if (null == merchantIdList) { + merchantIdList = new ArrayList(); + } + Long bmerchantId = bo.getBMerchantId(); + if (null != bmerchantId && (!merchantIdList.contains(bmerchantId))) { + merchantIdList.add(bmerchantId); + } + + if (!mallTenantIdList.contains(bo.getBTenantId())) { + mallTenantIdList.add(bo.getBTenantId()); + } + } Long couponId = bo.getCouponId(); if (null != couponId && (!couponIdList.contains(couponId))) { @@ -879,37 +941,50 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } Map buserPhoneMap = new HashMap(); - if(bUserIdList.size() > 0){ - WxMerchantBUser buserQ = new WxMerchantBUser(); - buserQ.updateTenantInfo(tenantEntity); - buserQ.setIds(bUserIdList); - List bUserList = wxMerchantBUserMapper.findSimpleList(buserQ); - if(null != bUserList && bUserList.size() > 0){ - for (WxMerchantBUser bUser: bUserList) { - buserPhoneMap.put(bUser.getId(),bUser); - } - } + if(mallBUserIdList.size() > 0){ + for (Iterator it = mallBUserIdList.keySet().iterator();it.hasNext();) { + String mallTenantId = it.next(); + List bUserIdList = mallBUserIdList.get(mallTenantId); + if (null != bUserIdList && bUserIdList.size() > 0 ) { + WxMerchantBUser buserQ = new WxMerchantBUser(); + buserQ.setTenantId(mallTenantId); + buserQ.setIds(bUserIdList); + List bUserList = wxMerchantBUserMapper.findSimpleList(buserQ); + if(null != bUserList && bUserList.size() > 0){ + for (WxMerchantBUser bUser: bUserList) { + buserPhoneMap.put(bUser.getId(),bUser); + } + } + } + } + } Map merchantNameMap = new HashMap(); - if (null != merchantIdList && merchantIdList.size() > 0 ) { - WxMerchant merchantQ = new WxMerchant(); - merchantQ.updateTenantInfo(tenantEntity); -// merchantQ.setIds(merchantIdList); - List merchantList = wxMerchantMapper.findIdNameList(merchantQ); - if (null != merchantList) { - for (int i = 0 ; i < merchantList.size() ; i ++) { - WxMerchant m = merchantList.get(i); - merchantNameMap.put(m.getId(), m.getName()); - } - } + if (null != mallMerchantIdList && mallMerchantIdList.size() > 0 ) { + for (Iterator it = mallMerchantIdList.keySet().iterator();it.hasNext();) { + String mallTenantIt = it.next(); + List merchantIdList = mallMerchantIdList.get(mallTenantIt); + if (null != merchantIdList && merchantIdList.size() > 0 ) { + WxMerchant merchantQ = new WxMerchant(); + merchantQ.setTenantId(mallTenantIt); + merchantQ.setIds(merchantIdList); + List merchantList = wxMerchantMapper.findIdNameList(merchantQ); + if (null != merchantList) { + for (int i = 0 ; i < merchantList.size() ; i ++) { + WxMerchant m = merchantList.get(i); + merchantNameMap.put(m.getId(), m.getName()); + } + } + } + } } Map couponMap = new HashMap(); Map merchantProductIdMap = new HashMap(); if (null != couponIdList && couponIdList.size() > 0 ) { WxCoupon couponQ = new WxCoupon(); - couponQ.updateTenantInfo(tenantEntity); + couponQ.updateTenantInfo(couponOrderTenantEntity); couponQ.setIds(couponIdList); List couponList = wxCouponMapper.findTenantSimpleList(couponQ); if (null != couponList) { @@ -919,24 +994,27 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } } - List merchantProductVos = wxCouponMerchantMapper.findMerchantProduct(tenantEntity.getTenantId(), couponIdList); - if (null != merchantProductVos) { - for (int i = 0 ; i < merchantProductVos.size(); i ++) { - WxMerchantProductVo mp = merchantProductVos.get(i); - if (mp.getMc() > 1) { - merchantProductIdMap.put(mp.getProductId(), -999L); - }else { - merchantProductIdMap.put(mp.getProductId(), mp.getMerchantId()); + for (int i = 0 ; i < mallTenantIdList.size(); i++) { + List merchantProductVos = wxCouponMerchantMapper.findMerchantProduct(mallTenantIdList.get(i), couponIdList); + if (null != merchantProductVos) { + for (int j = 0 ; j < merchantProductVos.size(); j ++) { + WxMerchantProductVo mp = merchantProductVos.get(j); + if (mp.getMc() > 1) { + merchantProductIdMap.put(mp.getProductId(), -999L); + }else { + merchantProductIdMap.put(mp.getProductId(), mp.getMerchantId()); + } } } - } + } + } Map cUserMap = new HashMap(); if (cUserIdList.size() > 0) { WxCUserBasicInfo cUserBasicInfoQ = new WxCUserBasicInfo(); cUserBasicInfoQ.setIds(cUserIdList); - cUserBasicInfoQ.setFinalTenantId(tenantEntity.getFinalTenantId()); + cUserBasicInfoQ.setFinalTenantId(couponOrderTenantEntity.getFinalTenantId()); List cuserList = wxCUserBasicInfoService.listPhoneAndNameByIds(cUserBasicInfoQ); if (null != cuserList) { for (int i = 0 ; i < cuserList.size() ; i++) { @@ -1196,7 +1274,6 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { @Override public ResultData detailAdminVo(Long couponOrderId,TenantEntity tenantinfo) { - WxCouponOrder couponOrder = wxCouponOrderMapper.findDetailOfAdmin(couponOrderId,tenantinfo.getTenantId()); if (null == couponOrder) { return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); @@ -1332,6 +1409,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); //1核销 couponOrder.setBUserId(bUser==null?0l:bUser.getId()); couponOrder.setBMerchantId(bUser==null?0l:bUser.getMerchantId()); + couponOrder.setBTenantId(bUser==null?null:bUser.getTenantId()); couponOrder.setVerifyType(couponVerifyType.getCode()); if(EnumCouponVerifyType.VERIFY_B.equals(couponVerifyType) && StringUtils.isNotBlank(couponOrder.getVerifyRemark())){ @@ -1458,7 +1536,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } if (couponOrder != null && couponOrder.getMerchantId() != null) { - this.sendInsideCouponVerifyMsg(couponOrder, couponOrderId, couponOrder.getMerchantId(),couponOrder.getBMerchantId()); + this.sendInsideCouponVerifyMsg(wxMerchantBUser,couponOrder, couponOrderId, couponOrder.getMerchantId(),couponOrder.getBMerchantId()); } return couponOrder; @@ -1581,13 +1659,14 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } @Override - public void sendInsideCouponVerifyMsg(TenantEntity tenantEntity, Long couponOrderId, Long merchantId, Long bmerchantId) { + public void sendInsideCouponVerifyMsg(TenantEntity mallTenantEntity,TenantEntity couponOrderTenantEntity, Long couponOrderId, Long merchantId, Long bmerchantId) { if(bmerchantId == null || bmerchantId.longValue() == 0l){ bmerchantId = merchantId; } FmInsideCouponVerifyMsg verifyMsg = new FmInsideCouponVerifyMsg(); verifyMsg.setMsgType(EnumMsgRecordType.INSIDE_COUPON_VERIFY.getCode()); - verifyMsg.updateTenantInfo(tenantEntity); + verifyMsg.updateTenantInfo(couponOrderTenantEntity); + verifyMsg.setMallTenantEntity(mallTenantEntity); verifyMsg.setCouponOrderId(couponOrderId); verifyMsg.setMerchantId(merchantId); verifyMsg.setBmerchantId(bmerchantId); @@ -1611,7 +1690,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } } // 核销分账 - shareAfterVerify(couponOrder, merchant.getId(),mulityShare); + shareAfterVerify(couponOrder, merchant,mulityShare); } catch (Exception e) { logger.error("核销记账失败"+e.getMessage(),e); } @@ -1639,10 +1718,10 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public WxMerchantSubsidy recordAfterVerified(WxCouponOrder couponOrder, Long merchantId) { + public WxMerchantSubsidy recordAfterVerified(WxCouponOrder couponOrder, WxMerchant wxMerchant) { WxCoupon wxCoupon = wxCouponMapper.selectById(couponOrder.getCouponId(),couponOrder.getTenantId()); WxMerchantSubsidy merchantSubsidy = new WxMerchantSubsidy(); - merchantSubsidy.updateTenantInfo(couponOrder); + merchantSubsidy.updateTenantInfo(wxMerchant); if (couponOrder.getCouponType().equals(EnumCouponType.COUPON_PRESS.getCode()) && couponOrder.getCouponPrice().equals(wxCoupon.getSalePrice())) { //砍价 @@ -1675,7 +1754,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { final IdWorker idWorker = IdWorker.get(); Date curDate = new Date(); merchantSubsidy.setId(idWorker.nextId()); - merchantSubsidy.setMerchantId(merchantId); + merchantSubsidy.setMerchantId(wxMerchant.getId()); merchantSubsidy.setOrderPayment(couponOrder.getCouponPrice()); merchantSubsidy.setReceiverPayment(couponOrder.getCouponPrice()); merchantSubsidy.setRealPayment(couponOrder.getCouponPrice()); @@ -1689,14 +1768,14 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { //是否开通了商户提现,开通了商户提现往商户账户里面加金额 - cashOutService.addCashOut(merchantId, couponOrder.getCouponPrice()); + cashOutService.addCashOut(wxMerchant, couponOrder.getCouponPrice()); return merchantSubsidy; } @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public void shareAfterVerify(WxCouponOrder couponOrder, Long merchantId, boolean mulityShare) { + public void shareAfterVerify(WxCouponOrder couponOrder, WxMerchant wxMerchant, boolean mulityShare) { // 微信分账 try { @@ -1714,7 +1793,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { try { // 订单购买时未分账 核销记账,并且往账户里面记帐 if (couponOrder.getCouponPrice() > 0) { - recordAfterVerified(couponOrder, merchantId); + recordAfterVerified(couponOrder, wxMerchant); } Date time = DateUtils.stringToDate("2022-09-22 23:00:00", "yyyy-MM-dd HH:mm:ss"); if(EnumPayWay.PAY_WAY_WECHAT.getCode().equals(wxPayOrder.getPayVendor()) @@ -1733,7 +1812,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } WxSharingOrderDto wxSharingOrderDto = new WxSharingOrderDto(); wxSharingOrderDto.setCUserId(wxPayOrder.getCUserId()); - wxSharingOrderDto.setMerchantId(merchantId); + wxSharingOrderDto.setMerchantId(wxMerchant.getId()); if (mulityShare) { wxSharingOrderDto.setType(EnumProfitSharingOrderType.PROFIT_SHARING_MULTI.getCode()); }else { @@ -1746,7 +1825,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { wxSharingOrderDto.setPayTimeEnd(wxPayOrder.getPayTimeEnd()); wxSharingOrderDto.updateTenantInfo(wxPayOrder); wxSharingOrderDto.setTransactionId(wxPayOrder.getTransactionId()); - wxProfitSharingOrderService.createSharingOrder(wxSharingOrderDto,wxPayOrder); + wxProfitSharingOrderService.createSharingOrder(wxMerchant,wxSharingOrderDto,wxPayOrder); } catch (Exception e) { logger.error("微信分账: " + e.getMessage()); } @@ -2629,7 +2708,8 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { try { couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.POS_PRE_VERIFY.getCode()); //预核销 couponOrder.setBUserId(bUser.getId()); - couponOrder.setBMerchantId(bUser.getMerchantId());; + couponOrder.setBMerchantId(bUser.getMerchantId()); + couponOrder.setBTenantId(bUser.getTenantId()); couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_B.getCode()); couponOrder.setVerifyRemark(EnumCouponVerifyType.VERIFY_B_10.getMessage()); couponOrder.setUpdateDate(new Date()); @@ -2666,6 +2746,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.POS_PRE_VERIFY.getCode()); //预核销 couponOrder.setBUserId(bUser.getId()); couponOrder.setBMerchantId(bUser.getMerchantId()); + couponOrder.setBTenantId(bUser.getTenantId()); couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_B.getCode()); couponOrder.setVerifyRemark(EnumCouponVerifyType.VERIFY_B_10.getMessage()); couponOrder.setUpdateDate(new Date()); @@ -2747,6 +2828,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { updateCouponOrder.setId(couponOrderId); updateCouponOrder.setBUserId(bUser.getId()); updateCouponOrder.setBMerchantId(bUser.getMerchantId()); + updateCouponOrder.setBTenantId(bUser.getTenantId()); updateCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); updateCouponOrder.setUpdateDate(new Date()); updateCouponOrder.setPayVendor(payWay.getCode()); 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 766489fbc..0dc30d0f5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -2609,7 +2609,7 @@ public class WxOrderServiceImpl implements WxOrderService { sharingOrder.setPayTimeEnd(wxPayOrder.getPayTimeEnd()); sharingOrder.updateTenantInfo(wxPayOrder); sharingOrder.setTransactionId(wxPayOrder.getTransactionId()); - wxProfitSharingOrderService.createSharingOrder(sharingOrder,wxPayOrder); + wxProfitSharingOrderService.createSharingOrder(wxMerchantBUser,sharingOrder,wxPayOrder); } else { logger.error("微信分账: 未找到payorder or merchant at orderid-" + orderId); @@ -3482,12 +3482,13 @@ public class WxOrderServiceImpl implements WxOrderService { } @Override - public void sendInsideOrderPushDeliveryMsg(TenantEntity tenantEntity, Long composeOrderId,Long couponOrderId) { + public void sendInsideOrderPushDeliveryMsg(TenantEntity couponOrderTenantEntity, Long composeOrderId,Long couponOrderId) { try{ FmInsideOrderPushMsg orderPush = new FmInsideOrderPushMsg(); orderPush.setDelayTimeLevel(3); orderPush.setMsgType(EnumMsgRecordType.INSIDE_ORDER_PUSH_DELIVERY.getCode()); - orderPush.updateTenantInfo(tenantEntity); + orderPush.updateTenantInfo(couponOrderTenantEntity); + //orderPush.setMallTenantEntity(mallTenantEntity); orderPush.setBatchOrderId(composeOrderId); orderPush.setCouponOrderId(couponOrderId); logger.info(">>>>>>>>>>>send sendInsideOrderPushMsg :"+orderPush); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index 535a7ad11..519f3c855 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -1117,7 +1117,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { logger.error(e.getMessage()); } // 更新后处理 - wxCouponOrderService.sendInsideCouponVerifyMsg(unPayOrder, unPayOrder.getPosPayOrderId(), user.getMerchantId(),user.getMerchantId()); + wxCouponOrderService.sendInsideCouponVerifyMsg(user,unPayOrder, unPayOrder.getPosPayOrderId(), user.getMerchantId(),user.getMerchantId()); } } } catch (Exception e) { @@ -1149,7 +1149,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { if (record.getShare().equals(EnumPayShare.NO.getCode())) { //结算记录 try { - proxy.createMerchantSubsidy(record, composeOrder.getSingleOrder(), new Date(),true); + proxy.createMerchantSubsidy(user,record, composeOrder.getSingleOrder(), new Date(),true); } catch (Exception e) { logger.error("收银台结算记录失败,{}", e.getMessage()); } @@ -1238,7 +1238,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { logger.error(e.getMessage()); } // 更新后处理 - wxCouponOrderService.sendInsideCouponVerifyMsg(unPayOrder, unPayOrder.getPosPayOrderId(), user.getMerchantId(),user.getMerchantId()); + wxCouponOrderService.sendInsideCouponVerifyMsg(user,unPayOrder, unPayOrder.getPosPayOrderId(), user.getMerchantId(),user.getMerchantId()); } } } catch (Exception e) { @@ -1247,15 +1247,15 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public void createMerchantSubsidy(WxPayOrder record, WxOrder order, Date curDate,boolean freshMerchantCash) { + public void createMerchantSubsidy(WxMerchantBUser user,WxPayOrder record, WxOrder order, Date curDate,boolean freshMerchantCash) { final IdWorker idWorker = IdWorker.get(); WxMerchantSubsidy merchantSubsidy = new WxMerchantSubsidy(); merchantSubsidy.setId(idWorker.nextId()); merchantSubsidy.updateTenantInfo(order); merchantSubsidy.setOrderId(order.getId()); merchantSubsidy.setOrderType(EnumOrderType.MICROPAY.getCode()); - WxMerchantBUser wxMerchantBUser = wxMerchantBUserMapper.selectById(order.getProductId()); - merchantSubsidy.setMerchantId(wxMerchantBUser.getMerchantId()); + //WxMerchantBUser wxMerchantBUser = wxMerchantBUserMapper.selectById(order.getProductId()); + merchantSubsidy.setMerchantId(user.getMerchantId()); merchantSubsidy.setCouponOrderId(0L); merchantSubsidy.setCouponType(0); if (null == record.getPayAmount()) { @@ -1279,7 +1279,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { wxMerchantSubsidyMapper.insert(merchantSubsidy); if (freshMerchantCash && (null!=record.getShare() && EnumPayShare.NO.getCode().intValue()==record.getShare().intValue())) { - cashOutService.addCashOut(wxMerchantBUser.getMerchantId(), merchantSubsidy.getRealPayment()); + WxMerchant merchant = wxMerchantMapper.selectById(user.getMerchantId()); + cashOutService.addCashOut(merchant, merchantSubsidy.getRealPayment()); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java index 0c2172123..38c8a356a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java @@ -179,7 +179,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ @Override // @Transactional(isolation=Isolation.SERIALIZABLE, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) - public ResultData redoSharingOrder(WxProfitSharingOrder sharingOrder,WxPayOrder payOrder) { + public ResultData redoSharingOrder(TenantEntity mallTenantEntity,WxProfitSharingOrder sharingOrder,WxPayOrder payOrder) { if(!EnumProfitSharingOrderStatus.shareStatus().contains(sharingOrder.getSharingStatus())){ return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),"分账状态不允许"); @@ -218,7 +218,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ EnumPayWay enumPayWay = EnumPayWay.getEnum(payOrder.getPayVendor()); EnumAppPlat enumPlat = enumPayWay.getPlat(); - WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(sharingOrder, enumPlat); + WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(mallTenantEntity, enumPlat); WxPayAccount payAccount = wxPayAccountMapper.selectById(cAppInfo.getPayId()); WxComposeChildOrderShare wxComposeChildOrderShare = null; @@ -244,7 +244,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ wxComposeChildOrderShare.setSellerAmount(sellerAmount); boolean isSeller = false; if(sellerAmount > 0){ - WxProfitSharingReceiver receiver = getByMerchantAdmin(payOrder,payShareAdapterService,wxComposeChildOrderShare.getMerchantId(),EnumMerchantAdmin.PRIVATE_SELL,payOrder.getTtPayWay(), payOrder.getMchType()); + WxProfitSharingReceiver receiver = getByMerchantAdmin(mallTenantEntity,payShareAdapterService,wxComposeChildOrderShare.getMerchantId(),EnumMerchantAdmin.PRIVATE_SELL,payOrder.getTtPayWay(), payOrder.getMchType()); if(receiver != null){ JSONObject jo = new JSONObject(); jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage()); @@ -267,7 +267,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ } boolean isSystem = false; if(systemAmount > 0){ - WxProfitSharingReceiver receiver = getByMerchantAdmin(payOrder,payShareAdapterService,wxComposeChildOrderShare.getMerchantId(),EnumMerchantAdmin.PRIVATE_SYSTEM,payOrder.getTtPayWay(), payOrder.getMchType()); + WxProfitSharingReceiver receiver = getByMerchantAdmin(mallTenantEntity,payShareAdapterService,wxComposeChildOrderShare.getMerchantId(),EnumMerchantAdmin.PRIVATE_SYSTEM,payOrder.getTtPayWay(), payOrder.getMchType()); if(receiver != null){ JSONObject jo = new JSONObject(); jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage()); @@ -292,7 +292,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ } boolean isMall = false; if(mallAmount > 0){ - WxProfitSharingReceiver receiver = getByMerchantAdmin(payOrder,payShareAdapterService,wxComposeChildOrderShare.getMerchantId(),EnumMerchantAdmin.PUBLIC_ADMIN,payOrder.getTtPayWay(), payOrder.getMchType()); + WxProfitSharingReceiver receiver = getByMerchantAdmin(mallTenantEntity,payShareAdapterService,wxComposeChildOrderShare.getMerchantId(),EnumMerchantAdmin.PUBLIC_ADMIN,payOrder.getTtPayWay(), payOrder.getMchType()); if(receiver != null){ JSONObject jo = new JSONObject(); jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage()); @@ -315,7 +315,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ //商户所得 int shareAmount = wxComposeChildOrderShare.getShareAmount() + surplus; - WxProfitSharingReceiver receiver = payShareAdapterService.getReceiver(sharingOrder,sharingOrder.getMerchantId(),payOrder.getTtPayWay(),payOrder.getMchType()); + WxProfitSharingReceiver receiver = payShareAdapterService.getReceiver(mallTenantEntity,sharingOrder.getMerchantId(),payOrder.getTtPayWay(),payOrder.getMchType()); if(EnumPayMchType.TOTAL.getCode().equals(payOrder.getMchType()) && EnumPayShare.YES.getCode().equals(payOrder.getShare())){ JSONObject jo = new JSONObject(); jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage()); @@ -385,6 +385,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ result.setId(idworker.nextId()); result.updateTenantInfo(sharingOrder); result.setMerchantId(Long.valueOf(o.getString("merchantId"))); + result.setBTenantId(mallTenantEntity.getTenantId()); result.setSharingOrderId(sharingOrder.getId()); result.setSharingReceiverId(Long.valueOf(o.getString("description"))); result.setPayAmount(o.getInteger("amount")); @@ -405,7 +406,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ @Override // @Transactional(isolation=Isolation.SERIALIZABLE, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) - public ResultData createSharingOrder(WxSharingOrderDto sharingOrderDto,WxPayOrder payOrder) { + public ResultData createSharingOrder(TenantEntity mallTenantEntity,WxSharingOrderDto sharingOrderDto,WxPayOrder payOrder) { // PayShareAdapterService payShareAdapterService = payServiceFactory.getPayShareAdapterService(payOrder.getPayVendor(),payOrder.getPayVersion()); //创建分账订单 @@ -439,6 +440,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ record.setSingleOrderAmount(childOrderShare.getRealPayMent()); record.setPayAmount(payOrder.getPayAmount()); record.setMerchantId(sharingOrderDto.getMerchantId()); + record.setBTenantId(mallTenantEntity.getTenantId()); //直连模式, if (payOrder.getMchType() == EnumPayMchType.DIRECT.getCode()) { if (null == childOrderShare.getMerchantId()) { @@ -459,7 +461,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ } //实际调用分账 - ResultData resultData = redoSharingOrder(record,payOrder); + ResultData resultData = redoSharingOrder(mallTenantEntity,record,payOrder); return resultData; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java index d93bf1f26..06faaf3c1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java @@ -276,6 +276,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { wxCouponOrder.setBUserId(bUser.getId()); wxCouponOrder.setAUserId(payType.getCode().longValue()); wxCouponOrder.setBMerchantId(bUser.getMerchantId()); + wxCouponOrder.setBTenantId(bUser.getTenantId()); } else if (payType == EnumPayType.PAY_ADMIN_REFUND) { wxCouponOrder.setBUserId(payType.getCode().longValue()); wxCouponOrder.setAUserId(aUserId); diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideCouponVerifyMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideCouponVerifyMsgServiceImpl.java index 10ab3bfca..8e6897d0e 100644 --- a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideCouponVerifyMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideCouponVerifyMsgServiceImpl.java @@ -2,6 +2,7 @@ package com.iformall.service.msg.impl; import com.iformall.common.ErrorCode; import com.iformall.domain.po.*; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.msg.BaseMsg; import com.iformall.domain.po.msg.FmInsideCouponVerifyMsg; import com.iformall.enums.EnumCouponOrderStatus; @@ -42,7 +43,7 @@ public class FmInsideCouponVerifyMsgServiceImpl implements MsgSendService { logger.error("券包ID未找到: " + msg.getCouponOrderId()); throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL.getCode(), "券包ID未找到" + msg.getCouponOrderId()); } - + TenantEntity mallTenantEntity = msg.getMallTenantEntity(); WxMerchant merchant = merchantService.selectById(msg.getMerchantId()); if(merchant == null) { logger.error("门店未找到: " + msg.getMerchantId()); diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderPushDeliveryMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderPushDeliveryMsgServiceImpl.java index e1b57f58b..b02c63d37 100644 --- a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderPushDeliveryMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderPushDeliveryMsgServiceImpl.java @@ -75,6 +75,11 @@ public class FmInsideOrderPushDeliveryMsgServiceImpl implements MsgSendService { TenantEntity tenantEntity = new TenantEntity(); tenantEntity.setTenantId(msg.getTenantId()); tenantEntity.setParentTenantId(msg.getParentTenantId()); + +// TenantEntity mallTenantEntity = msg.getMallTenantEntity(); +// if (null == mallTenantEntity) { +// mallTenantEntity = tenantEntity; +// } try{ WxCouponOrder couponOrder = wxCouponOrderService.getById(msg.getCouponOrderId(), tenantEntity.getTenantId()); @@ -88,7 +93,7 @@ public class FmInsideOrderPushDeliveryMsgServiceImpl implements MsgSendService { TtMerchantPoi poi = ttMerchantPoiService.getById(couponOrder.getBMerchantId()); - WxAppinfo appinfo = wxAppinfoService.getCAppInfo(tenantEntity,EnumPayWay.PAY_WAY_TT.getPlat()); + WxAppinfo appinfo = wxAppinfoService.getCAppInfo(couponOrder,EnumPayWay.PAY_WAY_TT.getPlat()); WxPayAccount payAccount = wxPayAccountService.getById(appinfo.getPayId()); TtPayService ttPayService = maUtil.getTtPayService(appinfo, payAccount); diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index 5009dc81c..5cf21eccf 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -11,6 +11,7 @@ + @@ -40,7 +41,7 @@ - `id`,`tenant_id`,`parent_tenant_id`,`coupon_id`,`coupon_type`,`c_user_id`,`owner_id`,`b_user_id`,`b_merchant_id`,`order_id`,`expired_time`,`coupon_order_status`,`create_date`,`update_date`,`coupon_price`, `auto_refund`, + `id`,`tenant_id`,`parent_tenant_id`,`coupon_id`,`coupon_type`,`c_user_id`,`owner_id`,`b_user_id`,`b_merchant_id`,`b_tenant_id`,`order_id`,`expired_time`,`coupon_order_status`,`create_date`,`update_date`,`coupon_price`, `auto_refund`, `verify_type`,`verify_remark`,`pay_vendor`,`pay_version`,`send_merchant_id`,`send_merchant_user_id`,`compose_order_type`,`compose_order_id`,`parent_coupon_order_id`,`coupon_number`, `freight_price`,`shipping_type`,`shipping_address`,`shipping_status`,`delivery_info`,`subsidy`,`ext_param` @@ -77,6 +78,10 @@ and `b_merchant_id` = #{bMerchantId} + + + and `b_tenant_id` = #{bTenantId} + and `a_user_id` = #{aUserId} @@ -165,7 +170,7 @@ select - co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.c_user_id,co.owner_id,co.b_user_id,co.b_merchant_id, + co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.c_user_id,co.owner_id,co.b_user_id,co.b_merchant_id,co.b_tenant_id, co.order_id,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price,co.verify_type,co.verify_remark, co.pay_vendor,co.pay_version, co.`freight_price`,co.`shipping_type`,co.`shipping_address`,co.`shipping_status`,co.`delivery_info`,co.ext_param FROM wx_coupon_order co @@ -867,7 +872,7 @@ select - co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.c_user_id,co.owner_id,co.b_user_id,co.b_merchant_id,co.order_id,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price,co.verify_type,co.verify_remark,co.pay_vendor, + co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.c_user_id,co.owner_id,co.b_user_id,co.b_merchant_id,co.b_tenant_id,co.order_id,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price,co.verify_type,co.verify_remark,co.pay_vendor, co.pay_version,co.`freight_price`,co.`shipping_type`,co.`shipping_address`,co.`shipping_status`,co.`delivery_info`,co.ext_param from wx_coupon_order co where co.id = #{id} and co.tenant_id = #{tenantId} @@ -955,7 +960,7 @@ select - co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.c_user_id,co.owner_id,co.b_user_id,co.b_merchant_id,co.order_id,co.expired_time,co.coupon_order_status, + co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.c_user_id,co.owner_id,co.b_user_id,co.b_merchant_id,co.b_tenant_id,co.order_id,co.expired_time,co.coupon_order_status, co.create_date,co.update_date,co.coupon_price from wx_coupon_order co where co.id = #{id} and co.tenant_id = #{tenantId} diff --git a/mallinkService/src/main/resources/mapper/WxProfitSharingOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxProfitSharingOrderMapper.xml index 41d369547..1ae142fb5 100644 --- a/mallinkService/src/main/resources/mapper/WxProfitSharingOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxProfitSharingOrderMapper.xml @@ -7,6 +7,7 @@ + @@ -30,7 +31,7 @@ - `id`,`tenant_id`,`parent_tenant_id`,`out_settle_no`,`merchant_id`,`pay_merchant_id`,`pay_merchant_mch_id`,`order_id`,`pay_vendor`,`pay_version`,`mch_type`,`pay_amount`, + `id`,`tenant_id`,`parent_tenant_id`,`out_settle_no`,`merchant_id`,`b_tenant_id`,`pay_merchant_id`,`pay_merchant_mch_id`,`order_id`,`pay_vendor`,`pay_version`,`mch_type`,`pay_amount`, `single_order_amount`,`single_order_id`,`pay_time_end`,`pay_time_start`,`transaction_id`,`sharing_order_no`,`type`,`point_deduction`,`receivers`,`error_msg`,`sharing_status`,`update_time`,`create_time` @@ -54,6 +55,10 @@ and `merchant_id` = #{merchantId} + + and `b_tenant_id` = #{bTenantId} + + and `pay_merchant_id` = #{payMerchantId} @@ -153,6 +158,7 @@ + diff --git a/mallinkService/src/main/resources/mapper/WxProfitSharingResultMapper.xml b/mallinkService/src/main/resources/mapper/WxProfitSharingResultMapper.xml index aa345939e..582e8db1e 100644 --- a/mallinkService/src/main/resources/mapper/WxProfitSharingResultMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxProfitSharingResultMapper.xml @@ -6,6 +6,7 @@ + @@ -19,7 +20,7 @@ - `id`,`tenant_id`,`parent_tenant_id`,`merchant_id`,`sharing_order_id`,`sharing_receiver_id`,`pay_amount`,`is_private`,`update_time`,`create_time`,`sharing_status`,`finish_time`,`failed_reason`,`description` + `id`,`tenant_id`,`parent_tenant_id`,`merchant_id`,`b_tenant_id`,`sharing_order_id`,`sharing_receiver_id`,`pay_amount`,`is_private`,`update_time`,`create_time`,`sharing_status`,`finish_time`,`failed_reason`,`description` @@ -39,7 +40,10 @@ and `merchant_id` = #{merchantId} - + + + + and `b_tenant_id` = #{bTenantId} From f0825bd9dad4e22a4a30b2ca2d816a994bd7e503 Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 28 Nov 2022 22:47:49 +0800 Subject: [PATCH 077/144] //app test --- .../basic/WxProjectConfigController.java | 11 ++++----- .../controller/sys/HomeController.java | 2 +- .../iformall/controller/BaseController.java | 4 ++-- .../iformall/controller/BaseController.java | 2 +- .../iformall/controller/WxMallController.java | 8 +++---- .../controller/WxOrderController.java | 8 +++---- .../controller/WxUserGrantController.java | 6 ++--- .../controller/callback/TtPayController.java | 12 +++++----- .../controller/callback/TtWebController.java | 2 +- .../iformall/service/WxAppinfoService.java | 3 ++- .../service/impl/WxAppinfoServiceImpl.java | 18 ++++++++++++-- .../service/impl/WxPayBillServiceImpl.java | 24 ++++++++----------- .../msg/impl/SendSmartAppMsgServiceImpl.java | 2 +- .../refund/douyin/TtRefundAdapterService.java | 11 +++++---- .../controller/sys/HomeController.java | 2 +- .../callback/TtOrderCallbackController.java | 4 ++-- .../controller/TtUserGrantController.java | 6 ++--- 17 files changed, 68 insertions(+), 57 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java index bf85af1e8..8b87e0b01 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java @@ -818,10 +818,10 @@ public class WxProjectConfigController extends BaseController { @GetMapping("/ttcallback/query/settings") @SystemControllerLog(description = "") @TenantIgnore - public ResultData ttcallbackQuerySettings(String tenantId,String appid) { + public ResultData ttcallbackQuerySettings(String appid) { logger.debug("[" + getIpAddr() + "] WxProjectConfigController::ttcallbackQuerySettings"); try { - WxAppinfo appinfo = wxAppinfoService.getByAppId(appid,tenantId); + WxAppinfo appinfo = wxAppinfoService.getOnlyByAppIdFromRedis(appid); if(appinfo == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"未找到对应的小程序"); } @@ -829,7 +829,7 @@ public class WxProjectConfigController extends BaseController { || !EnumAppType.C.getCode().equals(appinfo.getType())){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"该小程序不支持"); } - WxPayAccount payAccount = wxPayAccountService.getById(appinfo.getPayId()); + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(appinfo.getPayId()); if(payAccount == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"未找到对应的支付数据"); } @@ -849,7 +849,6 @@ public class WxProjectConfigController extends BaseController { public ResultData ttcallbackSettings(@RequestBody Map map) { logger.debug("[" + getIpAddr() + "] WxProjectConfigController::ttcallbackSettings"); String appid = map.get("appid"); - String tenantId = map.get("tenantId"); String create_order_callback = map.get("createOrderCallback"); String refund_callback = map.get("refundCallback"); String delivery_qrcode_redirect = map.get("deliveryQrcodeRedirect"); @@ -858,7 +857,7 @@ public class WxProjectConfigController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } try { - WxAppinfo appinfo = wxAppinfoService.getByAppId(appid,tenantId); + WxAppinfo appinfo = wxAppinfoService.getOnlyByAppIdFromRedis(appid); if(appinfo == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"未找到对应的小程序"); } @@ -866,7 +865,7 @@ public class WxProjectConfigController extends BaseController { || !EnumAppType.C.getCode().equals(appinfo.getType())){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"该小程序不支持"); } - WxPayAccount payAccount = wxPayAccountService.getById(appinfo.getPayId()); + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(appinfo.getPayId()); if(payAccount == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"未找到对应的支付数据"); } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java b/mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java index c72ecbd89..19b6c4f94 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java @@ -255,7 +255,7 @@ public class HomeController extends BaseController { logger.error("appid信息未提供"); return new ResultData(ErrorCode.MALL_INFO_NOT_FOUND); } - WxAppinfo appinfo = appinfoService.getByAppId(user.getTenantId()); + WxAppinfo appinfo = appinfoService.getOnlyByAppIdFromRedis(user.getTenantId()); if (appinfo == null) { logger.error("appid未找到"); return new ResultData(ErrorCode.MALL_INFO_NOT_FOUND); diff --git a/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java index 7f12c8de7..86850f3cc 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java @@ -160,11 +160,11 @@ public class BaseController { } public WxAppinfo getAppInfo(String appId) { - return wxAppinfoService.getByAppId(appId); + return wxAppinfoService.getOnlyByAppIdFromRedis(appId); } public WxAppinfo getAppInfo(String appId,String tenantId) { - return wxAppinfoService.getByAppId(appId,tenantId); + return wxAppinfoService.getByAppIdFromRedis(appId,tenantId); } public String getIpAddr() { diff --git a/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java index 293322ede..4d0303c84 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java @@ -251,7 +251,7 @@ public class BaseController { if(isFmOpen) { return openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); } else { - WxAppinfo appinfo = wxAppinfoService.getByAppId(appId); + WxAppinfo appinfo = wxAppinfoService.getOnlyByAppIdFromRedis(appId); if (appinfo == null) { return null; } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java index 3db2ce979..53c78dd55 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java @@ -48,7 +48,7 @@ public class WxMallController extends BaseController { @ApiOperation("获取模板类型") @GetMapping("/getAppIcp") public ResultData getAppIcp(String appId) { - WxAppinfo appInfo = wxAppinfoService.getByAppId(appId); + WxAppinfo appInfo = wxAppinfoService.getOnlyByAppIdFromRedis(appId); if (appInfo == null) { return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } @@ -60,7 +60,7 @@ public class WxMallController extends BaseController { @ApiOperation("获取模板类型") @GetMapping("/modelType") public ResultData modelType(String appId) { - WxAppinfo appInfo = wxAppinfoService.getByAppId(appId); + WxAppinfo appInfo = wxAppinfoService.getOnlyByAppIdFromRedis(appId); if (appInfo == null) { return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } @@ -73,7 +73,7 @@ public class WxMallController extends BaseController { @GetMapping("/getAppIcon") @ApiImplicitParam(name = "appId", value = "appId", dataType = "String", paramType = "query", required = true) public ResultData getAppIcon(String appId) { - WxAppinfo appInfo = wxAppinfoService.getByAppId(appId); + WxAppinfo appInfo = wxAppinfoService.getOnlyByAppIdFromRedis(appId); if (appInfo == null) { return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } @@ -93,7 +93,7 @@ public class WxMallController extends BaseController { @GetMapping("/getWeapNote") @ApiImplicitParam(name = "appId", value = "appId", dataType = "String", paramType = "query", required = true) public ResultData getWeapNote(String appId) { - WxAppinfo appInfo = wxAppinfoService.getByAppId(appId); + WxAppinfo appInfo = wxAppinfoService.getOnlyByAppIdFromRedis(appId); if (appInfo == null) { return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java index dc63d351f..47ade0597 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java @@ -212,8 +212,8 @@ public class WxOrderController extends BaseController { } WxMall mall = mallService.getByTenantId(tenantId); - //验证app todo 想想集团版多小程序和单小程序怎么处理 - WxAppinfo appinfo = wxAppinfoService.getByAppIdFromRedis(app_id,mall.getFinalTenantId()); + //验证app + WxAppinfo appinfo = wxAppinfoService.getOnlyByAppIdFromRedis(app_id); if(appinfo == null || !EnumAppPlat.TOUTIAO.getCode().equals(appinfo.getPlat()) || !EnumAppType.C.getCode().equals(appinfo.getType())){ map.put("err_no",ErrorCode.APP_ID_NOT_FOUND.getCode()); @@ -763,14 +763,14 @@ public class WxOrderController extends BaseController { String tenantId = getTenantId(cp_extra); WxMall mall = mallService.getByTenantId(tenantId); //验证app - WxAppinfo appinfo = wxAppinfoService.getByAppId(app_id); + WxAppinfo appinfo = wxAppinfoService.getOnlyByAppIdFromRedis(app_id); if(appinfo == null || !EnumAppPlat.TOUTIAO.getCode().equals(appinfo.getPlat()) || !EnumAppType.C.getCode().equals(appinfo.getType())){ map.put("err_no",ErrorCode.APP_ID_NOT_FOUND.getCode()); map.put("err_tips",ErrorCode.APP_ID_NOT_FOUND.getMessage()); return map; } - WxPayAccount payAccount = wxPayAccountService.getById(appinfo.getPayId()); + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(appinfo.getPayId()); if(payAccount == null){ map.put("err_no",ErrorCode.API_KEY_NOT_FOUND.getCode()); map.put("err_tips","未找到支付配置"); diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index d78616034..6c738c394 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -183,7 +183,7 @@ public class WxUserGrantController extends BaseController { //其他参数 String systemInfo = map.get("systemInfo"); - WxAppinfo wxAppinfo = wxAppinfoService.getByAppId(appId); + WxAppinfo wxAppinfo = wxAppinfoService.getOnlyByAppIdFromRedis(appId); if(wxAppinfo == null){ return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } @@ -370,7 +370,7 @@ public class WxUserGrantController extends BaseController { } CUser user = getCUser(); if (user != null) { - WxAppinfo wxAppinfo = wxAppinfoService.getByAppId(user.getAppId()); + WxAppinfo wxAppinfo = wxAppinfoService.getOnlyByAppIdFromRedis(user.getAppId()); if(wxAppinfo == null){ return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } @@ -417,7 +417,7 @@ public class WxUserGrantController extends BaseController { if (user == null) { return new ResultData(ErrorCode.USER_IS_EMPTY); } - WxAppinfo wxAppinfo = wxAppinfoService.getByAppId(user.getAppId()); + WxAppinfo wxAppinfo = wxAppinfoService.getOnlyByAppIdFromRedis(user.getAppId()); if(wxAppinfo == null){ return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/TtPayController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/TtPayController.java index 6ede014bf..5e7a1c499 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/TtPayController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/TtPayController.java @@ -114,8 +114,8 @@ public class TtPayController extends BaseController { appid = (String) pMap.get("app_id"); String cp_extra = (String) pMap.get("cp_extra"); tenantId = getTenantId(cp_extra); - appinfo = appinfoService.getByAppId(appid,tenantId); - payAccount = payAccountService.getById(appinfo.getPayId()); + appinfo = appinfoService.getOnlyByAppIdFromRedis(appid); + payAccount = payAccountService.getByIdFromRedis(appinfo.getPayId()); TtPayService ttPayService = maUtil.getTtPayService(appinfo, payAccount); String beforeSign = String.format("%s\n%s\n%s\n", @@ -139,8 +139,8 @@ public class TtPayController extends BaseController { appid = (String) pMap.get("appid"); String cp_extra = (String) pMap.get("cp_extra"); tenantId = getTenantId(cp_extra); - appinfo = appinfoService.getByAppId(appid,tenantId); - payAccount = payAccountService.getById(appinfo.getPayId()); + appinfo = appinfoService.getOnlyByAppIdFromRedis(appid); + payAccount = payAccountService.getByIdFromRedis(appinfo.getPayId()); Map paramMap = new HashMap<>(); paramMap.put("token",payAccount.getNotifyToken()); @@ -169,7 +169,7 @@ public class TtPayController extends BaseController { if (StringUtils.isNotBlank(out_order_no)) { try { Long orderId = Long.valueOf(out_order_no); - WxPayOrder wxpayOrder = wxPayOrderService.getById(orderId, appinfo.getTenantId()); + WxPayOrder wxpayOrder = wxPayOrderService.getById(orderId, tenantId); if(wxpayOrder == null){ logger.error("未找到订单"+orderId); resultMap.put("err_tips","未找到订单"); @@ -240,7 +240,7 @@ public class TtPayController extends BaseController { String out_settle_no = (String) pMap.get("out_settle_no"); String status = (String) pMap.get("status"); WxProfitSharingOrder wxProfitSharingOrder = new WxProfitSharingOrder(); - wxProfitSharingOrder.setTenantId(appinfo.getTenantId()); + wxProfitSharingOrder.setTenantId(tenantId); wxProfitSharingOrder.setOutSettleNo(Long.parseLong(out_settle_no)); WxProfitSharingOrder one = wxProfitSharingOrderService.findOne(wxProfitSharingOrder); if(one != null){ diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/TtWebController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/TtWebController.java index c5056a84b..01d51661b 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/TtWebController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/TtWebController.java @@ -70,7 +70,7 @@ public class TtWebController extends BaseController { } String client_key = (String) parameterMap.get("client_key"); - WxAppinfo appInfo = wxAppinfoService.getByAppId(client_key); + WxAppinfo appInfo = wxAppinfoService.getOnlyByAppIdFromRedis(client_key); if(appInfo == null){ resultMap.put("err_code",1000); resultMap.put("err_tips","error"); diff --git a/mallinkService/src/main/java/com/iformall/service/WxAppinfoService.java b/mallinkService/src/main/java/com/iformall/service/WxAppinfoService.java index 4f2b98aa9..fece4aa9b 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxAppinfoService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxAppinfoService.java @@ -57,7 +57,7 @@ public interface WxAppinfoService { * @param appId * @return */ - WxAppinfo getByAppId(String appId); + WxAppinfo getOnlyByAppId(String appId); WxAppinfo getByAppId(String appId,String tenantId); /** @@ -84,6 +84,7 @@ public interface WxAppinfoService { */ void deleteById(Long id); + WxAppinfo getOnlyByAppIdFromRedis(String appId); WxAppinfo getByAppIdFromRedis(String appId,String tenantId); WxAppinfo getByIdFromRedis(Long id); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAppinfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAppinfoServiceImpl.java index 45bc0c49d..a2fd805b3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxAppinfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAppinfoServiceImpl.java @@ -98,7 +98,7 @@ public class WxAppinfoServiceImpl implements WxAppinfoService { } @Override - public WxAppinfo getByAppId(String appId) { + public WxAppinfo getOnlyByAppId(String appId) { WxAppinfo appinfoQ = new WxAppinfo(); appinfoQ.setAppId(appId); List list = wxAppinfoMapper.findList(appinfoQ); @@ -177,13 +177,27 @@ public class WxAppinfoServiceImpl implements WxAppinfoService { wxAppinfoMapper.deleteById(id); } + @Override + public WxAppinfo getOnlyByAppIdFromRedis(String appId) { + WxAppinfo record = null; + String key = Constant.appinfoPrev + "only" + ":" + appId; + record = RedisCacheUtils.getCacheObject(wxAppinfoRedisTemplate, key, WxAppinfo.class); + if (null == record) { + record = this.getOnlyByAppId(appId); + if(record != null){ + RedisCacheUtils.cache(wxAppinfoRedisTemplate, key, record, 3600*24*7); + } + } + return record; + } + @Override public WxAppinfo getByAppIdFromRedis(String appId,String tenantId) { WxAppinfo record = null; String key = Constant.appinfoPrev + tenantId + ":" + appId; record = RedisCacheUtils.getCacheObject(wxAppinfoRedisTemplate, key, WxAppinfo.class); if (null == record) { - record = this.getByAppId(appId); + record = this.getByAppId(appId,tenantId); if(record != null){ RedisCacheUtils.cache(wxAppinfoRedisTemplate, key, record, 3600*24*7); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayBillServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayBillServiceImpl.java index 86416b0ca..7df0c2028 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayBillServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayBillServiceImpl.java @@ -19,11 +19,7 @@ import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.*; import com.iformall.pay.*; -import com.iformall.service.WxBillAllService; -import com.iformall.service.WxBillSettleService; -import com.iformall.service.WxMerchantBUserService; -import com.iformall.service.WxMerchantService; -import com.iformall.service.WxPayBillService; +import com.iformall.service.*; import com.iformall.utils.*; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -45,13 +41,13 @@ public class WxPayBillServiceImpl implements WxPayBillService { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired - WxAppinfoMapper wxAppinfoMapper; + WxAppinfoService wxAppinfoService; @Autowired WxPayAccountBillMapper wxPayAccountBillMapper; @Autowired - WxPayAccountMapper wxPayAccountMapper; + WxPayAccountService wxPayAccountService; @Autowired WxPayBillMapper wxPayBillMapper; @@ -132,7 +128,7 @@ public class WxPayBillServiceImpl implements WxPayBillService { return new ResultData(ErrorCode.BILL_OWE_ZERO); } //获取支付账户信息 - WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId()); + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(appInfo.getPayId()); Date currentDate = new Date(); String payBillNo; WxPayBill billParam= new WxPayBill(); @@ -362,7 +358,7 @@ public class WxPayBillServiceImpl implements WxPayBillService { private String wechatPayBillQuery(WxAppinfo appInfo, WxPayBill record) { // get payAccount - WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId()); + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(appInfo.getPayId()); if (payAccount.getType().equals(EnumPayMode.MCH.getCode())) { // 普通商户号模式 WxPayOrderQ payBillQ = new WxPayOrderQ(); @@ -459,7 +455,7 @@ public class WxPayBillServiceImpl implements WxPayBillService { private String wechatPayBillClose(WxAppinfo appInfo, WxPayBill record) { // get payAccount - WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId()); + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(appInfo.getPayId()); if (payAccount.getType().equals(EnumPayMode.MCH.getCode())) { // 普通商户号模式 WxPayOrderQ payBillC = new WxPayOrderQ(); @@ -590,21 +586,21 @@ public class WxPayBillServiceImpl implements WxPayBillService { boolean isNormal = true; if (StringUtils.isBlank(subAppId) && StringUtils.isBlank(subMchId)) { // 普通商户号 - appinfo = wxAppinfoMapper.findByAppId(appId,tenantId); + appinfo = wxAppinfoService.getByAppIdFromRedis(appId,tenantId); if (appinfo == null) { throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); } isNormal = true; } else { // 服务号 现在用hmac-sha256 - appinfo = wxAppinfoMapper.findByAppId(subAppId,tenantId); + appinfo = wxAppinfoService.getByAppIdFromRedis(subAppId,tenantId); if (appinfo == null) { throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); } isNormal = false; } - WxPayAccount payAccount = wxPayAccountMapper.selectById(appinfo.getPayId()); + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(appinfo.getPayId()); if (payAccount == null) { throw new MallinkException(ErrorCode.MCH_INFO_NOT_FOUND); } @@ -801,7 +797,7 @@ public class WxPayBillServiceImpl implements WxPayBillService { WxAppinfo appinfoQ = new WxAppinfo(); appinfoQ.setTenantId(bill.get("tenantId").toString()); appinfoQ.setType(EnumAppType.B.getCode()); - List appList = wxAppinfoMapper.selectList(new QueryWrapper(appinfoQ)); + List appList = wxAppinfoService.getList(appinfoQ); if (appList.size() > 0) { appInfo = appList.get(0); } diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java index 7b51fba43..c0cb8937f 100644 --- a/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/SendSmartAppMsgServiceImpl.java @@ -76,7 +76,7 @@ public class SendSmartAppMsgServiceImpl implements MsgSendService { return; } if(0 == msg.getOnOff().intValue()){ - WxAppinfo appInfo = wxAppinfoService.getByAppId(smartAppMsg.getAppId(),tenantEntity.getTenantId()); + WxAppinfo appInfo = wxAppinfoService.getOnlyByAppIdFromRedis(smartAppMsg.getAppId()); if(EnumTemplateType.TT_SEND_COUPON_REMIND.getCode().equals(msg.getType())){ //发抖音 TtMaService ttappService = maUtil.getTtMaService(appInfo); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/refund/douyin/TtRefundAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/refund/douyin/TtRefundAdapterService.java index 88daf18d1..f111864bb 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/refund/douyin/TtRefundAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/refund/douyin/TtRefundAdapterService.java @@ -18,11 +18,12 @@ import com.iformall.enums.EnumPayType; import com.iformall.enums.EnumPayWay; import com.iformall.enums.EnumRefundStatus; import com.iformall.exception.MallinkException; -import com.iformall.mapper.WxAppinfoMapper; import com.iformall.mapper.WxPayAccountMapper; import com.iformall.mapper.WxPayOrderMapper; import com.iformall.mapper.WxRefundOrderMapper; +import com.iformall.service.WxAppinfoService; import com.iformall.service.WxOrderService; +import com.iformall.service.WxPayAccountService; import com.iformall.service.pay.service.refund.RefundPayAdapterService; import com.iformall.service.pay.service.refund.entity.RefundAdapterResult; import com.iformall.service.pay.service.refund.entity.RefundNotifyAdapterResult; @@ -158,9 +159,9 @@ public class TtRefundAdapterService implements RefundPayAdapterService{ } @Autowired - WxAppinfoMapper wxAppinfoMapper; + WxAppinfoService wxAppinfoService; @Autowired - WxPayAccountMapper wxPayAccountMapper; + WxPayAccountService wxPayAccountService; @Autowired WxPayOrderMapper wxPayOrderMapper; @Autowired @@ -194,12 +195,12 @@ public class TtRefundAdapterService implements RefundPayAdapterService{ WxRefundOrder refundOrder = wxRefundOrderMapper.selectById(refundOrderId); String appId = paramMap.get("appid"); - WxAppinfo appinfo = wxAppinfoMapper.findByAppId(appId,tenantId); + WxAppinfo appinfo = wxAppinfoService.getByAppIdFromRedis(appId,tenantId); if (appinfo == null) { log.error("未找到appid信息:" + appId); throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); } - WxPayAccount payAccount = wxPayAccountMapper.selectById(appinfo.getPayId()); + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(appinfo.getPayId()); if (payAccount == null) { log.error("未找到mch_id信息:" + appId); throw new MallinkException(ErrorCode.MCH_INFO_NOT_FOUND); diff --git a/mallinkTTAdmin/src/main/java/com/iformall/controller/sys/HomeController.java b/mallinkTTAdmin/src/main/java/com/iformall/controller/sys/HomeController.java index ce0fece70..ad1266945 100644 --- a/mallinkTTAdmin/src/main/java/com/iformall/controller/sys/HomeController.java +++ b/mallinkTTAdmin/src/main/java/com/iformall/controller/sys/HomeController.java @@ -236,7 +236,7 @@ public class HomeController extends BaseController { logger.error("appid信息未提供"); return new ResultData(ErrorCode.MALL_INFO_NOT_FOUND); } - WxAppinfo appinfo = appinfoService.getByAppId(user.getTenantId()); + WxAppinfo appinfo = appinfoService.getOnlyByAppIdFromRedis(user.getTenantId()); if (appinfo == null) { logger.error("appid未找到"); return new ResultData(ErrorCode.MALL_INFO_NOT_FOUND); diff --git a/mallinkTTCApi/src/main/java/com/iformall/callback/TtOrderCallbackController.java b/mallinkTTCApi/src/main/java/com/iformall/callback/TtOrderCallbackController.java index 6bf87ad9f..f291b1e36 100644 --- a/mallinkTTCApi/src/main/java/com/iformall/callback/TtOrderCallbackController.java +++ b/mallinkTTCApi/src/main/java/com/iformall/callback/TtOrderCallbackController.java @@ -70,8 +70,8 @@ public class TtOrderCallbackController extends BaseController { String appid = (String) pMap.get("appid"); String cp_orderno = (String) pMap.get("cp_orderno");//开发者传入订单号 String way = (String) pMap.get("way");//2-支付宝,1-微信 - WxAppinfo appinfo = appinfoService.getByAppId(appid); - WxPayAccount payAccount = payAccountService.getById(appinfo.getPayId()); + WxAppinfo appinfo = appinfoService.getOnlyByAppIdFromRedis(appid); + WxPayAccount payAccount = payAccountService.getByIdFromRedis(appinfo.getPayId()); Map paramMap = new HashMap<>(); paramMap.put("token",payAccount.getNotifyToken()); paramMap.put("timestamp",timestamp); diff --git a/mallinkTTCApi/src/main/java/com/iformall/controller/TtUserGrantController.java b/mallinkTTCApi/src/main/java/com/iformall/controller/TtUserGrantController.java index df1deb9d2..7ab1a41f3 100644 --- a/mallinkTTCApi/src/main/java/com/iformall/controller/TtUserGrantController.java +++ b/mallinkTTCApi/src/main/java/com/iformall/controller/TtUserGrantController.java @@ -79,7 +79,7 @@ public class TtUserGrantController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "code不能为空"); } - WxAppinfo wxAppinfo = wxAppinfoService.getByAppId(appId); + WxAppinfo wxAppinfo = wxAppinfoService.getOnlyByAppIdFromRedis(appId); if(wxAppinfo == null){ return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } @@ -263,7 +263,7 @@ public class TtUserGrantController extends BaseController { if (user != null) { logger.debug(user.toString()); - WxAppinfo wxAppinfo = wxAppinfoService.getByAppId(user.getAppId()); + WxAppinfo wxAppinfo = wxAppinfoService.getOnlyByAppIdFromRedis(user.getAppId()); TtMaService ttMaService = maUtil.getTtMaService(wxAppinfo); String session_key = user.getSessionKey(); @@ -350,7 +350,7 @@ public class TtUserGrantController extends BaseController { return new ResultData(ErrorCode.USER_IS_EMPTY); } - WxAppinfo wxAppinfo = wxAppinfoService.getByAppId(user.getAppId()); + WxAppinfo wxAppinfo = wxAppinfoService.getOnlyByAppIdFromRedis(user.getAppId()); TtMaService ttMaService = maUtil.getTtMaService(wxAppinfo); String session_key = user.getSessionKey(); From c01d417cdbb0b93d1261f7514c70d9b617ff6906 Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 28 Nov 2022 23:06:44 +0800 Subject: [PATCH 078/144] //app test --- .../interceptor/AuthorizationInterceptor.java | 5 ++--- .../interceptor/AuthorizationInterceptor.java | 12 ------------ .../v1/miniApp/TtMiniAppPayAdapterService.java | 1 + .../refund/douyin/TtRefundAdapterService.java | 1 + 4 files changed, 4 insertions(+), 15 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index d5472cac7..150f90953 100644 --- a/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -101,6 +101,7 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if (buser == null) { throw new MallinkException(ErrorCode.NET_TOKEN_INVALID.getCode(), "URL:" + request.getRequestURL() + " bid失效,请重新登录"); } + if(StringUtils.isNotBlank(mallTenantId)){ tenantId = mallTenantId; WxMall mall = wxMallService.getByTenantId(tenantId); @@ -122,9 +123,7 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { request.setAttribute(Constant.LOGIN_B_USER_KEY, buser.getId()); request.setAttribute(Constant.TENANT_ID, tenantId); - if (StringUtils.isNotBlank(parenTenantId)) { - request.setAttribute(Constant.PARENT_TENANT_ID, parenTenantId); - } + request.setAttribute(Constant.PARENT_TENANT_ID, parenTenantId); //如果是要不需要自动设置tenantI信息 TenantIgnore tenantIgnoreAnnotation = null; diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index a6071ed30..05b2e1a96 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -105,18 +105,6 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { && !tenantId.equals(cUser.getParentTenantId())){ throw new MallinkException(ErrorCode.SYS_AUTH_ERROR); } - -// if (StringUtils.isNotBlank(mallTenantId)) { -// request.setAttribute(Constant.TENANT_ID, mallTenantId); -// request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getTenantId()); -// request.setAttribute(Constant.IS_CHILD_MALL,true); -// }else { -// request.setAttribute(Constant.TENANT_ID, cUser.getTenantId()); -// if (StringUtils.isNotBlank(cUser.getParentTenantId())) { -// request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getParentTenantId()); -// } -// request.setAttribute(Constant.IS_CHILD_MALL,false); -// } request.setAttribute(Constant.TENANT_ID, tenantId); request.setAttribute(Constant.PARENT_TENANT_ID, parenTenantId); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java index 0b098b6c4..ef975ae89 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java @@ -134,6 +134,7 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen pageEntry.setPath(Constant.mainPageUrl); Map paramMap = new HashMap<>(); paramMap.put("type","dt"); + paramMap.put("tenantId",composeOrder.getTenantId()); paramMap.put("orderId",composeOrder.getMainOrderId()); pageEntry.setParams(JSON.toJSONString(paramMap)); request.setOrderEntrySchema(pageEntry); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/refund/douyin/TtRefundAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/refund/douyin/TtRefundAdapterService.java index f111864bb..58d4d06d3 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/refund/douyin/TtRefundAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/refund/douyin/TtRefundAdapterService.java @@ -71,6 +71,7 @@ public class TtRefundAdapterService implements RefundPayAdapterService{ pageEntry.setPath(Constant.mainPageUrl); Map paramMap = new HashMap<>(); paramMap.put("type","dt"); + paramMap.put("tenantId",payOrder.getTenantId()); paramMap.put("orderId",payOrder.getId()); pageEntry.setParams(JSON.toJSONString(paramMap)); request.setOrderEntrySchema(pageEntry); From 4102901a954b28f0a16dd8a6cd7aa0b69322559d Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 29 Nov 2022 15:28:58 +0800 Subject: [PATCH 079/144] //app test --- .../iformall/controller/WxMallController.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java index 53c78dd55..31990d3bc 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java @@ -7,10 +7,13 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumGroupSupport; +import com.iformall.enums.EnumYesOrNo; import com.iformall.service.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -117,6 +120,26 @@ public class WxMallController extends BaseController { return new ResultData(Result.SUCCESS, "查询成功", mall); } + @RedisCache + @ApiOperation("商场信息") + @GetMapping("/subMall") + public ResultData getSubMall(Integer isAll) { + List mallList = new ArrayList<>(); + WxMall mall = wxMallService.getByTenantInfo(getTenantInfo()); + if (mall == null) { + return new ResultData(ErrorCode.MALL_INFO_NOT_FOUND); + } + if(EnumYesOrNo.YES.getCode().equals(isAll)){ + mallList.add(mall); + } + if (mall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode()) && + StringUtils.isBlank(mall.getParentTenantId())) { + List subMall = wxMallService.getSubByParentTenantId(mall.getTenantId()); + mallList.addAll(subMall); + } + return new ResultData(Result.SUCCESS, "查询成功", mallList); + } + @ApiOperation("成长值相关信息") @GetMapping("/scoreLevelInfo") public ResultData getScoreLevelInfo() { From fe2716618a3cb36d03844cf66fa09cd7f3117212 Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 29 Nov 2022 16:01:20 +0800 Subject: [PATCH 080/144] //app test --- .../controller/WxMerchantController.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java index 3ae93e76f..d28f550e8 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java @@ -1,5 +1,6 @@ package com.iformall.controller; +import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.domain.dto.WxMerchantDto; @@ -48,6 +49,23 @@ public class WxMerchantController extends BaseController { return new ResultData(wxMerchantService.listAsPageCVo(wxMerchantDto, pageNum, pageSize,true)); } + @TenantIgnore + @ApiOperation("分页列表接口") + @GetMapping("parentList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + public ResultData parentList(@ModelAttribute WxMerchantDto wxMerchantDto, Integer pageNum, Integer pageSize) { + logger.debug("[" + getIpAddr() + "] WxMerchantController::list"); + if (null == wxMerchantDto) wxMerchantDto = new WxMerchantDto(); +// wxMerchantDto.updateTenantInfo(getTenantInfo()); + wxMerchantDto.setParentTenantId(getTenantInfo().getTenantId()); + wxMerchantDto.setMerchantStatus(EnumMerchantStatus.VALID.getCode()); + wxMerchantDto.setIsPublic(EnumMerchantPublic.PUBLIC.getCode()); + wxMerchantDto.setIsPrivate(EnumYesOrNo.NO.getCode()); + return new ResultData(wxMerchantService.listAsPageCVo(wxMerchantDto, pageNum, pageSize,true)); + } + @ApiOperation("查询资质信息") @GetMapping("/findCorp") @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) From 1c60a046df1cc379364926616756eb227f8ea468 Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 29 Nov 2022 16:33:14 +0800 Subject: [PATCH 081/144] //app test --- .../basic/WxMerchantController.java | 20 +++++++++++++++++++ .../controller/WxMerchantController.java | 17 ---------------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java index c19975d8d..c9eced3e8 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java @@ -107,6 +107,26 @@ public class WxMerchantController extends BaseController { return new ResultData(page); } + @TenantIgnore + @ApiOperation("分页列表接口") + @GetMapping("parentList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true), + }) + @SystemControllerLog(description = "商户-列表") + public ResultData parentList(@ModelAttribute WxMerchant wxMerchant, Integer pageNum, Integer pageSize) { + logger.debug("[" + getIpAddr() + "] WxMerchantController::parentList"); + if (null == wxMerchant) wxMerchant = new WxMerchant(); + String tenantId = getUser().getTenantId(); +// wxMerchant.updateTenantInfo(getTenantInfo()); + wxMerchant.setParentTenantId(tenantId); + wxMerchant.setSortColumns(BaseEntity.SortField.TopTime_DESC); + wxMerchant.setIsPrivate(EnumYesOrNo.NO.getCode()); + final PageInfo page = wxMerchantService.listAsPage(wxMerchant, pageNum, pageSize); + return new ResultData(page); + } + @ApiOperation("获取商管商户") @GetMapping("adminMerchantOne") @SystemControllerLog(description = "商户-列表") diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java index d28f550e8..e7f84647b 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java @@ -49,23 +49,6 @@ public class WxMerchantController extends BaseController { return new ResultData(wxMerchantService.listAsPageCVo(wxMerchantDto, pageNum, pageSize,true)); } - @TenantIgnore - @ApiOperation("分页列表接口") - @GetMapping("parentList") - @ApiImplicitParams({ - @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), - @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) - public ResultData parentList(@ModelAttribute WxMerchantDto wxMerchantDto, Integer pageNum, Integer pageSize) { - logger.debug("[" + getIpAddr() + "] WxMerchantController::list"); - if (null == wxMerchantDto) wxMerchantDto = new WxMerchantDto(); -// wxMerchantDto.updateTenantInfo(getTenantInfo()); - wxMerchantDto.setParentTenantId(getTenantInfo().getTenantId()); - wxMerchantDto.setMerchantStatus(EnumMerchantStatus.VALID.getCode()); - wxMerchantDto.setIsPublic(EnumMerchantPublic.PUBLIC.getCode()); - wxMerchantDto.setIsPrivate(EnumYesOrNo.NO.getCode()); - return new ResultData(wxMerchantService.listAsPageCVo(wxMerchantDto, pageNum, pageSize,true)); - } - @ApiOperation("查询资质信息") @GetMapping("/findCorp") @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) From ef7580666c8ebfa4b34c32a6f0336e804be9c5b6 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 30 Nov 2022 11:37:07 +0800 Subject: [PATCH 082/144] //coupon --- .../java/com/iformall/service/impl/WxCouponServiceImpl.java | 6 ++++++ 1 file changed, 6 insertions(+) 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 795ab742c..66f2e02ef 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -727,8 +727,11 @@ public class WxCouponServiceImpl implements WxCouponService { throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),"所属商户为空"); } Map retMap = new HashMap(); + String[] mallTenantIds = new String[tenantMerchantParamList.size()]; + int i = 0; for (JSONObject o:tenantMerchantParamList) { String mallTenantId = o.getString("tenantId"); + mallTenantIds[i] = mallTenantId; String mallParentTenantId = record.getTenantId(); String mallMerchantParams = o.getString("mallMerchantParams"); TenantEntity mallTenantEntity = new TenantEntity(); @@ -739,7 +742,9 @@ public class WxCouponServiceImpl implements WxCouponService { record.setBusiness(EnumBusiness.BUSINESS_ID6.getCode()); } retMap.put(mallTenantEntity, mallMerchantParams); + i++; } + record.setMallTenantIds(mallTenantIds); return retMap; }else { if (check) { @@ -755,6 +760,7 @@ public class WxCouponServiceImpl implements WxCouponService { TenantEntity tenantEntity = new TenantEntity(); tenantEntity.updateTenantInfo(record); retMap.put(tenantEntity, record.getMerchantParams()); + record.setMallTenantIds(new String[]{tenantEntity.getTenantId()}); return retMap; } } From 4cbe9f4f13275d1945d4c05f16d4a091eea51af0 Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 30 Nov 2022 14:10:02 +0800 Subject: [PATCH 083/144] fix bug --- .../controller/base/BaseController.java | 2 -- .../interceptor/CurrentTenantInterceptor.java | 15 ------------- .../controller/WxCouponOrderController.java | 22 ++++++++++--------- .../iformall/domain/po/base/TenantEntity.java | 12 ---------- .../java/com/iformall/utils/Constant.java | 1 - 5 files changed, 12 insertions(+), 40 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java b/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java index f47828646..9c7937a22 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java @@ -75,11 +75,9 @@ public class BaseController { Session session = SecurityUtils.getSubject().getSession(); String tenantId = (String)session.getAttribute(UserSession.tenantId); String parentTenantId = (String)session.getAttribute(UserSession.parentTenantId); - boolean isChildMall = (boolean)session.getAttribute(Constant.IS_CHILD_MALL); TenantEntity tenantEntity = new TenantEntity(); tenantEntity.setTenantId(tenantId); tenantEntity.setParentTenantId(parentTenantId); - tenantEntity.setChildMall(isChildMall); return tenantEntity; } diff --git a/mallinkAdmin/src/main/java/com/iformall/interceptor/CurrentTenantInterceptor.java b/mallinkAdmin/src/main/java/com/iformall/interceptor/CurrentTenantInterceptor.java index 7c85bd068..466c7a151 100644 --- a/mallinkAdmin/src/main/java/com/iformall/interceptor/CurrentTenantInterceptor.java +++ b/mallinkAdmin/src/main/java/com/iformall/interceptor/CurrentTenantInterceptor.java @@ -24,23 +24,8 @@ public class CurrentTenantInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - //集团版中针对某一商场的业务需要传递mallTenantId - String mallTenantId = request.getHeader("mallTenantId"); - if(StringUtils.isBlank(mallTenantId)){ - mallTenantId = request.getParameter("mallTenantId"); - } String tenantId = (String)request.getSession().getAttribute(UserSession.tenantId); String parenTenantId = (String)request.getSession().getAttribute(UserSession.parentTenantId); - boolean isChildMall = false; -// if (StringUtils.isNotBlank(mallTenantId) && (!mallTenantId.equals(tenantId))) { -// parenTenantId = tenantId; -// tenantId = mallTenantId; -// isChildMall = true; -// } -// request.getSession().setAttribute(UserSession.tenantId,tenantId); -// request.getSession().setAttribute(UserSession.parentTenantId,parenTenantId); - request.getSession().setAttribute(Constant.IS_CHILD_MALL,isChildMall); - TenantThreadLocal.setCurrentThreadTenant(tenantId, parenTenantId); diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index d3586c369..a53339b1f 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -285,7 +285,7 @@ public class WxCouponOrderController extends BaseController { } @TenantIgnore - @ApiOperation(value = "核销接口", notes = "{\"couponOrderId\":\"string\"}") + @ApiOperation(value = "核销接口", notes = "{\"couponOrderId\":\"string\",\"couponTenantId\":\"string\"}") @PostMapping("verify") public ResultData verify(@RequestBody Map paramMap) { logger.info("couponOrderController.verify:" + paramMap.toString()); @@ -319,14 +319,16 @@ public class WxCouponOrderController extends BaseController { TenantEntity tenantEntity = getTenantInfo(); WxCouponOrderCVo wxCouponOrderCVo = null; - if (tenantEntity.isChildMall()) { - //查询父 - TenantEntity parentTenant = new TenantEntity(); - parentTenant.setTenantId(tenantEntity.getParentTenantId()); - parentTenant.setParentTenantId(null); - wxCouponOrderCVo = wxCouponOrderService.detailCUserVo(couponOrderIdStr,parentTenant); - }else { + String couponTenantId = paramMap.get("couponTenantId"); + TenantEntity parentTenantEntity = null; + if (StringUtils.isBlank(couponTenantId) || "null".equals(couponTenantId) || "NULL".equals(couponTenantId)) { wxCouponOrderCVo = wxCouponOrderService.detailCUserVo(couponOrderIdStr,tenantEntity); + }else { + //查询父 + parentTenantEntity = new TenantEntity(); + parentTenantEntity.setTenantId(couponTenantId); + parentTenantEntity.setParentTenantId(null); + wxCouponOrderCVo = wxCouponOrderService.detailCUserVo(couponOrderIdStr,parentTenantEntity); } if (wxCouponOrderCVo == null) @@ -368,8 +370,8 @@ public class WxCouponOrderController extends BaseController { } WxCouponOrder wxCouponOrder = null; - if (tenantEntity.isChildMall()) { - wxCouponOrder = wxCouponOrderService.getById(couponOrderId,tenantEntity.getParentTenantId()); + if (null != parentTenantEntity ) { + wxCouponOrder = wxCouponOrderService.getById(couponOrderId,parentTenantEntity.getTenantId()); }else { wxCouponOrder = wxCouponOrderService.getById(couponOrderId,tenantEntity.getTenantId()); } 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 c51c796aa..74ce9e6f9 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 @@ -27,10 +27,6 @@ public class TenantEntity extends BaseEntity { @TableField(exist = false) protected String finalTenantId; - @io.swagger.annotations.ApiModelProperty(value="是否是集团统一小程序版本下的子广场",name="isChildMall") - @TableField(exist = false) - protected boolean isChildMall; - @JsonIgnore @TableField(exist = false) protected String shardTableSuffix; @@ -102,12 +98,4 @@ public class TenantEntity extends BaseEntity { this.tenantIdList = tenantIdList; } - public boolean isChildMall() { - return isChildMall; - } - - public void setChildMall(boolean isChildMall) { - this.isChildMall = isChildMall; - } - } diff --git a/mallinkService/src/main/java/com/iformall/utils/Constant.java b/mallinkService/src/main/java/com/iformall/utils/Constant.java index 59a024188..d5b8c76ca 100644 --- a/mallinkService/src/main/java/com/iformall/utils/Constant.java +++ b/mallinkService/src/main/java/com/iformall/utils/Constant.java @@ -64,7 +64,6 @@ public class Constant { public static final String APP_Id = "APP_Id"; public static final String APP_NAME = "APP_NAME"; public static final String APP_INFO = "APPINFO"; - public static final String IS_CHILD_MALL = "IS_CHILD_MALL"; public static final String LOGIN_B_USER_KEY = "LOGIN_B_USER_KEY"; From 5cc522758e11090d1fc569c18fcec6537062c55f Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 30 Nov 2022 14:56:23 +0800 Subject: [PATCH 084/144] fix bug --- .../controller/WxCouponOrderController.java | 65 +++++++++++++++---- .../com/iformall/domain/po/WxCouponOrder.java | 3 + 2 files changed, 57 insertions(+), 11 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index a53339b1f..f2c86d1f5 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -154,12 +154,14 @@ public class WxCouponOrderController extends BaseController { } + @TenantIgnore @ApiOperation(value = "卡券详情接口") @GetMapping("detail") @ApiImplicitParams({ - @ApiImplicitParam(name = "couponOrderId", value = "券ID", dataType = "string", paramType = "query", required = true) + @ApiImplicitParam(name = "couponOrderId", value = "券ID", dataType = "string", paramType = "query", required = true), + @ApiImplicitParam(name = "couponTenantId", value = "券tenantID", dataType = "string", paramType = "query", required = false) }) - public ResultData detail(String couponOrderId) { + public ResultData detail(String couponOrderId,String couponTenantId) { logger.info("couponOrderController.detail:" + couponOrderId); @@ -193,8 +195,16 @@ public class WxCouponOrderController extends BaseController { throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND); } WxCouponOrderCVo wxCouponOrderCVo = null; + TenantEntity parentTenantEntity = null; + if (StringUtils.isBlank(couponTenantId) || "null".equals(couponTenantId) || "NULL".equals(couponTenantId)) { + parentTenantEntity = getTenantInfo(); + }else { + parentTenantEntity = new TenantEntity(); + parentTenantEntity.setTenantId(couponTenantId); + parentTenantEntity.setParentTenantId(null); + } try { - wxCouponOrderCVo = wxCouponOrderService.simpleDetailCUserVo(couponOrderId,wxMerchant); + wxCouponOrderCVo = wxCouponOrderService.simpleDetailCUserVo(couponOrderId,parentTenantEntity); } catch (Exception e) { return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); } @@ -239,18 +249,28 @@ public class WxCouponOrderController extends BaseController { return new ResultData(wxCouponOrderCVo); } + @TenantIgnore @ApiOperation(value = "卡券富文本接口") @GetMapping("html") @ApiImplicitParams({ - @ApiImplicitParam(name = "couponOrderId", value = "券ID", dataType = "string", paramType = "query", required = true) + @ApiImplicitParam(name = "couponOrderId", value = "券ID", dataType = "string", paramType = "query", required = true), + @ApiImplicitParam(name = "couponTenantId", value = "券tenantID", dataType = "string", paramType = "query", required = false) }) - public ResultData getHtml(String couponOrderId) { + public ResultData getHtml(String couponOrderId,String couponTenantId) { if (couponOrderId == null) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } + TenantEntity parentTenantEntity = null; + if (StringUtils.isBlank(couponTenantId) || "null".equals(couponTenantId) || "NULL".equals(couponTenantId)) { + parentTenantEntity = getTenantInfo(); + }else { + parentTenantEntity = new TenantEntity(); + parentTenantEntity.setTenantId(couponTenantId); + parentTenantEntity.setParentTenantId(null); + } WxCouponOrderCVo wxCouponOrderCVo = null; try { - wxCouponOrderCVo = wxCouponOrderService.simpleDetailCUserVo(couponOrderId,getTenantInfo()); + wxCouponOrderCVo = wxCouponOrderService.simpleDetailCUserVo(couponOrderId,parentTenantEntity); } catch (Exception e) { return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); } @@ -409,8 +429,8 @@ public class WxCouponOrderController extends BaseController { return new ResultData(couponOrder); } - - @ApiOperation(value = "根据couponOrderId查询接口", notes = "{\"couponOrderId\":\"string\"}") + @TenantIgnore + @ApiOperation(value = "根据couponOrderId查询接口", notes = "{\"couponOrderId\":\"string\",\"couponTenantId\":\"string\"}") @PostMapping("/findById") public ResultData findById(@RequestBody Map paramMap) { logger.info(paramMap.toString()); @@ -427,7 +447,18 @@ public class WxCouponOrderController extends BaseController { logger.error("couponOrderId参数不正确: " + paramMap.toString()); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } - return new ResultData(Result.SUCCESS, "查询成功", wxCouponOrderService.getById(couponOrderId,getTenantInfo().getTenantId())); + String couponTenantId = paramMap.get("couponTenantId"); + TenantEntity parentTenantEntity = null; + if (StringUtils.isBlank(couponTenantId) || "null".equals(couponTenantId) || "NULL".equals(couponTenantId)) { + parentTenantEntity = getTenantInfo(); + }else { + //查询父 + parentTenantEntity = new TenantEntity(); + parentTenantEntity.setTenantId(couponTenantId); + parentTenantEntity.setParentTenantId(null); + } + + return new ResultData(Result.SUCCESS, "查询成功", wxCouponOrderService.getById(couponOrderId,parentTenantEntity.getTenantId())); } @ApiOperation(value = "核销接口", notes = "{\"couponOrderId\":\"string\"}") @@ -441,7 +472,7 @@ public class WxCouponOrderController extends BaseController { return new ResultData(); } - @ApiOperation(value = "商品发货", notes = "{\"id\":\"string\", \"deliveryInfo\":\"jsonString\"}") + @ApiOperation(value = "商品发货", notes = "{\"id\":\"string\", \"deliveryInfo\":\"jsonString\",\"couponTenantId\":\"string\"}") @PostMapping("/sendGoods") public ResultData sendGoods(@RequestBody WxCouponOrder wxCouponOrder) { logger.debug("[" + getIpAddr() + "] WxCouponPasswordController::postpone"); @@ -450,7 +481,19 @@ public class WxCouponOrderController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } try { - WxCouponOrder couponOrder = wxCouponOrderService.getById(wxCouponOrder.getId(), getTenantInfo().getTenantId()); + + String couponTenantId = wxCouponOrder.getCouponTenantId(); + TenantEntity parentTenantEntity = null; + if (StringUtils.isBlank(couponTenantId) || "null".equals(couponTenantId) || "NULL".equals(couponTenantId)) { + parentTenantEntity = getTenantInfo(); + }else { + //查询父 + parentTenantEntity = new TenantEntity(); + parentTenantEntity.setTenantId(couponTenantId); + parentTenantEntity.setParentTenantId(null); + } + + WxCouponOrder couponOrder = wxCouponOrderService.getById(wxCouponOrder.getId(), parentTenantEntity.getTenantId()); if(couponOrder==null){ return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java index e6b5c938f..fdd8a94a4 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java @@ -199,5 +199,8 @@ public class WxCouponOrder extends TenantEntity { @TableField(exist = false) private List shippingStatuss; + + @TableField(exist = false) + private String couponTenantId; } From 45cd8ee9d6157470163f99813a554acd0a7636df Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 30 Nov 2022 15:05:34 +0800 Subject: [PATCH 085/144] fix bug --- .../controller/WxCouponOrderController.java | 87 ++++++------------- 1 file changed, 28 insertions(+), 59 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index f2c86d1f5..c4a0bff2a 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -154,6 +154,23 @@ public class WxCouponOrderController extends BaseController { } + private TenantEntity getCouponOrderTenantEntity(String couponTenantId) { + TenantEntity curTenantEntity = getTenantInfo(); + TenantEntity couponOrderTenantEntity = null; + if (StringUtils.isBlank(couponTenantId) || "null".equals(couponTenantId) || "NULL".equals(couponTenantId)) { + couponOrderTenantEntity = curTenantEntity; + }else { + if (curTenantEntity.getTenantId().equals(couponTenantId)) { + couponOrderTenantEntity = curTenantEntity; + }else { + couponOrderTenantEntity = new TenantEntity(); + couponOrderTenantEntity.setTenantId(couponTenantId); + couponOrderTenantEntity.setParentTenantId(null); + } + } + return couponOrderTenantEntity; + } + @TenantIgnore @ApiOperation(value = "卡券详情接口") @GetMapping("detail") @@ -195,16 +212,9 @@ public class WxCouponOrderController extends BaseController { throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND); } WxCouponOrderCVo wxCouponOrderCVo = null; - TenantEntity parentTenantEntity = null; - if (StringUtils.isBlank(couponTenantId) || "null".equals(couponTenantId) || "NULL".equals(couponTenantId)) { - parentTenantEntity = getTenantInfo(); - }else { - parentTenantEntity = new TenantEntity(); - parentTenantEntity.setTenantId(couponTenantId); - parentTenantEntity.setParentTenantId(null); - } + TenantEntity couponOrderTenantEntity = getCouponOrderTenantEntity(couponTenantId); try { - wxCouponOrderCVo = wxCouponOrderService.simpleDetailCUserVo(couponOrderId,parentTenantEntity); + wxCouponOrderCVo = wxCouponOrderService.simpleDetailCUserVo(couponOrderId,couponOrderTenantEntity); } catch (Exception e) { return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); } @@ -260,17 +270,10 @@ public class WxCouponOrderController extends BaseController { if (couponOrderId == null) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } - TenantEntity parentTenantEntity = null; - if (StringUtils.isBlank(couponTenantId) || "null".equals(couponTenantId) || "NULL".equals(couponTenantId)) { - parentTenantEntity = getTenantInfo(); - }else { - parentTenantEntity = new TenantEntity(); - parentTenantEntity.setTenantId(couponTenantId); - parentTenantEntity.setParentTenantId(null); - } + TenantEntity couponOrderTenantEntity = getCouponOrderTenantEntity(couponTenantId); WxCouponOrderCVo wxCouponOrderCVo = null; try { - wxCouponOrderCVo = wxCouponOrderService.simpleDetailCUserVo(couponOrderId,parentTenantEntity); + wxCouponOrderCVo = wxCouponOrderService.simpleDetailCUserVo(couponOrderId,couponOrderTenantEntity); } catch (Exception e) { return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); } @@ -336,21 +339,10 @@ public class WxCouponOrderController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } - TenantEntity tenantEntity = getTenantInfo(); - WxCouponOrderCVo wxCouponOrderCVo = null; String couponTenantId = paramMap.get("couponTenantId"); - TenantEntity parentTenantEntity = null; - if (StringUtils.isBlank(couponTenantId) || "null".equals(couponTenantId) || "NULL".equals(couponTenantId)) { - wxCouponOrderCVo = wxCouponOrderService.detailCUserVo(couponOrderIdStr,tenantEntity); - }else { - //查询父 - parentTenantEntity = new TenantEntity(); - parentTenantEntity.setTenantId(couponTenantId); - parentTenantEntity.setParentTenantId(null); - wxCouponOrderCVo = wxCouponOrderService.detailCUserVo(couponOrderIdStr,parentTenantEntity); - } - + TenantEntity couponOrderTenantEntity = getCouponOrderTenantEntity(couponTenantId); + wxCouponOrderCVo = wxCouponOrderService.detailCUserVo(couponOrderIdStr,couponOrderTenantEntity); if (wxCouponOrderCVo == null) return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); @@ -389,12 +381,7 @@ public class WxCouponOrderController extends BaseController { } } - WxCouponOrder wxCouponOrder = null; - if (null != parentTenantEntity ) { - wxCouponOrder = wxCouponOrderService.getById(couponOrderId,parentTenantEntity.getTenantId()); - }else { - wxCouponOrder = wxCouponOrderService.getById(couponOrderId,tenantEntity.getTenantId()); - } + WxCouponOrder wxCouponOrder = wxCouponOrderService.getById(couponOrderId,couponOrderTenantEntity.getTenantId()); if (wxCouponOrder == null) { logger.error("券ID不存在:" + couponOrderId); return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); @@ -448,17 +435,8 @@ public class WxCouponOrderController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } String couponTenantId = paramMap.get("couponTenantId"); - TenantEntity parentTenantEntity = null; - if (StringUtils.isBlank(couponTenantId) || "null".equals(couponTenantId) || "NULL".equals(couponTenantId)) { - parentTenantEntity = getTenantInfo(); - }else { - //查询父 - parentTenantEntity = new TenantEntity(); - parentTenantEntity.setTenantId(couponTenantId); - parentTenantEntity.setParentTenantId(null); - } - - return new ResultData(Result.SUCCESS, "查询成功", wxCouponOrderService.getById(couponOrderId,parentTenantEntity.getTenantId())); + TenantEntity couponOrderTenantEntity = getCouponOrderTenantEntity(couponTenantId); + return new ResultData(Result.SUCCESS, "查询成功", wxCouponOrderService.getById(couponOrderId,couponOrderTenantEntity.getTenantId())); } @ApiOperation(value = "核销接口", notes = "{\"couponOrderId\":\"string\"}") @@ -483,17 +461,8 @@ public class WxCouponOrderController extends BaseController { try { String couponTenantId = wxCouponOrder.getCouponTenantId(); - TenantEntity parentTenantEntity = null; - if (StringUtils.isBlank(couponTenantId) || "null".equals(couponTenantId) || "NULL".equals(couponTenantId)) { - parentTenantEntity = getTenantInfo(); - }else { - //查询父 - parentTenantEntity = new TenantEntity(); - parentTenantEntity.setTenantId(couponTenantId); - parentTenantEntity.setParentTenantId(null); - } - - WxCouponOrder couponOrder = wxCouponOrderService.getById(wxCouponOrder.getId(), parentTenantEntity.getTenantId()); + TenantEntity couponOrderTenantEntity = getCouponOrderTenantEntity(couponTenantId); + WxCouponOrder couponOrder = wxCouponOrderService.getById(wxCouponOrder.getId(), couponOrderTenantEntity.getTenantId()); if(couponOrder==null){ return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); } From a434717f4218f10b67d71a0bb2873ebee159734e Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 30 Nov 2022 18:51:59 +0800 Subject: [PATCH 086/144] fix bug --- .../com/iformall/controller/WxCouponOrderController.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index 94e6adcaf..327e90c73 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -208,9 +208,10 @@ public class WxCouponOrderController extends BaseController { @ApiOperation(value = "手动核销方式,获取动态id") @GetMapping("dynamicId") @ApiImplicitParams({ - @ApiImplicitParam(name = "couponOrderId", value = "券ID", dataType = "string", paramType = "query", required = true) + @ApiImplicitParam(name = "couponOrderId", value = "券ID", dataType = "string", paramType = "query", required = true), + @ApiImplicitParam(name = "couponTenantId", value = "券tenantID", dataType = "string", paramType = "query", required = false) }) - public ResultData dynamicId(String couponOrderId) { + public ResultData dynamicId(String couponOrderId,String couponTenantId) { if (StringUtils.isBlank(couponOrderId) || couponOrderId.equalsIgnoreCase(Constant.UNDEFINED)) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); @@ -224,6 +225,7 @@ public class WxCouponOrderController extends BaseController { Map retmap = new HashMap(); retmap.put("dynamicId", WxCouponOrderCVo.calcuteExpiredCouponOrderId(couponOrderId,Integer.parseInt(sysConfig.getConfigItemValue()))); retmap.put("expiredSeconds", Integer.parseInt(sysConfig.getConfigItemValue())); + retmap.put("couponTenantId", couponTenantId); return new ResultData(retmap); } From 06502f7b47f18da13e32358b45f7bc11b3e81f7e Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 30 Nov 2022 19:15:31 +0800 Subject: [PATCH 087/144] //coupon --- .../com/iformall/interceptor/AuthorizationInterceptor.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index 05b2e1a96..f00c5c386 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -129,11 +129,7 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if(tenantIgnoreAnnotation != null){ TenantThreadLocal.remove(); }else { - if (StringUtils.isBlank(mallTenantId)) { - TenantThreadLocal.setCurrentThreadTenant(cUser.getTenantId(), cUser.getParentTenantId()); - }else { - TenantThreadLocal.setCurrentThreadTenant(mallTenantId, cUser.getTenantId()); - } + TenantThreadLocal.setCurrentThreadTenant(mallTenantId, parenTenantId); } return true; From e909f142613da3d121c1f0b9e8e3af935d030546 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 30 Nov 2022 20:22:51 +0800 Subject: [PATCH 088/144] //coupon --- .../java/com/iformall/interceptor/AuthorizationInterceptor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index f00c5c386..b24b91487 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -129,7 +129,7 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if(tenantIgnoreAnnotation != null){ TenantThreadLocal.remove(); }else { - TenantThreadLocal.setCurrentThreadTenant(mallTenantId, parenTenantId); + TenantThreadLocal.setCurrentThreadTenant(tenantId, parenTenantId); } return true; From 444ccf99d2c5f22d24ea7d664180a644ae2ba524 Mon Sep 17 00:00:00 2001 From: winter Date: Fri, 2 Dec 2022 19:03:36 +0800 Subject: [PATCH 089/144] fix bug --- .../java/com/iformall/service/impl/WxCouponServiceImpl.java | 6 ++++++ 1 file changed, 6 insertions(+) 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 66f2e02ef..c3c44cfff 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -590,6 +590,9 @@ public class WxCouponServiceImpl implements WxCouponService { record.setCreateDate(new Date()); record.setUpdateDate(new Date()); + if (null == record.getBusiness()) { + record.setBusiness(EnumBusiness.BUSINESS_ID6.getCode()); + } wxCouponMapper.insert(record); } else { @@ -662,6 +665,9 @@ public class WxCouponServiceImpl implements WxCouponService { } record.setUpdateDate(new Date()); + if (null == record.getBusiness()) { + record.setBusiness(EnumBusiness.BUSINESS_ID6.getCode()); + } wxCouponMapper.updateById(record); } From 7d8650657953234d030958de6a7ed3b18c7ce5c9 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 3 Dec 2022 01:06:19 +0800 Subject: [PATCH 090/144] //coupon --- .../controller/market/WxCouponController.java | 1 + .../service/impl/WxCouponServiceImpl.java | 208 ++++++++++++++---- 2 files changed, 171 insertions(+), 38 deletions(-) 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 562779b30..13c671b59 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -415,6 +415,7 @@ public class WxCouponController extends BaseController { return new ResultData(Result.SUCCESS, "删除成功", null); } + @TenantIgnore @ApiOperation("根据id查询接口") @GetMapping("/findById") @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) 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 66f2e02ef..951a7e5c1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -365,16 +365,9 @@ public class WxCouponServiceImpl implements WxCouponService { if(wxCouponCVo == null){ return null; } - List couponIdList = new ArrayList(); - couponIdList.add(wxCouponCVo.getId()); - Map> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIdList, mallTenantEntity,true); - List merchantList = couponMerchantVoMap.get(wxCouponCVo.getId()); - if (merchantList != null) { - merchantList = merchantList.stream().filter( - m->m.getMerchantStatus().equals(EnumMerchantStatus.VALID.getCode())) - .collect(toList()); - } + List merchantList = getMerchantVoList(wxCouponCVo, wxCouponCVo.getId(), wxCouponCVo.getType()); + wxCouponCVo.setMerchantVoList(merchantList); if(EnumCouponType.COUPON_GIFT.getCode().equals(wxCouponCVo.getType())){ WxCoupon coupon = new WxCoupon(); @@ -389,6 +382,26 @@ public class WxCouponServiceImpl implements WxCouponService { return wxCouponCVo; } + private List getMerchantVoList(TenantEntity couponTenant,Long couponId,Integer couponType){ + if (EnumCouponType.isParentCoupon(couponType)){ + WxCouponMall couponMall = new WxCouponMall(); + couponMall.updateTenantInfo(couponTenant); + couponMall.setProductId(couponId); + couponMall.setStatus(EnumCouponMallStatus.FINISED.getCode()); + List couponMallList = wxCouponMallMapper.findList(couponMall); + List merchantVoList = new ArrayList<>(); + if (null != couponMallList && couponMallList.size()> 0 ) { + for (WxCouponMall cm:couponMallList) { + WxMall mall = wxMallMapper.getByTenantId(cm.getMallTenantId()); + merchantVoList.addAll(getCouponMerchantList(couponId, mall)); + } + } + return merchantVoList; + }else{ + return getCouponMerchantList(couponId,couponTenant); + } + } + @Override public WxCouponCVo getVoStatusById(Long id,String tenantId) { WxCouponCVo wxCouponCVo = wxCouponMapper.findVoStatusDetail(id,tenantId); @@ -524,6 +537,9 @@ public class WxCouponServiceImpl implements WxCouponService { if(Result.SUCCESS != giftResult.code){ return giftResult; } + + //判断直连检查收款帐号(必须),总分模式直接收款到小程序的收款帐号 + checkCouponMakeMerchant(record); //平台券先不设置商户 Map tenantMerchantMap = null; @@ -719,6 +735,9 @@ public class WxCouponServiceImpl implements WxCouponService { * 父券对应子商场商户 */ if (EnumCouponType.isParentCoupon(record.getType())) { + if(EnumCouponType.COUPON_DOUYIN_BRAND.getCode().equals(record.getType())){ + handCouponMerchantParams(record); + } if (StringUtils.isBlank(record.getChildMerchantParams())){ throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),"所属商户为空"); } @@ -764,6 +783,37 @@ public class WxCouponServiceImpl implements WxCouponService { return retMap; } } + + private void handCouponMerchantParams(WxCoupon record){ + List merchantParamList = JSONObject.parseArray(record.getMerchantParams(), JSONObject.class); + if(merchantParamList == null || merchantParamList.isEmpty()){ + throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),"所属商户为空"); + } + + Map> map = new HashMap<>(); + for (JSONObject o:merchantParamList) { + String tenantId = o.getString("tenantId"); + if(StringUtils.isBlank(tenantId)){ + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"参数传递异常"); + } + List merchantParams = map.get(tenantId); + if(merchantParams == null){ + merchantParams = new ArrayList<>(); + } + merchantParams.add(o); + map.put(tenantId,merchantParams); + } + + List childMerchantParams = new ArrayList<>(); + for (Iterator it = map.keySet().iterator();it.hasNext();) { + JSONObject object = new JSONObject(); + String tenantId = it.next(); + object.put("tenantId",tenantId); + object.put("mallMerchantParams",map.get(tenantId)); + childMerchantParams.add(object); + } + record.setChildMerchantParams(JSON.toJSONString(childMerchantParams)); + } private List checkCouponOneMallMerchantReceiver(TenantEntity mallTenantEntity,String merchantParams,WxCoupon record) throws Exception { List merchantParamList = JSONObject.parseArray(merchantParams, JSONObject.class); @@ -820,32 +870,34 @@ public class WxCouponServiceImpl implements WxCouponService { PayShareAdapterService payShareServie = payServiceFactory.getPayShareAdapterService(payWay.getCode(),payAccount.getPayVersion()); if (EnumPayMchType.DIRECT.equals(payMchType)) { - WxMerchant makeMerchant = getDirectPayAccountMerchant(merchantList,record); - if (null == makeMerchant) { - throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "没有收款商户"); - } - record.setMakeMerchantId(makeMerchant.getId()); - WxProfitSharingReceiver receiver = payShareServie.getReceiver(makeMerchant, makeMerchant.getId(), null, payMchType.getCode()); - - if (receiver == null) { - throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "[\""+makeMerchant.getName()+"\"]未配置收款账户"); - } + //多商户券,抖音 直连 门店只有进件支付宝才能参加活动 todo + +// WxMerchant makeMerchant = getDirectPayAccountMerchant(merchantList,record); +// if (null == makeMerchant) { +// throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "没有收款商户"); +// } +// record.setMakeMerchantId(makeMerchant.getId()); +// WxProfitSharingReceiver receiver = payShareServie.getReceiver(makeMerchant, makeMerchant.getId(), null, payMchType.getCode()); +// +// if (receiver == null) { +// throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "[\""+makeMerchant.getName()+"\"]未配置收款账户"); +// } //如果是直连,抖音,多商户券必须只配置支付宝 - if (EnumAppPlat.TOUTIAO.equals(plat)) { - if (merchantList.size() > 1 ) { - if (MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus()) && - !MerchantImportStatus.improt_success.getCode().equals(receiver.getWxImportStatus()) ) { - }else { - throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "[\""+makeMerchant.getName()+"\"]配置收款账户错误,多商户券主收款账户不能配置微信."); - } - }else { - if (!MerchantImportStatus.improt_success.getCode().equals(receiver.getWxImportStatus()) - && !MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus()) - && !MerchantImportStatus.improt_success.getCode().equals(receiver.getHzImportStatus())) { - throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "[\""+makeMerchant.getName()+"\"]未配置收款账户"); - } - } - } +// if (EnumAppPlat.TOUTIAO.equals(plat)) { +// if (merchantList.size() > 1 ) { +// if (MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus()) && +// !MerchantImportStatus.improt_success.getCode().equals(receiver.getWxImportStatus()) ) { +// }else { +// throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "[\""+makeMerchant.getName()+"\"]配置收款账户错误,多商户券主收款账户不能配置微信."); +// } +// }else { +// if (!MerchantImportStatus.improt_success.getCode().equals(receiver.getWxImportStatus()) +// && !MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus()) +// && !MerchantImportStatus.improt_success.getCode().equals(receiver.getHzImportStatus())) { +// throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "[\""+makeMerchant.getName()+"\"]未配置收款账户"); +// } +// } +// } } else if (EnumPayShare.YES.equals(isShare)) { List badNames = new ArrayList(); for (WxMerchant merchant:merchantList) { @@ -1475,6 +1527,86 @@ public class WxCouponServiceImpl implements WxCouponService { } + /** + * 直连判断收款商户 + * @param wxCoupon + * @return + */ + private ResultData checkCouponMakeMerchant(WxCoupon wxCoupon){ + EnumAppPlat plat = EnumCouponType.getAppPlat(wxCoupon.getType()); + EnumPayWay payWay = EnumAppPlat.getPayWay(plat); + WxAppinfo cAppInfo = wxAppinfoService.getCAppInfoFromRedis(wxCoupon.getTenantId(),plat); + if (cAppInfo == null) { + throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); + } + WxPayAccount payAccount = payAccountService.getByIdFromRedis(cAppInfo.getPayId()); + if (payAccount == null) { + throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); + } + EnumPayMchType payMchType = EnumPayMchType.getEnum(payAccount.getMchType()); + if(EnumPayMchType.DIRECT.equals(payMchType)){ + WxMerchant makeMerchant = null; + //平台券,查询集团商管商户 + if (EnumCouponType.COUPON_DOUYIN_PLAT.getCode().equals(wxCoupon.getType())) { + wxCoupon.setMerchantType(EnumCouponMerchantType.MULTIPLE_MERCHANT.getCode()); + makeMerchant = wxMerchantService.findAdmin(wxCoupon); + //品牌券,查询集团品牌商户 + }else if (EnumCouponType.COUPON_DOUYIN_BRAND.getCode().equals(wxCoupon.getType())) { + if(wxCoupon.getBrand() == null){ + throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"未选择品牌"); + } + wxCoupon.setMerchantType(EnumCouponMerchantType.MULTIPLE_MERCHANT.getCode()); + makeMerchant = wxMerchantService.findBrandAdmin(wxCoupon,wxCoupon.getBrand()); + //其他商场券 + }else { + List merchantParamList = JSONObject.parseArray(wxCoupon.getMerchantParams(), JSONObject.class); + if(merchantParamList == null || merchantParamList.isEmpty()){ + throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),"所属商户为空"); + } + //多门店券 + if(merchantParamList.size() > 1 || EnumCouponMerchantType.MULTIPLE_MERCHANT.getCode().equals(wxCoupon.getMerchantType())){ + wxCoupon.setMerchantType(EnumCouponMerchantType.MULTIPLE_MERCHANT.getCode()); + makeMerchant = wxMerchantService.findAdmin(wxCoupon); + }else{ + wxCoupon.setMerchantType(EnumCouponMerchantType.ONE_MERCHANT.getCode()); + Long merchantId = merchantParamList.get(0).getLong("id"); + makeMerchant = wxMerchantService.selectById(merchantId); + } + } + if (makeMerchant == null) { + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "没有收款商户"); + } + + PayShareAdapterService payShareServie = payServiceFactory.getPayShareAdapterService(payWay.getCode(),payAccount.getPayVersion()); + WxProfitSharingReceiver receiver = payShareServie.getReceiver(makeMerchant, makeMerchant.getId(), null, payMchType.getCode()); + if (receiver == null) { + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "收款商户[\""+makeMerchant.getName()+"\"]未配置收款账户"); + } + + //如果是直连,抖音,多商户券必须只配置支付宝 + 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())) { + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "收款商户[\""+makeMerchant.getName()+"\"]未配置收款账户"); + } + if(EnumCouponMerchantType.MULTIPLE_MERCHANT.getCode().equals(wxCoupon.getMerchantType())){ + if (MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus()) + && !MerchantImportStatus.improt_success.getCode().equals(receiver.getWxImportStatus()) + && !MerchantImportStatus.improt_success.getCode().equals(receiver.getHzImportStatus())) { + }else { + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "收款商户[\""+makeMerchant.getName()+"\"]配置收款账户错误,只能配置支付宝."); + } + } + } + wxCoupon.setMakeMerchantId(makeMerchant.getId()); + }else{ + wxCoupon.setMakeMerchantId(0l); + } + + return new ResultData(); + } + @Override public Map getCouponMerchantMap(List couponIds, TenantEntity tenantEntity,boolean onlyOneMerchantCoupons) { Map couponMerchantMap = new HashMap(); @@ -1622,7 +1754,7 @@ public class WxCouponServiceImpl implements WxCouponService { if (null == wxCoupon.getMerchantIds()) { throw new MallinkException(Result.ERROR,"请选择商户"); } - Long makeMerchantId = coupon.getMakeMerchantId(); +// Long makeMerchantId = coupon.getMakeMerchantId(); // StringBuffer merchantParams = new StringBuffer("[{\"tenantId\":").append(mallTenantEntity.getTenantId()).append(",\"mallMerchantParams\":").append("["); Long[] mids = wxCoupon.getMerchantIds(); @@ -1638,9 +1770,9 @@ public class WxCouponServiceImpl implements WxCouponService { final IdWorker idWorker = IdWorker.get(); updateCouponMerchants(coupon,idWorker); //平台券设置商管商户 - if (null != coupon.getMakeMerchantId()) { - wxCouponMapper.setMakeMerchantId(coupon); - } +// if (null != coupon.getMakeMerchantId()) { +// wxCouponMapper.setMakeMerchantId(coupon); +// } }catch(Exception e) { throw e; } From 9284f4e63ea098978e34dee3b10c713fff30eb17 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 3 Dec 2022 01:13:38 +0800 Subject: [PATCH 091/144] //coupon --- .../java/com/iformall/service/impl/WxCouponServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 16af1ac23..87565d4f3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -764,12 +764,12 @@ public class WxCouponServiceImpl implements WxCouponService { mallTenantEntity.setParentTenantId(mallParentTenantId); if (check) { List merchantList = checkCouponOneMallMerchantReceiver(mallTenantEntity,mallMerchantParams,record); - record.setBusiness(EnumBusiness.BUSINESS_ID6.getCode()); } retMap.put(mallTenantEntity, mallMerchantParams); i++; } record.setMallTenantIds(mallTenantIds); + record.setBusiness(EnumBusiness.BUSINESS_ID6.getCode()); return retMap; }else { if (check) { From a52ed85b01630aa02e7ed37bddb35bff312cc13f Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 3 Dec 2022 14:45:19 +0800 Subject: [PATCH 092/144] //coupon --- .../service/impl/WxCouponServiceImpl.java | 33 +++++++++++-------- .../mapper/WxCouponMerchantMapper.xml | 2 +- 2 files changed, 20 insertions(+), 15 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 87565d4f3..9ed43faea 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -366,7 +366,7 @@ public class WxCouponServiceImpl implements WxCouponService { return null; } - List merchantList = getMerchantVoList(wxCouponCVo, wxCouponCVo.getId(), wxCouponCVo.getType()); + List merchantList = getMerchantVoList(wxCouponCVo, mallTenantEntity, wxCouponCVo.getId(), wxCouponCVo.getType()); wxCouponCVo.setMerchantVoList(merchantList); if(EnumCouponType.COUPON_GIFT.getCode().equals(wxCouponCVo.getType())){ @@ -382,21 +382,26 @@ public class WxCouponServiceImpl implements WxCouponService { return wxCouponCVo; } - private List getMerchantVoList(TenantEntity couponTenant,Long couponId,Integer couponType){ - if (EnumCouponType.isParentCoupon(couponType)){ - WxCouponMall couponMall = new WxCouponMall(); - couponMall.updateTenantInfo(couponTenant); - couponMall.setProductId(couponId); - couponMall.setStatus(EnumCouponMallStatus.FINISED.getCode()); - List couponMallList = wxCouponMallMapper.findList(couponMall); - List merchantVoList = new ArrayList<>(); - if (null != couponMallList && couponMallList.size()> 0 ) { - for (WxCouponMall cm:couponMallList) { - WxMall mall = wxMallMapper.getByTenantId(cm.getMallTenantId()); - merchantVoList.addAll(getCouponMerchantList(couponId, mall)); + private List getMerchantVoList(TenantEntity couponTenant,TenantEntity mallTenant,Long couponId,Integer couponType){ + if (EnumCouponType.isParentCoupon(couponType) && couponTenant.getTenantId().equals(mallTenant)){ + //集团查券 查询所有门店 + if(couponTenant.getTenantId().equals(mallTenant.getTenantId())){ + WxCouponMall couponMall = new WxCouponMall(); + couponMall.updateTenantInfo(couponTenant); + couponMall.setProductId(couponId); + List couponMallList = wxCouponMallMapper.findList(couponMall); + List merchantVoList = new ArrayList<>(); + if (null != couponMallList && couponMallList.size()> 0 ) { + for (WxCouponMall cm:couponMallList) { + WxMall mall = wxMallMapper.getByTenantId(cm.getMallTenantId()); + merchantVoList.addAll(getCouponMerchantList(couponId, mall)); + } } + return merchantVoList; + //子广场查券 只查询自己广场的门店 + }else{ + return getCouponMerchantList(couponId,mallTenant); } - return merchantVoList; }else{ return getCouponMerchantList(couponId,couponTenant); } diff --git a/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml index c271f8436..1aebd5e3a 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml @@ -14,7 +14,7 @@ - `id`,`product_id`,`merchant_id`,`parameter`,`create_date`,`update_date`,`status` + `id`,`tenant_id`,`parent_tenant_id`,`product_id`,`merchant_id`,`parameter`,`create_date`,`update_date`,`status` From 1963219fba2d863bc4f6a8ae7f63f6c580d6a5cc Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 3 Dec 2022 15:37:43 +0800 Subject: [PATCH 093/144] //coupon --- .../java/com/iformall/controller/market/WxCouponController.java | 2 +- 1 file changed, 1 insertion(+), 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 13c671b59..838f2c9e1 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -116,7 +116,7 @@ public class WxCouponController extends BaseController { } //isList true 查全部 / 否则 只查询主动领取和定向投放的。 - if(!(isList == null?false:isList)){ + if(wxCoupon.getSendType() == null && !(isList == null?false:isList)){ Integer[] sendTypeArray = { EnumCouponSendType.ACTIVE.getCode(), EnumCouponSendType.PASSIVE.getCode(),}; From 22be81a901962aa77efcb78621b960039fb770fc Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 3 Dec 2022 16:36:20 +0800 Subject: [PATCH 094/144] //coupon --- .../java/com/iformall/service/impl/WxOrderServiceImpl.java | 4 ++++ 1 file changed, 4 insertions(+) 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 3217c004c..c502fe4f9 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -3030,6 +3030,7 @@ public class WxOrderServiceImpl implements WxOrderService { if(EnumOrderShopingType.DISTRIBUTION.getCode().equals(shippingType)){ record.setShippingAddress(JSON.toJSONString(address)); } + record.updateTenantInfo(composeOrder); record.setComposeOrderId(composeOrder.getMainOrderId()); record.setComposeOrderType(composeOrder.getComposeOrderType()); record.setCouponNumber(couponNumber); @@ -3093,6 +3094,7 @@ public class WxOrderServiceImpl implements WxOrderService { // 4.2 保存订单 WxOrder record = new WxOrder(); + record.setType(orderType); record.setPayVendor(payWay.getCode()); record.setPayVersion(payVersion.getCode()); @@ -3107,6 +3109,7 @@ public class WxOrderServiceImpl implements WxOrderService { } record.setOrderStatus(orderStatus); + record.updateTenantInfo(composeOrder); record.setComposeOrderId(composeOrder.getMainOrderId()); //if (EnumComposeOrder.childOrderIsSingle(composeOrder.getComposeOrderType())) { // record.setComposeOrderType(EnumComposeOrder.SINGLE.getCode()); @@ -3308,6 +3311,7 @@ public class WxOrderServiceImpl implements WxOrderService { wxOrderPressMapper.insert(orderPress); // 更新订单砍价信息 WxOrder orderUpdatePress = new WxOrder(); + orderUpdatePress.updateTenantInfo(coupon); orderUpdatePress.setId(record.getId()); orderUpdatePress.setPressCurrentNum(1); orderUpdatePress.setPressCurrentValue(left_total - orderPress.getPressValue()); From be197bb749178d92bafc2780a35df5e35f98f2c8 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 3 Dec 2022 16:43:54 +0800 Subject: [PATCH 095/144] //coupon --- .../java/com/iformall/service/impl/WxCouponServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 9ed43faea..fdcd7aaea 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -383,7 +383,7 @@ public class WxCouponServiceImpl implements WxCouponService { } private List getMerchantVoList(TenantEntity couponTenant,TenantEntity mallTenant,Long couponId,Integer couponType){ - if (EnumCouponType.isParentCoupon(couponType) && couponTenant.getTenantId().equals(mallTenant)){ + if (EnumCouponType.isParentCoupon(couponType)){ //集团查券 查询所有门店 if(couponTenant.getTenantId().equals(mallTenant.getTenantId())){ WxCouponMall couponMall = new WxCouponMall(); From aa0da850feb3277c29568b7a64c2832ad242ce9d Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 3 Dec 2022 17:28:34 +0800 Subject: [PATCH 096/144] //coupon --- .../controller/basic/WxMallController.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallController.java index 67a6ac3a9..bfc61a8c1 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallController.java @@ -23,6 +23,7 @@ import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.awt.image.BufferedImage; import java.io.IOException; +import java.util.List; @RestController @RequestMapping("wxMall") @@ -66,6 +67,23 @@ public class WxMallController extends BaseController { return new ResultData(mall); } + @ApiOperation("查询当前mall的子广场") + @GetMapping("/childMall") + @SystemControllerLog(description = "商城-当前查询") + public ResultData childMall() { + logger.debug("[" + getIpAddr() + "] WxMallController::mallinfo"); + WxMall mall = wxMallService.getByTenantInfo(getUser()); + if(mall == null) { + logger.error("未配置相应的mall"); + return new ResultData(Result.ERROR, "未配置相应的mall"); + } + if (wxMallService.isgroupSupport(mall)) { + List childMall = wxMallService.getSubByParentTenantId(mall.getTenantId()); + return new ResultData(childMall); + } + return new ResultData(Result.ERROR, "未查询到自广场"); + } + @ApiOperation("验证码") @GetMapping("/imgUrlH") public ResultData imgUrlH(){ From 63239b09b147dfee4297ae274fefbc94fa755173 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 3 Dec 2022 17:29:02 +0800 Subject: [PATCH 097/144] //coupon --- .../java/com/iformall/controller/basic/WxMallController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallController.java index bfc61a8c1..4d06b4bc7 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallController.java @@ -81,7 +81,7 @@ public class WxMallController extends BaseController { List childMall = wxMallService.getSubByParentTenantId(mall.getTenantId()); return new ResultData(childMall); } - return new ResultData(Result.ERROR, "未查询到自广场"); + return new ResultData(Result.ERROR, "未查询到子广场"); } @ApiOperation("验证码") From ae7148c587d7de8ebde7393432f2686bac2ed974 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 3 Dec 2022 22:52:12 +0800 Subject: [PATCH 098/144] //coupon order --- .../controller/basic/WxMallController.java | 2 +- .../request/TtPayUnifiedOrderV2Request.java | 10 +++ .../mapper/TtCouponChannelPoiMapper.java | 1 - .../impl/WxCouponChannelServiceImpl.java | 17 ++++- .../service/impl/WxOrderServiceImpl.java | 4 +- .../service/impl/WxPayOrderServiceImpl.java | 8 ++- .../miniApp/TtMiniAppPayAdapterService.java | 64 ++++++++++--------- 7 files changed, 67 insertions(+), 39 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallController.java index 4d06b4bc7..d1956a918 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallController.java @@ -71,7 +71,7 @@ public class WxMallController extends BaseController { @GetMapping("/childMall") @SystemControllerLog(description = "商城-当前查询") public ResultData childMall() { - logger.debug("[" + getIpAddr() + "] WxMallController::mallinfo"); + logger.debug("[" + getIpAddr() + "] WxMallController::childMall"); WxMall mall = wxMallService.getByTenantInfo(getUser()); if(mall == null) { logger.error("未配置相应的mall"); diff --git a/mallinkService/src/main/java/com/iformall/douyin/payv2/request/TtPayUnifiedOrderV2Request.java b/mallinkService/src/main/java/com/iformall/douyin/payv2/request/TtPayUnifiedOrderV2Request.java index 295a7652c..a5e3e579e 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/payv2/request/TtPayUnifiedOrderV2Request.java +++ b/mallinkService/src/main/java/com/iformall/douyin/payv2/request/TtPayUnifiedOrderV2Request.java @@ -204,6 +204,16 @@ public class TtPayUnifiedOrderV2Request implements Serializable { @SerializedName(value = "discount_amount") private Integer discountAmount; + + + + /** + * 否 + * 折扣金额,单位(分) + */ + @SerializedName(value = "merchant_uid") + private String merchantUid; + } diff --git a/mallinkService/src/main/java/com/iformall/mapper/TtCouponChannelPoiMapper.java b/mallinkService/src/main/java/com/iformall/mapper/TtCouponChannelPoiMapper.java index 5c8e02be6..fa42ca6ba 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/TtCouponChannelPoiMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/TtCouponChannelPoiMapper.java @@ -18,5 +18,4 @@ public interface TtCouponChannelPoiMapper extends CommonMapper 0){ return new ResultData(ttCouponChannelPoi); } @@ -877,9 +882,15 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { @Override public ResultData updateOnline(WxCouponChannel wxCouponChannel) { - TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectByChannelId(wxCouponChannel.getTenantId(),wxCouponChannel.getId()); + WxCouponChannel couponChannel = this.getById(wxCouponChannel.getId(), wxCouponChannel.getTenantId()); + if(couponChannel == null){ + return new ResultData(ErrorCode.SYS_NULLPOINTER_ERROR.getCode(),"未找到可用的数据"); + } + TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(couponChannel.getTenantId(), couponChannel.getCouponId()); + if(ttCouponChannelPoi == null || EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) - || EnumSpuSyncStatus.sync_audit_rejection.getCode().equals(ttCouponChannelPoi.getLastStatus())){ + || EnumSpuSyncStatus.sync_audit_rejection.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_disable.getCode().equals(ttCouponChannelPoi.getLastStatus())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"该券未提交审核或审核未通过"); } Date date = new Date(); 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 c502fe4f9..5196786ee 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -3379,6 +3379,7 @@ public class WxOrderServiceImpl implements WxOrderService { } WxOrder order = new WxOrder(); + order.updateTenantInfo(coupon); order.setOrderGroupId(group.getId()); order.setCUserId(user.getId()); order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode()); @@ -3659,9 +3660,8 @@ public class WxOrderServiceImpl implements WxOrderService { return new ResultData(composeOrder); } else { //todo 暂无多订单模式 - + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "数据异常"); } - return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), "数据异常"); // List childOrders = orderAdapterService.getChildOrders(composeOrder, tenantEntity.getTenantId()); // Map> collect = childOrders.stream().collect(groupingBy(WxOrder::getCouponChannelId)); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index 519f3c855..15a8db29c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -419,16 +419,22 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { //设置子订单分账金额 Map childShares = new HashMap(); for (WxOrder o : childOrders) { - Long merchant_id = 0L; + Long merchant_id = 0l; String merchant_uid = ""; if(EnumPayMchType.DIRECT.equals(payMchType)){//直连模式记录收款商户 merchant_id = o.getMakeMerchantId(); + if(merchant_id == null || merchant_id.equals(0l)){ + throw new MallinkException(ErrorCode.PAY_ORDER_MERCHANT_UID_ERROR); + } PayShareAdapterService payShareServie = payServiceFactory.getPayShareAdapterService(payWay.getCode(),payAccount.getPayVersion()); WxProfitSharingReceiver receiver = payShareServie.getReceiver(payAccount, merchant_id, null, payMchTypeEnum.getCode()); if(receiver == null){ throw new MallinkException(ErrorCode.PAY_ORDER_MERCHANT_UID_ERROR); } merchant_uid = receiver.getReceiverAccount(); + if(StringUtils.isBlank(merchant_uid)){ + throw new MallinkException(ErrorCode.PAY_ORDER_MERCHANT_UID_ERROR); + } } childShares.put(String.valueOf(o.getId()), new WxComposeChildOrderShare(o.getId(),o.getPayment(),merchant_id,merchant_uid)); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java index ef975ae89..ded167a29 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iformall.common.ErrorCode; +import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.domain.vo.WxMerchantVo; import com.iformall.domain.vo.WxOrderCouponVo; @@ -20,6 +21,7 @@ import com.iformall.mapper.*; import com.iformall.service.WxCouponService; import com.iformall.service.order.OrderAdapterService; import com.iformall.service.order.OrderFactory; +import com.iformall.service.order.entity.WxComposeChildOrderShare; import com.iformall.service.order.entity.WxComposeOrder; import com.iformall.service.pay.entity.PayExtraParam; import com.iformall.service.pay.service.pay.CDrivingPayService; @@ -112,19 +114,25 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(record.getComposeOrder()); List orderList = orderAdapterService.getChildOrders(composeOrder, appInfo.getTenantId()); - Map> collect = orderList.stream().collect(groupingBy(WxOrder::getCouponChannelId)); - - Map> goodsCollect = new HashMap<>(); - for (Long key: collect.keySet()) { - TtPayUnifiedOrderV2Request.Good good = new TtPayUnifiedOrderV2Request.Good(); - good.setQuantity(collect.get(key).size()); - TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectByChannelId(appInfo.getTenantId(), key); - good.setGoodsId(ttCouponChannelPoi.getSpuId()); - good.setGoodsIdType(1);//poi商品固定传1 - goods.add(good); - goodsCollect.put(good.getGoodsId(),collect.get(key)); + + if(orderList.size() > 1){ + //todo 暂无多订单 + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"数据异常"); } + WxOrder order = orderList.get(0); + + TtPayUnifiedOrderV2Request.Good good = new TtPayUnifiedOrderV2Request.Good(); + good.setQuantity(order.getCouponNumber()); + WxCouponChannel couponChannel = wxCouponChannelMapper.selectById(order.getCouponChannelId(), order.getTenantId()); + good.setGoodsId(couponChannel.getTtSpuId()); + good.setGoodsIdType(1);//poi商品固定传1 + if (EnumPayMchType.DIRECT.getCode().equals(record.getMchType())) { + WxComposeChildOrderShare childOrderShare = record.getChildOrderShare(order.getId()); + good.setMerchantUid(childOrderShare.getMerchantUid()); + } + goods.add(good); + request.setGoodsList(goods); request.setTotalAmount(composeOrder.getPayment()); request.setOpenId(openId); @@ -143,6 +151,14 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen TtPayUnifiedOrderV2Result orderV2 = ttPayService.createOrderV2(request); + if(orderV2.getItemOrderInfoList().size() > 1){ + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"数据异常"); + } + TtPayUnifiedOrderV2Result.ItemOrderInfo itemOrderInfo = orderV2.getItemOrderInfoList().get(0); + if(itemOrderInfo.getItemOrderDetail().size() > 1){ + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"数据异常"); + } + JSONObject allExtParam = new JSONObject(); allExtParam.put("order_id",orderV2.getOrderId()); allExtParam.put("total_amount",composeOrder.getPayment()); @@ -153,26 +169,12 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen batchOrder.setExtParam(JSON.toJSONString(allExtParam)); wxBatchOrderMapper.updateById(batchOrder); - for (TtPayUnifiedOrderV2Result.ItemOrderInfo itemOrderInfo:orderV2.getItemOrderInfoList()) { - List wxOrders = goodsCollect.get(itemOrderInfo.getGoodsId()); - if(itemOrderInfo.getItemOrderDetail().size() == wxOrders.size()){ - for(int i=0;i Date: Sun, 4 Dec 2022 16:29:07 +0800 Subject: [PATCH 099/144] //coupon --- .../java/com/iformall/service/impl/WxCouponServiceImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 fdcd7aaea..2c2a417f8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -394,7 +394,10 @@ public class WxCouponServiceImpl implements WxCouponService { if (null != couponMallList && couponMallList.size()> 0 ) { for (WxCouponMall cm:couponMallList) { WxMall mall = wxMallMapper.getByTenantId(cm.getMallTenantId()); - merchantVoList.addAll(getCouponMerchantList(couponId, mall)); + List couponMerchantList = getCouponMerchantList(couponId, mall); + if(couponMerchantList != null && couponMerchantList.size() > 0){ + merchantVoList.addAll(couponMerchantList); + } } } return merchantVoList; From 944b822fd4c6a3ec4ca65deede83590bd868f5d5 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sun, 4 Dec 2022 17:08:08 +0800 Subject: [PATCH 100/144] //coupon --- .../market/TtCouponGoodsController.java | 96 ++++++------- .../service/TtCouponGoodsService.java | 6 +- .../impl/TtCouponGoodsServiceImpl.java | 136 +++++++++--------- 3 files changed, 119 insertions(+), 119 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java index 60a03d46f..cabdd4b35 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java @@ -42,54 +42,54 @@ public class TtCouponGoodsController extends BaseController { @Autowired private TtGoodsCategoryService ttGoodsCategoryService; - @ApiOperation("分页列表接口") - @GetMapping("couponList") - @ApiImplicitParams({ - @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), - @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) - @SystemControllerLog(description = "-列表") - public ResultData couponList(@ModelAttribute TtCouponVo ttCouponVo, Integer pageNum, Integer pageSize) { - logger.debug("[" + getIpAddr() + "] WxCouponController::couponList"); - if (ttCouponVo == null) ttCouponVo = new TtCouponVo(); - ttCouponVo.updateTenantInfo(getTenantInfo()); - ttCouponVo.setType(EnumCouponType.COUPON_DOUYIN.getCode()); - if(StringUtils.isNotBlank(ttCouponVo.getSortColumn())){ - String coryColumn = "c."+ttCouponVo.getSortColumns(); - ttCouponVo.setSortColumns(coryColumn); - ttCouponVo.setSortColumn(null); - }else{ - ttCouponVo.setSortColumns(BaseEntity.SortField.CCreateDate_DESC, BaseEntity.SortField.CId_DESC); - } - if (ttCouponVo.getStatus() != null && ttCouponVo.getStatus() == -1) - ttCouponVo.setStatus(null); - return ttCouponGoodsService.couponList(ttCouponVo, pageNum, pageSize); - } - - @ApiOperation("分页列表接口") - @GetMapping("channelList") - @ApiImplicitParams({ - @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), - @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) - @SystemControllerLog(description = "-列表") - public ResultData channelList(@ModelAttribute TtCouponChannelVo ttChannelVo, Integer pageNum, Integer pageSize) { - logger.debug("[" + getIpAddr() + "] WxCouponController::channelList"); - if (ttChannelVo == null) ttChannelVo = new TtCouponChannelVo(); - ttChannelVo.updateTenantInfo(getTenantInfo()); - ttChannelVo.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN_LIST.getCode()); - if(null == ttChannelVo.getSourceType()){ - ttChannelVo.setSourceType(EnumCouponSourceType.COUPONSource_Admin.getCode()); - } - - if(StringUtils.isNotBlank(ttChannelVo.getSortColumn())){ - String coryColumn = "cc."+ttChannelVo.getSortColumns(); - ttChannelVo.setSortColumns(coryColumn); - ttChannelVo.setSortColumn(null); - }else{ - ttChannelVo.setSortColumns(BaseEntity.SortField.CCUpdateDate_DESC); - } - - return ttCouponGoodsService.channelList(ttChannelVo, pageNum, pageSize); - } +// @ApiOperation("分页列表接口") +// @GetMapping("couponList") +// @ApiImplicitParams({ +// @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), +// @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) +// @SystemControllerLog(description = "-列表") +// public ResultData couponList(@ModelAttribute TtCouponVo ttCouponVo, Integer pageNum, Integer pageSize) { +// logger.debug("[" + getIpAddr() + "] WxCouponController::couponList"); +// if (ttCouponVo == null) ttCouponVo = new TtCouponVo(); +// ttCouponVo.updateTenantInfo(getTenantInfo()); +// ttCouponVo.setType(EnumCouponType.COUPON_DOUYIN.getCode()); +// if(StringUtils.isNotBlank(ttCouponVo.getSortColumn())){ +// String coryColumn = "c."+ttCouponVo.getSortColumns(); +// ttCouponVo.setSortColumns(coryColumn); +// ttCouponVo.setSortColumn(null); +// }else{ +// ttCouponVo.setSortColumns(BaseEntity.SortField.CCreateDate_DESC, BaseEntity.SortField.CId_DESC); +// } +// if (ttCouponVo.getStatus() != null && ttCouponVo.getStatus() == -1) +// ttCouponVo.setStatus(null); +// return ttCouponGoodsService.couponList(ttCouponVo, pageNum, pageSize); +// } +// +// @ApiOperation("分页列表接口") +// @GetMapping("channelList") +// @ApiImplicitParams({ +// @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), +// @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) +// @SystemControllerLog(description = "-列表") +// public ResultData channelList(@ModelAttribute TtCouponChannelVo ttChannelVo, Integer pageNum, Integer pageSize) { +// logger.debug("[" + getIpAddr() + "] WxCouponController::channelList"); +// if (ttChannelVo == null) ttChannelVo = new TtCouponChannelVo(); +// ttChannelVo.updateTenantInfo(getTenantInfo()); +// ttChannelVo.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN_LIST.getCode()); +// if(null == ttChannelVo.getSourceType()){ +// ttChannelVo.setSourceType(EnumCouponSourceType.COUPONSource_Admin.getCode()); +// } +// +// if(StringUtils.isNotBlank(ttChannelVo.getSortColumn())){ +// String coryColumn = "cc."+ttChannelVo.getSortColumns(); +// ttChannelVo.setSortColumns(coryColumn); +// ttChannelVo.setSortColumn(null); +// }else{ +// ttChannelVo.setSortColumns(BaseEntity.SortField.CCUpdateDate_DESC); +// } +// +// return ttCouponGoodsService.channelList(ttChannelVo, pageNum, pageSize); +// } @ApiOperation("根据类目获取商品模板") @GetMapping("getTemplate") diff --git a/mallinkService/src/main/java/com/iformall/service/TtCouponGoodsService.java b/mallinkService/src/main/java/com/iformall/service/TtCouponGoodsService.java index 6ce3b6e50..0dc717045 100644 --- a/mallinkService/src/main/java/com/iformall/service/TtCouponGoodsService.java +++ b/mallinkService/src/main/java/com/iformall/service/TtCouponGoodsService.java @@ -14,9 +14,9 @@ import java.util.List; public interface TtCouponGoodsService { - ResultData couponList(TtCouponVo ttCouponVo, Integer pageNum, Integer pageSize); - - ResultData channelList(TtCouponChannelVo ttChannelVo, Integer pageNum, Integer pageSize); +// ResultData couponList(TtCouponVo ttCouponVo, Integer pageNum, Integer pageSize); +// +// ResultData channelList(TtCouponChannelVo ttChannelVo, Integer pageNum, Integer pageSize); ResultData productSave(WxCoupon coupon) throws Exception; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java index 3c16897fe..08c349941 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java @@ -91,72 +91,72 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { @Autowired WxMerchantService wxMerchantService; - @Override - public ResultData couponList(TtCouponVo ttCouponVo, Integer pageNum, Integer pageSize) { - PageInfo pageInfo = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxCouponMapper.ttCouponList(ttCouponVo)); - List couponList = pageInfo.getList(); - - if(!couponList.isEmpty()){ - List ids = couponList.stream().map(p -> p.getId()).collect(toList()); - WxCouponChannel wxCouponChannel = new WxCouponChannel(); - wxCouponChannel.updateTenantInfo(ttCouponVo); - wxCouponChannel.setCouponIds(ids); - //上架状态 - wxCouponChannel.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); - List channellist = wxCouponChannelMapper.findList(wxCouponChannel); - Map> channelGroupCoupon = new HashMap<>(); - if(!channellist.isEmpty()){ - channelGroupCoupon = channellist.stream().collect(Collectors.groupingBy(WxCouponChannel::getCouponId)); - } - - //预审状态 - wxCouponChannel.setStatus(EnumCouponChannelStatus.STATUS_BEFORE.getCode()); - List planchannellist = wxCouponChannelMapper.findList(wxCouponChannel); - Map> planChannelGroupCoupon = new HashMap<>(); - if(!planchannellist.isEmpty()){ - planChannelGroupCoupon = planchannellist.stream().collect(Collectors.groupingBy(WxCouponChannel::getCouponId)); - } - - for (TtCouponVo temp : couponList) { - List channels = new ArrayList<>(); - List couponChannels = channelGroupCoupon.get(temp.getId()); - if(couponChannels != null && !couponChannels.isEmpty()){ - for (WxCouponChannel tempchannel : couponChannels) { - if (!channels.contains(tempchannel.getTargetAd())) { - channels.add(tempchannel.getTargetAd()); - } - } - } - if(!channels.isEmpty()){ - temp.setChannels(JSON.toJSONString(channels)); - }else{ - temp.setChannels(""); - } - - List planChannels = new ArrayList<>(); - List planCouponChannels = planChannelGroupCoupon.get(temp.getId()); - if(planCouponChannels != null && !planCouponChannels.isEmpty()){ - for (WxCouponChannel tempchannel : planCouponChannels) { - if (!planChannels.contains(tempchannel.getTargetAd())) { - planChannels.add(tempchannel.getTargetAd()); - } - } - } - if(!planChannels.isEmpty()){ - temp.setPlanChannels(JSON.toJSONString(planChannels)); - }else{ - temp.setPlanChannels(""); - } - } - } - return new ResultData(pageInfo); - } - - @Override - public ResultData channelList(TtCouponChannelVo ttChannelVo, Integer pageNum, Integer pageSize) { - PageInfo ttCouponChannelVoPageInfo = wxCouponChannelService.ttChannelList(ttChannelVo, pageNum, pageSize); - return new ResultData(ttCouponChannelVoPageInfo); - } +// @Override +// public ResultData couponList(TtCouponVo ttCouponVo, Integer pageNum, Integer pageSize) { +// PageInfo pageInfo = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxCouponMapper.ttCouponList(ttCouponVo)); +// List couponList = pageInfo.getList(); +// +// if(!couponList.isEmpty()){ +// List ids = couponList.stream().map(p -> p.getId()).collect(toList()); +// WxCouponChannel wxCouponChannel = new WxCouponChannel(); +// wxCouponChannel.updateTenantInfo(ttCouponVo); +// wxCouponChannel.setCouponIds(ids); +// //上架状态 +// wxCouponChannel.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); +// List channellist = wxCouponChannelMapper.findList(wxCouponChannel); +// Map> channelGroupCoupon = new HashMap<>(); +// if(!channellist.isEmpty()){ +// channelGroupCoupon = channellist.stream().collect(Collectors.groupingBy(WxCouponChannel::getCouponId)); +// } +// +// //预审状态 +// wxCouponChannel.setStatus(EnumCouponChannelStatus.STATUS_BEFORE.getCode()); +// List planchannellist = wxCouponChannelMapper.findList(wxCouponChannel); +// Map> planChannelGroupCoupon = new HashMap<>(); +// if(!planchannellist.isEmpty()){ +// planChannelGroupCoupon = planchannellist.stream().collect(Collectors.groupingBy(WxCouponChannel::getCouponId)); +// } +// +// for (TtCouponVo temp : couponList) { +// List channels = new ArrayList<>(); +// List couponChannels = channelGroupCoupon.get(temp.getId()); +// if(couponChannels != null && !couponChannels.isEmpty()){ +// for (WxCouponChannel tempchannel : couponChannels) { +// if (!channels.contains(tempchannel.getTargetAd())) { +// channels.add(tempchannel.getTargetAd()); +// } +// } +// } +// if(!channels.isEmpty()){ +// temp.setChannels(JSON.toJSONString(channels)); +// }else{ +// temp.setChannels(""); +// } +// +// List planChannels = new ArrayList<>(); +// List planCouponChannels = planChannelGroupCoupon.get(temp.getId()); +// if(planCouponChannels != null && !planCouponChannels.isEmpty()){ +// for (WxCouponChannel tempchannel : planCouponChannels) { +// if (!planChannels.contains(tempchannel.getTargetAd())) { +// planChannels.add(tempchannel.getTargetAd()); +// } +// } +// } +// if(!planChannels.isEmpty()){ +// temp.setPlanChannels(JSON.toJSONString(planChannels)); +// }else{ +// temp.setPlanChannels(""); +// } +// } +// } +// return new ResultData(pageInfo); +// } +// +// @Override +// public ResultData channelList(TtCouponChannelVo ttChannelVo, Integer pageNum, Integer pageSize) { +// PageInfo ttCouponChannelVoPageInfo = wxCouponChannelService.ttChannelList(ttChannelVo, pageNum, pageSize); +// return new ResultData(ttCouponChannelVoPageInfo); +// } @Override @Transactional(isolation=Isolation.SERIALIZABLE, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) @@ -685,7 +685,7 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { if(wxCoupon == null){ return new ResultData(ErrorCode.COUPON_IS_EMPTY.getCode(),"未找到该券"); } - if(!EnumCouponType.COUPON_DOUYIN.getCode().equals(wxCoupon.getType())){ + if(!EnumCouponType.getDouYinType().contains(wxCoupon.getType())){ return new ResultData(ErrorCode.COUPON_ORDER_TYPE_NOT_SUPPORTED); } TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(wxCoupon.getTenantId(),wxCoupon.getId()); @@ -737,7 +737,7 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { if(wxCoupon == null){ return new ResultData(ErrorCode.COUPON_IS_EMPTY.getCode(),"未找到该券"); } - if(!EnumCouponType.COUPON_DOUYIN.getCode().equals(wxCoupon.getType())){ + if(!EnumCouponType.getDouYinType().contains(wxCoupon.getType())){ return new ResultData(ErrorCode.COUPON_ORDER_TYPE_NOT_SUPPORTED); } TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(wxCoupon.getTenantId(),wxCoupon.getId()); From e219890c90b37ac2453e71b9ab4a3bf119f9fd82 Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 5 Dec 2022 15:11:26 +0800 Subject: [PATCH 101/144] //coupon --- .../main/java/com/iformall/service/impl/WxBrandServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBrandServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBrandServiceImpl.java index 043580740..1dd456932 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBrandServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBrandServiceImpl.java @@ -11,6 +11,7 @@ import com.iformall.domain.po.WxBrand; import com.iformall.domain.po.WxBusiness; import com.iformall.domain.po.WxShop; import com.iformall.enums.EnumDelFlag; +import com.iformall.enums.EnumYesOrNo; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxBrandMapper; import com.iformall.service.WxBrandService; @@ -102,6 +103,7 @@ public class WxBrandServiceImpl implements WxBrandService { public List> queryBrand(TenantEntity tenantEntity) { WxBrand wxBrand = new WxBrand(); wxBrand.setTenantId(tenantEntity.getFinalTenantId()); + wxBrand.setIsDel(EnumYesOrNo.NO.getCode()); return wxBrandMapper.queryBrandByTenant(wxBrand); } From 2e24673b8440fce3d824c24b14e6aa18dae49456 Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 5 Dec 2022 15:19:18 +0800 Subject: [PATCH 102/144] //coupon --- .../main/java/com/iformall/domain/vo/WxProfitSharingOrderVo.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxProfitSharingOrderVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxProfitSharingOrderVo.java index 8593671db..51a7cdae8 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxProfitSharingOrderVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxProfitSharingOrderVo.java @@ -17,6 +17,7 @@ public class WxProfitSharingOrderVo extends TenantEntity { private Long id; + private String bTenantId; private Long payMerchantId; private String payMerchantMchId; private Long merchantId; From c81097d0e05231581e2a7bef0b6475207ee02367 Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 6 Dec 2022 15:54:07 +0800 Subject: [PATCH 103/144] //coupon --- .../iformall/controller/WxPayAccountController.java | 5 ++--- .../service/impl/WxCouponOrderServiceImpl.java | 12 ++++++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxPayAccountController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxPayAccountController.java index 9c21004d0..59c1115ed 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxPayAccountController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxPayAccountController.java @@ -40,12 +40,11 @@ public class WxPayAccountController extends BaseController { public ResultData getPayAccount(@RequestBody Map paramMap) { logger.info("/api/payAccount/getPayAccount" + paramMap.toString()); String appId = paramMap.get("appId"); - String tenantId = paramMap.get("tenantId"); - if (StringUtils.isBlank(appId) || StringUtils.isBlank(tenantId)) { + if (StringUtils.isBlank(appId)) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } - WxAppinfo wxAppinfo = getAppInfo(appId,tenantId); + WxAppinfo wxAppinfo = getAppInfo(appId,getTenantInfo().getTenantId()); if(wxAppinfo == null){ return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index c146aad22..b257c4611 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -1338,12 +1338,20 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { throw new MallinkException(ErrorCode.COUPON_ORDER_IS_PRE_VERIFY); } + //核销tenant + TenantEntity mallTenantEntity = new TenantEntity(); + if(bUser != null){ + mallTenantEntity.updateTenantInfo(bUser); + }else{ + mallTenantEntity.updateTenantInfo(wxCoupon); + } + // 2. 检查适用门店 Long merchantId = null; if(EnumCouponType.COUPON_DISTRIBUTION.getCode().equals(wxCoupon.getType())){ //可配送商品 WxCouponMerchant wxCouponMerchant = new WxCouponMerchant(); - wxCouponMerchant.updateTenantInfo(bUser); + wxCouponMerchant.updateTenantInfo(mallTenantEntity); wxCouponMerchant.setProductId(wxCoupon.getId()); wxCouponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); WxCouponMerchant cm = null; @@ -1392,7 +1400,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { if(wxPayOrder != null && EnumPayMchType.TOTAL.getCode().equals(wxPayOrder.getMchType()) && EnumPayShare.YES.getCode().equals(wxPayOrder.getShare())){ WxProfitSharingReceiver receiver = payServiceFactory.getPayShareAdapterService(wxPayOrder.getPayVendor(),couponOrder.getPayVersion()) - .getReceiver(bUser, merchantId, wxPayOrder.getTtPayWay(),wxPayOrder.getMchType()); + .getReceiver(mallTenantEntity, merchantId, wxPayOrder.getTtPayWay(),wxPayOrder.getMchType()); if (null == receiver) { throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL.getCode(),"当前商户没有配置收款账号。"); } From 16a85bf07ea4b35f23f815e5cd33ac99e28d0ef7 Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 6 Dec 2022 16:47:10 +0800 Subject: [PATCH 104/144] //coupon --- .../java/com/iformall/controller/WxCouponOrderController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index c4a0bff2a..3ba3ec6c2 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -232,7 +232,7 @@ public class WxCouponOrderController extends BaseController { return new ResultData(ErrorCode.COUPON_IS_EMPTY); } } else { - wxCouponCVo = wxCouponService.getVoById(wxCouponOrderCVo.getCouponId(),wxMerchantBUser.getTenantId(),wxMerchantBUser); + wxCouponCVo = wxCouponService.getVoById(wxCouponOrderCVo.getCouponId(),couponOrderTenantEntity.getTenantId(),wxMerchantBUser); if (wxCouponCVo == null) { return new ResultData(ErrorCode.COUPON_IS_EMPTY); } From ce3e4d38174ab472a8676e72606a41be0138f4b2 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 7 Dec 2022 11:18:38 +0800 Subject: [PATCH 105/144] //coupon --- .../src/main/resources/mapper/WxCouponPasswordMapper.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/resources/mapper/WxCouponPasswordMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponPasswordMapper.xml index a4ad7b91b..0f115e92f 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponPasswordMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponPasswordMapper.xml @@ -105,11 +105,11 @@ - INSERT INTO wx_coupon_password (`id`,`coupon_id`,`coupon_short`,`password`,`status`,`create_date`,`update_date`) + INSERT INTO wx_coupon_password (`id`,`tenant_id`,`parent_tenant_id`,`coupon_id`,`coupon_short`,`password`,`status`,`create_date`,`update_date`) VALUES ( - #{item.id},#{item.couponId},#{item.couponShort},#{item.password},#{item.status}, + #{item.id},#{item.tenantId},#{item.parentTenantId},#{item.couponId},#{item.couponShort},#{item.password},#{item.status}, #{item.createDate},#{item.updateDate} ) From 9077c09f446959fb3059921e25faddd1d3accbdd Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 7 Dec 2022 11:39:10 +0800 Subject: [PATCH 106/144] //brand --- .../iformall/service/impl/WxBrandServiceImpl.java | 1 - .../src/main/resources/mapper/WxBrandMapper.xml | 15 +++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBrandServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBrandServiceImpl.java index 1dd456932..ef31a6d9f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBrandServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBrandServiceImpl.java @@ -103,7 +103,6 @@ public class WxBrandServiceImpl implements WxBrandService { public List> queryBrand(TenantEntity tenantEntity) { WxBrand wxBrand = new WxBrand(); wxBrand.setTenantId(tenantEntity.getFinalTenantId()); - wxBrand.setIsDel(EnumYesOrNo.NO.getCode()); return wxBrandMapper.queryBrandByTenant(wxBrand); } diff --git a/mallinkService/src/main/resources/mapper/WxBrandMapper.xml b/mallinkService/src/main/resources/mapper/WxBrandMapper.xml index 09697bebb..389362ce4 100644 --- a/mallinkService/src/main/resources/mapper/WxBrandMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBrandMapper.xml @@ -46,14 +46,13 @@ - - - - - - + From 4519d204fcebe9490e276853b562640f77830f92 Mon Sep 17 00:00:00 2001 From: xhxu Date: Fri, 9 Dec 2022 15:10:00 +0800 Subject: [PATCH 115/144] //sharing --- .../schedule/SharingOrderRedoSchedule.java | 2 +- .../service/WxProfitSharingOrderService.java | 2 +- .../impl/WxCouponOrderServiceImpl.java | 9 ++---- .../impl/WxProfitSharingOrderServiceImpl.java | 28 +++++++++++++------ 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java index 52d36612c..095de9480 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/SharingOrderRedoSchedule.java @@ -72,7 +72,7 @@ public class SharingOrderRedoSchedule { + " ID:" +sharingOrder.getId() + " RES: wxPayOrder is null." ); } - ResultData result = wxProfitSharingOrderService.redoSharingOrder(mall,sharingOrder,wxPayOrder); + ResultData result = wxProfitSharingOrderService.redoSharingOrder(sharingOrder,wxPayOrder); if (result.code != ResultData.SUCCESS) { logger.error("分账重试失败:" + EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getMessage() + " ID:" +sharingOrder.getId() diff --git a/mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java index 7f95e0ae9..5784a3c7a 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxProfitSharingOrderService.java @@ -27,7 +27,7 @@ public interface WxProfitSharingOrderService { /** * 分账重试 */ - ResultData redoSharingOrder(TenantEntity mallTenantEntity,WxProfitSharingOrder sharingOrder,WxPayOrder payOrder); + ResultData redoSharingOrder(WxProfitSharingOrder sharingOrder,WxPayOrder payOrder); /** * 分账完结重试 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index d9d2fec7c..66df36d18 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -1791,17 +1791,14 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { logger.error("券订单"+couponOrder.getId()+"未查询到支付订单."); throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"券订单"+couponOrder.getId()+"未查询到支付订单."); } - if(EnumPayShare.NO.getCode().equals(wxPayOrder.getShare())){ + if(EnumPayMchType.TOTAL.getCode().equals(wxPayOrder.getMchType()) + && EnumPayShare.NO.getCode().equals(wxPayOrder.getShare())){ + //总分并且不分账 记账 try { // 订单购买时未分账 核销记账,并且往账户里面记帐 if (couponOrder.getCouponPrice() > 0) { recordAfterVerified(couponOrder, wxMerchant); } - Date time = DateUtils.stringToDate("2022-09-22 23:00:00", "yyyy-MM-dd HH:mm:ss"); - if(EnumPayWay.PAY_WAY_WECHAT.getCode().equals(wxPayOrder.getPayVendor()) - && wxPayOrder.getCreateTime().before(time)){ - return; - } } catch (Exception e) { logger.error("核销记账失败"+e.getMessage(),e); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java index 38c8a356a..dc59cfdc6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java @@ -179,11 +179,14 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ @Override // @Transactional(isolation=Isolation.SERIALIZABLE, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) - public ResultData redoSharingOrder(TenantEntity mallTenantEntity,WxProfitSharingOrder sharingOrder,WxPayOrder payOrder) { + public ResultData redoSharingOrder(WxProfitSharingOrder sharingOrder,WxPayOrder payOrder) { if(!EnumProfitSharingOrderStatus.shareStatus().contains(sharingOrder.getSharingStatus())){ return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),"分账状态不允许"); } + + WxMerchant merchant = wxMerchantService.getById(sharingOrder.getMerchantId()); + Date currentDate = new Date(); if(EnumPayWay.PAY_WAY_WECHAT.getCode().equals(payOrder.getPayVendor()) && DateUtils.daysBetween(payOrder.getCreateTime(),currentDate) > 30){ @@ -194,6 +197,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ updSharingOrder.setErrorMsg("微信支付超30天无法分账"); updSharingOrder.setUpdateTime(currentDate); wxProfitSharingOrderMapper.updateById(updSharingOrder); + return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),"微信支付超30天无法分账"); } @@ -218,7 +222,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ EnumPayWay enumPayWay = EnumPayWay.getEnum(payOrder.getPayVendor()); EnumAppPlat enumPlat = enumPayWay.getPlat(); - WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(mallTenantEntity, enumPlat); + WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(sharingOrder, enumPlat); WxPayAccount payAccount = wxPayAccountMapper.selectById(cAppInfo.getPayId()); WxComposeChildOrderShare wxComposeChildOrderShare = null; @@ -244,13 +248,14 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ wxComposeChildOrderShare.setSellerAmount(sellerAmount); boolean isSeller = false; if(sellerAmount > 0){ - WxProfitSharingReceiver receiver = getByMerchantAdmin(mallTenantEntity,payShareAdapterService,wxComposeChildOrderShare.getMerchantId(),EnumMerchantAdmin.PRIVATE_SELL,payOrder.getTtPayWay(), payOrder.getMchType()); + WxProfitSharingReceiver receiver = getByMerchantAdmin(sharingOrder,payShareAdapterService,wxComposeChildOrderShare.getMerchantId(),EnumMerchantAdmin.PRIVATE_SELL,payOrder.getTtPayWay(), payOrder.getMchType()); if(receiver != null){ JSONObject jo = new JSONObject(); jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage()); jo.put("account",receiver.getReceiverAccount()); jo.put("amount", sellerAmount); jo.put("merchantId",receiver.getMerchantId()); + jo.put("bTenantId",receiver.getTenantId()); jo.put("description",receiver.getId()); jo.put("isPrivate",EnumYesOrNo.YES.getCode()); receivers.add(jo); @@ -267,13 +272,14 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ } boolean isSystem = false; if(systemAmount > 0){ - WxProfitSharingReceiver receiver = getByMerchantAdmin(mallTenantEntity,payShareAdapterService,wxComposeChildOrderShare.getMerchantId(),EnumMerchantAdmin.PRIVATE_SYSTEM,payOrder.getTtPayWay(), payOrder.getMchType()); + WxProfitSharingReceiver receiver = getByMerchantAdmin(sharingOrder,payShareAdapterService,wxComposeChildOrderShare.getMerchantId(),EnumMerchantAdmin.PRIVATE_SYSTEM,payOrder.getTtPayWay(), payOrder.getMchType()); if(receiver != null){ JSONObject jo = new JSONObject(); jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage()); jo.put("account",receiver.getReceiverAccount()); jo.put("amount", systemAmount); jo.put("merchantId",receiver.getMerchantId()); + jo.put("bTenantId",receiver.getTenantId()); jo.put("description",receiver.getId()); jo.put("isPrivate",EnumYesOrNo.YES.getCode()); receivers.add(jo); @@ -292,13 +298,14 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ } boolean isMall = false; if(mallAmount > 0){ - WxProfitSharingReceiver receiver = getByMerchantAdmin(mallTenantEntity,payShareAdapterService,wxComposeChildOrderShare.getMerchantId(),EnumMerchantAdmin.PUBLIC_ADMIN,payOrder.getTtPayWay(), payOrder.getMchType()); + WxProfitSharingReceiver receiver = getByMerchantAdmin(sharingOrder,payShareAdapterService,wxComposeChildOrderShare.getMerchantId(),EnumMerchantAdmin.PUBLIC_ADMIN,payOrder.getTtPayWay(), payOrder.getMchType()); if(receiver != null){ JSONObject jo = new JSONObject(); jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage()); jo.put("account",receiver.getReceiverAccount()); jo.put("amount", mallAmount); jo.put("merchantId",receiver.getMerchantId()); + jo.put("bTenantId",receiver.getTenantId()); jo.put("description",receiver.getId()); jo.put("isPrivate",EnumYesOrNo.YES.getCode()); receivers.add(jo); @@ -315,13 +322,14 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ //商户所得 int shareAmount = wxComposeChildOrderShare.getShareAmount() + surplus; - WxProfitSharingReceiver receiver = payShareAdapterService.getReceiver(mallTenantEntity,sharingOrder.getMerchantId(),payOrder.getTtPayWay(),payOrder.getMchType()); + WxProfitSharingReceiver receiver = payShareAdapterService.getReceiver(merchant,sharingOrder.getMerchantId(),payOrder.getTtPayWay(),payOrder.getMchType()); if(EnumPayMchType.TOTAL.getCode().equals(payOrder.getMchType()) && EnumPayShare.YES.getCode().equals(payOrder.getShare())){ JSONObject jo = new JSONObject(); jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage()); jo.put("account",receiver.getReceiverAccount()); jo.put("amount", shareAmount); jo.put("merchantId",receiver.getMerchantId()); + jo.put("bTenantId",receiver.getTenantId()); jo.put("description",receiver.getId()); receivers.add(jo); } @@ -363,6 +371,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ jo.put("account",payAccount.getSubMchId()); jo.put("amount", shareAmount); jo.put("merchantId",0); + jo.put("bTenantId",payOrder.getTenantId()); jo.put("description",0); receivers.add(jo); }else if(EnumPayMchType.DIRECT.getCode().equals(payOrder.getMchType())){ @@ -372,6 +381,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ jo.put("account",receiver.getReceiverAccount()); jo.put("amount", shareAmount); jo.put("merchantId",receiver.getMerchantId()); + jo.put("bTenantId",receiver.getTenantId()); jo.put("description",receiver.getId()); receivers.add(jo); } @@ -385,7 +395,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ result.setId(idworker.nextId()); result.updateTenantInfo(sharingOrder); result.setMerchantId(Long.valueOf(o.getString("merchantId"))); - result.setBTenantId(mallTenantEntity.getTenantId()); + result.setBTenantId(o.getString("bTenantId")); result.setSharingOrderId(sharingOrder.getId()); result.setSharingReceiverId(Long.valueOf(o.getString("description"))); result.setPayAmount(o.getInteger("amount")); @@ -397,7 +407,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ wxProfitSharingResultMapper.insert(result); }); }catch(Exception e){ - logger.info("记账失败"+sharingOrder.getId()); + logger.info("记录结果失败"+sharingOrder.getId()); } return new ResultData(shareResult); @@ -461,7 +471,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ } //实际调用分账 - ResultData resultData = redoSharingOrder(mallTenantEntity,record,payOrder); + ResultData resultData = redoSharingOrder(record,payOrder); return resultData; } From 1695fa06c016bfbeca5d8b58da7a379a19b9a13c Mon Sep 17 00:00:00 2001 From: xhxu Date: Fri, 9 Dec 2022 15:40:47 +0800 Subject: [PATCH 116/144] //coupon --- .../src/main/resources/mapper/WxCouponOrderMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index 5cf21eccf..826c7794a 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -708,7 +708,7 @@ From 0b93bb375faa29a1fa8afb318cdf02da6514cee9 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Mon, 12 Dec 2022 14:44:59 +0800 Subject: [PATCH 117/144] fix bug --- .../src/main/java/com/iformall/enums/EnumSaleType.java | 4 ++-- .../com/iformall/service/impl/WxCouponOrderServiceImpl.java | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumSaleType.java b/mallinkService/src/main/java/com/iformall/enums/EnumSaleType.java index 2379bfa62..947942ace 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumSaleType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumSaleType.java @@ -12,8 +12,8 @@ public enum EnumSaleType { WX_ENJOY(3,"速享版"), WX_ENJOY_TRY(4, "速享试用版"), TT_ALL_ROUND(11, "抖音尊享版"), - GROUP(100, "集团版"), - GROUP_v1(101, "集团版"), + GROUP(100, "集团版(旧版,每个商场一个小程序)"), + GROUP_v1(101, "集团版(同一个小程序)"), WX_JM_ALL_ROUND(1035001036,"金茂全能版"), ; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index 66df36d18..dbf104325 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -523,6 +523,9 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { couponMerchantVoMap = mallCouponMerchantVoMap.get(couponOrder.getBTenantId()); } } + if (null == couponMerchantVoMap) { + couponMerchantVoMap = new HashMap>(); + } WxCouponOrderBVo bvo = couponOrdertoBVo(couponOrder,bUserMap,merchantSimpleMap,cUserSimpleMap,couponMap,hasMerchant,couponMerchantVoMap); if (null != bvo ) { retList.add(bvo); From 41386546c9a41c33ff80f76011c0b243a41ded63 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Mon, 12 Dec 2022 15:59:24 +0800 Subject: [PATCH 118/144] fix bug --- .../main/resources/mapper/WxCouponOrderMapper.xml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index 826c7794a..87c919bb5 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -224,6 +224,9 @@ ,`shipping_status` = #{shippingStatus} + + ,`b_tenant_id` = #{bTenantId} + where id=#{id} and `b_user_id` is null and `tenant_id` = #{tenantId} @@ -248,6 +251,9 @@ ,`shipping_status` = #{shippingStatus} + + ,`b_tenant_id` = #{bTenantId} + where id=#{id} and `tenant_id` = #{tenantId} @@ -278,6 +284,9 @@ ,`shipping_status` = #{shippingStatus} + + ,`b_tenant_id` = #{bTenantId} + where 1=1 and `tenant_id` = #{tenantId} @@ -294,7 +303,8 @@ `b_user_id` = null, `b_merchant_id` = null, `update_date` = #{updateDate}, - `verify_type` = null + `verify_type` = null, + `b_tenant_id` = null where id=#{id} and `tenant_id` = #{tenantId} From 23b6d5179affb30aa6b0cef035fe62da82652d38 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Mon, 12 Dec 2022 16:24:04 +0800 Subject: [PATCH 119/144] fix bug --- .../com/iformall/service/impl/WxCouponOrderServiceImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index dbf104325..638a0cd96 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -402,6 +402,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { if (bUserIdList.contains(bUserId)) { bUserIdList.add(bUserId); } + mallBUserIdList.put(mallTenantId, bUserIdList); if (!mallTenantIdList.contains(mallTenantId)) { mallTenantIdList.add(mallTenantId); } @@ -922,7 +923,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { if(null != bUserId && (!bUserIdList.contains(bUserId))){ bUserIdList.add(bUserId); } - + mallBUserIdList.put(bo.getBTenantId(), bUserIdList); List merchantIdList = mallMerchantIdList.get(bo.getBTenantId()); if (null == merchantIdList) { merchantIdList = new ArrayList(); @@ -931,7 +932,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { if (null != bmerchantId && (!merchantIdList.contains(bmerchantId))) { merchantIdList.add(bmerchantId); } - + mallMerchantIdList.put(bo.getBTenantId(), merchantIdList); if (!mallTenantIdList.contains(bo.getBTenantId())) { mallTenantIdList.add(bo.getBTenantId()); } From a89f9bd387bb2173dea3b07c7dffe6f1f4c2a4d7 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Mon, 12 Dec 2022 16:52:25 +0800 Subject: [PATCH 120/144] fix bug --- .../impl/WxCouponOrderServiceImpl.java | 87 ++++++++++++------- 1 file changed, 54 insertions(+), 33 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index 638a0cd96..b61155896 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -202,6 +202,9 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { @Autowired WxCouponCarMapper wxCouponCarMapper; + + @Autowired + WxMallMapper wxMallMapper; private final SimpleDateFormat mydateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -907,7 +910,20 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { Map> mallBUserIdList = new HashMap>(); Map> mallMerchantIdList = new HashMap>(); List couponIdList = new ArrayList(); + List mallTenantIdList = new ArrayList(); + mallTenantIdList.add(couponOrderTenantEntity.getTenantId()); + //查询子广场 + WxMall wxMallq = new WxMall(); + wxMallq.setParentTenantId(couponOrderTenantEntity.getTenantId()); + List mallList = wxMallMapper.findList(wxMallq); + if ( null != mallList && mallList.size() > 0 ) { + for (WxMall mall : mallList) { + mallTenantIdList.add(mall.getTenantId()); + } + } + + for (int i = 0 ; i < list.size() ; i ++ ) { WxCouponOrder bo = list.get(i); Long cusrid = bo.getcUserId(); @@ -924,19 +940,15 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { bUserIdList.add(bUserId); } mallBUserIdList.put(bo.getBTenantId(), bUserIdList); - List merchantIdList = mallMerchantIdList.get(bo.getBTenantId()); - if (null == merchantIdList) { - merchantIdList = new ArrayList(); - } - Long bmerchantId = bo.getBMerchantId(); - if (null != bmerchantId && (!merchantIdList.contains(bmerchantId))) { - merchantIdList.add(bmerchantId); - } - mallMerchantIdList.put(bo.getBTenantId(), merchantIdList); - if (!mallTenantIdList.contains(bo.getBTenantId())) { - mallTenantIdList.add(bo.getBTenantId()); - } + List merchantIds = mallMerchantIdList.get(bo.getBTenantId()); + if (null == merchantIds) { + merchantIds = new ArrayList(); + } + if(null != bo.getMerchantId() && (!merchantIds.contains(bo.getMerchantId()))){ + merchantIds.add(bo.getMerchantId()); + } + mallMerchantIdList.put(bo.getBTenantId(), merchantIds); } Long couponId = bo.getCouponId(); if (null != couponId && (!couponIdList.contains(couponId))) { @@ -964,26 +976,6 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } - Map merchantNameMap = new HashMap(); - if (null != mallMerchantIdList && mallMerchantIdList.size() > 0 ) { - for (Iterator it = mallMerchantIdList.keySet().iterator();it.hasNext();) { - String mallTenantIt = it.next(); - List merchantIdList = mallMerchantIdList.get(mallTenantIt); - if (null != merchantIdList && merchantIdList.size() > 0 ) { - WxMerchant merchantQ = new WxMerchant(); - merchantQ.setTenantId(mallTenantIt); - merchantQ.setIds(merchantIdList); - List merchantList = wxMerchantMapper.findIdNameList(merchantQ); - if (null != merchantList) { - for (int i = 0 ; i < merchantList.size() ; i ++) { - WxMerchant m = merchantList.get(i); - merchantNameMap.put(m.getId(), m.getName()); - } - } - } - } - } - Map couponMap = new HashMap(); Map merchantProductIdMap = new HashMap(); if (null != couponIdList && couponIdList.size() > 0 ) { @@ -999,20 +991,49 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } for (int i = 0 ; i < mallTenantIdList.size(); i++) { - List merchantProductVos = wxCouponMerchantMapper.findMerchantProduct(mallTenantIdList.get(i), couponIdList); + String mallTenantId = mallTenantIdList.get(i); + List merchantIds = mallMerchantIdList.get(mallTenantId); + List merchantProductVos = wxCouponMerchantMapper.findMerchantProduct(mallTenantId, couponIdList); if (null != merchantProductVos) { + if (null == merchantIds) { + merchantIds = new ArrayList(); + } for (int j = 0 ; j < merchantProductVos.size(); j ++) { WxMerchantProductVo mp = merchantProductVos.get(j); if (mp.getMc() > 1) { merchantProductIdMap.put(mp.getProductId(), -999L); }else { merchantProductIdMap.put(mp.getProductId(), mp.getMerchantId()); + if (!merchantIds.contains(mp.getMerchantId())) { + merchantIds.add(mp.getMerchantId()); + } } } + mallMerchantIdList.put(mallTenantId, merchantIds); } } } + + Map merchantNameMap = new HashMap(); + if (null != mallMerchantIdList && mallMerchantIdList.size() > 0 ) { + for (Iterator it = mallMerchantIdList.keySet().iterator();it.hasNext();) { + String mallTenantIt = it.next(); + List merchantIdList = mallMerchantIdList.get(mallTenantIt); + if (null != merchantIdList && merchantIdList.size() > 0 ) { + WxMerchant merchantQ = new WxMerchant(); + merchantQ.setTenantId(mallTenantIt); + merchantQ.setIds(merchantIdList); + List merchantList = wxMerchantMapper.findIdNameList(merchantQ); + if (null != merchantList) { + for (int i = 0 ; i < merchantList.size() ; i ++) { + WxMerchant m = merchantList.get(i); + merchantNameMap.put(m.getId(), m.getName()); + } + } + } + } + } Map cUserMap = new HashMap(); if (cUserIdList.size() > 0) { From ed9b716e1514fe8172f7ab69ce816643f25239a2 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Mon, 12 Dec 2022 17:14:30 +0800 Subject: [PATCH 121/144] fix bug --- .../service/impl/WxCouponOrderServiceImpl.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index b61155896..ea7a63185 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -392,6 +392,16 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { List cUserIdList = new ArrayList(); List couponIdList = new ArrayList(); List mallTenantIdList = new ArrayList(); + mallTenantIdList.add(couponOrderTenantEntity.getTenantId()); + //查询子广场 + WxMall wxMallq = new WxMall(); + wxMallq.setParentTenantId(couponOrderTenantEntity.getTenantId()); + List mallList = wxMallMapper.findList(wxMallq); + if ( null != mallList && mallList.size() > 0 ) { + for (WxMall mall : mallList) { + mallTenantIdList.add(mall.getTenantId()); + } + } for (int j = 0 ; j < couponOrderList.size(); j ++) { WxCouponOrder co = couponOrderList.get(j); Long bUserId = co.getBUserId(); @@ -402,13 +412,10 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { if (null == bUserIdList) { bUserIdList = new ArrayList(); } - if (bUserIdList.contains(bUserId)) { + if (!bUserIdList.contains(bUserId)) { bUserIdList.add(bUserId); } mallBUserIdList.put(mallTenantId, bUserIdList); - if (!mallTenantIdList.contains(mallTenantId)) { - mallTenantIdList.add(mallTenantId); - } } } @@ -448,6 +455,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { merchantIdList.add(b.getMerchantId()); } } + mallMerchantIdList.put(mallTenantId, merchantIdList); } } } From 868345a03322f365598e9d9b0a629a44fe612708 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Mon, 12 Dec 2022 17:46:03 +0800 Subject: [PATCH 122/144] fix bug --- .../com/iformall/domain/po/base/TenantEntity.java | 12 ++++++++++++ .../service/impl/WxCouponOrderServiceImpl.java | 14 ++++++++++++-- .../src/main/resources/mapper/WxMallMapper.xml | 7 +++++++ 3 files changed, 31 insertions(+), 2 deletions(-) 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 74ce9e6f9..b1172ea08 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 @@ -34,6 +34,10 @@ public class TenantEntity extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value="租户编号列表,查询使用",name="tenantIdList") @TableField(exist = false) protected List tenantIdList; + + @io.swagger.annotations.ApiModelProperty(value="父租户编号列表,查询使用",name="parentTenantIdList") + @TableField(exist = false) + protected List parentTenantIdList; public void updateTenantInfo(TenantEntity info) { tenantId = info.getTenantId(); @@ -98,4 +102,12 @@ public class TenantEntity extends BaseEntity { this.tenantIdList = tenantIdList; } + public List getParentTenantIdList() { + return parentTenantIdList; + } + + public void setParentTenantIdList(List parentTenantIdList) { + this.parentTenantIdList = parentTenantIdList; + } + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index ea7a63185..37b45c41a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -395,7 +395,12 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { mallTenantIdList.add(couponOrderTenantEntity.getTenantId()); //查询子广场 WxMall wxMallq = new WxMall(); - wxMallq.setParentTenantId(couponOrderTenantEntity.getTenantId()); + List partlist = new ArrayList(); + partlist.add(couponOrderTenantEntity.getTenantId()); + if (null != couponOrderTenantEntity.getParentTenantId()) { + partlist.add(couponOrderTenantEntity.getParentTenantId()); + } + wxMallq.setParentTenantIdList(partlist); List mallList = wxMallMapper.findList(wxMallq); if ( null != mallList && mallList.size() > 0 ) { for (WxMall mall : mallList) { @@ -923,7 +928,12 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { mallTenantIdList.add(couponOrderTenantEntity.getTenantId()); //查询子广场 WxMall wxMallq = new WxMall(); - wxMallq.setParentTenantId(couponOrderTenantEntity.getTenantId()); + List partlist = new ArrayList(); + partlist.add(couponOrderTenantEntity.getTenantId()); + if (null != couponOrderTenantEntity.getParentTenantId()) { + partlist.add(couponOrderTenantEntity.getParentTenantId()); + } + wxMallq.setParentTenantIdList(partlist); List mallList = wxMallMapper.findList(wxMallq); if ( null != mallList && mallList.size() > 0 ) { for (WxMall mall : mallList) { diff --git a/mallinkService/src/main/resources/mapper/WxMallMapper.xml b/mallinkService/src/main/resources/mapper/WxMallMapper.xml index 6073cefb3..cce5879de 100644 --- a/mallinkService/src/main/resources/mapper/WxMallMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMallMapper.xml @@ -151,6 +151,13 @@ #{tIdItem} + + + and parent_tenant_id in + + #{ptIdItem} + + and id in From 76a1b30becb1b7edbb2ae988dbcfa53b3dd3abce Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 12 Dec 2022 18:29:24 +0800 Subject: [PATCH 123/144] //sharing --- .../db/migration/V2022121200001__addmenu.sql | 8 + .../enums/EnumMerchantSubsidySource.java | 2 +- .../enums/EnumMerchantSubsidyType.java | 2 +- .../service/WxCouponOrderService.java | 2 + .../impl/WxCouponOrderServiceImpl.java | 87 ++++---- .../impl/WxProfitSharingOrderServiceImpl.java | 208 +++++++++++------- 6 files changed, 193 insertions(+), 116 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V2022121200001__addmenu.sql diff --git a/mallinkAdmin/src/main/resources/db/migration/V2022121200001__addmenu.sql b/mallinkAdmin/src/main/resources/db/migration/V2022121200001__addmenu.sql new file mode 100644 index 000000000..9724c9fb0 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V2022121200001__addmenu.sql @@ -0,0 +1,8 @@ +INSERT INTO `mallink`.`mall_permission`(`id`, `name`, `parent_id`, `available`, `permission`, `resource_type`, `module_color`, `module_color_num`, `url`, `icon`, `version_type`, `sort`) VALUES (71101, '集团券订单', 610, 'Y', NULL, 1, NULL, NULL, 'groupOrderList', NULL, 0, 711); + +INSERT INTO `mallink`.`mall_permission`(`id`, `name`, `parent_id`, `available`, `permission`, `resource_type`, `module_color`, `module_color_num`, `url`, `icon`, `version_type`, `sort`) VALUES (41001, '集团自动分账', 416, 'Y', NULL, 1, NULL, NULL, 'groupSharingOrderList', NULL, 0, 412); + +INSERT INTO `mallink`.`mall_permission`(`id`, `name`, `parent_id`, `available`, `permission`, `resource_type`, `module_color`, `module_color_num`, `url`, `icon`, `version_type`, `sort`) VALUES (41101, '集团营销结算', 416, 'Y', NULL, 1, NULL, NULL, 'groupMarketingList', NULL, 0, 413); + +UPDATE `mallink`.`mall_sale_type` SET `menus` = '[1, 2, 4, 5, 6, 50, 105, 110, 201, 205, 202, 211, 212, 221, 222, 223, 224, 251, 409, 410, 411, 416, 500, 502, 504, 505, 506, 507, 508, 511, 512, 521, 522, 523, 591, 592, 595, 601, 602, 605, 606, 610, 615, 622, 647, 650, 676, 680, 711, 901, 902, 904, 907, 41001, 41101, 5310, 5320, 61501, 61502, 71101]' WHERE `id` = 102; + diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumMerchantSubsidySource.java b/mallinkService/src/main/java/com/iformall/enums/EnumMerchantSubsidySource.java index 040c4e122..92fd2d9e4 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumMerchantSubsidySource.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumMerchantSubsidySource.java @@ -12,7 +12,7 @@ public enum EnumMerchantSubsidySource { GROUP(4, "拼团核销"), CASHIER(5, "收银台"), DISTRIBUTION_GOODS(6, "可配送商品"), - GIFT_BAG(7, "券订单"),; + GIFT_BAG(7, "券礼包"),; public static EnumMerchantSubsidySource getEnum(Integer code) { for (EnumMerchantSubsidySource value : values()) { diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumMerchantSubsidyType.java b/mallinkService/src/main/java/com/iformall/enums/EnumMerchantSubsidyType.java index 1993d9820..f5ad02da2 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumMerchantSubsidyType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumMerchantSubsidyType.java @@ -5,7 +5,7 @@ package com.iformall.enums; */ public enum EnumMerchantSubsidyType { - MANUAL(1, "自主结算"), + MANUAL(1, "自主结算"),//补贴 WECHAT(2, "微信结算"), DOUYIN(3, "抖音结算"),; diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java index 047f54fd2..97e01fc9d 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java @@ -96,6 +96,8 @@ public interface WxCouponOrderService { */ void shareAfterVerify(WxCouponOrder couponOrder, WxMerchant wxMerchant,boolean mulityShare); + WxMerchantSubsidy recordAfterVerified(WxOrder order, WxMerchant wxMerchant); + /** * 核销后补贴 * @param couponOrder diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index 66df36d18..59d3fc717 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -43,6 +43,7 @@ import com.iformall.utils.RedisLock; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.lang3.StringUtils; +import org.flowable.engine.runtime.Execution; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -1718,34 +1719,45 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } } + @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public WxMerchantSubsidy recordAfterVerified(WxCouponOrder couponOrder, WxMerchant wxMerchant) { - WxCoupon wxCoupon = wxCouponMapper.selectById(couponOrder.getCouponId(),couponOrder.getTenantId()); + public WxMerchantSubsidy recordAfterVerified(WxOrder order, WxMerchant wxMerchant) { WxMerchantSubsidy merchantSubsidy = new WxMerchantSubsidy(); - merchantSubsidy.updateTenantInfo(wxMerchant); - if (couponOrder.getCouponType().equals(EnumCouponType.COUPON_PRESS.getCode()) - && couponOrder.getCouponPrice().equals(wxCoupon.getSalePrice())) { - //砍价 - merchantSubsidy.setSource(EnumMerchantSubsidySource.PRESS.getCode()); - } else if (couponOrder.getCouponType().equals(EnumCouponType.COUPON_GROUP.getCode()) - && couponOrder.getCouponPrice().equals(wxCoupon.getSalePrice())) { - //拼团 - merchantSubsidy.setSource(EnumMerchantSubsidySource.GROUP.getCode()); - } else if(couponOrder.getCouponType().equals(EnumCouponType.COUPON_DISTRIBUTION.getCode())){ - //可配送商品 - merchantSubsidy.setSource(EnumMerchantSubsidySource.DISTRIBUTION_GOODS.getCode()); - } else if(couponOrder.getCouponType().equals(EnumCouponType.COUPON_GIFT.getCode())){ - //券礼包 - merchantSubsidy.setSource(EnumMerchantSubsidySource.GIFT_BAG.getCode()); - } else { - //券 - merchantSubsidy.setSource(EnumMerchantSubsidySource.COUPON.getCode()); + merchantSubsidy.updateTenantInfo(order); + merchantSubsidy.setOrderId(order.getId()); + if(EnumOrderType.COUPON.getCode().equals(order.getType())){ + merchantSubsidy.setOrderType(EnumOrderType.COUPON.getCode()); + + WxCouponOrder couponOrderQ = new WxCouponOrder(); + couponOrderQ.setOrderId(order.getId()); + couponOrderQ.updateTenantInfo(order); + WxCouponOrder couponOrder = wxCouponOrderMapper.selectOne(new QueryWrapper<>(couponOrderQ)); +// WxCoupon wxCoupon = wxCouponMapper.selectById(couponOrder.getCouponId(),order.getTenantId()); + merchantSubsidy.setCouponOrderId(couponOrder.getId()); + merchantSubsidy.setCouponType(couponOrder.getCouponType()); + + if(EnumCouponType.COUPON_PRESS.getCode().equals(couponOrder.getCouponType())){ + merchantSubsidy.setSource(EnumMerchantSubsidySource.PRESS.getCode()); + }else if(EnumCouponType.COUPON_GROUP.getCode().equals(couponOrder.getCouponType())){ + merchantSubsidy.setSource(EnumMerchantSubsidySource.GROUP.getCode()); + }else if(EnumCouponType.COUPON_DISTRIBUTION.getCode().equals(couponOrder.getCouponType())){ + merchantSubsidy.setSource(EnumMerchantSubsidySource.DISTRIBUTION_GOODS.getCode()); + }else if(EnumCouponType.COUPON_GIFT.getCode().equals(couponOrder.getCouponType())){ + merchantSubsidy.setSource(EnumMerchantSubsidySource.GIFT_BAG.getCode()); + }else{ + merchantSubsidy.setSource(EnumMerchantSubsidySource.COUPON.getCode()); + } + }else if(EnumOrderType.MICROPAY.getCode().equals(order.getType())){ + merchantSubsidy.setOrderType(EnumOrderType.MICROPAY.getCode()); + merchantSubsidy.setSource(EnumMerchantSubsidySource.CASHIER.getCode()); + merchantSubsidy.setCouponOrderId(0l); + merchantSubsidy.setCouponType(0); + }else { + //todo 只有券和收银台的记账 +// throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"记账数据异常"); + return null; } - merchantSubsidy.setOrderId(couponOrder.getOrderId()); - merchantSubsidy.setOrderType(EnumOrderType.COUPON.getCode()); - merchantSubsidy.setCouponOrderId(couponOrder.getId()); - merchantSubsidy.setCouponType(couponOrder.getCouponType()); - merchantSubsidy.setType(payServiceFactory.getPayShareAdapterService(couponOrder.getPayVendor(),couponOrder.getPayVersion()).getSubsidyType()); + merchantSubsidy.setType(payServiceFactory.getPayShareAdapterService(order.getPayVendor(),order.getPayVersion()).getSubsidyType()); List msList = wxMerchantSubsidyMapper.selectList(new QueryWrapper(merchantSubsidy)); if (msList.size() > 0) { @@ -1757,12 +1769,11 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { merchantSubsidy.setId(idWorker.nextId()); merchantSubsidy.setMerchantId(wxMerchant.getId()); merchantSubsidy.setBTenantId(wxMerchant.getTenantId()); - merchantSubsidy.setOrderPayment(couponOrder.getCouponPrice()); - merchantSubsidy.setReceiverPayment(couponOrder.getCouponPrice()); - merchantSubsidy.setRealPayment(couponOrder.getCouponPrice()); - merchantSubsidy.setSubsidy(couponOrder.getCouponPrice()); - merchantSubsidy.setRealSubsidy(couponOrder.getCouponPrice()); - merchantSubsidy.setType(payServiceFactory.getPayShareAdapterService(couponOrder.getPayVendor(),couponOrder.getPayVersion()).getSubsidyType()); + merchantSubsidy.setOrderPayment(order.getPayment()); + merchantSubsidy.setReceiverPayment(order.getPayment()); + merchantSubsidy.setRealPayment(order.getPayment()); + merchantSubsidy.setSubsidy(order.getPayment()); + merchantSubsidy.setRealSubsidy(order.getPayment()); merchantSubsidy.setCreateDate(curDate); merchantSubsidy.setUpdateDate(curDate); merchantSubsidy.setStatus(EnumMerchantSubsidyStatus.NOT_SUBSIDY.getCode()); @@ -1770,7 +1781,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { //是否开通了商户提现,开通了商户提现往商户账户里面加金额 - cashOutService.addCashOut(wxMerchant, couponOrder.getCouponPrice()); + cashOutService.addCashOut(wxMerchant, order.getPayment()); return merchantSubsidy; } @@ -1791,24 +1802,24 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { logger.error("券订单"+couponOrder.getId()+"未查询到支付订单."); throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"券订单"+couponOrder.getId()+"未查询到支付订单."); } + WxOrder order = wxOrderService.getById(couponOrder.getOrderId(), wxPayOrder.getTenantId()); + if (null == order) { + logger.error("租户"+wxPayOrder.getTenantId()+"券订单"+couponOrder.getId()+"未查询到订单."); + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"租户"+wxPayOrder.getTenantId()+"券订单"+couponOrder.getId()+"未查询到订单."); + } if(EnumPayMchType.TOTAL.getCode().equals(wxPayOrder.getMchType()) && EnumPayShare.NO.getCode().equals(wxPayOrder.getShare())){ //总分并且不分账 记账 try { // 订单购买时未分账 核销记账,并且往账户里面记帐 if (couponOrder.getCouponPrice() > 0) { - recordAfterVerified(couponOrder, wxMerchant); + recordAfterVerified(order, wxMerchant); } } catch (Exception e) { logger.error("核销记账失败"+e.getMessage(),e); } } - WxOrder order = wxOrderService.getById(couponOrder.getOrderId(), wxPayOrder.getTenantId()); - if (null == order) { - logger.error("租户"+wxPayOrder.getTenantId()+"券订单"+couponOrder.getId()+"未查询到订单."); - throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"租户"+wxPayOrder.getTenantId()+"券订单"+couponOrder.getId()+"未查询到订单."); - } WxSharingOrderDto wxSharingOrderDto = new WxSharingOrderDto(); wxSharingOrderDto.setCUserId(wxPayOrder.getCUserId()); wxSharingOrderDto.setMerchantId(wxMerchant.getId()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java index dc59cfdc6..bd5a2a5dd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java @@ -21,13 +21,11 @@ import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.*; import com.iformall.pay.*; -import com.iformall.service.ExcelService; -import com.iformall.service.WxAppinfoService; -import com.iformall.service.WxMerchantService; -import com.iformall.service.WxProfitSharingOrderService; +import com.iformall.service.*; import com.iformall.service.order.entity.WxComposeChildOrderShare; import com.iformall.service.order.util.OrderHelper; import com.iformall.service.pay.PayServiceFactory; +import com.iformall.service.pay.service.pay.douyin.v1.miniApp.EnumTtPayChannel; import com.iformall.service.pay.service.share.PayShareAdapterService; import com.iformall.service.pay.service.share.entity.PayShareCalculateAmount; import com.iformall.service.pay.service.share.entity.PayShareQueryResult; @@ -45,6 +43,7 @@ import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Propagation; @@ -106,6 +105,10 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ @Autowired ExcelService excelService; + @Lazy + @Autowired + WxCouponOrderService wxCouponOrderService; + final JSONObject errorMap = JSON.parseObject("{" + "\"SYSTEMERROR\":{\"detail\":\"接口返回错误\",\"reason\":\"系统超时\",\"resolution\":\"系统异常,请用相同参数重新调用\"}," + "\"AMOUNT_OVERDUE\":{\"detail\":\"分账金额超限\",\"reason\":\"分账金额大于可分金额 或大于分账最大比例 \",\"resolution\":\"请调整分账金额\"}," + @@ -185,21 +188,10 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),"分账状态不允许"); } + WxMerchant merchant = wxMerchantService.getById(sharingOrder.getMerchantId()); Date currentDate = new Date(); - if(EnumPayWay.PAY_WAY_WECHAT.getCode().equals(payOrder.getPayVendor()) - && DateUtils.daysBetween(payOrder.getCreateTime(),currentDate) > 30){ - WxProfitSharingOrder updSharingOrder = new WxProfitSharingOrder(); - updSharingOrder.updateTenantInfo(sharingOrder); - updSharingOrder.setId(sharingOrder.getId()); - updSharingOrder.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_FAILED.getCode()); - updSharingOrder.setErrorMsg("微信支付超30天无法分账"); - updSharingOrder.setUpdateTime(currentDate); - wxProfitSharingOrderMapper.updateById(updSharingOrder); - - return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),"微信支付超30天无法分账"); - } PayShareAdapterService payShareAdapterService = payServiceFactory.getPayShareAdapterService(payOrder.getPayVendor(),payOrder.getPayVersion()); @@ -207,7 +199,6 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ //获取达人佣金 int cpsCommission = payShareAdapterService.getCPSCommission(sharingOrder,sharingOrder.getSingleOrderId()); - if(cpsCommission < 0){ WxProfitSharingOrder updSharingOrder = new WxProfitSharingOrder(); updSharingOrder.updateTenantInfo(sharingOrder); @@ -216,8 +207,9 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ updSharingOrder.setErrorMsg("未获取到达人佣金"); updSharingOrder.setUpdateTime(currentDate); wxProfitSharingOrderMapper.updateById(updSharingOrder); - return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),"未获取到达人佣金"); + return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),"未获取到达人佣金");//等待重试 } + JSONArray receivers = new JSONArray();//分账参数json EnumPayWay enumPayWay = EnumPayWay.getEnum(payOrder.getPayVendor()); EnumAppPlat enumPlat = enumPayWay.getPlat(); @@ -232,15 +224,21 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ wxComposeChildOrderShare = payOrder.getSingleChildOrderShare(); } wxComposeChildOrderShare.setCpsCommission(cpsCommission); + //官方手续费千6 int realRateAmount = PayUtils.getPayRate(wxComposeChildOrderShare.getRealPayMent(), payAccount.getRealRate(), true); wxComposeChildOrderShare.setRealRateAmount(realRateAmount); + //官方平台抽佣 int rate = payShareAdapterService.getOfficialCommission(wxComposeChildOrderShare.getOrderId(),payAccount); int commissionAmount = PayUtils.getPayRate(wxComposeChildOrderShare.getRealPayMent(), rate, true); wxComposeChildOrderShare.setCommissionAmount(commissionAmount); + int surplus = 0;//当广场抽成帐号与收款帐号相等,无法添加分账方,计入商管商户中 - if(EnumPayMchType.DIRECT.getCode().equals(payOrder.getMchType()) && EnumYesOrNo.YES.getCode().equals(payAccount.getIsCommission())){ + //只有抖音直连才有分账 + if(EnumPayWay.PAY_WAY_TT.getCode().equals(payOrder.getPayVendor()) + && EnumPayMchType.DIRECT.getCode().equals(payOrder.getMchType()) + && EnumYesOrNo.YES.getCode().equals(payAccount.getIsCommission())){ //销售抽点+系统抽点 int selSysAmount = PayUtils.getPayRate(wxComposeChildOrderShare.getRealPayMent(), payAccount.getSellRate()+payAccount.getSystemRate(), false); //销售抽点 @@ -322,68 +320,126 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ //商户所得 int shareAmount = wxComposeChildOrderShare.getShareAmount() + surplus; - WxProfitSharingReceiver receiver = payShareAdapterService.getReceiver(merchant,sharingOrder.getMerchantId(),payOrder.getTtPayWay(),payOrder.getMchType()); - if(EnumPayMchType.TOTAL.getCode().equals(payOrder.getMchType()) && EnumPayShare.YES.getCode().equals(payOrder.getShare())){ - JSONObject jo = new JSONObject(); - jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage()); - jo.put("account",receiver.getReceiverAccount()); - jo.put("amount", shareAmount); - jo.put("merchantId",receiver.getMerchantId()); - jo.put("bTenantId",receiver.getTenantId()); - jo.put("description",receiver.getId()); - receivers.add(jo); + boolean isCallSharing = false;//是否调用分账 + boolean isCreateSubsidy = false;//是否需要记账 + boolean isSharingResult = false;//是否需要记录Result + if(EnumPayWay.PAY_WAY_WECHAT.getCode().equals(payOrder.getPayVendor()) + && DateUtils.daysBetween(payOrder.getCreateTime(),currentDate) > 30){ + isCallSharing = false; + if(EnumPayShare.YES.getCode().equals(payOrder.getShare())){ + isCreateSubsidy = true; + } + isSharingResult = true; + }else{ + isCallSharing = true; + WxProfitSharingReceiver receiver = payShareAdapterService.getReceiver(merchant,sharingOrder.getMerchantId(),payOrder.getTtPayWay(),payOrder.getMchType()); + if(EnumPayMchType.TOTAL.getCode().equals(payOrder.getMchType()) && EnumPayShare.YES.getCode().equals(payOrder.getShare())){ + //总分 分账 抖音不支持 不支持开通 + JSONObject jo = new JSONObject(); + jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage()); + jo.put("account",receiver.getReceiverAccount()); + jo.put("amount", shareAmount); + jo.put("merchantId",receiver.getMerchantId()); + jo.put("bTenantId",receiver.getTenantId()); + jo.put("description",receiver.getId()); + receivers.add(jo); + }else if(EnumPayWay.PAY_WAY_TT.getCode().equals(payOrder.getPayVendor()) + && EnumPayMchType.DIRECT.getCode().equals(payOrder.getMchType()) + && !sharingOrder.getMerchantId().equals(wxComposeChildOrderShare.getMerchantId()) + && EnumTtPayChannel.ALI_PAY.getCode().equals(payOrder.getTtPayWay())){ + //抖音 直连 多商户 支付宝支付 进件支付宝 分账 否则记账 + JSONObject jo = new JSONObject(); + jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage()); + jo.put("account",receiver.getReceiverAccount()); + jo.put("amount", shareAmount); + jo.put("merchantId",receiver.getMerchantId()); + jo.put("bTenantId",receiver.getTenantId()); + jo.put("description",receiver.getId()); + receivers.add(jo); + }else if(EnumPayMchType.DIRECT.getCode().equals(payOrder.getMchType()) + && !sharingOrder.getMerchantId().equals(wxComposeChildOrderShare.getMerchantId())){ + isCreateSubsidy = true; + isSharingResult = true; + }else{ + isSharingResult = true; + } } - if(receivers.isEmpty()){ - shareResult = payShareAdapterService.noReciverShare(cAppInfo, payAccount, sharingOrder); + if(isCallSharing){ + if(receivers.isEmpty()){ + shareResult = payShareAdapterService.noReciverShare(cAppInfo, payAccount, sharingOrder); + }else{ + shareResult = payShareAdapterService.haveReciversShare(cAppInfo, payAccount, sharingOrder, receivers); + } + + if (null == shareResult) { + return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),"当前支付模式调用分账未返回结果"); + } + + WxProfitSharingOrder updSharingOrder = new WxProfitSharingOrder(); + updSharingOrder.updateTenantInfo(sharingOrder); + updSharingOrder.setId(sharingOrder.getId()); + updSharingOrder.setOutSettleNo(sharingOrder.getOutSettleNo()); + + updSharingOrder.setUpdateTime(currentDate); + + if(shareResult.isSuccess()){ + updSharingOrder.setPayTimeEnd(currentDate); + updSharingOrder.setSharingOrderNo(shareResult.getShareOrderNo()); + updSharingOrder.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_ACCEPTED.getCode()); + updSharingOrder.setErrorMsg(shareResult.getMsg()); + }else{ + updSharingOrder.setSharingStatus(shareResult.getCode()); + updSharingOrder.setErrorMsg(shareResult.getMsg()); + } + updSharingOrder.setPointDeduction(JSON.toJSONString(wxComposeChildOrderShare)); + updSharingOrder.setReceivers(JSON.toJSONString(receivers)); + wxProfitSharingOrderMapper.updateById(updSharingOrder); }else{ - shareResult = payShareAdapterService.haveReciversShare(cAppInfo, payAccount, sharingOrder, receivers); - } - - if (null == shareResult) { - return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),"当前支付模式调用分账未返回结果"); + WxProfitSharingOrder updSharingOrder = new WxProfitSharingOrder(); + updSharingOrder.updateTenantInfo(sharingOrder); + updSharingOrder.setId(sharingOrder.getId()); + updSharingOrder.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_DONE.getCode()); + updSharingOrder.setErrorMsg("微信支付超30天已自动解冻"); + updSharingOrder.setPointDeduction(JSON.toJSONString(wxComposeChildOrderShare)); + updSharingOrder.setReceivers(JSON.toJSONString(receivers)); + updSharingOrder.setUpdateTime(currentDate); + wxProfitSharingOrderMapper.updateById(updSharingOrder); } - - WxProfitSharingOrder updSharingOrder = new WxProfitSharingOrder(); - updSharingOrder.updateTenantInfo(sharingOrder); - updSharingOrder.setId(sharingOrder.getId()); - updSharingOrder.setOutSettleNo(sharingOrder.getOutSettleNo()); - - updSharingOrder.setUpdateTime(currentDate); - - if(shareResult.isSuccess()){ - updSharingOrder.setPayTimeEnd(currentDate); - updSharingOrder.setSharingOrderNo(shareResult.getShareOrderNo()); - updSharingOrder.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_ACCEPTED.getCode()); - updSharingOrder.setErrorMsg(shareResult.getMsg()); - }else{ - updSharingOrder.setSharingStatus(shareResult.getCode()); - updSharingOrder.setErrorMsg(shareResult.getMsg()); + + if(isCreateSubsidy){ + try { + // 微信超过30天无法分账的, + WxOrder order = wxOrderMapper.selectById(sharingOrder.getSingleOrderId(), sharingOrder.getTenantId()); + wxCouponOrderService.recordAfterVerified(order, merchant); + } catch (Exception e) { + logger.error("核销记账失败"+e.getMessage(),e); + } } - updSharingOrder.setPointDeduction(JSON.toJSONString(wxComposeChildOrderShare)); - updSharingOrder.setReceivers(JSON.toJSONString(receivers)); - wxProfitSharingOrderMapper.updateById(updSharingOrder); - - if(EnumPayMchType.TOTAL.getCode().equals(payOrder.getMchType()) && EnumPayShare.NO.getCode().equals(payOrder.getShare())){ - //解冻给收款方(广场) - JSONObject jo = new JSONObject(); - jo.put("type",EnumProfitSharingReceiverType.PROFIT_SHARING_RECEIVER_MERCHANT_ID.getMessage()); - jo.put("account",payAccount.getSubMchId()); - jo.put("amount", shareAmount); - jo.put("merchantId",0); - jo.put("bTenantId",payOrder.getTenantId()); - jo.put("description",0); - receivers.add(jo); - }else if(EnumPayMchType.DIRECT.getCode().equals(payOrder.getMchType())){ - //解冻给收款方(门店) - JSONObject jo = new JSONObject(); - jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage()); - jo.put("account",receiver.getReceiverAccount()); - jo.put("amount", shareAmount); - jo.put("merchantId",receiver.getMerchantId()); - jo.put("bTenantId",receiver.getTenantId()); - jo.put("description",receiver.getId()); - receivers.add(jo); + + if(isSharingResult){ + if(EnumPayMchType.TOTAL.getCode().equals(payOrder.getMchType()) && EnumPayShare.NO.getCode().equals(payOrder.getShare())){ + //解冻给收款方(广场) + JSONObject jo = new JSONObject(); + jo.put("type",EnumProfitSharingReceiverType.PROFIT_SHARING_RECEIVER_MERCHANT_ID.getMessage()); + jo.put("account",payAccount.getSubMchId()); + jo.put("amount", shareAmount); + jo.put("merchantId",0); + jo.put("bTenantId",payOrder.getTenantId()); + jo.put("description",0); + receivers.add(jo); + }else if(EnumPayMchType.DIRECT.getCode().equals(payOrder.getMchType())){ + WxProfitSharingReceiver receiver = payShareAdapterService.getReceiver(sharingOrder,wxComposeChildOrderShare.getMerchantId(),payOrder.getTtPayWay(),payOrder.getMchType()); + //解冻给收款方(门店) + JSONObject jo = new JSONObject(); + jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage()); + jo.put("account",receiver.getReceiverAccount()); + jo.put("amount", shareAmount); + jo.put("merchantId",receiver.getMerchantId()); + jo.put("bTenantId",receiver.getTenantId()); + jo.put("description",receiver.getId()); + receivers.add(jo); + } } try{ From 808c36cd36860bc53715fb70ed6d53d2e60f116c Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Mon, 12 Dec 2022 18:49:17 +0800 Subject: [PATCH 124/144] fix bug --- .../market/WxCouponOrderController.java | 36 +++++++++++++++++-- .../WxProfitSharingOrderController.java | 34 +++++++++++++++++- .../iformall/domain/vo/WxCouponOrderBVo.java | 3 ++ .../vo/WxProfitSharingOrderQueryVo.java | 3 ++ .../impl/WxCouponOrderServiceImpl.java | 8 +++-- .../resources/mapper/WxCouponOrderMapper.xml | 4 +++ .../mapper/WxProfitSharingOrderMapper.xml | 3 ++ 7 files changed, 86 insertions(+), 5 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java index 80cb6bc86..c9636699d 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java @@ -51,9 +51,7 @@ public class WxCouponOrderController extends BaseController { @ApiImplicitParams({ @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) - @SystemControllerLog(description = "券包-列表") public ResultData list(@ModelAttribute WxCouponOrderBVo wxCouponOrder, Integer pageNum, Integer pageSize) { - logger.debug("[" + getIpAddr() + "] WxCouponOrderController::list"); if (wxCouponOrder == null) wxCouponOrder = new WxCouponOrderBVo(); wxCouponOrder.updateTenantInfo(getTenantInfo()); if (wxCouponOrder.getMerchantName() != null && @@ -62,6 +60,24 @@ public class WxCouponOrderController extends BaseController { } return wxCouponOrderService.listAdminAsPage(wxCouponOrder, pageNum, pageSize); } + + @TenantIgnore + @ApiOperation("子商场查询集团券核销分页列表接口") + @GetMapping("groupList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + public ResultData groupList(@ModelAttribute WxCouponOrderBVo wxCouponOrder, Integer pageNum, Integer pageSize) { + if (wxCouponOrder == null) wxCouponOrder = new WxCouponOrderBVo(); + TenantEntity mallTenantEntity = getTenantInfo(); + wxCouponOrder.setTenantId(mallTenantEntity.getParentTenantId()); + if (wxCouponOrder.getMerchantName() != null && + wxCouponOrder.getMerchantName().isEmpty()) { + wxCouponOrder.setMerchantName(null); + } + wxCouponOrder.setBTenantId(mallTenantEntity.getTenantId()); + return wxCouponOrderService.listAdminAsPage(wxCouponOrder, pageNum, pageSize); + } @ApiOperation(value = "卡券详情接口") @GetMapping("detail") @@ -127,5 +143,21 @@ public class WxCouponOrderController extends BaseController { } wxCouponOrderService.exportData(false,wxCouponOrder, request, response); } + + @TenantIgnore + @GetMapping("exportGroupData") + @SystemControllerLog(description = "券订单数据-导出数据") + public void exportGroupData(@ModelAttribute WxCouponOrderBVo wxCouponOrder, HttpServletRequest request, HttpServletResponse response) { + logger.debug("[" + getIpAddr() + "] WxCouponOrderController::exportData"); + if (wxCouponOrder == null) wxCouponOrder = new WxCouponOrderBVo(); + TenantEntity mallTenantEntity = getTenantInfo(); + wxCouponOrder.setTenantId(mallTenantEntity.getParentTenantId()); + if (wxCouponOrder.getMerchantName() != null && + wxCouponOrder.getMerchantName().isEmpty()) { + wxCouponOrder.setMerchantName(null); + } + wxCouponOrder.setBTenantId(mallTenantEntity.getTenantId()); + wxCouponOrderService.exportData(false,wxCouponOrder, request, response); + } } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxProfitSharingOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxProfitSharingOrderController.java index 63d4aa213..70a437206 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxProfitSharingOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxProfitSharingOrderController.java @@ -2,9 +2,11 @@ package com.iformall.controller.market; import com.github.pagehelper.PageInfo; import com.iformall.annotation.SystemControllerLog; +import com.iformall.annotation.TenantIgnore; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.WxCUserBasicInfo; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxProfitSharingOrderQueryVo; import com.iformall.domain.vo.WxProfitSharingOrderVo; import com.iformall.service.WxProfitSharingOrderService; @@ -41,7 +43,6 @@ public class WxProfitSharingOrderController extends BaseController { @ApiImplicitParams({ @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) - @SystemControllerLog(description = "分账订单-列表") public ResultData list(@ModelAttribute WxProfitSharingOrderQueryVo order, Integer pageNum, Integer pageSize) { logger.debug("[" + getIpAddr() + "] WxProfitSharingOrderController::list"); if (null == order) { @@ -51,6 +52,24 @@ public class WxProfitSharingOrderController extends BaseController { return new ResultData(page); } + @TenantIgnore + @ApiOperation("子广场集团券核销分页列表接口") + @GetMapping("groupList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + public ResultData groupList(@ModelAttribute WxProfitSharingOrderQueryVo order, Integer pageNum, Integer pageSize) { + logger.debug("[" + getIpAddr() + "] WxProfitSharingOrderController::list"); + if (null == order) { + order = new WxProfitSharingOrderQueryVo(); + } + TenantEntity mallTenantEntity = getTenantInfo(); + order.setTenantId(mallTenantEntity.getParentTenantId()); + order.setBTenantId(mallTenantEntity.getTenantId()); + final PageInfo page = wxProfitSharingOrderService.listAsPage(order, pageNum, pageSize); + return new ResultData(page); + } + @ApiOperation("记录导出") @GetMapping("/exportData") @@ -62,6 +81,19 @@ public class WxProfitSharingOrderController extends BaseController { wxProfitSharingOrderService.exportData(order, request, response); } + @ApiOperation("记录导出") + @GetMapping("/exportGroupData") + @SystemControllerLog(description = "线上自动分账记录-导出") + public void exportGroupData(@ModelAttribute WxProfitSharingOrderQueryVo order, HttpServletRequest request, HttpServletResponse response) { + if (null == order) { + order = new WxProfitSharingOrderQueryVo(); + } + TenantEntity mallTenantEntity = getTenantInfo(); + order.setTenantId(mallTenantEntity.getParentTenantId()); + order.setBTenantId(mallTenantEntity.getTenantId()); + wxProfitSharingOrderService.exportData(order, request, response); + } + @ApiOperation("交易统计") @GetMapping("/queryOrderSummary") @SystemControllerLog(description = "分账订单-交易统计") diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponOrderBVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponOrderBVo.java index f335151ac..76edc599f 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponOrderBVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponOrderBVo.java @@ -117,6 +117,9 @@ public class WxCouponOrderBVo extends WxCouponOrder { @io.swagger.annotations.ApiModelProperty(value="1:A端发卷,2:B端发卷",name="sourceType") private Integer sourceType; + + @io.swagger.annotations.ApiModelProperty(value = "b端核销商场tenantId", name = "bTenantId") + private String bTenantId; public String getbUserName() { return bUserName; diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxProfitSharingOrderQueryVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxProfitSharingOrderQueryVo.java index 1ac4c5c93..f4da81be9 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxProfitSharingOrderQueryVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxProfitSharingOrderQueryVo.java @@ -45,6 +45,9 @@ public class WxProfitSharingOrderQueryVo extends TenantEntity { @TableField(exist = false) private Integer limit; + + @TableField(exist = false) + private String bTenantId; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index 37b45c41a..7ecb7ed33 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -404,7 +404,9 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { List mallList = wxMallMapper.findList(wxMallq); if ( null != mallList && mallList.size() > 0 ) { for (WxMall mall : mallList) { - mallTenantIdList.add(mall.getTenantId()); + if (!mallTenantIdList.contains(mall.getTenantId())) { + mallTenantIdList.add(mall.getTenantId()); + } } } for (int j = 0 ; j < couponOrderList.size(); j ++) { @@ -937,7 +939,9 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { List mallList = wxMallMapper.findList(wxMallq); if ( null != mallList && mallList.size() > 0 ) { for (WxMall mall : mallList) { - mallTenantIdList.add(mall.getTenantId()); + if (!mallTenantIdList.contains(mall.getTenantId())) { + mallTenantIdList.add(mall.getTenantId()); + } } } diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index 87c919bb5..1e7ffa831 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -787,6 +787,10 @@ AND co.update_date < #{verifyEndDate,jdbcType=TIMESTAMP} + + AND co.b_tenant_id = #{bTenantId} + + and co.coupon_id in diff --git a/mallinkService/src/main/resources/mapper/WxProfitSharingOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxProfitSharingOrderMapper.xml index 1ae142fb5..d31c1de24 100644 --- a/mallinkService/src/main/resources/mapper/WxProfitSharingOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxProfitSharingOrderMapper.xml @@ -204,6 +204,9 @@ and pso.type = #{type} + + and pso.`b_tenant_id` = #{bTenantId} + From 058478b39e919bcbe48d8b88db6789ccf43bb35a Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 12 Dec 2022 19:17:21 +0800 Subject: [PATCH 125/144] //sql --- .../main/resources/db/migration/V2022121200001__addmenu.sql | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mallinkAdmin/src/main/resources/db/migration/V2022121200001__addmenu.sql b/mallinkAdmin/src/main/resources/db/migration/V2022121200001__addmenu.sql index 9724c9fb0..faff4be65 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V2022121200001__addmenu.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V2022121200001__addmenu.sql @@ -2,7 +2,5 @@ INSERT INTO `mallink`.`mall_permission`(`id`, `name`, `parent_id`, `available`, INSERT INTO `mallink`.`mall_permission`(`id`, `name`, `parent_id`, `available`, `permission`, `resource_type`, `module_color`, `module_color_num`, `url`, `icon`, `version_type`, `sort`) VALUES (41001, '集团自动分账', 416, 'Y', NULL, 1, NULL, NULL, 'groupSharingOrderList', NULL, 0, 412); -INSERT INTO `mallink`.`mall_permission`(`id`, `name`, `parent_id`, `available`, `permission`, `resource_type`, `module_color`, `module_color_num`, `url`, `icon`, `version_type`, `sort`) VALUES (41101, '集团营销结算', 416, 'Y', NULL, 1, NULL, NULL, 'groupMarketingList', NULL, 0, 413); - -UPDATE `mallink`.`mall_sale_type` SET `menus` = '[1, 2, 4, 5, 6, 50, 105, 110, 201, 205, 202, 211, 212, 221, 222, 223, 224, 251, 409, 410, 411, 416, 500, 502, 504, 505, 506, 507, 508, 511, 512, 521, 522, 523, 591, 592, 595, 601, 602, 605, 606, 610, 615, 622, 647, 650, 676, 680, 711, 901, 902, 904, 907, 41001, 41101, 5310, 5320, 61501, 61502, 71101]' WHERE `id` = 102; +UPDATE `mallink`.`mall_sale_type` SET `menus` = '[1, 2, 4, 5, 6, 50, 105, 110, 201, 205, 202, 211, 212, 221, 222, 223, 224, 251, 409, 410, 411, 416, 500, 502, 504, 505, 506, 507, 508, 511, 512, 521, 522, 523, 591, 592, 595, 601, 602, 605, 606, 610, 615, 622, 647, 650, 676, 680, 711, 901, 902, 904, 907, 41001, 5310, 5320, 61501, 61502, 71101]' WHERE `id` = 102; From 19732d89a811b9e572e363eb6d40bff5125a824a Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Mon, 12 Dec 2022 19:45:42 +0800 Subject: [PATCH 126/144] fix bug --- .../impl/WxCouponOrderServiceImpl.java | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index 8e0f15096..c9cb23744 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -535,14 +535,31 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } } + Map> couponMerchantVoMap = null; + if (null != mallCouponMerchantVoMap) { + couponMerchantVoMap = new HashMap>(); + for (Iterator it = mallCouponMerchantVoMap.keySet().iterator();it.hasNext();) { + String mtid = it.next(); + Map> couponMerchantList = mallCouponMerchantVoMap.get(mtid); + if (null != couponMerchantList) { + for (Iterator cid = couponMerchantList.keySet().iterator();cid.hasNext();) { + Long couponId = cid.next(); + List merchantVoList = couponMerchantList.get(couponId); + if (null != merchantVoList && merchantVoList.size() > 0 ) { + List vlist = couponMerchantVoMap.get(couponId); + if (null != vlist && vlist.size() > 0 ) { + merchantVoList.addAll(vlist); + } + couponMerchantVoMap.put(couponId, merchantVoList); + } + } + } + } + } + + for (int i = 0 ; i < couponOrderList.size() ; i ++) { WxCouponOrder couponOrder = couponOrderList.get(i); - Map> couponMerchantVoMap = null; - if (!StringUtils.isBlank(couponOrder.getBTenantId())) { - if (null != mallCouponMerchantVoMap){ - couponMerchantVoMap = mallCouponMerchantVoMap.get(couponOrder.getBTenantId()); - } - } if (null == couponMerchantVoMap) { couponMerchantVoMap = new HashMap>(); } From 9c630e67147479a030d4eaa88bf8a0332d02e2c7 Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Mon, 12 Dec 2022 20:10:00 +0800 Subject: [PATCH 127/144] fix bug --- .../com/iformall/controller/market/WxCouponOrderController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java index c9636699d..432b2a2c2 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java @@ -79,12 +79,12 @@ public class WxCouponOrderController extends BaseController { return wxCouponOrderService.listAdminAsPage(wxCouponOrder, pageNum, pageSize); } + @TenantIgnore @ApiOperation(value = "卡券详情接口") @GetMapping("detail") @ApiImplicitParams({ @ApiImplicitParam(name = "couponOrderId", value = "券ID", dataType = "Long", paramType = "query", required = true) }) - @SystemControllerLog(description = "券包-卡券详情") public ResultData detail(@RequestParam("couponOrderId") Long couponOrderId) { if(couponOrderId == null) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); From 9ed6e656079f208e1fd0ebe15b46f77ac2077a6d Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Mon, 12 Dec 2022 20:15:40 +0800 Subject: [PATCH 128/144] fix bug --- .../com/iformall/controller/market/WxCouponOrderController.java | 1 + .../controller/market/WxProfitSharingOrderController.java | 2 ++ 2 files changed, 3 insertions(+) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java index 432b2a2c2..cf746d2ab 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java @@ -46,6 +46,7 @@ public class WxCouponOrderController extends BaseController { @Autowired private WxAppinfoService wxAppinfoService; + @TenantIgnore @ApiOperation("分页列表接口") @GetMapping("list") @ApiImplicitParams({ diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxProfitSharingOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxProfitSharingOrderController.java index 70a437206..f273bf335 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxProfitSharingOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxProfitSharingOrderController.java @@ -38,6 +38,7 @@ public class WxProfitSharingOrderController extends BaseController { @Autowired private WxProfitSharingOrderService wxProfitSharingOrderService; + @TenantIgnore @ApiOperation("分页列表接口") @GetMapping("list") @ApiImplicitParams({ @@ -48,6 +49,7 @@ public class WxProfitSharingOrderController extends BaseController { if (null == order) { order = new WxProfitSharingOrderQueryVo(); } + order.updateTenantInfo(getTenantInfo()); final PageInfo page = wxProfitSharingOrderService.listAsPage(order, pageNum, pageSize); return new ResultData(page); } From b68a098fa3a1021b130dd3e9b96fe9e4fafa401f Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Tue, 13 Dec 2022 14:18:17 +0800 Subject: [PATCH 129/144] fix bug --- .../migration/V2022111500001__plat_coupon.sql | 309 +++++++++++++++++- 1 file changed, 308 insertions(+), 1 deletion(-) 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 3b6d8cb11..63cf74f69 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V2022111500001__plat_coupon.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V2022111500001__plat_coupon.sql @@ -719,4 +719,311 @@ ALTER TABLE `mallink`.`wx_profit_sharing_order_99` ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; ALTER TABLE `mallink`.`wx_profit_sharing_result` -ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; \ No newline at end of file +ADD COLUMN `b_tenant_id` varchar(5) COMMENT 'b端核销商场tenantId' AFTER `merchant_id`; + +UPDATE wx_coupon_order_0 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_1 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_2 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_3 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_4 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_5 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_6 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_7 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_8 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_9 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_10 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_11 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_12 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_13 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_14 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_15 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_16 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_17 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_18 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_19 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_20 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_21 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_22 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_23 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_24 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_25 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_26 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_27 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_28 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_29 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_30 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_31 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_32 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_33 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_34 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_35 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_36 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_37 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_38 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_39 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_40 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_41 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_42 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_43 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_44 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_45 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_46 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_47 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_48 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_49 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_50 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_51 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_52 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_53 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_54 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_55 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_56 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_57 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_58 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_59 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_60 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_61 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_62 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_63 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_64 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_65 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_66 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_67 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_68 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_69 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_70 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_71 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_72 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_73 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_74 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_75 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_76 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_77 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_78 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_79 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_80 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_81 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_82 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_83 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_84 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_85 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_86 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_87 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_88 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_89 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_90 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_91 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_92 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_93 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_94 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_95 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_96 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_97 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_98 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_coupon_order_99 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); + + +UPDATE wx_profit_sharing_order_0 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_1 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_2 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_3 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_4 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_5 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_6 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_7 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_8 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_9 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_10 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_11 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_12 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_13 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_14 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_15 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_16 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_17 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_18 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_19 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_20 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_21 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_22 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_23 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_24 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_25 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_26 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_27 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_28 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_29 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_30 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_31 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_32 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_33 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_34 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_35 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_36 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_37 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_38 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_39 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_40 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_41 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_42 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_43 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_44 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_45 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_46 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_47 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_48 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_49 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_50 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_51 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_52 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_53 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_54 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_55 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_56 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_57 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_58 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_59 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_60 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_61 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_62 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_63 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_64 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_65 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_66 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_67 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_68 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_69 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_70 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_71 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_72 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_73 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_74 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_75 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_76 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_77 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_78 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_79 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_80 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_81 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_82 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_83 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_84 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_85 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_86 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_87 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_88 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_89 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_90 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_91 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_92 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_93 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_94 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_95 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_96 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_97 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_98 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_profit_sharing_order_99 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); + +UPDATE wx_merchant_subsidy_0 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_1 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_2 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_3 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_4 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_5 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_6 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_7 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_8 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_9 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_10 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_11 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_12 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_13 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_14 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_15 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_16 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_17 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_18 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_19 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_20 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_21 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_22 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_23 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_24 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_25 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_26 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_27 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_28 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_29 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_30 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_31 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_32 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_33 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_34 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_35 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_36 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_37 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_38 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_39 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_40 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_41 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_42 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_43 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_44 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_45 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_46 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_47 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_48 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_49 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_50 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_51 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_52 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_53 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_54 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_55 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_56 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_57 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_58 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_59 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_60 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_61 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_62 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_63 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_64 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_65 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_66 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_67 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_68 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_69 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_70 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_71 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_72 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_73 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_74 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_75 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_76 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_77 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_78 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_79 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_80 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_81 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_82 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_83 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_84 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_85 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_86 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_87 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_88 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_89 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_90 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_91 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_92 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_93 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_94 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_95 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_96 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_97 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_98 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); +UPDATE wx_merchant_subsidy_99 SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); + + +UPDATE wx_profit_sharing_result SET b_tenant_id = tenant_id WHERE tenant_id NOT IN ('1031','1032','1033','1034'); \ No newline at end of file From 272be1060e373008cdaf35d7964c93474b7e6bbf Mon Sep 17 00:00:00 2001 From: zhengfangyuan Date: Tue, 13 Dec 2022 14:21:48 +0800 Subject: [PATCH 130/144] fix bug --- .../controller/market/WxProfitSharingOrderController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxProfitSharingOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxProfitSharingOrderController.java index f273bf335..3d32067d7 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxProfitSharingOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxProfitSharingOrderController.java @@ -83,6 +83,7 @@ public class WxProfitSharingOrderController extends BaseController { wxProfitSharingOrderService.exportData(order, request, response); } + @TenantIgnore @ApiOperation("记录导出") @GetMapping("/exportGroupData") @SystemControllerLog(description = "线上自动分账记录-导出") From 063c759b7ffdec5793ef7bd800e965aa0cfc30bf Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 13 Dec 2022 14:27:32 +0800 Subject: [PATCH 131/144] //sharing --- .../V2022121300001__addSharingMerchantId.sql | 200 ++++++++++++++++++ .../domain/po/WxProfitSharingOrder.java | 4 +- .../domain/vo/WxProfitSharingOrderVo.java | 1 + .../impl/WxProfitSharingOrderServiceImpl.java | 10 +- .../mapper/WxProfitSharingOrderMapper.xml | 15 +- 5 files changed, 224 insertions(+), 6 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V2022121300001__addSharingMerchantId.sql diff --git a/mallinkAdmin/src/main/resources/db/migration/V2022121300001__addSharingMerchantId.sql b/mallinkAdmin/src/main/resources/db/migration/V2022121300001__addSharingMerchantId.sql new file mode 100644 index 000000000..d2a442dbb --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V2022121300001__addSharingMerchantId.sql @@ -0,0 +1,200 @@ +ALTER TABLE `mallink`.`wx_profit_sharing_order_0` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_1` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_2` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_3` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_4` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_5` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_6` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_7` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_8` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_9` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_10` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_11` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_12` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_13` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_14` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_15` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_16` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_17` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_18` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_19` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_20` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_21` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_22` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_23` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_24` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_25` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_26` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_27` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_28` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_29` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_30` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_31` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_32` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_33` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_34` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_35` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_36` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_37` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_38` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_39` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_40` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_41` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_42` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_43` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_44` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_45` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_46` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_47` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_48` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_49` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_50` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_51` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_52` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_53` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_54` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_55` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_56` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_57` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_58` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_59` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_60` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_61` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_62` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_63` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_64` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_65` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_66` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_67` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_68` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_69` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_70` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_71` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_72` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_73` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_74` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_75` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_76` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_77` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_78` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_79` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_80` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_81` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_82` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_83` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_84` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_85` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_86` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_87` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_88` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_89` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_90` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_91` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_92` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_93` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_94` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_95` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_96` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_97` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_98` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; +ALTER TABLE `mallink`.`wx_profit_sharing_order_99` +ADD COLUMN `sharing_merchant_id` bigint(20) COMMENT '实际到账商户' AFTER `pay_merchant_mch_id`; \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingOrder.java index b3bd63d29..83c7fcefd 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingOrder.java @@ -23,7 +23,9 @@ public class WxProfitSharingOrder extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="支付时收款商户,直连模式必须有",name="payMerchantId") private Long payMerchantId; @io.swagger.annotations.ApiModelProperty(value="支付时收款商户平台账号,直连模式必须有",name="payMerchantMchId") - private String payMerchantMchId; + private String payMerchantMchId; + @io.swagger.annotations.ApiModelProperty(value="实际到账商户",name="sharingMerchantId") + private Long sharingMerchantId; @io.swagger.annotations.ApiModelProperty(value="支付订单ID",name="wxPayOrderId") private Long orderId; @io.swagger.annotations.ApiModelProperty(value="支付渠道: (抖音分账用)",name="payVendor") diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxProfitSharingOrderVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxProfitSharingOrderVo.java index 51a7cdae8..ee944d3cd 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxProfitSharingOrderVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxProfitSharingOrderVo.java @@ -22,6 +22,7 @@ public class WxProfitSharingOrderVo extends TenantEntity { private String payMerchantMchId; private Long merchantId; private String mchId; + private Long sharingMerchantId; @Excel(name="商户名称",width = 20,orderNum = "2") private String merchantName; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java index bd5a2a5dd..c39ef6c5d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java @@ -379,6 +379,11 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ WxProfitSharingOrder updSharingOrder = new WxProfitSharingOrder(); updSharingOrder.updateTenantInfo(sharingOrder); updSharingOrder.setId(sharingOrder.getId()); + if(isSharingResult){ + updSharingOrder.setSharingMerchantId(sharingOrder.getPayMerchantId()); + }else{ + updSharingOrder.setSharingMerchantId(sharingOrder.getMerchantId()); + } updSharingOrder.setOutSettleNo(sharingOrder.getOutSettleNo()); updSharingOrder.setUpdateTime(currentDate); @@ -399,6 +404,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ WxProfitSharingOrder updSharingOrder = new WxProfitSharingOrder(); updSharingOrder.updateTenantInfo(sharingOrder); updSharingOrder.setId(sharingOrder.getId()); + updSharingOrder.setSharingMerchantId(sharingOrder.getPayMerchantId()); updSharingOrder.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_DONE.getCode()); updSharingOrder.setErrorMsg("微信支付超30天已自动解冻"); updSharingOrder.setPointDeduction(JSON.toJSONString(wxComposeChildOrderShare)); @@ -418,7 +424,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ } if(isSharingResult){ - if(EnumPayMchType.TOTAL.getCode().equals(payOrder.getMchType()) && EnumPayShare.NO.getCode().equals(payOrder.getShare())){ + if(EnumPayMchType.TOTAL.getCode().equals(payOrder.getMchType())){ //解冻给收款方(广场) JSONObject jo = new JSONObject(); jo.put("type",EnumProfitSharingReceiverType.PROFIT_SHARING_RECEIVER_MERCHANT_ID.getMessage()); @@ -517,6 +523,8 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ } record.setPayMerchantId(childOrderShare.getMerchantId()); record.setPayMerchantMchId(childOrderShare.getMerchantUid()); + }else{ + record.setPayMerchantId(0l); } record.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_READY.getCode()); // record.setPointDeduction(JSON.toJSONString(childOrderShare)); diff --git a/mallinkService/src/main/resources/mapper/WxProfitSharingOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxProfitSharingOrderMapper.xml index d31c1de24..89910be78 100644 --- a/mallinkService/src/main/resources/mapper/WxProfitSharingOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxProfitSharingOrderMapper.xml @@ -10,6 +10,7 @@ + @@ -31,7 +32,7 @@ - `id`,`tenant_id`,`parent_tenant_id`,`out_settle_no`,`merchant_id`,`b_tenant_id`,`pay_merchant_id`,`pay_merchant_mch_id`,`order_id`,`pay_vendor`,`pay_version`,`mch_type`,`pay_amount`, + `id`,`tenant_id`,`parent_tenant_id`,`out_settle_no`,`merchant_id`,`b_tenant_id`,`pay_merchant_id`,`pay_merchant_mch_id`,`sharing_merchant_id`,`order_id`,`pay_vendor`,`pay_version`,`mch_type`,`pay_amount`, `single_order_amount`,`single_order_id`,`pay_time_end`,`pay_time_start`,`transaction_id`,`sharing_order_no`,`type`,`point_deduction`,`receivers`,`error_msg`,`sharing_status`,`update_time`,`create_time` @@ -65,8 +66,12 @@ and `pay_merchant_mch_id` = #{payMerchantMchId} - - + + + + and `sharing_merchant_id` = #{sharingMerchantId} + + and `order_id` = #{orderId} @@ -161,6 +166,7 @@ + @@ -180,7 +186,8 @@ - - - + @@ -168,6 +166,7 @@ + @@ -184,11 +183,13 @@ + + + update wx_merchant set credit_locked = #{creditLocked} where tenant_id = #{tenantId} From d4df4626fe28aea45191cf619e12952261878f72 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 14 Dec 2022 17:10:52 +0800 Subject: [PATCH 143/144] //credit --- .../main/java/com/iformall/domain/vo/WxCreditHistoryVo.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxCreditHistoryVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxCreditHistoryVo.java index 04d283223..f5bbb1f7d 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxCreditHistoryVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxCreditHistoryVo.java @@ -47,7 +47,9 @@ public class WxCreditHistoryVo extends BaseTenantEntity { @io.swagger.annotations.ApiModelProperty(value = "操作人类型", name = "operator") private Integer operatorType; - @Excel(name = "操作说明", width = 20, orderNum = "9", replace = {"每日登录_1", "消费_2", "绑车牌_3", "连接WIFI_4", "微信用户昵称授权_5", "微信用户手机授权_6", "完善个人信息_7", "会员导入_8", "会员成长值扣减_9", "新增积分_10", "积分兑换_11", "消费积分_12", "活动报名_13", "积分清零计划_14", "游戏消耗积分_15", "游戏奖励积分_16"}) + @Excel(name = "操作说明", width = 20, orderNum = "9", replace = {"每日登录_1", "消费_2", "绑车牌_3", "连接WIFI_4", "微信用户昵称授权_5", "微信用户手机授权_6", "完善个人信息_7", "会员导入_8", "会员成长值扣减_9", "新增积分_10", "积分兑换_11", "消费积分_12", "活动报名_13", + "积分清零计划_14", "游戏消耗积分_15", "游戏奖励积分_16", "每日签到_17", "连续签到7天_18", "连续签到14天_19", "连续签到28天_20" + , "问卷奖励积分_21", "消费退款_22", "积分兑换退款_23", "其他积分变动_24"}) @io.swagger.annotations.ApiModelProperty(value = "积分类型", name = "creditType") private Integer creditType; From bf490288de43492089a2cccb9dbf91de7c203607 Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 20 Dec 2022 21:13:11 +0800 Subject: [PATCH 144/144] //mallTenantId --- .../interceptor/CurrentTenantInterceptor.java | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/interceptor/CurrentTenantInterceptor.java b/mallinkAdmin/src/main/java/com/iformall/interceptor/CurrentTenantInterceptor.java index 466c7a151..5bad90e4e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/interceptor/CurrentTenantInterceptor.java +++ b/mallinkAdmin/src/main/java/com/iformall/interceptor/CurrentTenantInterceptor.java @@ -3,7 +3,11 @@ package com.iformall.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.alibaba.fastjson.JSONObject; +import com.iformall.domain.po.WxMall; +import com.iformall.service.WxMallService; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; @@ -21,12 +25,37 @@ import com.iformall.utils.Constant; @Component public class CurrentTenantInterceptor extends HandlerInterceptorAdapter { + @Autowired + private WxMallService wxMallService; + @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - - String tenantId = (String)request.getSession().getAttribute(UserSession.tenantId); - String parenTenantId = (String)request.getSession().getAttribute(UserSession.parentTenantId); - + + //集团版中针对某一商场的业务需要传递mallTenantId + String mallTenantId = request.getHeader("mallTenantId"); + if(StringUtils.isBlank(mallTenantId)){ + mallTenantId = request.getParameter("mallTenantId"); + } + if(StringUtils.isBlank(mallTenantId)){ + try{ + String body = ((BodyReaderHttpServletRequestWrapper) request).getBody(); + mallTenantId = JSONObject.parseObject(body).getString("mallTenantId"); + }catch(Exception e){} + } + + String tenantId = null; + String parenTenantId = null; + if(StringUtils.isNotBlank(mallTenantId)){ + tenantId = mallTenantId; + WxMall mall = wxMallService.getByTenantId(tenantId); + if(StringUtils.isNotBlank(mall.getParentTenantId())){ + parenTenantId = mall.getParentTenantId(); + } + }else{ + tenantId = (String)request.getSession().getAttribute(UserSession.tenantId); + parenTenantId = (String)request.getSession().getAttribute(UserSession.parentTenantId); + } + TenantThreadLocal.setCurrentThreadTenant(tenantId, parenTenantId); TenantIgnore annotation = null;