package com.fzzy.igds.sys.pr; import com.bstek.dorado.annotation.DataProvider; import com.bstek.dorado.annotation.DataResolver; import com.bstek.dorado.annotation.Expose; import com.fzzy.igds.dzhwk.domain.DicSysConf; import com.fzzy.igds.sys.SysConfService; import com.fzzy.igds.util.ContextUtil; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.ShiroUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import javax.annotation.Resource; /** * @Description 系统配置管理 * @Author CZT * @Date 2024/11/19 18:36 */ @Component public class SysConfPR { @Resource private SysConfService sysConfService; /** * sysConfPR#getSysConf * * @return 获取数据库中的配置,如果没有则创建一个新对象 */ @DataProvider public DicSysConf getSysConf() { return sysConfService.getSysConf(ContextUtil.getCompanyId()); } /** * sysConfPR#saveSysConf 数据更新 * * @return */ @DataResolver public void saveSysConf(DicSysConf data) { DicSysConf sysConf = new DicSysConf(); BeanUtils.copyProperties(data, sysConf); sysConfService.saveSysConf(sysConf); } /** * sysConfPR#flushCacheSysConf */ @Expose public void flushCacheSysConf() { sysConfService.flushCacheSysConf(ContextUtil.getCompanyId()); } /** * sysConfPR#checkUserByPwd * systemPR#checkUserByPwd * 当前登陆人密码验证 * @param pwd * @return */ @Expose public String checkUserByPwd(String pwd){ SysUser user = ShiroUtils.getSysUser(); if(null == user){ return "您已经掉线,请重新登录后确认!"; } UsernamePasswordToken token = new UsernamePasswordToken(user.getLoginName(), pwd, false); Subject subject = SecurityUtils.getSubject(); try { subject.login(token); return null; } catch (AuthenticationException e) { return "密码错误"; } } }