package com.yami.trading.admin.controller.tip; import cn.hutool.core.util.ObjectUtil; import com.qiniu.util.StringUtils; import com.yami.trading.admin.facade.PermissionFacade; import com.yami.trading.admin.model.tip.NewTipsModel; import com.yami.trading.common.domain.Result; import com.yami.trading.security.common.util.SecurityUtils; import com.yami.trading.service.RealNameAuthRecordService; import com.yami.trading.service.chat.online.OnlineChatMessageService; import com.yami.trading.service.system.TipService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.v3.oas.annotations.parameters.RequestBody; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @RestController @CrossOrigin @Api(tags = "管理员消息通知") @RequestMapping("tip") @Slf4j public class TipController { @Autowired TipService tipService; @Autowired private PermissionFacade permissionFacade; @Autowired private RealNameAuthRecordService realNameAuthRecordService; @Autowired OnlineChatMessageService onlineChatMessageService; @GetMapping("getNewTips") @ApiOperation("获取最新通知") public Result>> getNewTips(@RequestBody @Valid NewTipsModel model) { List> list = new ArrayList<>(); List userIds = permissionFacade.getOwnerUserIds(); if (!StringUtils.isNullOrEmpty(model.getModel())) { list = tipService.cacheNewTipsByModel(SecurityUtils.getSysUser().getUsername(), model.getTimeStamp(), model.getModel(), userIds); } else { list = tipService.cacheNewTips(SecurityUtils.getSysUser().getUsername(), model.getTimeStamp(), userIds); } List> newList = new ArrayList<>(); for (Map map : list) { if (map.get("tip_message") != null && !StringUtils.isNullOrEmpty(map.get("tip_message").toString())) { newList.add(map); } } // List result = new ArrayList<>(); // for (Map map : list) { // map.put("null",""); // //String s = JSON.toJSONString(map); // //System.out.println(s); // NewTipsDto newTipsDto=new NewTipsDto(); // newTipsDto.setTipDomName(map.keySet().toString()); // newTipsDto.setTipContentSum((String) map.getOrDefault("tip_content_sum","0")); // newTipsDto.setTipMessage((String) map.getOrDefault("tip_message","")); // newTipsDto.setTipShow(map.getOrDefault("tip_show","false").toString()); // newTipsDto.setTipUrl((String) map.getOrDefault("tip_url","")); // // // // // result.add(newTipsDto); // } return Result.ok(newList); } @GetMapping("getTips") @ApiOperation("获取通知") public Result> getTips() { // if (!StringUtils.isNullOrEmpty(getLoginPartyId())) { // return ""; // } String userName = SecurityUtils.getSysUser().getUsername(); Map result = new HashMap(); List userIds = permissionFacade.getOwnerUserIds(); List> cacheSumTips = tipService.cacheSumTips(userName, userIds); // kyc_untreated_cout 基础认证个数 long kyc_untreated_cout = realNameAuthRecordService.waitCount(userIds); for (Map data : cacheSumTips) { if (ObjectUtil.equals(data.get("tip_dom_name"), ".kyc_untreated_cout")) { data.put("tip_content_sum", kyc_untreated_cout); } } result.put("tipList", cacheSumTips); return Result.ok(result); } @GetMapping("getAdminTips") @ApiOperation("获取通知") public Result> getAdminTips(@RequestBody @Valid NewTipsModel model) { long allStartTime= System.currentTimeMillis(); String userName = SecurityUtils.getSysUser().getUsername(); Map result = new HashMap(); List userIds = permissionFacade.getCahceOwnerUserIds(); List> cacheSumTips = tipService.cacheSumTips(userName, userIds); for (Map data : cacheSumTips) { // if (ObjectUtil.equals(data.get("tip_dom_name"), ".kyc_untreated_cout")) { // long kyc_untreated_cout = realNameAuthRecordService.waitCount(userIds); // data.put("tip_content_sum", kyc_untreated_cout); // } } Map unreadMap = new HashMap<>(); unreadMap.put("tip_dom_name", ".unread"); int unreadMsg = onlineChatMessageService.unreadMsg(null, "customer", SecurityUtils.getSysUser().getUsername()); unreadMap.put("tip_content_sum", unreadMsg); cacheSumTips.add(unreadMap); result.put("tipList", cacheSumTips); result.put("popTipList", tipService.cacheNewTips(SecurityUtils.getSysUser().getUsername(), model.getTimeStamp(), userIds)); long allEndTime= System.currentTimeMillis(); long time = allEndTime - allStartTime; log.info("获取通知 getAdminTips 接口耗时时间:" + time + "毫秒"); return Result.ok(result); } }