fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConfigControllerV2.java
@@ -687,16 +687,28 @@ @RequestMapping(value = "getShowAd") public void showAd(AcceptData acceptData, Long uid, PrintWriter out) { String value = configService.get(ConfigKeyEnum.showSplashAd.getKey()); boolean huaweiShowAd = true; if ("huawei".equalsIgnoreCase(acceptData.getChannel())) { String version = configService.get(ConfigKeyEnum.huaweiOnLineVersionCode.getKey()); if (!StringUtil.isNullOrEmpty(version)) { if (Integer.parseInt(version) == Integer.parseInt(acceptData.getVersion())) { huaweiShowAd = false; } } } JSONObject data = new JSONObject(); if ("0".equalsIgnoreCase(value.trim())) { data.put("show", false); } else { data.put("show", true); if (huaweiShowAd) data.put("show", true); else data.put("show", false); } out.print(JsonUtil.loadTrueResult(data)); } /** * 获取注销协议 * @param acceptData @@ -705,7 +717,7 @@ * @param out */ @RequestMapping(value = "getLogoutProtocol") public void getLogoutProtocol(String callback, AcceptData acceptData,PrintWriter out) { public void getLogoutProtocol(String callback, AcceptData acceptData, PrintWriter out) { JSONObject data = new JSONObject(); data.put("link", configService.get(ConfigKeyEnum.accountLogoutProtocolLink.getKey())); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); fanli/src/main/java/com/yeshi/fanli/entity/system/ConfigKeyEnum.java
@@ -215,6 +215,8 @@ showSplashAd("show_splash_ad","是否显示开屏广告"), huaweiOnLineVersionCode("huawei_online_version_code","华为渠道正在上线的版本"), testUserArray("test_user_array","测试用户数组"), robotCloudLink("robot_cloud_link","云发单链接"), fanli/src/main/java/com/yeshi/fanli/job/RedPackJob.java
@@ -8,11 +8,12 @@ import javax.annotation.Resource; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.annotation.XxlJob; import com.yeshi.fanli.dto.user.PullNewRuleTerm; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.redpack.RedPackConfigService; @@ -29,10 +30,16 @@ private RedPackConfigService redPackConfigService; @XxlJob("RedPackJob-arriveMoney") public ReturnT<String> arriveMoney(String param) throws Exception { arriveMoney(); return ReturnT.SUCCESS; } /** * 红包每月26到账 */ @Scheduled(cron = "0 20 0 26 * ? ") public void arriveMoney() { try { String value = redPackConfigService.getValueByKey("win_redpack_term"); fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneySettleServiceImpl.java
@@ -52,6 +52,7 @@ import com.yeshi.fanli.service.inter.order.CommonOrderService; import com.yeshi.fanli.service.inter.order.OrderMoneySettleService; import com.yeshi.fanli.service.inter.user.UserSystemCouponService; import com.yeshi.fanli.service.manger.msg.RocketMQManager; import com.yeshi.fanli.service.manger.order.TeamRewardManager; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.TimeUtil; @@ -106,6 +107,9 @@ @Resource private TeamRewardManager teamRewardManager; @Resource private RocketMQManager rocketMQManager; // 下级被封禁,红包失效 private void invalidHongBaoForbidden(Long id) { @@ -167,6 +171,8 @@ Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.teamRewardPreRecieved, mqMsg); msg.setKey(taskKey); // 添加事务消息 try { orderTransactionProducer.send(msg, new LocalTransactionExecuter() { @@ -181,6 +187,20 @@ return TransactionStatus.CommitTransaction; } }, null); // rocketMQManager.sendTransactionalMsg(msg, taskKey, new RocketMQManager.ITransactionalMQEvent() { // @Override // public TransactionStatus excute(Message arg0, Object arg1) { // try { // fanliInvite(hongBaoList, uid, Constant.SOURCE_TYPE_TAOBAO, taskKey, maxPregetTime); // } catch (Exception e) { // e.printStackTrace(); // return TransactionStatus.RollbackTransaction; // } // return TransactionStatus.CommitTransaction; // } // }); } catch (Exception e) { e.printStackTrace(); LogHelper.mqError(e.getMessage(), msg.getTopic(), msg.getTag(), new Gson().toJson(mqMsg)); fanli/src/main/java/com/yeshi/fanli/service/manger/msg/RocketMQManager.java
@@ -77,7 +77,7 @@ @Override public TransactionStatus execute(Message arg0, Object arg1) { if (mqEvent != null) mqEvent.excute(); return mqEvent.excute( arg0, arg1); return TransactionStatus.CommitTransaction; } }, null); @@ -98,7 +98,7 @@ sendTransactionalMsg(message, null, key, mqEvent); } interface ITransactionalMQEvent { public void excute(); public interface ITransactionalMQEvent { public TransactionStatus excute(Message arg0, Object arg1); } } fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/TestRocketMQCosumer.java
New file @@ -0,0 +1,27 @@ package com.yeshi.fanli.util.rocketmq.consumer; import java.io.UnsupportedEncodingException; import java.util.List; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently; import org.apache.rocketmq.common.message.MessageExt; import org.springframework.stereotype.Component; @Component public class TestRocketMQCosumer implements MessageListenerConcurrently { @Override public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> arg0, ConsumeConcurrentlyContext arg1) { for (MessageExt msg : arg0) { try { System.out.println(new String(msg.getBody(), "UTF-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; } } fanli/src/main/resource/env-dev/constant.properties
@@ -1,3 +1,3 @@ task =false outnetwork =false test=true test=false fanli/src/main/resource/env-dev/rocketmq.properties
@@ -2,6 +2,6 @@ rocketmq.SecretKey=ixWg90QbYFKP6ae5xpAo2P1qwIyll5 #测试 http://MQ_INST_1205444665315884_Bbkj89nI.mq-internet-access.mq-internet.aliyuncs.com:80 #正式 http://MQ_INST_1205444665315884_BbaMbxF4.mq-internet-access.mq-internet.aliyuncs.com:80 rocketmq.NAMESRV_ADDR=http://MQ_INST_1205444665315884_Bbkj89nI.mq-internet-access.mq-internet.aliyuncs.com:80 rocketmq.NAMESRV_ADDR=http://MQ_INST_1205444665315884_BbaMbxF4.mq-internet-access.mq-internet.aliyuncs.com:80 fanli/src/main/resource/rocket/consumer.xml
@@ -190,7 +190,8 @@ <key> <bean class="com.aliyun.openservices.ons.api.bean.Subscription"> <property name="topic" value="TOPIC_ORDER" /> <property name="expression" value="orderStatistic||orderConfirm||taoBaoOrderWeiQuan" /> <property name="expression" value="orderStatistic||orderConfirm||taoBaoOrderWeiQuan" /> </bean> </key> </entry> @@ -296,7 +297,7 @@ <key> <bean class="com.aliyun.openservices.ons.api.bean.Subscription"> <property name="topic" value="TOPIC_USER" /> <!-- 用户活跃,用户信息更新,淘宝绑定成功,邀请成功,用户资金增加,成为有效用户,账号绑定 ,电话号码公开 --> <!-- 用户活跃,用户信息更新,淘宝绑定成功,邀请成功,用户资金增加,成为有效用户,账号绑定 ,电话号码公开 --> <property name="expression" value="userActve||userInfoUpdate||taobaoBindSuccess||inviteSuccess||userMoneyAdd||becomeValidUser||userPhoneOpen" /> </bean> @@ -307,7 +308,7 @@ </bean> <!-- 云发单消息接收 --> <!-- 云发单消息接收 --> <bean id="userCloudMessageListener" class="com.yeshi.fanli.util.rocketmq.consumer.user.UserCloudMessageListener"></bean> @@ -339,34 +340,57 @@ <!-- 红包消息订阅 --> <bean id="redPackMessageListener" class="com.yeshi.fanli.util.rocketmq.consumer.redpack.RedPackMessageListener"></bean> <!-- Group ID 订阅同一个 Topic,可以创建多个 ConsumerBean --> <bean id="redPackConsumer" class="com.aliyun.openservices.ons.api.bean.ConsumerBean" init-method="start" destroy-method="shutdown"> <property name="properties"> <!--消费者配置信息 --> <props> <prop key="AccessKey">${rocketmq.AccessKey}</prop> <prop key="SecretKey">${rocketmq.SecretKey}</prop> <prop key="GROUP_ID">GID_RED_PACK</prop> <prop key="NAMESRV_ADDR">${rocketmq.NAMESRV_ADDR}</prop> <prop key="ConsumeThreadNums">50</prop> </props> </property> <property name="subscriptionTable"> <map> <entry value-ref="redPackMessageListener"> <key> <bean class="com.aliyun.openservices.ons.api.bean.Subscription"> <property name="topic" value="TOPIC_ORDER" /> <property name="expression" value="orderConfirm" /> </bean> </key> </entry> </map> </property> </bean> <bean id="redPackMessageListener" class="com.yeshi.fanli.util.rocketmq.consumer.redpack.RedPackMessageListener"></bean> <!-- Group ID 订阅同一个 Topic,可以创建多个 ConsumerBean --> <bean id="redPackConsumer" class="com.aliyun.openservices.ons.api.bean.ConsumerBean" init-method="start" destroy-method="shutdown"> <property name="properties"> <!--消费者配置信息 --> <props> <prop key="AccessKey">${rocketmq.AccessKey}</prop> <prop key="SecretKey">${rocketmq.SecretKey}</prop> <prop key="GROUP_ID">GID_RED_PACK</prop> <prop key="NAMESRV_ADDR">${rocketmq.NAMESRV_ADDR}</prop> <prop key="ConsumeThreadNums">50</prop> </props> </property> <property name="subscriptionTable"> <map> <entry value-ref="redPackMessageListener"> <key> <bean class="com.aliyun.openservices.ons.api.bean.Subscription"> <property name="topic" value="TOPIC_ORDER" /> <property name="expression" value="orderConfirm" /> </bean> </key> </entry> </map> </property> </bean> <!-- 测试消息订阅 --> <bean id="testRocketMQCosumerListener" class="com.yeshi.fanli.util.rocketmq.consumer.TestRocketMQCosumer"></bean> <!-- Group ID 订阅同一个 Topic,可以创建多个 ConsumerBean --> <bean id="testRocketMQCosumer" class="org.apache.rocketmq.client.consumer.DefaultMQPushConsumer" init-method="start" destroy-method="shutdown"> <property name="consumerGroup" value="${rocketmq.consumer.group}" /> <property name="namesrvAddr" value="${rocketmq.namesrvAddr}" /> <property name="messageListener" ref="testRocketMQCosumerListener" /> <property name="subscription"> <map> <entry key="TOPIC_ORDER"> <value>*</value> </entry> <entry key="TOPIC_USER"> <value>*</value> </entry> </map> </property> </bean> </beans> fanli/src/main/resource/rocket/producer.xml
@@ -15,4 +15,17 @@ </props> </property> </bean> <bean id="rmqProducer" class="org.apache.rocketmq.client.producer.DefaultMQProducer" init-method="start" destroy-method="shutdown"> <!-- Spring 接入方式支持 Java SDK 支持的所有配置项 --> <property name="producerGroup"> <value>GID_USER</value> </property> <property name="namesrvAddr"> <value>193.112.34.40:9876</value> </property> </bean> </beans> fanli/src/main/resource/spring.xml
@@ -53,6 +53,7 @@ </bean> <import resource="classpath:rocketmq.xml" /> <import resource="classpath:test_consumer.xml" /> <import resource="classpath:xxl-job.xml" /> <import resource="classpath:elasticsearch.xml" /> fanli/src/main/resource/test_consumer.xml
New file @@ -0,0 +1,28 @@ <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 测试消息订阅 --> <bean id="testRocketMQCosumerListener" class="com.yeshi.fanli.util.rocketmq.consumer.TestRocketMQCosumer"></bean> <!-- Group ID 订阅同一个 Topic,可以创建多个 ConsumerBean --> <bean id="testRocketMQCosumer" class="org.apache.rocketmq.client.consumer.DefaultMQPushConsumer" init-method="start" destroy-method="shutdown"> <property name="consumerGroup" value="GID_TEST" /> <property name="namesrvAddr" value="193.112.34.40:9876" /> <property name="messageListener" ref="testRocketMQCosumerListener" /> <property name="subscription"> <map> <entry key="TOPIC_ORDER"> <value>*</value> </entry> <entry key="TOPIC_USER"> <value>*</value> </entry> </map> </property> </bean> </beans> pom.xml
@@ -567,37 +567,20 @@ </dependency> <!-- <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk16</artifactId> <version>1.46</version> </dependency> --> <!-- 支付宝相关 --> <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.9.71.ALL</version> </dependency> <!-- <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-easysdk</artifactId> <version>1.2.1</version> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.3.0</version> </dependency> --> <!--StringUtils --> <!-- <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.8.1</version> </dependency> --> </dependencies>