package com.dsh.guns.modular.system.controller.general;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.dsh.course.entity.TNotices;
|
import com.dsh.course.feignClient.account.UserClient;
|
import com.dsh.course.feignClient.driver.DriverClient;
|
import com.dsh.guns.config.UserExt;
|
import com.dsh.guns.core.base.controller.BaseController;
|
import com.dsh.guns.core.common.constant.factory.PageFactory;
|
import com.dsh.guns.core.log.LogObjectHolder;
|
import com.dsh.guns.core.util.SinataUtil;
|
import com.dsh.guns.modular.system.model.Driver;
|
import com.dsh.guns.modular.system.model.TSystemNotice;
|
import com.dsh.guns.modular.system.model.TUser;
|
import com.dsh.guns.modular.system.service.ITNoticesService;
|
import com.dsh.guns.modular.system.service.ITSystemNoticeService;
|
import com.dsh.guns.modular.system.util.DateUtil;
|
import com.dsh.guns.modular.system.util.task.base.QuartzManager;
|
import com.dsh.guns.modular.system.util.task.base.TimeJobType;
|
import com.dsh.guns.modular.system.util.task.jobs.AddNotice;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.Model;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import java.util.*;
|
|
/**
|
* 滚动消息设置控制器
|
*
|
* @author fengshuonan
|
* @Date 2020-06-10 15:21:25
|
*/
|
@Controller
|
@RequestMapping("/tNotices")
|
public class TNoticesController extends BaseController {
|
|
private String PREFIX = "/system/tNotices/";
|
|
@Autowired
|
private ITNoticesService tNoticesService;
|
|
/**
|
* 跳转到滚动消息设置首页
|
*/
|
@RequestMapping("")
|
public String index(Model model) {
|
model.addAttribute("language",UserExt.getLanguage());
|
return PREFIX + "tNotices.html";
|
}
|
|
/**
|
* 跳转到系统公告设置首页
|
*/
|
@RequestMapping("/system")
|
public String system(Model model) {
|
model.addAttribute("language",UserExt.getLanguage());
|
return PREFIX + "system.html";
|
}
|
|
/**
|
* 跳转到添加滚动消息设置
|
*/
|
@RequestMapping("/tNotices_add")
|
public String tNoticesAdd(Model model) {
|
model.addAttribute("language",UserExt.getLanguage());
|
return PREFIX + "tNotices_add.html";
|
}
|
|
/**
|
* 跳转到添加系统公告
|
*/
|
@RequestMapping("/system_add")
|
public String system_add(Model model) {
|
model.addAttribute("language",UserExt.getLanguage());
|
return PREFIX + "system_add.html";
|
}
|
|
/**
|
* 跳转到修改滚动消息设置
|
*/
|
@RequestMapping("/tNotices_update/{tNoticesId}")
|
public String tNoticesUpdate(@PathVariable Integer tNoticesId, Model model) {
|
TNotices tNotices = tNoticesService.getById(tNoticesId);
|
model.addAttribute("item",tNotices);
|
model.addAttribute("language",UserExt.getLanguage());
|
LogObjectHolder.me().set(tNotices);
|
return PREFIX + "tNotices_edit.html";
|
}
|
|
/**
|
* 跳转到修改系统公告
|
*/
|
@RequestMapping("/system_update/{tNoticesId}")
|
public String system_update(@PathVariable Integer tNoticesId, Model model) {
|
TNotices tNotices = tNoticesService.getById(tNoticesId);
|
model.addAttribute("item",tNotices);
|
model.addAttribute("language",UserExt.getLanguage());
|
LogObjectHolder.me().set(tNotices);
|
return PREFIX + "system_update.html";
|
}
|
|
/**
|
* 获取滚动消息设置列表
|
*/
|
@RequestMapping(value = "/list")
|
@ResponseBody
|
public Object list(String insertTime,String content,Integer yy) {
|
String beginTime = null;
|
String endTime = null;
|
if (SinataUtil.isNotEmpty(insertTime)){
|
String[] timeArray = insertTime.split(" - ");
|
beginTime = timeArray[0];
|
endTime = timeArray[1];
|
}
|
Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
|
if (UserExt.getUser().getRoleType() != 1){
|
page.setRecords(null);
|
}else{
|
page.setRecords(tNoticesService.getRollingNoticeList(page,beginTime,endTime,1,content,yy));
|
}
|
return super.packForBT(page);
|
}
|
|
/**
|
* 获取系统公告设置列表
|
*/
|
@RequestMapping(value = "/listSystem")
|
@ResponseBody
|
public Object listSystem(String insertTime,String content,Integer yy) {
|
String beginTime = null;
|
String endTime = null;
|
if (SinataUtil.isNotEmpty(insertTime)){
|
String[] timeArray = insertTime.split(" - ");
|
beginTime = timeArray[0];
|
endTime = timeArray[1];
|
}
|
Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
|
if (UserExt.getUser().getRoleType() != 1){
|
page.setRecords(null);
|
}else{
|
page.setRecords(tNoticesService.getRollingNoticeList(page,beginTime,endTime,2,content,yy));
|
}
|
return super.packForBT(page);
|
}
|
|
/**
|
* 新增滚动消息设置
|
*/
|
@RequestMapping(value = "/add")
|
@ResponseBody
|
public Object add(TNotices tNotices,Integer language) {
|
tNotices.setIsDelete(1);
|
tNotices.setInsertTime(new Date());
|
tNotices.setLanguage(language);
|
tNotices.setInsertUser(UserExt.getUser().getId());
|
tNotices.setType(1);
|
tNoticesService.save(tNotices);
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 新增系统公告
|
*/
|
@RequestMapping(value = "/addSystem")
|
@ResponseBody
|
public Object addSystem(TNotices tNotices,Integer language) {
|
tNotices.setIsDelete(1);
|
tNotices.setInsertTime(new Date());
|
tNotices.setInsertUser(UserExt.getUser().getId());
|
tNotices.setLanguage(language);
|
tNotices.setType(2);
|
tNoticesService.save(tNotices);
|
|
if (tNotices.getIsShow() == 1){ //发布
|
//定时1秒后执行
|
Map<String,Object> maps=new HashMap<>();
|
maps.put("noticeId",tNotices.getId());
|
Timer timer = new Timer();
|
timer.schedule(new timerTaskTest(tNotices.getId()),3*1000);
|
// QuartzManager.addJob(AddNotice.class, (AddNotice.name+tNotices.getId()).toUpperCase(), TimeJobType.UNLOCK,DateUtil.getDate_strYMdHms(new Date().getTime() + 1*1000) , maps);
|
}
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 发布系统公告
|
*/
|
@RequestMapping(value = "/sendSystem")
|
@ResponseBody
|
public Object sendSystem(@RequestParam Integer tNoticesId) {
|
TNotices tNotices = tNoticesService.getById(tNoticesId);
|
if (tNotices.getIsShow() == 2){
|
//定时1秒后执行
|
Map<String,Object> maps=new HashMap<>();
|
maps.put("noticeId",tNotices.getId());
|
QuartzManager.addJob(AddNotice.class, (AddNotice.name+tNotices.getId()).toUpperCase(), TimeJobType.UNLOCK,DateUtil.getDate_strYMdHms(new Date().getTime() + 1*1000) , maps);
|
}
|
tNotices.setIsShow(1);
|
tNotices.setUpdateTime(new Date());
|
tNotices.setUpdateUser(UserExt.getUser().getId());
|
tNoticesService.updateById(tNotices);
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 删除
|
*/
|
@RequestMapping(value = "/delete")
|
@ResponseBody
|
public Object delete(@RequestParam Integer tNoticesId) {
|
TNotices tNotices = tNoticesService.getById(tNoticesId);
|
tNotices.setIsDelete(2);
|
tNotices.setFlag(3);
|
tNotices.setUpdateTime(new Date());
|
tNotices.setUpdateUser(UserExt.getUser().getId());
|
tNoticesService.updateById(tNotices);
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 修改滚动消息设置
|
*/
|
@RequestMapping(value = "/update")
|
@ResponseBody
|
public Object update(TNotices tNotices,Integer language) {
|
tNotices.setUpdateUser(UserExt.getUser().getId());
|
tNotices.setUpdateTime(new Date());
|
tNotices.setLanguage(language);
|
tNoticesService.updateById(tNotices);
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 修改系统公告
|
*/
|
@RequestMapping(value = "/updateSystem")
|
@ResponseBody
|
public Object updateSystem(TNotices tNotices,Integer language) {
|
tNotices.setUpdateUser(UserExt.getUser().getId());
|
tNotices.setUpdateTime(new Date());
|
tNotices.setLanguage(language);
|
tNoticesService.updateById(tNotices);
|
|
if (tNotices.getIsShow() == 1){ //发布
|
//定时1秒后执行
|
Map<String,Object> maps=new HashMap<>();
|
maps.put("noticeId",tNotices.getId());
|
QuartzManager.addJob(AddNotice.class, (AddNotice.name+tNotices.getId()).toUpperCase(), TimeJobType.UNLOCK, DateUtil.getDate_strYMdHms(new Date().getTime() + 1*1000) , maps);
|
}
|
return SUCCESS_TIP;
|
}
|
|
@Autowired
|
private UserClient userClient;
|
@Autowired
|
private ITSystemNoticeService tSystemNoticeService;
|
|
@Autowired
|
private DriverClient driverClient;
|
private class timerTaskTest extends TimerTask {
|
private Integer id;
|
public timerTaskTest(Integer id) {
|
this.id=id;
|
}
|
|
@Override
|
public void run() {
|
try {
|
System.out.println("----定时1秒后生成公告记录-----");
|
TNotices tNotices = tNoticesService.getById(id);
|
if (SinataUtil.isNotEmpty(tNotices)){
|
if (tNotices.getIsUser() == 2){
|
List<TUser> tUsers = userClient.getUserList();
|
//发送公告给用户
|
for (TUser user : tUsers){
|
TSystemNotice notice = new TSystemNotice();
|
notice.setType(1);
|
notice.setUserType(1);
|
notice.setNoticesId(id);
|
notice.setContent(tNotices.getContent());
|
notice.setUserId(user.getId());
|
notice.setInsertTime(new Date());
|
notice.setRead(1);
|
notice.setLanguage(tNotices.getLanguage());
|
tSystemNoticeService.save1(notice);
|
|
/*Map<String,Object> map = new HashMap<String,Object>();
|
map.put("sound", userInfo.getIsVoice()); //是否有声音 1=否 2=是
|
map.put("vibrate", userInfo.getIsShake()); //是否有震动 1=否 2=是
|
map.put("type", 2); //消息类型 1=互动 2=公告
|
map.put("id", record.getId()); //对象ID
|
JpushUtil.SendPushWithCustomForTransmission(String.valueOf(userInfo.getId()),"【超级过客】提醒您,您有一条新的公告消息。","通知消息",map);*/
|
}
|
}
|
if (tNotices.getIsDriver() == 2){
|
List<Driver> tDrivers = driverClient.getStateList();
|
//发送公告给用户
|
for (Driver driver : tDrivers){
|
TSystemNotice notice = new TSystemNotice();
|
notice.setType(1);
|
notice.setUserType(2);
|
notice.setNoticesId(id);
|
notice.setContent(tNotices.getContent());
|
notice.setUserId(driver.getId());
|
notice.setInsertTime(new Date());
|
notice.setRead(1);
|
notice.setLanguage(tNotices.getLanguage());
|
tSystemNoticeService.save1(notice);
|
|
/*Map<String,Object> map = new HashMap<String,Object>();
|
map.put("sound", userInfo.getIsVoice()); //是否有声音 1=否 2=是
|
map.put("vibrate", userInfo.getIsShake()); //是否有震动 1=否 2=是
|
map.put("type", 2); //消息类型 1=互动 2=公告
|
map.put("id", record.getId()); //对象ID
|
JpushUtil.SendPushWithCustomForTransmission(String.valueOf(userInfo.getId()),"【超级过客】提醒您,您有一条新的公告消息。","通知消息",map);*/
|
|
|
}
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
}
|