|
@@ -7,22 +7,29 @@ import com.microsvc.toolkit.common.response.paging.QueryInfo;
|
|
|
import com.microsvc.toolkit.common.response.template.R;
|
|
|
import com.yonge.cooleshow.admin.io.request.SysSuggestionVo;
|
|
|
import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.Student;
|
|
|
+import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.SysMessageConfig;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.SysSuggestionV2;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.SysUser;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.StudentService;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.MessageSendMode;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.SysMessageConfigService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.SysMessageService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.SysSuggestionV2Service;
|
|
|
import com.yonge.cooleshow.biz.dal.service.SysUserService;
|
|
|
+import com.yonge.cooleshow.biz.dal.wrapper.SysMessageWrapper;
|
|
|
import com.yonge.cooleshow.biz.dal.wrapper.SysSuggestionWrapper;
|
|
|
import com.yonge.cooleshow.common.controller.BaseController;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.joda.time.DateTime;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
+import org.springframework.web.bind.annotation.GetMapping;
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
import org.springframework.web.bind.annotation.RequestHeader;
|
|
@@ -51,6 +58,12 @@ public class SysSuggestionV2Controller extends BaseController {
|
|
|
@Resource
|
|
|
private SysUserFeignService sysUserFeignService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SysMessageService sysMessageService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysMessageConfigService sysMessageConfigService;
|
|
|
+
|
|
|
/**
|
|
|
* 查询分页
|
|
|
*
|
|
@@ -61,7 +74,7 @@ public class SysSuggestionV2Controller extends BaseController {
|
|
|
@PreAuthorize("@pcs.hasPermissions('sysSuggestionV2/page')")
|
|
|
@PostMapping("/page")
|
|
|
public R<PageInfo<SysSuggestionWrapper.SysSuggestion>> page(@RequestBody SysSuggestionWrapper.SysSuggestionQuery query) {
|
|
|
- com.yonge.cooleshow.auth.api.entity.SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
query.setUserId(sysUser.getId());
|
|
|
query.setClientType(ClientEnum.TEACHER);
|
|
|
|
|
@@ -79,11 +92,11 @@ public class SysSuggestionV2Controller extends BaseController {
|
|
|
if (!handUserIdList.isEmpty()) {
|
|
|
userIdList.addAll(handUserIdList);
|
|
|
}
|
|
|
- Map<Long, SysUser> userIdMap = sysUserService.getMapByIds(userIdList);
|
|
|
+ Map<Long, com.yonge.cooleshow.biz.dal.entity.SysUser> userIdMap = sysUserService.getMapByIds(userIdList);
|
|
|
|
|
|
records.forEach(next -> {
|
|
|
- next.setNickname(userIdMap.getOrDefault(next.getUserId(), new SysUser()).getUsername());
|
|
|
- next.setHandleName(userIdMap.getOrDefault(next.getHandleBy(), new SysUser()).getUsername());
|
|
|
+ next.setNickname(userIdMap.getOrDefault(next.getUserId(), new com.yonge.cooleshow.biz.dal.entity.SysUser()).getUsername());
|
|
|
+ next.setHandleName(userIdMap.getOrDefault(next.getHandleBy(), new com.yonge.cooleshow.biz.dal.entity.SysUser()).getUsername());
|
|
|
});
|
|
|
}
|
|
|
return R.from(QueryInfo.pageInfo(pages, records));
|
|
@@ -103,9 +116,37 @@ public class SysSuggestionV2Controller extends BaseController {
|
|
|
@RequestHeader(name = "user-agent") String userAgent) {
|
|
|
com.yonge.cooleshow.auth.api.entity.SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
suggestion.setUserId(sysUser.getId());
|
|
|
- suggestion.setUserAgent(userAgent);
|
|
|
+ String userAgent1 = suggestion.getUserAgent();
|
|
|
+ if(StringUtils.isEmpty(userAgent1)){
|
|
|
+ userAgent1 = userAgent;
|
|
|
+ }
|
|
|
+ suggestion.setUserAgent(userAgent1);
|
|
|
suggestion.setClientType(ClientEnum.TEACHER);
|
|
|
|
|
|
return R.from(sysSuggestionService.add(JSON.parseObject(suggestion.jsonString(), SysSuggestionV2.class)));
|
|
|
}
|
|
|
+
|
|
|
+ @ApiOperation(value = "未读消息统计", notes = "统计当前用户推送未读消息数")
|
|
|
+ @PreAuthorize("@pcs.hasPermissions('sysSuggestionV2/suggestMessageUnread')")
|
|
|
+ @GetMapping("/suggestMessageUnread")
|
|
|
+ public R<List<SysMessageWrapper.MessageUnreadStat>> suggestMessageUnread() {
|
|
|
+ SysUser userInfo = sysUserFeignService.queryUserInfo();
|
|
|
+
|
|
|
+ SysMessageConfig one = sysMessageConfigService.queryByType(MessageTypeEnum.SYS_SUGGEST_FEEDBACK_TEACHER.getCode());
|
|
|
+
|
|
|
+ // 未读消息统计条件
|
|
|
+ SysMessageWrapper.SysMessageQuery query = SysMessageWrapper.SysMessageQuery.builder()
|
|
|
+ .userId(userInfo.getId())
|
|
|
+ .clientType(ClientEnum.TEACHER)
|
|
|
+ .readStatus(false)
|
|
|
+ .type(MessageSendMode.PUSH)
|
|
|
+ .sendTime(DateTime.now().toDate())
|
|
|
+ .messageConfigId(one.getId())
|
|
|
+ .build();
|
|
|
+
|
|
|
+ // 统计未读消息数
|
|
|
+ List<SysMessageWrapper.MessageUnreadStat> unreadStats = sysMessageService.userMessageUnreadStat(query);
|
|
|
+
|
|
|
+ return R.from(unreadStats);
|
|
|
+ }
|
|
|
}
|