From c53f26f1392d686757ae1d3a6d31c8adf6bf7aba Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 6 Jan 2021 10:55:36 +0800 Subject: [PATCH 01/29] youxi --- .../iformall/controller/WxGameController.java | 15 +++---- .../service/impl/WxGameServiceImpl.java | 40 ++++++++++--------- .../java/com/iformall/utils/Constant.java | 9 +++++ 3 files changed, 39 insertions(+), 25 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java index df4086083..79cfa6d91 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java @@ -6,6 +6,7 @@ import com.iformall.domain.po.*; import com.iformall.enums.EnumGameStatus; import com.iformall.service.WxCouponOrderService; import com.iformall.service.WxGameService; +import com.iformall.utils.Constant; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @@ -105,16 +106,16 @@ public class WxGameController extends BaseController { return new ResultData(ErrorCode.GAME_NOT_FOUND); } int playLimit = (int) data.get("playLimit"); - if(playLimit < 0){ + if(playLimit < Constant.limit){ return new ResultData(ErrorCode.GAME_NOT_COUNT); } int AwardLimit = (int) data.get("AwardLimit"); int AwardCount = (int) data.get("AwardCount"); - if(AwardLimit != 0 && AwardCount >= AwardLimit){ + if(AwardLimit != Constant.limit && AwardCount >= AwardLimit){ return new ResultData(ErrorCode.GAME_NOT_WIN_COUNT); } int playCount = (int) data.get("playCount"); - if((playLimit > 0 && playCount >= playLimit) || playLimit < 0){ + if((playLimit > Constant.limit && playCount >= playLimit) || playLimit == Constant.notLimit){ return new ResultData(ErrorCode.GAME_NOT_HAVE_COUNT); } ResultData resultData = wxGameService.luckDraw(gameIdL, getMemberId(),0); @@ -141,19 +142,19 @@ public class WxGameController extends BaseController { return new ResultData(ErrorCode.GAME_NOT_FOUND); } int playLimit = (int) data.get("playLimit"); - if(playLimit < 0){ + if(playLimit < Constant.limit){ return new ResultData(ErrorCode.GAME_NOT_COUNT); } int AwardLimit = (int) data.get("AwardLimit"); int AwardCount = (int) data.get("AwardCount"); - if(AwardLimit != 0 && AwardCount >= AwardLimit){ + if(AwardLimit != Constant.limit && AwardCount >= AwardLimit){ return new ResultData(ErrorCode.GAME_NOT_WIN_COUNT); } int playCount = (int) data.get("playCount"); - if((playLimit > 0 && playCount >= playLimit) || playLimit < 0){ + if((playLimit > Constant.limit && playCount >= playLimit) || playLimit == Constant.notLimit){ int playCreditLimit = (int) data.get("playCreditLimit"); int playCreditCount = (int) data.get("playCreditCount"); - if((playCreditLimit > 0 && playCreditCount >= playCreditLimit) || playCreditLimit < 0){//积分不能玩了 + if((playCreditLimit > Constant.limit && playCreditCount >= playCreditLimit) || playCreditLimit == Constant.notLimit){//积分不能玩了 return new ResultData(ErrorCode.GAME_NOT_HAVEC_COUNT); } }else{ diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java index 587ba2933..2840b8ec1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java @@ -157,7 +157,7 @@ public class WxGameServiceImpl implements WxGameService { WxGameActionLog wxGameActionLog = new WxGameActionLog(); - if(wxGame.getLimitType().equals(1)){//每天 + if(wxGame.getLimitType().equals(Constant.limitType)){//每天 Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.set(Calendar.HOUR_OF_DAY, 0); @@ -197,11 +197,11 @@ public class WxGameServiceImpl implements WxGameService { map.put("AwardCount",AwardCount);//当前中奖次数 boolean playAble = true; - if(AwardLimit != 0 && AwardCount >= AwardLimit){//中奖次数没了,不能完了 + if(AwardLimit != Constant.limit && AwardCount >= AwardLimit){//中奖次数没了,不能完了 playAble = false; } - if((playLimit > 0 && playCount >= playLimit) || playLimit < 0){//免费不能玩了 - if((playCreditLimit > 0 && playCreditCount >= playCreditLimit) || playCreditLimit < 0){//积分不能玩了 + if((playLimit > Constant.limit && playCount >= playLimit) || playLimit == Constant.notLimit){//免费不能玩了 + if((playCreditLimit > Constant.limit && playCreditCount >= playCreditLimit) || playCreditLimit == Constant.notLimit){//积分不能玩了 playAble = false; } } @@ -231,15 +231,16 @@ public class WxGameServiceImpl implements WxGameService { List couponIdsList = new ArrayList(); JSONArray couponChannelIds = JSON.parseArray(record.getCouponIds()); ValueOperations operations = cdRedisTemplate.opsForValue(); - for(int i=0; i map = new HashMap<>(); - map.put("prizeType",0); + map.put("prizeType",Constant.creditPlayType); map.put("gameWeight",couponChanObj.getInteger("weight")); map.put("credit",couponChanObj.getInteger("credit")); - map.put("couponId",couponChanObj.getLong("couponId")); + map.put("id",couponChanObj.getInteger("id")); +// map.put("couponId",couponChanObj.getLong("couponId")); couponIdsList.add(map); }else{ Long couponId = couponChanObj.getLong("couponId"); @@ -327,14 +328,17 @@ public class WxGameServiceImpl implements WxGameService { // 上架 couponChannel 更新 for(int i=0; i 0){ - wxGameActionLog.setType(1); + wxGameActionLog.setType(Constant.creditPlayType); } wxGameActionLog.setCouponOrderId(orderId); wxGameActionLog.setAddCredit(addCredit); diff --git a/mallinkService/src/main/java/com/iformall/utils/Constant.java b/mallinkService/src/main/java/com/iformall/utils/Constant.java index 51d0b893c..0cf5eb9d8 100644 --- a/mallinkService/src/main/java/com/iformall/utils/Constant.java +++ b/mallinkService/src/main/java/com/iformall/utils/Constant.java @@ -10,6 +10,15 @@ public class Constant { public static final int WX_LIMIT_DAYS = 30; // 微信分账限制30天 + //游戏常量 + public static final int limit = 0;//游戏玩法不限次数 + public static final int notLimit = -1;//游戏玩法不限能玩 + + public static final int creditPlayType = 1;//积分玩法类型 + public static final Long creditPlayOrderIdTab = -1L;//积分中奖 orderId标识 + + public static final int limitType = 1;//游戏玩法次数类型 表示每天的次数 + // 前端未初始常量 public static final String UNDEFINED = "undefined"; From 969194697ec75710f3cbd062d8f04d4e0a7c1457 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 6 Jan 2021 11:02:15 +0800 Subject: [PATCH 02/29] youxi --- .../iformall/controller/WxGameController.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java index 79cfa6d91..c781c52c4 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java @@ -96,7 +96,7 @@ public class WxGameController extends BaseController { @ApiImplicitParams({ @ApiImplicitParam(name = "gameId", value = "游戏ID", dataType = "String", paramType = "query", required = true)}) public ResultData freeGameGo(@RequestBody Map paramMap) { - try { +// try { Long gameIdL = Long.valueOf(paramMap.get("gameId")); if(gameIdL == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); @@ -121,9 +121,9 @@ public class WxGameController extends BaseController { ResultData resultData = wxGameService.luckDraw(gameIdL, getMemberId(),0); removeCacheCUser(); return resultData; - } catch (Exception e){ - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); - } +// } catch (Exception e){ +// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); +// } } @@ -132,7 +132,7 @@ public class WxGameController extends BaseController { @ApiImplicitParams({ @ApiImplicitParam(name = "gameId", value = "游戏ID", dataType = "String", paramType = "query", required = true)}) public ResultData freeCridetGameGo(@RequestBody Map paramMap) { - try { +// try { Long gameIdL = Long.valueOf(paramMap.get("gameId")); if(gameIdL == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); @@ -163,9 +163,9 @@ public class WxGameController extends BaseController { ResultData resultData = wxGameService.cridetLuckDraw(gameIdL, getMemberId()); removeCacheCUser(); return resultData; - } catch (Exception e){ - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); - } +// } catch (Exception e){ +// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); +// } } From 34bc5ba7c866d7dbb4b9119027472f811dcfa7fa Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 6 Jan 2021 11:08:02 +0800 Subject: [PATCH 03/29] youxi --- .../iformall/controller/WxGameController.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java index c781c52c4..f5322b458 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java @@ -4,6 +4,7 @@ import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.enums.EnumGameStatus; +import com.iformall.exception.MallinkException; import com.iformall.service.WxCouponOrderService; import com.iformall.service.WxGameService; import com.iformall.utils.Constant; @@ -96,7 +97,7 @@ public class WxGameController extends BaseController { @ApiImplicitParams({ @ApiImplicitParam(name = "gameId", value = "游戏ID", dataType = "String", paramType = "query", required = true)}) public ResultData freeGameGo(@RequestBody Map paramMap) { -// try { + try { Long gameIdL = Long.valueOf(paramMap.get("gameId")); if(gameIdL == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); @@ -121,9 +122,11 @@ public class WxGameController extends BaseController { ResultData resultData = wxGameService.luckDraw(gameIdL, getMemberId(),0); removeCacheCUser(); return resultData; -// } catch (Exception e){ -// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); -// } + } catch (MallinkException e){ + return new ResultData(ErrorCode.getByCode(e.getErrorCode())); + } catch (Exception e){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + } } @@ -132,7 +135,7 @@ public class WxGameController extends BaseController { @ApiImplicitParams({ @ApiImplicitParam(name = "gameId", value = "游戏ID", dataType = "String", paramType = "query", required = true)}) public ResultData freeCridetGameGo(@RequestBody Map paramMap) { -// try { + try { Long gameIdL = Long.valueOf(paramMap.get("gameId")); if(gameIdL == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); @@ -163,9 +166,11 @@ public class WxGameController extends BaseController { ResultData resultData = wxGameService.cridetLuckDraw(gameIdL, getMemberId()); removeCacheCUser(); return resultData; -// } catch (Exception e){ -// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); -// } + } catch (MallinkException e){ + return new ResultData(ErrorCode.getByCode(e.getErrorCode())); + } catch (Exception e){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + } } From 630f51381dd8dcb1a925ea14f09812d956bb0167 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 6 Jan 2021 11:21:51 +0800 Subject: [PATCH 04/29] youxi --- .../main/java/com/iformall/service/impl/WxGameServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java index 2840b8ec1..26e87fc8a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java @@ -516,7 +516,7 @@ public class WxGameServiceImpl implements WxGameService { wxCreditHistory.setCreditType(EnumScoreType.GAME_LES_CREDIT.getCode()); wxCreditHistory.setChangePurpose(EnumScoreType.GAME_LES_CREDIT.getMessage()); wxCreditHistoryService.creditUsercheck(wxCreditHistory.getCUserId(),wxGame) ; - WxCreditHistory credit = wxCreditHistoryService.saveOrUpdate(wxCreditHistory); + wxCreditHistoryService.saveOrUpdate(wxCreditHistory); return this.luckDraw(gameId,userId,wxGame.getPlayCredit()); }else{ From 4ec388fb6eab103aa9f8579b16ead42486180fb4 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 6 Jan 2021 11:35:48 +0800 Subject: [PATCH 05/29] youxi --- .../main/java/com/iformall/service/impl/WxGameServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java index 26e87fc8a..519ae2a06 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java @@ -462,8 +462,9 @@ public class WxGameServiceImpl implements WxGameService { wxCreditHistoryService.saveOrUpdate(wxCreditHistory); addCredit = credit; orderId = Constant.creditPlayOrderIdTab; + }else{ + resultData.data = null; } - resultData.data = null; // } }else if(data instanceof WxCouponChannelVo){ From a16b48e6ad0a85c131c778836b81673738c35d3e Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 6 Jan 2021 11:43:40 +0800 Subject: [PATCH 06/29] youxi --- .../main/java/com/iformall/service/impl/WxGameServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java index 519ae2a06..9e58e0885 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java @@ -239,7 +239,7 @@ public class WxGameServiceImpl implements WxGameService { map.put("prizeType",Constant.creditPlayType); map.put("gameWeight",couponChanObj.getInteger("weight")); map.put("credit",couponChanObj.getInteger("credit")); - map.put("id",couponChanObj.getInteger("id")); + map.put("id",couponChanObj.getLong("id")); // map.put("couponId",couponChanObj.getLong("couponId")); couponIdsList.add(map); }else{ From f918961e56c8751f0d2fb5cf4ae810f65fb5de88 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 6 Jan 2021 14:11:36 +0800 Subject: [PATCH 07/29] youxi --- .../controller/WxUserGrantController.java | 2 ++ .../com/iformall/domain/po/WxCUserBasicInfo.java | 3 +++ .../service/impl/WxCUserBasicInfoServiceImpl.java | 3 +++ .../iformall/service/impl/WxGameServiceImpl.java | 15 +++++++-------- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index 8bdd6397a..2a2a157ad 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -946,6 +946,8 @@ public class WxUserGrantController extends BaseController { record.setAddress(wxCUserBasicInfo.getAddress()); record.setUpdateDate(new Date()); record.setFinalTenantId(tenantEntity.getFinalTenantId()); + record.setChildrenList(wxCUserBasicInfo.getChildrenList()); + record.setUpdChild(true); wxCUserBasicInfoService.update(record); wxScoreRulesService.addScore(tenantEntity,EnumScoreType.COMPLETE_INFO, record); //增加积分 diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java index f72f07bac..4563715be 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java @@ -130,6 +130,9 @@ public class WxCUserBasicInfo extends TenantEntityWithoutFinalTenantId { @TableField(exist = false) private List childrenList; + @TableField(exist = false) + private boolean updChild = false; + @TableField(exist = false) private String tagIds; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index 7f462cb86..c8fe9ecd5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -642,6 +642,9 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc @Override public void update(WxCUserBasicInfo record) { + if(record.isUpdChild()){ + + } wxCUserBasicInfoMapper.updateById(record); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java index 9e58e0885..feacfb712 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java @@ -235,13 +235,13 @@ public class WxGameServiceImpl implements WxGameService { JSONObject couponChanObj = (JSONObject) couponChannelIds.get(i); Integer prizeType = couponChanObj.getInteger("prizeType"); if(prizeType != null && prizeType == Constant.creditPlayType){ - Map map = new HashMap<>(); - map.put("prizeType",Constant.creditPlayType); - map.put("gameWeight",couponChanObj.getInteger("weight")); - map.put("credit",couponChanObj.getInteger("credit")); - map.put("id",couponChanObj.getLong("id")); -// map.put("couponId",couponChanObj.getLong("couponId")); - couponIdsList.add(map); +// Map jsonToMap = JSONObject.parseObject(couponChanObj.toJSONString()); +// Map map = new HashMap<>(); +// map.put("prizeType",Constant.creditPlayType); +// map.put("gameWeight",couponChanObj.getInteger("weight")); +// map.put("credit",couponChanObj.getInteger("credit")); +// map.put("id",couponChanObj.getLong("id")); + couponIdsList.add(couponChanObj); }else{ Long couponId = couponChanObj.getLong("couponId"); @@ -331,7 +331,6 @@ public class WxGameServiceImpl implements WxGameService { Integer prizeType = obj.getInteger("prizeType"); if(prizeType == null || prizeType != Constant.creditPlayType){ Long couponId = obj.getLong("couponId"); - int weight = obj.getIntValue("weight"); try { if(couponId != null){ saveOrUpdateCouponChannel(couponId, wxCouponChannelsMap, record); From 5a7e1e28f975f4db41cf61703e384260e602e786 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 6 Jan 2021 14:41:11 +0800 Subject: [PATCH 08/29] child --- .../iformall/controller/BaseController.java | 18 +++++++++++++++++- .../mapper/WxCUserBasicChildMapper.java | 2 ++ .../service/WxCUserBasicChildService.java | 1 + .../service/WxCUserBasicInfoService.java | 3 --- .../impl/WxCUserBasicChildServiceImpl.java | 5 +++++ .../impl/WxCUserBasicInfoServiceImpl.java | 14 +++++++++++++- .../mapper/wxCUserBasicChildMapper.xml | 5 +++++ 7 files changed, 43 insertions(+), 5 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java index 62367cbae..c5367b197 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/BaseController.java @@ -3,6 +3,7 @@ package com.iformall.controller; import cn.binarywang.wx.miniapp.api.WxMaService; import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; +import com.iformall.domain.po.WxCUserBasicChild; import com.iformall.domain.po.base.BaseCUserEntity; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.WxAppinfo; @@ -11,6 +12,7 @@ import com.iformall.domain.po.WxCUserBasicInfo; import com.iformall.exception.MallinkException; import com.iformall.service.CUserTokenService; import com.iformall.service.WxAppinfoService; +import com.iformall.service.WxCUserBasicChildService; import com.iformall.service.WxCUserBasicInfoService; import com.iformall.service.wechat.FmOpenService; import com.iformall.utils.Constant; @@ -35,6 +37,7 @@ import java.beans.PropertyEditorSupport; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; @RestController public class BaseController { @@ -52,6 +55,9 @@ public class BaseController { @Autowired private WxCUserBasicInfoService wxCUserBasicInfoService; + + @Autowired + private WxCUserBasicChildService wxCUserBasicChildService; @Autowired private CUserTokenService cUserTokenService; @@ -156,7 +162,9 @@ public class BaseController { if (member == null) { throw new MallinkException(ErrorCode.USER_IS_EMPTY); } - RedisCacheUtils.cache(cuserBasicInfoTemplate, key, member, seconds); + setCUserBasicChild(member); + + RedisCacheUtils.cache(cuserBasicInfoTemplate, key, member, seconds); } return member; } @@ -276,5 +284,13 @@ public class BaseController { return ipaddress; } + private void setCUserBasicChild(WxCUserBasicInfo basicInfo){ + WxCUserBasicChild child = new WxCUserBasicChild(); + child.setCUserId(basicInfo.getId()); + child.setTenantId(basicInfo.getFinalTenantId()); + List list = wxCUserBasicChildService.findList(child); + basicInfo.setChildrenList(list); + } + } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicChildMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicChildMapper.java index 31a42e63d..7714f39c9 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicChildMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicChildMapper.java @@ -2,6 +2,7 @@ package com.iformall.mapper; import com.iformall.common.CommonMapper; import com.iformall.domain.po.WxCUserBasicChild; +import com.iformall.domain.po.WxCUserBasicInfo; import com.iformall.domain.po.WxCreditHistory; import java.util.List; @@ -12,4 +13,5 @@ public interface WxCUserBasicChildMapper extends CommonMapper childrenList = record.getChildrenList(); + if(childrenList != null && childrenList.size() > 0){ + for (WxCUserBasicChild child:childrenList) { + wxCUserBasicChildService.saveOrUpdate(child); + } + } } wxCUserBasicInfoMapper.updateById(record); } diff --git a/mallinkService/src/main/resources/mapper/wxCUserBasicChildMapper.xml b/mallinkService/src/main/resources/mapper/wxCUserBasicChildMapper.xml index aa54d63a5..bb8fa1890 100644 --- a/mallinkService/src/main/resources/mapper/wxCUserBasicChildMapper.xml +++ b/mallinkService/src/main/resources/mapper/wxCUserBasicChildMapper.xml @@ -65,4 +65,9 @@ update wx_c_user_basic_child set del_status = 0 where id = #{id} and tenant_id = #{tenantId} + + + delete from wx_c_user_basic_child where c_user_id = #{cUserId} and tenant_id = #{tenantId} + + From 71730c8c1f28b017155772df716ef10032dc4ea2 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 6 Jan 2021 14:58:25 +0800 Subject: [PATCH 09/29] child --- .../src/main/java/com/iformall/controller/WxGameController.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java index f5322b458..1243fb60f 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java @@ -125,6 +125,7 @@ public class WxGameController extends BaseController { } catch (MallinkException e){ return new ResultData(ErrorCode.getByCode(e.getErrorCode())); } catch (Exception e){ + e.printStackTrace(); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } @@ -169,6 +170,7 @@ public class WxGameController extends BaseController { } catch (MallinkException e){ return new ResultData(ErrorCode.getByCode(e.getErrorCode())); } catch (Exception e){ + e.printStackTrace(); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } From 8cd81f6e0ed4854aa99be5c3defb9edca41176bc Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 6 Jan 2021 15:05:50 +0800 Subject: [PATCH 10/29] child --- .../src/main/java/com/iformall/controller/WxGameController.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java index 1243fb60f..86a679560 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java @@ -73,6 +73,7 @@ public class WxGameController extends BaseController { Long orderIdL = Long.valueOf(paramMap.get("orderId")); return wxGameService.addActionLog(getMemberId(), gameIdL, orderIdL,getTenantInfo()); } catch (Exception e){ + e.printStackTrace(); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } @@ -87,6 +88,7 @@ public class WxGameController extends BaseController { Long gameIdL = Long.valueOf(gameId); return wxGameService.getCount(gameIdL,getMemberId()); } catch (Exception e){ + e.printStackTrace(); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } From 7734b35c9faa6b3b3619e5500e68684b9630d1bb Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 6 Jan 2021 15:06:49 +0800 Subject: [PATCH 11/29] child --- .../main/java/com/iformall/service/impl/WxGameServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java index feacfb712..fe623cca3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java @@ -427,7 +427,7 @@ public class WxGameServiceImpl implements WxGameService { int weight = 0; if(a instanceof Map){ Map map = (Map) a; - weight = (int) map.get("gameWeight"); + weight = (int) map.get("weight"); }else if(a instanceof WxCouponChannelVo){ WxCouponChannelVo vo = (WxCouponChannelVo) a; weight = vo.getGameWeight(); From b78fbc06a0fef9c24501a65ecabee5a4ef75b9ca Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 6 Jan 2021 15:42:12 +0800 Subject: [PATCH 12/29] child --- .../iformall/controller/WxGameController.java | 6 +-- .../service/impl/WxGameServiceImpl.java | 43 ++++++++++--------- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java index 86a679560..152f598a5 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java @@ -148,9 +148,9 @@ public class WxGameController extends BaseController { return new ResultData(ErrorCode.GAME_NOT_FOUND); } int playLimit = (int) data.get("playLimit"); - if(playLimit < Constant.limit){ - return new ResultData(ErrorCode.GAME_NOT_COUNT); - } +// if(playLimit < Constant.limit){ +// return new ResultData(ErrorCode.GAME_NOT_COUNT); +// } int AwardLimit = (int) data.get("AwardLimit"); int AwardCount = (int) data.get("AwardCount"); if(AwardLimit != Constant.limit && AwardCount >= AwardLimit){ diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java index fe623cca3..9aff46933 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java @@ -425,12 +425,13 @@ public class WxGameServiceImpl implements WxGameService { if(couponIdsList != null || couponIdsList.size() > 0){ for (Object a:couponIdsList) { int weight = 0; - if(a instanceof Map){ - Map map = (Map) a; - weight = (int) map.get("weight"); - }else if(a instanceof WxCouponChannelVo){ + if(a instanceof WxCouponChannelVo){ WxCouponChannelVo vo = (WxCouponChannelVo) a; weight = vo.getGameWeight(); + }else if(a instanceof JSONObject){ + JSONObject map = (JSONObject) a; + Integer w = map.getInteger("weight"); + weight = (w==null?0:w); } y += weight; if(x <= y){ @@ -443,12 +444,25 @@ public class WxGameServiceImpl implements WxGameService { Long orderId = 0L; Integer addCredit = 0; if(data != null){ - if(data instanceof Map){ - Map dataMap = (Map) data; + if(data instanceof WxCouponChannelVo){ + WxCouponChannelVo vo = (WxCouponChannelVo) data; + OrderSaveDto orderSaveDto = new OrderSaveDto(); + orderSaveDto.setCouponChannelId(vo.getId()); + orderSaveDto.setCouponId(vo.getCouponId()); + ResultData resultData1 = wxOrderService.saveOrder(orderSaveDto, userId, EnumPayWay.PAY_WAY_WECHAT, wxGame); + + if(resultData1.code == Result.SUCCESS && resultData1.data != null && resultData1.data instanceof WxOrder){ + WxOrder order = (WxOrder)resultData1.data; + orderId = order.getId(); + }else{ + resultData.data = null; + } + }else if(data instanceof JSONObject){ + JSONObject dataMap = (JSONObject) data; // Integer prizeType = (Integer) dataMap.get("prizeType"); // if(prizeType != null && prizeType == 0){ - Integer credit = (Integer) dataMap.get("credit"); - if(credit > 0){ + Integer credit = dataMap.getInteger("credit"); + if(credit != null && credit > 0){ WxCreditHistory wxCreditHistory = new WxCreditHistory(); wxCreditHistory.setTenantId(wxGame.getFinalTenantId()); wxCreditHistory.setCUserId(userId); @@ -466,19 +480,6 @@ public class WxGameServiceImpl implements WxGameService { } // } - }else if(data instanceof WxCouponChannelVo){ - WxCouponChannelVo vo = (WxCouponChannelVo) data; - OrderSaveDto orderSaveDto = new OrderSaveDto(); - orderSaveDto.setCouponChannelId(vo.getId()); - orderSaveDto.setCouponId(vo.getCouponId()); - ResultData resultData1 = wxOrderService.saveOrder(orderSaveDto, userId, EnumPayWay.PAY_WAY_WECHAT, wxGame); - - if(resultData1.code == Result.SUCCESS && resultData1.data != null && resultData1.data instanceof WxOrder){ - WxOrder order = (WxOrder)resultData1.data; - orderId = order.getId(); - }else{ - resultData.data = null; - } } } From 56db9ec8281ab1e695182e9408c50ca1c2c50e7f Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 6 Jan 2021 20:10:15 +0800 Subject: [PATCH 13/29] type --- ...202101060001__update_wx_credit_history.sql | 100 + .../V202101060002__create_wx_c_user_from.sql | 1799 +++++++++++++++++ .../controller/WxCreditHistoryController.java | 2 +- .../controller/WxUserGrantController.java | 2 +- .../com/iformall/enums/EnumCUserFrom.java | 40 + .../java/com/iformall/enums/EnumUserType.java | 2 +- .../service/impl/WxGameServiceImpl.java | 4 +- .../service/park/impl/util/ParkHelper.java | 2 +- .../mapper/WxCreditHistoryMapper.xml | 2 +- 9 files changed, 1946 insertions(+), 7 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V202101060001__update_wx_credit_history.sql create mode 100644 mallinkAdmin/src/main/resources/db/migration/V202101060002__create_wx_c_user_from.sql create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumCUserFrom.java diff --git a/mallinkAdmin/src/main/resources/db/migration/V202101060001__update_wx_credit_history.sql b/mallinkAdmin/src/main/resources/db/migration/V202101060001__update_wx_credit_history.sql new file mode 100644 index 000000000..8bb63e079 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V202101060001__update_wx_credit_history.sql @@ -0,0 +1,100 @@ +update wx_credit_history_0 set operator_type = 2 where operator_type = 1; +update wx_credit_history_1 set operator_type = 2 where operator_type = 1; +update wx_credit_history_2 set operator_type = 2 where operator_type = 1; +update wx_credit_history_3 set operator_type = 2 where operator_type = 1; +update wx_credit_history_4 set operator_type = 2 where operator_type = 1; +update wx_credit_history_5 set operator_type = 2 where operator_type = 1; +update wx_credit_history_6 set operator_type = 2 where operator_type = 1; +update wx_credit_history_7 set operator_type = 2 where operator_type = 1; +update wx_credit_history_8 set operator_type = 2 where operator_type = 1; +update wx_credit_history_9 set operator_type = 2 where operator_type = 1; +update wx_credit_history_10 set operator_type = 2 where operator_type = 1; +update wx_credit_history_11 set operator_type = 2 where operator_type = 1; +update wx_credit_history_12 set operator_type = 2 where operator_type = 1; +update wx_credit_history_13 set operator_type = 2 where operator_type = 1; +update wx_credit_history_14 set operator_type = 2 where operator_type = 1; +update wx_credit_history_15 set operator_type = 2 where operator_type = 1; +update wx_credit_history_16 set operator_type = 2 where operator_type = 1; +update wx_credit_history_17 set operator_type = 2 where operator_type = 1; +update wx_credit_history_18 set operator_type = 2 where operator_type = 1; +update wx_credit_history_19 set operator_type = 2 where operator_type = 1; +update wx_credit_history_20 set operator_type = 2 where operator_type = 1; +update wx_credit_history_21 set operator_type = 2 where operator_type = 1; +update wx_credit_history_22 set operator_type = 2 where operator_type = 1; +update wx_credit_history_23 set operator_type = 2 where operator_type = 1; +update wx_credit_history_24 set operator_type = 2 where operator_type = 1; +update wx_credit_history_25 set operator_type = 2 where operator_type = 1; +update wx_credit_history_26 set operator_type = 2 where operator_type = 1; +update wx_credit_history_27 set operator_type = 2 where operator_type = 1; +update wx_credit_history_28 set operator_type = 2 where operator_type = 1; +update wx_credit_history_29 set operator_type = 2 where operator_type = 1; +update wx_credit_history_30 set operator_type = 2 where operator_type = 1; +update wx_credit_history_31 set operator_type = 2 where operator_type = 1; +update wx_credit_history_32 set operator_type = 2 where operator_type = 1; +update wx_credit_history_33 set operator_type = 2 where operator_type = 1; +update wx_credit_history_34 set operator_type = 2 where operator_type = 1; +update wx_credit_history_35 set operator_type = 2 where operator_type = 1; +update wx_credit_history_36 set operator_type = 2 where operator_type = 1; +update wx_credit_history_37 set operator_type = 2 where operator_type = 1; +update wx_credit_history_38 set operator_type = 2 where operator_type = 1; +update wx_credit_history_39 set operator_type = 2 where operator_type = 1; +update wx_credit_history_40 set operator_type = 2 where operator_type = 1; +update wx_credit_history_41 set operator_type = 2 where operator_type = 1; +update wx_credit_history_42 set operator_type = 2 where operator_type = 1; +update wx_credit_history_43 set operator_type = 2 where operator_type = 1; +update wx_credit_history_44 set operator_type = 2 where operator_type = 1; +update wx_credit_history_45 set operator_type = 2 where operator_type = 1; +update wx_credit_history_46 set operator_type = 2 where operator_type = 1; +update wx_credit_history_47 set operator_type = 2 where operator_type = 1; +update wx_credit_history_48 set operator_type = 2 where operator_type = 1; +update wx_credit_history_49 set operator_type = 2 where operator_type = 1; +update wx_credit_history_50 set operator_type = 2 where operator_type = 1; +update wx_credit_history_51 set operator_type = 2 where operator_type = 1; +update wx_credit_history_52 set operator_type = 2 where operator_type = 1; +update wx_credit_history_53 set operator_type = 2 where operator_type = 1; +update wx_credit_history_54 set operator_type = 2 where operator_type = 1; +update wx_credit_history_55 set operator_type = 2 where operator_type = 1; +update wx_credit_history_56 set operator_type = 2 where operator_type = 1; +update wx_credit_history_57 set operator_type = 2 where operator_type = 1; +update wx_credit_history_58 set operator_type = 2 where operator_type = 1; +update wx_credit_history_59 set operator_type = 2 where operator_type = 1; +update wx_credit_history_60 set operator_type = 2 where operator_type = 1; +update wx_credit_history_61 set operator_type = 2 where operator_type = 1; +update wx_credit_history_62 set operator_type = 2 where operator_type = 1; +update wx_credit_history_63 set operator_type = 2 where operator_type = 1; +update wx_credit_history_64 set operator_type = 2 where operator_type = 1; +update wx_credit_history_65 set operator_type = 2 where operator_type = 1; +update wx_credit_history_66 set operator_type = 2 where operator_type = 1; +update wx_credit_history_67 set operator_type = 2 where operator_type = 1; +update wx_credit_history_68 set operator_type = 2 where operator_type = 1; +update wx_credit_history_69 set operator_type = 2 where operator_type = 1; +update wx_credit_history_70 set operator_type = 2 where operator_type = 1; +update wx_credit_history_71 set operator_type = 2 where operator_type = 1; +update wx_credit_history_72 set operator_type = 2 where operator_type = 1; +update wx_credit_history_73 set operator_type = 2 where operator_type = 1; +update wx_credit_history_74 set operator_type = 2 where operator_type = 1; +update wx_credit_history_75 set operator_type = 2 where operator_type = 1; +update wx_credit_history_76 set operator_type = 2 where operator_type = 1; +update wx_credit_history_77 set operator_type = 2 where operator_type = 1; +update wx_credit_history_78 set operator_type = 2 where operator_type = 1; +update wx_credit_history_79 set operator_type = 2 where operator_type = 1; +update wx_credit_history_80 set operator_type = 2 where operator_type = 1; +update wx_credit_history_81 set operator_type = 2 where operator_type = 1; +update wx_credit_history_82 set operator_type = 2 where operator_type = 1; +update wx_credit_history_83 set operator_type = 2 where operator_type = 1; +update wx_credit_history_84 set operator_type = 2 where operator_type = 1; +update wx_credit_history_85 set operator_type = 2 where operator_type = 1; +update wx_credit_history_86 set operator_type = 2 where operator_type = 1; +update wx_credit_history_87 set operator_type = 2 where operator_type = 1; +update wx_credit_history_88 set operator_type = 2 where operator_type = 1; +update wx_credit_history_89 set operator_type = 2 where operator_type = 1; +update wx_credit_history_90 set operator_type = 2 where operator_type = 1; +update wx_credit_history_91 set operator_type = 2 where operator_type = 1; +update wx_credit_history_92 set operator_type = 2 where operator_type = 1; +update wx_credit_history_93 set operator_type = 2 where operator_type = 1; +update wx_credit_history_94 set operator_type = 2 where operator_type = 1; +update wx_credit_history_95 set operator_type = 2 where operator_type = 1; +update wx_credit_history_96 set operator_type = 2 where operator_type = 1; +update wx_credit_history_97 set operator_type = 2 where operator_type = 1; +update wx_credit_history_98 set operator_type = 2 where operator_type = 1; +update wx_credit_history_99 set operator_type = 2 where operator_type = 1; \ No newline at end of file diff --git a/mallinkAdmin/src/main/resources/db/migration/V202101060002__create_wx_c_user_from.sql b/mallinkAdmin/src/main/resources/db/migration/V202101060002__create_wx_c_user_from.sql new file mode 100644 index 000000000..ccc759c5c --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V202101060002__create_wx_c_user_from.sql @@ -0,0 +1,1799 @@ +CREATE TABLE `wx_c_user_from_0` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_1` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_2` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_3` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_4` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_5` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_6` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_7` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_8` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_9` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_10` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_11` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_12` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_13` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_14` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_15` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_16` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_17` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_18` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_19` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_20` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_21` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_22` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_23` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_24` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_25` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_26` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_27` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_28` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_29` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_30` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_31` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_32` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_33` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_34` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_35` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_36` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_37` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_38` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_39` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_40` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_41` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_42` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_43` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_44` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_45` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_46` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_47` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_48` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_49` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_50` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_51` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_52` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_53` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_54` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_55` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_56` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_57` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_58` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_59` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_60` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_61` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_62` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_63` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_64` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_65` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_66` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_67` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_68` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_69` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_70` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_71` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_72` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_73` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_74` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_75` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_76` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_77` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_78` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_79` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_80` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_81` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_82` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_83` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_84` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_85` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_86` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_87` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_88` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_89` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_90` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_91` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_92` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_93` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_94` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_95` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_96` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_97` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_98` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +CREATE TABLE `wx_c_user_from_99` ( + `id` bigint(20) NOT NULL, + `tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `parent_tenant_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `c_user_id` bigint(20) NOT NULL COMMENT 'wx_c_user表ID', + `scene` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', + `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', + `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', + `count` int(11) NOT NULL COMMENT '次数', + `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', + `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', + `create_date` datetime(0) NOT NULL, + `update_date` datetime(0) NOT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; \ No newline at end of file diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCreditHistoryController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCreditHistoryController.java index 70f065fbb..3a46339ce 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCreditHistoryController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCreditHistoryController.java @@ -71,7 +71,7 @@ public class WxCreditHistoryController extends BaseController{ wxCreditHistory.setTenantId(wxCUser.getFinalTenantId()); wxCreditHistory.setCUserId(wxCUser.getUserId()); wxCreditHistory.setOperatorId(wxCUser.getUserId()); - wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode()); + wxCreditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); if(wxCreditHistory.getCreditType().equals(EnumScoreType.GAME_ADD_CREDIT.getCode())){ wxCreditHistory.setChangePurpose(EnumScoreType.GAME_ADD_CREDIT.getMessage()); diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index 2a2a157ad..9320d364b 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -959,7 +959,7 @@ public class WxUserGrantController extends BaseController { wxCreditHistory.setCreateDate(new Date()); wxCreditHistory.setCreditType(EnumScoreType.COMPLETE_INFO.getCode()); wxCreditHistory.setChangePurpose(EnumScoreType.COMPLETE_INFO.getMessage()); - wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode()); + wxCreditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); wxCreditHistory.setOperatorId(memberId); wxCreditHistoryService.saveOrUpdate(wxCreditHistory); wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, record,tenantEntity); diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCUserFrom.java b/mallinkService/src/main/java/com/iformall/enums/EnumCUserFrom.java new file mode 100644 index 000000000..e78a5e46f --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCUserFrom.java @@ -0,0 +1,40 @@ +package com.iformall.enums; + + +/** + * @author Stormeye + */ + +public enum EnumCUserFrom { + + FROM_C_USER(1,"来源于微信用户"), + FROM_C_USER_BASIC_INFO(2,"来源于会员"), + FROM_MERCHANT(3,"来源于微信用户"), + FROM_COUPON_CHANNEL(4,"来源于卷"), + ; + + public static EnumCUserFrom getEnum(Integer code) { + for (EnumCUserFrom value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumCUserFrom(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/EnumUserType.java b/mallinkService/src/main/java/com/iformall/enums/EnumUserType.java index a41dcd459..fcb3d1d57 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumUserType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumUserType.java @@ -3,7 +3,7 @@ package com.iformall.enums; public enum EnumUserType { CUSER(1, "C端用户"), - CUSERBASIC(2, "C端用户(偏向A端)"), + CUSERBASIC(2, "C端用户(会员)"), BUSER(3, "B端用户"), MALLUSER(4, "A端用户") ; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java index 9aff46933..26e941e66 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java @@ -467,7 +467,7 @@ public class WxGameServiceImpl implements WxGameService { wxCreditHistory.setTenantId(wxGame.getFinalTenantId()); wxCreditHistory.setCUserId(userId); wxCreditHistory.setOperatorId(userId); - wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode()); + wxCreditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); wxCreditHistory.setCreditNum(credit); wxCreditHistory.setCreditType(EnumScoreType.GAME_ADD_CREDIT.getCode()); wxCreditHistory.setChangePurpose(EnumScoreType.GAME_ADD_CREDIT.getMessage()); @@ -512,7 +512,7 @@ public class WxGameServiceImpl implements WxGameService { wxCreditHistory.setTenantId(wxGame.getFinalTenantId()); wxCreditHistory.setCUserId(userId); wxCreditHistory.setOperatorId(userId); - wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode()); + wxCreditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); wxCreditHistory.setCreditNum(wxGame.getPlayCredit()); wxCreditHistory.setCreditType(EnumScoreType.GAME_LES_CREDIT.getCode()); wxCreditHistory.setChangePurpose(EnumScoreType.GAME_LES_CREDIT.getMessage()); diff --git a/mallinkService/src/main/java/com/iformall/service/park/impl/util/ParkHelper.java b/mallinkService/src/main/java/com/iformall/service/park/impl/util/ParkHelper.java index b0def6f5a..5e05636e8 100644 --- a/mallinkService/src/main/java/com/iformall/service/park/impl/util/ParkHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/park/impl/util/ParkHelper.java @@ -86,7 +86,7 @@ public class ParkHelper { // wxCreditHistory.setCreateDate(new Date()); wxCreditHistory.setCreditType(EnumScoreType.BIND_CAR.getCode()); wxCreditHistory.setChangePurpose(EnumScoreType.BIND_CAR.getMessage()); - wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode()); + wxCreditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); wxCreditHistory.setOperatorId(cuUserId); wxCreditHistoryService.saveOrUpdate(wxCreditHistory); } diff --git a/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml b/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml index 91f355615..bba2d6f98 100644 --- a/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml @@ -160,7 +160,7 @@ credit.ticket_number ticketNumber, case when credit.operator_type=4 then (select name from mall_user_info where id=credit.operator_id) when credit.operator_type=3 then (select name from wx_merchant_b_user where id=credit.operator_id) - when credit.operator_type=1 then (select nick_name from wx_c_user_basic_info where id=credit.operator_id) + when credit.operator_type=2 then (select nick_name from wx_c_user_basic_info where id=credit.operator_id) else '' end operator, credit.change_purpose changePurpose FROM From 73d605e08e8aeddc2913dd3d416f159797178d4e Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 6 Jan 2021 20:11:27 +0800 Subject: [PATCH 14/29] type --- .../java/com/iformall/controller/WxUserGrantController.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index 9320d364b..61aedd0dd 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -8,7 +8,6 @@ import cn.binarywang.wx.miniapp.util.crypt.WxMaCryptUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; 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; @@ -42,7 +41,6 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; @RestController @RequestMapping("/api/user") From 7bf849fbdada290aef1026b0ab5596bf8a2a3865 Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 7 Jan 2021 14:36:58 +0800 Subject: [PATCH 15/29] cuser --- .../V202101060002__create_wx_c_user_from.sql | 400 +++++------------- ...0001__ADD_UNIQUE_INDEX_wx_user_channel.sql | 3 + .../iformall/controller/WxGameController.java | 4 +- .../controller/WxUserGrantController.java | 97 +---- .../config/BaseMyBatisConfiguration.java | 7 + .../iformall/domain/po/WxCUserBasicInfo.java | 1 - .../com/iformall/domain/po/WxCUserFrom.java | 104 +++++ .../domain/po/msg/FmInsideCLoginMsg.java | 4 +- .../com/iformall/enums/EnumCUserFrom.java | 7 +- .../iformall/mapper/WxCUserFromMapper.java | 12 + .../iformall/service/WxCUserFromService.java | 19 + .../com/iformall/service/WxCUserService.java | 4 +- .../impl/WxCUserBasicInfoServiceImpl.java | 1 + .../service/impl/WxCUserFromServiceImpl.java | 29 ++ .../service/impl/WxCUserServiceImpl.java | 73 ++-- .../impl/FmInsideCLoginMsgServiceImpl.java | 3 +- .../resources/mapper/WxCUserFromMapper.xml | 109 +++++ 17 files changed, 441 insertions(+), 436 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V202101070001__ADD_UNIQUE_INDEX_wx_user_channel.sql create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxCUserFrom.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxCUserFromMapper.java create mode 100644 mallinkService/src/main/java/com/iformall/service/WxCUserFromService.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/WxCUserFromServiceImpl.java create mode 100644 mallinkService/src/main/resources/mapper/WxCUserFromMapper.xml diff --git a/mallinkAdmin/src/main/resources/db/migration/V202101060002__create_wx_c_user_from.sql b/mallinkAdmin/src/main/resources/db/migration/V202101060002__create_wx_c_user_from.sql index ccc759c5c..40a838b6d 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V202101060002__create_wx_c_user_from.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V202101060002__create_wx_c_user_from.sql @@ -7,12 +7,10 @@ CREATE TABLE `wx_c_user_from_0` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -25,12 +23,10 @@ CREATE TABLE `wx_c_user_from_1` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -43,12 +39,10 @@ CREATE TABLE `wx_c_user_from_2` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -61,12 +55,10 @@ CREATE TABLE `wx_c_user_from_3` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -79,12 +71,10 @@ CREATE TABLE `wx_c_user_from_4` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -97,12 +87,10 @@ CREATE TABLE `wx_c_user_from_5` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -115,12 +103,10 @@ CREATE TABLE `wx_c_user_from_6` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -133,12 +119,10 @@ CREATE TABLE `wx_c_user_from_7` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -151,12 +135,10 @@ CREATE TABLE `wx_c_user_from_8` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -169,12 +151,10 @@ CREATE TABLE `wx_c_user_from_9` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -187,12 +167,10 @@ CREATE TABLE `wx_c_user_from_10` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -205,12 +183,10 @@ CREATE TABLE `wx_c_user_from_11` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -223,12 +199,10 @@ CREATE TABLE `wx_c_user_from_12` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -241,12 +215,10 @@ CREATE TABLE `wx_c_user_from_13` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -259,12 +231,10 @@ CREATE TABLE `wx_c_user_from_14` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -277,12 +247,10 @@ CREATE TABLE `wx_c_user_from_15` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -295,12 +263,10 @@ CREATE TABLE `wx_c_user_from_16` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -313,12 +279,10 @@ CREATE TABLE `wx_c_user_from_17` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -331,12 +295,10 @@ CREATE TABLE `wx_c_user_from_18` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -349,12 +311,10 @@ CREATE TABLE `wx_c_user_from_19` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -367,12 +327,10 @@ CREATE TABLE `wx_c_user_from_20` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -385,12 +343,10 @@ CREATE TABLE `wx_c_user_from_21` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -403,12 +359,10 @@ CREATE TABLE `wx_c_user_from_22` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -421,12 +375,10 @@ CREATE TABLE `wx_c_user_from_23` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -439,12 +391,10 @@ CREATE TABLE `wx_c_user_from_24` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -457,12 +407,10 @@ CREATE TABLE `wx_c_user_from_25` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -475,12 +423,10 @@ CREATE TABLE `wx_c_user_from_26` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -493,12 +439,10 @@ CREATE TABLE `wx_c_user_from_27` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -511,12 +455,10 @@ CREATE TABLE `wx_c_user_from_28` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -529,12 +471,10 @@ CREATE TABLE `wx_c_user_from_29` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -547,12 +487,10 @@ CREATE TABLE `wx_c_user_from_30` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -565,12 +503,10 @@ CREATE TABLE `wx_c_user_from_31` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -583,12 +519,10 @@ CREATE TABLE `wx_c_user_from_32` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -601,12 +535,10 @@ CREATE TABLE `wx_c_user_from_33` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -619,12 +551,10 @@ CREATE TABLE `wx_c_user_from_34` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -637,12 +567,10 @@ CREATE TABLE `wx_c_user_from_35` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -655,12 +583,10 @@ CREATE TABLE `wx_c_user_from_36` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -673,12 +599,10 @@ CREATE TABLE `wx_c_user_from_37` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -691,12 +615,10 @@ CREATE TABLE `wx_c_user_from_38` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -709,12 +631,10 @@ CREATE TABLE `wx_c_user_from_39` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -727,12 +647,10 @@ CREATE TABLE `wx_c_user_from_40` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -745,12 +663,10 @@ CREATE TABLE `wx_c_user_from_41` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -763,12 +679,10 @@ CREATE TABLE `wx_c_user_from_42` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -781,12 +695,10 @@ CREATE TABLE `wx_c_user_from_43` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -799,12 +711,10 @@ CREATE TABLE `wx_c_user_from_44` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -817,12 +727,10 @@ CREATE TABLE `wx_c_user_from_45` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -835,12 +743,10 @@ CREATE TABLE `wx_c_user_from_46` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -853,12 +759,10 @@ CREATE TABLE `wx_c_user_from_47` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -871,12 +775,10 @@ CREATE TABLE `wx_c_user_from_48` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -889,12 +791,10 @@ CREATE TABLE `wx_c_user_from_49` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -907,12 +807,10 @@ CREATE TABLE `wx_c_user_from_50` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -925,12 +823,10 @@ CREATE TABLE `wx_c_user_from_51` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -943,12 +839,10 @@ CREATE TABLE `wx_c_user_from_52` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -961,12 +855,10 @@ CREATE TABLE `wx_c_user_from_53` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -979,12 +871,10 @@ CREATE TABLE `wx_c_user_from_54` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -997,12 +887,10 @@ CREATE TABLE `wx_c_user_from_55` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1015,12 +903,10 @@ CREATE TABLE `wx_c_user_from_56` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1033,12 +919,10 @@ CREATE TABLE `wx_c_user_from_57` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1051,12 +935,10 @@ CREATE TABLE `wx_c_user_from_58` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1069,12 +951,10 @@ CREATE TABLE `wx_c_user_from_59` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1087,12 +967,10 @@ CREATE TABLE `wx_c_user_from_60` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1105,12 +983,10 @@ CREATE TABLE `wx_c_user_from_61` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1123,12 +999,10 @@ CREATE TABLE `wx_c_user_from_62` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1141,12 +1015,10 @@ CREATE TABLE `wx_c_user_from_63` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1159,12 +1031,10 @@ CREATE TABLE `wx_c_user_from_64` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1177,12 +1047,10 @@ CREATE TABLE `wx_c_user_from_65` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1195,12 +1063,10 @@ CREATE TABLE `wx_c_user_from_66` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1213,12 +1079,10 @@ CREATE TABLE `wx_c_user_from_67` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1231,12 +1095,10 @@ CREATE TABLE `wx_c_user_from_68` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1249,12 +1111,10 @@ CREATE TABLE `wx_c_user_from_69` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1267,12 +1127,10 @@ CREATE TABLE `wx_c_user_from_70` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1285,12 +1143,10 @@ CREATE TABLE `wx_c_user_from_71` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1303,12 +1159,10 @@ CREATE TABLE `wx_c_user_from_72` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1321,12 +1175,10 @@ CREATE TABLE `wx_c_user_from_73` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1339,12 +1191,10 @@ CREATE TABLE `wx_c_user_from_74` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1357,12 +1207,10 @@ CREATE TABLE `wx_c_user_from_75` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1375,12 +1223,10 @@ CREATE TABLE `wx_c_user_from_76` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1393,12 +1239,10 @@ CREATE TABLE `wx_c_user_from_77` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1411,12 +1255,10 @@ CREATE TABLE `wx_c_user_from_78` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1429,12 +1271,10 @@ CREATE TABLE `wx_c_user_from_79` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1447,12 +1287,10 @@ CREATE TABLE `wx_c_user_from_80` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1465,12 +1303,10 @@ CREATE TABLE `wx_c_user_from_81` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1483,12 +1319,10 @@ CREATE TABLE `wx_c_user_from_82` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1501,12 +1335,10 @@ CREATE TABLE `wx_c_user_from_83` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1519,12 +1351,10 @@ CREATE TABLE `wx_c_user_from_84` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1537,12 +1367,10 @@ CREATE TABLE `wx_c_user_from_85` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1555,12 +1383,10 @@ CREATE TABLE `wx_c_user_from_86` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1573,12 +1399,10 @@ CREATE TABLE `wx_c_user_from_87` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1591,12 +1415,10 @@ CREATE TABLE `wx_c_user_from_88` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1609,12 +1431,10 @@ CREATE TABLE `wx_c_user_from_89` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1627,12 +1447,10 @@ CREATE TABLE `wx_c_user_from_90` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1645,12 +1463,10 @@ CREATE TABLE `wx_c_user_from_91` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1663,12 +1479,10 @@ CREATE TABLE `wx_c_user_from_92` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1681,12 +1495,10 @@ CREATE TABLE `wx_c_user_from_93` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1699,12 +1511,10 @@ CREATE TABLE `wx_c_user_from_94` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1717,12 +1527,10 @@ CREATE TABLE `wx_c_user_from_95` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1735,12 +1543,10 @@ CREATE TABLE `wx_c_user_from_96` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1753,12 +1559,10 @@ CREATE TABLE `wx_c_user_from_97` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1771,12 +1575,10 @@ CREATE TABLE `wx_c_user_from_98` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; @@ -1789,11 +1591,9 @@ CREATE TABLE `wx_c_user_from_99` ( `scene_address` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源渠道wx_user_channel', `from_type` int(11) NOT NULL COMMENT '来源类型EnumCUserFrom', `from_id` bigint(20) DEFAULT NULL COMMENT '来源ID根据from_type判断', - `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '首次是否新用户(默认否)', - `count` int(11) NOT NULL COMMENT '次数', + `is_new_user` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否新用户(默认否)', `share_user_type` int(11) DEFAULT NULL COMMENT '分享者用户类型EnumUserType', `share_user` bigint(20) DEFAULT NULL COMMENT '分享者', `create_date` datetime(0) NOT NULL, - `update_date` datetime(0) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; \ No newline at end of file diff --git a/mallinkAdmin/src/main/resources/db/migration/V202101070001__ADD_UNIQUE_INDEX_wx_user_channel.sql b/mallinkAdmin/src/main/resources/db/migration/V202101070001__ADD_UNIQUE_INDEX_wx_user_channel.sql new file mode 100644 index 000000000..600ed0184 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V202101070001__ADD_UNIQUE_INDEX_wx_user_channel.sql @@ -0,0 +1,3 @@ +ALTER TABLE `wx_user_channel` +DROP INDEX `scene_address_index`, +ADD UNIQUE INDEX `scene_address_index`(`scene_address`) USING BTREE; \ No newline at end of file diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java index 152f598a5..3d7200e0e 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java @@ -86,7 +86,9 @@ public class WxGameController extends BaseController { public ResultData getCount(String gameId) { try { Long gameIdL = Long.valueOf(gameId); - return wxGameService.getCount(gameIdL,getMemberId()); + ResultData resultData = wxGameService.getCount(gameIdL, getMemberId()); + logger.info("游戏次数详情-----"+resultData.data.toString()); + return resultData; } catch (Exception e){ e.printStackTrace(); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index 61aedd0dd..0c4b5d1e4 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -222,9 +222,6 @@ public class WxUserGrantController extends BaseController { String session_key = null; String openId = null; String unionId = null; - boolean boolHaveUnionId = false; - boolean boolFindByUnionId = false; - Long userId = null; try { WxMaJscode2SessionResult session = wxMaService.jsCode2SessionInfo(code); @@ -237,9 +234,6 @@ public class WxUserGrantController extends BaseController { session_key = session.getSessionKey(); openId = session.getOpenid(); unionId = session.getUnionid(); -// if (StringUtils.isNotBlank(unionId)) { -// boolHaveUnionId = true; -// } logger.info("session_key: " + session_key + ", openId: " + openId + ", unionId: " + unionId); resultMap.put("openId", openId); @@ -249,75 +243,31 @@ 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()); String ipaddress = IPUtil.getIpAddr(request); WxCUser newUser = new WxCUser(); newUser.updateTenantInfo(wxMall.getTenantInfo()); newUser.setAppId(appId); newUser.setOpenId(openId); - if (boolHaveUnionId) { - newUser.setUnionId(unionId); - } - - WxCUser oldUser = null; -// if (boolHaveUnionId) { -// // 优先根据unionId查询 -// WxCUser userQ = new WxCUser(); -// userQ.updateTenantInfo(wxMall.getTenantInfo()); -// userQ.setUnionId(unionId); -// oldUser = wxCUserService.getByObject(userQ); -// if(oldUser != null) { -// boolFindByUnionId = true; -// } -// } - if (oldUser == null) { - oldUser = wxCUserService.getByOpenId(newUser); - } + + WxCUser oldUser = wxCUserService.getByOpenId(newUser); + if (oldUser != null) { // 已有用户 token = oldUser.createToken(new Date(),oldUser.getTenantId()); - resultMap.put("token", token); - request.setAttribute(Constant.LOGIN_USER_KEY, oldUser.getId()); - request.setAttribute(Constant.TENANT_ID, oldUser.getTenantId()); if(StringUtils.isBlank(oldUser.getParentTenantId()) && StringUtils.isNotBlank(wxMall.getParentTenantId())){ oldUser.setParentTenantId(wxMall.getParentTenantId()); } - if(StringUtils.isNotBlank(oldUser.getParentTenantId())){ - request.setAttribute(Constant.PARENT_TENANT_ID, oldUser.getParentTenantId()); - } - - // 老用户,给出来已选中的mall -// if (mallList != null) { -// WxMall selectedMall = null; -// if (StringUtils.isNotBlank(oldUser.getParentTenantId())) { -// final String lastSubTenant = oldUser.getTenantId(); -// List selMallList = mallList.stream().filter(ml -> ml.getTenantId().equalsIgnoreCase(lastSubTenant)).collect(Collectors.toList()); -// if (selMallList.size() > 0) { -// selectedMall = selMallList.get(0); -// } -// } -// if (selectedMall == null){ -// WxMall firstMall = mallList.get(0); -// if (firstMall != null) { -// selectedMall = firstMall; -// } -// } -// if (selectedMall != null) { -// request.setAttribute(Constant.TENANT_ID, selectedMall.getTenantId()); -// resultMap.put("selectedMall", selectedMall.getTenantId()); -//// oldUser.setParentTenantId(selectedMall.getParentTenantId()); -// } -// } oldUser.setRegisterIp(ipaddress); oldUser.setSessionKey(session_key); oldUser.setAppId(appId); oldUser.setOpenId(openId); - if (boolHaveUnionId) { - oldUser.setUnionId(unionId); - } + oldUser.setUnionId(unionId); if (StringUtils.isNotBlank(wxAuthorizerInfo.getOpenAppid())) { oldUser.setOpenAppId(wxAuthorizerInfo.getOpenAppid()); } @@ -326,7 +276,7 @@ public class WxUserGrantController extends BaseController { oldUser.setSceneAddress(sceneAddress); } if (StringUtils.isBlank(oldUser.getScene()) || - oldUser.getScene().equals(Constant.UNDEFINED)) { // from pages/index/index onLoad.options.scene + oldUser.getScene().equals(Constant.UNDEFINED)) { // from pages/index/index onLoad.options.scene oldUser.setScene(scene); } if (StringUtils.isNotBlank(longitude)) { @@ -343,12 +293,14 @@ public class WxUserGrantController extends BaseController { } oldUser.setLoginCount(oldUser.getLoginCount() + 1); + oldUser.setActiveTime(new Date()); wxCUserService.saveOrUpdate(oldUser); + request.setAttribute(Constant.LOGIN_USER_KEY, oldUser.getId()); - // 登录后处理 - int score = wxCUserService.actionAfterLogin(oldUser, boolFindByUnionId); updateCacheCUser(token, oldUser); - resultMap.put("score", score); + // 登录后处理 + wxCUserService.actionAfterLogin(oldUser); + } else { // 新用户 newUser.updateTenantInfo(wxMall.getTenantInfo()); @@ -356,6 +308,7 @@ public class WxUserGrantController extends BaseController { newUser.setParentTenantId(wxMall.getParentTenantId()); } token = newUser.createToken(new Date(),newUser.getTenantId()); + resultMap.put("token", token); newUser.setRegisterIp(ipaddress); if (StringUtils.isNotBlank(sceneAddress) && @@ -380,30 +333,14 @@ public class WxUserGrantController extends BaseController { newUser.setExtraInfo(extraInfo.toJSONString()); } newUser.setLoginCount(1); - + oldUser.setActiveTime(new Date()); wxCUserService.saveOrUpdate(newUser); - - resultMap.put("token", token); request.setAttribute(Constant.LOGIN_USER_KEY, newUser.getId()); - request.setAttribute(Constant.TENANT_ID, newUser.getTenantId()); - if(StringUtils.isNotBlank(newUser.getParentTenantId())){ - request.setAttribute(Constant.PARENT_TENANT_ID, newUser.getParentTenantId()); - } -// if (mallList != null) { -// WxMall firstMall = mallList.get(0); -// if (firstMall != null) { -// // 默认选中第一个mall, 或者经纬度最近的那个 -// request.setAttribute(Constant.TENANT_ID, firstMall.getTenantId()); -// resultMap.put("selectedMall", firstMall.getTenantId()); -// newUser.setParentTenantId(firstMall.getTenantId()); -// } -// } - // 登录后处理 - int score = wxCUserService.actionAfterLogin(newUser, null); - resultMap.put("score", score); updateCacheCUser(token, newUser); - + // 登录后处理 + wxCUserService.actionAfterLogin(newUser); + } if (StringUtils.isBlank(token) || "null".equals(token) || "undefined".equals(token) ) { diff --git a/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java b/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java index 64c5ee0ec..b0e7342a8 100644 --- a/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java +++ b/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java @@ -82,6 +82,13 @@ public class BaseMyBatisConfiguration { wxbasicChildSharding.setCount(100); wxbasicChildSharding.setRule(EnumShardingRule.HASH.getCode()); shardingList.add(wxbasicChildSharding); + + ShardingSphere wxCUserFromSharding = new ShardingSphere(); + wxCUserFromSharding.setColumn("tenant_id"); + wxCUserFromSharding.setTableName("wx_c_user_from"); + wxCUserFromSharding.setCount(100); + wxCUserFromSharding.setRule(EnumShardingRule.HASH.getCode()); + shardingList.add(wxCUserFromSharding); ShardingSphere wxOrderSharding = new ShardingSphere(); wxOrderSharding.setColumn("tenant_id"); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java index 4563715be..727514a05 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java @@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntityWithoutFinalTenantId; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCUserFrom.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCUserFrom.java new file mode 100644 index 000000000..7680239ac --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCUserFrom.java @@ -0,0 +1,104 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumCUserFrom; +import com.iformall.enums.EnumUserType; +import com.iformall.enums.EnumYesOrNo; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.Date; + +@TableName(value = "wx_c_user_from") +@JsonIgnoreProperties(ignoreUnknown = true) +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxCUserFrom extends TenantEntity { + + @io.swagger.annotations.ApiModelProperty(value="cUserId",name="cUserId") + protected Long cUserId; + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="cUserNickName",name="cUserNickName") + protected String cUserNickName; + + @io.swagger.annotations.ApiModelProperty(value="二维码来源,小程序",name="scene") + private String scene; + + @io.swagger.annotations.ApiModelProperty(value="渠道,小程序",name="sceneAddress") + private String sceneAddress; + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="sceneAddress描述",name="sceneAddressDesc") + private String sceneAddressDesc; + + @io.swagger.annotations.ApiModelProperty(value="EnumCUserFrom",name="fromType") + private Integer fromType; + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="fromType描述",name="fromTypeDesc") + private String fromTypeDesc; + public String getFromTypeDesc(){ + if(this.getFromType() != null){ + EnumCUserFrom anEnum = EnumCUserFrom.getEnum(this.getFromType()); + if(anEnum != null){ + fromTypeDesc = anEnum.getMessage(); + } + } + return fromTypeDesc; + } + + @io.swagger.annotations.ApiModelProperty(value="来源ID",name="fromId") + protected Long fromId; + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="来源Name",name="fromName") + protected String fromName; + + @io.swagger.annotations.ApiModelProperty(value="是否新用户(0:否1:是)EnumYesOrNo",name="isNewUser") + private Integer isNewUser; + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="是否新用户",name="isNewUserStr") + private String isNewUserStr; + public String getIsNewUserStr(){ + if(this.getIsNewUser() != null){ + EnumYesOrNo anEnum = EnumYesOrNo.getEnum(this.getFromType()); + if(anEnum != null){ + isNewUserStr = anEnum.getMessage(); + } + } + return isNewUserStr; + } + + @io.swagger.annotations.ApiModelProperty(value="分享者 EnumUserType",name="shareUserType") + private Integer shareUserType; + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="shareUserType描述",name="shareUserType") + private String shareUserTypeDesc; + public String getShareUserTypeDesc(){ + if(this.getShareUserType() != null){ + EnumUserType anEnum = EnumUserType.getEnum(this.getFromType()); + if(anEnum != null){ + shareUserTypeDesc = anEnum.getMessage(); + } + } + return shareUserTypeDesc; + } + + @io.swagger.annotations.ApiModelProperty(value="分享者",name="shareUser") + protected Long shareUser; + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value="分享者",name="shareUserName") + protected String shareUserName; + + @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") + private Date createDate; + + @TableField(exist = false) + protected Date startDate; + + @TableField(exist = false) + protected Date endDate; + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCLoginMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCLoginMsg.java index aae11a6b7..cff4dc8f6 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCLoginMsg.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCLoginMsg.java @@ -8,6 +8,7 @@ import lombok.ToString; @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) public class FmInsideCLoginMsg extends BaseMsg{ + private static final long serialVersionUID = 1L; @io.swagger.annotations.ApiModelProperty(value = "租户ID", name = "tenantId") @@ -17,6 +18,5 @@ public class FmInsideCLoginMsg extends BaseMsg{ @io.swagger.annotations.ApiModelProperty(value = "用户ID", name = "cUserId") private Long cUserId; - @io.swagger.annotations.ApiModelProperty(value = "是否从unionId更新", name = "findByUnionId") - private Boolean findByUnionId; + } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCUserFrom.java b/mallinkService/src/main/java/com/iformall/enums/EnumCUserFrom.java index e78a5e46f..671d66a71 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCUserFrom.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCUserFrom.java @@ -9,8 +9,11 @@ public enum EnumCUserFrom { FROM_C_USER(1,"来源于微信用户"), FROM_C_USER_BASIC_INFO(2,"来源于会员"), - FROM_MERCHANT(3,"来源于微信用户"), - FROM_COUPON_CHANNEL(4,"来源于卷"), + FROM_MERCHANT_B_USER(3,"来源于B端用户"), + FROM_MALL_USER_INFO(4,"来源于A端用户"), + FROM_MERCHANT(5,"来源于门店"), + FROM_COUPON_CHANNEL(6,"来源于卷"), + FROM_ACTIVITY(7,"来源于活动"), ; public static EnumCUserFrom getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCUserFromMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCUserFromMapper.java new file mode 100644 index 000000000..4605ef943 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCUserFromMapper.java @@ -0,0 +1,12 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxCUserFrom; + +import java.util.List; + +public interface WxCUserFromMapper extends CommonMapper{ + + List findList(WxCUserFrom record); + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserFromService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserFromService.java new file mode 100644 index 000000000..465776dcb --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserFromService.java @@ -0,0 +1,19 @@ +package com.iformall.service; + +import com.github.pagehelper.PageInfo; +import com.iformall.domain.po.WxCUserFrom; + +public interface WxCUserFromService { + + /** + * 根据实体查询分页列表 + * + * @param record + * @param pageIndex + * @param pageSize + * @return + */ + PageInfo listAsPage(WxCUserFrom record, Integer pageIndex, Integer pageSize); + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserService.java index 7c19fc4ec..cbdc2bd04 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserService.java @@ -125,14 +125,14 @@ public interface WxCUserService { * 登录后发消息 * @param user */ - void actionMsgAfterLogin(WxCUser user, Boolean findByUnionId); + void actionMsgAfterLogin(WxCUser user); /** * 登录后处理 * @param user * @return */ - int actionAfterLogin(WxCUser user, Boolean findByUnionId); + int actionAfterLogin(WxCUser user); /** * 积分 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index ee50cd7df..22735438e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -653,6 +653,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc List childrenList = record.getChildrenList(); if(childrenList != null && childrenList.size() > 0){ for (WxCUserBasicChild child:childrenList) { + child.setCUserId(record.getId()); wxCUserBasicChildService.saveOrUpdate(child); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserFromServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserFromServiceImpl.java new file mode 100644 index 000000000..dd20aef4f --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserFromServiceImpl.java @@ -0,0 +1,29 @@ +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 lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class WxCUserFromServiceImpl implements WxCUserFromService { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + WxCUserFromMapper wxCUserFromMapper; + + @Override + public PageInfo listAsPage(WxCUserFrom record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCUserFromMapper.findList(record)); + } + +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java index 2cde73cf7..a2aef34a2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java @@ -88,19 +88,19 @@ public class WxCUserServiceImpl implements WxCUserService { Date curr = new Date(); if (user.getId() == null) { // 检查用户是否已有同一微信开放平台账号 - if(StringUtils.isNotBlank(user.getUnionId()) && StringUtils.isNotBlank(user.getOpenAppId())) { - WxCUser oldUser = wxCUserMapper.findByUnionId(user); - if(oldUser != null) { - // 已有,更新 - user.setId(oldUser.getId()); - user.setLoginCount(oldUser.getLoginCount()==null?0:oldUser.getLoginCount() + 1); - user.setUpdateDate(curr); - user.updateTenantInfo(oldUser); - // TODO 是否其他信息需要更新 - ret = wxCUserMapper.updateById(user); - return ret; - } - } +// if(StringUtils.isNotBlank(user.getUnionId()) && StringUtils.isNotBlank(user.getOpenAppId())) { +// WxCUser oldUser = wxCUserMapper.findByUnionId(user); +// if(oldUser != null) { +// // 已有,更新 +// user.setId(oldUser.getId()); +// user.setLoginCount(oldUser.getLoginCount()==null?0:oldUser.getLoginCount() + 1); +// user.setUpdateDate(curr); +// user.updateTenantInfo(oldUser); +// // TODO 是否其他信息需要更新 +// ret = wxCUserMapper.updateById(user); +// return ret; +// } +// } final IdWorker idWorker = IdWorker.get(); user.setId(idWorker.nextId()); user.setLoginCount(1); @@ -253,18 +253,17 @@ public class WxCUserServiceImpl implements WxCUserService { } @Override - public void actionMsgAfterLogin(WxCUser user, Boolean findByUnionId) { + public void actionMsgAfterLogin(WxCUser user) { FmInsideCLoginMsg loginMsg = new FmInsideCLoginMsg(); loginMsg.setMsgType(EnumMsgRecordType.INSIDE_C_LOGIN.getCode()); loginMsg.updateTenantInfo(user); loginMsg.setCUserId(user.getId()); - loginMsg.setFindByUnionId(findByUnionId); mqBaseProducer.sendMessage(loginMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); } @Override - public int actionAfterLogin(WxCUser user, Boolean findByUnionId) { + public int actionAfterLogin(WxCUser user) { int score = 0; int credit = 0; // 成长值 @@ -291,43 +290,28 @@ public class WxCUserServiceImpl implements WxCUserService { if (wxCUserBasicInfo != null) { WxCUserBasicInfo basicInfo = new WxCUserBasicInfo(); basicInfo.setId(wxCUserBasicInfo.getId()); + basicInfo.setFinalTenantId(user.getFinalTenantId()); basicInfo.setActiveTime(new Date()); int loingcount = 0; try { loingcount = Integer.parseInt(wxCUserBasicInfo.getLoginCount().toString()); }catch(Exception e) { } - basicInfo.setFinalTenantId(user.getFinalTenantId()); basicInfo.setLoginCount(loingcount+1); wxCUserBasicInfoService.update(basicInfo); + + wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN, user,user); } - WxCUser wxCUser = getById(user.getId(),user.getTenantId()); - if (wxCUser != null) { - WxCUser cUser = new WxCUser(); - cUser.setId(user.getId()); - cUser.setActiveTime(new Date()); - cUser.setTenantId(user.getTenantId()); - saveOrUpdate(cUser); - } - wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN, wxCUser,user); - } - // 用户从unionId来的,可能会有重复 -// if(findByUnionId != null) { -// if(findByUnionId) { -// WxCUser userQ = new WxCUser(); -// userQ.setOpenAppId(user.getAppId()); -// userQ.setOpenId(user.getOpenId()); -// List userList = wxCUserMapper.findList(userQ); -// if(userList.size() > 1) { -// for(WxCUser tempUser: userList) { -// if(tempUser.getUnionId() == null) { -// // 删除 无unionId的用户 -// wxCUserMapper.deleteById(tempUser.getId()); -// } -// } -// } +// WxCUser wxCUser = getById(user.getId(),user.getTenantId()); +// if (wxCUser != null) { +// WxCUser cUser = new WxCUser(); +// cUser.setId(user.getId()); +// cUser.setActiveTime(new Date()); +// cUser.setTenantId(user.getTenantId()); +// saveOrUpdate(cUser); // } -// } + + } String key = Constant.tokenPrev + user.getToken(); if(baseCUserTokenRedisTemplate.hasKey(key)){ baseCUserTokenRedisTemplate.delete(key); @@ -349,10 +333,7 @@ public class WxCUserServiceImpl implements WxCUserService { wxCreditHistory.setChangePurpose(enumScoreType.getMessage()); wxCreditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode()); wxCreditHistory.setOperatorId(user.getUserId()); -// wxCreditHistory.setCreditNum(user.getCredit()); -// wxCreditHistory.setCreditAmount(user.getCredit()); WxCreditHistory record = wxCreditHistoryService.saveOrUpdate(wxCreditHistory); -// user.setCredit(record.getCreditAmount()); return record.getCreditAmount(); } diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideCLoginMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideCLoginMsgServiceImpl.java index 44e39f740..53f1d06ca 100644 --- a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideCLoginMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideCLoginMsgServiceImpl.java @@ -40,7 +40,6 @@ public class FmInsideCLoginMsgServiceImpl implements MsgSendService { logger.error("用户ID未找到: " + msg.getCUserId()); throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(), "用户ID未找到" + msg.getCUserId()); } - - userService.actionAfterLogin(user, msg.getFindByUnionId()); + userService.actionAfterLogin(user); } } diff --git a/mallinkService/src/main/resources/mapper/WxCUserFromMapper.xml b/mallinkService/src/main/resources/mapper/WxCUserFromMapper.xml new file mode 100644 index 000000000..0cb8d9cea --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxCUserFromMapper.xml @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + wcuf.`id`,wcuf.`tenant_id`,wcuf.`parent_tenant_id`,wcuf.`c_user_id`,wcuf.`scene`,wcuf.`scene_address`, + wcuf.`from_type`,wcuf.`from_id`,wcuf.`is_new_user`,wcuf.`share_user_type`,wcuf.`share_user`,wcuf.`create_date` + + + + where 1 = 1 + + and wcuf.`id` = #{id} + + + and wcuf.`tenant_id` = #{tenantId} + + + and wcuf.`parent_tenant_id` = #{parentTenantId} + + + and wcuf.`c_user_id` = #{cUserId} + + + and wcuf.`scene` = #{scene} + + + and wcuf.`scene_address` = #{sceneAddress} + + + and wcuf.`from_type` = #{fromType} + + + and wcuf.`from_id` = #{fromId} + + + and wcuf.`is_new_user` = #{isNewUser} + + + and wcuf.`share_user_type` = #{shareUserType} + + + and wcuf.`share_user` = #{shareUser} + + + + and wcuf.`create_date` >= #{startTime} + + + and wcuf.`create_date` <= #{endTime} + + + + and wcuf.id in + + #{idItem} + + + order by wcuf.`create_date` desc + + + + + From 3ba2ec5c0ccb108fcae14851a2c6b63e6865543a Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 7 Jan 2021 15:15:12 +0800 Subject: [PATCH 16/29] cuser --- .../controller/WxUserGrantController.java | 4 +- .../domain/po/msg/FmInsideCLoginMsg.java | 7 ++- .../impl/WxCUserBasicInfoServiceImpl.java | 1 + .../service/impl/WxCUserServiceImpl.java | 3 +- .../service/impl/WxCUserTagsServiceImpl.java | 43 ++++++++++--------- .../impl/FmInsideCLoginMsgServiceImpl.java | 6 +-- 6 files changed, 35 insertions(+), 29 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index 0c4b5d1e4..ba63e138b 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -299,7 +299,7 @@ public class WxUserGrantController extends BaseController { updateCacheCUser(token, oldUser); // 登录后处理 - wxCUserService.actionAfterLogin(oldUser); + wxCUserService.actionMsgAfterLogin(oldUser); } else { // 新用户 @@ -339,7 +339,7 @@ public class WxUserGrantController extends BaseController { updateCacheCUser(token, newUser); // 登录后处理 - wxCUserService.actionAfterLogin(newUser); + wxCUserService.actionMsgAfterLogin(newUser); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCLoginMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCLoginMsg.java index cff4dc8f6..4f397fbe2 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCLoginMsg.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCLoginMsg.java @@ -11,12 +11,15 @@ public class FmInsideCLoginMsg extends BaseMsg{ private static final long serialVersionUID = 1L; + @io.swagger.annotations.ApiModelProperty(value = "id", name = "id") + private Long id; + @io.swagger.annotations.ApiModelProperty(value = "租户ID", name = "tenantId") private String tenantId; @io.swagger.annotations.ApiModelProperty(value="父租户id",name="parentTenantId") private String parentTenantId; - @io.swagger.annotations.ApiModelProperty(value = "用户ID", name = "cUserId") - private Long cUserId; + @io.swagger.annotations.ApiModelProperty(value = "用户ID", name = "userId") + private Long userId; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index 22735438e..b128b5f97 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -653,6 +653,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc List childrenList = record.getChildrenList(); if(childrenList != null && childrenList.size() > 0){ for (WxCUserBasicChild child:childrenList) { + child.setId(null); child.setCUserId(record.getId()); wxCUserBasicChildService.saveOrUpdate(child); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java index a2aef34a2..b2a67d993 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java @@ -255,9 +255,10 @@ public class WxCUserServiceImpl implements WxCUserService { @Override public void actionMsgAfterLogin(WxCUser user) { FmInsideCLoginMsg loginMsg = new FmInsideCLoginMsg(); + loginMsg.setId(user.getId()); loginMsg.setMsgType(EnumMsgRecordType.INSIDE_C_LOGIN.getCode()); loginMsg.updateTenantInfo(user); - loginMsg.setCUserId(user.getId()); + loginMsg.setUserId(user.getUserId()); mqBaseProducer.sendMessage(loginMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java index ae79e2036..35e43364e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java @@ -606,7 +606,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { return resList; } - private List assignTypeId21(WxCUserBasicInfo user,String tenantId) { + private List assignTypeId21(WxCUserBasicInfo user,TenantEntity tenantEntity) { List resList = null; Calendar startC = Calendar.getInstance(); startC.setTime(new Date()); @@ -616,7 +616,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { wxCouponOrder.setCUserId(user.getId()); wxCouponOrder.setStartTime(startC.getTime()); wxCouponOrder.setEndTime(new Date()); - wxCouponOrder.setTenantId(tenantId); + wxCouponOrder.updateTenantInfo(tenantEntity); int count = wxCouponOrderMapper.findCount(wxCouponOrder); @@ -715,27 +715,27 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { WxCUserBasicInfo param = (WxCUserBasicInfo) obj; WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getId(),param.getFinalTenantId()); if (user != null) { - if (param.getSex() != null) { + if (user.getSex() != null) { //性别 - resList = assignTypeId1(user, param.getSex()); + resList = assignTypeId1(user, user.getSex()); } - if (param.getBirthdate() != null) { + if (user.getBirthdate() != null) { //X0后 - resList = assignTypeId2(user, param.getBirthdate()); + resList = assignTypeId2(user, user.getBirthdate()); //生肖 - resList = assignTypeId3(user, param.getBirthdate()); + resList = assignTypeId3(user, user.getBirthdate()); //星座 - resList = assignTypeId4(user, param.getBirthdate()); + resList = assignTypeId4(user, user.getBirthdate()); } - if (param.getPhone() != null) { + if (user.getPhone() != null) { //来源 resList = assignTypeId5(user, false); //运营商 - resList = assignTypeId7(user, param.getPhone()); + resList = assignTypeId7(user, user.getPhone()); } - if (param.getEducation() != null) { + if (user.getEducation() != null) { //学历 - resList = assignTypeId6(user, param.getEducation()); + resList = assignTypeId6(user, user.getEducation()); } resList = assignTypeId29(user); } @@ -754,11 +754,11 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { WxCUser param = (WxCUser) obj; WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getUserId(),param.getFinalTenantId()); if (user != null) { - if (param.getPhone() != null) { + if (user.getPhone() != null) { //来源 resList = assignTypeId5(user, true); //运营商 - resList = assignTypeId7(user, param.getPhone()); + resList = assignTypeId7(user, user.getPhone()); } } } @@ -782,24 +782,25 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { case ASSIGN_TAGS_TRIGGER_LOGIN: { WxCUser param = (WxCUser) obj; - WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getUserId(),param.getFinalTenantId()); + WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getUserId(),param.getFinalTenantId()); + if (user != null) { - if (param.getGender() != null) { + if (user.getSex() != null) { //性别 - resList = assignTypeId1(user, param.getGender()); + resList = assignTypeId1(user, user.getSex()); } if (param.getExtraInfo() != null) { //手机品牌 resList = assignTypeId9(user, param.getExtraInfo()); } - if (param.getPhone() != null) { + if (user.getPhone() != null) { //来源 resList = assignTypeId5(user, true); //运营商 - resList = assignTypeId7(user, param.getPhone()); + resList = assignTypeId7(user, user.getPhone()); } //活跃 - resList = assignTypeId21(user,param.getTenantId()); + resList = assignTypeId21(user,tenantEntity); } } break; @@ -843,7 +844,7 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService { //消费频度 resList = assignTypeId22(user); //活跃 - resList = assignTypeId21(user,suser.getTenantId()); + resList = assignTypeId21(user,tenantEntity); //车 WxCUserCar wxCUserCar = new WxCUserCar(); diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideCLoginMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideCLoginMsgServiceImpl.java index 53f1d06ca..74e717502 100644 --- a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideCLoginMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideCLoginMsgServiceImpl.java @@ -35,10 +35,10 @@ public class FmInsideCLoginMsgServiceImpl implements MsgSendService { @Override public void send(BaseMsg baseMsg) throws Exception { FmInsideCLoginMsg msg = (FmInsideCLoginMsg)baseMsg; - WxCUser user = userService.getById(msg.getCUserId(),msg.getTenantId()); + WxCUser user = userService.getById(msg.getId(),msg.getTenantId()); if(user == null) { - logger.error("用户ID未找到: " + msg.getCUserId()); - throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(), "用户ID未找到" + msg.getCUserId()); + logger.error("用户ID未找到: " + msg.getId()); + throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(), "用户ID未找到" + msg.getId()); } userService.actionAfterLogin(user); } From 259fc14ba8e4f6a570e4159ef5d8fd1b3f85b4af Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 7 Jan 2021 16:16:03 +0800 Subject: [PATCH 17/29] cuser --- .../controller/sys/UploadController.java | 58 ++++++++----------- .../java/com/iformall/common/ErrorCode.java | 2 + 2 files changed, 25 insertions(+), 35 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java b/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java index a853255fb..69b7d206d 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java @@ -13,12 +13,11 @@ import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; import java.io.*; import java.util.*; import java.util.List; @@ -71,7 +70,7 @@ public class UploadController extends BaseController { @PostMapping(value = "/awsImgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @ApiOperation("上传图片") @SystemControllerLog(description = "上传图片") - public ResultData awsImgUpload(@RequestParam("file") MultipartFile multiReq) throws Exception{ + public ResultData awsImgUpload(@RequestParam("file") MultipartFile multiReq,@RequestBody Map paramMap) throws Exception{ logger.info("[" + getIpAddr() + "] UploadController::awsImgUpload"); TenantEntity tenantEntity = getTenantInfo(); @@ -81,45 +80,34 @@ public class UploadController extends BaseController { return new ResultData(ErrorCode.PICTURE_SIZE_EXCEED); } - String tempFileName = UUID.randomUUID().toString(); String fileFormat = ""; int dot = multiReq.getOriginalFilename().lastIndexOf('.'); if (dot >= 0) { fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); } - - try { - FileOutputStream fos = null; String imgFormat = ImgUtil.getImgFormat(fileFormat); if(StringUtils.isNotBlank(imgFormat)) { - String localImgFileName = fmUploadDir + tempFileName + "-1" + fileFormat; - String localNewImgFileName = fmUploadDir + tempFileName + fileFormat; - BufferedInputStream fs = null; - File localFile = new File(localImgFileName); - fos = new FileOutputStream(localFile); - fs = (BufferedInputStream) multiReq.getInputStream(); - byte[] buffer = new byte[1024]; - int len = 0; - while ((len = fs.read(buffer)) != -1) { - fos.write(buffer, 0, len); - } - fos.close(); - fs.close(); - logger.info("local file: " + localImgFileName); - File newFile = ImgUtil.thinImage(localImgFileName, localNewImgFileName, imgFormat); - logger.info("local new file: " + localNewImgFileName); - // 删除本地缓存 - localFile.delete(); - ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, new FileInputStream(newFile)); - // 删除本地缓存 - newFile.delete(); - return data; - } else { - ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); - return data; - } + long maxSize = Long.parseLong(paramMap.get("size")); + if(maxSize > 0 && size > maxSize*1024){ + return new ResultData(ErrorCode.PICTURE_SIZE_CUSTOMIZE); + } + int width = Integer.parseInt(paramMap.get("width")); + int hight = Integer.parseInt(paramMap.get("hight")); + BufferedImage bufferedImage = ImageIO.read(multiReq.getInputStream()); + if(bufferedImage != null){ + Integer relWidth = bufferedImage.getWidth(); + Integer relHeight = bufferedImage.getHeight(); + if((width > 0 && width != relWidth.intValue()) + || (hight > 0 && hight != relHeight.intValue())){ + return new ResultData(ErrorCode.PICTURE_W_H_CUSTOMIZE); + } + } + } + ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); + return data; + } catch (Exception e) { logger.error(e.getMessage()); return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index dda52daff..c2d161a16 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -544,6 +544,8 @@ public enum ErrorCode{ */ PICTURE_SIZE_EXCEED(40001, "图片超过2M限制"), PICTURE_ANALYZING_ERROR(40002, "您上传的图片无法解析,请检查"), + PICTURE_SIZE_CUSTOMIZE(40003, "图片超过大小限制"), + PICTURE_W_H_CUSTOMIZE(40004, "图片不符合宽高限制"), /** * 电费生成配置 From 73efe824f9cd48e33ed06d7b348c9e7dbb3d9942 Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 7 Jan 2021 16:32:52 +0800 Subject: [PATCH 18/29] cuser --- .../java/com/iformall/controller/WxUserGrantController.java | 1 + .../src/main/java/com/iformall/domain/vo/WxCUserVo.java | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index ba63e138b..ee79f95ca 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -729,6 +729,7 @@ public class WxUserGrantController extends BaseController { userVo.setSex(wxCUserBasicInfo.getSex()); userVo.setAddress(wxCUserBasicInfo.getAddress()); userVo.setStatus(wxCUserBasicInfo.getStatus()); + userVo.setChildrenList(wxCUserBasicInfo.getChildrenList()); } } catch (Exception e) { logger.error("userinfo error.",e); diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxCUserVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxCUserVo.java index 0355736a2..8418cfe78 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxCUserVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxCUserVo.java @@ -1,12 +1,15 @@ package com.iformall.domain.vo; +import com.baomidou.mybatisplus.annotation.TableField; import com.iformall.domain.po.WxCUser; +import com.iformall.domain.po.WxCUserBasicChild; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; import java.util.Date; +import java.util.List; /** * Created by syf on 2018/8/30. @@ -39,4 +42,7 @@ public class WxCUserVo extends WxCUser { @io.swagger.annotations.ApiModelProperty(value = "0正常1锁定", name = "status") private Integer status; + + @TableField(exist = false) + private List childrenList; } From c4fb05f36d9daf027890dd01d02374b8dd8b9e32 Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 7 Jan 2021 16:59:09 +0800 Subject: [PATCH 19/29] cuser --- .../com/iformall/controller/sys/UploadController.java | 11 ++++------- .../com/iformall/service/impl/WxGameServiceImpl.java | 1 + 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java b/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java index 69b7d206d..c12347523 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java @@ -70,7 +70,7 @@ public class UploadController extends BaseController { @PostMapping(value = "/awsImgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @ApiOperation("上传图片") @SystemControllerLog(description = "上传图片") - public ResultData awsImgUpload(@RequestParam("file") MultipartFile multiReq,@RequestBody Map paramMap) throws Exception{ + public ResultData awsImgUpload(@RequestParam("file") MultipartFile multiReq,@RequestParam("w") Integer width,@RequestParam("h") Integer hight,@RequestParam("size") Long maxSize) { logger.info("[" + getIpAddr() + "] UploadController::awsImgUpload"); TenantEntity tenantEntity = getTenantInfo(); @@ -89,18 +89,15 @@ public class UploadController extends BaseController { try { String imgFormat = ImgUtil.getImgFormat(fileFormat); if(StringUtils.isNotBlank(imgFormat)) { - long maxSize = Long.parseLong(paramMap.get("size")); - if(maxSize > 0 && size > maxSize*1024){ + if(maxSize != null && size > maxSize*1024){ return new ResultData(ErrorCode.PICTURE_SIZE_CUSTOMIZE); } - int width = Integer.parseInt(paramMap.get("width")); - int hight = Integer.parseInt(paramMap.get("hight")); BufferedImage bufferedImage = ImageIO.read(multiReq.getInputStream()); if(bufferedImage != null){ Integer relWidth = bufferedImage.getWidth(); Integer relHeight = bufferedImage.getHeight(); - if((width > 0 && width != relWidth.intValue()) - || (hight > 0 && hight != relHeight.intValue())){ + if((width != null && width != relWidth.intValue()) + || (hight != null && hight != relHeight.intValue())){ return new ResultData(ErrorCode.PICTURE_W_H_CUSTOMIZE); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java index 26e941e66..457fc8028 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java @@ -455,6 +455,7 @@ public class WxGameServiceImpl implements WxGameService { WxOrder order = (WxOrder)resultData1.data; orderId = order.getId(); }else{ + logger.info("userId:"+userId+",中奖了发卷失败,"+resultData1.toString()); resultData.data = null; } }else if(data instanceof JSONObject){ From 71c319e88cdbee258524303f147e642ec28c015d Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 7 Jan 2021 17:09:03 +0800 Subject: [PATCH 20/29] cuser --- .../java/com/iformall/service/impl/WxGameServiceImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java index 457fc8028..105456f69 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java @@ -444,6 +444,7 @@ public class WxGameServiceImpl implements WxGameService { Long orderId = 0L; Integer addCredit = 0; if(data != null){ + logger.info("userId:"+userId+",中奖了,"+data.toString()); if(data instanceof WxCouponChannelVo){ WxCouponChannelVo vo = (WxCouponChannelVo) data; OrderSaveDto orderSaveDto = new OrderSaveDto(); @@ -477,12 +478,14 @@ public class WxGameServiceImpl implements WxGameService { addCredit = credit; orderId = Constant.creditPlayOrderIdTab; }else{ + logger.info("userId:"+userId+",中奖了加积分为零"); resultData.data = null; } // } } - + }else{ + logger.info("userId:"+userId+",没中奖,"+data.toString()); } final IdWorker idWorker = IdWorker.get(); WxGameActionLog wxGameActionLog = new WxGameActionLog(); From 5bf83c0dc8c56d89c4ea721edc56ba2aa1fb0018 Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 7 Jan 2021 18:05:51 +0800 Subject: [PATCH 21/29] cuser --- .../controller/sys/UploadController.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java b/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java index c12347523..25c00c22b 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java @@ -1,6 +1,7 @@ package com.iformall.controller.sys; 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; @@ -70,7 +71,8 @@ public class UploadController extends BaseController { @PostMapping(value = "/awsImgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @ApiOperation("上传图片") @SystemControllerLog(description = "上传图片") - public ResultData awsImgUpload(@RequestParam("file") MultipartFile multiReq,@RequestParam("w") Integer width,@RequestParam("h") Integer hight,@RequestParam("size") Long maxSize) { + public ResultData awsImgUpload(@RequestParam("file") MultipartFile multiReq + ,@RequestParam Map param) { logger.info("[" + getIpAddr() + "] UploadController::awsImgUpload"); TenantEntity tenantEntity = getTenantInfo(); @@ -89,15 +91,24 @@ public class UploadController extends BaseController { try { String imgFormat = ImgUtil.getImgFormat(fileFormat); if(StringUtils.isNotBlank(imgFormat)) { - if(maxSize != null && size > maxSize*1024){ + long maxSize = 0l; + try { + maxSize = Long.parseLong(param.get("size")); + } catch (NumberFormatException e) {} + if(maxSize > 0l && size > maxSize*1024){ return new ResultData(ErrorCode.PICTURE_SIZE_CUSTOMIZE); } BufferedImage bufferedImage = ImageIO.read(multiReq.getInputStream()); if(bufferedImage != null){ + int width = 0;int hight = 0; + try { + width = Integer.parseInt(param.get("width")); + hight = Integer.parseInt(param.get("hight")); + } catch (NumberFormatException e) {} Integer relWidth = bufferedImage.getWidth(); Integer relHeight = bufferedImage.getHeight(); - if((width != null && width != relWidth.intValue()) - || (hight != null && hight != relHeight.intValue())){ + if((width > 0 && width != relWidth.intValue()) + || (hight > 0 && hight != relHeight.intValue())){ return new ResultData(ErrorCode.PICTURE_W_H_CUSTOMIZE); } } @@ -105,6 +116,9 @@ public class UploadController extends BaseController { ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); return data; + } catch (NumberFormatException ne) { + logger.error(ne.getMessage()); + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } catch (Exception e) { logger.error(e.getMessage()); return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); From d1f669e58e9f0c8081a687adca04312102cad2ea Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 7 Jan 2021 18:59:34 +0800 Subject: [PATCH 22/29] cuser --- .../controller/sys/UploadController.java | 129 ++++++----- .../iformall/controller/UploadController.java | 206 +++++++++++------- .../iformall/controller/UploadController.java | 161 ++++++++++---- .../controller/sys/UploadController.java | 199 +++++++++-------- 4 files changed, 429 insertions(+), 266 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java b/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java index 25c00c22b..f3d91fadb 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java @@ -1,7 +1,6 @@ package com.iformall.controller.sys; 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; @@ -19,7 +18,6 @@ import org.springframework.web.multipart.MultipartFile; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; -import java.io.*; import java.util.*; import java.util.List; @@ -30,8 +28,6 @@ public class UploadController extends BaseController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); - @Autowired - private String fmUploadDir; @Autowired private AliyunOSS aliyunOSS; @@ -45,19 +41,25 @@ public class UploadController extends BaseController { @PostMapping(value = "/awsFileUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @ApiOperation("上传文件") @SystemControllerLog(description = "文件上传") - public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) throws Exception { + public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) { logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload"); TenantEntity tenantEntity = getTenantInfo(); - int dot = multiReq.getOriginalFilename().lastIndexOf('.'); - String fileFormat = ""; - if (dot >= 0) { - fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); - } + try { + int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; + if (dot >= 0) { + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + } - ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); - return data; + ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); + return data; + + } catch (Exception e) { + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); + } } @@ -83,12 +85,12 @@ public class UploadController extends BaseController { } String fileFormat = ""; - - int dot = multiReq.getOriginalFilename().lastIndexOf('.'); - if (dot >= 0) { - fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); - } try { + int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + if (dot >= 0) { + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + } + String imgFormat = ImgUtil.getImgFormat(fileFormat); if(StringUtils.isNotBlank(imgFormat)) { long maxSize = 0l; @@ -116,9 +118,6 @@ public class UploadController extends BaseController { ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); return data; - } catch (NumberFormatException ne) { - logger.error(ne.getMessage()); - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } catch (Exception e) { logger.error(e.getMessage()); return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); @@ -135,65 +134,75 @@ public class UploadController extends BaseController { @PostMapping(value = "/awsFilesUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @ApiOperation("多文件上传") @SystemControllerLog(description = "多文件上传") - public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) throws Exception{ + public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) { logger.info("[" + getIpAddr() + "] UploadController::awsFilesUpload"); TenantEntity tenantEntity = getTenantInfo(); + try { + if(files.length > 0){ + ResultData data = new ResultData(); + List> dataList = new ArrayList>(); + for(MultipartFile multipartFile: files) { + Map map = new HashMap<>(); + + map.put("key", multipartFile.getOriginalFilename()); + + int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; + if (dot >= 0) { + fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());; + } - if(files.length > 0){ - ResultData data = new ResultData(); - List> dataList = new ArrayList>(); - for(MultipartFile multipartFile: files) { - Map map = new HashMap<>(); - - map.put("key", multipartFile.getOriginalFilename()); - - int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); - String fileFormat = ""; - if (dot >= 0) { - fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());; + ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream()); + + if(data1.code == ResultData.SUCCESS) { + Map _data = (Map)data1.data; + map.put("url", (String) _data.get("url")); + dataList.add(map); + } else { + // 部分成功 + data.code = ResultData.SUCCESS; + data.data = dataList; + return data; + } } + data.code = ResultData.SUCCESS; + data.data = dataList; + return data; - ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream()); - - if(data1.code == ResultData.SUCCESS) { - Map _data = (Map)data1.data; - map.put("url", (String) _data.get("url")); - dataList.add(map); - } else { - // 部分成功 - data.code = ResultData.SUCCESS; - data.data = dataList; - return data; - } + }else{ + return new ResultData(); } - data.code = ResultData.SUCCESS; - data.data = dataList; - return data; - + } catch (Exception e) { + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); } - return new ResultData(); } /** - * 内部接口-C端上传图片文件 + * 内部接口-A端上传图片文件 * * @param multiReq * @return * @throws Exception */ @PostMapping(value = "/cimgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") - @ApiOperation("内部接口-C端上传图片文件") - public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) throws Exception{ + @ApiOperation("内部接口-A端上传图片文件") + public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) { logger.info("[" + getIpAddr() + "] UploadController::cimgUpload"); - int dot = multiReq.getOriginalFilename().lastIndexOf('.'); - String fileFormat = ""; - if (dot >= 0) { - fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); - } + try { + int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; + if (dot >= 0) { + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + } - ResultData data = aliyunOSS.uploadFile("cimg", fileFormat, multiReq.getInputStream()); - return data; + ResultData data = aliyunOSS.uploadFile("aimg", fileFormat, multiReq.getInputStream()); + return data; + } catch (Exception e) { + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); + } } } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/UploadController.java b/mallinkBApi/src/main/java/com/iformall/controller/UploadController.java index 9f745fae6..17b9706df 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/UploadController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/UploadController.java @@ -1,6 +1,6 @@ package com.iformall.controller; - +import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.domain.po.base.TenantEntity; import com.iformall.file.aliyun.AliyunOSS; @@ -11,13 +11,11 @@ import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import java.io.*; +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; import java.util.*; import java.util.List; @@ -28,36 +26,40 @@ public class UploadController extends BaseController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); - @Autowired - private String fmUploadDir; - @Autowired private AliyunOSS aliyunOSS; /** * 上传文件 * - * @param + * @param multiReq * @return * @throws Exception */ - @PostMapping(value = "/awsFileUpload") + @PostMapping(value = "/awsFileUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @ApiOperation("上传文件") - public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) throws Exception { + public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) { logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload"); TenantEntity tenantEntity = getTenantInfo(); - int dot = multiReq.getOriginalFilename().lastIndexOf('.'); - String fileFormat = ""; - if (dot >= 0) { - fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); - } + try { + int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; + if (dot >= 0) { + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + } + + ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); + return data; - ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); - return data; + } catch (Exception e) { + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); + } } + /** * 图片上传 * @@ -67,47 +69,54 @@ public class UploadController extends BaseController { */ @PostMapping(value = "/awsImgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @ApiOperation("上传图片") - public ResultData awsImgUpload(@RequestParam("file") MultipartFile multiReq) throws Exception { + public ResultData awsImgUpload(@RequestParam("file") MultipartFile multiReq + ,@RequestParam Map param) { logger.info("[" + getIpAddr() + "] UploadController::awsImgUpload"); - TenantEntity tenantEntity = getTenantInfo(); - String tempFileName = UUID.randomUUID().toString(); - String fileFormat = ""; - - int dot = multiReq.getOriginalFilename().lastIndexOf('.'); - if (dot >= 0) { - fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + long size = multiReq.getSize(); + final long length = 2097152; + if (size > length) { + return new ResultData(ErrorCode.PICTURE_SIZE_EXCEED); } - FileOutputStream fos = null; - - String imgFormat = ImgUtil.getImgFormat(fileFormat); - if(StringUtils.isNotBlank(imgFormat)) { - String localImgFileName = fmUploadDir + tempFileName + "-1" + fileFormat; - String localNewImgFileName = fmUploadDir + tempFileName + fileFormat; - BufferedInputStream fs = null; - File localFile = new File(localImgFileName); - fos = new FileOutputStream(localFile); - fs = (BufferedInputStream) multiReq.getInputStream(); - byte[] buffer = new byte[1024]; - int len = 0; - while ((len = fs.read(buffer)) != -1) { - fos.write(buffer, 0, len); + String fileFormat = ""; + try { + int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + if (dot >= 0) { + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + } + + String imgFormat = ImgUtil.getImgFormat(fileFormat); + if(StringUtils.isNotBlank(imgFormat)) { + long maxSize = 0l; + try { + maxSize = Long.parseLong(param.get("size")); + } catch (NumberFormatException e) {} + if(maxSize > 0l && size > maxSize*1024){ + return new ResultData(ErrorCode.PICTURE_SIZE_CUSTOMIZE); + } + BufferedImage bufferedImage = ImageIO.read(multiReq.getInputStream()); + if(bufferedImage != null){ + int width = 0;int hight = 0; + try { + width = Integer.parseInt(param.get("width")); + hight = Integer.parseInt(param.get("hight")); + } catch (NumberFormatException e) {} + Integer relWidth = bufferedImage.getWidth(); + Integer relHeight = bufferedImage.getHeight(); + if((width > 0 && width != relWidth.intValue()) + || (hight > 0 && hight != relHeight.intValue())){ + return new ResultData(ErrorCode.PICTURE_W_H_CUSTOMIZE); + } + } } - fos.close(); - fs.close(); - - File newFile = ImgUtil.thinImage(localImgFileName, localNewImgFileName, imgFormat); - // 删除本地缓存 - localFile.delete(); - ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, new FileInputStream(newFile)); - // 删除本地缓存 - newFile.delete(); - return data; - } else { ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); return data; + + } catch (Exception e) { + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); } } @@ -120,42 +129,75 @@ public class UploadController extends BaseController { */ @PostMapping(value = "/awsFilesUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @ApiOperation("多文件上传") - public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) throws Exception { + public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) { logger.info("[" + getIpAddr() + "] UploadController::awsFilesUpload"); - TenantEntity tenantEntity = getTenantInfo(); - - if (files.length > 0) { - ResultData data = new ResultData(); - List> dataList = new ArrayList>(); - for (MultipartFile multipartFile : files) { - Map map = new HashMap<>(); - - map.put("key", multipartFile.getOriginalFilename()); - - int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); - String fileFormat = ""; - if (dot >= 0) { - fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length()); + try { + if(files.length > 0){ + ResultData data = new ResultData(); + List> dataList = new ArrayList>(); + for(MultipartFile multipartFile: files) { + Map map = new HashMap<>(); + + map.put("key", multipartFile.getOriginalFilename()); + + int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; + if (dot >= 0) { + fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());; + } + + ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream()); + + if(data1.code == ResultData.SUCCESS) { + Map _data = (Map)data1.data; + map.put("url", (String) _data.get("url")); + dataList.add(map); + } else { + // 部分成功 + data.code = ResultData.SUCCESS; + data.data = dataList; + return data; + } } + data.code = ResultData.SUCCESS; + data.data = dataList; + return data; - ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream()); - if (data1.code == ResultData.SUCCESS) { - Map _data = (Map) data1.data; - map.put("url", (String) _data.get("url")); - dataList.add(map); - } else { - // 部分成功 - data.code = ResultData.SUCCESS; - data.data = dataList; - return data; - } + }else{ + return new ResultData(); } - data.code = ResultData.SUCCESS; - data.data = dataList; - return data; + } catch (Exception e) { + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); + } + } + /** + * 内部接口-B端上传图片文件 + * + * @param multiReq + * @return + * @throws Exception + */ + @PostMapping(value = "/cimgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") + @ApiOperation("内部接口-B端上传图片文件") + public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) { + logger.info("[" + getIpAddr() + "] UploadController::cimgUpload"); + + try { + int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; + if (dot >= 0) { + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + } + + ResultData data = aliyunOSS.uploadFile("bimg", fileFormat, multiReq.getInputStream()); + return data; + } catch (Exception e) { + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); } - return new ResultData(); } + } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/UploadController.java b/mallinkCApi/src/main/java/com/iformall/controller/UploadController.java index 633396d33..26499de18 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/UploadController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/UploadController.java @@ -4,19 +4,20 @@ import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.domain.po.base.TenantEntity; import com.iformall.file.aliyun.AliyunOSS; +import com.iformall.utils.ImgUtil; import io.swagger.annotations.Api; 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; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import java.io.IOException; +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; import java.util.*; +import java.util.List; @RestController @RequestMapping(value = "/api/upload") @@ -28,7 +29,6 @@ public class UploadController extends BaseController { @Autowired private AliyunOSS aliyunOSS; - /** * 上传文件 * @@ -43,20 +43,81 @@ public class UploadController extends BaseController { TenantEntity tenantEntity = getTenantInfo(); - int dot = multiReq.getOriginalFilename().lastIndexOf('.'); - String fileFormat = ""; - if (dot >= 0) { - fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + try { + int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; + if (dot >= 0) { + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + } + + ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); + return data; + + } catch (Exception e) { + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); } + } + + /** + * 图片上传 + * + * @param multiReq + * @return + * @throws Exception + */ + @PostMapping(value = "/awsImgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") + @ApiOperation("上传图片") + public ResultData awsImgUpload(@RequestParam("file") MultipartFile multiReq + ,@RequestParam Map param) { + logger.info("[" + getIpAddr() + "] UploadController::awsImgUpload"); + TenantEntity tenantEntity = getTenantInfo(); + + long size = multiReq.getSize(); + final long length = 2097152; + if (size > length) { + return new ResultData(ErrorCode.PICTURE_SIZE_EXCEED); + } + + String fileFormat = ""; try { + int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + if (dot >= 0) { + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + } + + String imgFormat = ImgUtil.getImgFormat(fileFormat); + if(StringUtils.isNotBlank(imgFormat)) { + long maxSize = 0l; + try { + maxSize = Long.parseLong(param.get("size")); + } catch (NumberFormatException e) {} + if(maxSize > 0l && size > maxSize*1024){ + return new ResultData(ErrorCode.PICTURE_SIZE_CUSTOMIZE); + } + BufferedImage bufferedImage = ImageIO.read(multiReq.getInputStream()); + if(bufferedImage != null){ + int width = 0;int hight = 0; + try { + width = Integer.parseInt(param.get("width")); + hight = Integer.parseInt(param.get("hight")); + } catch (NumberFormatException e) {} + Integer relWidth = bufferedImage.getWidth(); + Integer relHeight = bufferedImage.getHeight(); + if((width > 0 && width != relWidth.intValue()) + || (hight > 0 && hight != relHeight.intValue())){ + return new ResultData(ErrorCode.PICTURE_W_H_CUSTOMIZE); + } + } + } ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); return data; - } catch (IOException e) { + + } catch (Exception e) { logger.error(e.getMessage()); return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); } - } /** @@ -70,27 +131,26 @@ public class UploadController extends BaseController { @ApiOperation("多文件上传") public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) { logger.info("[" + getIpAddr() + "] UploadController::awsFilesUpload"); - TenantEntity tenantEntity = getTenantInfo(); + try { + if(files.length > 0){ + ResultData data = new ResultData(); + List> dataList = new ArrayList>(); + for(MultipartFile multipartFile: files) { + Map map = new HashMap<>(); + + map.put("key", multipartFile.getOriginalFilename()); + + int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; + if (dot >= 0) { + fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());; + } - if (files.length > 0) { - ResultData data = new ResultData(); - List> dataList = new ArrayList>(); - for (MultipartFile multipartFile : files) { - Map map = new HashMap<>(); - - map.put("key", multipartFile.getOriginalFilename()); - - int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); - String fileFormat = ""; - if (dot >= 0) { - fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length()); - } - - try { ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream()); - if (data1.code == ResultData.SUCCESS) { - Map _data = (Map) data1.data; + + if(data1.code == ResultData.SUCCESS) { + Map _data = (Map)data1.data; map.put("url", (String) _data.get("url")); dataList.add(map); } else { @@ -99,18 +159,45 @@ public class UploadController extends BaseController { data.data = dataList; return data; } - } catch (IOException e) { - logger.error(e.getMessage()); - return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); } + data.code = ResultData.SUCCESS; + data.data = dataList; + return data; + }else{ + return new ResultData(); + } + } catch (Exception e) { + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); + } + } + + /** + * 内部接口-C端上传图片文件 + * + * @param multiReq + * @return + * @throws Exception + */ + @PostMapping(value = "/cimgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") + @ApiOperation("内部接口-C端上传图片文件") + public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) { + logger.info("[" + getIpAddr() + "] UploadController::cimgUpload"); + + try { + int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; + if (dot >= 0) { + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); } - data.code = ResultData.SUCCESS; - data.data = dataList; - return data; + ResultData data = aliyunOSS.uploadFile("cimg", fileFormat, multiReq.getInputStream()); + return data; + } catch (Exception e) { + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); } - return new ResultData(); } } diff --git a/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/UploadController.java b/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/UploadController.java index 52f1dfe56..2de6e89c4 100644 --- a/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/UploadController.java +++ b/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/UploadController.java @@ -1,6 +1,7 @@ package com.iformall.controller.sys; - +import com.iformall.annotation.SystemControllerLog; +import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.base.TenantEntity; @@ -15,7 +16,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import java.io.*; +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; import java.util.*; import java.util.List; @@ -26,13 +28,9 @@ public class UploadController extends BaseController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); - @Autowired - private String fmUploadDir; - @Autowired private AliyunOSS aliyunOSS; - /** * 上传文件 * @@ -42,21 +40,29 @@ public class UploadController extends BaseController { */ @PostMapping(value = "/awsFileUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @ApiOperation("上传文件") - public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) throws Exception { + @SystemControllerLog(description = "文件上传") + public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) { logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload"); TenantEntity tenantEntity = getTenantInfo(); - int dot = multiReq.getOriginalFilename().lastIndexOf('.'); - String fileFormat = ""; - if (dot >= 0) { - fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); - } + try { + int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; + if (dot >= 0) { + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + } - ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); - return data; + ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); + return data; + + } catch (Exception e) { + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); + } } + /** * 图片上传 * @@ -66,46 +72,55 @@ public class UploadController extends BaseController { */ @PostMapping(value = "/awsImgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @ApiOperation("上传图片") - public ResultData awsImgUpload(@RequestParam("file") MultipartFile multiReq) throws Exception{ + @SystemControllerLog(description = "上传图片") + public ResultData awsImgUpload(@RequestParam("file") MultipartFile multiReq + ,@RequestParam Map param) { logger.info("[" + getIpAddr() + "] UploadController::awsImgUpload"); - TenantEntity tenantEntity = getTenantInfo(); - String tempFileName = UUID.randomUUID().toString(); - String fileFormat = ""; - int dot = multiReq.getOriginalFilename().lastIndexOf('.'); - if (dot >= 0) { - fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + long size = multiReq.getSize(); + final long length = 2097152; + if (size > length) { + return new ResultData(ErrorCode.PICTURE_SIZE_EXCEED); } - FileOutputStream fos = null; - String imgFormat = ImgUtil.getImgFormat(fileFormat); - if(StringUtils.isNotBlank(imgFormat)) { - String localImgFileName = fmUploadDir + tempFileName + "-1" + fileFormat; - String localNewImgFileName = fmUploadDir + tempFileName + fileFormat; - BufferedInputStream fs = null; - File localFile = new File(localImgFileName); - fos = new FileOutputStream(localFile); - fs = (BufferedInputStream) multiReq.getInputStream(); - byte[] buffer = new byte[1024]; - int len = 0; - while ((len = fs.read(buffer)) != -1) { - fos.write(buffer, 0, len); + String fileFormat = ""; + try { + int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + if (dot >= 0) { + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); } - fos.close(); - fs.close(); - File newFile = ImgUtil.thinImage(localImgFileName, localNewImgFileName, imgFormat); - // 删除本地缓存 - localFile.delete(); - - ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, new FileInputStream(newFile)); - // 删除本地缓存 - newFile.delete(); - return data; - } else { + String imgFormat = ImgUtil.getImgFormat(fileFormat); + if(StringUtils.isNotBlank(imgFormat)) { + long maxSize = 0l; + try { + maxSize = Long.parseLong(param.get("size")); + } catch (NumberFormatException e) {} + if(maxSize > 0l && size > maxSize*1024){ + return new ResultData(ErrorCode.PICTURE_SIZE_CUSTOMIZE); + } + BufferedImage bufferedImage = ImageIO.read(multiReq.getInputStream()); + if(bufferedImage != null){ + int width = 0;int hight = 0; + try { + width = Integer.parseInt(param.get("width")); + hight = Integer.parseInt(param.get("hight")); + } catch (NumberFormatException e) {} + Integer relWidth = bufferedImage.getWidth(); + Integer relHeight = bufferedImage.getHeight(); + if((width > 0 && width != relWidth.intValue()) + || (hight > 0 && hight != relHeight.intValue())){ + return new ResultData(ErrorCode.PICTURE_W_H_CUSTOMIZE); + } + } + } ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); return data; + + } catch (Exception e) { + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); } } @@ -118,66 +133,76 @@ public class UploadController extends BaseController { */ @PostMapping(value = "/awsFilesUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") @ApiOperation("多文件上传") - public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) throws Exception { + @SystemControllerLog(description = "多文件上传") + public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) { logger.info("[" + getIpAddr() + "] UploadController::awsFilesUpload"); - TenantEntity tenantEntity = getTenantInfo(); - - if(files.length > 0){ - ResultData data = new ResultData(); - List> dataList = new ArrayList>(); - for(MultipartFile multipartFile: files) { - Map map = new HashMap<>(); - - map.put("key", multipartFile.getOriginalFilename()); - - int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); - String fileFormat = ""; - if (dot >= 0) { - fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length()); + try { + if(files.length > 0){ + ResultData data = new ResultData(); + List> dataList = new ArrayList>(); + for(MultipartFile multipartFile: files) { + Map map = new HashMap<>(); + + map.put("key", multipartFile.getOriginalFilename()); + + int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; + if (dot >= 0) { + fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());; + } + + ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream()); + + if(data1.code == ResultData.SUCCESS) { + Map _data = (Map)data1.data; + map.put("url", (String) _data.get("url")); + dataList.add(map); + } else { + // 部分成功 + data.code = ResultData.SUCCESS; + data.data = dataList; + return data; + } } + data.code = ResultData.SUCCESS; + data.data = dataList; + return data; - ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream()); - if(data1.code == ResultData.SUCCESS) { - Map _data = (Map)data1.data; - map.put("url", (String) _data.get("url")); - dataList.add(map); - } else { - // 部分成功 - data.code = ResultData.SUCCESS; - data.data = dataList; - return data; - } + }else{ + return new ResultData(); } - data.code = ResultData.SUCCESS; - data.data = dataList; - return data; - + } catch (Exception e) { + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); } - return new ResultData(); } /** - * C端上传图片文件 + * 内部接口-sys端上传图片文件 * * @param multiReq * @return * @throws Exception */ @PostMapping(value = "/cimgUpload", consumes = "multipart/*", headers = "content-type=multipart/form-data") - @ApiOperation("C端上传图片文件") - public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) throws Exception { + @ApiOperation("内部接口-sys端上传图片文件") + public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) { logger.info("[" + getIpAddr() + "] UploadController::cimgUpload"); - int dot = multiReq.getOriginalFilename().lastIndexOf('.'); - String fileFormat = ""; - if (dot >= 0) { - fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); - } + try { + int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; + if (dot >= 0) { + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + } - ResultData data = aliyunOSS.uploadFile("cimg", fileFormat, multiReq.getInputStream()); - return data; + ResultData data = aliyunOSS.uploadFile("sysimg", fileFormat, multiReq.getInputStream()); + return data; + } catch (Exception e) { + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); + } } - } From 257ac9ae50a90e20c46f01407a08e318a67f3c2f Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 7 Jan 2021 19:25:52 +0800 Subject: [PATCH 23/29] cuser --- .../main/java/com/iformall/controller/WxGameController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java index 3d7200e0e..3da784c66 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java @@ -101,6 +101,7 @@ public class WxGameController extends BaseController { @ApiImplicitParams({ @ApiImplicitParam(name = "gameId", value = "游戏ID", dataType = "String", paramType = "query", required = true)}) public ResultData freeGameGo(@RequestBody Map paramMap) { + logger.info("freeGameGo-------"+paramMap.get("gameId")); try { Long gameIdL = Long.valueOf(paramMap.get("gameId")); if(gameIdL == null){ @@ -124,7 +125,6 @@ public class WxGameController extends BaseController { return new ResultData(ErrorCode.GAME_NOT_HAVE_COUNT); } ResultData resultData = wxGameService.luckDraw(gameIdL, getMemberId(),0); - removeCacheCUser(); return resultData; } catch (MallinkException e){ return new ResultData(ErrorCode.getByCode(e.getErrorCode())); @@ -140,6 +140,7 @@ public class WxGameController extends BaseController { @ApiImplicitParams({ @ApiImplicitParam(name = "gameId", value = "游戏ID", dataType = "String", paramType = "query", required = true)}) public ResultData freeCridetGameGo(@RequestBody Map paramMap) { + logger.info("freeCridetGameGo-------"+paramMap.get("gameId")); try { Long gameIdL = Long.valueOf(paramMap.get("gameId")); if(gameIdL == null){ @@ -169,7 +170,6 @@ public class WxGameController extends BaseController { return new ResultData(ErrorCode.GAME_HAVE_COUNT); } ResultData resultData = wxGameService.cridetLuckDraw(gameIdL, getMemberId()); - removeCacheCUser(); return resultData; } catch (MallinkException e){ return new ResultData(ErrorCode.getByCode(e.getErrorCode())); From 8041b4c485a1435997cbb786f6ebaf5e8b0b3738 Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 7 Jan 2021 19:48:58 +0800 Subject: [PATCH 24/29] cuser --- .../main/java/com/iformall/controller/WxGameController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java index 3da784c66..d36a0d6eb 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java @@ -73,7 +73,6 @@ public class WxGameController extends BaseController { Long orderIdL = Long.valueOf(paramMap.get("orderId")); return wxGameService.addActionLog(getMemberId(), gameIdL, orderIdL,getTenantInfo()); } catch (Exception e){ - e.printStackTrace(); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } @@ -90,7 +89,6 @@ public class WxGameController extends BaseController { logger.info("游戏次数详情-----"+resultData.data.toString()); return resultData; } catch (Exception e){ - e.printStackTrace(); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } @@ -130,6 +128,7 @@ public class WxGameController extends BaseController { return new ResultData(ErrorCode.getByCode(e.getErrorCode())); } catch (Exception e){ e.printStackTrace(); + logger.info("freeGameGo-------"+e.getMessage()); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } @@ -175,6 +174,7 @@ public class WxGameController extends BaseController { return new ResultData(ErrorCode.getByCode(e.getErrorCode())); } catch (Exception e){ e.printStackTrace(); + logger.info("freeCridetGameGo-------"+e.getMessage()); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } From 217a53429699151465961c870b4b619d200273a4 Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 7 Jan 2021 19:55:09 +0800 Subject: [PATCH 25/29] cuser --- .../java/com/iformall/controller/WxGameController.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java index d36a0d6eb..862416dc6 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java @@ -99,7 +99,7 @@ public class WxGameController extends BaseController { @ApiImplicitParams({ @ApiImplicitParam(name = "gameId", value = "游戏ID", dataType = "String", paramType = "query", required = true)}) public ResultData freeGameGo(@RequestBody Map paramMap) { - logger.info("freeGameGo-------"+paramMap.get("gameId")); + logger.info("freeGameGo----start-------"+paramMap.get("gameId")); try { Long gameIdL = Long.valueOf(paramMap.get("gameId")); if(gameIdL == null){ @@ -128,7 +128,7 @@ public class WxGameController extends BaseController { return new ResultData(ErrorCode.getByCode(e.getErrorCode())); } catch (Exception e){ e.printStackTrace(); - logger.info("freeGameGo-------"+e.getMessage()); + logger.info("freeGameGo----error-------"+e.getMessage()+e.toString()); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } @@ -139,7 +139,7 @@ public class WxGameController extends BaseController { @ApiImplicitParams({ @ApiImplicitParam(name = "gameId", value = "游戏ID", dataType = "String", paramType = "query", required = true)}) public ResultData freeCridetGameGo(@RequestBody Map paramMap) { - logger.info("freeCridetGameGo-------"+paramMap.get("gameId")); + logger.info("freeCridetGameGo-----start-------"+paramMap.get("gameId")); try { Long gameIdL = Long.valueOf(paramMap.get("gameId")); if(gameIdL == null){ @@ -174,7 +174,7 @@ public class WxGameController extends BaseController { return new ResultData(ErrorCode.getByCode(e.getErrorCode())); } catch (Exception e){ e.printStackTrace(); - logger.info("freeCridetGameGo-------"+e.getMessage()); + logger.info("freeCridetGameGo------error-------"+e.getMessage()+e.toString()); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } From e194b436336cfa7f127512a275b5afd6f007276c Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 7 Jan 2021 19:58:02 +0800 Subject: [PATCH 26/29] cuser --- .../java/com/iformall/controller/WxGameController.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java index 862416dc6..20ea314e4 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java @@ -124,8 +124,8 @@ public class WxGameController extends BaseController { } ResultData resultData = wxGameService.luckDraw(gameIdL, getMemberId(),0); return resultData; - } catch (MallinkException e){ - return new ResultData(ErrorCode.getByCode(e.getErrorCode())); + } catch (MallinkException me){ + return new ResultData(ErrorCode.getByCode(me.getErrorCode())); } catch (Exception e){ e.printStackTrace(); logger.info("freeGameGo----error-------"+e.getMessage()+e.toString()); @@ -170,8 +170,8 @@ public class WxGameController extends BaseController { } ResultData resultData = wxGameService.cridetLuckDraw(gameIdL, getMemberId()); return resultData; - } catch (MallinkException e){ - return new ResultData(ErrorCode.getByCode(e.getErrorCode())); + } catch (MallinkException me){ + return new ResultData(ErrorCode.getByCode(me.getErrorCode())); } catch (Exception e){ e.printStackTrace(); logger.info("freeCridetGameGo------error-------"+e.getMessage()+e.toString()); From e4dac7db075e5b571118b5d9cb29a380a620602d Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 7 Jan 2021 20:05:43 +0800 Subject: [PATCH 27/29] cuser --- .../main/java/com/iformall/controller/WxGameController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java index 20ea314e4..b80c32a90 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java @@ -128,7 +128,7 @@ public class WxGameController extends BaseController { return new ResultData(ErrorCode.getByCode(me.getErrorCode())); } catch (Exception e){ e.printStackTrace(); - logger.info("freeGameGo----error-------"+e.getMessage()+e.toString()); + logger.error("freeGameGo------error-------",e); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } @@ -174,7 +174,7 @@ public class WxGameController extends BaseController { return new ResultData(ErrorCode.getByCode(me.getErrorCode())); } catch (Exception e){ e.printStackTrace(); - logger.info("freeCridetGameGo------error-------"+e.getMessage()+e.toString()); + logger.error("freeCridetGameGo------error-------",e); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } From 09376d0f0e66a61c67726519473a0a05b18adb0f Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 7 Jan 2021 20:12:37 +0800 Subject: [PATCH 28/29] cuser --- .../src/main/java/com/iformall/controller/WxGameController.java | 2 -- .../main/java/com/iformall/service/impl/WxGameServiceImpl.java | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java index b80c32a90..798ea7a1b 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxGameController.java @@ -127,7 +127,6 @@ public class WxGameController extends BaseController { } catch (MallinkException me){ return new ResultData(ErrorCode.getByCode(me.getErrorCode())); } catch (Exception e){ - e.printStackTrace(); logger.error("freeGameGo------error-------",e); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } @@ -173,7 +172,6 @@ public class WxGameController extends BaseController { } catch (MallinkException me){ return new ResultData(ErrorCode.getByCode(me.getErrorCode())); } catch (Exception e){ - e.printStackTrace(); logger.error("freeCridetGameGo------error-------",e); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java index 105456f69..5c7effabd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxGameServiceImpl.java @@ -485,7 +485,7 @@ public class WxGameServiceImpl implements WxGameService { } }else{ - logger.info("userId:"+userId+",没中奖,"+data.toString()); + logger.info("userId:"+userId+",没中奖,"); } final IdWorker idWorker = IdWorker.get(); WxGameActionLog wxGameActionLog = new WxGameActionLog(); From 380e847ad8ea043c0f10b37e4c44ce76e9504d1f Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 7 Jan 2021 21:51:34 +0800 Subject: [PATCH 29/29] cuser --- mallinkService/src/main/resources/mapper/WxCouponMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml index ef6c97fe5..124eebca4 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml @@ -298,7 +298,7 @@