From: Xia Kaixiang Date: Wed, 15 May 2019 04:33:31 +0000 (+0800) Subject: 应用权限参数配置 X-Git-Tag: 1.0.0^2~221 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=605362404f6906c549ead9a0d331355ec56bd07b;p=epayment%2Ffood_payapi.git 应用权限参数配置 --- diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java b/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java index 73088027..50ab6a26 100644 --- a/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java +++ b/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java @@ -5,18 +5,20 @@ import com.supwisdom.dlpay.framework.domain.TApiClient; import com.supwisdom.dlpay.framework.domain.TBusinesspara; import com.supwisdom.dlpay.framework.domain.TSyspara; import com.supwisdom.dlpay.framework.service.SystemUtilService; -import com.supwisdom.dlpay.framework.util.PageResult; -import com.supwisdom.dlpay.framework.util.StringUtil; -import com.supwisdom.dlpay.framework.util.WebConstant; +import com.supwisdom.dlpay.framework.util.*; import com.supwisdom.dlpay.system.service.ParamService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.HashMap; +import java.util.Map; + @Controller public class ParamController { @Autowired @@ -206,7 +208,7 @@ public class ParamController { } @GetMapping("/param/apiclientparalist") - @PreAuthorize("hasPermission('/param/apiclientparalist','')") + @PreAuthorize("hasPermission('/param/apiclientpara','')") @ResponseBody public PageResult getApiclientDataList(@RequestParam("page") Integer pageNo, @RequestParam("limit") Integer pageSize, @@ -221,5 +223,128 @@ public class ParamController { } } + @GetMapping("/param/load4addapiclient") + @PreAuthorize("hasPermission('/param/load4addapiclient','')") + public String load4AddApiclientPara(Model model) { + Map roles = new HashMap<>(0); + roles.put("ROLE_THIRD_COMMON", "ROLE_THIRD_COMMON"); + roles.put("ROLE_THIRD_CONSUME", "ROLE_THIRD_CONSUME"); + roles.put("ROLE_THIRD_DEPOSIT", "ROLE_THIRD_DEPOSIT"); + roles.put("ROLE_THIRD_SHOP", "ROLE_THIRD_SHOP"); + roles.put("ROLE_THIRD_ADMIN", "ROLE_THIRD_ADMIN"); + model.addAttribute("rolelist", roles); + return "system/param/apiclientform"; + } + + @PostMapping("/param/updateapiclientstate") + @PreAuthorize("hasPermission('/param/updateapiclientstate','')") + @ResponseBody + public JsonResult updateApiclientState(@RequestParam("appid") String appid, @RequestParam("state") String state) { + if (StringUtil.isEmpty(appid) || (!TradeDict.STATUS_NORMAL.equals(state) && !TradeDict.STATUS_CLOSED.equals(state))) { + return JsonResult.error("参数传递错误"); + } + try { + TApiClient apiClient = paramService.getApiClientByAppid(appid); + if (null == apiClient) { + return JsonResult.error("应用参数不存在"); + } else if (state.equals(apiClient.getStatus())) { + return JsonResult.error("状态修改错误,请刷新查询"); + } + apiClient.setStatus(state); + if (paramService.saveOrUpdateApiClient(apiClient)) { + return JsonResult.ok(TradeDict.STATUS_NORMAL.equals(state) ? "启用成功" : "关闭成功"); + } else { + return JsonResult.error(TradeDict.STATUS_NORMAL.equals(state) ? "启用失败" : "关闭失败"); + } + } catch (Exception e) { + e.printStackTrace(); + return JsonResult.error("系统处理异常").put("exception", e); + } + } + + @PostMapping("/param/deleteapiclient") + @PreAuthorize("hasPermission('/param/deleteapiclient','')") + @ResponseBody + public JsonResult deleteApiclientParam(@RequestParam("appid") String appid) { + if (StringUtil.isEmpty(appid)) { + return JsonResult.error("参数传递错误"); + } + try { + TApiClient apiClient = paramService.getApiClientByAppid(appid); + if (null == apiClient) { + return JsonResult.error("应用参数不存在"); + } + + if (paramService.deleteApiClient(apiClient)) { + return JsonResult.ok("删除成功"); + } else { + return JsonResult.error("删除失败"); + } + } catch (Exception e) { + e.printStackTrace(); + return JsonResult.error("系统处理异常").put("exception", e); + } + } + + @PostMapping("/param/updateapiclientpara") + @PreAuthorize("hasPermission('/param/updateapiclientpara','')") + @ResponseBody + public JsonResult updateApiclientSecret(@RequestParam("appid") String appid, + @RequestParam(value = "secret", required = false) String secret, + @RequestParam(value = "roles", required = false) String roles) { + if (StringUtil.isEmpty(appid) || (StringUtil.isEmpty(secret) && StringUtil.isEmpty(roles))) { + return JsonResult.error("参数传递错误"); + } + try { + TApiClient apiClient = paramService.getApiClientByAppid(appid); + if (null == apiClient) { + return JsonResult.error("应用参数不存在"); + } + if (!StringUtil.isEmpty(secret)) { + apiClient.setSecret(secret); + } + if (!StringUtil.isEmpty(roles)) { + apiClient.setRoles(roles); + } + if (paramService.saveOrUpdateApiClient(apiClient)) { + return JsonResult.ok("修改成功"); + } else { + return JsonResult.error("修改失败"); + } + } catch (Exception e) { + e.printStackTrace(); + return JsonResult.error("系统处理异常").put("exception", e); + } + } + + @PostMapping("/param/addapiclientpara") + @PreAuthorize("hasPermission('/param/addapiclientpara','')") + @ResponseBody + public JsonResult addApiclientPara(@RequestParam("appid") String appid, + @RequestParam("roles") String roles) { + if (StringUtil.isEmpty(appid) || StringUtil.isEmpty(roles)) { + return JsonResult.error("参数传递错误"); + } + try { + TApiClient apiClient = paramService.getApiClientByAppid(appid); + if (null != apiClient) { + return JsonResult.error("APPID重复"); + } + apiClient = new TApiClient(); + apiClient.setAppid(appid.trim()); + apiClient.setSecret(RandomUtils.getUUIDStr()); + apiClient.setStatus(TradeDict.STATUS_NORMAL); + apiClient.setRoles(roles); + if (paramService.saveOrUpdateApiClient(apiClient)) { + return JsonResult.ok("新增成功"); + } else { + return JsonResult.error("新增失败"); + } + } catch (Exception e) { + e.printStackTrace(); + return JsonResult.error("系统处理异常").put("exception", e); + } + } + } diff --git a/src/main/java/com/supwisdom/dlpay/system/service/ParamService.java b/src/main/java/com/supwisdom/dlpay/system/service/ParamService.java index a28ebf8d..3097754c 100644 --- a/src/main/java/com/supwisdom/dlpay/system/service/ParamService.java +++ b/src/main/java/com/supwisdom/dlpay/system/service/ParamService.java @@ -32,4 +32,14 @@ public interface ParamService { @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true) PageResult getApiClientparaPage(String appid, int pageNo, int pageSize); + + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true) + TApiClient getApiClientByAppid(String appid); + + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) + boolean saveOrUpdateApiClient(TApiClient apiClient); + + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) + boolean deleteApiClient(TApiClient apiClient); + } diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java index 89438bc3..8d63932e 100644 --- a/src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java +++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/ParamServiceImpl.java @@ -113,4 +113,30 @@ public class ParamServiceImpl implements ParamService { return new PageResult<>(apiClientDao.findAll(pageable)); } + @Override + public TApiClient getApiClientByAppid(String appid) { + if (!StringUtil.isEmpty(appid)) { + return apiClientDao.findByAppid(appid.trim()); + } + return null; + } + + @Override + public boolean saveOrUpdateApiClient(TApiClient apiClient){ + if(null!=apiClient){ + apiClientDao.save(apiClient); + return true; + } + return false; + } + + @Override + public boolean deleteApiClient(TApiClient apiClient) { + if (null != apiClient) { + apiClientDao.delete(apiClient); + return true; + } + return false; + } + } diff --git a/src/main/resources/templates/system/param/apiclientform.html b/src/main/resources/templates/system/param/apiclientform.html new file mode 100644 index 00000000..112645e6 --- /dev/null +++ b/src/main/resources/templates/system/param/apiclientform.html @@ -0,0 +1,78 @@ +
+
+ +
+ +
+
+
+ +
+ +
+
+ + +
+ + + + diff --git a/src/main/resources/templates/system/param/apiclientpara.html b/src/main/resources/templates/system/param/apiclientpara.html index f82e9c02..4cc2ade8 100644 --- a/src/main/resources/templates/system/param/apiclientpara.html +++ b/src/main/resources/templates/system/param/apiclientpara.html @@ -22,7 +22,7 @@ @@ -45,15 +45,11 @@ page: true, cols: [ [ - {field: 'appid', title: 'APPID', width: 366, align: 'right', fixed: 'left', sort: true}, - {field: 'secret', title: '密钥', align: 'left', style:'cursor: pointer;', event: 'modifyValue'}, + {field: 'appid', title: 'APPID', width: 120, align: 'right', fixed: 'left', sort: true}, + {field: 'secret', title: '密钥', align: 'center', edit: 'text'}, {field: 'status', title: '状态', width: 100, templet: '#api-tpl-state',sort: true}, - { - field: 'roles', title: '角色', templet: function (item) { - return 'test'; - } - }, - {align: 'center', title: '操作', width: 80, toolbar: '#apiclient-table-bar', fixed: 'right'} + {field: 'roles', title: '角色', align: 'center' }, + {align: 'center', title: '操作', width: 150, toolbar: '#apiclient-table-bar', fixed: 'right'} ] ] }); @@ -64,28 +60,60 @@ }); $('#btn-add').click(function () { + showEditModel(); + }); + + $('#btn-reset').click(function () { + $("#search-appid").val(""); + }); + + function showEditModel(data) { + var title = data ? '修改角色' : '新增应用'; + admin.putTempData('t_appclient', data); admin.popupCenter({ - title: "新增应用权限", - area:["600px","300px"], - path: '/param/', + title: title, + path: '/param/load4addapiclient', finish: function () { - table.reload('businessparaTable'); + table.reload('apiClientTable'); } }); - }); + } - $('#btn-reset').click(function () { - $("#search-appid").val(""); + // 修改user状态 + form.on('switch(api-tpl-state)', function (obj) { + var token = $("meta[name='_csrf_token']").attr("value"); + admin.go('/param/updateapiclientstate', { + appid: obj.elem.value, + state: obj.elem.checked ? 'normal' : 'closed', + _csrf: token + }, function (data) { + if (data.code == 200) { + layer.msg(data.msg, {icon: 1}); + } else if (data.code == 401) { + layer.msg(data.msg, {icon: 2, time: 1500}, function () { + location.replace('/login'); + }, 1000); + return; + } else { + layer.msg(data.msg, {icon: 2}); + $(obj.elem).prop('checked', !obj.elem.checked); + form.render('checkbox'); + } + },function () { + layer.msg('请求失败了,请稍后再试', {icon: 2}); + $(obj.elem).prop('checked', !obj.elem.checked); + form.render('checkbox'); + }); }); //监听单元格 table.on('tool(apiClientTable-filter)', function (obj) { var data = obj.data; if('del' == obj.event){ - if(confirm("确定要删除业务参数["+data.parakey+"]吗?")){ + if(confirm("确定要删除应用参数["+data.appid+"]吗?")){ layer.load(2); - admin.go('/param/deletebusinesspara', { - parakey: data.parakey, + admin.go('/param/deleteapiclient', { + appid: data.appid, _csrf: $("meta[name='_csrf_token']").attr("value") }, function (data) { console.log(data.code); @@ -100,44 +128,42 @@ } else { layer.msg(data.msg, {icon: 2}); } - table.reload('businessparaTable'); + table.reload('apiClientTable'); }, function (ret) { console.log(ret); layer.closeAll('loading'); layer.msg('请求失败了,请稍后再试', {icon: 2}); }); } - }else if('modifyValue' == obj.event){ - layer.prompt({ - formType: 2, - title: '修改参数名为 ['+ data.parakey +'] 的值:', - area: ['500px', '200px'], - maxlength: 1000, - value: data.paraval - }, function(value, index){ - layer.close(index); - admin.go('/param/businessparaupdate', { - parakey: data.parakey, - paraval: value, - _csrf: $("meta[name='_csrf_token']").attr("value"), - }, function (data) { - if (data.code == 200) { - layer.msg("修改成功", {icon: 1}); - obj.update({ paraval: value }); - } else if (data.code == 401) { - layer.msg(data.msg, {icon: 2, time: 1500}, function () { - location.replace('/login'); - }, 1000); - return; - } else { - layer.msg(data.msg, {icon: 2}); - } - },function () { - layer.msg('修改失败了,请稍后再试', {icon: 2}); - }); - }); + }else if('editRole' ==obj.event){ + showEditModel(data); } }); + table.on('edit(apiClientTable-filter)', function (obj) { + var row = obj.data; //得到所在行所有键值 + var newval = obj.value; //得到修改后的值 + admin.go('/param/updateapiclientpara', { + appid: row.appid, + secret: newval, + _csrf: $("meta[name='_csrf_token']").attr("value"), + }, function (data) { + if (data.code == 200) { + layer.msg("修改成功", {icon: 1}); + } else if (data.code == 401) { + layer.msg(data.msg, {icon: 2, time: 1500}, function () { + location.replace('/login'); + }, 1000); + return; + } else { + layer.msg(data.msg, {icon: 2}); + table.reload('apiClientTable'); + } + },function () { + layer.msg('修改失败了,请稍后再试', {icon: 2}); + table.reload('apiClientTable'); + }); + }) + }); \ No newline at end of file diff --git a/src/main/resources/templates/system/param/businesspara.html b/src/main/resources/templates/system/param/businesspara.html index d7a47836..80ddac40 100644 --- a/src/main/resources/templates/system/param/businesspara.html +++ b/src/main/resources/templates/system/param/businesspara.html @@ -34,7 +34,6 @@ table.render({ elem: '#businessparaTable', url: '/param/businessparalist', - toolbar:'', page: true, cols: [ [