后端开发技巧(四)

后端开发技巧(四)

1. 将数据库的时间 返回成 xx:xx:xx 添加以下配置


spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8

2. 使用Swagger注解时

  • CUID 的注解规范

    
        @PostMapping("/add")
        @ApiOperation("添加通知消息-标准产品生产任务表")
        public ServiceResult addTaskWorkflow(HttpServletRequest request, @RequestBody RequireTask requireTask) {
    
            ServiceResult result = requireTaskService.add(requireTask);
            return result;
        }
    
    
        @DeleteMapping ("/remove/{id}")
        @ApiOperation("根据id删除通知消息-标准产品生产任务表")
        @ApiImplicitParams({
                @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "String", paramType = "query")})
    
        public ServiceResult remove(@PathVariable("id") String id) {
            ServiceResult result = requireTaskService.remove(Integer.parseInt(id));
            return result;
        }
    
        @PutMapping(value = "/modify/{id}")
        @ApiOperation(value = "编辑通知消息-标准产品生产任务表", notes = "以HTTP形式提供编辑系统版本说明的接口,以JSON格式数据响应编辑结果,用于实现编辑系统版本说明的功能的开发,使用接口前请先登录,若无账号请先注册")
        @ApiImplicitParam(name = "Authorization", value = "token", required = false, dataType = "String", paramType = "header")
        public ServiceResult modify(HttpServletRequest request, @RequestBody RequireTask requireTask, @PathVariable Integer id) {
    
            System.out.println(requireTask.toString());
            return requireTaskService.modify(requireTask,id);
        }
    
        @GetMapping("/search")
        @ApiOperation(value = "单表查询通知消息-标准产品生产任务表", notes = "以HTTP形式提供多条件查询的接口,以JSON格式数据响应查询结果,用于实现查询主任务的功能的开发")
        @ApiImplicitParams({
                @ApiImplicitParam(name = "requireTaskId", value = "任务标识号", required = false, dataType = "String", paramType = "query"),
                @ApiImplicitParam(name = "priority", value = "紧急程度", required = false, dataType = "Integer", paramType = "query"),
                @ApiImplicitParam(name = "targetLevel", value = "目标产品级别", required = false, dataType = "String", paramType = "query"),
                @ApiImplicitParam(name = "status", value = "状态", required = false, dataType = "Integer", paramType = "query"),
                @ApiImplicitParam(name = "pageNum", value = "页数", required = false, dataType = "Integer", paramType = "query"),
                @ApiImplicitParam(name = "pageSize", value = "每页的个数", required = false, dataType = "Integer", paramType = "query"),
        })
        public ServiceResult search(String requireTaskId, String priority, Integer targetLevel, String status,Integer pageNum, Integer pageSize) {
    
            ServiceResult result = requireTaskService.search( requireTaskId,  priority,  targetLevel,  status, pageNum,  pageSize);
            return result;
        }
    
    
    

3. 前后端传数据

  • 如果前端有部分数据可以输入到后台,而个别数据无法输入,则应该检查前端和后端字段是否对应
  • 前端的弹框提示 一般是后端返回的Message,有问题,可以先看返回的消息
  • 传参,如果没有传到后台,则应该打开网络,去看是否传递到了数据
  • 对于查询,应该使用Get请求,因为Get可以看到查询的条件。VUE将字符串拼接不会在地址栏显示,在封装,所以不影响
  • 返回数据的时候,应该以Map的形式,以及返回total 总条数。

4. 更新语句

根据一个字段对相同字段的其他行的其余属性进行统一更改

   <update id="modifyByPlanId" parameterType="cn.piesat.sar.entity.PlanInfo">
        UPDATE sar_standard_plan
        <set>
            <if test="transferStatus!=null">
                transfer_status=#{transferStatus},
            </if>
            <if test="checkResult!=null">
                check_result=#{checkResult}
            </if>
        </set>
        WHERE plan_id=#{planID}
    </update>

5. 添加多条记录

  • Controller
 @PostMapping("/addBatch")
    @ApiOperation("添加多条计划表")
    public ServiceResult addPlanInfoBatch(HttpServletRequest request, @RequestBody List<PlanInfo> planInfoList) {
        ServiceResult result = planService.addPlanInfoBatch(planInfoList);
        return result;
    }
  • Service 使用forEach进行操作遍历插入

    @Override
     public ServiceResult addPlanInfoBatch(List<PlanInfo> planInfoList) {
         ServiceResult result = new ServiceResult(false);
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
         for(PlanInfo planInfo :planInfoList){
             //        跟踪开始时间
             planInfo.setAccessStartTime(sdf.format(new Date()));
             //        跟踪结束时间
             planInfo.setAccessEndTime(sdf.format(new Date()));
             //        数传开始时间
             planInfo.setDataStartingtime(sdf.format(new Date()));
             //        数传结束时间
             planInfo.setDataEndingtime(sdf.format(new Date()));
             int status = mapper.insert(planInfo);
             if (status > 0) {
                 result.setSuccess(true);
                 result.success(status, "添加成功", 0);
             } else {
                 result.failed(status, "添加失败", -1);
             }
         }
         return result;
     }
    
    
  • Mapper 层 调插入语句 就可以了

6. 小补充

Spring Boot 自动封装了 Tomcat

Spring Cloud 有 GetWay 这个概念

mybatis 最基础的配置

#xml 扫描路径
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=cn.piesat.sar.entity
#打印日志配置
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
# 将带有下划线的表字段映射为驼峰格式的实体类属性
mybatis.configuration.map-underscore-to-camel-case=true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值