package com.ruoyi.account.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.account.api.dto.AppUserWhitelistImportDTO; import com.ruoyi.account.api.dto.AppUserWhitelistQueryDTO; import com.ruoyi.account.api.dto.AppUserWhitelistSaveDTO; import com.ruoyi.account.api.model.TAppUserWhitelist; import com.ruoyi.account.api.vo.AppUserWhitelistMatchVO; import com.ruoyi.account.api.vo.AppUserWhitelistImportResultVO; import com.ruoyi.account.service.TAppUserWhitelistService; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.log.enums.OperatorType; 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.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; /** * 白名单用户管理 */ @Api(tags = "白名单用户管理") @RestController @RequestMapping("/t-app-user-whitelist") public class TAppUserWhitelistController { @Resource private TAppUserWhitelistService whitelistService; @ApiOperation("分页查询白名单用户") @RequiresPermissions(value = {"/appUserWhitelist/list"}, logical = Logical.OR) @PostMapping("/page") public R> page(@RequestBody AppUserWhitelistQueryDTO queryDTO) { return R.ok(whitelistService.pageList(queryDTO)); } @ApiOperation("查询白名单用户详情") @RequiresPermissions(value = {"/appUserWhitelist/select"}, logical = Logical.OR) @GetMapping("/detail/{id}") public R detail(@PathVariable("id") Long id) { return R.ok(whitelistService.detail(id)); } @ApiOperation("判断用户当前站点是否命中白名单") @GetMapping("/match") public R match(@RequestParam("appUserId") Long appUserId, @RequestParam("siteId") Integer siteId) { return R.ok(whitelistService.matchWhitelist(appUserId, siteId)); } @ApiOperation("新增或修改白名单用户") @RequiresPermissions(value = {"/appUserWhitelist/add", "/appUserWhitelist/update"}, logical = Logical.OR) @Log(title = "【白名单用户】新增或修改", businessType = BusinessType.INSERT, operatorType = OperatorType.MANAGE) @PostMapping("/addOrUpdate") public R addOrUpdate(@RequestBody AppUserWhitelistSaveDTO saveDTO) { whitelistService.saveWhitelist(saveDTO); return R.ok(); } @ApiOperation("删除白名单用户") @RequiresPermissions(value = {"/appUserWhitelist/del"}, logical = Logical.OR) @Log(title = "【白名单用户】删除", businessType = BusinessType.DELETE, operatorType = OperatorType.MANAGE) @DeleteMapping("/delete") public R delete(@RequestParam("ids") String ids) { whitelistService.deleteByIds(ids); return R.ok(); } @ApiOperation("下载白名单用户导入模板") @RequiresPermissions(value = {"/appUserWhitelist/import"}, logical = Logical.OR) @GetMapping("/importTemplate") public void importTemplate(HttpServletResponse response) { ExcelUtil util = new ExcelUtil<>(AppUserWhitelistImportDTO.class); util.importTemplateExcel(response, "白名单用户导入模板", "填写说明:用户手机号填写11位手机号,如:13800138000。导入后默认享受全部免费权益、适用于全部电站。"); } @ApiOperation("导入白名单用户") @RequiresPermissions(value = {"/appUserWhitelist/import"}, logical = Logical.OR) @Log(title = "【白名单用户】导入", businessType = BusinessType.IMPORT, operatorType = OperatorType.MANAGE) @PostMapping("/import") public R importData(@RequestParam("file") MultipartFile file) throws Exception { AppUserWhitelistImportResultVO result = whitelistService.importWhitelist(file); if (result.getErrorCount() != null && result.getErrorCount() > 0) { if (result.getSuccessCount() != null && result.getSuccessCount() > 0) { return R.ok(result, "导入完成,部分数据导入失败"); } return R.fail(result, "导入失败,请检查错误数据"); } return R.ok(result, "导入成功"); } }