Просмотр исходного кода

短信推送接口联调修改

anderx лет назад: 7
Родитель
Сommit
e3867ec0e8

+ 5 - 0
.gitignore

@@ -2,3 +2,8 @@
 /bin/
 /.classpath
 /.settings
+/bin/
+/bin/
+/bin/
+/bin/
+/bin/

+ 2 - 0
src/main/java/com/goafanti/common/dao/UserMapper.java

@@ -115,4 +115,6 @@ public interface UserMapper {
 	List<JtMessageConsumer> getAllUser();
 	
 	int getCountByMobile(@Param("id")String id,@Param("mobile")String mobile);
+
+	List<String> getUserListMobile();
 }

+ 39 - 5
src/main/java/com/goafanti/common/mapper/JtMessageProducerMapper.xml

@@ -19,6 +19,8 @@
     <result column="is_draft" jdbcType="BIT" property="isDraft" />
     <result column="is_send" jdbcType="BIT" property="isSend" />
     <result column="delete_sign" jdbcType="BIT" property="deleteSign" />
+    <result column="code" jdbcType="VARCHAR" property="code" />
+    <result column="resource_name" jdbcType="VARCHAR" property="resourceName" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <!--
@@ -95,7 +97,7 @@
       This element was generated on Wed Aug 29 09:46:33 CST 2018.
     -->
     id, creater, create_time, send_time, title, body, subject, resource_id, resource_type, 
-    is_draft, is_send, delete_sign
+    is_draft, is_send, delete_sign,code,resource_name
   </sql>
   <select id="selectByExample" parameterType="com.goafanti.common.model.JtMessageProducerExample" resultMap="BaseResultMap">
     <!--
@@ -156,11 +158,11 @@
     insert into jt_message_producer (id, creater, create_time, 
       send_time, title, body, 
       subject, resource_id, resource_type, 
-      is_draft, is_send, delete_sign)
+      is_draft, is_send, delete_sign,code,resource_name)
     values (#{id,jdbcType=VARCHAR}, #{creater,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, 
       #{sendTime,jdbcType=TIMESTAMP}, #{title,jdbcType=VARCHAR}, #{body,jdbcType=VARCHAR}, 
       #{subject,jdbcType=INTEGER}, #{resourceId,jdbcType=VARCHAR}, #{resourceType,jdbcType=INTEGER}, 
-      #{isDraft,jdbcType=BIT}, #{isSend,jdbcType=BIT}, #{deleteSign,jdbcType=BIT})
+      #{isDraft,jdbcType=BIT}, #{isSend,jdbcType=BIT}, #{deleteSign,jdbcType=BIT},#{code,jdbcType=VARCHAR},#{resourceName,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.JtMessageProducer">
     <!--
@@ -206,6 +208,12 @@
       <if test="deleteSign != null">
         delete_sign,
       </if>
+      <if test="code != null">
+        code,
+      </if>
+        <if test="resourceName != null">
+        resource_name,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -244,6 +252,12 @@
       <if test="deleteSign != null">
         #{deleteSign,jdbcType=BIT},
       </if>
+      <if test="code != null">
+        #{code,jdbcType=VARCHAR},
+      </if>
+        <if test="resourceName != null">
+        #{resourceName,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.goafanti.common.model.JtMessageProducerExample" resultType="java.lang.Integer">
@@ -370,6 +384,12 @@
       <if test="deleteSign != null">
         delete_sign = #{deleteSign,jdbcType=BIT},
       </if>
+       <if test="code != null">
+        code = #{code,jdbcType=VARCHAR},
+      </if>
+        <if test="resourceName != null">
+        resource_name = #{resourceName,jdbcType=VARCHAR},
+      </if>
     </set>
     where id = #{id,jdbcType=VARCHAR}
   </update>
@@ -390,7 +410,9 @@
       resource_type = #{resourceType,jdbcType=INTEGER},
       is_draft = #{isDraft,jdbcType=BIT},
       is_send = #{isSend,jdbcType=BIT},
-      delete_sign = #{deleteSign,jdbcType=BIT}
+      delete_sign = #{deleteSign,jdbcType=BIT},
+      code = #{code,jdbcType=VARCHAR},
+      resource_name = #{resourceName,jdbcType=VARCHAR}
     where id = #{id,jdbcType=VARCHAR}
   </update>
   
@@ -399,7 +421,7 @@
   	select 
     id, creater, create_time as createTime, send_time as sendTime, title, body, subject, 
     resource_id as resourceId, resource_type as resourceType, 
-    is_draft as isDraft, is_send as isSend, delete_sign as deleteSign
+    is_draft as isDraft, is_send as isSend, delete_sign as deleteSign,code,resource_name as resourceName
     from jt_message_producer
     where delete_sign = 0 
     <if test="title != null">
@@ -421,6 +443,12 @@
     <if test="sendStartTime != null and sendEndTime != null">
     and send_time between #{sendStartTime,jdbcType=VARCHAR}  and #{sendEndTime,jdbcType=VARCHAR}
     </if>
+    <if test="code != null">
+    and code = #{code,jdbcType=VARCHAR}
+    </if>
+    <if test="subject != null">
+    and subject =  #{subject,jdbcType=INTEGER}
+    </if>
     order by create_time desc
     <if test="page_sql!=null">
         ${page_sql}
@@ -447,5 +475,11 @@
     <if test="sendStartTime != null and sendEndTime != null">
     and send_time between #{sendStartTime,jdbcType=VARCHAR}  and #{sendEndTime,jdbcType=VARCHAR}
     </if>
+    <if test="code != null">
+    and code = #{code,jdbcType=VARCHAR}
+    </if>
+    <if test="subject != null">
+    and subject =  #{subject,jdbcType=INTEGER}
+    </if>
   </select>
 </mapper>

+ 6 - 0
src/main/java/com/goafanti/common/mapper/UserMapper.xml

@@ -1250,5 +1250,11 @@
 	<select id="getCountByMobile" parameterType="com.goafanti.common.model.User" resultType="java.lang.Integer">
 		select count(0) from user where mobile = #{mobile,jdbcType=VARCHAR} and id &lt;&gt; #{id,jdbcType=VARCHAR}
 	</select>
+	<select id="getUserListMobile"  resultType="java.lang.String">
+	select mobile from `user`
+ 		where status=0
+ 		and source=0
+ 		and audit_status=2
+	</select>
 
 </mapper>

+ 22 - 0
src/main/java/com/goafanti/common/model/JtMessageProducer.java

@@ -64,6 +64,12 @@ public class JtMessageProducer {
 	 * @mbggenerated  Wed Aug 29 09:46:33 CST 2018
 	 */
 	private Boolean deleteSign;
+	
+	
+	private String code;
+	
+	
+	private String resourceName;
 
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column jt_message_producer.id
@@ -280,4 +286,20 @@ public class JtMessageProducer {
 	public void setDeleteSign(Boolean deleteSign) {
 		this.deleteSign = deleteSign;
 	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getResourceName() {
+		return resourceName;
+	}
+
+	public void setResourceName(String resourceName) {
+		this.resourceName = resourceName;
+	}
 }

+ 31 - 2
src/main/java/com/goafanti/message/controller/AdminMessageController.java

@@ -4,6 +4,7 @@ import java.text.ParseException;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import javax.annotation.Resource;
@@ -331,6 +332,34 @@ public class AdminMessageController extends CertifyApiController{
 		}
 		return res;
 	}
+	/**
+	 * 发送短信消息
+	 * @param messageId
+	 * @return
+	 */
+	@RequestMapping(value = "/mobileMessage", method = RequestMethod.GET)
+	public Result mobileMessage(String messageCode){
+		Result res = checkMessageCode(messageCode);
+		if (res.getError().isEmpty()) {
+			//发送消息
+			res.setData(jtMessageProducerService.MobileMessage(messageCode));
+		}
+		return res;
+	}
+	
+	private Result checkMessageCode(String messageCode) {
+		Result res = new Result();
+		if(StringUtils.isBlank(messageCode)){
+			res.getError().add(buildError("", "消息Code不能为空"));
+		}
+		String regex = "^(SMS_)\\d{8}$";
+		Pattern p = Pattern.compile(regex);
+		Matcher m = p.matcher(messageCode);
+		if ( !m.matches()) {
+			res.getError().add(buildError("", "消息Codec错误"));
+			}
+		return res;
+	}
 	
 	/**
 	 * 获得单个消息数据接口
@@ -377,7 +406,7 @@ public class AdminMessageController extends CertifyApiController{
 	 * @return
 	 */
 	@RequestMapping(value="/getMessageList", method = RequestMethod.GET)
-	public Result getMessageList(JtMessageProducer messageProducer,String sendStartTime, String sendEndTime, Integer pageNo,Integer pageSize ){
+	public Result getMessageList(JtMessageProducer messageProducer,String sendStartTime,String code, String sendEndTime,Integer subject, Integer pageNo,Integer pageSize ){
 		Result res = new Result();
 		/*if(StringUtils.isBlank(TokenManager.getUserId())){
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"", "登录数据失效"));
@@ -385,7 +414,7 @@ public class AdminMessageController extends CertifyApiController{
 		}*/
 		if (res.getError().isEmpty()) {
 			//查看消息列表
-			res.setData(jtMessageProducerService.getMessageList(messageProducer, sendStartTime, sendEndTime, pageNo, pageSize ));
+			res.setData(jtMessageProducerService.getMessageList(messageProducer, sendStartTime, sendEndTime, code, subject,pageNo, pageSize ));
 		}
 		return res;
 	}

+ 3 - 1
src/main/java/com/goafanti/message/service/JtMessageProducerService.java

@@ -37,5 +37,7 @@ public interface JtMessageProducerService {
 	 * 消息列表
 	 * @return
 	 */
-	Pagination<JtMessageProducer> getMessageList(JtMessageProducer messageProducer, String sendStartTime, String sendEndTime, Integer pageNo,Integer pageSize);
+	Pagination<JtMessageProducer> getMessageList(JtMessageProducer messageProducer, String sendStartTime, String sendEndTime, String code,Integer subject,Integer pageNo,Integer pageSize);
+
+	int MobileMessage(String messageCode);
 }

+ 50 - 10
src/main/java/com/goafanti/message/service/impl/JtMessageProducerServiceImpl.java

@@ -1,14 +1,18 @@
 package com.goafanti.message.service.impl;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import com.goafanti.common.dao.AdminMapper;
@@ -17,6 +21,7 @@ import com.goafanti.common.dao.JtMessageProducerMapper;
 import com.goafanti.common.dao.UserMapper;
 import com.goafanti.common.model.JtMessageConsumer;
 import com.goafanti.common.model.JtMessageProducer;
+import com.goafanti.common.utils.MobileMessageUtils;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
@@ -35,6 +40,10 @@ public class JtMessageProducerServiceImpl  extends BaseMybatisDao<JtMessageProdu
 	private JtMessageConsumerMapper jtMessageConsumerMapper;
 	@Autowired
 	private JGMessageHelper jgMessageHelper;
+	@Value(value = "${accessKey}")
+	private String					accessKey			= null;
+	@Value(value = "${accessSecret}")
+	private String					accessSecret		= null;
 	
 
 	@Override
@@ -72,17 +81,16 @@ public class JtMessageProducerServiceImpl  extends BaseMybatisDao<JtMessageProdu
 		messageProducer.setIsSend(true);
 		messageProducer.setIsDraft(false);
 		jtMessageProducerMapper.updateByPrimaryKeySelective(messageProducer);
-		if (messageProducer!=null) {
-			if (messageProducer.getSubject()==1) {
+		JtMessageProducer producer=jtMessageProducerMapper.selectByPrimaryKey(messageId);
+		if (producer!=null) {
+			if (producer.getSubject()==1) {
 				//推送消息
-				jgMessageHelper.sendPushMessage(messageProducer);
-				
-			}else if (messageProducer.getSubject()==2) {
-				//短信消息
+				jgMessageHelper.sendPushMessage(producer);
 			}
 		}
 		return jtMessageConsumerMapper.addBatch(list);
 	}
+	
 
 	@Override
 	public JtMessageProducer getMessageById(String messageId) {
@@ -92,20 +100,21 @@ public class JtMessageProducerServiceImpl  extends BaseMybatisDao<JtMessageProdu
 	@Override
 	public int updateMessageById(JtMessageProducer messageProducer) {
 		int count = 0;
+		// 修改消息
+		messageProducer.setCreateTime(null);//不修改创建时间
+		count = jtMessageProducerMapper.updateByPrimaryKeySelective(messageProducer);
 		// 推送消息
 		if(messageProducer.getIsSend() && !messageProducer.getDeleteSign() && !messageProducer.getIsDraft()){
 			if(null == messageProducer.getSendTime()) messageProducer.setSendTime(new Date());
 			count += addSendMessage(messageProducer.getId());
 		}
-		// 修改消息
-		messageProducer.setCreateTime(null);//不修改创建时间
-		count = jtMessageProducerMapper.updateByPrimaryKeySelective(messageProducer);
 		return count;
 	}
 
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<JtMessageProducer> getMessageList(JtMessageProducer messageProducer, String sendStartTime, String sendEndTime, Integer pageNo,Integer pageSize) {
+	public Pagination<JtMessageProducer> getMessageList(JtMessageProducer messageProducer, String sendStartTime, String sendEndTime,
+			String code,Integer subject,Integer pageNo,Integer pageSize){
 		if(pageNo==null || pageNo<1)pageNo=1;
 		if(pageSize==null ||pageSize<1)pageSize=10; 
 		Map<String, Object> params=new HashMap<String,Object>();
@@ -115,8 +124,39 @@ public class JtMessageProducerServiceImpl  extends BaseMybatisDao<JtMessageProdu
 		if(null != messageProducer.getIsSend())params.put("isSend",messageProducer.getIsSend());
 		if(StringUtils.isNotBlank(sendStartTime))params.put("sendStartTime",sendStartTime);
 		if(StringUtils.isNotBlank(sendEndTime))params.put("sendEndTime",sendEndTime);
+		if(StringUtils.isNotBlank(code))params.put("code",code);
+		if(null!=subject)params.put("subject",subject);
 		return (Pagination<JtMessageProducer>) findPage("getMyMessageList", "getMyMessageCount", params, pageNo, pageSize);
 	}
 
+	@Override
+	public int MobileMessage(String messageCode) {
+		String regex = "^(1[1-9][0-9])\\d{8}$";
+		Pattern p = Pattern.compile(regex);
+		List<String> mobileList=userMapper.getUserListMobile();
+		String mobile="";
+		for (String string : mobileList) {
+			if (null!=string) {
+				Matcher m = p.matcher(string);
+			if ( m.matches()) {
+				mobile+=string+",";
+				}
+			}
+		}
+		if(mobile.length()>1)mobile=mobile.substring(0, mobile.length()-1);
+		MobileMessageUtils.sendMessage(messageCode, null, mobile, accessKey, accessSecret);
+		JtMessageProducer producer=new JtMessageProducer();
+		producer.setId(UUID.randomUUID().toString());
+		producer.setSubject(2);
+		producer.setIsSend(true);
+		producer.setIsDraft(false);
+		producer.setDeleteSign(false);
+		producer.setCode(messageCode);
+		producer.setSendTime(new Date());
+		jtMessageProducerMapper.insertSelective(producer);
+		return 1;
+		
+	}
+
 
 }

+ 2 - 0
src/main/resources/props/config_local.properties

@@ -71,6 +71,8 @@ aesSecretKey=aft1234567890123
 
 mobileCodeTemplate=SMS_37845022
 patentTemplate=SMS_72005286
+examineAdopt=SMS_147971258
+examineNoAdopt=SMS_147971261
 
 easemob.client.url=https://a1.easemob.com/1117170814115609/jitao
 easemob.client.id=YXA6RUDGkIDSEeemq9_4PWzcNA