package com.ruoyi.account.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ruoyi.account.api.dto.ChargingCardBalanceDTO; import com.ruoyi.account.api.dto.ChargingCardExcelDTO; import com.ruoyi.account.api.dto.ChargingCardQueryDTO; import com.ruoyi.account.api.dto.ChargingCardSaveDTO; import com.ruoyi.account.api.dto.ChargingCardStatusDTO; import com.ruoyi.account.api.model.TChargingCard; import com.ruoyi.account.service.TChargingCardService; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.security.annotation.Logical; import com.ruoyi.common.security.annotation.RequiresPermissions; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.util.List; @Api(tags = "卡片管理") @RestController @RequestMapping("/t-charging-card") public class TChargingCardController extends BaseController { @Autowired private TChargingCardService chargingCardService; @ApiOperation(value = "分页查询卡片列表") @RequiresPermissions(value = {"/chargingCard/list"}, logical = Logical.OR) @PostMapping("/page") public R> page(@RequestBody ChargingCardQueryDTO query) { return R.ok(chargingCardService.selectCardPage(query)); } @ApiOperation(value = "新增卡片") @RequiresPermissions(value = {"/chargingCard/add"}, logical = Logical.OR) @PostMapping public R add(@RequestBody ChargingCardSaveDTO dto) { return R.ok(chargingCardService.saveCard(dto)); } @ApiOperation(value = "编辑卡片") @RequiresPermissions(value = {"/chargingCard/edit"}, logical = Logical.OR) @PutMapping public R edit(@RequestBody ChargingCardSaveDTO dto) { return R.ok(chargingCardService.updateCard(dto)); } @ApiOperation(value = "删除卡片") @RequiresPermissions(value = {"/chargingCard/delete"}, logical = Logical.OR) @DeleteMapping public R delete(@RequestBody List ids) { return R.ok(chargingCardService.deleteCards(ids)); } @ApiOperation(value = "更新卡片启用状态") @RequiresPermissions(value = {"/chargingCard/status"}, logical = Logical.OR) @PutMapping("/status") public R status(@RequestBody ChargingCardStatusDTO dto) { return R.ok(chargingCardService.updateStatus(dto)); } @ApiOperation(value = "批量更新卡片余额") @RequiresPermissions(value = {"/chargingCard/balance"}, logical = Logical.OR) @PutMapping("/balance") public R balance(@RequestBody ChargingCardBalanceDTO dto) { return R.ok(chargingCardService.updateBalance(dto)); } @ApiOperation(value = "导出卡片") @RequiresPermissions(value = {"/chargingCard/export"}, logical = Logical.OR) @PutMapping("/export") public void export(HttpServletResponse response, @RequestBody ChargingCardQueryDTO query) { ExcelUtil util = new ExcelUtil<>(ChargingCardExcelDTO.class); util.exportExcel(response, chargingCardService.selectExportList(query), "卡片数据"); } @ApiOperation(value = "下载卡片导入模板") @RequiresPermissions(value = {"/chargingCard/import"}, logical = Logical.OR) @GetMapping("/import-template") public void importTemplate(HttpServletResponse response) { ExcelUtil util = new ExcelUtil<>(ChargingCardExcelDTO.class); util.importTemplateExcel(response, "卡片数据"); } @ApiOperation(value = "导入卡片") @RequiresPermissions(value = {"/chargingCard/import"}, logical = Logical.OR) @PostMapping("/import") public R importData(@RequestPart("file") MultipartFile file) throws Exception { ExcelUtil util = new ExcelUtil<>(ChargingCardExcelDTO.class); List cards = util.importExcel(file.getInputStream()); return R.ok(chargingCardService.importCards(cards)); } }