这里只列出我自己接触的部分
持久层框架:Mybatis plus + 前端框架: layui + APP框架:APICloud
网上的解决方法:1. select max(id) from tablename 2.SELECT LAST_INSERT_ID() 函数
实际解决方法:使用Mybatis plus : insert 后主键会自动 set 到实体的 ID 字段,所以只需要 getId() 就好
网上的解决方法:1.修改select的查询条件,因为项目中采用多个中间表表示数据间的关系,涉及到的多表联查比较麻烦(其实就是我不会。。)所以没有采用本方法
实际解决方法:将获取到的所有用户/场站id存入List中,用for循环判断当前id对应的状态是否为"删除",为"删除"时,将List对应的项删除。注意List.remove(i)时会导致列表长度变化,应在循环体中i - -。
//这个方法好像也是对的
Iterator<String> it = list.iterator();
while(it.hasNext()){
String x = it.next();
if(x.equals("del")){
it.remove();
}
}
原因:猜测是因为error为系统保留字段
解决方法:return “error1” 就可以了
原因:select可能取到的值为空而不是预想的实体,null的get()会报空指针异常
解决方法:1.select后判断返回值是否为空,不为空时再用get方法 2.用try catch
在登陆时用户信息会保存在session中
// TbUserController中的登陆部分
request.getSession().setAttribute("TB_USER",tbUser);
获取当前操作的用户id,可以先获取到session,将session强转为user实体,然后用get()方法取得用户id
// 函数参数部分需要HttpServletRequest request
HttpSession session = request.getSession(true);
TbUser user=(TbUser)session.getAttribute("TB_USER");
int id = user.getUserId();
原方法:jsp页面添加一个返回按钮,点击退回
onclick="javascript:history.go(-1);
这样的问题是返回的页面并不会刷新
解决方法:在controller中重定向 return “redirect: (目标页面路径)”
Integer.parseInt()// String 转 int
JSONObject.toJSONString()// String 转 JSON
前提是引入个推(个信?)的各种包
PushUtil.pushOne("标题", "内容","设备id");//推送给某个用户
PushUtil.pushAll("标题", "内容");//推送给所有用户
ITbTaskService.insert(task);//增
ITbTaskService.deleteById(id);//删
ITbTaskService.updateById(task);//改
ITbTaskService.selectOne(new EntityWrapper<TbTask>().eq("task_id",taskId))//查
优化方法:将所有数据存入一个list中,然后insertBatch(list)
实测插入速度增加一倍(但是整个操作仍然很慢,是for循环赋值的时间太长?)
/**
* 用户登录,成功返回用户信息
* @param userName 账号
* @param userPassword 密码
* @param request
* @return
*/
@ApiOperation(value="APP用户登录,成功返回用户信息",notes="APP用户登录,成功返回用户信息")
@GetMapping(value="/login")
@ApiImplicitParams({
@ApiImplicitParam(name="userName",value="手机号",dataType="string", paramType = "query",example="15771335697",required = true),
@ApiImplicitParam(name="userPassword",value="密码",dataType="string", paramType = "query",example="123456",required = true)})
public ResultEntity findByUserNameAPP(String userName, String userPassword, HttpServletRequest request){
//这里写登陆判断,成功时返回对应user实体
return ResultEntity.success(user);
}
@Transactional //在函数前加这个注释
本来我们做的巡检系统有自己的登陆、消息、用户管理模块,现在要集成在门户系统上 ,登陆要由门户系统验证,待办事项需要推送到门户首页,用户增删会导致门户登陆出错。目前无解决方案,以后项目设计阶段需要注意!
不要用==,用equal()
1.完善与其他系统对接的接口
2.加快新建巡检任务时的速度
3.改进任务审核模块(审核流程可视化)
4.增加审核时的详情展示页面
5.改进分页及搜索的索引范围、展示顺序
6.新增厂站时自动关联/新建甲方账户
7.对站点信息进行补充(服务期限、自动获取当前缴费情况)
8.对异常数据进行分析,获取有价值信息