Commit c5f3b4ab522ff0b9744169f664f9cc7e745955a9
1 parent
4cff1a31
储值卡交易消息
Showing
3 changed files
with
49 additions
and
12 deletions
myapp-web/src/main/java/com/b2c/myapp/mq/ShopMessageSender.java renamed to myapp-web/src/main/java/com/b2c/myapp/mq/FundTradeSender.java
... | ... | @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; |
4 | 4 | import com.alibaba.rocketmq.common.message.Message; |
5 | 5 | import com.diligrp.util.rocketMQUtil.impl.DiliMQProducerImpl; |
6 | 6 | import org.apache.log4j.Logger; |
7 | +import org.springframework.beans.factory.annotation.Value; | |
7 | 8 | import org.springframework.stereotype.Service; |
8 | 9 | |
9 | 10 | import javax.annotation.Resource; |
... | ... | @@ -19,17 +20,13 @@ import java.util.Map; |
19 | 20 | * @author 文龙 |
20 | 21 | */ |
21 | 22 | @Service |
22 | -public class ShopMessageSender { | |
23 | - Logger log= Logger.getLogger(ShopMessageSender.class); | |
24 | - | |
23 | +public class FundTradeSender { | |
24 | + Logger log= Logger.getLogger(FundTradeSender.class); | |
25 | + | |
25 | 26 | @Resource |
26 | 27 | private DiliMQProducerImpl diliMQProducer; |
27 | - | |
28 | - private final void send(String tags,Map<String, Object> param){ | |
29 | - send("user_shop",tags,param); | |
30 | - } | |
31 | - | |
32 | - private final void send(String topic,String tags,Map<String, Object> param){ | |
28 | + | |
29 | + public void send(String topic,String tags,Map<String, Object> param){ | |
33 | 30 | Message msg; |
34 | 31 | try { |
35 | 32 | msg = new Message(topic,tags, JSON.toJSONString(param).getBytes("utf-8")); |
... | ... |
myapp-web/src/main/java/com/b2c/myapp/service/impl/FundTradeServiceImpl.java
... | ... | @@ -10,16 +10,21 @@ import com.b2c.myapp.domain.FundTrade; |
10 | 10 | import com.b2c.myapp.domain.Shop; |
11 | 11 | import com.b2c.myapp.domain.ShopBuyer; |
12 | 12 | import com.b2c.myapp.domain.TradeOper; |
13 | +import com.b2c.myapp.mq.FundTradeSender; | |
13 | 14 | import com.b2c.myapp.service.FundTradeService; |
14 | 15 | import com.b2c.myapp.service.ShopBuyerService; |
15 | 16 | import com.b2c.myapp.utils.CommonUtils; |
16 | 17 | import com.diligrp.website.util.format.MoneyUtils; |
18 | +import com.google.common.collect.Maps; | |
17 | 19 | import org.slf4j.Logger; |
18 | 20 | import org.slf4j.LoggerFactory; |
19 | 21 | import org.springframework.beans.factory.annotation.Autowired; |
22 | +import org.springframework.beans.factory.annotation.Value; | |
20 | 23 | import org.springframework.stereotype.Service; |
21 | 24 | import org.springframework.transaction.annotation.Transactional; |
22 | 25 | |
26 | +import java.util.Map; | |
27 | + | |
23 | 28 | /** |
24 | 29 | * <br /> |
25 | 30 | * @createTime 2016-11-23 17:19:15 |
... | ... | @@ -37,6 +42,14 @@ public class FundTradeServiceImpl extends BaseServiceImpl<FundTrade, Long> imple |
37 | 42 | private ShopBuyerService shopBuyerService; |
38 | 43 | @Autowired |
39 | 44 | private ShopDao shopDao; |
45 | + @Autowired | |
46 | + private FundTradeSender fundTradeSender; | |
47 | + | |
48 | + | |
49 | + @Value("${mq.fundtrade.topic}") | |
50 | + private String topic; | |
51 | + @Value("${mq.fundtrade.tags}") | |
52 | + private String tags; | |
40 | 53 | |
41 | 54 | public BaseDao<FundTrade, Long> getDao() { |
42 | 55 | return fundTradeDao; |
... | ... | @@ -72,6 +85,18 @@ public class FundTradeServiceImpl extends BaseServiceImpl<FundTrade, Long> imple |
72 | 85 | } |
73 | 86 | } |
74 | 87 | |
88 | + private Map<String,Object> genMsgObj(FundTrade fundTrade){ | |
89 | + Map<String,Object> msgObj = Maps.newHashMap(); | |
90 | + Shop shop = shopDao.get(fundTrade.getShopId()); | |
91 | + msgObj.put("shopName",shop.getShopName()); | |
92 | + msgObj.put("userRole",10); | |
93 | + msgObj.put("buyerId",fundTrade.getBuyerId()); | |
94 | + msgObj.put("tradeId",fundTrade.getId()); | |
95 | + msgObj.put("tradeType",fundTrade.getTradeType().getIndex()); | |
96 | + msgObj.put("tradePrice",fundTrade.getTradePrice()); | |
97 | + return msgObj; | |
98 | + } | |
99 | + | |
75 | 100 | /** |
76 | 101 | * 储值 |
77 | 102 | * @param fundTrade |
... | ... | @@ -85,7 +110,12 @@ public class FundTradeServiceImpl extends BaseServiceImpl<FundTrade, Long> imple |
85 | 110 | int shopBuyerOper = shopBuyerDao.storedTrade(tradeOper); |
86 | 111 | int shopOper = shopDao.storedTrade(fundTrade.getShopId(),tradeOper); |
87 | 112 | int operLog = fundTradeDao.insert(fundTrade); |
88 | - return shopBuyerOper>0 && shopOper>0 && operLog>0; | |
113 | + Boolean result = shopBuyerOper>0 && shopOper>0 && operLog>0; | |
114 | + if(result){ | |
115 | + //发送储值卡充值消息 | |
116 | + fundTradeSender.send(topic,tags,genMsgObj(fundTrade)); | |
117 | + } | |
118 | + return result; | |
89 | 119 | } |
90 | 120 | |
91 | 121 | /** |
... | ... | @@ -167,7 +197,13 @@ public class FundTradeServiceImpl extends BaseServiceImpl<FundTrade, Long> imple |
167 | 197 | //写入消费记录 |
168 | 198 | fundTrade.setTradeType(TradeType.Consume); |
169 | 199 | int consumeLog = fundTradeDao.insert(fundTrade); |
170 | - return shopBuyerOper>0 && shopOper>0 && consumeLog > 0 && unfreezeLog > 0; | |
200 | + | |
201 | + Boolean result = shopBuyerOper>0 && shopOper>0 && consumeLog > 0 && unfreezeLog > 0; | |
202 | + if(result){ | |
203 | + //发送储值卡消费消息 | |
204 | + fundTradeSender.send(topic,tags,genMsgObj(fundTrade)); | |
205 | + } | |
206 | + return result; | |
171 | 207 | } |
172 | 208 | |
173 | 209 | } |
... | ... |
myapp-web/src/main/resources/rocketMQ.properties
1 | 1 | #MQ address |
2 | 2 | mq.namesrvAddr=${conf.mq.namesrvAddr} |
3 | 3 | #MQ producer group |
4 | -mq.producerGroup=${conf.mq.producerGroup} | |
5 | 4 | \ No newline at end of file |
5 | +mq.producerGroup=${conf.mq.producerGroup} | |
6 | + | |
7 | +mq.fundtrade.topic=fund_trade | |
8 | + | |
9 | +mq.fundtrade.tags=fund_trade | |
6 | 10 | \ No newline at end of file |
... | ... |