Browse Source

消息推送

wanghui 8 years ago
parent
commit
a04bb8b478

+ 1 - 2
GeneratorConfig.xml

@@ -8,7 +8,6 @@
     <javaModelGenerator targetPackage="com.goafanti.common.model" targetProject="AFT" />
     <sqlMapGenerator targetPackage="com.goafanti.common.mapper" targetProject="AFT" />
     <javaClientGenerator targetPackage="com.goafanti.common.dao" targetProject="AFT" type="XMLMAPPER" />
-    <table schema="aft" tableName="message_consumer"/>
-    <table schema="aft" tableName="message_producer"/>
+    <table schema="aft" tableName="message_from_system"/>
   </context>
 </generatorConfiguration>

+ 89 - 25
src/main/java/com/goafanti/admin/controller/AdminMessageController.java

@@ -12,7 +12,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
-import com.goafanti.admin.service.MessageService;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.constant.ErrorConstants;
@@ -20,6 +19,7 @@ import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.message.enums.ConsumerType;
 import com.goafanti.message.enums.RecommendType;
 import com.goafanti.message.enums.SubjectType;
+import com.goafanti.message.service.MessageService;
 import com.google.gson.JsonObject;
 
 /**
@@ -49,17 +49,20 @@ public class AdminMessageController extends CertifyApiController{
 	 * 
 	 * @param companyIds 公司集
 	 * @param userIds 用户集
+	 * @param adminIds 运营人员
 	 * @param societyTags 社会属性集
 	 * @param provinceIds 省份集
 	 * @param cityIds 城市集
 	 * @param areas 区域集
 	 * @param roles 角色集
+	 * @param industryIds 行业
 	 * @param subject  0-运营消息 , 1-客户消息 , 2-技淘推荐
+	 * @param isDraft 是否草稿
 	 * @throws ParseException 
 	 */
 	@RequestMapping(value = "/createSystemMessage", method = RequestMethod.POST)
 	public Result createSystemMessage(String userIds,String adminIds,String companyIds,String societyTags,String provinceIds,String cityIds,String areaIds,
-			String roles,String industryIds,String title,String body,Integer subject,Integer targetType,String createTime) throws ParseException{
+			String roles,String industryIds,String title,String body,Integer subject,Integer targetType,String createTime,Integer isDraft) throws ParseException{
 		Result res = new Result();
 		if(null == targetType){
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "必须指定人员类型"));
@@ -73,9 +76,13 @@ public class AdminMessageController extends CertifyApiController{
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "消息是的标题和内容不能为空"));
 			return res;
 		}
+		if(null == isDraft){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"必须说明是否为草稿"));
+			return res;
+		}
 		Map<Integer,String> targetMap = new HashMap<Integer, String>();
 		if(targetType == ConsumerType.CUSTOMER_RETAIL.getTypeCode()) targetMap.put(targetType, userIds);
-		if(targetType == ConsumerType.USER_RETAIL.getTypeCode()) targetMap.put(targetType, userIds);
+		if(targetType == ConsumerType.USER_RETAIL.getTypeCode()) targetMap.put(targetType, adminIds);
 		if(targetType == ConsumerType.SOCIETY_TAG.getTypeCode()) targetMap.put(targetType, societyTags);
 		if(targetType == ConsumerType.LOCATION.getTypeCode()){
 			 targetMap.put(targetType, ConsumerType.LOCATION.getTypeName());
@@ -91,7 +98,7 @@ public class AdminMessageController extends CertifyApiController{
 			return res;
 		}
 		SimpleDateFormat format = new SimpleDateFormat(AFTConstants.YYYYMMDDHHMMSS);
-		messageServiceImpl.insertSystemMessage(targetMap, title, body, subject,targetType,format.parse(createTime));
+		messageServiceImpl.insertSystemMessage(targetMap,targetType, title, body, subject,format.parse(createTime),isDraft);
 		return res;
 	}
 	
@@ -111,11 +118,13 @@ public class AdminMessageController extends CertifyApiController{
 	 * @param cityIds 市
 	 * @param areaIds 区
 	 * @param targetType 目标类型
+	 * @param isDraft 是否草稿
 	 * @return
 	 */
+	@RequestMapping(value = "/createRecommendMessage", method = RequestMethod.POST)
 	public Result createRecommendMessage(String projectIds,String personalAchievementIds,String organizationAchievementIds,
 			String personalDemandIds,String organizationDemandIds, String expertIds, String newsIds,Integer sourceType,
-			String userIds,String societyTags,String provinceIds,String cityIds,String areaIds,String industryIds,Integer targetType){
+			String userIds,String societyTags,String provinceIds,String cityIds,String areaIds,String industryIds,Integer targetType,Integer isDraft){
 		Result res = new Result();
 		if(null == sourceType){
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "必须指定推荐类型"));
@@ -125,6 +134,10 @@ public class AdminMessageController extends CertifyApiController{
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"必须制定目标群体"));
 			return res;
 		}
+		if(null == isDraft){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"必须说明是否为草稿"));
+			return res;
+		}
 		Map<Integer,String> sourceMap = new HashMap<Integer, String>();
 		if(sourceType == RecommendType.TECH_SERVICE.getTypeCode()) sourceMap.put(targetType, projectIds);
 		if(sourceType == RecommendType.PERSON_ACHIEVEMENT.getTypeCode()) sourceMap.put(targetType, personalAchievementIds);
@@ -148,39 +161,90 @@ public class AdminMessageController extends CertifyApiController{
 		}
 		if(targetType == ConsumerType.INDUSTRY.getTypeCode()) targetMap.put(targetType, industryIds);
 		if(StringUtils.isBlank(targetMap.get(targetType))){
-			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "必须定目标群体"));
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "必须定目标群体"));
 			return res;
 		}
-		messageServiceImpl.insertRecommendMessage(sourceMap,sourceType,targetMap,targetType,SubjectType.TUI_JIAN.getTypeCode());
+		messageServiceImpl.insertRecommendMessage(sourceMap,sourceType,targetMap,targetType,SubjectType.TUI_JIAN.getTypeCode(),isDraft);
 		return res;
 		
 	}
+	
 	/**
-	 * 同步绑定账号
-	 * @param uuid
-	 * @param registrationId
-	 * @param userName
+	 * 查看消息列表
+	 * @param isDraft 是否未草稿
+	 * @param subject 消息类型
+	 * @return
 	 */
-	@RequestMapping(value = "/synBindingAccount",method = RequestMethod.POST)
-	private Result synBindingAccount(String uuid,String registrationId,String userName){
-		Result result = new Result();
-		//更新 jpush_easemob_account
-		messageServiceImpl.updateJpushEasemobAccount(uuid, registrationId, userName);
-		return result;
+	@RequestMapping(value = "/listSystemMessage", method = RequestMethod.GET)
+	public Result listSystemMessage(Integer isDraft,Integer subject){
+		Result res = new Result();
+		if(null == isDraft){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "消息发送状态不能未空"));
+			return res;
+		}
+		if(null == subject){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "消息类型不能为空"));
+			return res;
+		}
+		res.setData(messageServiceImpl.listSystemMessage(isDraft, subject));
+		return res;
 	}
 	
 	/**
-	 * 读取时间
-	 * @param messageId
+	 * 更新消息
+	 * @param messageId 消息ID
+	 * @param title 消息标题
+	 * @param body 消息内容
+	 * @return
 	 */
-	@RequestMapping(value = "/readMessage",method = RequestMethod.GET)
-	private Result readMessage(String messageId){
-		Result result = new Result();
+	@RequestMapping(value = "/updateSystemMessage", method = RequestMethod.POST)
+	public Result updateSystemMessage(String messageId,String title,String body,Integer isDraft){
+		Result res = new Result();
 		if(StringUtils.isBlank(messageId)){
-			//更新message_consumer
-			messageServiceImpl.updateMessageConsumer(messageId);
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "消息编号不能为空"));
+			return res;
+		}
+		if(null == isDraft){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "消息发送状态不能未空"));
+			return res;
+		}
+		if(StringUtils.isBlank(title) || StringUtils.isBlank(body)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "消息标题和消息内容不能为空"));
+			return res;
 		}
-		return result;
+		messageServiceImpl.updateSystemMessage(messageId, title, body, isDraft);
+		return res;
+	}
+	
+	/**
+	 * 删除消息
+	 * @param messageId 消息ID
+	 * @return
+	 */
+	@RequestMapping(value = "/deleteSystemMessage", method = RequestMethod.GET)
+	public Result deleteSystemMessage(String messageId){
+		Result res = new Result();
+		if(StringUtils.isBlank(messageId)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "消息编号为空"));
+			return res;
+		}
+		messageServiceImpl.deleteSystemMessage(messageId);
+		return res;
 	}
 	
+	/**
+	 * 读取消息详情
+	 * @param messageId
+	 * @return
+	 */
+	@RequestMapping(value = "/getSystemMessageDetail", method = RequestMethod.GET)
+	public Result getSystemMessageDetail(String messageId){
+		Result res = new Result();
+		if(StringUtils.isBlank(messageId)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "消息编号为空"));
+			return res;
+		}
+		res.setData(messageServiceImpl.selectSystemMessageDetail(messageId));
+		return res;
+	}
 }

+ 36 - 0
src/main/java/com/goafanti/app/bo/IndexBo.java

@@ -0,0 +1,36 @@
+package com.goafanti.app.bo;
+
+public class IndexBo {
+	/** 最新系统消息标题 **/
+	private String sysMessageTitle;
+	/** 未读系统消息数量 **/
+	private String sysMessageUnRead;
+	/** 最新推荐消息标题 **/
+	private String recMessageTitle;
+	/** 未读推荐消息数量 **/
+	private String recMessageUnRead;
+	public String getSysMessageTitle() {
+		return sysMessageTitle;
+	}
+	public void setSysMessageTitle(String sysMessageTitle) {
+		this.sysMessageTitle = sysMessageTitle;
+	}
+	public String getSysMessageUnRead() {
+		return sysMessageUnRead;
+	}
+	public void setSysMessageUnRead(String sysMessageUnRead) {
+		this.sysMessageUnRead = sysMessageUnRead;
+	}
+	public String getRecMessageTitle() {
+		return recMessageTitle;
+	}
+	public void setRecMessageTitle(String recMessageTitle) {
+		this.recMessageTitle = recMessageTitle;
+	}
+	public String getRecMessageUnRead() {
+		return recMessageUnRead;
+	}
+	public void setRecMessageUnRead(String recMessageUnRead) {
+		this.recMessageUnRead = recMessageUnRead;
+	}
+}

+ 55 - 1
src/main/java/com/goafanti/app/controller/AppApiController.java

@@ -2,6 +2,7 @@ package com.goafanti.app.controller;
 
 import javax.servlet.http.HttpServletRequest;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -12,6 +13,7 @@ import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.BaseApiController;
 import com.goafanti.common.model.User;
 import com.goafanti.core.shiro.token.TokenManager;
+import com.goafanti.message.service.MessageService;
 import com.goafanti.user.service.UserService;
 
 @RestController
@@ -19,6 +21,8 @@ import com.goafanti.user.service.UserService;
 public class AppApiController extends BaseApiController {
 	@Autowired
 	private UserService userServiceImpl;
+	@Autowired
+	private MessageService messageServiceImpl;
 	
 	@RequestMapping(value = "/uploadImg",method = RequestMethod.POST)
 	public Result uploadAvatar(HttpServletRequest req){
@@ -55,7 +59,57 @@ public class AppApiController extends BaseApiController {
 	@RequestMapping(value = "/userInfo",method = RequestMethod.GET)
 	public Result userInfo(HttpServletRequest request){
 		Result res = new Result();
-		res.setData(userServiceImpl.selectBaseInfo(TokenManager.getUserId()));
+		res.setData(userServiceImpl.selectBaseInfo());
+		return res;
+	}
+	
+	@RequestMapping(value = "/index", method = RequestMethod.GET)
+	public Result index(){
+		Result res = new Result();
+		res.setData(messageServiceImpl.selectMessageWithGroup());
+		return res;
+	}
+	
+	@RequestMapping(value = "/listMessage", method = RequestMethod.GET)
+	public Result listMessage(Integer subject,Integer sourceType){
+		Result res = new Result();
+		if(null == subject){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "必须指定消息类型"));
+			return res;
+		}
+		res.setData(messageServiceImpl.listPersonalMessage(subject,sourceType));
+		return res;
+	}
+	
+	/**
+	 * 同步绑定账号
+	 * @param uuid
+	 * @param registrationId
+	 * @param userName
+	 */
+	@RequestMapping(value = "/synBindingAccount",method = RequestMethod.POST)
+	private Result synBindingAccount(String uuid,String registrationId,String userName){
+		Result res = new Result();
+		//更新 jpush_easemob_account
+		messageServiceImpl.updateJpushEasemobAccount(uuid, registrationId, userName);
+		return res;
+	}
+	
+	/**
+	 * 读取消息
+	 * @param messageId
+	 */
+	@RequestMapping(value = "/readMessage",method = RequestMethod.GET)
+	private Result readMessage(String messageId){
+		Result res = new Result();
+		if(StringUtils.isBlank(messageId)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "消息编号为空"));
+			return res;
+		}
+		//读取消息详情
+		res.setData(messageServiceImpl.selectSystemMessageDetail(messageId));
+		//更新message_consumer
+		messageServiceImpl.updateMessageConsumer(messageId);
 		return res;
 	}
 }

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

@@ -1,5 +1,6 @@
 package com.goafanti.common.dao;
 
+import com.goafanti.app.bo.IndexBo;
 import com.goafanti.common.model.MessageConsumer;
 import com.goafanti.common.model.MessageFromSystem;
 import com.goafanti.common.model.MessageFromSystemExample;
@@ -12,95 +13,74 @@ import org.apache.ibatis.annotations.Param;
 
 public interface MessageFromSystemMapper {
     /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table message_from_system
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    long countByExample(MessageFromSystemExample example);
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table message_from_system
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	long countByExample(MessageFromSystemExample example);
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table message_from_system
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    int deleteByExample(MessageFromSystemExample example);
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table message_from_system
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	int deleteByExample(MessageFromSystemExample example);
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table message_from_system
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    int deleteByPrimaryKey(String id);
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table message_from_system
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	int deleteByPrimaryKey(String id);
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table message_from_system
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    int insert(MessageFromSystem record);
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table message_from_system
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	int insert(MessageFromSystem record);
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table message_from_system
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    int insertSelective(MessageFromSystem record);
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table message_from_system
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	int insertSelective(MessageFromSystem record);
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table message_from_system
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    List<MessageFromSystem> selectByExample(MessageFromSystemExample example);
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table message_from_system
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	List<MessageFromSystem> selectByExample(MessageFromSystemExample example);
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table message_from_system
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    MessageFromSystem selectByPrimaryKey(String id);
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table message_from_system
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	MessageFromSystem selectByPrimaryKey(String id);
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table message_from_system
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    int updateByExampleSelective(@Param("record") MessageFromSystem record, @Param("example") MessageFromSystemExample example);
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table message_from_system
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	int updateByExampleSelective(@Param("record") MessageFromSystem record,
+			@Param("example") MessageFromSystemExample example);
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table message_from_system
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    int updateByExample(@Param("record") MessageFromSystem record, @Param("example") MessageFromSystemExample example);
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table message_from_system
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	int updateByExample(@Param("record") MessageFromSystem record, @Param("example") MessageFromSystemExample example);
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table message_from_system
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    int updateByPrimaryKeySelective(MessageFromSystem record);
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table message_from_system
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	int updateByPrimaryKeySelective(MessageFromSystem record);
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table message_from_system
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    int updateByPrimaryKey(MessageFromSystem record);
-    
-    /**
-     * 查询发送目标
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table message_from_system
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	int updateByPrimaryKey(MessageFromSystem record);
+
+	/**
+     * 查询发�?�目�?
      * @param sql
      * @return
      */
@@ -142,10 +122,10 @@ public interface MessageFromSystemMapper {
 	 * @return
 	 */
 	int updateJpushEasemobAccount(@Param("uuid")String uuid, @Param("registrationId")String registrationId, 
-			@Param("userName")String userName, @Param("uid")String uid);
+			@Param("userName")String userName, @Param("uid")String uid,@Param("lastLoginTime")Date lastLoginTime);
 	
 	/**
-	 * 把消息置为已
+	 * 把消息置为已�?
 	 * @param messageId
 	 * @param uid
 	 * @param readTime
@@ -159,5 +139,29 @@ public interface MessageFromSystemMapper {
 	 * @return
 	 */
 	List<MessageFromSystem> selectRecommendTarget(@Param("sql")String sql);
+
+	/**
+	 * 后台查看消息列表
+	 * @param isDraft
+	 * @param subject 消息类型
+	 * @return
+	 */
+	List<MessageFromSystem> listSystemMessage(@Param("isDraft")Integer isDraft,@Param("subject")Integer subject);
+
+	/**
+	 * APP首页消息
+	 * @param id (user_id or admin_id)
+	 * @return
+	 */
+	IndexBo selectMessageWithGroup(@Param("uid")String uid);
+
+	/**
+	 * 查询个人消息列表
+	 * @param subject
+	 * @param sourceType
+	 * @param uid
+	 * @return
+	 */
+	List<MessageFromSystem> listPersonalMessage(@Param("subject")Integer subject,@Param("sourceType")Integer sourceType,@Param("uid")String uid);
 	
 }

+ 162 - 30
src/main/java/com/goafanti/common/mapper/MessageFromSystemMapper.xml

@@ -5,7 +5,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Dec 14 21:04:23 CST 2017.
+      This element was generated on Wed Dec 20 08:38:46 CST 2017.
     -->
     <id column="id" jdbcType="VARCHAR" property="id" />
     <result column="creater" jdbcType="VARCHAR" property="creater" />
@@ -19,12 +19,13 @@
     <result column="resource_id" jdbcType="VARCHAR" property="resourceId" />
     <result column="resource_type" jdbcType="INTEGER" property="resourceType" />
     <result column="delete_sign" jdbcType="BIT" property="deleteSign" />
+    <result column="is_draft" jdbcType="INTEGER" property="isDraft" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Dec 14 21:04:23 CST 2017.
+      This element was generated on Wed Dec 20 08:38:46 CST 2017.
     -->
     <where>
       <foreach collection="oredCriteria" item="criteria" separator="or">
@@ -58,7 +59,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Dec 14 21:04:23 CST 2017.
+      This element was generated on Wed Dec 20 08:38:46 CST 2017.
     -->
     <where>
       <foreach collection="example.oredCriteria" item="criteria" separator="or">
@@ -92,16 +93,16 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Dec 14 21:04:23 CST 2017.
+      This element was generated on Wed Dec 20 08:38:46 CST 2017.
     -->
     id, creater, create_time, update_time, producer_id, consumer_type, title, body, subject, 
-    resource_id, resource_type, delete_sign
+    resource_id, resource_type, delete_sign, is_draft
   </sql>
   <select id="selectByExample" parameterType="com.goafanti.common.model.MessageFromSystemExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Dec 14 21:04:23 CST 2017.
+      This element was generated on Wed Dec 20 08:38:46 CST 2017.
     -->
     select
     <if test="distinct">
@@ -120,7 +121,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Dec 14 21:04:23 CST 2017.
+      This element was generated on Wed Dec 20 08:38:46 CST 2017.
     -->
     select 
     <include refid="Base_Column_List" />
@@ -131,7 +132,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Dec 14 21:04:23 CST 2017.
+      This element was generated on Wed Dec 20 08:38:46 CST 2017.
     -->
     delete from message_from_system
     where id = #{id,jdbcType=VARCHAR}
@@ -140,7 +141,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Dec 14 21:04:23 CST 2017.
+      This element was generated on Wed Dec 20 08:38:46 CST 2017.
     -->
     delete from message_from_system
     <if test="_parameter != null">
@@ -151,24 +152,24 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Dec 14 21:04:23 CST 2017.
+      This element was generated on Wed Dec 20 08:38:46 CST 2017.
     -->
     insert into message_from_system (id, creater, create_time, 
       update_time, producer_id, consumer_type, 
       title, body, subject, 
-      resource_id, resource_type, delete_sign
-      )
+      resource_id, resource_type, delete_sign, 
+      is_draft)
     values (#{id,jdbcType=VARCHAR}, #{creater,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, 
       #{updateTime,jdbcType=TIMESTAMP}, #{producerId,jdbcType=VARCHAR}, #{consumerType,jdbcType=INTEGER}, 
       #{title,jdbcType=VARCHAR}, #{body,jdbcType=VARCHAR}, #{subject,jdbcType=INTEGER}, 
-      #{resourceId,jdbcType=VARCHAR}, #{resourceType,jdbcType=INTEGER}, #{deleteSign,jdbcType=BIT}
-      )
+      #{resourceId,jdbcType=VARCHAR}, #{resourceType,jdbcType=INTEGER}, #{deleteSign,jdbcType=BIT}, 
+      #{isDraft,jdbcType=INTEGER})
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.MessageFromSystem">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Dec 14 21:04:23 CST 2017.
+      This element was generated on Wed Dec 20 08:38:46 CST 2017.
     -->
     insert into message_from_system
     <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -208,6 +209,9 @@
       <if test="deleteSign != null">
         delete_sign,
       </if>
+      <if test="isDraft != null">
+        is_draft,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -246,13 +250,16 @@
       <if test="deleteSign != null">
         #{deleteSign,jdbcType=BIT},
       </if>
+      <if test="isDraft != null">
+        #{isDraft,jdbcType=INTEGER},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.goafanti.common.model.MessageFromSystemExample" resultType="java.lang.Long">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Dec 14 21:04:23 CST 2017.
+      This element was generated on Wed Dec 20 08:38:46 CST 2017.
     -->
     select count(*) from message_from_system
     <if test="_parameter != null">
@@ -263,7 +270,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Dec 14 21:04:23 CST 2017.
+      This element was generated on Wed Dec 20 08:38:46 CST 2017.
     -->
     update message_from_system
     <set>
@@ -303,6 +310,9 @@
       <if test="record.deleteSign != null">
         delete_sign = #{record.deleteSign,jdbcType=BIT},
       </if>
+      <if test="record.isDraft != null">
+        is_draft = #{record.isDraft,jdbcType=INTEGER},
+      </if>
     </set>
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -312,7 +322,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Dec 14 21:04:23 CST 2017.
+      This element was generated on Wed Dec 20 08:38:46 CST 2017.
     -->
     update message_from_system
     set id = #{record.id,jdbcType=VARCHAR},
@@ -326,7 +336,8 @@
       subject = #{record.subject,jdbcType=INTEGER},
       resource_id = #{record.resourceId,jdbcType=VARCHAR},
       resource_type = #{record.resourceType,jdbcType=INTEGER},
-      delete_sign = #{record.deleteSign,jdbcType=BIT}
+      delete_sign = #{record.deleteSign,jdbcType=BIT},
+      is_draft = #{record.isDraft,jdbcType=INTEGER}
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
@@ -335,7 +346,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Dec 14 21:04:23 CST 2017.
+      This element was generated on Wed Dec 20 08:38:46 CST 2017.
     -->
     update message_from_system
     <set>
@@ -372,6 +383,9 @@
       <if test="deleteSign != null">
         delete_sign = #{deleteSign,jdbcType=BIT},
       </if>
+      <if test="isDraft != null">
+        is_draft = #{isDraft,jdbcType=INTEGER},
+      </if>
     </set>
     where id = #{id,jdbcType=VARCHAR}
   </update>
@@ -379,7 +393,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Thu Dec 14 21:04:23 CST 2017.
+      This element was generated on Wed Dec 20 08:38:46 CST 2017.
     -->
     update message_from_system
     set creater = #{creater,jdbcType=VARCHAR},
@@ -392,13 +406,14 @@
       subject = #{subject,jdbcType=INTEGER},
       resource_id = #{resourceId,jdbcType=VARCHAR},
       resource_type = #{resourceType,jdbcType=INTEGER},
-      delete_sign = #{deleteSign,jdbcType=BIT}
+      delete_sign = #{deleteSign,jdbcType=BIT},
+      is_draft = #{isDraft,jdbcType=INTEGER}
     where id = #{id,jdbcType=VARCHAR}
   </update>
   <insert id="insertBatchProducer" parameterType="com.goafanti.common.model.MessageProducer">
   	insert into message_producer (id,consumer_id,message_id)
     values 
-    <foreach item="item" index="index" collection="list" separator=",">
+    <foreach collection="list" index="index" item="item" separator=",">
       (
       	#{item.id,jdbcType=VARCHAR},#{item.consumerId,jdbcType=VARCHAR},#{item.messageId,jdbcType=VARCHAR}
       )
@@ -407,7 +422,7 @@
   <insert id="insertBatchConsumer" parameterType="com.goafanti.common.model.MessageConsumer">
   	insert into message_consumer (id,consumer_id,message_id)
     values 
-    <foreach item="item" index="index" collection="list" separator=",">
+    <foreach collection="list" index="index" item="item" separator=",">
       (
       	#{item.id,jdbcType=VARCHAR},#{item.consumerId,jdbcType=VARCHAR},#{item.messageId,jdbcType=VARCHAR}
       )
@@ -418,16 +433,21 @@
 			a.id,
 			a.message_id as messageId,
 			b.registration_id as registrationId
+			c.resource_id as resourceId
 		from
-			message_producer a left join jpush_easemob_account b on
-			a.consumer_id = b.uid
+			message_producer a 
+		left join 
+			jpush_easemob_account b on a.consumer_id = b.uid
+		left join
+			message_from_system c on a.message_id = c.id
 		where
-			a.message_id is not null
-			and a.send_time is null
-			and a.consumer_id = #{uid,jdbcType=VARCHAR};
+			a.consumer_id = #{uid,jdbcType=VARCHAR}
+			and a.send_time is null <!-- 未发送 -->
+			and c.is_draft = 0 <!-- 非草稿 -->
+			and c.delete_sign = false <!-- 未删除 -->
    </select>
    
-   <update id="updateJpushEasemobAccount" parameterType="java.lang.String">
+   <update id="updateJpushEasemobAccount">
    		update jpush_easemob_account
    		<set>
    			<if test="uuid != null and uuid != ''">
@@ -439,6 +459,9 @@
    			<if test="userName != null and userName != ''">
    				username = #{userName,jdbcType=VARCHAR}
    			</if>
+   			<if test="lastLoginTime != null">
+   				last_login_time = #{lastLoginTime,jdbcType=TIMESTAMP}
+   			</if>
    			where uid = #{uid,jdbcType=VARCHAR}
    		</set>
    </update>
@@ -457,4 +480,113 @@
    <select id="selectRecommendTarget" parameterType="java.lang.String" resultType="com.goafanti.common.model.MessageFromSystem">
    	 	#{sql,jdbcType=VARCHAR}
    </select>
+   
+   <select id="listSystemMessage"  resultMap="BaseResultMap">
+		select
+			a.id,
+			a.create_time,
+			a.creater,
+			a.consumer_type,
+			a.resource_type,
+			a.title,
+			a.body
+		from
+			message_from_system a
+		where
+			a.subject = #{subject,jdbcType=INTEGER}
+			and a.is_draft = #{isDraft,jdbcType=INTEGER}
+			and a.delete_sign = false 
+   </select>
+   
+   <select id="selectMessageWithGroup" resultType="com.goafanti.app.bo.IndexBo">
+	select
+		x.*,y.*
+	from
+		(
+			select
+				t1.sysMessageTitle,
+				t2.sysMessageUnRead
+			from
+				(
+					select
+						title as sysMessageTitle,
+						1 as nouse
+					from
+						message_consumer a left join message_from_system b on
+						a.message_id = b.id
+					where
+						consumer_id = #{uid,jdbcType=VARCHAR}
+						and a.read_time is not null
+					<!-- and a.delete_sign = false -->
+						and b.subject = 1
+					order by
+						a.create_time desc limit 1
+				) t1 right join(
+					select
+						count(*) as sysMessageUnRead,
+						1 as nouse
+					from
+						message_consumer a left join message_from_system b on
+						a.message_id = b.id
+					where
+						consumer_id = #{uid,jdbcType=VARCHAR}
+						and a.read_time is not null
+					<!-- and a.delete_sign = false -->
+						and b.subject = 1
+				) t2 on
+				t1.nouse = t2.nouse
+		) x,
+		(
+			select
+				t3.recMessageTitle,
+				t4.recMessageUnRead
+			from
+				(
+					select
+						title as recMessageTitle,
+						1 as nouse
+					from
+						message_consumer a left join message_from_system b on
+						a.message_id = b.id
+					where
+						consumer_id = #{uid,jdbcType=VARCHAR}
+						and a.read_time is not null
+					<!-- and a.delete_sign = false -->
+						and b.subject = 2
+					order by
+						a.create_time desc limit 1
+				) t3 right join(
+					select
+						count(*) as recMessageUnRead,
+						1 as nouse
+					from
+						message_consumer a left join message_from_system b on
+						a.message_id = b.id
+					where
+						consumer_id = #{uid,jdbcType=VARCHAR}
+						and a.read_time is not null
+					<!-- and a.delete_sign = false -->
+						and b.subject = 2
+				) t4 on
+				t3.nouse = t4.nouse
+		) y
+   </select>
+   
+   <select id="listPersonalMessage" resultMap="BaseResultMap">
+		select
+			b.title,b.create_time,b.subject
+		from
+			message_consumer a left join message_from_system b on
+			a.message_id = b.id
+		where
+			a.consumer_id = #{uid,jdbcType=VARCHAR}
+			and a.delete_sign = false
+			<if test="subject != null">
+				and b.subject = #{subject,jdbcType=INTEGER}
+			</if>
+			<if test="resourceType != null">
+				and b.resource_type = #{resourceType,jdbcType=INTEGER}
+			</if>
+   </select>
+
 </mapper>

+ 299 - 394
src/main/java/com/goafanti/common/model/MessageFromSystem.java

@@ -3,399 +3,304 @@ package com.goafanti.common.model;
 import java.util.Date;
 
 public class MessageFromSystem {
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column message_from_system.id
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    private String id;
 
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column message_from_system.creater
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    private String creater;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column message_from_system.create_time
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    private Date createTime;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column message_from_system.update_time
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    private Date updateTime;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column message_from_system.producer_id
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    private String producerId;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column message_from_system.consumer_type
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    private Integer consumerType;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column message_from_system.title
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    private String title;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column message_from_system.body
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    private String body;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column message_from_system.subject
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    private Integer subject;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column message_from_system.resource_id
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    private String resourceId;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column message_from_system.resource_type
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    private Integer resourceType;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column message_from_system.delete_sign
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    private Boolean deleteSign;
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column message_from_system.id
-     *
-     * @return the value of message_from_system.id
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public String getId() {
-        return id;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column message_from_system.id
-     *
-     * @param id the value for message_from_system.id
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column message_from_system.creater
-     *
-     * @return the value of message_from_system.creater
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public String getCreater() {
-        return creater;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column message_from_system.creater
-     *
-     * @param creater the value for message_from_system.creater
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public void setCreater(String creater) {
-        this.creater = creater;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column message_from_system.create_time
-     *
-     * @return the value of message_from_system.create_time
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column message_from_system.create_time
-     *
-     * @param createTime the value for message_from_system.create_time
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column message_from_system.update_time
-     *
-     * @return the value of message_from_system.update_time
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public Date getUpdateTime() {
-        return updateTime;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column message_from_system.update_time
-     *
-     * @param updateTime the value for message_from_system.update_time
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public void setUpdateTime(Date updateTime) {
-        this.updateTime = updateTime;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column message_from_system.producer_id
-     *
-     * @return the value of message_from_system.producer_id
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public String getProducerId() {
-        return producerId;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column message_from_system.producer_id
-     *
-     * @param producerId the value for message_from_system.producer_id
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public void setProducerId(String producerId) {
-        this.producerId = producerId;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column message_from_system.consumer_type
-     *
-     * @return the value of message_from_system.consumer_type
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public Integer getConsumerType() {
-        return consumerType;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column message_from_system.consumer_type
-     *
-     * @param consumerType the value for message_from_system.consumer_type
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public void setConsumerType(Integer consumerType) {
-        this.consumerType = consumerType;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column message_from_system.title
-     *
-     * @return the value of message_from_system.title
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public String getTitle() {
-        return title;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column message_from_system.title
-     *
-     * @param title the value for message_from_system.title
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public void setTitle(String title) {
-        this.title = title;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column message_from_system.body
-     *
-     * @return the value of message_from_system.body
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public String getBody() {
-        return body;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column message_from_system.body
-     *
-     * @param body the value for message_from_system.body
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public void setBody(String body) {
-        this.body = body;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column message_from_system.subject
-     *
-     * @return the value of message_from_system.subject
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public Integer getSubject() {
-        return subject;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column message_from_system.subject
-     *
-     * @param subject the value for message_from_system.subject
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public void setSubject(Integer subject) {
-        this.subject = subject;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column message_from_system.resource_id
-     *
-     * @return the value of message_from_system.resource_id
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public String getResourceId() {
-        return resourceId;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column message_from_system.resource_id
-     *
-     * @param resourceId the value for message_from_system.resource_id
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public void setResourceId(String resourceId) {
-        this.resourceId = resourceId;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column message_from_system.resource_type
-     *
-     * @return the value of message_from_system.resource_type
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public Integer getResourceType() {
-        return resourceType;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column message_from_system.resource_type
-     *
-     * @param resourceType the value for message_from_system.resource_type
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public void setResourceType(Integer resourceType) {
-        this.resourceType = resourceType;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column message_from_system.delete_sign
-     *
-     * @return the value of message_from_system.delete_sign
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public Boolean getDeleteSign() {
-        return deleteSign;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column message_from_system.delete_sign
-     *
-     * @param deleteSign the value for message_from_system.delete_sign
-     *
-     * @mbg.generated Thu Dec 14 21:04:23 CST 2017
-     */
-    public void setDeleteSign(Boolean deleteSign) {
-        this.deleteSign = deleteSign;
-    }
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column message_from_system.id
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	private String id;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column message_from_system.creater
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	private String creater;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column message_from_system.create_time
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	private Date createTime;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column message_from_system.update_time
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	private Date updateTime;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column message_from_system.producer_id
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	private String producerId;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column message_from_system.consumer_type
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	private Integer consumerType;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column message_from_system.title
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	private String title;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column message_from_system.body
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	private String body;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column message_from_system.subject
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	private Integer subject;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column message_from_system.resource_id
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	private String resourceId;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column message_from_system.resource_type
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	private Integer resourceType;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column message_from_system.delete_sign
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	private Boolean deleteSign;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column message_from_system.is_draft
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	private Integer isDraft;
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column message_from_system.id
+	 * @return  the value of message_from_system.id
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column message_from_system.id
+	 * @param id  the value for message_from_system.id
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public void setId(String id) {
+		this.id = id;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column message_from_system.creater
+	 * @return  the value of message_from_system.creater
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public String getCreater() {
+		return creater;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column message_from_system.creater
+	 * @param creater  the value for message_from_system.creater
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public void setCreater(String creater) {
+		this.creater = creater;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column message_from_system.create_time
+	 * @return  the value of message_from_system.create_time
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column message_from_system.create_time
+	 * @param createTime  the value for message_from_system.create_time
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column message_from_system.update_time
+	 * @return  the value of message_from_system.update_time
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public Date getUpdateTime() {
+		return updateTime;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column message_from_system.update_time
+	 * @param updateTime  the value for message_from_system.update_time
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public void setUpdateTime(Date updateTime) {
+		this.updateTime = updateTime;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column message_from_system.producer_id
+	 * @return  the value of message_from_system.producer_id
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public String getProducerId() {
+		return producerId;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column message_from_system.producer_id
+	 * @param producerId  the value for message_from_system.producer_id
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public void setProducerId(String producerId) {
+		this.producerId = producerId;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column message_from_system.consumer_type
+	 * @return  the value of message_from_system.consumer_type
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public Integer getConsumerType() {
+		return consumerType;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column message_from_system.consumer_type
+	 * @param consumerType  the value for message_from_system.consumer_type
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public void setConsumerType(Integer consumerType) {
+		this.consumerType = consumerType;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column message_from_system.title
+	 * @return  the value of message_from_system.title
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public String getTitle() {
+		return title;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column message_from_system.title
+	 * @param title  the value for message_from_system.title
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public void setTitle(String title) {
+		this.title = title;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column message_from_system.body
+	 * @return  the value of message_from_system.body
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public String getBody() {
+		return body;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column message_from_system.body
+	 * @param body  the value for message_from_system.body
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public void setBody(String body) {
+		this.body = body;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column message_from_system.subject
+	 * @return  the value of message_from_system.subject
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public Integer getSubject() {
+		return subject;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column message_from_system.subject
+	 * @param subject  the value for message_from_system.subject
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public void setSubject(Integer subject) {
+		this.subject = subject;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column message_from_system.resource_id
+	 * @return  the value of message_from_system.resource_id
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public String getResourceId() {
+		return resourceId;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column message_from_system.resource_id
+	 * @param resourceId  the value for message_from_system.resource_id
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public void setResourceId(String resourceId) {
+		this.resourceId = resourceId;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column message_from_system.resource_type
+	 * @return  the value of message_from_system.resource_type
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public Integer getResourceType() {
+		return resourceType;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column message_from_system.resource_type
+	 * @param resourceType  the value for message_from_system.resource_type
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public void setResourceType(Integer resourceType) {
+		this.resourceType = resourceType;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column message_from_system.delete_sign
+	 * @return  the value of message_from_system.delete_sign
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public Boolean getDeleteSign() {
+		return deleteSign;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column message_from_system.delete_sign
+	 * @param deleteSign  the value for message_from_system.delete_sign
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public void setDeleteSign(Boolean deleteSign) {
+		this.deleteSign = deleteSign;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column message_from_system.is_draft
+	 * @return  the value of message_from_system.is_draft
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public Integer getIsDraft() {
+		return isDraft;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column message_from_system.is_draft
+	 * @param isDraft  the value for message_from_system.is_draft
+	 * @mbg.generated  Wed Dec 20 08:38:46 CST 2017
+	 */
+	public void setIsDraft(Integer isDraft) {
+		this.isDraft = isDraft;
+	}
 }

File diff suppressed because it is too large
+ 1082 - 1063
src/main/java/com/goafanti/common/model/MessageFromSystemExample.java


+ 5 - 3
src/main/java/com/goafanti/message/JGMessageHelper.java

@@ -46,8 +46,8 @@ public class JGMessageHelper implements InitializingBean, DisposableBean{
 	private static final int EXCEED_THE_LIMIT = 429;//超过频率限制
 	private static final Logger logger = LoggerFactory.getLogger(JGMessageHelper.class);
 	private static final int MAX_TRYCOUNT = 3;
-	private static final String SEND_NO = "SEND_NO";//消息流水记录
-	
+	private static final String MESSAGE_ID = "MESSAGE_ID";//消息ID
+	private static final String RESOURCE_ID =  "RESOURCE_ID";//资源ID
 	public void send(MessageAdapter messageAdapter){
 		ClientConfig clientConfig = ClientConfig.getInstance();
 	    String host = (String) clientConfig.get(ClientConfig.PUSH_HOST_NAME);
@@ -92,7 +92,9 @@ public class JGMessageHelper implements InitializingBean, DisposableBean{
 			.setMessage(Message.newBuilder()
 					.setTitle(mb.getMessageTitle())
 					.setMsgContent(mb.getMessageBody())
-					.addExtra(SEND_NO,mb.getExtra()).build())
+					.addExtra(MESSAGE_ID,mb.getMessageId())
+					.addExtra(RESOURCE_ID, mb.getResourceId())
+					.build())
 			.build());
 		send(ma);
 	}

+ 7 - 6
src/main/java/com/goafanti/message/bo/MessageBo.java

@@ -23,8 +23,9 @@ public class MessageBo{
 	private String messageTitle;
 	/** 消息体 **/
 	private String messageBody; 
-	/** 业务字段 **/
-	private String extra;
+	/** 资源ID **/
+	private String resourceId; 
+
 	public String getId() {
 		return id;
 	}
@@ -85,10 +86,10 @@ public class MessageBo{
 	public void setMessageBody(String messageBody) {
 		this.messageBody = messageBody;
 	}
-	public String getExtra() {
-		return extra;
+	public String getResourceId() {
+		return resourceId;
 	}
-	public void setExtra(String extra) {
-		this.extra = extra;
+	public void setResourceId(String resourceId) {
+		this.resourceId = resourceId;
 	}
 }

+ 5 - 0
src/main/java/com/goafanti/message/controller/MessageApiController.java

@@ -0,0 +1,5 @@
+package com.goafanti.message.controller;
+
+public class MessageApiController {
+
+}

+ 48 - 3
src/main/java/com/goafanti/admin/service/MessageService.java

@@ -1,9 +1,10 @@
-package com.goafanti.admin.service;
+package com.goafanti.message.service;
 
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
+import com.goafanti.app.bo.IndexBo;
 import com.goafanti.common.model.MessageConsumer;
 import com.goafanti.common.model.MessageFromSystem;
 import com.goafanti.common.model.MessageProducer;
@@ -41,7 +42,7 @@ public interface MessageService {
 	 * @param subject
 	 * @return
 	 */
-	int insertSystemMessage(Map<Integer, String> targetMap, String title, String body, Integer subject,Integer targetType,Date createTime);
+	int insertSystemMessage(Map<Integer, String> targetMap,Integer targetType,String title, String body, Integer subject,Date createTime,Integer isDraft);
 	
 	/**
 	 * 查询用户的未发消息
@@ -94,5 +95,49 @@ public interface MessageService {
 	 * @param subject
 	 * @return
 	 */
-	public int insertRecommendMessage(Map<Integer, String> sourceMap, Integer sourceType, Map<Integer, String> targetMap,Integer targetType,Integer subject);
+	public int insertRecommendMessage(Map<Integer, String> sourceMap, Integer sourceType, Map<Integer, String> targetMap,Integer targetType,Integer subject,Integer isDraft);
+	
+	/**
+	 * 系统消息列表
+	 * @param isDraft
+	 * @return
+	 */
+	List<MessageFromSystem> listSystemMessage(Integer isDraft,Integer subject);
+	
+	/**
+	 * 更新消息
+	 * @param messageId
+	 * @param title
+	 * @param body
+	 * @return
+	 */
+	int updateSystemMessage(String messageId, String title, String body,Integer isDraft);
+	
+	/**
+	 * 删除消息
+	 * @param messageId
+	 * @return
+	 */
+	int deleteSystemMessage(String messageId);
+	
+	/**
+	 * 首页消息归类
+	 * @return
+	 */
+	IndexBo selectMessageWithGroup();
+	
+	/**
+	 * 读取个人消息列表
+	 * @param subject 消息类型
+	 * @param sourceType 推荐类型
+	 * @return
+	 */
+	List<MessageFromSystem> listPersonalMessage(Integer subject,Integer sourceType);
+	
+	/**
+	 * 查看消息详情
+	 * @param messageId
+	 * @return
+	 */
+	MessageFromSystem selectSystemMessageDetail(String messageId);
 }

+ 68 - 15
src/main/java/com/goafanti/admin/service/impl/MessageServiceImpl.java

@@ -1,4 +1,4 @@
-package com.goafanti.admin.service.impl;
+package com.goafanti.message.service.impl;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -12,18 +12,20 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import com.goafanti.admin.service.MessageService;
+import com.goafanti.app.bo.IndexBo;
 import com.goafanti.common.dao.MessageFromSystemMapper;
 import com.goafanti.common.dao.MessageProducerMapper;
 import com.goafanti.common.model.Admin;
 import com.goafanti.common.model.MessageConsumer;
 import com.goafanti.common.model.MessageFromSystem;
 import com.goafanti.common.model.MessageProducer;
+import com.goafanti.common.model.User;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.message.bo.MessageBo;
 import com.goafanti.message.enums.ConsumerType;
 import com.goafanti.message.enums.RecommendType;
 import com.goafanti.message.enums.SubjectType;
+import com.goafanti.message.service.MessageService;
 
 @Service
 public class MessageServiceImpl implements MessageService{
@@ -100,19 +102,19 @@ public class MessageServiceImpl implements MessageService{
 	@Override
 	public List<MessageFromSystem> selectRecommend(Map<Integer, String> selectMap,Integer type){
 		String sql = "";
-		if(selectMap.containsKey(RecommendType.TECH_SERVICE.getTypeCode())){
+		if(selectMap.containsKey(RecommendType.TECH_SERVICE.getTypeCode())){ //科技服务
 			sql = "select project_name as title,project_des as body,id as resourceId from tech_project where id in (" + selectMap.get(RecommendType.TECH_SERVICE.getTypeCode()) + ")";
-		}else if(selectMap.containsKey(RecommendType.PERSON_ACHIEVEMENT.getTypeCode())){
+		}else if(selectMap.containsKey(RecommendType.PERSON_ACHIEVEMENT.getTypeCode())){ //个人成果
 			sql = "select name as title,summary as body,id as resourceIdfrom achievement  where id in (" + selectMap.get(RecommendType.PERSON_ACHIEVEMENT.getTypeCode())  +")";
-		}else if(selectMap.containsKey(RecommendType.ORGANIZATION_ACHIEVEMENT.getTypeCode())){
+		}else if(selectMap.containsKey(RecommendType.ORGANIZATION_ACHIEVEMENT.getTypeCode())){ //组织成果
 			sql = "select name as title,summary as body,id as resourceId from achievement  where id in (" + selectMap.get(RecommendType.ORGANIZATION_ACHIEVEMENT.getTypeCode())  +")";
-		}else if(selectMap.containsKey(RecommendType.PERSONAL_DEMAND.getTypeCode())){
+		}else if(selectMap.containsKey(RecommendType.PERSONAL_DEMAND.getTypeCode())){ //个人需求
 			sql = "select name as title,problem_des as body,id as resourceId from demand where id in (" + selectMap.get(RecommendType.PERSONAL_DEMAND.getTypeCode()) +")";
-		}else if(selectMap.containsKey(RecommendType.ORGANIZATION_DEMAND.getTypeCode())){
+		}else if(selectMap.containsKey(RecommendType.ORGANIZATION_DEMAND.getTypeCode())){ //组织需求
 			sql = "select name as title,problem_des as body,id as resourceId from demand where id in (" + selectMap.get(RecommendType.ORGANIZATION_DEMAND.getTypeCode()) +")";
-		}else if(selectMap.containsKey(RecommendType.EXPERT.getTypeCode())){
+		}else if(selectMap.containsKey(RecommendType.EXPERT.getTypeCode())){ //专家
 			sql = "select nickname as title ,introduction as body,id as resourceId from user where id in("+ selectMap.get(RecommendType.EXPERT.getTypeCode()) +")";
-		}else if(selectMap.containsKey(RecommendType.NEWS.getTypeCode())){
+		}else if(selectMap.containsKey(RecommendType.NEWS.getTypeCode())){ //政策
 			sql = "select title,summary as body,id as resourceId from news where id in("+ selectMap.get(RecommendType.NEWS.getTypeCode()) +")";
 		}
 		if(!sql.equals("")) return messageFromSystemMapper.selectRecommendTarget(sql);
@@ -120,14 +122,17 @@ public class MessageServiceImpl implements MessageService{
 	}
 	
 	@Override
-	public int insertSystemMessage(Map<Integer, String> selectMap, String title, String body, Integer subject,Integer type,Date createTime) {
+	@Transactional
+	public int insertSystemMessage(Map<Integer, String> targetMap, Integer targetType,String title, String body, 
+			Integer subject,Date createTime,Integer isDraft) {
 		MessageFromSystem mfs = new MessageFromSystem();
 		mfs.setId(UUID.randomUUID().toString());
 		mfs.setTitle(title);
 		mfs.setBody(body);
 		mfs.setCreateTime(createTime);
 		mfs.setSubject(subject);
-		mfs.setConsumerType(type);
+		mfs.setConsumerType(targetType);
+		mfs.setIsDraft(isDraft);
 		if(SecurityUtils.getSubject().getPrincipal() instanceof Admin){
 			Admin admin = (Admin)SecurityUtils.getSubject().getPrincipal();
 			mfs.setCreater(admin.getName());
@@ -137,7 +142,7 @@ public class MessageServiceImpl implements MessageService{
 		List<MessageProducer> target = new ArrayList<MessageProducer>();
 		String[] cids;
 		if(subject == SubjectType.KE_HU.getTypeCode()){
-			cids = selectSendUser(selectMap,type).split(",");
+			cids = selectSendUser(targetMap,targetType).split(",");
 			MessageProducer mp;
 			for(String cid : cids){
 				mp = new MessageProducer();
@@ -147,7 +152,7 @@ public class MessageServiceImpl implements MessageService{
 			}
 			insertBatchProducer(target);
 		}else if(subject == SubjectType.YUN_YING.getTypeCode()){
-			cids = selectSendAdmin(selectMap,type).split(",");
+			cids = selectSendAdmin(targetMap,targetType).split(",");
 			MessageProducer mp;
 			for(String cid : cids){
 				mp = new MessageProducer();
@@ -162,7 +167,8 @@ public class MessageServiceImpl implements MessageService{
 	
 	@Override
 	@Transactional
-	public int insertRecommendMessage(Map<Integer, String> sourceMap, Integer sourceType, Map<Integer, String> targetMap,Integer targetType,Integer subject) {
+	public int insertRecommendMessage(Map<Integer, String> sourceMap, Integer sourceType, Map<Integer, String> targetMap,
+			Integer targetType,Integer subject,Integer isDraft) {
 		List<MessageFromSystem> mfsList = selectRecommend(sourceMap, sourceType);
 		List<MessageProducer> producerTarget = new ArrayList<MessageProducer>();
 		List<MessageFromSystem> messageTarget = new ArrayList<MessageFromSystem>();
@@ -175,6 +181,7 @@ public class MessageServiceImpl implements MessageService{
 			message.setSubject(subject);
 			message.setConsumerType(targetType);
 			message.setResourceType(sourceType);
+			message.setIsDraft(isDraft);
 			if(SecurityUtils.getSubject().getPrincipal() instanceof Admin){
 				Admin admin = (Admin)SecurityUtils.getSubject().getPrincipal();
 				message.setCreater(admin.getName());
@@ -234,7 +241,7 @@ public class MessageServiceImpl implements MessageService{
 
 	@Override
 	public int updateJpushEasemobAccount(String uuid, String registrationId, String userName) {
-		return messageFromSystemMapper.updateJpushEasemobAccount(uuid, registrationId,userName,TokenManager.getUserId());
+		return messageFromSystemMapper.updateJpushEasemobAccount(uuid, registrationId,userName,TokenManager.getUserId(),new Date());
 	}
 
 	@Override
@@ -242,4 +249,50 @@ public class MessageServiceImpl implements MessageService{
 		return messageFromSystemMapper.updateMessageConsumer(messageId, TokenManager.getUserId() , new Date());
 	}
 
+	@Override
+	public List<MessageFromSystem> listSystemMessage(Integer isDraft,Integer subject) {
+		return messageFromSystemMapper.listSystemMessage(isDraft,subject);
+	}
+
+	@Override
+	public int updateSystemMessage(String messageId, String title, String body, Integer isDraft) {
+		MessageFromSystem mfs = new MessageFromSystem();
+		mfs.setId(messageId);
+		mfs.setTitle(title);
+		mfs.setBody(body);
+		mfs.setIsDraft(isDraft);
+		return messageFromSystemMapper.updateByPrimaryKeySelective(mfs);
+	}
+
+	@Override
+	public int deleteSystemMessage(String messageId) {
+		MessageFromSystem mfs = new MessageFromSystem();
+		mfs.setDeleteSign(Boolean.TRUE);
+		mfs.setId(messageId);
+		return messageFromSystemMapper.updateByPrimaryKeySelective(mfs);
+	}
+
+	@Override
+	public IndexBo selectMessageWithGroup() {
+		if(TokenManager.getToken() instanceof Admin){
+			return messageFromSystemMapper.selectMessageWithGroup(TokenManager.getAdminId());
+		}else if(TokenManager.getToken()  instanceof User){
+			return messageFromSystemMapper.selectMessageWithGroup(TokenManager.getUserId());
+		}
+		return null;
+	}
+
+	@Override
+	public List<MessageFromSystem> listPersonalMessage(Integer subject, Integer sourceType) {
+		if(subject == SubjectType.KE_HU.getTypeCode() || subject == SubjectType.TUI_JIAN.getTypeCode()){
+			return messageFromSystemMapper.listPersonalMessage(subject, sourceType,TokenManager.getUserId()); 
+		}
+		return null;
+	}
+
+	@Override
+	public MessageFromSystem selectSystemMessageDetail(String messageId) {
+		return messageFromSystemMapper.selectByPrimaryKey(messageId);
+	}
+
 }

+ 3 - 2
src/main/java/com/goafanti/user/controller/UserLoginController.java

@@ -23,7 +23,6 @@ import org.springframework.web.servlet.view.RedirectView;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.goafanti.admin.service.MessageService;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.BaseController;
@@ -36,6 +35,7 @@ import com.goafanti.common.utils.VerifyCodeUtils;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.message.JGMessageHelper;
 import com.goafanti.message.bo.MessageBo;
+import com.goafanti.message.service.MessageService;
 import com.goafanti.user.service.UserService;
 
 @Controller
@@ -161,7 +161,8 @@ public class UserLoginController extends BaseController {
 				messageServiceImpl.updateMessageProducer(producers);
 				//新增 message_consumer
 				messageServiceImpl.insertBatchConsumer(consumers);
-			}	
+			}
+			messageServiceImpl.updateJpushEasemobAccount(null, null, null);
 		}
 	}
 }

+ 1 - 1
src/main/java/com/goafanti/user/controller/UserRegisterController.java

@@ -19,7 +19,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import com.alibaba.fastjson.JSONObject;
 import com.goafanti.admin.service.AdminService;
-import com.goafanti.admin.service.MessageService;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.constant.ErrorConstants;
@@ -33,6 +32,7 @@ import com.goafanti.common.utils.VerifyCodeUtils;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.easemob.EasemobUtils;
 import com.goafanti.easemob.bo.EasemobInfo;
+import com.goafanti.message.service.MessageService;
 import com.goafanti.user.bo.InputUser;
 import com.goafanti.user.service.UserService;
 

+ 1 - 1
src/main/java/com/goafanti/user/service/UserService.java

@@ -61,5 +61,5 @@ public interface UserService {
 
 	List<UserPartnerDetailBo> findUserPartner();
 
-	UserBasicInfo selectBaseInfo(String id);
+	UserBasicInfo selectBaseInfo();
 }

+ 3 - 2
src/main/java/com/goafanti/user/service/impl/UserServiceImpl.java

@@ -356,8 +356,9 @@ public class UserServiceImpl extends BaseMybatisDao<UserMapper> implements UserS
 	}
 
 	@Override
-	public UserBasicInfo selectBaseInfo(String id) {
-		return userMapper.selectBaseInfo(id);
+	public UserBasicInfo selectBaseInfo() {
+		if(TokenManager.getToken() instanceof User)return userMapper.selectBaseInfo(TokenManager.getUserId());
+		return null;
 	}
 
 }