diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java index a8c43a580..1d1d2ca6d 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java @@ -407,7 +407,7 @@ public class WxMerchantController extends BaseController { } WxPayAccount payAcount = payAccountService.getById(appInfo.getPayId()); if(payAcount == null){ - return new ResultData(ErrorCode.APP_ID_NOT_FOUND); + return new ResultData(ErrorCode.API_KEY_NOT_FOUND); } if(anEnum.equals(AppAddSubMerchantUrlType.improt_URL)){ return wxProfitSharingReceiverService.getTtReceiverImprotURL(merchant,appInfo.getAppId(),payAcount.getApiKey()); diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java index 0f3b478f2..815155259 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java @@ -197,7 +197,7 @@ public class WxCUserBasicInfoController extends BaseController { updateLevelParam(wxCUserBasicInfo); } } - wxCUserBasicInfo.undateFinalTenantId(getTenantInfo()); + wxCUserBasicInfo.updateFinalTenantId(getTenantInfo()); wxCUserBasicInfo.setSortColumns(BaseEntity.SortField.wcubiActiveTime_DESC); PageInfo page = wxCUserBasicInfoService.listAsPage(wxCUserBasicInfo, pageNum, pageSize); diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCreditHistoryController.java b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCreditHistoryController.java index 79cd217d7..ed204dd85 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCreditHistoryController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCreditHistoryController.java @@ -172,6 +172,16 @@ public class WxCreditHistoryController extends BaseController { return new ResultData(Result.SUCCESS); } + @ApiOperation("积分清零计划 刷新商圈积分") + @PostMapping("syncClearCredit") + @SystemControllerLog(description = "刷新商圈积分") + @TenantIgnore + public ResultData syncClearCredit() { + logger.debug("[" + getIpAddr() + "] WxCreditHistoryController::syncClearCredit"); + wxCreditHistoryService.syncClearCredit(getTenantInfo()); + return new ResultData(Result.SUCCESS); + } + @ApiOperation("门店排行榜") @GetMapping("merchantCreditRanking") @ApiImplicitParams({ diff --git a/mallinkAdmin/src/main/resources/db/migration/V2022101100001__add_pay_account.sql b/mallinkAdmin/src/main/resources/db/migration/V2022101100001__add_pay_account.sql new file mode 100644 index 000000000..aa40f353b --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V2022101100001__add_pay_account.sql @@ -0,0 +1,4 @@ +ALTER TABLE `mallink`.`wx_pay_account` +ADD COLUMN `business_type` smallint(2) COMMENT '商圈版本' AFTER `merchant_cert_pem_path`, +ADD COLUMN `brandid` varchar(50) COMMENT '商圈品牌ID' AFTER `business_type`, +ADD COLUMN `card_id` varchar(50) COMMENT '商圈会员卡ID' AFTER `brandid`; \ No newline at end of file diff --git a/mallinkAdmin/src/main/resources/db/migration/V2022101100002__add_sale_type.sql b/mallinkAdmin/src/main/resources/db/migration/V2022101100002__add_sale_type.sql new file mode 100644 index 000000000..675e70fe5 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V2022101100002__add_sale_type.sql @@ -0,0 +1,19 @@ + +INSERT INTO `mallink`.`mall_sale_type`(`id`, `name`, `type`, `period`, `menus`) VALUES (103500103610, '金茂合同全能版+抖音', 10, 12, '[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 50, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 201, 202, 203, 204, 205, 206, 209, 211, 212, 221, 222, 223, 251, 299, 300, 307, 308, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 420, 421, 422, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 511, 512, 513, 514, 521, 522, 523, 531, 532, 533, 591, 592, 595, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 621, 622, 623, 624, 625, 626, 627, 641, 642, 643, 644, 645, 646, 647, 651, 661, 662, 663, 664, 665, 666, 671, 672, 673, 674, 675, 676, 680, 681, 682, 683, 684, 685, 687, 691, 692, 693, 694, 695, 701, 702, 703, 704, 711, 712, 713, 714, 901, 902, 903, 904, 905, 906, 907, 908, 910, 931, 932, 951, 952, 961, 962, 963, 965, 966, 967, 968, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 5310, 5320, 6611, 60701, 60702]'); +INSERT INTO `mallink`.`mall_sale_type`(`id`, `name`, `type`, `period`, `menus`) VALUES (12, '尊享全能版+抖音', 12, 12, '[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 50, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 201, 202, 203, 204, 205, 206, 209, 211, 212, 221, 222, 223, 251, 299, 300, 301, 302, 303, 304, 305, 306, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 420, 421, 422, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 511, 512, 513, 514, 521, 522, 523, 531, 532, 533, 591, 592, 595, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 621, 622, 623, 624, 625, 626, 627, 641, 642, 643, 644, 645, 646, 647, 651, 661, 662, 663, 664, 665, 666, 671, 672, 673, 674, 675, 676, 680, 681, 682, 683, 684, 685, 687, 691, 692, 693, 694, 695, 701, 702, 703, 704, 711, 712, 713, 714, 901, 902, 903, 904, 905, 906, 907, 908, 910, 931, 932, 951, 952, 961, 962, 963, 965, 966, 967, 968, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 5310, 5320, 6611, 60701, 60702]'); + + +INSERT INTO `mallink`.`mall_permission`(`id`, `name`, `parent_id`, `available`, `permission`, `resource_type`, `module_color`, `module_color_num`, `url`, `icon`, `version_type`, `sort`) VALUES (615, '抖音CPS佣金', 6, 'Y', NULL, 0, NULL, NULL, NULL, 'icon-jifen', 0, 602); +INSERT INTO `mallink`.`mall_permission`(`id`, `name`, `parent_id`, `available`, `permission`, `resource_type`, `module_color`, `module_color_num`, `url`, `icon`, `version_type`, `sort`) VALUES (61501, '通用佣金', 615, 'Y', NULL, 1, NULL, NULL, 'commonPlan', NULL, 0, 61501); +INSERT INTO `mallink`.`mall_permission`(`id`, `name`, `parent_id`, `available`, `permission`, `resource_type`, `module_color`, `module_color_num`, `url`, `icon`, `version_type`, `sort`) VALUES (61502, '定向佣金', 615, 'Y', NULL, 1, NULL, NULL, 'orientedPlan', NULL, 0, 61502); + + + +UPDATE `mallink`.`mall_sale_type` SET `menus` = '[1, 2, 4, 5, 6, 50, 105, 110, 201, 205, 202, 211, 212, 221, 222, 223, 251, 409, 410, 411, 416, 500, 502, 504, 505, 506, 507, 508, 511, 512, 521, 522, 523, 591, 592, 595, 601, 602, 605, 606, 610, 615, 622, 647, 676, 680, 711, 901, 902, 904, 907, 5310, 5320, 61501, 61502]' WHERE `id` = 11; +UPDATE `mallink`.`mall_sale_type` SET `menus` = '[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 50, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 201, 202, 203, 204, 205, 206, 209, 211, 212, 221, 222, 223, 251, 299, 300, 301, 302, 303, 304, 305, 306, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 420, 421, 422, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 511, 512, 513, 514, 521, 522, 523, 531, 532, 533, 591, 592, 595, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 621, 622, 623, 624, 625, 626, 627, 641, 642, 643, 644, 645, 646, 647, 651, 661, 662, 663, 664, 665, 666, 671, 672, 673, 674, 675, 676, 680, 681, 682, 683, 684, 685, 687, 691, 692, 693, 694, 695, 701, 702, 703, 704, 711, 712, 713, 714, 901, 902, 903, 904, 905, 906, 907, 908, 910, 931, 932, 951, 952, 961, 962, 963, 965, 966, 967, 968, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 5310, 5320, 6611, 60701, 60702, 61501, 61502]' WHERE `id` = 12; +UPDATE `mallink`.`mall_sale_type` SET `menus` = '[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 50, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 201, 202, 203, 204, 205, 206, 209, 211, 212, 221, 222, 223, 251, 299, 300, 307, 308, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 420, 421, 422, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 511, 512, 513, 514, 521, 522, 523, 531, 532, 533, 591, 592, 595, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 621, 622, 623, 624, 625, 626, 627, 641, 642, 643, 644, 645, 646, 647, 651, 661, 662, 663, 664, 665, 666, 671, 672, 673, 674, 675, 676, 680, 681, 682, 683, 684, 685, 687, 691, 692, 693, 694, 695, 701, 702, 703, 704, 711, 712, 713, 714, 901, 902, 903, 904, 905, 906, 907, 908, 910, 931, 932, 951, 952, 961, 962, 963, 965, 966, 967, 968, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 5310, 5320, 6611, 60701, 60702, 61501, 61502]' WHERE `id` = 103500103610; + + + + + diff --git a/mallinkAdmin/src/main/resources/db/migration/V2022101100003__add_wxcuser.sql b/mallinkAdmin/src/main/resources/db/migration/V2022101100003__add_wxcuser.sql new file mode 100644 index 000000000..ef3858d57 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V2022101100003__add_wxcuser.sql @@ -0,0 +1,400 @@ +ALTER TABLE `mallink`.`wx_c_user_0` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_1` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_2` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_3` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_4` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_5` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_6` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_7` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_8` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_9` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_10` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_11` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_12` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_13` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_14` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_15` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_16` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_17` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_18` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_19` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_20` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_21` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_22` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_23` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_24` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_25` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_26` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_27` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_28` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_29` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_30` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_31` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_32` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_33` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_34` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_35` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_36` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_37` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_38` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_39` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_40` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_41` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_42` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_43` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_44` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_45` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_46` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_47` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_48` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_49` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_50` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_51` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_52` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_53` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_54` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_55` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_56` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_57` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_58` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_59` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_60` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_61` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_62` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_63` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_64` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_65` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_66` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_67` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_68` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_69` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_70` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_71` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_72` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_73` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_74` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_75` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_76` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_77` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_78` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_79` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_80` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_81` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_82` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_83` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_84` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_85` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_86` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_87` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_88` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_89` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_90` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_91` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_92` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_93` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_94` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_95` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_96` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_97` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_98` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; +ALTER TABLE `mallink`.`wx_c_user_99` +ADD COLUMN `authorize_state` smallint(2) DEFAULT 0 COMMENT '用户授权快速积分' AFTER `qr_code`, +ADD COLUMN `authorize_time` datetime(0) COMMENT '授权时间' AFTER `authorize_state`, +ADD COLUMN `deauthorize_time` datetime(0) COMMENT '取消授权时间' AFTER `authorize_time`; \ No newline at end of file diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxBusinessCircleController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxBusinessCircleController.java new file mode 100644 index 000000000..285502c77 --- /dev/null +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxBusinessCircleController.java @@ -0,0 +1,54 @@ +package com.iformall.controller; + +import com.iformall.annotation.RedisCache; +import com.iformall.common.ErrorCode; +import com.iformall.common.Result; +import com.iformall.common.ResultData; +import com.iformall.domain.po.*; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumAppPlat; +import com.iformall.service.*; +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.*; + + +@RestController +@RequestMapping("/api/circle") +@Api(description = "业态查询接口") +public class WxBusinessCircleController extends BaseController { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + WxBusinessCircleOrderService wxBusinessCircleOrderService; + + @ApiOperation("获取商圈授权状态") + @GetMapping("/getAuthorizeState") + @RedisCache + public ResultData getAuthorizeState() { + logger.debug("[" + getIpAddr() + "] WxBusinessCircleController::getAuthorizeState"); + CUser user = getCUser(); + if(!EnumAppPlat.WX.equals(user.getAppPlat())){ + return new ResultData(ErrorCode.SYS_METHOD_NOT_SUPPORT.getCode(),"平台不支持此请求"); + } + ResultData resultData = wxBusinessCircleOrderService.syncauthorizeState(getTenantInfo(), user.getOpenId()); + return resultData; + } + + @ApiOperation("获取商圈有未提交的积分") + @GetMapping("/getPointsCommitStatus") + public ResultData getPointsCommitStatus() { + logger.debug("[" + getIpAddr() + "] WxBusinessCircleController::getPointsCommitStatus"); + CUser user = getCUser(); + if(!EnumAppPlat.WX.equals(user.getAppPlat())){ + return new ResultData(ErrorCode.SYS_METHOD_NOT_SUPPORT.getCode(),"平台不支持此请求"); + } + return wxBusinessCircleOrderService.getPointsCommitStatus(getTenantInfo(), user.getOpenId()); + } + +} diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxBusinessOrderController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxBusinessOrderController.java index 5fbc3bc99..84010a922 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxBusinessOrderController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxBusinessOrderController.java @@ -5,24 +5,17 @@ import com.github.binarywang.wxpay.bean.businesscircle.MemberCardAuthorizeNotify import com.github.binarywang.wxpay.bean.businesscircle.PaidResult; import com.github.binarywang.wxpay.bean.businesscircle.RefundResult; import com.github.binarywang.wxpay.bean.ecommerce.SignatureHeader; -import com.github.binarywang.wxpay.bean.membercard.MemberCardActivateResult; -import com.github.binarywang.wxpay.bean.membercard.MemberCardNotifyData; import com.github.binarywang.wxpay.exception.WxPayException; import com.github.binarywang.wxpay.service.WxPayService; import com.iformall.controller.base.BaseController; -import com.iformall.domain.po.WxAppinfo; -import com.iformall.domain.po.WxBusinessCircleOrder; -import com.iformall.domain.po.WxMemberCard; -import com.iformall.domain.po.WxPayAccount; +import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.*; import com.iformall.exception.MallinkException; -import com.iformall.interceptor.BodyReaderHttpServletRequestWrapper; import com.iformall.pay.WxPayConstant; import com.iformall.service.*; import com.iformall.utils.MaUtil; import org.apache.commons.lang3.StringUtils; -import org.apache.shiro.web.servlet.ShiroHttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -35,6 +28,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.Date; import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -62,6 +56,9 @@ public class WxBusinessOrderController extends BaseController { @Autowired WxMemberCardService wxMemberCardService; + @Autowired + WxCUserService wxCUserService; + @Autowired MaUtil maUtil; @@ -99,8 +96,12 @@ public class WxBusinessOrderController extends BaseController { String body = this.getBody(request); logger.info("商圈授权通知---body{}"+body); WxAppinfo cAppInfo = wxAppinfoService.getCAppInfoFromRedis(tenantId, EnumAppPlat.WX); + if(cAppInfo == null){ + resultMap.put("code","FAIL"); + return resultMap; + } WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(cAppInfo.getPayId()); - if(cAppInfo == null || payAccount == null){ + if(payAccount == null){ resultMap.put("code","FAIL"); return resultMap; } @@ -115,22 +116,31 @@ public class WxBusinessOrderController extends BaseController { logger.info("商圈授权通知---解密结果{}"+result.toString()); WxMemberCard memberCard = new WxMemberCard(); - memberCard.updateTenantInfo(tenantEntity); - memberCard.setAppId(cAppInfo.getAppId()); + memberCard.setTenantId(tenantEntity.getTenantId()); + memberCard.setParentTenantId(tenantEntity.getParentTenantId()); + memberCard.updateFinalTenantId(tenantEntity); memberCard.setCardId(payAccount.getCardId()); memberCard.setCardCode(result.getCode()); - memberCard.setOpenId(result.getOpenid()); if(WxPayConstant.REGISTERED_MODE.equals(result.getAuthType())){ memberCard.setUserCardStatus(EnumMemberCardStatus.EFFECTIVE.getCode()); - memberCard.setAuthorizeState(EnumMemberCardAuthorizeState.UNAUTHORIZED.getCode()); wxMemberCardService.saveorupdateByCode(memberCard); + + wxMemberCardService.sendSyncMemberCardMsg(tenantEntity,memberCard.getCardId(),memberCard.getCardCode()); resultMap.put("code","SUCCESS"); return resultMap; }else if(WxPayConstant.REGISTERED_AND_AUTHORIZATION_MODE.equals(result.getAuthType())){ memberCard.setUserCardStatus(EnumMemberCardStatus.EFFECTIVE.getCode()); - memberCard.setAuthorizeState(EnumMemberCardAuthorizeState.AUTHORIZED.getCode()); wxMemberCardService.saveorupdateByCode(memberCard); + + WxCUser updCuser = new WxCUser(); + updCuser.updateTenantInfo(tenantEntity); + updCuser.setOpenId(result.getOpenid()); + updCuser.setAuthorizeState(EnumBusinessCircleAuthorizeState.AUTHORIZED.getCode()); + updCuser.setAuthorizeTime(new Date()); + wxCUserService.updateAuthorizeStateByOpenId(updCuser); + + wxMemberCardService.sendSyncMemberCardMsg(tenantEntity,memberCard.getCardId(),memberCard.getCardCode()); resultMap.put("code","SUCCESS"); return resultMap; } diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxMemberCardController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxMemberCardController.java index eb4a0688d..97ff7357b 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxMemberCardController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxMemberCardController.java @@ -95,8 +95,12 @@ public class WxMemberCardController extends BaseController { String body = this.getBody(request); logger.info("微信会员卡通知---body{}"+body); WxAppinfo cAppInfo = wxAppinfoService.getCAppInfoFromRedis(tenantId, EnumAppPlat.WX); + if(cAppInfo == null){ + resultMap.put("code","FAIL"); + return resultMap; + } WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(cAppInfo.getPayId()); - if(cAppInfo == null || payAccount == null){ + if(payAccount == null){ resultMap.put("code","FAIL"); return resultMap; } @@ -110,8 +114,9 @@ public class WxMemberCardController extends BaseController { logger.info("微信会员卡通知---解密结果{}"+result.toString()); WxMemberCard memberCard = new WxMemberCard(); - memberCard.updateTenantInfo(tenantEntity); - memberCard.setAppId(cAppInfo.getAppId()); + memberCard.setTenantId(tenantEntity.getTenantId()); + memberCard.setParentTenantId(tenantEntity.getParentTenantId()); + memberCard.updateFinalTenantId(tenantEntity); memberCard.setCardId(result.getCardId()); memberCard.setCardCode(result.getCode()); memberCard.setOpenId(result.getOpenid()); @@ -122,6 +127,8 @@ public class WxMemberCardController extends BaseController { memberCard.setActivateScene(EnumMemberCardActivateScene.getEnum(result.getActivateScene()).getCode()); // memberCard.setOuterStr(result.getOuterStr()); wxMemberCardService.saveorupdateByCode(memberCard); + + wxMemberCardService.sendSyncMemberCardMsg(tenantEntity,memberCard.getCardId(),memberCard.getCardCode()); resultMap.put("code","SUCCESS"); return resultMap; }else if(WxPayConstant.USER_VIEW_MEMBERCARD.equals(result.getEventType())){ @@ -131,9 +138,13 @@ public class WxMemberCardController extends BaseController { memberCard.setUpdateDate(sdf.parse(result.getEventTime())); memberCard.setUserCardStatus(EnumMemberCardStatus.DELETE.getCode()); wxMemberCardService.delUserCardStatusByCode(memberCard); + + wxMemberCardService.sendSyncMemberCardMsg(tenantEntity,memberCard.getCardId(),memberCard.getCardCode()); resultMap.put("code","SUCCESS"); return resultMap; - }else if(WxPayConstant.USER_MODIFY_INFORMATION.equals(result.getEventType())){//todo 暂未同步会员卡信息 + }else if(WxPayConstant.USER_MODIFY_INFORMATION.equals(result.getEventType())){ + + wxMemberCardService.sendSyncMemberCardMsg(tenantEntity,memberCard.getCardId(),memberCard.getCardCode()); resultMap.put("code","SUCCESS"); return resultMap; } diff --git a/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java b/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java index c4b7fe85f..1e3571573 100644 --- a/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java +++ b/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java @@ -31,6 +31,14 @@ public class MqBaseConsumer { @Autowired private SendWeappUniformMsgServiceImpl sendWeappUniformMsgService; @Autowired + private AfterAddCreditMsgServiceImpl afterAddCreditMsgService; + @Autowired + private AfterAddScoreMsgServiceImpl afterAddScoreMsgService; + @Autowired + private AfterCarInOutMsgServiceImpl afterCarInOutMsgService; + @Autowired + private SyncMemberCardMsgServiceImpl syncMemberCardMsgService; + @Autowired private FmInsideOrderSuccessMsgServiceImpl fmInsideOrderSuccessMsgService; @Autowired private FmInsideCouponVerifyMsgServiceImpl fmInsideCouponVerifyMsgService; @@ -79,40 +87,69 @@ public class MqBaseConsumer { //短信 WxMsgRecord msg = (WxMsgRecord)JsonUtil.readValue(message,WxMsgRecord.class); sendSmsService.send(msg); - } else if(EnumMsgRecordType.SMS_CALLBACK.getCode().equals(baseMsg.getMsgType())){ + } + else if(EnumMsgRecordType.SMS_CALLBACK.getCode().equals(baseMsg.getMsgType())){ //业务短信 WxMsg msg = (WxMsg)JsonUtil.readValue(message,WxMsg.class); sendCallBackSmsService.send(msg); - } else if(EnumMsgRecordType.EMAIL.getCode().equals(baseMsg.getMsgType())){ + } + else if(EnumMsgRecordType.EMAIL.getCode().equals(baseMsg.getMsgType())){ //邮件 MailMsg msg = (MailMsg)JsonUtil.readValue(message,MailMsg.class); sendEmailService.send(msg); // } else if(EnumMsgRecordType.SMART_APP.getCode().equals(baseMsg.getMsgType())){ - } else if(EnumMsgRecordType.SMART_APP_TO.getCode().equals(baseMsg.getMsgType())){ + } + else if(EnumMsgRecordType.SMART_APP_TO.getCode().equals(baseMsg.getMsgType())){ //微信小程序-订阅消息 SmartAppMsg msg = (SmartAppMsg)JsonUtil.readValue(message,SmartAppMsg.class); sendSmartAppMsgService.send(msg); - } else if(EnumMsgRecordType.PUBLIC.getCode().equals(baseMsg.getMsgType())) { + } + else if(EnumMsgRecordType.PUBLIC.getCode().equals(baseMsg.getMsgType())) { //公众号-模板消息 MpAppMsg msg = (MpAppMsg)JsonUtil.readValue(message,MpAppMsg.class); sendMpMsgService.send(msg); - } else if(EnumMsgRecordType.SMART_APP_UNIFORM.getCode().equals(baseMsg.getMsgType())) { + } + else if(EnumMsgRecordType.SMART_APP_UNIFORM.getCode().equals(baseMsg.getMsgType())) { //微信小程序-统一消息 AppUniformMsg msg = (AppUniformMsg)JsonUtil.readValue(message,AppUniformMsg.class); sendWeappUniformMsgService.send(msg); - } else if(EnumMsgRecordType.INSIDE_ORDER_SUCCESS.getCode().equals(baseMsg.getMsgType())) { + } + else if(EnumMsgRecordType.SYNC_MEMBER_CARD.getCode().equals(baseMsg.getMsgType())) { + //微信商圈同步会员 + SyncMemberCardMsg msg = (SyncMemberCardMsg)JsonUtil.readValue(message,SyncMemberCardMsg.class); + syncMemberCardMsgService.send(msg); + } + else if(EnumMsgRecordType.AFTER_ADD_CREDIT.getCode().equals(baseMsg.getMsgType())) { + //积分变更后 + AfterAddCreditMsg msg = (AfterAddCreditMsg)JsonUtil.readValue(message,AfterAddCreditMsg.class); + afterAddCreditMsgService.send(msg); + } + else if(EnumMsgRecordType.AFTER_ADD_SCORE.getCode().equals(baseMsg.getMsgType())) { + //成长值变更后 + AfterAddScoreMsg msg = (AfterAddScoreMsg)JsonUtil.readValue(message,AfterAddScoreMsg.class); + afterAddScoreMsgService.send(msg); + } + else if(EnumMsgRecordType.AFTER_CAR_IN_OR_OUT.getCode().equals(baseMsg.getMsgType())) { + //车辆入场,出场后 + AfterCarInOutMsg msg = (AfterCarInOutMsg)JsonUtil.readValue(message,AfterCarInOutMsg.class); + afterCarInOutMsgService.send(msg); + } + else if(EnumMsgRecordType.INSIDE_ORDER_SUCCESS.getCode().equals(baseMsg.getMsgType())) { // 内部消息 - 下订单成功 FmInsideOrderSuccessMsg msg = (FmInsideOrderSuccessMsg)JsonUtil.readValue(message,FmInsideOrderSuccessMsg.class); fmInsideOrderSuccessMsgService.send(msg); - } else if(EnumMsgRecordType.INSIDE_COUPON_VERIFY.getCode().equals(baseMsg.getMsgType())) { + } + else if(EnumMsgRecordType.INSIDE_COUPON_VERIFY.getCode().equals(baseMsg.getMsgType())) { // 内部消息 - 券核销 FmInsideCouponVerifyMsg msg = (FmInsideCouponVerifyMsg)JsonUtil.readValue(message,FmInsideCouponVerifyMsg.class); fmInsideCouponVerifyMsgService.send(msg); - } else if(EnumMsgRecordType.INSIDE_ORDER_REFUND.getCode().equals(baseMsg.getMsgType())){ + } + else if(EnumMsgRecordType.INSIDE_ORDER_REFUND.getCode().equals(baseMsg.getMsgType())){ //内部消息 - 退款申请成功 FmInsideOrderRefundMsg msg = (FmInsideOrderRefundMsg) JsonUtil.readValue(message,FmInsideOrderRefundMsg.class); fmInsideOrderRefundMsgService.send(msg); - } else if(EnumMsgRecordType.INSIDE_C_LOGIN.getCode().equals(baseMsg.getMsgType())) { + } + else if(EnumMsgRecordType.INSIDE_C_LOGIN.getCode().equals(baseMsg.getMsgType())) { // 内部消息 - c端登录 FmInsideCLoginMsg msg = (FmInsideCLoginMsg)JsonUtil.readValue(message,FmInsideCLoginMsg.class); fmInsideCLoginMsgService.send(msg); diff --git a/mallinkPublicApi/src/main/java/com/iformall/controller/UserBasicInfoController.java b/mallinkPublicApi/src/main/java/com/iformall/controller/UserBasicInfoController.java index 39a71a576..96109704d 100644 --- a/mallinkPublicApi/src/main/java/com/iformall/controller/UserBasicInfoController.java +++ b/mallinkPublicApi/src/main/java/com/iformall/controller/UserBasicInfoController.java @@ -68,7 +68,7 @@ public class UserBasicInfoController extends BaseController { TenantEntity tenantEntity = getTenantInfo(); - WxCUserBasicInfo userBasicInfo = wxCUserBasicInfoService.registerByPhone(tenantEntity, phone,nickName,sex,avatarUrl); + WxCUserBasicInfo userBasicInfo = wxCUserBasicInfoService.registerByPhone(tenantEntity, phone,nickName,null,sex,avatarUrl); this.setLevel(userBasicInfo,tenantEntity); diff --git a/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java b/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java index 287bb5a26..edf813cbd 100644 --- a/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java +++ b/mallinkService/src/main/java/com/iformall/config/BaseMyBatisConfiguration.java @@ -90,7 +90,7 @@ public class BaseMyBatisConfiguration { shardingList.add(ttCUserSharding); ShardingSphere wxMemberCardSharding = new ShardingSphere(); - wxMemberCardSharding.setColumn("tenant_id"); + wxMemberCardSharding.setColumn("final_tenant_id"); wxMemberCardSharding.setTableName("wx_member_card"); wxMemberCardSharding.setCount(100); wxMemberCardSharding.setRule(EnumShardingRule.HASH.getCode()); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java index 7e95e5271..95b7a9a0f 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java @@ -25,6 +25,15 @@ public class WxCUser extends CUser { appPlat = EnumAppPlat.WX; } + @io.swagger.annotations.ApiModelProperty(value="EnumBusinessCircleAuthorizeState 授权商圈快速积分状态",name="authorizeState") + private Integer authorizeState; + + @io.swagger.annotations.ApiModelProperty(value="授权时间",name="authorizeTime") + private Date authorizeTime; + + @io.swagger.annotations.ApiModelProperty(value="取消授权时间",name="deauthorizeTime") + private Date deauthorizeTime; + public String createToken(Date currentDate,String tenantId) { if(StringUtils.isBlank(tenantId)){ tenantId = "1"; 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 2229f94c6..5b79df666 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java @@ -237,7 +237,7 @@ public class WxCUserBasicInfo extends TenantEntityWithoutFinalTenantId { return Objects.hash(this.phone); } - public void undateFinalTenantId(TenantEntity tenantEntity){ + public void updateFinalTenantId(TenantEntity tenantEntity){ // setTenantId(tenantEntity.getTenantId()); // setParentTenantId(tenantEntity.getParentTenantId()); setFinalTenantId(tenantEntity.getTenantId()); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMemberCard.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMemberCard.java index 561dab7ee..b342df061 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMemberCard.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMemberCard.java @@ -2,9 +2,11 @@ package com.iformall.domain.po; import com.baomidou.mybatisplus.annotation.TableName; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.po.base.TenantEntityWithoutFinalTenantId; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; +import org.apache.commons.lang3.StringUtils; import java.util.Date; @@ -12,7 +14,10 @@ import java.util.Date; @Data @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) -public class WxMemberCard extends TenantEntity { +public class WxMemberCard extends TenantEntityWithoutFinalTenantId { + + @io.swagger.annotations.ApiModelProperty(value="如果是集团版的,存集团版的tenantId,如果是商场,则存商场",name="sex") + private String finalTenantId; protected Long id; @@ -79,16 +84,14 @@ public class WxMemberCard extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") private Date createDate; - @io.swagger.annotations.ApiModelProperty(value="",name="appId") - private String appId; - - @io.swagger.annotations.ApiModelProperty(value="EnumMemberCardAuthorizeState 授权商圈快速积分状态",name="authorizeState") - private Integer authorizeState; - - @io.swagger.annotations.ApiModelProperty(value="授权时间",name="authorizeTime") - private Date authorizeTime; + @io.swagger.annotations.ApiModelProperty(value="",name="userId") + private Long userId; - @io.swagger.annotations.ApiModelProperty(value="取消授权时间",name="deauthorizeTime") - private Date deauthorizeTime; + public void updateFinalTenantId(TenantEntity tenantEntity){ + setFinalTenantId(tenantEntity.getTenantId()); + if(StringUtils.isNotBlank(tenantEntity.getParentTenantId())){ + setFinalTenantId(tenantEntity.getParentTenantId()); + } + } } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/msg/AfterAddCreditMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/AfterAddCreditMsg.java new file mode 100644 index 000000000..6859b99ae --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/AfterAddCreditMsg.java @@ -0,0 +1,23 @@ +package com.iformall.domain.po.msg; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; + +/** + * + */ +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class AfterAddCreditMsg extends BaseMsg { + + private static final long serialVersionUID = -1l; + + @io.swagger.annotations.ApiModelProperty(value="会员ID",name="basicUserId") + private Long basicUserId; + @io.swagger.annotations.ApiModelProperty(value="积分变动ID",name="creditHistoryId") + private Long creditHistoryId; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/msg/AfterAddScoreMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/AfterAddScoreMsg.java new file mode 100644 index 000000000..aefa086c7 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/AfterAddScoreMsg.java @@ -0,0 +1,21 @@ +package com.iformall.domain.po.msg; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * + */ +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class AfterAddScoreMsg extends BaseMsg { + + private static final long serialVersionUID = -1l; + + @io.swagger.annotations.ApiModelProperty(value="会员ID",name="basicUserId") + private Long basicUserId; + @io.swagger.annotations.ApiModelProperty(value="成长值变动ID",name="scoreHistoryId") + private Long scoreHistoryId; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/msg/AfterCarInOutMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/AfterCarInOutMsg.java new file mode 100644 index 000000000..d59419c56 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/AfterCarInOutMsg.java @@ -0,0 +1,19 @@ +package com.iformall.domain.po.msg; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * + */ +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class AfterCarInOutMsg extends BaseMsg { + + private static final long serialVersionUID = -1l; + + @io.swagger.annotations.ApiModelProperty(value="停车记录ID",name="carCmdLogId") + private Long carCmdLogId; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/msg/SyncMemberCardMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/SyncMemberCardMsg.java new file mode 100644 index 000000000..eb1770cb0 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/SyncMemberCardMsg.java @@ -0,0 +1,22 @@ +package com.iformall.domain.po.msg; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * + */ +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class SyncMemberCardMsg extends BaseMsg { + + private static final long serialVersionUID = -1l; + + @io.swagger.annotations.ApiModelProperty(value="",name="cardId") + private String cardId; + @io.swagger.annotations.ApiModelProperty(value="",name="code") + private String code; + +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumMemberCardAuthorizeState.java b/mallinkService/src/main/java/com/iformall/enums/EnumBusinessCircleAuthorizeState.java similarity index 65% rename from mallinkService/src/main/java/com/iformall/enums/EnumMemberCardAuthorizeState.java rename to mallinkService/src/main/java/com/iformall/enums/EnumBusinessCircleAuthorizeState.java index 28d90a459..b262c7b3f 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumMemberCardAuthorizeState.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumBusinessCircleAuthorizeState.java @@ -3,7 +3,7 @@ package com.iformall.enums; /** * . */ -public enum EnumMemberCardAuthorizeState { +public enum EnumBusinessCircleAuthorizeState { //UNAUTHORIZED:未授权 //AUTHORIZED:已授权 @@ -13,16 +13,16 @@ public enum EnumMemberCardAuthorizeState { DEAUTHORIZED(2, "DEAUTHORIZED"), ; - public static EnumMemberCardAuthorizeState getEnum(Integer code) { - for (EnumMemberCardAuthorizeState value : values()) { + public static EnumBusinessCircleAuthorizeState getEnum(Integer code) { + for (EnumBusinessCircleAuthorizeState value : values()) { if (value.getCode().equals(code)) { return value; } } return null; } - public static EnumMemberCardAuthorizeState getEnum(String message) { - for (EnumMemberCardAuthorizeState value : values()) { + public static EnumBusinessCircleAuthorizeState getEnum(String message) { + for (EnumBusinessCircleAuthorizeState value : values()) { if (value.getMessage().equals(message)) { return value; } @@ -33,7 +33,7 @@ public enum EnumMemberCardAuthorizeState { private Integer code; private String message; - EnumMemberCardAuthorizeState(Integer code, String message) { + EnumBusinessCircleAuthorizeState(Integer code, String message) { this.code = code; this.message = message; } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java b/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java index 712148feb..e7c25f3da 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java @@ -13,6 +13,12 @@ public enum EnumMsgRecordType { SYSTEM(6, "系统通知"), SMART_APP_UNIFORM(7, "小程序统一消息"), WEBSOCKET_APP(8, "小程序websocket"), + + SYNC_MEMBER_CARD(10,"微信商圈同步会员"), + AFTER_ADD_CREDIT(11,"积分变更后"), + AFTER_ADD_SCORE(12,"成长值变更后"), + AFTER_CAR_IN_OR_OUT(13,"车辆入场,出场后"), + INSIDE_ORDER_SUCCESS(100, "下订单成功"), INSIDE_COUPON_VERIFY(101, "券核销"), INSIDE_C_LOGIN(102, "C端用户登录"),//内部消息,加积分等 diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java index 29c8ef6d3..f039caee9 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java @@ -40,9 +40,11 @@ public interface WxCUserMapper extends CommonMapper { // void updateMsgCountDown(@Param("tenantId")String tenantId, @Param("openId")String openId); - List findOpenIdList(@Param("userId")Long userId, @Param("tenantId")String tenantId); + String findOpenId(@Param("userId")Long userId, @Param("tenantId")String tenantId); List findTokenList(@Param("id")Long id,@Param("userId")Long userId, @Param("tenantId")String tenantId); List findCountData(WxCUserBasicInfoDto dto); + + void updateAuthorizeStateByOpenId(WxCUser updCuser); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCreditHistoryMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCreditHistoryMapper.java index 94522dae2..c6a9437d4 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCreditHistoryMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCreditHistoryMapper.java @@ -12,7 +12,7 @@ import java.util.List; public interface WxCreditHistoryMapper extends CommonMapper{ - WxCreditHistory selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + WxCreditHistory selectById(@Param("id")Long id,@Param("tenantId")String finalTenantId); List findList(WxCreditHistory wxCreditHistory); @@ -51,4 +51,6 @@ public interface WxCreditHistoryMapper extends CommonMapper findAddList(WxCreditHistory chaddq); List findLesList(WxCreditHistory chlesq); + + List getIsMemberCarAndClearCredit(WxCreditHistory record); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMemberCardMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMemberCardMapper.java index 6ba0820f1..10fc3d62a 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMemberCardMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMemberCardMapper.java @@ -14,4 +14,6 @@ public interface WxMemberCardMapper extends CommonMapper { Long getIdByCode(WxMemberCard record); int updateByOpenId(WxMemberCard record); + + WxMemberCard getByCode(WxMemberCard record); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBusinessCircleOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxBusinessCircleOrderService.java index 52e40224f..3fe6d959d 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBusinessCircleOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBusinessCircleOrderService.java @@ -62,6 +62,11 @@ public interface WxBusinessCircleOrderService { Integer sumCircleRefundAmount(BusinessCircleBase circleOrder); + /** + * 同步授权快速积分 + */ + ResultData syncauthorizeState(TenantEntity tenantEntity,String openid); + /** * 查询待积分状态 */ @@ -75,4 +80,6 @@ public interface WxBusinessCircleOrderService { */ ResultData syncParkings(TenantEntity tenantEntity,String openId,String plate_number,String state,Date time); + void sendSyncParkingsMsg(TenantEntity tenantEntity,Long carCmdLogId); + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java index dc405c054..109e5c637 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java @@ -169,7 +169,7 @@ public interface WxCUserBasicInfoService { void cuserOldToNew(Long oldCuserId, Long newCuserId,TenantEntity tenantinfo); - WxCUserBasicInfo registerByPhone(TenantEntity tenantEntity, String phone, String nickName, Integer sex, String avatarUrl); + WxCUserBasicInfo registerByPhone(TenantEntity tenantEntity, String phone, String nickName,String name, Integer sex, String avatarUrl); int addCredit(Long userId, TenantEntity tenantInfo, EnumScoreType wechatPhone); diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserService.java index 94e22ba08..85b0ac4da 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserService.java @@ -136,4 +136,6 @@ public interface WxCUserService { void delForUserIdOnly(Long id, Long userId, String tenantId); void updateMsgCount(WxCUser user); + + void updateAuthorizeStateByOpenId(WxCUser updCuser); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCreditHistoryService.java b/mallinkService/src/main/java/com/iformall/service/WxCreditHistoryService.java index 8dd31fd48..794f90bc8 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCreditHistoryService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCreditHistoryService.java @@ -40,7 +40,7 @@ public interface WxCreditHistoryService { * @param id * @return */ - WxCreditHistory getById(Long id,String tenantId); + WxCreditHistory getById(Long id,String finalTenantId); /** * 添加积分时,需要校验用户以及手机号是否存在 @@ -76,6 +76,8 @@ public interface WxCreditHistoryService { void clearCreditByYear(WxCreditHistory wxCreditHistory); + void syncClearCredit(TenantEntity tenantInfo); + void exportData(HttpServletRequest request, HttpServletResponse response, WxCreditHistory wxCreditHistory); ResultData getCreditSummary(WxCreditHistory wxCreditHistory); @@ -89,4 +91,5 @@ public interface WxCreditHistoryService { long getIncrementCreditAmount(WxCreditHistory wxCreditHistory); PageInfo findListMorePage(WxCreditHistory wxCreditHistory,Integer pageIndex, Integer pageSize); + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxMemberCardService.java b/mallinkService/src/main/java/com/iformall/service/WxMemberCardService.java index 5aece58ed..3ac058092 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMemberCardService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMemberCardService.java @@ -17,6 +17,8 @@ public interface WxMemberCardService { */ PageInfo listAsPage(WxMemberCard record, Integer pageIndex, Integer pageSize); + ResultData saveorupdate(WxMemberCard record); + ResultData saveorupdateByCode(WxMemberCard record); ResultData delUserCardStatusByCode(WxMemberCard record); @@ -26,22 +28,23 @@ public interface WxMemberCardService { */ ResultData syncMemberCard(TenantEntity tenantEntity,String card_id,String code); + void sendSyncMemberCardMsg(TenantEntity tenantEntity,String card_id,String code); + /** * 同步会员卡等级 * need_inform_level 是否发送等级变更通知 */ - ResultData syncMemberCardLevel(TenantEntity tenantEntity,String card_id,String code, + ResultData syncMemberCardLevel(TenantEntity tenantEntity,String card_id,String code,String markid, String level,Boolean need_inform_level); + void sendsyncMemberCardLevelMsg(TenantEntity tenantEntity,Long baseUserId,Long scoreHistoryId); + /** * 更新会员卡积分 */ - ResultData syncMemberCardBonus(TenantEntity tenantEntity,String card_id,String code, - Integer bonus_value,Boolean need_inform_bonus); + ResultData syncMemberCardBonus(TenantEntity tenantEntity,String card_id,String code,String markid, + int before_bonus_value,int bonus_value,Boolean need_inform_bonus); - /** - * 同步授权快速积分 - */ - ResultData syncauthorizeState(TenantEntity tenantEntity,String openid); + void sendsyncMemberCardBonusMsg(TenantEntity tenantEntity,Long baseUserId,Long creditHistoryId); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/AliBusinessCircleOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/AliBusinessCircleOrderServiceImpl.java index 89188ca04..e0a38158c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/AliBusinessCircleOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/AliBusinessCircleOrderServiceImpl.java @@ -149,7 +149,7 @@ public class AliBusinessCircleOrderServiceImpl implements AliBusinessCircleOrder } }else if(record.getCUserPhone() != null) { - WxCUserBasicInfo byPhone = wxCUserBasicInfoService.registerByPhone(record, record.getCUserPhone(), null, null, null); + WxCUserBasicInfo byPhone = wxCUserBasicInfoService.registerByPhone(record, record.getCUserPhone(), null,null, null, null); if (byPhone != null) { record.setCUserId(byPhone.getId()); record.setCUserNickName(byPhone.getNickName()); @@ -162,7 +162,7 @@ public class AliBusinessCircleOrderServiceImpl implements AliBusinessCircleOrder AliPayCUser aliUser = aliPayCUserService.getByAliPayUserId(userQ); if(aliUser != null){ // WxCUserBasicInfo infoByPhone = wxCUserBasicInfoService.findInfoByPhone(aliUser, aliUser.getPhone()); - WxCUserBasicInfo infoByPhone = wxCUserBasicInfoService.registerByPhone(aliUser, aliUser.getPhone(),aliUser.getName(),null,null); + WxCUserBasicInfo infoByPhone = wxCUserBasicInfoService.registerByPhone(aliUser, aliUser.getPhone(),aliUser.getName(),null,null,null); if(infoByPhone != null ){ record.setCUserId(infoByPhone.getId()); record.setCUserNickName(infoByPhone.getNickName()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessCircleOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessCircleOrderServiceImpl.java index 621967e86..d16af5511 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessCircleOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessCircleOrderServiceImpl.java @@ -1,5 +1,6 @@ package com.iformall.service.impl; +import com.github.binarywang.wxpay.bean.businesscircle.MemberCardAuthorizeResult; import com.github.binarywang.wxpay.bean.businesscircle.ParkingNotifyRequest; import com.github.binarywang.wxpay.bean.businesscircle.PointsCommitStatusResult; import com.github.binarywang.wxpay.exception.WxPayException; @@ -11,9 +12,12 @@ import com.iformall.common.IdWorker; import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.po.msg.AfterAddCreditMsg; +import com.iformall.domain.po.msg.AfterCarInOutMsg; import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxBusinessCircleOrderMapper; +import com.iformall.mq.MqBaseProducer; import com.iformall.service.*; import com.iformall.utils.DateUtils; import com.iformall.utils.MaUtil; @@ -72,6 +76,9 @@ public class WxBusinessCircleOrderServiceImpl implements WxBusinessCircleOrderSe @Autowired WxPayAccountService wxPayAccountService; + @Autowired + MqBaseProducer mqBaseProducer; + @Autowired MaUtil maUtil; @@ -170,7 +177,7 @@ public class WxBusinessCircleOrderServiceImpl implements WxBusinessCircleOrderSe } } if(record.getCUserId() == null){ - WxCUserBasicInfo byPhone = wxCUserBasicInfoService.registerByPhone(record, record.getCUserPhone(),null,null,null); + WxCUserBasicInfo byPhone = wxCUserBasicInfoService.registerByPhone(record, record.getCUserPhone(),null,null,null,null); if(byPhone != null){ record.setCUserNickName(byPhone.getNickName()); record.setCUserPhone(byPhone.getPhone()); @@ -406,12 +413,49 @@ public class WxBusinessCircleOrderServiceImpl implements WxBusinessCircleOrderSe } @Override - public ResultData getPointsCommitStatus(TenantEntity tenantEntity, String openId) { + public ResultData syncauthorizeState(TenantEntity tenantEntity, String openid) { WxAppinfo cAppInfo = wxAppinfoService.getCAppInfoFromRedis(tenantEntity.getTenantId(), EnumAppPlat.WX); + if(cAppInfo == null){ + return new ResultData(ErrorCode.APP_ID_NOT_FOUND); + } WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(cAppInfo.getPayId()); - if(cAppInfo == null || payAccount == null){ + if(payAccount == null){ + return new ResultData(ErrorCode.API_KEY_NOT_FOUND); + } + if(!EnumBusinessType.BUSINESS_3.getCode().equals(payAccount.getBusinessType())){ + return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),"未开通商圈或不支持此项操作"); + } + try { + WxPayService wxPayService = maUtil.getWxPayService(cAppInfo, payAccount); + MemberCardAuthorizeResult authorizations = wxPayService.getBusinessCircleService().getAuthorizations(openid); + EnumBusinessCircleAuthorizeState authorizeState = EnumBusinessCircleAuthorizeState.getEnum(authorizations.getAuthorizeState()); + if(!EnumBusinessCircleAuthorizeState.UNAUTHORIZED.equals(authorizeState)){ + WxCUser updCuser = new WxCUser(); + updCuser.updateTenantInfo(tenantEntity); + updCuser.setOpenId(authorizations.getOpenid()); + updCuser.setAuthorizeState(authorizeState.getCode()); + String formaStr = "yyyy-MM-dd'T'HH:mm:ss'+'mm:ss"; + updCuser.setAuthorizeTime(DateUtils.stringToDate(authorizations.getAuthorizeTime(),formaStr)); + updCuser.setDeauthorizeTime(DateUtils.stringToDate(authorizations.getDeauthorizeTime(),formaStr)); + wxCUserService.updateAuthorizeStateByOpenId(updCuser); + } + return new ResultData(authorizeState); + } catch (WxPayException e) { + e.printStackTrace(); + return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage()); + } + } + + @Override + public ResultData getPointsCommitStatus(TenantEntity tenantEntity, String openId) { + WxAppinfo cAppInfo = wxAppinfoService.getCAppInfoFromRedis(tenantEntity.getTenantId(), EnumAppPlat.WX); + if(cAppInfo == null){ return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(cAppInfo.getPayId()); + if(payAccount == null){ + return new ResultData(ErrorCode.API_KEY_NOT_FOUND); + } if(!EnumBusinessType.BUSINESS_3.getCode().equals(payAccount.getBusinessType())){ return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),"未开通商圈或不支持此项操作"); } @@ -429,10 +473,13 @@ public class WxBusinessCircleOrderServiceImpl implements WxBusinessCircleOrderSe public ResultData syncParkings(TenantEntity tenantEntity, String openId, String plate_number, String state, Date time) { WxAppinfo cAppInfo = wxAppinfoService.getCAppInfoFromRedis(tenantEntity.getTenantId(), EnumAppPlat.WX); - WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(cAppInfo.getPayId()); - if(cAppInfo == null || payAccount == null){ + if(cAppInfo == null){ return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(cAppInfo.getPayId()); + if(payAccount == null){ + return new ResultData(ErrorCode.API_KEY_NOT_FOUND); + } if(!EnumBusinessType.BUSINESS_3.getCode().equals(payAccount.getBusinessType())){ return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),"未开通商圈或不支持此项操作"); } @@ -454,5 +501,15 @@ public class WxBusinessCircleOrderServiceImpl implements WxBusinessCircleOrderSe } } + @Override + public void sendSyncParkingsMsg(TenantEntity tenantEntity, Long carCmdLogId) { + //停车出入场通知 todo +// AfterCarInOutMsg msg = new AfterCarInOutMsg(); +// msg.updateTenantInfo(tenantEntity); +// msg.setMsgType(EnumMsgRecordType.AFTER_ADD_CREDIT.getCode()); +// msg.setCarCmdLogId(carCmdLogId); +// mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); + } + } 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 6fa0aa893..c91bfc60a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -672,7 +672,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc @Override - public WxCUserBasicInfo registerByPhone(TenantEntity tenantEntity, String phone, String nickName, Integer sex, String avatarUrl) { + public WxCUserBasicInfo registerByPhone(TenantEntity tenantEntity, String phone, String nickName,String name, Integer sex, String avatarUrl) { if (StringUtils.isBlank(phone)) return null; @@ -682,6 +682,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc basicInfo.setTenantId("," + tenantEntity.getTenantId() + ","); basicInfo.setFinalTenantId(tenantEntity.getFinalTenantId()); basicInfo.setPhone(phone); + basicInfo.setName(name); basicInfo.setNickName(nickName); basicInfo.setSex(sex); basicInfo.setAvatarUrl(avatarUrl); @@ -690,6 +691,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc WxCUserBasicInfo wxCUserBasicInfo = new WxCUserBasicInfo(); wxCUserBasicInfo.setId(basicInfo.getId()); wxCUserBasicInfo.setFinalTenantId(basicInfo.getFinalTenantId()); + wxCUserBasicInfo.setName(name); wxCUserBasicInfo.setNickName(nickName); wxCUserBasicInfo.setSex(sex); wxCUserBasicInfo.setAvatarUrl(avatarUrl); 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 89353354b..6b9656e9c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java @@ -346,4 +346,9 @@ public class WxCUserServiceImpl implements WxCUserService { wxCUserMapper.updateMsgCount(user); } + @Override + public void updateAuthorizeStateByOpenId(WxCUser updCuser) { + wxCUserMapper.updateAuthorizeStateByOpenId(updCuser); + } + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java index 88e6d4c33..82baf1d27 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java @@ -4,8 +4,10 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.domain.po.WxCarCmdLog; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumCarCmd; import com.iformall.mapper.WxCarCmdLogMapper; import com.iformall.mapper.WxMallMapper; +import com.iformall.service.WxBusinessCircleOrderService; import com.iformall.service.WxCarCmdLogService; import com.iformall.service.WxMallService; import org.apache.commons.lang3.StringUtils; @@ -31,6 +33,9 @@ public class WxCarCmdLogServiceImpl implements WxCarCmdLogService { @Autowired WxMallService wxMallService; + @Autowired + WxBusinessCircleOrderService wxBusinessCircleOrderService; + @Override public PageInfo listAsPage(WxCarCmdLog record, Integer pageIndex, Integer pageSize) { @@ -49,11 +54,22 @@ public class WxCarCmdLogServiceImpl implements WxCarCmdLogService { final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); wxCarCmdLogMapper.insert(record); + this.afterCarInOrOut(record); } else { wxCarCmdLogMapper.updateById(record); } } + private void afterCarInOrOut(WxCarCmdLog record){ + if(StringUtils.isBlank(record.getPlateNumber())){ + return; + } + if(EnumCarCmd.getCarIn().contains(record.getCmdType()) + || EnumCarCmd.getCarOut().contains(record.getCmdType())){ + wxBusinessCircleOrderService.sendSyncParkingsMsg(record,record.getId()); + } + } + @Override public void deleteById(Long id,String tenantId) { wxCarCmdLogMapper.deleteById(id,tenantId); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java index 375d950e9..e0d38bf2f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java @@ -18,6 +18,7 @@ import com.iformall.exception.MallinkException; import com.iformall.mapper.*; import com.iformall.service.*; import com.iformall.utils.CreditUtil; +import com.iformall.utils.DateUtils; import com.iformall.utils.RedisLock; import com.iformall.utils.UserUtil; import lombok.extern.slf4j.Slf4j; @@ -98,6 +99,9 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { @Autowired private WxTemplateMsgService wxTemplateMsgService; + @Autowired + private WxMemberCardService wxMemberCardService; + @Override public void clearCreditByYear() { WxScoreRules wxScoreRules = new WxScoreRules(); @@ -121,6 +125,20 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { } + @Override + public void syncClearCredit(TenantEntity tenantInfo) { + WxCreditHistory creditHistoryQ = new WxCreditHistory(); + creditHistoryQ.setTenantId(tenantInfo.getFinalTenantId()); + creditHistoryQ.setCreditType(EnumScoreType.CLEAN_CREDIT.getCode()); + String beforeYesterday = DateUtils.getTimeBefore(2, new Date()); + Date date = DateUtils.stringToDate(beforeYesterday); + creditHistoryQ.setStartTime(date); + List list = wxCreditHistoryMapper.getIsMemberCarAndClearCredit(creditHistoryQ); + for (WxCreditHistory history:list) { + wxMemberCardService.sendsyncMemberCardBonusMsg(tenantInfo,history.getCUserId(),history.getId()); + } + } + @Override public void exportData(HttpServletRequest request, HttpServletResponse response, WxCreditHistory wxCreditHistory) { PageInfo wxCreditHistoryVoList = findListMorePage(wxCreditHistory,0,50000); @@ -546,8 +564,8 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { // } @Override - public WxCreditHistory getById(Long id,String tenantId) { - return wxCreditHistoryMapper.selectById(id,tenantId); + public WxCreditHistory getById(Long id,String finalTenantId) { + return wxCreditHistoryMapper.selectById(id,finalTenantId); } @Override @@ -646,15 +664,15 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { temp.setType(EnumTemplateType.CREDIT_UPD_REMIND.getCode()); temp = wxTemplateMsgService.getByObj(temp); if(temp.getId() != null){ - List openIds = wxCUserMapper.findOpenIdList(wxCUserBasicInfo.getId(),tenantId); - if(openIds != null && openIds.size() > 0){ + String openId = wxCUserMapper.findOpenId(wxCUserBasicInfo.getId(),tenantId); + if(StringUtils.isNotBlank(openId)){ WxMsg msg = new WxMsg(); // msg.updateTenantInfo(record); msg.setTenantId(tenantId); // msg.setWay(EnumSendWay.APPINFOR.getCode()); // msg.setIsright(EnumMsgSend.MSG_SEND_IMMEDIATELY.getCode()); // msg.setStatus(EnumMsgStatus.MSG_STATUS_NOT_SEND.getCode()); - msg.setPhones(String.join(",", openIds)); + msg.setPhones(openId); msg.setModelId(temp.getId()); Map map = new HashMap<>(); map.put("character_string1",record.getCreditNum().toString()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMemberCardServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMemberCardServiceImpl.java index 29301a134..ab0ebdb82 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMemberCardServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMemberCardServiceImpl.java @@ -14,8 +14,13 @@ import com.iformall.common.IdWorker; import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.po.msg.AfterAddCreditMsg; +import com.iformall.domain.po.msg.AfterAddScoreMsg; +import com.iformall.domain.po.msg.FmInsideCLoginMsg; +import com.iformall.domain.po.msg.SyncMemberCardMsg; import com.iformall.enums.*; import com.iformall.mapper.WxMemberCardMapper; +import com.iformall.mq.MqBaseProducer; import com.iformall.service.*; import com.iformall.utils.DateUtils; import com.iformall.utils.MaUtil; @@ -25,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; +import java.util.List; @Service public class WxMemberCardServiceImpl implements WxMemberCardService { @@ -40,6 +46,12 @@ public class WxMemberCardServiceImpl implements WxMemberCardService { @Autowired WxPayAccountService wxPayAccountService; + @Autowired + WxCUserBasicInfoService wxCUserBasicInfoService; + + @Autowired + private MqBaseProducer mqBaseProducer; + @Autowired MaUtil maUtil; @@ -48,6 +60,22 @@ public class WxMemberCardServiceImpl implements WxMemberCardService { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxMemberCardMapper.findList(record)); } + @Override + public ResultData saveorupdate(WxMemberCard record) { + Date now = new Date(); + if(record.getId() == null){ + final IdWorker idWorker = IdWorker.get(); + record.setId(idWorker.nextId()); + record.setCreateDate(now); + record.setUpdateDate(now); + wxMemberCardMapper.insert(record); + }else{ + record.setUpdateDate(now); + wxMemberCardMapper.updateById(record); + } + return new ResultData(); + } + @Override public ResultData saveorupdateByCode(WxMemberCard record) { Long id = wxMemberCardMapper.getIdByCode(record); @@ -84,10 +112,13 @@ public class WxMemberCardServiceImpl implements WxMemberCardService { @Override public ResultData syncMemberCard(TenantEntity tenantEntity, String card_id, String code) { WxAppinfo cAppInfo = wxAppinfoService.getCAppInfoFromRedis(tenantEntity.getTenantId(), EnumAppPlat.WX); - WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(cAppInfo.getPayId()); - if(cAppInfo == null || payAccount == null){ + if(cAppInfo == null){ return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(cAppInfo.getPayId()); + if(payAccount == null){ + return new ResultData(ErrorCode.API_KEY_NOT_FOUND); + } if(!EnumBusinessType.BUSINESS_3.getCode().equals(payAccount.getBusinessType())){ return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),"未开通商圈或不支持此项操作"); } @@ -95,7 +126,9 @@ public class WxMemberCardServiceImpl implements WxMemberCardService { WxPayService wxPayService = maUtil.getWxPayService(cAppInfo, payAccount); MemberCardResult memberCard = wxPayService.getMemberCardService().getMemberCard(card_id, code); WxMemberCard record = new WxMemberCard(); - record.updateTenantInfo(tenantEntity); + record.setTenantId(tenantEntity.getTenantId()); + record.setParentTenantId(tenantEntity.getParentTenantId()); + record.updateFinalTenantId(tenantEntity); record.setCardId(card_id); record.setCardCode(code); record.setOpenId(memberCard.getOpenid()); @@ -109,9 +142,8 @@ public class WxMemberCardServiceImpl implements WxMemberCardService { if(enumMemberCardStatus != null){ record.setUserCardStatus(enumMemberCardStatus.getCode()); } - if(memberCard.getUserInformation() != null){ - record.setUserInformation(JSON.toJSONString(memberCard.getUserInformation())); - } + record.setUserInformation(JSON.toJSONString(memberCard.getUserInformation())); + record.setBonusValue(memberCard.getBonusValue()); if(memberCard.getServiceModules() != null){ record.setServiceModules(JSON.toJSONString(memberCard.getServiceModules())); @@ -121,7 +153,52 @@ public class WxMemberCardServiceImpl implements WxMemberCardService { if(memberCard.getGuide() != null){ record.setGuide(JSON.toJSONString(memberCard.getGuide())); } - this.saveorupdateByCode(record); + + MemberCardResult.UserInformation userInformation = memberCard.getUserInformation(); + List commonFieldList = userInformation.getCommonFieldList(); + String phone = null, name = null, avatarUrl = null; + Integer sex = null; + for (MemberCardResult.CommonField commonField:commonFieldList) { + /** + * 平台提供了一些通用的开卡字段供开发者选用 + * USER_FORM_FLAG_MOBILE:手机号 + * USER_FORM_FLAG_SEX:性别 + * USER_FORM_FLAG_NAME:姓名 + * USER_FORM_FLAG_BIRTHDAY:生日 + * USER_FORM_FLAG_ADDRESS:地址 + * USER_FORM_FLAG_EMAIL:邮箱 + * USER_FORM_FLAG_CITY:城市 + */ + if("USER_FORM_FLAG_MOBILE".equals(commonField.getName())){ + phone = commonField.getValue(); + }else if("USER_FORM_FLAG_SEX".equals(commonField.getName())){ + if("男".equals(commonField.getValue())){ + sex = 1; + }else if("女".equals(commonField.getValue())){ + sex = 2; + }else{ + sex = 0; + } + }else if("USER_FORM_FLAG_NAME".equals(commonField.getName())){ + name = commonField.getValue(); + } + } + WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.registerByPhone(tenantEntity, phone, null,name, sex, avatarUrl); + + WxMemberCard old = wxMemberCardMapper.getByCode(record); + if(old == null){ + record.setUserId(basicInfo.getId()); + }else{ + record.setId(old.getId()); + if(!basicInfo.getId().equals(old.getUserId())){ + record.setUserId(basicInfo.getId());; + } + } + this.saveorupdate(record); + if(record.getUserId() != null){ + this.sendsyncMemberCardBonusMsg(tenantEntity,record.getUserId(),null); + this.sendsyncMemberCardLevelMsg(tenantEntity,record.getUserId(),null); + } return new ResultData(); } catch (WxPayException e) { e.printStackTrace(); @@ -130,13 +207,26 @@ public class WxMemberCardServiceImpl implements WxMemberCardService { } @Override - public ResultData syncMemberCardLevel(TenantEntity tenantEntity, String card_id, String code, + public void sendSyncMemberCardMsg(TenantEntity tenantEntity, String card_id, String code) { + SyncMemberCardMsg msg = new SyncMemberCardMsg(); + msg.updateTenantInfo(tenantEntity); + msg.setMsgType(EnumMsgRecordType.SYNC_MEMBER_CARD.getCode()); + msg.setCardId(card_id); + msg.setCode(code); + mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); + } + + @Override + public ResultData syncMemberCardLevel(TenantEntity tenantEntity, String card_id, String code,String markid, String level, Boolean need_inform_level) { WxAppinfo cAppInfo = wxAppinfoService.getCAppInfoFromRedis(tenantEntity.getTenantId(), EnumAppPlat.WX); - WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(cAppInfo.getPayId()); - if(cAppInfo == null || payAccount == null){ + if(cAppInfo == null){ return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(cAppInfo.getPayId()); + if(payAccount == null){ + return new ResultData(ErrorCode.API_KEY_NOT_FOUND); + } if(!EnumBusinessType.BUSINESS_3.getCode().equals(payAccount.getBusinessType())){ return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),"未开通商圈或不支持此项操作"); } @@ -144,10 +234,12 @@ public class WxMemberCardServiceImpl implements WxMemberCardService { WxPayService wxPayService = maUtil.getWxPayService(cAppInfo, payAccount); MemberCardUpdRequest request = new MemberCardUpdRequest(); request.setLevel(level); - request.setOutRequestNo(getOutRequestNo()); + request.setOutRequestNo(markid); request.setNeedInformLevel(need_inform_level); wxPayService.getMemberCardService().updMemberCard(card_id,code,request); + + this.sendSyncMemberCardMsg(tenantEntity,card_id,code); return new ResultData(); } catch (WxPayException e) { e.printStackTrace(); @@ -156,23 +248,41 @@ public class WxMemberCardServiceImpl implements WxMemberCardService { } @Override - public ResultData syncMemberCardBonus(TenantEntity tenantEntity, String card_id, String code, - Integer bonus_value, Boolean need_inform_bonus) { + public void sendsyncMemberCardLevelMsg(TenantEntity tenantEntity, Long baseUserId, Long scoreHistoryId) { + //todo 暂不推送等级给商圈 +// AfterAddScoreMsg msg = new AfterAddScoreMsg(); +// msg.updateTenantInfo(tenantEntity); +// msg.setMsgType(EnumMsgRecordType.AFTER_ADD_SCORE.getCode()); +// msg.setBasicUserId(baseUserId); +// msg.setScoreHistoryId(scoreHistoryId); +// mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); + } + + @Override + public ResultData syncMemberCardBonus(TenantEntity tenantEntity, String card_id, String code,String markid, + int before_bonus_value,int bonus_value, Boolean need_inform_bonus) { WxAppinfo cAppInfo = wxAppinfoService.getCAppInfoFromRedis(tenantEntity.getTenantId(), EnumAppPlat.WX); - WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(cAppInfo.getPayId()); - if(cAppInfo == null || payAccount == null){ + if(cAppInfo == null){ return new ResultData(ErrorCode.APP_ID_NOT_FOUND); } + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(cAppInfo.getPayId()); + if(payAccount == null){ + return new ResultData(ErrorCode.API_KEY_NOT_FOUND); + } if(!EnumBusinessType.BUSINESS_3.getCode().equals(payAccount.getBusinessType())){ return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),"未开通商圈或不支持此项操作"); } try { WxPayService wxPayService = maUtil.getWxPayService(cAppInfo, payAccount); MemberCardRightsRequest request = new MemberCardRightsRequest(); + request.setBeforeBonusValue(before_bonus_value); request.setBonusValue(bonus_value); - request.setOutRequestNo(getOutRequestNo()); + request.setAddBonusValue(bonus_value - before_bonus_value); + request.setOutRequestNo(markid); request.setNeedInformBonus(need_inform_bonus); wxPayService.getMemberCardService().setMemberCardRights(card_id,code,request); + + this.sendSyncMemberCardMsg(tenantEntity,card_id,code); return new ResultData(); } catch (WxPayException e) { e.printStackTrace(); @@ -180,39 +290,14 @@ public class WxMemberCardServiceImpl implements WxMemberCardService { } } - private String getOutRequestNo(){ - final IdWorker idWorker = IdWorker.get(); - String dateStr = DateUtils.date2String(new Date(), "yyyyMMddHHmmss"); - String id = Long.toString(idWorker.nextId()); - return dateStr+"_"+id; - } - @Override - public ResultData syncauthorizeState(TenantEntity tenantEntity, String openid) { - WxAppinfo cAppInfo = wxAppinfoService.getCAppInfoFromRedis(tenantEntity.getTenantId(), EnumAppPlat.WX); - WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(cAppInfo.getPayId()); - if(cAppInfo == null || payAccount == null){ - return new ResultData(ErrorCode.APP_ID_NOT_FOUND); - } - if(!EnumBusinessType.BUSINESS_3.getCode().equals(payAccount.getBusinessType())){ - return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),"未开通商圈或不支持此项操作"); - } - try { - WxPayService wxPayService = maUtil.getWxPayService(cAppInfo, payAccount); - MemberCardAuthorizeResult authorizations = wxPayService.getBusinessCircleService().getAuthorizations(openid); - WxMemberCard record = new WxMemberCard(); - record.updateTenantInfo(tenantEntity); - record.setOpenId(authorizations.getOpenid()); - record.setAuthorizeState(EnumMemberCardAuthorizeState.getEnum(authorizations.getAuthorizeState()).getCode()); - String formaStr = "yyyy-MM-dd'T'HH:mm:ss'+'mm:ss"; - record.setAuthorizeTime(DateUtils.stringToDate(authorizations.getAuthorizeTime(),formaStr)); - record.setDeauthorizeTime(DateUtils.stringToDate(authorizations.getDeauthorizeTime(),formaStr)); - wxMemberCardMapper.updateByOpenId(record); - return new ResultData(record); - } catch (WxPayException e) { - e.printStackTrace(); - return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage()); - } + public void sendsyncMemberCardBonusMsg(TenantEntity tenantEntity, Long baseUserId, Long creditHistoryId) { + AfterAddCreditMsg msg = new AfterAddCreditMsg(); + msg.updateTenantInfo(tenantEntity); + msg.setMsgType(EnumMsgRecordType.AFTER_ADD_CREDIT.getCode()); + msg.setBasicUserId(baseUserId); + msg.setCreditHistoryId(creditHistoryId); + mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxThirdPartyOrdersServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxThirdPartyOrdersServiceImpl.java index 51011b0af..6a31010ae 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxThirdPartyOrdersServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxThirdPartyOrdersServiceImpl.java @@ -160,7 +160,7 @@ public class WxThirdPartyOrdersServiceImpl implements WxThirdPartyOrdersService basicInfo = wxCUserBasicInfoService.getById(userId, record.getFinalTenantId()); } if(basicInfo == null && StringUtils.isNotBlank(record.getUserPhone())){ - basicInfo = wxCUserBasicInfoService.registerByPhone(record, record.getUserPhone(),null,null,null); + basicInfo = wxCUserBasicInfoService.registerByPhone(record, record.getUserPhone(),null,null,null,null); } if(basicInfo != null){ @@ -377,7 +377,7 @@ public class WxThirdPartyOrdersServiceImpl implements WxThirdPartyOrdersService basicInfo = wxCUserBasicInfoService.getById(userId, record.getFinalTenantId()); } if(basicInfo == null){ - basicInfo = wxCUserBasicInfoService.registerByPhone(record, record.getUserPhone(),null,null,null); + basicInfo = wxCUserBasicInfoService.registerByPhone(record, record.getUserPhone(),null,null,null,null); } if(basicInfo == null){ logger.error("--第三方积分订单--未找到用户---userId="+record.getUserNumber()); @@ -562,7 +562,7 @@ public class WxThirdPartyOrdersServiceImpl implements WxThirdPartyOrdersService basicInfo = wxCUserBasicInfoService.getById(userId, record.getFinalTenantId()); } if(basicInfo == null){ - basicInfo = wxCUserBasicInfoService.registerByPhone(record, record.getUserPhone(),null,null,null); + basicInfo = wxCUserBasicInfoService.registerByPhone(record, record.getUserPhone(),null,null,null,null); } if(basicInfo == null){ logger.error("--第三方积分变动--未找到用户---userId="+record.getUserNumber()); diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/AfterAddCreditMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/AfterAddCreditMsgServiceImpl.java new file mode 100644 index 000000000..11cfcb23b --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/AfterAddCreditMsgServiceImpl.java @@ -0,0 +1,115 @@ +package com.iformall.service.msg.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iformall.common.ResultData; +import com.iformall.domain.po.*; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.po.msg.AfterAddCreditMsg; +import com.iformall.domain.po.msg.AppUniformMsg; +import com.iformall.domain.po.msg.BaseMsg; +import com.iformall.enums.EnumAppPlat; +import com.iformall.enums.EnumBusinessType; +import com.iformall.enums.EnumMemberCardStatus; +import com.iformall.mapper.*; +import com.iformall.service.WxAppinfoService; +import com.iformall.service.WxCUserService; +import com.iformall.service.WxMemberCardService; +import com.iformall.service.WxPayAccountService; +import com.iformall.service.msg.MsgSendService; +import com.iformall.service.wechat.FmOpenService; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * + */ +@Service +public class AfterAddCreditMsgServiceImpl implements MsgSendService { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxAppinfoService wxAppinfoService; + + @Autowired + private WxPayAccountService wxPayAccountService; + + @Autowired + private WxMemberCardService wxMemberCardService; + + @Autowired + private WxCUserBasicInfoMapper wxCUserBasicInfoMapper; + + @Autowired + private WxCUserMapper wxCUserMapper; + + @Autowired + private WxMemberCardMapper wxMemberCardMapper; + + @Autowired + private WxCreditHistoryMapper wxCreditHistoryMapper; + + + @Override + public void send(BaseMsg baseMsg) throws Exception{ + AfterAddCreditMsg afterAddCreditMsg = (AfterAddCreditMsg)baseMsg; + + TenantEntity tenantEntity = new TenantEntity(); + tenantEntity.setTenantId(afterAddCreditMsg.getTenantId()); + tenantEntity.setParentTenantId(afterAddCreditMsg.getParentTenantId()); + + //微信商圈同步会员积分 + WxAppinfo cAppInfo = wxAppinfoService.getCAppInfoFromRedis(tenantEntity.getTenantId(), EnumAppPlat.WX); + if(cAppInfo == null){ + logger.error("未找到微信C端小程序"); + return; + } + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(cAppInfo.getPayId()); + if(payAccount == null){ + logger.error("未找到微信支付配置"); + return; + } + if(!EnumBusinessType.BUSINESS_3.getCode().equals(payAccount.getBusinessType())){ + logger.error("未找到商圈配置或商圈版本不支持"); + return; + } + + WxMemberCard memberCardQ = new WxMemberCard(); + memberCardQ.updateFinalTenantId(tenantEntity); + memberCardQ.setUserId(afterAddCreditMsg.getBasicUserId()); + memberCardQ.setUserCardStatus(EnumMemberCardStatus.EFFECTIVE.getCode()); + List memberCards = wxMemberCardMapper.findList(memberCardQ); + if(memberCards == null || memberCards.isEmpty()){ + logger.error("该用户未授权商圈"+afterAddCreditMsg.getBasicUserId()); + return; + } + String markid = null; + Integer before_bonus_value = 0,bonus_value = 0; + + if(afterAddCreditMsg.getCreditHistoryId() == null){ + WxCUserBasicInfo basicInfo = wxCUserBasicInfoMapper.selectById(afterAddCreditMsg.getBasicUserId(), tenantEntity.getFinalTenantId()); + markid = basicInfo.getId().toString(); + bonus_value = basicInfo.getCredit(); + }else{ + WxCreditHistory wxCreditHistory = wxCreditHistoryMapper.selectById(afterAddCreditMsg.getCreditHistoryId(), tenantEntity.getFinalTenantId()); + markid = wxCreditHistory.getId().toString(); + before_bonus_value = wxCreditHistory.getCreditAmount()-wxCreditHistory.getCreditNum(); + bonus_value = wxCreditHistory.getCreditAmount(); + } + + for(int i = 0;i < memberCards.size();i++){ + WxMemberCard memberCard = memberCards.get(i); + markid = markid + "_" + i; + ResultData resultData = wxMemberCardService.syncMemberCardBonus(tenantEntity, memberCard.getCardId(), memberCard.getCardCode(), markid, + before_bonus_value, bonus_value, null); + logger.info(tenantEntity.getTenantId()+"--"+memberCard.getUserId()+"--微信商圈同步会员积分{}"+resultData.message); + } + + } +} diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/AfterAddScoreMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/AfterAddScoreMsgServiceImpl.java new file mode 100644 index 000000000..b7550c45d --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/AfterAddScoreMsgServiceImpl.java @@ -0,0 +1,63 @@ +package com.iformall.service.msg.impl; + +import com.iformall.domain.po.WxAppinfo; +import com.iformall.domain.po.WxPayAccount; +import com.iformall.domain.po.WxTemplateMsg; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.po.msg.AfterAddCreditMsg; +import com.iformall.domain.po.msg.AfterAddScoreMsg; +import com.iformall.domain.po.msg.BaseMsg; +import com.iformall.enums.EnumAppPlat; +import com.iformall.enums.EnumBusinessType; +import com.iformall.mapper.WxAppinfoMapper; +import com.iformall.service.WxAppinfoService; +import com.iformall.service.WxPayAccountService; +import com.iformall.service.msg.MsgSendService; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * + */ +@Service +public class AfterAddScoreMsgServiceImpl implements MsgSendService { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxAppinfoService wxAppinfoService; + + @Autowired + private WxPayAccountService wxPayAccountService; + + + @Override + public void send(BaseMsg baseMsg) throws Exception{ + AfterAddScoreMsg afterAddScoreMsg = (AfterAddScoreMsg)baseMsg; + + TenantEntity tenantEntity = new TenantEntity(); + tenantEntity.setTenantId(afterAddScoreMsg.getTenantId()); + tenantEntity.setParentTenantId(afterAddScoreMsg.getParentTenantId()); + + //微信商圈同步会员等级 todo + WxAppinfo cAppInfo = wxAppinfoService.getCAppInfoFromRedis(tenantEntity.getTenantId(), EnumAppPlat.WX); + if(cAppInfo == null){ + logger.error("未找到微信C端小程序"); + return; + } + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(cAppInfo.getPayId()); + if(payAccount == null){ + logger.error("未找到微信支付配置"); + return; + } + if(!EnumBusinessType.BUSINESS_3.getCode().equals(payAccount.getBusinessType())){ + logger.error("未找到商圈配置或商圈版本不支持"); + return; + } + + + } +} diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/AfterCarInOutMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/AfterCarInOutMsgServiceImpl.java new file mode 100644 index 000000000..a70a7a7f1 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/AfterCarInOutMsgServiceImpl.java @@ -0,0 +1,110 @@ +package com.iformall.service.msg.impl; + +import com.iformall.common.ResultData; +import com.iformall.domain.po.*; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.po.msg.AfterAddScoreMsg; +import com.iformall.domain.po.msg.AfterCarInOutMsg; +import com.iformall.domain.po.msg.BaseMsg; +import com.iformall.enums.EnumAppPlat; +import com.iformall.enums.EnumBusinessType; +import com.iformall.enums.EnumCarCmd; +import com.iformall.mapper.WxAppinfoMapper; +import com.iformall.mapper.WxCUserMapper; +import com.iformall.mapper.WxCarCmdLogMapper; +import com.iformall.pay.WxPayConstant; +import com.iformall.service.*; +import com.iformall.service.msg.MsgSendService; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * + */ +@Service +public class AfterCarInOutMsgServiceImpl implements MsgSendService { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxAppinfoService wxAppinfoService; + + @Autowired + private WxPayAccountService wxPayAccountService; + + @Autowired + private WxBusinessCircleOrderService wxBusinessCircleOrderService; + + @Autowired + private WxCUserCarService wxCUserCarService; + + @Autowired + private WxCUserMapper wxCUserMapper; + + @Autowired + private WxCarCmdLogMapper wxCarCmdLogMapper; + + + @Override + public void send(BaseMsg baseMsg) throws Exception{ + AfterCarInOutMsg afterCarInOutMsg = (AfterCarInOutMsg)baseMsg; + + TenantEntity tenantEntity = new TenantEntity(); + tenantEntity.setTenantId(afterCarInOutMsg.getTenantId()); + tenantEntity.setParentTenantId(afterCarInOutMsg.getParentTenantId()); + + //微信商圈同步停车状态 + WxAppinfo cAppInfo = wxAppinfoService.getCAppInfoFromRedis(tenantEntity.getTenantId(), EnumAppPlat.WX); + if(cAppInfo == null){ + logger.error("未找到微信C端小程序"); + return; + } + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(cAppInfo.getPayId()); + if(payAccount == null){ + logger.error("未找到微信支付配置"); + return; + } + if(!EnumBusinessType.BUSINESS_3.getCode().equals(payAccount.getBusinessType())){ + logger.error("未找到商圈配置或商圈版本不支持"); + return; + } + + WxCarCmdLog wxCarCmdLog = wxCarCmdLogMapper.selectById(afterCarInOutMsg.getCarCmdLogId(), tenantEntity.getTenantId()); + if(wxCarCmdLog == null || StringUtils.isBlank(wxCarCmdLog.getPlateNumber())){ + logger.error("未找到停车记录"); + return; + } + + String state = null; + if(EnumCarCmd.getCarIn().contains(wxCarCmdLog.getCmdType())){ + state = WxPayConstant.CAR_IN; + }else if(EnumCarCmd.getCarOut().contains(wxCarCmdLog.getCmdType())){ + state = WxPayConstant.CAR_OUT; + }else{ + logger.error("不是出入场记录"+wxCarCmdLog.getId()); + return; + } + + String plateNumber = wxCarCmdLog.getPlateNumber(); + WxCUserCar userCarQ = new WxCUserCar(); + userCarQ.updateTenantInfo(tenantEntity); + userCarQ.setCarNumber(plateNumber); + WxCUserCar userCar = wxCUserCarService.getOnlyOne(userCarQ); + if(userCar == null){ + logger.error("车牌未找到用户{}"+plateNumber); + return; + } + String openId = wxCUserMapper.findOpenId(userCar.getCUserId(), tenantEntity.getTenantId()); + if(StringUtils.isBlank(openId)){ + logger.error("车牌未找到用户{}"+plateNumber); + return; + } + ResultData resultData = wxBusinessCircleOrderService.syncParkings(tenantEntity, openId, plateNumber, state, wxCarCmdLog.getCreateDate()); + + logger.info(tenantEntity.getTenantId()+"--"+plateNumber+"--微信商圈同步停车记录{}"+resultData.message); + + } +} 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 e490c543d..e88503577 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 @@ -33,8 +33,6 @@ public class FmInsideCLoginMsgServiceImpl implements MsgSendService { @Autowired private CUserServiceFactory cuserFactory; - private BasicCUserService basicCUserService; - @Autowired private WxCUserFromService wxCUserFromService; diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/SyncMemberCardMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/SyncMemberCardMsgServiceImpl.java new file mode 100644 index 000000000..a6509e9e5 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/SyncMemberCardMsgServiceImpl.java @@ -0,0 +1,38 @@ +package com.iformall.service.msg.impl; + +import com.iformall.common.ResultData; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.po.msg.BaseMsg; +import com.iformall.domain.po.msg.SyncMemberCardMsg; +import com.iformall.service.WxMemberCardService; +import com.iformall.service.msg.MsgSendService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * + */ +@Service +public class SyncMemberCardMsgServiceImpl implements MsgSendService { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxMemberCardService wxMemberCardService; + + + @Override + public void send(BaseMsg baseMsg) throws Exception{ + SyncMemberCardMsg syncMemberCardMsg = (SyncMemberCardMsg)baseMsg; + + TenantEntity tenantEntity = new TenantEntity(); + tenantEntity.setTenantId(syncMemberCardMsg.getTenantId()); + tenantEntity.setParentTenantId(syncMemberCardMsg.getParentTenantId()); + + ResultData resultData = wxMemberCardService.syncMemberCard(tenantEntity, syncMemberCardMsg.getCardId(), syncMemberCardMsg.getCode()); + logger.info(tenantEntity.getTenantId()+"--"+syncMemberCardMsg.getCode()+"--微信商圈同步会员卡{}"+resultData.message); + + } +} diff --git a/mallinkService/src/main/resources/mapper/WxCUserMapper.xml b/mallinkService/src/main/resources/mapper/WxCUserMapper.xml index 55979cefe..a9ab8a339 100644 --- a/mallinkService/src/main/resources/mapper/WxCUserMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCUserMapper.xml @@ -48,6 +48,9 @@ + + + @@ -58,7 +61,8 @@ `login_count`, `extra_info`, `is_subscribe`, `open_app_id`, `mp_open_id`,`mp_app_id`,`mp_subscribe`,`mp_subscribe_time`,`mp_subscribe_scene`, - `subs_open_id`,`subs_app_id`,`subs_subscribe`,`subs_subscribe_time`,`subs_subscribe_scene`,`credit`,`active_time`,`qr_code` + `subs_open_id`,`subs_app_id`,`subs_subscribe`,`subs_subscribe_time`,`subs_subscribe_scene`,`credit`,`active_time`,`qr_code`, + `authorize_state`,`authorize_time`, `deauthorize_time` @@ -215,6 +219,10 @@ and `credit` = #{credit} + + and `authorize_state` = #{authorizeState} + + and id in @@ -445,4 +453,18 @@ + + + update wx_c_user + set `authorize_state` = #{authorizeState} + + ,`authorize_time` = #{authorizeTime} + + + ,`deauthorize_time` = #{deauthorizeTime} + + WHERE `tenant_id` = #{tenantId} + and `open_id` = #{openId} + and `authorize_state` != #{authorizeState} + diff --git a/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml b/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml index 138cddd42..941b14848 100644 --- a/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCreditHistoryMapper.xml @@ -216,6 +216,16 @@ {call user_credit_clear(#{cutOffDate},#{finalTableIndex})} + + + + update wx_member_card set `user_card_status` = #{userCardStatus},`update_date` = #{updateDate} - WHERE `tenant_id` = #{tenantId} + WHERE `final_tenant_id` = #{finalTenantId} and `card_id` = #{cardId} and `card_code` = #{cardCode} - and `open_id` = #{openId} - - - - update wx_member_card set `authorize_state` = #{authorizeState},`authorize_time` = #{authorizeTime},`deauthorize_time` = #{deauthorizeTime} - WHERE `tenant_id` = #{tenantId} - and `open_id` = #{openId}