当前位置: 首页 > news >正文

装修公司网站建设药品销售推广方案

装修公司网站建设,药品销售推广方案,广西优化网站,asp.net 网站建设方案👏作者简介:大家好,我是小童,Java开发工程师,CSDN博客博主,Java领域新星创作者 📕系列专栏:前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…

👏作者简介:大家好,我是小童,Java开发工程师,CSDN博客博主,Java领域新星创作者
📕系列专栏:前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶
📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦
🍂博主正在努力完成2023计划中:以梦为马,扬帆起航,2023追梦人 

  

问题起源

最近因为自己在给公司开发新的管理系统,参考了开源系统若依中的很多地方,尤其是若依系统中的菜单管理,角色管理,用户管理部分。在学习研究这几个版块时,发现一个比较“怪”的现象,在若依系统中添加操作,通常我们称为add编辑操作,通常称为update,在其系统中大多数,或者至少目前看到的情况均是拆分开的两个独立接口。

例如,添加菜单与更新菜单的接口:

添加菜单

/*** 新增菜单*/@PreAuthorize("@ss.hasPermi('system:menu:add')")@Log(title = "菜单管理", businessType = BusinessType.INSERT)@PostMappingpublic AjaxResult add(@Validated @RequestBody SysMenu menu){if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))){return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");}else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())){return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");}menu.setCreateBy(getUsername());return toAjax(menuService.insertMenu(menu));}

更新菜单

/*** 修改菜单*/@PreAuthorize("@ss.hasPermi('system:menu:edit')")@Log(title = "菜单管理", businessType = BusinessType.UPDATE)@PutMappingpublic AjaxResult edit(@Validated @RequestBody SysMenu menu){if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))){return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");}else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())){return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");}else if (menu.getMenuId().equals(menu.getParentId())){return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己");}menu.setUpdateBy(getUsername());return toAjax(menuService.updateMenu(menu));}

 

又比如添加角色与更新角色的接口:

添加角色

/*** 新增角色*/@PreAuthorize("@ss.hasPermi('system:role:add')")@Log(title = "角色管理", businessType = BusinessType.INSERT)@PostMappingpublic AjaxResult add(@Validated @RequestBody SysRole role){if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))){return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在");}else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))){return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");}role.setCreateBy(getUsername());return toAjax(roleService.insertRole(role));}

更新角色

/*** 修改保存角色*/@PreAuthorize("@ss.hasPermi('system:role:edit')")@Log(title = "角色管理", businessType = BusinessType.UPDATE)@PutMappingpublic AjaxResult edit(@Validated @RequestBody SysRole role){roleService.checkRoleAllowed(role);if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))){return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在");}else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))){return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");}role.setUpdateBy(getUsername());if (roleService.updateRole(role) > 0){// 更新缓存用户权限LoginUser loginUser = getLoginUser();if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin()){loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser()));loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName()));tokenService.setLoginUser(loginUser);}return AjaxResult.success();}return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,请联系管理员");}

在比如用户版块:

添加用户

/*** 新增用户*/@PreAuthorize("@ss.hasPermi('system:user:add')")@Log(title = "用户管理", businessType = BusinessType.INSERT)@PostMappingpublic AjaxResult add(@Validated @RequestBody SysUser user){if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName()))){return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");}else if (StringUtils.isNotEmpty(user.getPhonenumber())&& UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))){return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");}else if (StringUtils.isNotEmpty(user.getEmail())&& UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))){return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");}user.setCreateBy(getUsername());user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));return toAjax(userService.insertUser(user));}

更新用户

/*** 修改用户*/@PreAuthorize("@ss.hasPermi('system:user:edit')")@Log(title = "用户管理", businessType = BusinessType.UPDATE)@PutMappingpublic AjaxResult edit(@Validated @RequestBody SysUser user){userService.checkUserAllowed(user);if (StringUtils.isNotEmpty(user.getPhonenumber())&& UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))){return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");}else if (StringUtils.isNotEmpty(user.getEmail())&& UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))){return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");}user.setUpdateBy(getUsername());return toAjax(userService.updateUser(user));}

猜测其接口拆分的原因

更新接口与添加接口,一般都会有很多判断的先决条件,如判断数据是否合法,包括手机号唯一性,邮箱账号唯一性,菜单名称唯一性等等,这些通常无论更新与添加都是需要判断的。

以菜单接口为例,其添加接口判断参数合法性包括:菜单名称唯一,外链数据合法性;

菜单更新接口除判断这两个数据外,还需要判断更新时所选择的上级菜单不是自己;

另外菜单添加与更新的区别是,菜单添加设置的字段为 createBy与 createTime,而更新菜单时,需要设置的是 updateBy与 updateTime

更新角色与添加角色的区别在于,更新角色时,还需要通过SpringSecurity来更新用户的权限数据。

添加用户时需要设置其密码字段,而更新用户时则不需要。

我们分析,其将接口拆分的主要原因是,这样会使得程序逻辑更加的简单,清晰,而不用每次需要什么操作都额外判断添加与更新问题。

专栏:若依框架 

 

                                                                       关注公众号,领取资料。 

http://www.dinnco.com/news/45034.html

相关文章:

  • 网站首页标题设置2021关键词搜索排行
  • 网站建设后台管理便捷快速建站
  • 北京东直门网站建设最近时事热点
  • 做网站建设的企业还有那些百度seo不正当竞争秒收
  • 自己做一个商城网站怎么做免费做网站怎么做网站吗
  • 武汉做网站推广百度推广运营专员
  • 如何给网站做权重百度上做优化
  • 网站怎么做才能让更多平台展现福州百度seo排名
  • 期刊类网站建设产品推广策略
  • 上海网站建设 上海网站制作广州优化疫情防控措施
  • 做网站需要注意百度帐号
  • 阜阳网站是南通seo网站优化软件
  • 做网站可以不写代码长沙推广公司
  • 怎样注册免费域名seo资源是什么意思
  • 什么叫营销模式科学新概念seo外链平台
  • 局域网网站制作免费seo快速排名工具
  • 商业网站是什么意思百度排名规则
  • 阳江网红打卡旅游景点搜索引擎营销与seo优化
  • PHP动态网站开发技术试题hyein seo
  • 网站建设维护与推广口碑好的设计培训机构
  • 用jsp做网站的感想西安网站优化公司
  • 网站开发功能清单百度公司电话热线电话
  • html5网站长沙seo关键词
  • 做企鹅号的视频素材网站新冠疫情最新消息
  • linux用.net做网站厦门人才网官网登录
  • 建设彩票网站需要多少投资seo外包软件
  • 行业网站建设服务热线宁波seo关键词优化制作
  • 18网站推广在线seo
  • 肥城网站建设广州外地车牌郑州网络营销学校
  • 优酷如何做收费视频网站关键词排名优化江苏的团队