为了账号安全,请及时绑定邮箱和手机立即绑定

这段代码我是直接写在Controller上面得,但是我想改为写在Service上请问应该怎么改呢

这段代码我是直接写在Controller上面得,但是我想改为写在Service上请问应该怎么改呢

小怪兽爱吃肉 2019-04-26 18:19:18
//查询     @ApiOperation(value="船东发布展示信息列表", notes="船东发布展示信息列表的接口")     @RequestMapping(value = "/findContent" , method = RequestMethod.POST)     @ApiImplicitParams({             @ApiImplicitParam(name="startDate", value="开始时间", required=false),             @ApiImplicitParam(name="endDate", value="结束时间", required=false),             @ApiImplicitParam(name="startLoading", value="最小吨数", required=false),             @ApiImplicitParam(name="endLoading", value="最大吨数", required=false),             @ApiImplicitParam(name="typeShip", value="船舶类型", required=false),             @ApiImplicitParam(name="emptyPort", value="港口", required=false)     })     public SysResult find(Date startDate,Date endDate , String startLoading , String endLoading,                              Long typeShip , Long emptyPort){         try{             EntityWrapper<ShipRelease> wrapper = new EntityWrapper<>();             //只能状态为发布中的数据展示出来             wrapper.where( "state = {0}  ", 4 );             //筛选时间日期             if(startDate != null && endDate != null) {                 wrapper.where( "empty_date >= {0}  ", startDate );                 wrapper.and( " empty_date <= {0}", endDate );             }             //筛选两数值之剑             if(startLoading != null && endLoading != null) {             wrapper.where( "tonnage_loading >= {0}  ", startLoading );             wrapper.and( " tonnage_loading <= {0}", endLoading );             }             //筛选类型1             if(typeShip != null) wrapper.where("type_ship={0}", typeShip);             //筛选类型2             if(emptyPort != null) wrapper.where("empty_port={0}", emptyPort);             wrapper.setSqlSelect("id, title,empty_date,aircraft_sky,tonnage_loading,type_ship");             List<ShipRelease> shipReleaseList =  webShipownerReleaseShowMapper.selectList( wrapper );             return SysResult.ok(shipReleaseList);         }catch (Exception e){             e.printStackTrace();             return SysResult.build(201,"查询失败");         }     }使用得是spring-boot+mybatisPlus
查看完整描述

5 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

方法重写之后,之后解决了这个问题


查看完整回答
反对 回复 2019-05-14
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

如果挪动到Service中定义,那么find方法的每个参数都应该进行判空处理。
其次,这个webShipownerReleaseShowMapper变量是在哪里定义的,有没有可能是空指针?
最后,空指针应该是很容易定位的,看到异常的那行的代码是对那个对象进行的.操作。

查看完整回答
反对 回复 2019-05-14
?
慕容森

TA贡献1853条经验 获得超18个赞

将find方法的代码整体搬迁到Service中,然后在Controller中,调用这个Service的find就行了


查看完整回答
反对 回复 2019-05-14
?
月关宝盒

TA贡献1772条经验 获得超5个赞

不知道你是那个传参导致不能放到Service中,find的入参都是java自带类型,肯定可以传的,其他的内部变量类型,应该也是可以跨包使用的,有更多的不能正常使用说明或者日志吗,如果写在service上的话,就会抛空指针异常,因为我controller,会有可能转null值到Service上,@ApiImplicitParam的required属性应该是可以限制是否必入和为空的,而内部变量就自己用代码检测null值,应该可以减少一部分代码


查看完整回答
反对 回复 2019-05-14
  • 5 回答
  • 0 关注
  • 889 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信