发表于: 2017-12-30 20:59:37

0 348


一.今天完成的主要事情

1.完成学习模块的后台接口

这是昨天整理出来的接口文档,今天是将这些接口全部实现

贴两个接口的代码


/**
* 查询资讯列表接口
*
* @param
* @return
* @throws ServiceException
* @throws ServiceDaoException
*/

@RequestMapping(value = "/a/u/information/list", method = RequestMethod.GET)
public String getSubjectOperationList(HttpServletRequest request, HttpServletResponse response, ModelMap model,
String title, Integer subjectType, Integer type, Integer status, Integer page,
Integer size) throws Exception {
//打印入参
   log.info("Interface GET /a/u/information/list, Method getSubjectOperationList() parameters: title: " + title +
", subjectType: " + subjectType + ", type: " + type + ", status: " + status);
int actualSize = ParamsUtil.calculateActualSize(size);
int startPosition = ParamsUtil.calculateStartPosition(page, size);
log.info("page: " + startPosition + ", size:" + actualSize);

int validateResult = ParamsUtil.checkParametersOfGetSubjectOperationList(subjectType, type, status);
if (validateResult != 0) {
model.addAttribute("code", validateResult);
return "/common/failure";
}

try {
Map<String, Object> querySubjectOperationMap = DynamicUtil.getSubjectOperationListParams(title, subjectType, type, status, false);
List<Long> subjectOperationIdList = subjectOperationService.getIdsByDynamicCondition(SubjectOperation.class, querySubjectOperationMap, startPosition, actualSize);
log.info("get subjectOperation id list, list size is : " + subjectOperationIdList.size());

List<SubjectOperation> subjectOperationList = null;
Long total = 0L;
if (CollectionUtils.isNotEmpty(subjectOperationIdList)) {
subjectOperationList = subjectOperationService.getObjectsByIds(subjectOperationIdList);
log.info("get subjectOperation data list, list size is: " + subjectOperationList.size());

Map<String, Object> countSubjectOperationMap = DynamicUtil.getSubjectOperationListParams(title, subjectType, type, status, true);
total = subjectOperationService.getIdsByDynamicCondition(SubjectOperation.class, countSubjectOperationMap, 0, Integer.MAX_VALUE).get(0);
log.info("count subjectOperation total is : " + total);
}

model.addAttribute("code", 0);
model.addAttribute("size", actualSize);
model.addAttribute("total", total);
model.addAttribute("subjectOperationList", subjectOperationList);

return "/yi-nucleus-service/subjectOperation/json/subjectOperationListJson";
} catch (Throwable t) {
log.error(t.getMessage());
log.error("Method getSubjectOperationList() failed : title: " + title + ", subjectType: "
               + subjectType + ", type: " + type + ", status: " + status);
model.addAttribute("code", -1);
return "/common/failure";
}
}


还有拖动排序接口,这是这些接口中还算是比较复杂的接口了

/**
* 资讯拖动排序
*
* @param
* @return
* @throws ServiceException
* @throws ServiceDaoException
*/

@RequestMapping(value = "/a/u/information/sort", method = RequestMethod.PUT)
public String sortInformation(HttpServletRequest request, HttpServletResponse response, ModelMap model, @RequestParam Long[] ids) throws Exception {
log.info("Interface PUT /a/u/information/sort, Method sortInformation() parameters : ids : " + ParamsUtil.convertArrayToString(ids));

if (ids == null || ids.length == 0) {
log.info("Parameter ids can not be noll or empty!");
model.addAttribute("code", -1000);
return "/common/failure";
}

try {
List<SubjectOperation> subjectOperationList = subjectOperationService.getObjectsByIds(Arrays.asList(ids));
log.info("get subjectOperation list by ids, list size is : " + subjectOperationList.size());

if (subjectOperationList.size() < ids.length) {
log.info("Error value of parameter ids, ids is : " + ParamsUtil.convertArrayToString(ids));
model.addAttribute("code", -1001);
return "/common/failure";
}

Long managerId = ManagerUtil.getManagerId(cookieUtil, request);
for (int i = 0; i < ids.length; i++) {
SubjectOperation subjectOperation = subjectOperationList.get(i);
subjectOperation.setSort((i + 1) * 10);
subjectOperation.setUpdateBy(managerId);
}
subjectOperationService.updateList(subjectOperationList);
log.info("update subject operation list field sort success");

model.addAttribute("code", 0);
return "/common/success";
} catch (Throwable t) {
log.error(t.getMessage());
log.error("Method sortInformation() parameters : ids : " + ParamsUtil.convertArrayToString(ids));
model.addAttribute("code", -1);
return "/common/failure";
}
}

代码量都不大

2.尝试完成 学员端的  获取练习题目ID列表接口

初步实现了功能,但是还需要继续重构,但还存在一个问题,该接口的目的本来是获取所有种类练习的题目Id以及题目状态,但是由于获取模拟考试的试题逻辑和其他的部分都不一样,而且需要查询数据,然后再做判断,所以这部分功能要拆分出来

代码就不贴了,还有一部分需要重写


二.明天计划完成的事情

1.将该接口的代码进行重构,一些繁杂的逻辑判断提取到函数中来

2.继续完成学员端的部分


三,遇到的问题

以上

除此之外,还有一个问题,没办法解决

当需要按照考点来获取考题的时候,需要模糊查询数据表中的某个字段,首先考虑到的是用动态查询,

使用了动态查询之后,发现是可以查出来数据的,但是在返回数据的时候却报类型转换异常错误,

如图,service显示没有问题

但是在web的日志中就报错

提示正数类型的包装类型不能转换成为数学包中的BigInteger类型

目前还解决不了,明天有时间了在群里讨论一下吧


四.收获

以上


五,项目进度情况

暂无延期风险



返回列表 返回列表
评论

    分享到