一、前言

        前后端分离的项目中,前端工作人员会要求后端返回指定格式的JSON数据,如果后端人员经验不足,会花费大量时间思考如何封装数据。如果开发思路不佳,可能会带来很多不必要的中间变量造成代码冗长,甚至可能影响到数据库,因此这里提供一种解决方案。

二、流程

1、Api文档

假设前端要求返回如下JSON数据格式

2、后端代码

Controller层

@Api(tags = "BloodBaseController")
@RestController
@RequestMapping("/user/blood-manage")
public class BloodBaseController {

    @Autowired
    BloodBaseServiceImpl bloodBaseService;

    @GetMapping("/query-total-bloodbase")
    @ApiOperation("查询血库信息")
    public Result queryBloodBaseInventory(){
        
        Map<String, Object> hashMap = new HashMap<>();
        List<BloodInventory> bloodInventory = bloodBaseService.queryBloodBaseInventory();
        hashMap.put("bloodInventory", bloodInventory);

        if(bloodInventory == null){
            return Result.fail("查询失败");
        }
        return Result.succ(hashMap);
    }
}

Mapper层

@Mapper
@Repository
public interface BloodBaseMapper {

    //查询血库目前状态
    public List<BloodInventory> queryBloodBaseInventory();

}

 Service层

public interface BloodBaseService {

    //查询血库目前状态
    public List<BloodInventory> queryBloodBaseInventory();

}
​
@Service
public class BloodBaseServiceImpl implements BloodBaseService{

    @Autowired
    BloodBaseMapper bloodBaseMapper;

    //查询血库目前状态
    @Override
    public List<BloodInventory> queryBloodBaseInventory(){ return bloodBaseMapper.queryBloodBaseInventory(); }

}

xml文件

<mapper namespace="com.scau.petsafety.mapper.user.BloodBaseMapper">

    <resultMap id="AllBloodInventory" type="BloodInventory">
        <result property="bid" column="bid"/>
        <result property="bloodType" column="bloodType"/>
        <result property="inventory" column="inventory"/>
        <result property="state" column="state"/>
    </resultMap>

    <select id="queryBloodBaseInventory" resultMap="AllBloodInventory">
        select bid, blood_type bloodType, inventory, state
        from blood_inventory
    </select>

</mapper>

 三、测试

测试结果符合前端格式要求 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐