diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java index 8473b81f4..88c3af802 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java @@ -40,8 +40,6 @@ public class CommonConstants { public static final String WX_APP_SECRET_KEY = "wx_app_secret_key:{0}"; public static final String MINI_PROGRAM_SESSION_KEY = "mini_program_session_key:{0}:{1}"; - - public static final String MaxReconsumeTimes = "2"; public static final String ENTERPRISE_OPEN_STATUS_KEY = "enterprise_open_status:{0}_{1}"; public static final String ROOT_DEPT_ID_STR = "1"; @@ -68,6 +66,11 @@ public class CommonConstants { */ public static final String SQUAREBRACKETSRIGHT = "]"; + /** + * rocketmq 消息最大重试次数 + */ + public static final String MaxReconsumeTimes = "2"; + public static final int ZERO = 0; public static final int ONE = 1; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java index 486297476..4d93e62a4 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java @@ -28,18 +28,6 @@ public enum RocketMqGroupEnum { * 服务B中某个Listener的groupId为GroupA 监听topicA 过滤的消息tagB */ - /** - * es数据处理 - */ - ES_DATA_DEAL("es_data_deal", "coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.ES_PATROL_DATA_DEAL, RocketMqTagEnum.ES_DISPLAY_DATA_DEAL))), - /** - * es数据处理 - */ - ES_DATA_SYNC("es_data_sync", "coolcollege-special",new ArrayList<>(Arrays.asList(RocketMqTagEnum.ES_DATA_SYNC))), - /** - * 导入导出 - */ - EXPORT_IMPORT_MESSAGE("export_import_message","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.EXPORT_IMPORT_MESSAGE))), /** * 区域门店数量计算队列 */ @@ -65,15 +53,7 @@ public enum RocketMqGroupEnum { */ ENTERPRISE_OPEN_DATA_SYNC("enterprise_open_data_sync", "coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.ENTERPRISE_OPEN_DATA_SYNC))), - /** - * 部门顺序值补全 - */ - ENTERPRISE_INIT_DEPT_ORDER("enterprise_init_handler_dept_order","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.ENTERPRISE_INIT_DEPT_ORDER))), - /** - * 父任务处理人 - */ - TASK_PARENT_USER("task_parent_user", "coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.TASK_PARENT_USER_SAVE))), - /** + /** * 企业购买事件 */ PAY_MARKET_BUY("pay_market_buy","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.PAY_MARKET_BUY))), @@ -93,61 +73,7 @@ public enum RocketMqGroupEnum { * 钉钉同步 */ DING_SYNC_ALL_DATA_QUEUE("ding_sync_all_data_queue","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.DING_SYNC_ALL_DATA_QUEUE))), - /** - * 第三方同步 - */ - DING_SYNC_ALL_DATA_OA_QUEUE("ding_sync_all_data_oa_queue","coolcollege-intelligent-special", new ArrayList<>(Arrays.asList(RocketMqTagEnum.DING_SYNC_ALL_DATA_OA_QUEUE))), - /** - * 第三方单个用户同步 - */ - THIRD_OA_SYNC_SINGLE_QUEUE("third_oa_sync_single_queue","coolcollege-intelligent-special", new ArrayList<>(Arrays.asList(RocketMqTagEnum.THIRD_OA_SYNC_SINGLE_QUEUE))), - /** - * 萤石云设备托管 - */ - YINGSHI_DEVICE_MANAGE("yingshi_device_manage","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.YINGSHI_DEVICE_MANAGE))), - /** - * 阿里云开通门店事件 - */ - MQ_OPEN_ENTERPRISE_ALIYUN("mq_open_enterprise_aliyun","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.MQ_OPEN_ENTERPRISE_ALIYUN))), - /** - * 初始化设备 - */ - INIT_DEVICE_QUEUE("init_device_queue","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.INIT_DEVICE_QUEUE))), - /** - * 陈列抄送人处理 - */ - DISPLAY_CC_USER_QUEUE("display_cc_user_queue","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.DISPLAY_CC_USER_QUEUE))), - /** - * 门店子任务消息监听 - */ - STORE_SUB_TASK_DATA_QUEUE("store_sub_task_data_queue","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.STORE_SUB_TASK_DATA_QUEUE))), - /** - * 定时巡检抓拍 - */ - PATROL_STORE_CAPTURE_PICTURE_QUEUE("patrol_store_capture_picture_queue","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.PATROL_MANUAL_STORE_CAPTURE_PICTURE_QUEUE,RocketMqTagEnum.PATROL_STORE_CAPTURE_PICTURE_QUEUE))), - /** - * 巡店分数计算 - */ - PATROL_STORE_SCORE_COUNT_QUEUE("patrol_store_score_count_queue","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.PATROL_STORE_SCORE_COUNT_QUEUE))), - /** - * 陈列任务创建 - */ - UNIFY_TASK_DISPLAY("unify_task_display","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.UNIFY_TASK_DISPLAY))), - /** - * 巡店任务创建 - */ - UNIFY_TASK_PATROL("unify_task_patrol","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.UNIFY_TASK_PATROL))), - /** - * 工单任务创建 - */ - UNIFY_TASK_QUESTION("unify_task_question","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.UNIFY_TASK_QUESTION))), - /** - * 信息补全 - */ - INFORMATION_COMPLETION("information_completion","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.INFORMATION_COMPLETION))), - /** - * 微应用钉钉消息发送 - */ + STORE_DING_QUEUE("store_ding_queue","coolcollege-intelligent-isv", new ArrayList<>(Arrays.asList(RocketMqTagEnum.STORE_DING_QUEUE))), /** * 待办任务名称 @@ -169,92 +95,23 @@ public enum RocketMqGroupEnum { * app推送队列 */ APP_PUSH_QUEUE("app_push_queue","coolcollege-intelligent-isv", new ArrayList<>(Arrays.asList(RocketMqTagEnum.APP_PUSH_QUEUE))), - /** - * 证照信息补全任务 - */ - INFORMATION_COMPLETION_LICENSE("information_completion_license","hz-coolstore-license", new ArrayList<>(Arrays.asList(RocketMqTagEnum.INFORMATION_COMPLETION_LICENSE))), - - /** * 解除应用 */ REMOVE_APPLICATION("remove_application","coolcollege-intelligent-config", new ArrayList<>(Arrays.asList(RocketMqTagEnum.REMOVE_APPLICATION))), - /** - * 获取开通酷学院开通完成后的结果 - */ - GET_OPEN_COOL_COLLEGE_RESULT("get_open_cool_college_result","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.GET_OPEN_COOL_COLLEGE_RESULT))), - - /** - * 酷学院同步用户 首次使用人员异步延迟推送 - */ - COLLEGE_SYNC_USER_DELAY("college_sync_user_delay","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.COLLEGE_SYNC_USER_DELAY))), - - /** - *门店端的部门,人员,职位,发生变化后的推送消息队列 - */ - COOL_STORE_DATA_CHANGE("cool_store_data_change","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.COOL_STORE_DATA_CHANGE))), - /** * 全量企微用户同步 */ QW_SYNC_FULL_USER("qw_sync_full_user_msg_queue", "coolcollege-intelligent", new ArrayList(Arrays.asList(RocketMqTagEnum.QW_SYNC_FULL_USER))), - /** - * 按人子任务消息监听 - */ - PERSON_SUB_TASK_DATA_QUEUE("person_sub_task_data_queue","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.PERSON_SUB_TASK_DATA_QUEUE))), - - IMOU_DEVICE_CALLBACK("imou_device_callback","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.IMOU_DEVICE_CALLBACK))), - /** - * 店务提交、点评消息监听 - */ - STOREWORK_SUBMIT_COMMENT_DATA_QUEUE("storework_submit_comment_data_queue", "coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.STOREWORK_SUBMIT_DATA_QUEUE, RocketMqTagEnum.STOREWORK_COMMENT_DATA_QUEUE, RocketMqTagEnum.STOREWORK_DELETE_DATA_QUEUE))), - - /** - * 流程引擎接收主应用消息 - */ - STORE_SEND_TOPIC("store_send_topic","hz-oldworkflow", new ArrayList<>(Arrays.asList(RocketMqTagEnum.STORE_SEND_TOPIC))), - /** - * 主应用接收流程引擎消息 - */ - WORKFLOW_SEND_TOPIC("workflow_send_topic","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.WORKFLOW_SEND_TOPIC))), - /** - * 企业微信用户部门信息补全消息监听 - */ - QYWX_USERDEPTINFO_COMPLETE_QUEUE("qywx_userdeptinfo_complete_queue","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.QYWX_USERDEPTINFO_COMPLETE_QUEUE))), - SHOP_STORE_GROUP_SYNC("shop_store_group_sync","coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.SHOP_STORE_GROUP_SYNC))), /** - * 授权码更新 + * test */ - PERMANENT_CODE_UPDATE("permanent_code_update", "coolcollege-intelligent-config", new ArrayList<>(Arrays.asList(RocketMqTagEnum.PERMANENT_CODE_UPDATE))), - - QUESTION_EXPIRE_REMIND("question_expire_remind", "coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.QUESTION_EXPIRE_BEFORE_REMIND, RocketMqTagEnum.QUESTION_EXPIRE_REMIND))), - - STOREWORK_EXPIRE_REMIND("storework_expire_remind", "coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.STOREWORK_BEFORE_START_REMIND, RocketMqTagEnum.STOREWORK_BEFORE_END_REMIND))), - - STOREWORK_TASK_RESOLVE("storework_task_resolve", "coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.STOREWORK_TASK_RESOLVE,RocketMqTagEnum.STOREWORK_TASK_SINGLE_STORE_RESOLVE))), - - LICENSE_NOTICE_TIMER("license_notice_timer", "hz-coolstore-license", new ArrayList<>(Arrays.asList(RocketMqTagEnum.LICENSE_NOTICE_TIMER))), - LICENSE_NOTICE_DEAL("license_notice_deal", "coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.LICENSE_NOTICE_DEAL))), - - /** - * 任务工作交接 - */ - WORK_HANDOVER_TASK("work_handover_task", "coolcollege-intelligent", new ArrayList<>(Arrays.asList(RocketMqTagEnum.WORK_HANDOVER_TASK))), - - SUPERVISION_RESOLVE_DELAY("supervision_resolve_delay","coolcollege",new ArrayList<>(Arrays.asList(RocketMqTagEnum.SUPERVISION_RESOLVE_DELAY))), - /** - * 定时任务回调 - */ - SCHEDULER_CALLBACK("scheduler_callback","coolcollege", new ArrayList<>(Arrays.asList(RocketMqTagEnum.SCHEDULER_CALLBACK))), - /** - * 任务补发 - */ - TASK_REISSUE("task_reissue","coolcollege", new ArrayList<>(Arrays.asList(RocketMqTagEnum.TASK_REISSUE))), + TEST("test", "coolcollege-intelligent-config", new ArrayList<>(Arrays.asList(RocketMqTagEnum.TEST))), ; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java index 36078a4ef..724b79883 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java @@ -11,10 +11,7 @@ import com.cool.store.utils.CommonContextUtil; */ public enum RocketMqTagEnum { - DEFAULT("default","默认"), - ES_PATROL_DATA_DEAL("es_patrol_data_deal","巡店数据加工"), - ES_DISPLAY_DATA_DEAL("es_display_data_deal","陈列数据加工"), - ES_DATA_SYNC("es_data_sync","数据插入到ES_队列"), + TEST("test","测试"), EXPORT_IMPORT_MESSAGE("export_import_message","导入导出消息"), CAL_REGION_STORE_NUM("cal_region_store_num","计算门店区域数量"), REGION_STORE_NUM_UPDATE("region_store_num_update","计算门店区域数量"), @@ -35,27 +32,6 @@ public enum RocketMqTagEnum { DING_SYNC_ALL_DATA_QUEUE_BAILI("ding_sync_all_data_queue_baili","百丽全量同步"), DING_SYNC_ALL_DATA_OA_QUEUE("ding_sync_all_data_oa_queue","第三方同步"), THIRD_OA_SYNC_SINGLE_QUEUE("third_oa_sync_single_queue","第三方单个用户同步"), - - MQ_OPEN_ENTERPRISE_ALIYUN("mq_open_enterprise_aliyun","阿里云开通门店事件"), - YINGSHI_DEVICE_MANAGE("yingshi_device_manage","萤石云设备托管"), - INIT_DEVICE_QUEUE("init_device_queue","初始化设备"), - - DISPLAY_CC_USER_QUEUE("display_cc_user_queue","陈列抄送人处理"), - STORE_SUB_TASK_DATA_QUEUE("store_sub_task_data_queue","门店子任务消息监听"), - - PATROL_MANUAL_STORE_CAPTURE_PICTURE_QUEUE("patrol_manual_store_capture_picture_queue","定时巡检抓拍"), - PATROL_STORE_CAPTURE_PICTURE_QUEUE("patrol_store_capture_picture_queue","定时巡检抓拍"), - PATROL_STORE_SCORE_COUNT_QUEUE("patrol_store_score_count_queue","巡店分数计算"), - - UNIFY_TASK_DISPLAY("unify_task_display","陈列任务创建"), - UNIFY_TASK_PATROL("unify_task_patrol","巡店任务创建"), - UNIFY_TASK_QUESTION("unify_task_question","工单任务创建"), - - INFORMATION_COMPLETION("information_completion","信息补全任务"), - INFORMATION_COMPLETION_LICENSE("information_completion_license","证照信息补全任务"), - ENTERPRISE_INIT_DEPT_ORDER("enterprise_init_handler_dept_order","补全部门的顺序值"), - TASK_PARENT_USER_SAVE("task_parent_user_save", "新增或覆盖父任务处理人映射"), - STORE_DING_QUEUE("store_ding_queue", "微应用钉钉消息发送"), STORE_BACK_LOG("store_back_log", "待办任务名称"), STORE_BACK_LOG_UPDATE("store_back_log_update", "更新待办任务名称"), @@ -64,7 +40,6 @@ public enum RocketMqTagEnum { QW_MEMBER_TEMPLE_MSG_QUEUE("qw_member_temple_msg_queue", "发送成员授权模式下模板消息"), APP_PUSH_QUEUE("app_push_queue", "app推送队列"), REMOVE_APPLICATION("remove_application", "解除应用"), - GET_OPEN_COOL_COLLEGE_RESULT("get_open_cool_college_result", "获取开通酷学院开通完成后的结果"), COLLEGE_SYNC_USER_DELAY("college_sync_user_delay", "同步人与延迟推送"), COOL_STORE_DATA_CHANGE("cool_store_data_change", "门店端的部门,人员,职位,发生变化后的推送消息队列"), QW_SYNC_FULL_USER("qw_sync_full_user_msg_queue", "企微全量用户同步"), @@ -73,24 +48,6 @@ public enum RocketMqTagEnum { PERMANENT_CODE_UPDATE("permanent_code_update", "授权码变更"), SHOP_STORE_GROUP_SYNC("shop_store_group_sync","门店通门店分组同步"), DING_SINGLE_USER_SYNC("ding_single_user_sync","钉钉用户信息拉取"), - STORE_SEND_TOPIC("store_send_topic","流程引擎接收主应用消息"), - WORKFLOW_SEND_TOPIC("workflow_send_topic","主应用接收流程引擎消息"), - QYWX_USERDEPTINFO_COMPLETE_QUEUE("qywx_userdeptinfo_complete_queue","企业微信用户部门信息补全消息监听"), - QUESTION_EXPIRE_BEFORE_REMIND("question_expire_before_remind","工单逾期前提醒"), - QUESTION_EXPIRE_REMIND("question_expire_remind","工单逾期提醒"), - STOREWORK_SUBMIT_DATA_QUEUE("storework_submit_data_queue","店务提交消息监听"), - STOREWORK_COMMENT_DATA_QUEUE("storework_comment_data_queue","店务点评消息监听"), - STOREWORK_DELETE_DATA_QUEUE("storework_delete_data_queue","店务删除消息监听"), - STOREWORK_BEFORE_START_REMIND("storework_before_start_remind","店务开始前提醒"), - STOREWORK_BEFORE_END_REMIND("storework_before_end_remind","店务结束前提醒"), - STOREWORK_TASK_RESOLVE("storework_task_resolve","店务分解"), - STOREWORK_TASK_SINGLE_STORE_RESOLVE("storework_task_single_store_resolve","单店店务数据分解"), - LICENSE_NOTICE_TIMER("license_notice_timer","证照定时任务提醒"), - LICENSE_NOTICE_DEAL("license_notice_deal","证照提醒处理"), - WORK_HANDOVER_TASK("work_handover_task","工作任务交接"), - SUPERVISION_RESOLVE_DELAY("supervision_resolve_delay", "督导任务延迟分解"), - SCHEDULER_CALLBACK("scheduler_callback","定时任务回调"), - TASK_REISSUE("task_reissue","任务补发"), ; @@ -121,6 +78,6 @@ public enum RocketMqTagEnum { return value; } } - return ES_PATROL_DATA_DEAL; + return null; } } diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/CommonContextUtil.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/CommonContextUtil.java index fc7c7f53d..37008e617 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/CommonContextUtil.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/CommonContextUtil.java @@ -4,7 +4,9 @@ import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; +@Component public class CommonContextUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; //Spring应用上下文环境 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/ConsumerClient.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/ConsumerClient.java new file mode 100644 index 000000000..bafc99b5f --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/ConsumerClient.java @@ -0,0 +1,123 @@ +package com.cool.store.mq.consumer; + +import com.aliyun.openservices.ons.api.MessageListener; +import com.aliyun.openservices.ons.api.PropertyKeyConst; +import com.aliyun.openservices.ons.api.PropertyValueConst; +import com.aliyun.openservices.ons.api.bean.ConsumerBean; +import com.aliyun.openservices.ons.api.bean.Subscription; +import com.cool.store.constants.CommonConstants; +import com.cool.store.enums.RocketMqGroupEnum; +import com.cool.store.mq.RocketMqConfig; +import com.cool.store.mq.consumer.listener.EnterpriseInitListener; +import com.cool.store.mq.consumer.listener.EnterpriseScriptListener; +import com.cool.store.mq.consumer.listener.TestListener; +import com.google.common.collect.Maps; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.annotation.Resource; +import java.util.Map; +import java.util.Properties; + +/** + * @author zhangchenbiao + * @FileName: OrderlyConsumerClient + * @Description: 普通消息消费client + * @date 2021-12-21 11:35 + */ +@Configuration +public class ConsumerClient { + + @Resource + private RocketMqConfig rocketMqConfig; + @Resource + private EnterpriseInitListener enterpriseInitListener; + @Resource + private EnterpriseScriptListener enterpriseScriptListener; + @Resource + private TestListener testListener; + + /** + * 获取通用配置 + * @param groupEnum + * @return + */ + private Properties getCommonProperties(RocketMqGroupEnum groupEnum) { + //配置文件 + Properties properties = rocketMqConfig.getMqProperties(); + //消费者需指定groupId 根据实际情况指定groupId + properties.setProperty(PropertyKeyConst.GROUP_ID, RocketMqGroupEnum.getGroupId(groupEnum)); + //消费模式 集群消费 + properties.setProperty(PropertyKeyConst.MessageModel, PropertyValueConst.CLUSTERING); + //消息最大重试次数 + properties.setProperty(PropertyKeyConst.MaxReconsumeTimes, CommonConstants.MaxReconsumeTimes); + //开启最大线程数 + properties.setProperty(PropertyKeyConst.ConsumeThreadNums, CommonConstants.FIVE_STR); + return properties; + } + + /** + * 获取通用订阅关系 + * @param groupEnum + * @param listener + * @return + */ + public Map getCommonSubscriptionTable(RocketMqGroupEnum groupEnum, MessageListener listener) { + Map subscriptionTable = Maps.newHashMap(); + Subscription subscription = new Subscription(); + subscription.setTopic(rocketMqConfig.getTopic()); + subscription.setExpression(RocketMqGroupEnum.getTag(groupEnum)); + subscriptionTable.put(subscription, listener); + return subscriptionTable; + } + + /** + * 测试test + * @return + */ + @Bean(initMethod = "start", destroyMethod = "shutdown") + public ConsumerBean test() { + RocketMqGroupEnum groupEnum = RocketMqGroupEnum.TEST; + ConsumerBean consumerBean = new ConsumerBean(); + //配置文件 + Properties properties = getCommonProperties(groupEnum); + consumerBean.setProperties(properties); + Map commonSubscriptionTable = getCommonSubscriptionTable(groupEnum, testListener); + //订阅多个topic如上面设置 + consumerBean.setSubscriptionTable(commonSubscriptionTable); + return consumerBean; + } + + /** + * 企业开通 + */ + @Bean(initMethod = "start", destroyMethod = "shutdown") + public ConsumerBean enterpriseOpenBean() { + RocketMqGroupEnum groupEnum = RocketMqGroupEnum.ENTERPRISE_OPEN_DATA_SYNC; + ConsumerBean consumerBean = new ConsumerBean(); + //配置文件 + Properties properties = getCommonProperties(groupEnum); + consumerBean.setProperties(properties); + Map commonSubscriptionTable = getCommonSubscriptionTable(groupEnum, testListener); + //订阅多个topic如上面设置 + consumerBean.setSubscriptionTable(commonSubscriptionTable); + return consumerBean; + } + + /** + * 企业库脚本开通 + */ + @Bean(initMethod = "start", destroyMethod = "shutdown") + public ConsumerBean enterpriseScriptBean() { + RocketMqGroupEnum groupEnum = RocketMqGroupEnum.ENTERPRISE_OPEN_ENTERPRISE_RUN_SCRIPT; + ConsumerBean consumerBean = new ConsumerBean(); + //配置文件 + Properties properties = getCommonProperties(groupEnum); + consumerBean.setProperties(properties); + Map commonSubscriptionTable = getCommonSubscriptionTable(groupEnum, enterpriseScriptListener); + //订阅多个topic如上面设置 + consumerBean.setSubscriptionTable(commonSubscriptionTable); + return consumerBean; + } + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/consumer/EnterpriseInitListener.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/EnterpriseInitListener.java similarity index 98% rename from coolstore-partner-service/src/main/java/com/cool/store/consumer/EnterpriseInitListener.java rename to coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/EnterpriseInitListener.java index de8cecdf5..7e80e41f0 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/consumer/EnterpriseInitListener.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/EnterpriseInitListener.java @@ -1,4 +1,4 @@ -package com.cool.store.consumer; +package com.cool.store.mq.consumer.listener; import com.alibaba.fastjson.JSONObject; import com.aliyun.openservices.ons.api.Action; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/consumer/EnterpriseScriptListener.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/EnterpriseScriptListener.java similarity index 97% rename from coolstore-partner-service/src/main/java/com/cool/store/consumer/EnterpriseScriptListener.java rename to coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/EnterpriseScriptListener.java index 895c38454..6d53260ad 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/consumer/EnterpriseScriptListener.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/EnterpriseScriptListener.java @@ -1,4 +1,4 @@ -package com.cool.store.consumer; +package com.cool.store.mq.consumer.listener; import com.alibaba.fastjson.JSON; import com.aliyun.openservices.ons.api.Action; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/TestListener.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/TestListener.java new file mode 100644 index 000000000..24647b95f --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/TestListener.java @@ -0,0 +1,58 @@ +package com.cool.store.mq.consumer.listener; + +import com.alibaba.fastjson.JSONObject; +import com.aliyun.openservices.ons.api.Action; +import com.aliyun.openservices.ons.api.ConsumeContext; +import com.aliyun.openservices.ons.api.Message; +import com.aliyun.openservices.ons.api.MessageListener; +import com.cool.store.constants.CommonConstants; +import com.cool.store.dto.enterprise.EnterpriseInitDTO; +import com.cool.store.enums.AppTypeEnum; +import com.cool.store.enums.EnterpriseStatusEnum; +import com.cool.store.service.EnterpriseInitService; +import com.cool.store.utils.RedisUtilPool; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.text.MessageFormat; +import java.util.Arrays; + +/** + * 企业开通初始化 + * + * @author chenyupeng + * @since 2022/1/26 + */ +@Slf4j +@Service +public class TestListener implements MessageListener { + + + @Override + public Action consume(Message message, ConsumeContext consumeContext) { + if(message.getReconsumeTimes() + 1 >= Integer.parseInt(CommonConstants.MaxReconsumeTimes)){ + //超过最大消费次数 + return Action.CommitMessage; + } + String text = new String(message.getBody()); + log.info("text:{}", text); + if(StringUtils.isBlank(text)){ + return Action.CommitMessage; + } + return Action.CommitMessage; + } + + +} + + + + + + + + + diff --git a/coolstore-partner-service/src/main/java/com/cool/store/mq/OrderMessageService.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/producer/OrderMessageService.java similarity index 93% rename from coolstore-partner-service/src/main/java/com/cool/store/mq/OrderMessageService.java rename to coolstore-partner-service/src/main/java/com/cool/store/mq/producer/OrderMessageService.java index b306368c1..9aed3a7c9 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/mq/OrderMessageService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/producer/OrderMessageService.java @@ -1,4 +1,4 @@ -package com.cool.store.mq; +package com.cool.store.mq.producer; import com.aliyun.openservices.ons.api.SendResult; import com.cool.store.enums.RocketMqTagEnum; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/mq/SimpleMessageService.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/producer/SimpleMessageService.java similarity index 96% rename from coolstore-partner-service/src/main/java/com/cool/store/mq/SimpleMessageService.java rename to coolstore-partner-service/src/main/java/com/cool/store/mq/producer/SimpleMessageService.java index 3ce3c7dbe..09ebec5a2 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/mq/SimpleMessageService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/producer/SimpleMessageService.java @@ -1,4 +1,4 @@ -package com.cool.store.mq; +package com.cool.store.mq.producer; import com.aliyun.openservices.ons.api.SendCallback; import com.aliyun.openservices.ons.api.SendResult; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/mq/impl/OrderMessageServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/producer/impl/OrderMessageServiceImpl.java similarity index 95% rename from coolstore-partner-service/src/main/java/com/cool/store/mq/impl/OrderMessageServiceImpl.java rename to coolstore-partner-service/src/main/java/com/cool/store/mq/producer/impl/OrderMessageServiceImpl.java index e5f8a5748..26a049fbf 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/mq/impl/OrderMessageServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/producer/impl/OrderMessageServiceImpl.java @@ -1,11 +1,11 @@ -package com.cool.store.mq.impl; +package com.cool.store.mq.producer.impl; import com.aliyun.openservices.ons.api.Message; import com.aliyun.openservices.ons.api.SendResult; import com.aliyun.openservices.ons.api.bean.OrderProducerBean; import com.cool.store.constants.CommonConstants; import com.cool.store.enums.RocketMqTagEnum; -import com.cool.store.mq.OrderMessageService; +import com.cool.store.mq.producer.OrderMessageService; import com.cool.store.mq.RocketMqConfig; import com.cool.store.utils.UUIDUtils; import lombok.extern.slf4j.Slf4j; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/mq/impl/SimpleMessageServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/producer/impl/SimpleMessageServiceImpl.java similarity index 98% rename from coolstore-partner-service/src/main/java/com/cool/store/mq/impl/SimpleMessageServiceImpl.java rename to coolstore-partner-service/src/main/java/com/cool/store/mq/producer/impl/SimpleMessageServiceImpl.java index fcad3c4e8..4a5ba79ab 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/mq/impl/SimpleMessageServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/producer/impl/SimpleMessageServiceImpl.java @@ -1,4 +1,4 @@ -package com.cool.store.mq.impl; +package com.cool.store.mq.producer.impl; import com.alibaba.fastjson.JSONObject; import com.aliyun.openservices.ons.api.Message; @@ -8,7 +8,7 @@ import com.aliyun.openservices.ons.api.bean.ProducerBean; import com.cool.store.constants.CommonConstants; import com.cool.store.enums.RocketMqTagEnum; import com.cool.store.mq.RocketMqConfig; -import com.cool.store.mq.SimpleMessageService; +import com.cool.store.mq.producer.SimpleMessageService; import com.cool.store.utils.UUIDUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseInitServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseInitServiceImpl.java index 4ed2f0861..357142df5 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseInitServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseInitServiceImpl.java @@ -11,7 +11,7 @@ import com.cool.store.entity.UserRegionMappingDO; import com.cool.store.enums.*; import com.cool.store.exception.ServiceException; import com.cool.store.http.ISVHttpRequest; -import com.cool.store.mq.SimpleMessageService; +import com.cool.store.mq.producer.SimpleMessageService; import com.cool.store.request.EnterpriseUserRequest; import com.cool.store.service.EnterpriseInitService; import com.cool.store.service.EnterpriseUserService; diff --git a/coolstore-partner-webb/coolstore-partner-webb.iml b/coolstore-partner-webb/coolstore-partner-webb.iml index 016e7de76..65add6beb 100644 --- a/coolstore-partner-webb/coolstore-partner-webb.iml +++ b/coolstore-partner-webb/coolstore-partner-webb.iml @@ -65,12 +65,7 @@ - - - - - @@ -120,5 +115,24 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/coolstore-partner-webb/pom.xml b/coolstore-partner-webb/pom.xml index 3d39208d9..674569885 100644 --- a/coolstore-partner-webb/pom.xml +++ b/coolstore-partner-webb/pom.xml @@ -25,6 +25,12 @@ org.springframework.boot spring-boot-starter-web + + com.aliyun.oss + aliyun-sdk-oss + 3.13.0 + compile + diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java index f229e4d4a..8c7989928 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java @@ -41,7 +41,7 @@ public class TokenValidateFilter implements Filter { private static List patternList = Lists.newArrayList("/web/check/ok","/check/ok", - "/partner/pc/doc.html","/partner/pc/v2/api-docs","/**/test/**","/partner/pc/feiShuLogin", + "/partner/pc/doc.html","/partner/pc/v2/api-docs","/**/test/**","/partner/pc/feiShuLogin","/partner/pc/oss/getUploadFileConfig", "/**/swagger*/**", "/**/webjars/**"); diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java index 63180c02d..e24415f56 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java @@ -7,7 +7,6 @@ import com.github.pagehelper.PageInfo; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -172,7 +171,6 @@ public class DeskController { public ResponseResult queryPartnerIntentApplyInfo(@PathVariable(value = "enterpriseId", required = false) String enterpriseId, @RequestParam(value = "lineId",required = false)Long lineId){ - return ResponseResult.success(); } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/OssClientController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/OssClientController.java new file mode 100644 index 000000000..a13f06ab1 --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/OssClientController.java @@ -0,0 +1,68 @@ +package com.cool.store.controller; + +import com.aliyun.oss.OSSClient; +import com.aliyun.oss.common.utils.BinaryUtil; +import com.aliyun.oss.model.MatchMode; +import com.aliyun.oss.model.PolicyConditions; +import com.cool.store.response.ResponseResult; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.sql.Date; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author zhangchenbiao + * @FileName: OssClientController + * @Description: + * @date 2023-06-01 11:25 + */ +@RestController +@RequestMapping({"/oss"}) +@Slf4j +public class OssClientController { + + @GetMapping("/getUploadFileConfig") + public ResponseResult getUploadFileConfig(){ + // 请填写您的AccessKeyId。 + String accessId = "LTAI5tKSnAbkEbmT6CeBwNN3"; + // 请填写您的AccessKeySecret。 + String accessKey = "PbXOzUFwAvZ2K5zIawwa7NAJE2pFXS"; + // 请填写您的 endpoint。 + String endpoint = "oss-cn-shanghai.aliyuncs.com"; + // 请填写您的 bucketname 。 + String bucket = "vec-coolstore"; + // host的格式为 bucketname.endpoint + String host = "http://" + bucket + "." + endpoint; + // callbackUrl为 上传回调服务器的URL,请将下面的IP和Port配置为您自己的真实信息。 + String dir = "user-dir-prefix/"; // 用户上传文件时指定的前缀。 + + OSSClient client = new OSSClient(endpoint, accessId, accessKey); + try { + long expireTime = 30; + long expireEndTime = System.currentTimeMillis() + expireTime * 1000; + Date expiration = new Date(expireEndTime); + PolicyConditions policyConds = new PolicyConditions(); + policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, 1048576000); + policyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, dir); + String postPolicy = client.generatePostPolicy(expiration, policyConds); + byte[] binaryData = postPolicy.getBytes("utf-8"); + String encodedPolicy = BinaryUtil.toBase64String(binaryData); + String postSignature = client.calculatePostSignature(postPolicy); + Map respMap = new LinkedHashMap(); + respMap.put("accessid", accessId); + respMap.put("policy", encodedPolicy); + respMap.put("signature", postSignature); + respMap.put("dir", dir); + respMap.put("host", host); + respMap.put("expire", String.valueOf(expireEndTime / 1000)); + return ResponseResult.success(respMap); + }catch (Exception e){ + log.info("exception", e); + } + return ResponseResult.success(); + } +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java index 7f2d54d29..c669b43d5 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java @@ -1,7 +1,12 @@ package com.cool.store.controller; import com.cool.store.entity.EnterpriseConfigDO; +import com.cool.store.enums.RocketMqTagEnum; +import com.cool.store.mq.producer.SimpleMessageService; +import com.cool.store.response.ResponseResult; import com.cool.store.service.EnterpriseConfigService; +import com.cool.store.utils.UUIDUtils; +import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -15,16 +20,27 @@ import javax.annotation.Resource; * @Description: * @date 2023-05-26 11:32 */ +@Slf4j @RestController @RequestMapping("test/") public class TestController { @Resource private EnterpriseConfigService enterpriseConfigService; + @Resource + private SimpleMessageService simpleMessageService; @GetMapping("/selectByEnterpriseId") public EnterpriseConfigDO selectByEnterpriseId(@RequestParam("enterpriseId") String enterpriseId){ return enterpriseConfigService.selectByEnterpriseId(enterpriseId); } + @GetMapping("/sendMq") + public ResponseResult sendMq(){ + String msg = UUIDUtils.get8UUID(); + log.info("msg:{}", msg); + simpleMessageService.send(msg, RocketMqTagEnum.TEST); + return ResponseResult.success(); + } + } diff --git a/coolstore-partner-webb/src/main/resources/application-local.properties b/coolstore-partner-webb/src/main/resources/application-local.properties index 17c64ced1..4a3d768f8 100644 --- a/coolstore-partner-webb/src/main/resources/application-local.properties +++ b/coolstore-partner-webb/src/main/resources/application-local.properties @@ -45,6 +45,6 @@ isv.domain = https://abstore-isv.coolstore.cn #rocketmq \u914D\u7F6E rocketmq.accessKey=zK2oVEz4G1ts23d2 rocketmq.secretKey=0UstLCS0mh2ASgBh -rocketmq.nameSrvAdder=http://rmq-cn-9lb38l1rx04-vpc.cn-hangzhou.rmq.aliyuncs.com:8080 +rocketmq.nameSrvAdder=http://rmq-cn-9lb38l1rx04.cn-hangzhou.rmq.aliyuncs.com:8080 rocketmq.topic=simple_message rocketmq.orderTopic=order_message \ No newline at end of file