fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java
@@ -253,12 +253,8 @@ */ @RequestMapping(value = "getUnReadMsgCount", method = RequestMethod.POST) public void getUnReadMsgCount(AcceptData acceptData, Long uid, PrintWriter out) { if (uid == null) { out.print(JsonUtil.loadFalseResult(1, "用户未登录")); return; } UserMsgUnReadNum num = userMsgReadStateService.getReadStateByUid(uid); int deviceCount = msgDeviceReadStateService.getUnReadCount(acceptData.getDevice(), "android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2); GsonBuilder androidBuilder = new GsonBuilder().registerTypeAdapter(Integer.class, new JsonSerializer<Integer>() { @Override @@ -273,8 +269,42 @@ } } }); if (uid == null) { // 如果用户未登录就读取设备消息 UserMsgUnReadNum num = new UserMsgUnReadNum(); num.setTypeAccount(0); num.setTypeInvite(0); num.setTypeMoney(0); num.setTypeOrder(0); num.setTypeOther(0); num.setTypeScore(0); num.setTypeSystem(0); JSONObject data = null; if ("android".equalsIgnoreCase(acceptData.getPlatform())) { data = JSONObject .fromObject(androidBuilder.excludeFieldsWithoutExposeAnnotation().create().toJson(num)); } else { data = JSONObject.fromObject(JsonUtil.getApiCommonGson().toJson(num)); } data.put("totalCount", deviceCount); try { UserSettingsVO vo = userCustomSettingsService.getMySettings(uid); if (vo != null && vo.getNoNewsRedDot() != null && vo.getNoNewsRedDot() == 1) { data.put("totalCount", 0); } } catch (UserCustomSettingsException e) { e.printStackTrace(); } out.print(JsonUtil.loadTrueResult(data)); return; } UserMsgUnReadNum num = userMsgReadStateService.getReadStateByUid(uid); int totalCount = num.getTypeAccount() + num.getTypeInvite() + num.getTypeMoney() + num.getTypeOrder() + num.getTypeScore() + num.getTypeSystem() + num.getTypeOther(); + num.getTypeScore() + num.getTypeSystem() + num.getTypeOther() + deviceCount; JSONObject data = null; if ("android".equalsIgnoreCase(acceptData.getPlatform())) { data = JSONObject.fromObject(androidBuilder.excludeFieldsWithoutExposeAnnotation().create().toJson(num)); @@ -569,7 +599,6 @@ long currentTime = System.currentTimeMillis(); // 官宣任务 if (uid != null) { MsgCommonDTO guanXuanMsg = msgConfigService.getGuanXuanMsg(); @@ -589,9 +618,6 @@ guanXuanMsg.getJumpDetail(), guanXuanMsg.getParams())); } } // 返利券小助手 MsgCommonDTO zhuShouMsg = msgConfigService.getZhuShouMsg(); fanli/src/main/java/com/yeshi/fanli/dao/mybatis/msg/MsgDeviceReadStateMapper.java
@@ -1,5 +1,7 @@ package com.yeshi.fanli.dao.mybatis.msg; import java.util.List; import org.apache.ibatis.annotations.Param; import com.yeshi.fanli.dao.BaseMapper; @@ -20,9 +22,18 @@ /** * 设置所有消息已读 * * @param device * @param platform */ void setAllMsgRead(@Param("device") String device, @Param("platform") int platform); /** * 获取所有设备的消息列表 * * @param device * @param platform * @return */ List<MsgDeviceReadState> listByDeviceAndPlatform(@Param("device") String device, @Param("platform") int platform); } fanli/src/main/java/com/yeshi/fanli/mapping/msg/MsgDeviceReadStateMapper.xml
@@ -34,6 +34,15 @@ mdrs_platform=#{platform} and mdrs_type=#{type} </select> <select id="listByDeviceAndPlatform" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from yeshi_ec_msg_device_read_state where mdrs_device=#{device} and mdrs_platform=#{platform} </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from yeshi_ec_msg_device_read_state where mdrs_id = #{id,jdbcType=BIGINT} </delete> fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgDeviceReadStateServiceImpl.java
@@ -1,6 +1,7 @@ package com.yeshi.fanli.service.impl.msg; import java.util.Date; import java.util.List; import javax.annotation.Resource; @@ -86,4 +87,14 @@ } } @Override public int getUnReadCount(String device, int platform) { int totalCount = 0; List<MsgDeviceReadState> stateList = msgDeviceReadStateMapper.listByDeviceAndPlatform(device, platform); for (MsgDeviceReadState state : stateList) { totalCount += state.getUnReadCount(); } return totalCount; } } fanli/src/main/java/com/yeshi/fanli/service/inter/msg/MsgDeviceReadStateService.java
@@ -54,5 +54,14 @@ * @param platform */ public void initReadState(String device, int platform, String type); /** * 获取设备未读消息数量 * @param device * @param platform * @return */ public int getUnReadCount(String device,int platform); }