Browse Source

消息推送

wanghui 8 years ago
parent
commit
9d56e153c3

+ 1 - 1
src/main/java/com/goafanti/common/dao/MessageFromSystemMapper.java

@@ -119,7 +119,7 @@ public interface MessageFromSystemMapper {
 	 * @param uid
 	 * @return
 	 */
-	int checkJPushAcc(@Param("uid")String uid);
+	String checkJPushAcc(@Param("uid")String uid);
 
 	/**
 	 * 绑定第三方账�?

+ 18 - 20
src/main/java/com/goafanti/common/mapper/MessageFromSystemMapper.xml

@@ -450,24 +450,22 @@
   </insert>
    <select id="selectSyncMessage" parameterType="java.lang.String" resultType="com.goafanti.message.bo.MessageBo"> 
    <!-- 登陆时同步  -->	
-		select
-			x.id,
-			x.message_id
-		from
-			message_producer x left join message_from_system y on
-			x.message_id = y.id
-		where
-			not exists(
-				select
-					a.id
-				from
-					message_producer a left join message_consumer b on
-					(
-						a.message_id = b.message_id
-						and a.consumer_id = b.consumer_id
-					)
-				where
-					x.id = a.id
+			select
+				x.id,
+				x.message_id
+			from
+				message_producer x left join message_from_system y on
+				x.message_id = y.id
+			where x.id 
+				not in(
+					select
+						a.id
+					from
+						message_producer a inner join message_consumer b on
+						(
+							a.message_id = b.message_id
+							and a.consumer_id = b.consumer_id
+						)
 			)
 			and x.consumer_id = #{uid,jdbcType=VARCHAR}
 			and y.is_draft = 0 <!-- 非草稿 -->
@@ -487,8 +485,8 @@
 			and c.delete_sign = 0
    </select>
    
-   <select id="checkJPushAcc" parameterType="java.lang.String" resultType="java.lang.Integer">
-   		select count(0) from jpush_easemob_account where uid = #{uid,jdbcType=VARCHAR}
+   <select id="selectJPushAcc" parameterType="java.lang.String" resultType="java.lang.String">
+   		select registration_id from jpush_easemob_account where uid = #{uid,jdbcType=VARCHAR}
    </select>
    
    <update id="updateJpushEasemobAccount">

+ 12 - 9
src/main/java/com/goafanti/message/service/impl/MessageServiceImpl.java

@@ -163,18 +163,20 @@ public class MessageServiceImpl  extends BaseMybatisDao<MessageFromSystemMapper>
 				cids = tmp.split(",");
 				MessageProducer mp;
 				MessageBo bo;
+				String registrationId = "";
 				for(String cid : cids){
 					mp = new MessageProducer();
 					mp.setId(UUID.randomUUID().toString());
 					mp.setMessageId(mfs.getId());
 					mp.setConsumerId(cid);
 					producerTarget.add(mp);
-					if(messageFromSystemMapper.checkJPushAcc(cid) >0){
+					registrationId = messageFromSystemMapper.checkJPushAcc(cid);
+					if(StringUtils.isNotBlank(registrationId)){
 						bo = new MessageBo();
 						bo.setMessageId(mfs.getId());
 						bo.setMessageTitle(mfs.getTitle());
 						bo.setMessageBody(mfs.getBody());
-						bo.setRegistrationId(cid);
+						bo.setRegistrationId(registrationId);
 						sendTarget.add(bo);
 					}
 				}
@@ -187,19 +189,20 @@ public class MessageServiceImpl  extends BaseMybatisDao<MessageFromSystemMapper>
 				cids = tmp.split(",");
 				MessageProducer mp;
 				MessageBo bo;
+				String registrationId = "";
 				for(String cid : cids){
 					mp = new MessageProducer();
 					mp.setId(UUID.randomUUID().toString());
 					mp.setMessageId(mfs.getId());
 					mp.setConsumerId(cid);
 					producerTarget.add(mp);
-					
-					if(messageFromSystemMapper.checkJPushAcc(cid) >0){
+					registrationId = messageFromSystemMapper.checkJPushAcc(cid);
+					if(StringUtils.isNotBlank(registrationId)){
 						bo = new MessageBo();
 						bo.setMessageId(mfs.getId());
 						bo.setMessageTitle(mfs.getTitle());
 						bo.setMessageBody(mfs.getBody());
-						bo.setRegistrationId(cid);
+						bo.setRegistrationId(registrationId);
 						sendTarget.add(bo);
 					}
 				}
@@ -250,7 +253,7 @@ public class MessageServiceImpl  extends BaseMybatisDao<MessageFromSystemMapper>
 					String[] cids = null;
 					if(tmp != null){
 						cids = tmp.split(",");
-						System.out.println("cids=="+cids);
+						String registrationId = "";
 						for(String cid : cids){
 							mp = new MessageProducer();
 							mp.setId(UUID.randomUUID().toString());
@@ -258,15 +261,15 @@ public class MessageServiceImpl  extends BaseMybatisDao<MessageFromSystemMapper>
 							mp.setCreateTime(createTime);
 							mp.setMessageId(messageId);
 							producerTarget.add(mp);
-							
-							if(messageFromSystemMapper.checkJPushAcc(cid) >0){
+							registrationId = messageFromSystemMapper.checkJPushAcc(cid);
+							if(StringUtils.isNotBlank(registrationId)){
 								bo = new MessageBo();
 								bo.setMessageId(message.getId());
 								bo.setMessageTitle(message.getTitle());
 								bo.setMessageBody(message.getBody());
 								bo.setResourceId(message.getResourceId());
 								bo.setResourceType(String.valueOf(message.getResourceType()));
-								bo.setRegistrationId(cid);
+								bo.setRegistrationId(registrationId);
 								sendTarget.add(bo);
 							}
 						}