package com.java110.fee.api;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.java110.utils.util.Assert;
|
import com.java110.utils.util.BeanConvertUtil;
|
import org.mybatis.spring.SqlSessionTemplate;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.http.ResponseEntity;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 公告时间范围(公共收益金)接口
|
* 适配 announcement_time_range 表 Mapper 实现
|
*/
|
@RestController
|
@RequestMapping(value = "/announcementTimeRange")
|
public class AnnouncementTimeRangeApi {
|
|
@Autowired
|
protected SqlSessionTemplate sqlSessionTemplate;
|
|
/**
|
* 保存公告时间范围信息
|
*
|
* @param reqJson 请求参数
|
* @return 响应结果
|
* @serviceCode /announcementTimeRange/saveAnnouncementTimeRangeInfo
|
* @path /app/announcementTimeRange/saveAnnouncementTimeRangeInfo
|
*/
|
@RequestMapping(value = "/saveAnnouncementTimeRangeInfo", method = RequestMethod.POST)
|
public ResponseEntity<String> saveAnnouncementTimeRangeInfo(@RequestBody JSONObject reqJson) {
|
// 核心业务参数校验(匹配表字段)
|
Assert.hasKeyAndValue(reqJson, "mpId", "请求报文中未包含外键编号mpId");
|
|
// 转换为POJO并补充默认值(可选)
|
AnnouncementTimeRangePo po = BeanConvertUtil.covertBean(reqJson, AnnouncementTimeRangePo.class);
|
|
// 调用Mapper的保存方法(匹配Mapper的namespace和id)
|
int insert = sqlSessionTemplate.insert("announcementTimeRangeServiceDaoImpl.saveAnnouncementTimeRangeInfo",
|
BeanConvertUtil.beanCovertMap(po));
|
|
// 构造返回结果(标准JSON格式)
|
JSONObject resJson = new JSONObject();
|
resJson.put("code", "0000");
|
resJson.put("msg", "保存成功");
|
resJson.put("count", insert);
|
return ResponseEntity.ok(resJson.toJSONString());
|
}
|
|
|
public void saveAnnouncementTimeRangeInfo(AnnouncementTimeRangePo po) {
|
|
// 调用Mapper的保存方法(匹配Mapper的namespace和id)
|
int insert = sqlSessionTemplate.insert("announcementTimeRangeServiceDaoImpl.saveAnnouncementTimeRangeInfo",
|
BeanConvertUtil.beanCovertMap(po));
|
}
|
|
|
/**
|
* 批量保存公告时间范围信息
|
*
|
* @param reqJson 请求参数(包含announcementTimeRangeList数组)
|
* @return 响应结果
|
* @serviceCode /announcementTimeRange/saveAnnouncementTimeRanges
|
* @path /app/announcementTimeRange/saveAnnouncementTimeRanges
|
*/
|
@RequestMapping(value = "/saveAnnouncementTimeRanges", method = RequestMethod.POST)
|
public ResponseEntity<String> saveAnnouncementTimeRanges(@RequestBody JSONObject reqJson) {
|
Assert.hasKeyAndValue(reqJson, "announcementTimeRangeList", "请求报文中未包含批量数据列表");
|
|
List<AnnouncementTimeRangePo> poList = BeanConvertUtil.covertBeanList(
|
reqJson.getJSONArray("announcementTimeRangeList"), AnnouncementTimeRangePo.class);
|
|
Map<String, Object> param = BeanConvertUtil.beanCovertMap(reqJson);
|
param.put("announcementTimeRangeList", poList);
|
|
int insert = sqlSessionTemplate.insert("announcementTimeRangeServiceDaoImpl.saveAnnouncementTimeRanges", param);
|
|
JSONObject resJson = new JSONObject();
|
resJson.put("code", "0000");
|
resJson.put("msg", "批量保存成功");
|
resJson.put("count", insert);
|
return ResponseEntity.ok(resJson.toJSONString());
|
}
|
|
/**
|
* 修改公告时间范围信息
|
*
|
* @param reqJson 请求参数
|
* @return 响应结果
|
* @serviceCode /announcementTimeRange/updateAnnouncementTimeRangeInfo
|
* @path /app/announcementTimeRange/updateAnnouncementTimeRangeInfo
|
*/
|
@RequestMapping(value = "/updateAnnouncementTimeRangeInfo", method = RequestMethod.POST)
|
public ResponseEntity<String> updateAnnouncementTimeRangeInfo(@RequestBody JSONObject reqJson) {
|
// 主键校验(修改必须传id)
|
Assert.hasKeyAndValue(reqJson, "id", "请求报文中未包含主键ID");
|
// Assert.isNumeric(reqJson.getString("id"), "主键ID必须为数字");
|
|
AnnouncementTimeRangePo po = BeanConvertUtil.covertBean(reqJson, AnnouncementTimeRangePo.class);
|
|
int update = sqlSessionTemplate.update("announcementTimeRangeServiceDaoImpl.updateAnnouncementTimeRangeInfo",
|
BeanConvertUtil.beanCovertMap(po));
|
|
JSONObject resJson = new JSONObject();
|
if (update > 0) {
|
resJson.put("code", "0000");
|
resJson.put("msg", "修改成功");
|
} else {
|
resJson.put("code", "0001");
|
resJson.put("msg", "修改失败,未找到对应记录");
|
}
|
resJson.put("count", update);
|
return ResponseEntity.ok(resJson.toJSONString());
|
}
|
|
/**
|
* 删除公告时间范围信息
|
*
|
* @param reqJson 请求参数
|
* @return 响应结果
|
* @serviceCode /announcementTimeRange/deleteAnnouncementTimeRangeInfo
|
* @path /app/announcementTimeRange/deleteAnnouncementTimeRangeInfo
|
*/
|
@RequestMapping(value = "/deleteAnnouncementTimeRangeInfo", method = RequestMethod.POST)
|
public ResponseEntity<String> deleteAnnouncementTimeRangeInfo(@RequestBody JSONObject reqJson) {
|
// 必要参数校验
|
Assert.hasKeyAndValue(reqJson, "id", "主键ID不能为空");
|
// Assert.isNumeric(reqJson.getString("id"), "主键ID必须为数字");
|
|
AnnouncementTimeRangePo po = BeanConvertUtil.covertBean(reqJson, AnnouncementTimeRangePo.class);
|
|
int delete = sqlSessionTemplate.delete("announcementTimeRangeServiceDaoImpl.deleteAnnouncementTimeRangeInfo",
|
BeanConvertUtil.beanCovertMap(po));
|
|
JSONObject resJson = new JSONObject();
|
if (delete > 0) {
|
resJson.put("code", "0000");
|
resJson.put("msg", "删除成功");
|
} else {
|
resJson.put("code", "0001");
|
resJson.put("msg", "删除失败,未找到对应记录");
|
}
|
resJson.put("count", delete);
|
return ResponseEntity.ok(resJson.toJSONString());
|
}
|
|
/**
|
* 分页查询公告时间范围信息列表
|
*
|
* @param mpId 外键编号(必传)
|
* @param page 页码(默认1)
|
* @param row 每页条数(默认10)
|
* @param id 主键ID(可选)
|
* @param plannedStart 拟公布起始年月(可选)
|
* @param publishedStart 已公布起始年月(可选)
|
* @return 响应结果
|
* @serviceCode /announcementTimeRange/queryAnnouncementTimeRangeInfo
|
* @path /app/announcementTimeRange/queryAnnouncementTimeRangeInfo
|
*/
|
@RequestMapping(value = "/queryAnnouncementTimeRangeInfo", method = RequestMethod.GET)
|
public ResponseEntity<String> queryAnnouncementTimeRangeInfo(
|
@RequestParam(value = "mpId") String mpId,
|
@RequestParam(value = "page", defaultValue = "1") int page,
|
@RequestParam(value = "row", defaultValue = "10") int row,
|
@RequestParam(value = "id", required = false) String id,
|
@RequestParam(value = "plannedAnnouncementStart", required = false) String plannedStart,
|
@RequestParam(value = "publishedAnnouncementStart", required = false) String publishedStart) {
|
|
// 封装查询参数(适配Mapper的查询条件)
|
AnnouncementTimeRangePo queryPo = new AnnouncementTimeRangePo();
|
queryPo.setMpId(mpId);
|
queryPo.setPage((page - 1) * row); // 转换为MySQL分页偏移量
|
queryPo.setRow(row);
|
|
if (id != null && !id.isEmpty()) {
|
queryPo.setId(Long.parseLong(id));
|
}
|
if (plannedStart != null && !plannedStart.isEmpty()) {
|
queryPo.setPlannedAnnouncementStart(plannedStart);
|
}
|
if (publishedStart != null && !publishedStart.isEmpty()) {
|
queryPo.setPublishedAnnouncementStart(publishedStart);
|
}
|
|
// 查询列表
|
List<Map<String, Object>> list = sqlSessionTemplate.selectList(
|
"announcementTimeRangeServiceDaoImpl.getAnnouncementTimeRangeInfo",
|
BeanConvertUtil.beanCovertMap(queryPo));
|
List<AnnouncementTimeRangePo> poList = BeanConvertUtil.covertBeanList(list, AnnouncementTimeRangePo.class);
|
|
// 查询总数
|
Object total = ((HashMap)sqlSessionTemplate.selectOne(
|
"announcementTimeRangeServiceDaoImpl.queryAnnouncementTimeRangeCount",
|
BeanConvertUtil.beanCovertMap(queryPo))).get("count");
|
|
// 构造分页返回结果
|
JSONObject resJson = new JSONObject();
|
resJson.put("code", "0000");
|
resJson.put("msg", "查询成功");
|
resJson.put("page", page);
|
resJson.put("row", row);
|
resJson.put("total", total);
|
resJson.put("data", poList);
|
|
return ResponseEntity.ok(resJson.toJSONString());
|
}
|
|
/**
|
* 根据ID查询单条公告时间范围信息
|
*
|
* @param id 主键ID
|
* @return 响应结果
|
* @serviceCode /announcementTimeRange/getAnnouncementTimeRangeById
|
* @path /app/announcementTimeRange/getAnnouncementTimeRangeById
|
*/
|
@RequestMapping(value = "/getAnnouncementTimeRangeById", method = RequestMethod.GET)
|
public ResponseEntity<String> getAnnouncementTimeRangeById(@RequestParam(value = "id") Long id) {
|
// 主键校验
|
Assert.notNull(id, "主键ID不能为空");
|
|
AnnouncementTimeRangePo queryPo = new AnnouncementTimeRangePo();
|
queryPo.setId(id);
|
|
Map<String, Object> result = sqlSessionTemplate.selectOne(
|
"announcementTimeRangeServiceDaoImpl.getAnnouncementTimeRangeInfo",
|
BeanConvertUtil.beanCovertMap(queryPo));
|
|
JSONObject resJson = new JSONObject();
|
if (result != null) {
|
resJson.put("code", "0000");
|
resJson.put("msg", "查询成功");
|
resJson.put("data", result);
|
} else {
|
resJson.put("code", "0001");
|
resJson.put("msg", "未找到对应记录");
|
}
|
|
return ResponseEntity.ok(resJson.toJSONString());
|
}
|
|
/**
|
* 查询公告时间范围统计信息
|
*
|
* @param mpId 外键编号(可选)
|
* @param startCreateTime 开始创建时间(可选,格式:yyyy-MM-dd HH:mm:ss)
|
* @param endCreateTime 结束创建时间(可选)
|
* @return 响应结果
|
* @serviceCode /announcementTimeRange/queryAnnouncementTimeRangeStatistics
|
* @path /app/announcementTimeRange/queryAnnouncementTimeRangeStatistics
|
*/
|
@RequestMapping(value = "/queryAnnouncementTimeRangeStatistics", method = RequestMethod.GET)
|
public ResponseEntity<String> queryAnnouncementTimeRangeStatistics(
|
@RequestParam(value = "mpId", required = false) String mpId,
|
@RequestParam(value = "startCreateTime", required = false) String startCreateTime,
|
@RequestParam(value = "endCreateTime", required = false) String endCreateTime) {
|
|
AnnouncementTimeRangePo queryPo = new AnnouncementTimeRangePo();
|
queryPo.setMpId(mpId);
|
queryPo.setStartCreateTime(startCreateTime);
|
queryPo.setEndCreateTime(endCreateTime);
|
|
Map<String, Object> statistics = sqlSessionTemplate.selectOne(
|
"announcementTimeRangeServiceDaoImpl.queryAnnouncementTimeRangeStatistics",
|
BeanConvertUtil.beanCovertMap(queryPo));
|
|
JSONObject resJson = new JSONObject();
|
resJson.put("code", "0000");
|
resJson.put("msg", "统计成功");
|
resJson.put("data", statistics);
|
|
return ResponseEntity.ok(resJson.toJSONString());
|
}
|
|
/**
|
* 按月份分组统计公告时间范围信息
|
*
|
* @param mpId 外键编号(可选)
|
* @param startCreateTime 开始创建时间(可选)
|
* @param endCreateTime 结束创建时间(可选)
|
* @return 响应结果
|
* @serviceCode /announcementTimeRange/queryAnnouncementTimeRangeByMonth
|
* @path /app/announcementTimeRange/queryAnnouncementTimeRangeByMonth
|
*/
|
@RequestMapping(value = "/queryAnnouncementTimeRangeByMonth", method = RequestMethod.GET)
|
public ResponseEntity<String> queryAnnouncementTimeRangeByMonth(
|
@RequestParam(value = "mpId", required = false) String mpId,
|
@RequestParam(value = "startCreateTime", required = false) String startCreateTime,
|
@RequestParam(value = "endCreateTime", required = false) String endCreateTime) {
|
|
AnnouncementTimeRangePo queryPo = new AnnouncementTimeRangePo();
|
queryPo.setMpId(mpId);
|
queryPo.setStartCreateTime(startCreateTime);
|
queryPo.setEndCreateTime(endCreateTime);
|
|
List<Map<String, Object>> list = sqlSessionTemplate.selectList(
|
"announcementTimeRangeServiceDaoImpl.queryAnnouncementTimeRangeByMonth",
|
BeanConvertUtil.beanCovertMap(queryPo));
|
|
JSONObject resJson = new JSONObject();
|
resJson.put("code", "0000");
|
resJson.put("msg", "统计成功");
|
resJson.put("data", list);
|
|
return ResponseEntity.ok(resJson.toJSONString());
|
}
|
|
/**
|
* 根据mpId查询最新的公告时间范围信息
|
*
|
* @param mpId 外键编号
|
* @return 响应结果
|
* @serviceCode /announcementTimeRange/getLatestAnnouncementTimeRangeByMpId
|
* @path /app/announcementTimeRange/getLatestAnnouncementTimeRangeByMpId
|
*/
|
@RequestMapping(value = "/getLatestAnnouncementTimeRangeByMpId", method = RequestMethod.GET)
|
public ResponseEntity<String> getLatestAnnouncementTimeRangeByMpId(@RequestParam(value = "mpId") String mpId) {
|
Assert.notNull(mpId, "外键编号mpId不能为空");
|
|
AnnouncementTimeRangePo queryPo = new AnnouncementTimeRangePo();
|
queryPo.setMpId(mpId);
|
|
Map<String, Object> result = sqlSessionTemplate.selectOne(
|
"announcementTimeRangeServiceDaoImpl.getLatestAnnouncementTimeRangeByMpId",
|
BeanConvertUtil.beanCovertMap(queryPo));
|
|
JSONObject resJson = new JSONObject();
|
if (result != null) {
|
resJson.put("code", "0000");
|
resJson.put("msg", "查询成功");
|
resJson.put("data", result);
|
} else {
|
resJson.put("code", "0001");
|
resJson.put("msg", "未找到对应记录");
|
}
|
|
return ResponseEntity.ok(resJson.toJSONString());
|
}
|
}
|