wanglizhong
2025-05-01 f3e793d0cb0810401545820c41b18df16db7f6fa
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.ruoyi.web.controller.system;
 
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
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.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.SysClientApp;
import com.ruoyi.system.service.ISysClientAppService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.utils.SecurityUtils;
 
/**
 * 客户应用配置Controller
 */
@RestController
@RequestMapping("/system/clientApp")
public class SysClientAppController extends BaseController {
    @Autowired
    private ISysClientAppService sysClientAppService;
 
    /**
     * 查询客户应用配置列表
     */
    @PreAuthorize("@ss.hasPermi('system:clientApp:list')")
    @GetMapping("/list")
    public TableDataInfo list(SysClientApp sysClientApp) {
        startPage();
        List<SysClientApp> list = sysClientAppService.selectSysClientAppList(sysClientApp);
        return getDataTable(list);
    }
 
    /**
     * 导出客户应用配置列表
     */
    @PreAuthorize("@ss.hasPermi('system:clientApp:export')")
    @Log(title = "客户应用配置", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysClientApp sysClientApp) {
        List<SysClientApp> list = sysClientAppService.selectSysClientAppList(sysClientApp);
        ExcelUtil<SysClientApp> util = new ExcelUtil<SysClientApp>(SysClientApp.class);
        util.exportExcel(response, list, "客户应用配置数据");
    }
 
    /**
     * 获取客户应用配置详细信息
     */
    @PreAuthorize("@ss.hasPermi('system:clientApp:query')")
    @GetMapping(value = "/{appId}")
    public AjaxResult getInfo(@PathVariable("appId") Long appId) {
        return success(sysClientAppService.selectSysClientAppByAppId(appId));
    }
 
    /**
     * 新增客户应用配置
     */
    @PreAuthorize("@ss.hasPermi('system:clientApp:add')")
    @Log(title = "客户应用配置", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody SysClientApp sysClientApp) {
        return toAjax(sysClientAppService.insertSysClientApp(sysClientApp));
    }
 
    /**
     * 修改客户应用配置
     */
    @PreAuthorize("@ss.hasPermi('system:clientApp:edit')")
    @Log(title = "客户应用配置", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody SysClientApp sysClientApp) {
        try {
            return toAjax(sysClientAppService.updateSysClientApp(sysClientApp));
        }catch (Exception ex){
            return AjaxResult.error(ex.getMessage());
        }
    }
 
    /**
     * 删除客户应用配置
     */
    @PreAuthorize("@ss.hasPermi('system:clientApp:remove')")
    @Log(title = "客户应用配置", businessType = BusinessType.DELETE)
    @DeleteMapping("/{appIds}")
    public AjaxResult remove(@PathVariable Long[] appIds) {
        return toAjax(sysClientAppService.deleteSysClientAppByAppIds(appIds));
    }
 
    @Anonymous(needSign=true)
    @GetMapping("/testSign")
    public AjaxResult testSign(){
        return AjaxResult.success("成功");
    }
    /**
     * 生成签名
     */
    @Anonymous
    @GetMapping("/generateSign/{appId}")
    public AjaxResult generateSign(@PathVariable("appId") String appId)
    {
        // 获取当前系统时间戳
        long timestamp = System.currentTimeMillis();
        
        // 查询应用信息获取securityKey
        SysClientApp clientApp = sysClientAppService.selectSysClientAppByAppKey(appId);
        if (clientApp == null)
        {
            return AjaxResult.error("应用不存在");
        }
        
        // 生成签名
        String signStr = appId + timestamp + clientApp.getSecurityKey();
        String sign = SecurityUtils.md5(signStr);
        
        AjaxResult ajax = AjaxResult.success();
        ajax.put("use","md5(appId+timestamp+securityKey)");
        ajax.put("appId", appId);
        ajax.put("timestamp", String.valueOf(timestamp));
        ajax.put("sign", sign);
        //ajax.put("signStr", signStr);  // 用于调试,显示拼接的字符串
        return ajax;
    }