一、前言

        前后端分离的项目中,前端工作人员会要求后端返回指定格式的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>

 三、测试

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

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 4 个月前
8c391e04 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐