package com.cdzy.operations.controller; import com.cdzy.common.ex.EbikeException; import com.cdzy.common.model.request.PageParam; import com.cdzy.common.model.response.JsonResult; import com.cdzy.operations.enums.BatteryStatus; import com.cdzy.operations.model.entity.EbikeBatteryInfo; import com.cdzy.operations.model.vo.EbikeBatteryInfoIdVo; import com.cdzy.operations.model.vo.EbikeBatteryInfoVo; import com.cdzy.operations.service.EbikeBatteryInfoService; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.update.UpdateChain; import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Objects; import static com.cdzy.operations.model.entity.table.EbikeBatteryInfoTableDef.EBIKE_BATTERY_INFO; /** * 电池基本信息 控制层。 * * @author attiya * @since 2025-09-15 */ @RestController @RequestMapping("/ebikeBatteryInfo") public class EbikeBatteryInfoController { @Resource private EbikeBatteryInfoService ebikeBatteryInfoService; /** * 生产电池二维码。 * * @param ebikeBatteryInfo 电池基本信息 * @return {@code true} 添加成功,{@code false} 添加失败 */ @PostMapping("addBattery") public JsonResult save(@RequestBody EbikeBatteryInfoVo ebikeBatteryInfo) throws Exception { ebikeBatteryInfoService.addBattery(ebikeBatteryInfo); return JsonResult.success(); } /** * 绑定电池二维码。 * * @param batteryId 电池ID * @return {@code true} 添加成功,{@code false} 添加失败 */ @GetMapping("bind") public JsonResult bind(@RequestParam("batteryId")Long batteryId){ EbikeBatteryInfo batteryInfo = ebikeBatteryInfoService.getById(batteryId); if (batteryInfo == null) { throw new EbikeException("电池ID错误"); } batteryInfo.setStatus(BatteryStatus.BIND); ebikeBatteryInfoService.updateById(batteryInfo); return JsonResult.success(); } /** * 批量绑定电池二维码。 * * @param ids 电池ID集合 * @return {@code true} 添加成功,{@code false} 添加失败 */ @GetMapping("batchBind") public JsonResult batchBind(@RequestBody EbikeBatteryInfoIdVo ids){ UpdateChain.of(EbikeBatteryInfo.class) .set(EbikeBatteryInfo::getStatus, BatteryStatus.BIND) .where(EbikeBatteryInfo::getBatteryId).in(ids.getBatteryIds()); return JsonResult.success(); } /** * 根据主键删除电池二维码信息。 * * @param batteryId 主键 * @return {@code true} 删除成功,{@code false} 删除失败 */ @PostMapping("remove") public JsonResult remove(@RequestParam(value = "batteryId") Long batteryId) { ebikeBatteryInfoService.removeById(batteryId); return JsonResult.success(); } /** * 查询所有电池二维码信息。 * * @return 所有数据 */ @GetMapping("list") public JsonResult list() { List list = ebikeBatteryInfoService.list(); return JsonResult.success(list); } /** * 分页查询电池二维码信息。 * * @param pageParam 分页对象 * @return 分页对象 */ @GetMapping("page") public JsonResult page(PageParam pageParam,Integer status) { QueryWrapper queryWrapper = QueryWrapper.create() .where(EBIKE_BATTERY_INFO.STATUS.eq(status, Objects.nonNull(status))); Page page = ebikeBatteryInfoService.page(pageParam.getPage(),queryWrapper); return JsonResult.success(page); } }