增加通知设置接口
This commit is contained in:
parent
0d09cbfd0e
commit
0d644bb957
|
|
@ -1,7 +1,17 @@
|
|||
package com.mdd.admin.controller.setting;
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.mdd.admin.service.notice.INoticeSettingService;
|
||||
import com.mdd.admin.vo.notice.NoticeSettingDetailVo;
|
||||
import com.mdd.admin.vo.notice.NoticeSettingListVo;
|
||||
import com.mdd.common.core.AjaxResult;
|
||||
import com.mdd.common.utils.ToolsUtil;
|
||||
import com.mdd.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 通知设置管理
|
||||
|
|
@ -10,16 +20,46 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
@RequestMapping("api/setting/notice")
|
||||
public class NoticeController {
|
||||
|
||||
@Resource
|
||||
INoticeSettingService iNoticeSettingService;
|
||||
|
||||
/**
|
||||
* 通知设置列表
|
||||
*
|
||||
* @author fzr
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list() {
|
||||
return null;
|
||||
List<NoticeSettingListVo> list = iNoticeSettingService.list();
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
public Object detail() {
|
||||
return null;
|
||||
/**
|
||||
* 通知设置详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 主键
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
NoticeSettingDetailVo vo = iNoticeSettingService.detail(id);
|
||||
return AjaxResult.success(vo);
|
||||
}
|
||||
|
||||
public Object save() {
|
||||
return null;
|
||||
/**
|
||||
* 通知设置保存
|
||||
*
|
||||
* @author fzr
|
||||
* @param params 参数
|
||||
* @return Object
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
public Object save(@RequestBody Map<String, Object> params) {
|
||||
System.out.println(ToolsUtil.objectToMap(params.get("systemNotice")));
|
||||
iNoticeSettingService.save(params);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
package com.mdd.admin.service.notice;
|
||||
|
||||
import com.mdd.admin.vo.notice.NoticeSettingDetailVo;
|
||||
import com.mdd.admin.vo.notice.NoticeSettingListVo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 通知设置服务接口类
|
||||
*/
|
||||
public interface INoticeSettingService {
|
||||
|
||||
/**
|
||||
* 通知设置列表
|
||||
*
|
||||
* @author fzr
|
||||
* @return List<NoticeSettingListVo>
|
||||
*/
|
||||
List<NoticeSettingListVo> list();
|
||||
|
||||
NoticeSettingDetailVo detail(Integer id);
|
||||
|
||||
void save(Map<String, Object> params);
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,154 @@
|
|||
package com.mdd.admin.service.notice.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.mdd.admin.service.notice.INoticeSettingService;
|
||||
import com.mdd.admin.vo.notice.NoticeSettingDetailVo;
|
||||
import com.mdd.admin.vo.notice.NoticeSettingListVo;
|
||||
import com.mdd.common.entity.notice.NoticeSetting;
|
||||
import com.mdd.common.mapper.notice.NoticeSettingMapper;
|
||||
import com.mdd.common.utils.TimeUtil;
|
||||
import com.mdd.common.utils.ToolsUtil;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class NoticeSettingServiceImpl implements INoticeSettingService {
|
||||
|
||||
@Resource
|
||||
NoticeSettingMapper noticeSettingMapper;
|
||||
|
||||
/**
|
||||
* 通知设置列表
|
||||
*
|
||||
* @author fzr
|
||||
* @return List<NoticeSettingListVo>
|
||||
*/
|
||||
@Override
|
||||
public List<NoticeSettingListVo> list() {
|
||||
QueryWrapper<NoticeSetting> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("is_delete", 0);
|
||||
queryWrapper.orderByAsc("id");
|
||||
|
||||
List<NoticeSetting> noticeSettings = noticeSettingMapper.selectList(queryWrapper);
|
||||
|
||||
List<NoticeSettingListVo> list = new LinkedList<>();
|
||||
for (NoticeSetting n : noticeSettings) {
|
||||
NoticeSettingListVo vo = new NoticeSettingListVo();
|
||||
BeanUtils.copyProperties(n, vo);
|
||||
|
||||
Map<String, String> systemMap = ToolsUtil.jsonToMap(n.getSystemNotice());
|
||||
Map<String, String> smsMap = ToolsUtil.jsonToMap(n.getSmsNotice());
|
||||
Map<String, String> oaMap = ToolsUtil.jsonToMap(n.getOaNotice());
|
||||
Map<String, String> mnpMap = ToolsUtil.jsonToMap(n.getMnpNotice());
|
||||
|
||||
vo.setType(n.getType()==1?"业务通知":"验证码");
|
||||
vo.setSystemStatus(Integer.parseInt(systemMap.get("status")));
|
||||
vo.setSmsStatus(Integer.parseInt(smsMap.get("status")));
|
||||
vo.setOaStatus(Integer.parseInt(oaMap.get("status")));
|
||||
vo.setMnpStatus(Integer.parseInt(mnpMap.get("status")));
|
||||
vo.setCreateTime(TimeUtil.timestampToDate(n.getCreateTime()));
|
||||
vo.setUpdateTime(TimeUtil.timestampToDate(n.getUpdateTime()));
|
||||
list.add(vo);
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通知设置详情
|
||||
*
|
||||
* @author fzr
|
||||
* @param id 主键
|
||||
* @return NoticeSettingDetailVo
|
||||
*
|
||||
*/
|
||||
@Override
|
||||
public NoticeSettingDetailVo detail(Integer id) {
|
||||
NoticeSetting noticeSetting = noticeSettingMapper.selectOne(new QueryWrapper<NoticeSetting>()
|
||||
.eq("id", id)
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
NoticeSettingDetailVo vo = new NoticeSettingDetailVo();
|
||||
BeanUtils.copyProperties(noticeSetting, vo);
|
||||
|
||||
Map<String, Object> systemMap = ToolsUtil.jsonToMapAsObj(noticeSetting.getSystemNotice());
|
||||
Map<String, Object> smsMap = ToolsUtil.jsonToMapAsObj(noticeSetting.getSmsNotice());
|
||||
Map<String, Object> oaMap = ToolsUtil.jsonToMapAsObj(noticeSetting.getOaNotice());
|
||||
Map<String, Object> mnpMap = ToolsUtil.jsonToMapAsObj(noticeSetting.getMnpNotice());
|
||||
|
||||
systemMap.put("tips", JSONArray.toJSON(systemMap.get("tips")));
|
||||
smsMap.put("tips", JSONArray.toJSON(smsMap.get("tips")));
|
||||
oaMap.put("tips", JSONArray.toJSON(oaMap.get("tips")));
|
||||
oaMap.put("tpl", JSONArray.toJSON(oaMap.get("tpl")));
|
||||
mnpMap.put("tips", JSONArray.toJSON(mnpMap.get("tips")));
|
||||
mnpMap.put("tpl", JSONArray.toJSON(mnpMap.get("tpl")));
|
||||
|
||||
vo.setType(noticeSetting.getType()==1?"业务通知":"验证码");
|
||||
vo.setSystemNotice(systemMap);
|
||||
vo.setSmsNotice(smsMap);
|
||||
vo.setOaNotice(oaMap);
|
||||
vo.setMnpNotice(mnpMap);
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通知设置保存
|
||||
*
|
||||
* @author fzr
|
||||
* @param params 参数
|
||||
*/
|
||||
@Override
|
||||
public void save(Map<String, Object> params) {
|
||||
Integer id = Integer.parseInt(params.get("id").toString());
|
||||
NoticeSetting noticeSetting = noticeSettingMapper.selectOne(new QueryWrapper<NoticeSetting>()
|
||||
.eq("id", id)
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
Map<String, String> systemParam = ToolsUtil.objectToMap(params.get("systemNotice"));
|
||||
Map<String, String> systemMap = ToolsUtil.jsonToMap(noticeSetting.getSystemNotice());
|
||||
systemMap.put("title", systemParam.get("title"));
|
||||
systemMap.put("content", systemParam.get("content"));
|
||||
systemMap.put("status", systemParam.get("status"));
|
||||
|
||||
Map<String, String> smsParam = ToolsUtil.objectToMap(params.get("smsNotice"));
|
||||
Map<String, String> smsMap = ToolsUtil.jsonToMap(noticeSetting.getSmsNotice());
|
||||
smsMap.put("templateId", smsParam.get("templateId"));
|
||||
smsMap.put("content", smsParam.get("content"));
|
||||
smsMap.put("status", smsParam.get("status"));
|
||||
|
||||
Map<String, String> oaParam = ToolsUtil.objectToMap(params.get("oaNotice"));
|
||||
Map<String, String> oaMap = ToolsUtil.jsonToMap(noticeSetting.getOaNotice());
|
||||
oaMap.put("name", oaParam.getOrDefault("name", ""));
|
||||
oaMap.put("first", oaParam.get("first"));
|
||||
oaMap.put("remark", oaParam.get("remark"));
|
||||
oaMap.put("templateId", oaParam.get("templateId"));
|
||||
oaMap.put("templateSn", oaParam.get("templateSn"));
|
||||
oaMap.put("tpl", JSON.toJSONString(oaParam.get("tpl")));
|
||||
oaMap.put("status", oaParam.get("status"));
|
||||
|
||||
Map<String, String> mnpParam = ToolsUtil.objectToMap(params.get("mnpNotice"));
|
||||
Map<String, String> mnpMap = ToolsUtil.jsonToMap(noticeSetting.getMnpNotice());
|
||||
mnpMap.put("templateId", mnpParam.get("templateId"));
|
||||
mnpMap.put("templateSn", mnpParam.get("templateSn"));
|
||||
mnpMap.put("tpl", mnpParam.get("tpl"));
|
||||
mnpMap.put("status", mnpParam.get("status"));
|
||||
|
||||
noticeSetting.setSystemNotice(JSON.toJSONString(systemMap));
|
||||
noticeSetting.setSmsNotice(JSON.toJSONString(smsMap));
|
||||
noticeSetting.setOaNotice(JSON.toJSONString(oaMap));
|
||||
noticeSetting.setMnpNotice(JSON.toJSONString(mnpMap));
|
||||
noticeSetting.setUpdateTime(System.currentTimeMillis() / 1000);
|
||||
noticeSettingMapper.updateById(noticeSetting);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package com.mdd.admin.vo.notice;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class NoticeSettingDetailVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Integer id;
|
||||
private String name;
|
||||
private String type;
|
||||
private String remarks;
|
||||
private Object systemNotice;
|
||||
private Object smsNotice;
|
||||
private Object oaNotice;
|
||||
private Object mnpNotice;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
package com.mdd.admin.vo.notice;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 通知设置列表Vo
|
||||
*/
|
||||
@Data
|
||||
public class NoticeSettingListVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Integer id; // 主键
|
||||
private String name; // 通知名称
|
||||
private String type; // 通知类型
|
||||
private Integer systemStatus; // 通知状态
|
||||
private Integer smsStatus; // 通知状态
|
||||
private Integer oaStatus; // 公众号状态
|
||||
private Integer mnpStatus; // 小程序状态
|
||||
private String createTime; // 创建时间
|
||||
private String updateTime; // 更新时间
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
package com.mdd.common.entity.notice;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class NoticeRecord implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value="id", type= IdType.AUTO)
|
||||
private Integer id; // 主键ID
|
||||
private Integer userId;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
package com.mdd.common.entity.notice;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 通知设置实体
|
||||
*/
|
||||
@Data
|
||||
public class NoticeSetting implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value="id", type= IdType.AUTO)
|
||||
private Integer id; // 主键ID
|
||||
private Integer scene; // 场景编号
|
||||
private String name; // 场景名称
|
||||
private String remarks; // 场景描述
|
||||
private Integer recipient; // 接收人员: [1=用户, 2=平台]
|
||||
private Integer type; // 通知类型: [1=业务, 2=验证码]
|
||||
private String systemNotice; // 系统的通知设置
|
||||
private String smsNotice; // 短信的通知设置
|
||||
private String oaNotice; // 公众号通知设置
|
||||
private String mnpNotice; // 小程序通知设置
|
||||
private String support; // 支持的发送类型
|
||||
private Integer isDelete; // 是否删除: [0=否, 1=是]
|
||||
private Long createTime; // 创建时间
|
||||
private Long updateTime; // 更新时间
|
||||
private Long deleteTime; // 删除时间
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.mdd.common.mapper.notice;
|
||||
|
||||
import com.mdd.common.core.basics.IBaseMapper;
|
||||
import com.mdd.common.entity.notice.NoticeSetting;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 通知设置Mapper
|
||||
*/
|
||||
@Mapper
|
||||
public interface NoticeSettingMapper extends IBaseMapper<NoticeSetting> {
|
||||
}
|
||||
|
|
@ -139,6 +139,18 @@ public class ToolsUtil {
|
|||
return JSON.parseObject(json, type);
|
||||
}
|
||||
|
||||
/**
|
||||
* JSON转 Map<String, Object>
|
||||
*
|
||||
* @author fzr
|
||||
* @param json 对象
|
||||
* @return Map<String, String>
|
||||
*/
|
||||
public static Map<String, Object> jsonToMapAsObj(String json){
|
||||
Type type = new TypeToken<Map<String, Object>>() {}.getType();
|
||||
return JSON.parseObject(json, type);
|
||||
}
|
||||
|
||||
/**
|
||||
* JSON转Map<String, String>
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue