puzhibing
2026-05-22 6912e074af61b73307d2fc31b1b8f4974f5eb4f3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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<TAppUserWhitelist>> page(@RequestBody AppUserWhitelistQueryDTO queryDTO) {
        return R.ok(whitelistService.pageList(queryDTO));
    }
 
    @ApiOperation("查询白名单用户详情")
    @RequiresPermissions(value = {"/appUserWhitelist/select"}, logical = Logical.OR)
    @GetMapping("/detail/{id}")
    public R<TAppUserWhitelist> detail(@PathVariable("id") Long id) {
        return R.ok(whitelistService.detail(id));
    }
 
    @ApiOperation("判断用户当前站点是否命中白名单")
    @GetMapping("/match")
    public R<AppUserWhitelistMatchVO> 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<Void> 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<Void> 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<AppUserWhitelistImportDTO> util = new ExcelUtil<>(AppUserWhitelistImportDTO.class);
        util.importTemplateExcel(response, "白名单用户导入模板",
                "填写说明:用户手机号填写11位手机号;享受权益填写 1=全部免费、2=免电费、3=免服务费;白名单电站填写 all 表示全部电站,指定电站填写平台站点编号,多个用英文逗号分隔,如 ST001,ST002。");
    }
 
    @ApiOperation("导入白名单用户")
    @RequiresPermissions(value = {"/appUserWhitelist/import"}, logical = Logical.OR)
    @Log(title = "【白名单用户】导入", businessType = BusinessType.IMPORT, operatorType = OperatorType.MANAGE)
    @PostMapping("/import")
    public R<AppUserWhitelistImportResultVO> importData(@RequestParam("file") MultipartFile file) throws Exception {
        AppUserWhitelistImportResultVO result = whitelistService.importWhitelist(file);
        if (result.getErrorCount() != null && result.getErrorCount() > 0) {
            return R.fail(result, "导入失败,请检查错误数据");
        }
        return R.ok(result, "导入成功");
    }
}