admin
2019-05-06 8f45af9d6cdae97f4f265d2f2a123d990cf1bb1d
fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java
@@ -30,10 +30,12 @@
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.yeshi.fanli.dto.msg.MsgCommonDTO;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.homemodule.Special;
import com.yeshi.fanli.entity.bus.lable.QualityFactory;
import com.yeshi.fanli.entity.bus.msg.MsgAccountDetail;
import com.yeshi.fanli.entity.bus.msg.MsgDeviceReadState;
import com.yeshi.fanli.entity.bus.msg.MsgInviteDetail;
import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail;
import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail;
@@ -58,6 +60,8 @@
import com.yeshi.fanli.service.inter.homemodule.SpecialService;
import com.yeshi.fanli.service.inter.lable.QualityFactoryService;
import com.yeshi.fanli.service.inter.msg.MsgAccountDetailService;
import com.yeshi.fanli.service.inter.msg.MsgConfigService;
import com.yeshi.fanli.service.inter.msg.MsgDeviceReadStateService;
import com.yeshi.fanli.service.inter.msg.MsgInviteDetailService;
import com.yeshi.fanli.service.inter.msg.MsgMoneyDetailService;
import com.yeshi.fanli.service.inter.msg.MsgOrderDetailService;
@@ -140,6 +144,12 @@
   @Resource
   private DeviceActiveService deviceActiveService;
   @Resource
   private MsgConfigService msgConfigService;
   @Resource
   private MsgDeviceReadStateService msgDeviceReadStateService;
   // 消息的类型
   final static String MSG_TYPE_ORDER = "order";
@@ -574,6 +584,50 @@
         }
      }
      long currentTime = System.currentTimeMillis();
      // 返利券小助手
      MsgCommonDTO zhuShouMsg = msgConfigService.getZhuShouMsg();
      if (zhuShouMsg != null) {
         boolean read = false;
         MsgDeviceReadState state = msgDeviceReadStateService.getByDeviceAndPlatformAndType(
               UserCommonMsgVO.TYPE_ZHUSHOU, acceptData.getDevice(),
               acceptData.getPlatform().equalsIgnoreCase("android") ? 1 : 2);
         if (state != null && state.getReadTime() != null
               && zhuShouMsg.getUpdateTime().getTime() < state.getReadTime().getTime())
            read = true;
         // 查询是否已读
         if ((zhuShouMsg.getStartTime() != null && currentTime < zhuShouMsg.getStartTime().getTime())
               || (zhuShouMsg.getEndTime() != null && currentTime > zhuShouMsg.getEndTime().getTime())) {
            // 不显示
         } else
            commonMsgList.add(new UserCommonMsgVO(zhuShouMsg.getIcon(), zhuShouMsg.getTitle(),
                  zhuShouMsg.getUpdateTime(), UserCommonMsgVO.TYPE_ZHUSHOU, zhuShouMsg.getContent(), read,
                  zhuShouMsg.getJumpDetail(), zhuShouMsg.getParams()));
      }
      // 官宣任务
      if (uid != null) {
         MsgCommonDTO guanXuanMsg = msgConfigService.getGuanXuanMsg();
         if (guanXuanMsg != null) {
            boolean read = false;
            UserMsgUnReadNum num = userMsgReadStateService.getReadStateByUid(uid);
            if (num != null && (num.getGuanXuanReadTime() != null
                  && guanXuanMsg.getUpdateTime().getTime() < num.getGuanXuanReadTime().getTime()))
               read = true;
            // 查询是否已读
            if ((guanXuanMsg.getStartTime() != null && currentTime < guanXuanMsg.getStartTime().getTime())
                  || (guanXuanMsg.getEndTime() != null && currentTime > guanXuanMsg.getEndTime().getTime())) {
               // 不显示
            } else
               commonMsgList.add(new UserCommonMsgVO(guanXuanMsg.getIcon(), guanXuanMsg.getTitle(),
                     guanXuanMsg.getUpdateTime(), UserCommonMsgVO.TYPE_GUANXUAN, guanXuanMsg.getContent(), read,
                     guanXuanMsg.getJumpDetail(), guanXuanMsg.getParams()));
         }
      }
      //
      // list = pushGoodsService.listHistoryByPushTime(0, 1, uid, createTime);
@@ -784,6 +838,16 @@
         return;
      }
      // 初始化读取状态
      msgDeviceReadStateService.initReadState(acceptData.getDevice(),
            "android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2, UserCommonMsgVO.TYPE_RECOMMEND);
      msgDeviceReadStateService.initReadState(acceptData.getDevice(),
            "android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2, UserCommonMsgVO.TYPE_ZHUSHOU);
      // 设置设备消息所有已读
      msgDeviceReadStateService.setAllMsgRead(acceptData.getDevice(),
            "android".equalsIgnoreCase(acceptData.getPlatform()) ? 1 : 2);
      UserMsgUnReadNum num = userMsgReadStateService.getReadStateByUid(uid);
      int totalNum = num.getTypeAccount() + num.getTypeInvite() + num.getTypeMoney() + num.getTypeOrder()
            + num.getTypeScore() + num.getTypeSystem() + num.getTypeOther();
@@ -803,20 +867,28 @@
    * @param out
    */
   @RequestMapping(value = "readCommonMsg", method = RequestMethod.POST)
   public void readCommonMsg(AcceptData acceptData, Long uid, PrintWriter out) {
      if (uid == null) {
         out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
   public void readCommonMsg(AcceptData acceptData, Long uid, String type, PrintWriter out) {
      if (StringUtil.isNullOrEmpty(type)) {
         out.print(JsonUtil.loadFalseResult(2, "请上传type"));
         return;
      }
      if (type.equalsIgnoreCase(UserCommonMsgVO.TYPE_GUANXUAN)) {
         if (uid != null) {
            UserMsgUnReadNum num = userMsgReadStateService.getReadStateByUid(uid);
            UserMsgUnReadNum update = new UserMsgUnReadNum();
            update.setId(num.getId());
            update.setGuanXuanReadTime(new Date());
            update.setUpdateTime(new Date());
            userMsgReadStateService.updateSelective(update);
         }
      UserMsgUnReadNum num = userMsgReadStateService.getReadStateByUid(uid);
      int totalNum = num.getTypeAccount() + num.getTypeInvite() + num.getTypeMoney() + num.getTypeOrder()
            + num.getTypeScore() + num.getTypeSystem() + num.getTypeOther();
      if (totalNum == 0) {
         out.print(JsonUtil.loadFalseResult(1, "没有未读消息"));
         return;
      } else
         userMsgReadStateService.setAllMsgRead(uid);
      } else if (type.equalsIgnoreCase(UserCommonMsgVO.TYPE_RECOMMEND)) {
         msgDeviceReadStateService.setDeviceMsgRead(UserCommonMsgVO.TYPE_RECOMMEND, acceptData.getDevice(),
               (acceptData.getPlatform().equalsIgnoreCase("android") ? 1 : 2));
      } else if (type.equalsIgnoreCase(UserCommonMsgVO.TYPE_ZHUSHOU)) {
         msgDeviceReadStateService.setDeviceMsgRead(UserCommonMsgVO.TYPE_RECOMMEND, acceptData.getDevice(),
               (acceptData.getPlatform().equalsIgnoreCase("android") ? 1 : 2));
      }
      out.print(JsonUtil.loadTrueResult(""));
   }