Java解析Text格式参数
package com.sf.XXX.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
import com.sf.XWFS.constant.BoardConst;
import com.sf.XWFS.query.BoardDTO;
import com.sf.XWFS.service.BoardService;
import com.sf.XWFS.util.AESUtil;
import com.sf.XWFS.util.DESUtil;
import com.sf.XWFS.vo.BoardResponseParam;
import com.sf.XWFS.vo.BoardVO;
import com.sf.erui.common.response.Response;
import com.sf.erui.common.response.ResponseHelper;
import io.swagger.annotations.ApiOperation;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author: yachun
* @description: 看板管理
*/
@RequestMapping("/board")
@RestController
public class BoardController {
private Logger logger = LoggerFactory.getLogger(BoardController.class);
@Resource
private BoardService boardService;
public String encryptKey = BoardConst.KANBAN_ENCRYPTKEY;
public String ivParameter = BoardConst.KANBAN_IVPARAMETER;
@PostMapping("/queryBoard")
public String pushData(@RequestBody String param) {
logger.info("进入到看板查询数据的接口了--------------------queryBoard-----------------------------");
long startTm = System.currentTimeMillis();
BoardResponseParam kbResponseParam = new BoardResponseParam();
try {
logger.info("--------queryBoard---------------kb请求参数:" + param);
//解密
String kbParam = AESUtil.getInstance().decrypt(param, "UTF-8", encryptKey, ivParameter);
BoardDTO boardDto = JSON.parseObject(kbParam, BoardDTO.class);
logger.info("kb请求参数解密:" + kbParam);
boardDto.setPageNum(boardDto.getPageNum() != null ? boardDto.getPageNum() : 1);
boardDto.setPageSize(boardDto.getPageSize() != null ? boardDto.getPageSize() : 500);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
boardDto.setStartTime2(boardDto.getStartTime() != null ? sdf.format(boardDto.getStartTime()) : null);
boardDto.setEndTime2(boardDto.getEndTime()!= null ? sdf.format(boardDto.getEndTime()) : null);
PageHelper.startPage(boardDto.getPageNum(), boardDto.getPageSize());
List<BoardVO> kbList = boardService.queryBoard(boardDto);
PageInfo<BoardVO> pageInfo = new PageInfo<>(kbList);
kbResponseParam.setCode(1);
kbResponseParam.setCurrentPage(pageInfo.getPageNum());
kbResponseParam.setPageSize(pageInfo.getPageSize());
kbResponseParam.setPageTotal(pageInfo.getPages());
kbResponseParam.setQuantity(kbList.size());
kbResponseParam.setDate(kbList);
try {
int pages = 0;
int totalCount = boardService.queryBoardCount(boardDto);
if (boardDto.getPageSize() != null) {
if (boardDto.getPageSize() > totalCount) {
pages = 1;
} else if (totalCount % pageInfo.getPageSize() == 0) {
pages = totalCount / pageInfo.getPageSize();
} else {
pages = totalCount / pageInfo.getPageSize() + 1;
}
kbResponseParam.setPageTotal(pages);
}
} catch (Exception e) {
e.printStackTrace();
logger.error("--------queryBoard--------------看板获取总页数错误:" + e);
}
} catch (Exception e) {
logger.error("--------queryBoard--------------给看板传输数据错误:" + e);
kbResponseParam.setCode(-1);
}
long endTm = System.currentTimeMillis() - startTm;
logger.info("KB获取的查询数据的时间为" + endTm + "毫秒");
return dealEncrypt(kbResponseParam);
}
private String dealEncrypt(BoardResponseParam kbResponseParam) {
String encrypt = null;
try {
encrypt = AESUtil.getInstance().encrypt(JSONObject.toJSONString(kbResponseParam), "UTF-8", encryptKey, ivParameter);
encrypt = encrypt.replaceAll("\r\n", "");
encrypt = encrypt.replaceAll("\n", "");
} catch (Exception e) {
logger.error("对接看板返回数据加密出错,数据为:" + JSONObject.toJSONString(kbResponseParam));
throw new RuntimeException(e);
}
return encrypt;
}
}
接收参数BoardDTO
package com.sf.XWFS.query;
import java.util.Date;
/**
* @author: yachun
* @description: 看板管理
*/
public class BoardDTO {
private String projectName;
private Integer pageSize;
private Date startTime;
private Date endTime;
private Integer pageNum;
private String startTime2;
private String endTime2;
响应BoardResponseParam
package com.sf.XWFS.vo;
import java.util.List;
/**
* @author: yachun
* @description: 看板管理
*/
public class BoardResponseParam {
private Integer code;
private Integer currentPage;
private Integer quantity;
private Integer pageTotal;
private Integer pageSize;
private List<BoardVO> date;