yangys
2024-03-27 e48aa2ac8dea1be5db11c63edf0b912c4ad5ce65
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
package com.qianwen.smartman.modules.system.controller;
 
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import java.lang.invoke.SerializedLambda;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
import javax.validation.Valid;
import com.qianwen.smartman.common.constant.ExtCacheConstant;
import com.qianwen.core.boot.ctrl.BladeController;
import com.qianwen.core.cache.utils.CacheUtil;
import com.qianwen.core.mp.support.Condition;
import com.qianwen.core.mp.support.Query;
import com.qianwen.core.scanner.modular.annotation.GetResource;
import com.qianwen.core.scanner.modular.annotation.PostResource;
import com.qianwen.core.scanner.modular.stereotype.ApiResource;
import com.qianwen.core.secure.annotation.PreAuth;
import com.qianwen.core.tenant.annotation.NonDS;
import com.qianwen.core.tool.api.R;
import com.qianwen.core.tool.utils.Func;
import com.qianwen.smartman.modules.system.entity.Param;
import com.qianwen.smartman.modules.system.enums.ParamKeyEnum;
import com.qianwen.smartman.modules.system.service.IParamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.info.BuildProperties;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
 
@Api(value = "参数管理", tags = {"参数管理"})
@RestController
@ApiResource({"blade-system/param"})
@NonDS
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/system/controller/ParamController.class */
public class ParamController extends BladeController {
    private final IParamService paramService;
    @Autowired
    BuildProperties buildProperties;
    @Autowired
    private Environment environment;
 
    private static /* synthetic */ Object $deserializeLambda$(SerializedLambda lambda) {
        String implMethodName = lambda.getImplMethodName();
        boolean z = true;
        switch (implMethodName.hashCode()) {
            case -1045666808:
                if (implMethodName.equals("getParamKey")) {
                    z = false;
                    break;
                }
                break;
        }
        switch (z) {
            case false:
                if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/Param") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
                    return (v0) -> {
                        return v0.getParamKey();
                    };
                }
                break;
        }
        throw new IllegalArgumentException("Invalid lambda deserialization");
    }
 
    public ParamController(final IParamService paramService, final BuildProperties buildProperties, final Environment environment) {
        this.paramService = paramService;
        this.buildProperties = buildProperties;
        this.environment = environment;
    }
 
    @ApiOperationSupport(order = 1)
    @GetResource({"/detail"})
    @ApiOperation(value = "详情", notes = "传入param")
    public R<Param> detail(Param param) {
        Param detail = (Param) this.paramService.getOne(Condition.getQueryWrapper(param));
        return R.data(detail);
    }
 
    @ApiOperationSupport(order = 2)
    @ApiImplicitParams({@ApiImplicitParam(name = "paramName", value = "参数名称", paramType = "query", dataType = "string"), @ApiImplicitParam(name = "paramKey", value = "参数键名", paramType = "query", dataType = "string"), @ApiImplicitParam(name = "paramValue", value = "参数键值", paramType = "query", dataType = "string")})
    @GetResource({"/list"})
    @ApiOperation(value = "分页", notes = "传入param")
    public R<IPage<Param>> list(@RequestParam @ApiIgnore Map<String, Object> param, Query query) {
        IPage<Param> pages = this.paramService.page(Condition.getPage(query), Condition.getQueryWrapper(param, Param.class));
        return R.data(pages);
    }
 
    @ApiOperationSupport(order = 3)
    @PostResource({"/submit"})
    @ApiOperation(value = "新增或修改", notes = "传入param")
    @PreAuth
    public R submit(@Valid @RequestBody Param param) {
        CacheUtil.clear("blade:param", ExtCacheConstant.TENANT_MODE);
        return R.status(this.paramService.saveOrUpdate(param));
    }
 
    @ApiOperationSupport(order = 4)
    @PostResource({"/remove"})
    @ApiOperation(value = "逻辑删除", notes = "传入ids")
    @PreAuth
    public R remove(@RequestParam @ApiParam(value = "主键集合", required = true) String ids) {
        CacheUtil.clear("blade:param", ExtCacheConstant.TENANT_MODE);
        return R.status(this.paramService.deleteLogic(Func.toLongList(ids)));
    }
 
    @ApiOperationSupport(order = 1)
    @GetResource({"/version"})
    @ApiOperation(value = "系统版本", notes = "获取系统版本详细")
    public R<Map> appVersion() {
        Param param = (Param) this.paramService.getOne((Wrapper) Wrappers.query().lambda().eq((v0) -> {
            return v0.getParamKey();
        }, ParamKeyEnum.Theme.getCode()));
        HashMap hashMap = new HashMap();
        DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy.MMddHHmm").withZone(ZoneId.systemDefault());
        hashMap.put("name", this.buildProperties.getName());
        hashMap.put("code name", this.buildProperties.get("app.codename"));
        hashMap.put("version", this.buildProperties.getVersion());
        hashMap.put("buildVersion", DATE_TIME_FORMATTER.format(this.buildProperties.getTime()));
        hashMap.put("profile", Arrays.stream(this.environment.getActiveProfiles()).collect(Collectors.joining(",")));
        hashMap.put("theme", param.getParamValue());
        return R.data(hashMap);
    }
}