办学质量监测教学评价系统
ageer
2025-03-29 c0daf641fb25b244591b7a6c3affa35c69d321fe
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
package org.ruoyi.system.controller.system;
 
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.stp.StpUtil;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.ruoyi.common.core.domain.R;
import org.ruoyi.common.core.validate.AddGroup;
import org.ruoyi.common.core.validate.EditGroup;
import org.ruoyi.common.excel.utils.ExcelUtil;
import org.ruoyi.common.idempotent.annotation.RepeatSubmit;
import org.ruoyi.common.log.annotation.Log;
import org.ruoyi.common.log.enums.BusinessType;
import org.ruoyi.common.mybatis.core.page.PageQuery;
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
import org.ruoyi.common.satoken.utils.LoginHelper;
import org.ruoyi.common.web.core.BaseController;
import org.ruoyi.system.domain.bo.SysModelBo;
import org.ruoyi.system.domain.bo.SysPackagePlanBo;
import org.ruoyi.system.domain.vo.SysModelVo;
import org.ruoyi.system.domain.vo.SysPackagePlanVo;
import org.ruoyi.system.domain.vo.SysUserVo;
import org.ruoyi.system.service.ISysModelService;
import org.ruoyi.system.service.ISysPackagePlanService;
import org.ruoyi.system.service.ISysUserService;
import org.ruoyi.system.util.DesensitizationUtil;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
 
/**
 * 系统模型
 *
 * @author Lion Li
 * @date 2024-04-04
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/model")
public class SysModelController extends BaseController {
 
    private final ISysModelService sysModelService;
 
    private final ISysPackagePlanService sysPackagePlanService;
 
    private final ISysUserService userService;
 
    /**
     * 查询系统模型列表 - 全部
     */
    @GetMapping("/list")
    public TableDataInfo<SysModelVo> list(SysModelBo bo, PageQuery pageQuery) {
        return sysModelService.queryPageList(bo, pageQuery);
    }
 
    /**
     * 查询系统模型列表
     */
    @GetMapping("/modelList")
    public R<List<SysModelVo>> modelList(SysModelBo bo) {
        bo.setModelShow("0");
        List<SysModelVo> sysModelVos = sysModelService.queryList(bo);
        SysPackagePlanBo sysPackagePlanBo = new SysPackagePlanBo();
        if (StpUtil.isLogin()) {
            Long userId = LoginHelper.getLoginUser().getUserId();
            SysUserVo sysUserVo = userService.selectUserById(userId);
            if ("0".equals(sysUserVo.getUserGrade())){
                sysPackagePlanBo.setName("Free");
                SysPackagePlanVo sysPackagePlanVo = sysPackagePlanService.queryList(sysPackagePlanBo).get(0);
                List<String> array = new ArrayList<>(Arrays.asList(sysPackagePlanVo.getPlanDetail().split(",")));
                sysModelVos.removeIf(model -> !array.contains(model.getModelName()));
            }
        }else {
            sysPackagePlanBo.setName("Visitor");
            SysPackagePlanVo sysPackagePlanVo = sysPackagePlanService.queryList(sysPackagePlanBo).get(0);
            List<String> array = new ArrayList<>(Arrays.asList(sysPackagePlanVo.getPlanDetail().split(",")));
            sysModelVos.removeIf(model -> !array.contains(model.getModelName()));
        }
        sysModelVos.stream().map(vo -> {
                    String maskedApiHost = DesensitizationUtil.maskData(vo.getApiHost());
                    String maskedApiKey = DesensitizationUtil.maskData(vo.getApiKey());
                    vo.setApiHost(maskedApiHost);
                    vo.setApiKey(maskedApiKey);
                    return vo;
                })
                .collect(Collectors.toList());
        return R.ok(sysModelVos);
    }
 
    /**
     * 导出系统模型列表
     */
    @SaCheckPermission("system:model:export")
    @Log(title = "系统模型", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(SysModelBo bo, HttpServletResponse response) {
        List<SysModelVo> list = sysModelService.queryList(bo);
        ExcelUtil.exportExcel(list, "系统模型", SysModelVo.class, response);
    }
 
    /**
     * 获取系统模型详细信息
     *
     * @param id 主键
     */
    @SaCheckPermission("system:model:query")
    @GetMapping("/{id}")
    public R<SysModelVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Long id) {
        return R.ok(sysModelService.queryById(id));
    }
 
    /**
     * 新增系统模型
     */
    @SaCheckPermission("system:model:add")
    @Log(title = "系统模型", businessType = BusinessType.INSERT)
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody SysModelBo bo) {
        return toAjax(sysModelService.insertByBo(bo));
    }
 
    /**
     * 修改系统模型
     */
    @SaCheckPermission("system:model:edit")
    @Log(title = "系统模型", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysModelBo bo) {
        return toAjax(sysModelService.updateByBo(bo));
    }
 
    /**
     * 删除系统模型
     *
     * @param ids 主键串
     */
    @SaCheckPermission("system:model:remove")
    @Log(title = "系统模型", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Long[] ids) {
        return toAjax(sysModelService.deleteWithValidByIds(List.of(ids), true));
    }
}