admin
2019-05-14 09d5df76ec966c6a370c16140ae96d6463b038a5
消息新增设备未读
5个文件已修改
102 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/msg/MsgDeviceReadStateMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/msg/MsgDeviceReadStateMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgDeviceReadStateServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/msg/MsgDeviceReadStateService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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));
@@ -565,10 +595,9 @@
        List<UserMsgCenter> listCenter = new ArrayList<>();
        // 单条消息
        List<UserCommonMsgVO> commonMsgList = new ArrayList<>();
        List<UserCommonMsgVO> commonMsgList = new ArrayList<>();
        long currentTime = System.currentTimeMillis();
        // 官宣任务
        if (uid != null) {
@@ -589,10 +618,7 @@
                            guanXuanMsg.getJumpDetail(), guanXuanMsg.getParams()));
            }
        }
        // 返利券小助手
        MsgCommonDTO zhuShouMsg = msgConfigService.getZhuShouMsg();
        if (zhuShouMsg != null) {
@@ -615,11 +641,11 @@
                        zhuShouMsg.getUpdateTime(), UserCommonMsgVO.TYPE_ZHUSHOU, zhuShouMsg.getContent(), read,
                        zhuShouMsg.getJumpDetail(), zhuShouMsg.getParams()));
        }
        //人工客服
        // 人工客服
        commonMsgList.add(new UserCommonMsgVO("http://img.flqapp.com/resource/msg/icon_kefu.png", "人工客服", new Date(),
                UserCommonMsgVO.TYPE_KEFU, "", false, null, null));
        // 推荐记录
        DeviceActive deviceActive = deviceActiveService.getDeviceByDeviceAndPlatform(acceptData.getDevice(),
                acceptData.getDevice(), acceptData.getPlatform());
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;
@@ -17,12 +19,21 @@
     */
    MsgDeviceReadState selectByDeviceAndPlatformAndType(@Param("device") String device, @Param("platform") int platform,
            @Param("type") String type);
    /**
     * 设置所有消息已读
     *
     * @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>
@@ -97,7 +106,7 @@
    <update id="setAllMsgRead">
        update yeshi_ec_msg_device_read_state
        mdrs_read_time=now(),mdrs_unread_count=0,mdrs_update_time=now()
        where mdrs_device=#{device} and
        where mdrs_device=#{device} and
        mdrs_platform=#{platform}
    </update>
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);
}