.
[baibao-modules.git] / message / message / src / main / java / com / baibao / message / service / impl / SmsRecordManagerImpl.java
blob4a73a8493fe32c8879bc1c4eec1382cb65ca4295
1 package com.baibao.message.service.impl;
3 import java.util.ArrayList;
4 import java.util.HashMap;
5 import java.util.Map;
7 import javax.jws.WebService;
9 import org.slf4j.Logger;
10 import org.slf4j.LoggerFactory;
11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.beans.factory.annotation.Value;
13 import org.springframework.stereotype.Service;
14 import org.springframework.transaction.annotation.Transactional;
16 import com.baibao.message.data.MessageType;
17 import com.baibao.message.model.SmsRecord;
18 import com.baibao.message.repository.SmsRecordRepository;
19 import com.baibao.message.service.SmsRecordManager;
20 import com.baibao.utils.HttpHelper;
21 import com.baibao.utils.JsonHelper;
22 import com.baibao.utils.Utils;
23 import com.baibao.utils.service.AbstractManagerImpl;
24 import com.google.gson.JsonElement;
25 import com.google.gson.JsonObject;
27 @WebService(serviceName = "smsRecordManager")
28 @Service("smsRecordManager")
29 public class SmsRecordManagerImpl
30 extends AbstractManagerImpl<SmsRecord, Long>
31 implements SmsRecordManager
33 private static Logger log =
34 LoggerFactory.getLogger(SmsRecordManagerImpl.class);
36 @Autowired
37 protected SmsRecordRepository smsRecordRepository;
39 @Value("${SMSAPIKEY}")
40 private String smsKey;
42 public void afterPropertiesSet() throws Exception {
43 setRepository(smsRecordRepository);
46 @Override
47 @Transactional
48 public SmsRecord sendSms(
49 MessageType type, String phone,
50 Map<String, Object> parameters)
52 String params = HttpHelper.encodeForm(parameters);
54 log.info(String.format(
55 "发送to%s模板短信: %s!%s", phone, type, params));
56 String url = "http://yunpian.com/v1/sms/tpl_send.json";
58 Map<String, String> paramMap =
59 new HashMap<String, String>();
61 paramMap.put("apikey", smsKey);
62 paramMap.put("mobile", phone);
63 paramMap.put("tpl_id", String.valueOf(type.getIndex()));
64 paramMap.put("tpl_value", params);
66 int code = -1;
67 String message = "";
68 String value = "";
70 try
72 value = HttpHelper.sendPost(url, paramMap);
74 JsonObject element =
75 (JsonObject) JsonHelper.parseJson(value);
77 code = element.get("code").getAsInt();
78 message =
79 element.has("msg")?
80 element.get("msg").getAsString(): "";
81 } catch(Exception e)
83 code = -1;
84 message = e.toString();
87 SmsRecord record = new SmsRecord();
89 record.setSendType(String.valueOf(type));
90 record.setContent(params);
91 record.setResult(value);
92 record.setSendTime(Utils.now());
93 record.setPhone(phone);
94 record.setRealName(phone);
95 record.setResult(code == 0? "发送成功": message);
97 smsRecordRepository.save(record);
99 return record;