Commit c5f3b4ab522ff0b9744169f664f9cc7e745955a9

Authored by jiangchengyong
1 parent 4cff1a31

储值卡交易消息

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&lt;FundTrade, Long&gt; 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&lt;FundTrade, Long&gt; 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&lt;FundTrade, Long&gt; 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&lt;FundTrade, Long&gt; 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
... ...