yangys
2024-01-17 819775e3afefe7263d3f45f82058a13aec288b1f
增加用户菜单动态加载功能
已修改12个文件
已添加7个文件
672 ■■■■■ 文件已修改
mdc-parent/mdc-collect/src/main/java/cn/net/hx/mdc/listener/MdcListener.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-show/mdcreportconfig.properties 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/config/Ureport2Config.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/config/Ureport2DatasourceConfig.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/controller/SysAccountController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/controller/account/MachineAccountAddController.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/domain/Menu.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/domain/SysAccount.java 116 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/dto/sysaccount/UserData.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/mapper/MenuMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/scheduled/DncProgFileParse.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/service/MdcDataArchiveService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/service/devicetype/DeviceTypeService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/service/sysaccount/AccountTokenService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/service/sysaccount/SysAccountService.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-show/src/main/resources/context.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-show/src/main/resources/reportconfig.properties 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-showdb-mysql/src/main/resources/mapper/MachineMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-showdb-mysql/src/main/resources/mapper/MenuMapper.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mdc-parent/mdc-collect/src/main/java/cn/net/hx/mdc/listener/MdcListener.java
@@ -102,7 +102,7 @@
          //mdcMachineOpcua = new MdcMachineOpcua();
          //mdcMachineOpcua.setMachineId(machine.getId());
          //machineOpcua = (MdcMachineOpcua)this.mdcMachineOpcuaMapper.selectOne(mdcMachineOpcua);
          QueryWrapper<MdcMachineOpcua> wp = Wrappers.emptyWrapper();
          QueryWrapper<MdcMachineOpcua> wp = Wrappers.query();//.emptyWrapper();
          wp.eq("machine_id", machine.getId());
          machineOpcua = (MdcMachineOpcua)this.mdcMachineOpcuaMapper.selectOne(wp);
          this.executor.execute((Runnable)new OpcUaThread(machine, Integer.valueOf(this.mdcInterval), machineOpcua, mappers));
mdc-parent/mdc-show/mdcreportconfig.properties
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,2 @@
ureport.fileStoreDir=d:/mdc/ureportfiles
#ureport.fileStoreDir=d:/mdc/rep
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/config/Ureport2Config.java
@@ -17,8 +17,9 @@
    @Autowired
    private Environment env;
    private final String dirKey = "ureport.fileStoreDir";
    @Bean
    //@Bean
    public UReportPropertyPlaceholderConfigurer a() {
        /*
        UReportPropertyPlaceholderConfigurer configurer = new UReportPropertyPlaceholderConfigurer();
        String storeDir = env.getProperty(dirKey);
@@ -28,8 +29,10 @@
            configurer.setProperties(ps);
        }
        return configurer;
        */
        return null;
    }
    @Override
    public void setEnvironment(Environment environment) {
        this.env = environment;
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/config/Ureport2DatasourceConfig.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.qianwen.mdc.config;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import com.kacheyi.ureport.definition.datasource.BuildinDatasource;
/**
 * é…ç½®ureport使用的内置数据源
 */
@Configuration
public class Ureport2DatasourceConfig implements BuildinDatasource{
    @Autowired
    private DataSource datasource;
    @Override
    public String name() {
        return "mdc";
    }
    @Override
    public Connection getConnection() {
        try {
            return datasource.getConnection();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/controller/SysAccountController.java
@@ -19,6 +19,7 @@
import com.qianwen.mdc.common.OpResult;
import com.qianwen.mdc.domain.DomainException;
import com.qianwen.mdc.dto.SysAccountDTO;
import com.qianwen.mdc.dto.sysaccount.UserData;
import com.qianwen.mdc.service.sysaccount.AccountTokenService;
import com.qianwen.mdc.service.sysaccount.SysAccountService;
import com.qianwen.mdc.utils.redis.RedisUtil;
@@ -46,7 +47,8 @@
     * @param password å¯†ç 
     * @return å¸¦token对的Result
     */
    @RequestMapping(value = "/login", method = RequestMethod.POST)
    @RequestMapping(value = "/login1", method = RequestMethod.POST)
    public OpResult<String> userLogin(String username, String password) {
        
        String token = null;
@@ -58,6 +60,18 @@
        }
        
    }
    @RequestMapping(value = "/login", method = RequestMethod.POST)
    public OpResult<UserData> userLogin2(String username, String password) {
        try {
            UserData ud = accountService.login2(username, password);
            return OpResult.success(ud);
        }catch(DomainException e) {
            logger.error("登录异常",e);
            return OpResult.fail(e.getMessage());
        }
    }
    @GetMapping(value = "/currentUser")
    public OpResult<SysAccountDTO> currentUser(@RequestHeader(value = "mdc-token", defaultValue = "") String token) {
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/controller/account/MachineAccountAddController.java
@@ -44,137 +44,7 @@
    @PostMapping(value = "/create")
    public OpResult<Void> create(@RequestHeader(value = "mdc-token", defaultValue = "") String token,
          @RequestBody MachineAccountEditDTO dto, HttpServletRequest request) {
        /*
        JSONObject jsonResult = new JSONObject();
        jsonResult.put("result", "SUCCESS");
        String machineName = request.getParameter("machineName");
        String machineIp = request.getParameter("machineIp");
        String workshop = request.getParameter("workshop");
        String section = request.getParameter("section");
        String userName = request.getParameter("userName");
        String uuid = request.getParameter("uuid");
        String specification = request.getParameter("specification");
        String type = request.getParameter("type");
        String category = request.getParameter("category");
        String accountingAttribute = request.getParameter("accountingAttribute");
        //安装地点
    //  String location = request.getParameter("location");
        String department = request.getParameter("department");
        String state = request.getParameter("state");
        //是否关键设备
    //  String isCritical = request.getParameter("isCritical");
        //是否精密设备
    //  String isPrecision = request.getParameter("isPrecision");
        String elecCompFactor = request.getParameter("elecCompFactor");
        String mechCompFactor = request.getParameter("mechCompFactor");
        String country = request.getParameter("country");
        String manufacturer = request.getParameter("manufacturer");
        String productionDate = request.getParameter("productionDate");
        String originalValue = request.getParameter("originalValue");
        String presentValue = request.getParameter("presentValue");
        String weight = request.getParameter("weight");
        String pic = request.getParameter("pic");
        String remark = request.getParameter("remark");
        //班次
        String classes = request.getParameter("classes");
        //设备管理分类
        String managType = request.getParameter("managType");
        
        MdcWorkshop mdcWorkshopObj = new MdcWorkshop();
        mdcWorkshopObj.setName(workshop);
        MdcWorkshop mdcWorkshop = mdcWorkshopMapper.selectOne(mdcWorkshopObj);
        if (mdcWorkshop != null) {
            mdcMachineObj.setWorkshopId(mdcWorkshop.getId());
        }
        MdcSection mdcSectionObj = new MdcSection();
        mdcSectionObj.setName(section);
        MdcSection mdcSection = mdcSectionMapper.selectOne(mdcSectionObj);
        if (mdcSection != null) {
            //mdcMachineObj.setSectionId(mdcSection.getId());
        }
        MdcUser mdcUserObj = new MdcUser();
        mdcUserObj.setName(userName);
        MdcUser mdcUser = mdcUserMapper.selectOne(mdcUserObj);
        if (mdcUser != null) {
            mdcMachineObj.setUserId(mdcUser.getId());
        }
        MdcMachineAccount mdcMachineAccount = new MdcMachineAccount();
        MdcMachine mdcMachine = mdcMachineMapper.selectOne(mdcMachineObj);
        if (mdcMachine != null) {
            mdcMachineAccount.setMachineId(mdcMachine.getId());
        }
        mdcMachineAccount.setUuid(uuid);
        mdcMachineAccount.setSpecification(specification);
        mdcMachineAccount.setType(type);
        mdcMachineAccount.setCategory(category);
        mdcMachineAccount.setAccountingAttribute(accountingAttribute);
   //   mdcMachineAccount.setLocation(location);
        mdcMachineAccount.setDepartment(department);
        mdcMachineAccount.setState(state);
        if ((elecCompFactor != null) && (!elecCompFactor.equals(""))) {
            mdcMachineAccount.setElecCompFactor(Integer.parseInt(elecCompFactor));
        } else {
            mdcMachineAccount.setElecCompFactor(null);
        }
        if ((mechCompFactor != null) && (!mechCompFactor.equals(""))) {
            mdcMachineAccount.setMechCompFactor(Integer.parseInt(mechCompFactor));
        } else {
            mdcMachineAccount.setMechCompFactor(null);
        }
        mdcMachineAccount.setCountry(country);
        mdcMachineAccount.setManufacturer(manufacturer);
        if ((originalValue != null) && (!originalValue.equals(""))) {
            mdcMachineAccount.setOriginalValue(Float.parseFloat(originalValue));
        }
        if ((presentValue != null) && (!presentValue.equals(""))) {
            mdcMachineAccount.setPresentValue(Float.parseFloat(presentValue));
        }
        if ((weight != null) && (!weight.equals(""))) {
            mdcMachineAccount.setWeight(Integer.parseInt(weight));
        }
        if ((classes != null) && (!classes.equals(""))) {
            mdcMachineAccount.setClasses(classes);
        }
        if ((managType != null) && (!managType.equals(""))) {
            mdcMachineAccount.setManagType(managType);
        }
        mdcMachineAccount.setPic(pic);
        mdcMachineAccount.setRemark(remark);
        if (fileUpload != null) {
            StringBuilder sb = new StringBuilder();
            for (MultipartFile file : fileUpload) {
                sb.append(uploadPath).append("/").append(mdcWorkshop.getName()).append("/").append(mdcSection.getName())
                        .append("/").append(mdcMachine.getName()).append("/").append(file.getName());
                try {
                    file.transferTo(new File(sb.toString()));
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        mdcMachineAccountMapper.insert(mdcMachineAccount);
        return jsonResult;
        */
        try {
            //accountTokenService.checkToken(token);
            
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/domain/Menu.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,128 @@
package com.qianwen.mdc.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
/**
 * å·¥æ®µ
 */
@TableName("menu")
public class Menu{
    /**
     * é“¾æŽ¥ç±»åž‹ï¼šå†…部地址 1
     */
    public static int LINK_TYPE_PATH = 1;
    /**
     * é“¾æŽ¥ç±»åž‹ï¼šhref 2
     */
    public static int LINK_TYPE_HREF = 2;
    @TableId(type=IdType.INPUT)
    private Integer id;
    private String label;
    /**
     * workshop id
     */
    private Integer parentId;
    /**
     * 1:普通内部pathName;2:href
     */
    private int linkType;
    private String url;
    /**
     * å‚æ•°
     */
    private String params;
    /**
     * ä½¿ç”¨è¯¥èœå•项的角色:ADMIN / USER
     */
    private String useRole;
    private Integer orderNum;
    /**
     * ç‰¹æ®Šå¤„理标志
     */
    private String opFlag;
    public boolean isTypeHref() {
        return this.linkType == LINK_TYPE_HREF;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getLabel() {
        return label;
    }
    public void setLabel(String label) {
        this.label = label;
    }
    public Integer getParentId() {
        return parentId;
    }
    public void setParentId(Integer parentId) {
        this.parentId = parentId;
    }
    public int getLinkType() {
        return linkType;
    }
    public void setLinkType(int linkType) {
        this.linkType = linkType;
    }
    public String getUseRole() {
        return useRole;
    }
    public void setUseRole(String useRole) {
        this.useRole = useRole;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getParams() {
        return params;
    }
    public void setParams(String params) {
        this.params = params;
    }
    public Integer getOrderNum() {
        return orderNum;
    }
    public void setOrderNum(Integer orderNum) {
        this.orderNum = orderNum;
    }
    public String getOpFlag() {
        return opFlag;
    }
    public void setOpFlag(String opFlag) {
        this.opFlag = opFlag;
    }
}
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/domain/SysAccount.java
@@ -10,6 +10,14 @@
@TableName("sys_account")
public class SysAccount implements Serializable {
    /**
     * è§’色:管理员
     */
    public static final String ROLE_ADMIN = "ADMIN";
    /**
     * è§’色:普通用户
     */
    public static final String ROLE_USER = "USER";
    @TableId(type=IdType.AUTO)
    private Integer id;
@@ -34,9 +42,9 @@
    private String password;
    /**
     * user role
     * è§’色代码: ADMIN/USER
     */
    //private String role;
    private String roleCode;
    /**
     * create time
@@ -50,148 +58,60 @@
    private static final long serialVersionUID = 1L;
    /**
     * èŽ·å–primary key
     *
     * @return id - primary key
     */
    public Integer getId() {
        return id;
    }
    /**
     * è®¾ç½®primary key
     *
     * @param id primary key
     */
    public void setId(Integer id) {
        this.id = id;
    }
    /**
     * èŽ·å–mdc user
     *
     * @return user - mdc user
     */
    public String getUsername() {
        return username;
    }
    /**
     * è®¾ç½®mdc user
     *
     * @param user mdc user
     */
    public void setUsername(String username) {
        this.username = username;
    }
    /**
     * èŽ·å–user name
     *
     * @return name - user name
     */
    public String getName() {
        return name;
    }
    /**
     * è®¾ç½®user name
     *
     * @param name user name
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * èŽ·å–phone number
     *
     * @return phone - phone number
    public String getPhone() {
        return phone;
    }
    */
    /**
     * è®¾ç½®phone number
     *
     * @param phone phone number
    public void setPhone(String phone) {
        this.phone = phone;
    }
*/
    /**
     * èŽ·å–password
     *
     * @return password - password
     */
    public String getPassword() {
        return password;
    }
    /**
     * è®¾ç½®password
     *
     * @param password password
     */
    public void setPassword(String password) {
        this.password = password;
    }
    /**
     * èŽ·å–user role
     *
     * @return role - user role
    public String getRole() {
        return role;
    }
*/
    /**
     * è®¾ç½®user role
     *
     * @param role user role
    public void setRole(String role) {
        this.role = role;
    }
 */
    /**
     * èŽ·å–create time
     *
     * @return ctime - create time
     */
    public Date getCreateTime() {
        return createTime;
    }
    /**
     * è®¾ç½®create time
     *
     * @param ctime create time
     */
    public void setCreateTime(Date ctime) {
        this.createTime = ctime;
    }
    /**
     * èŽ·å–last login time
     *
     * @return ltime - last login time
     */
    public Date getLoginTime() {
        return loginTime;
    }
    /**
     * è®¾ç½®last login time
     *
     * @param ltime last login time
     */
    public void setLoginTime(Date ltime) {
        this.loginTime = ltime;
    }
    public String getRoleCode() {
        return roleCode;
    }
    public void setRoleCode(String roleCode) {
        this.roleCode = roleCode;
    }
}
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/dto/sysaccount/UserData.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package com.qianwen.mdc.dto.sysaccount;
import com.alibaba.fastjson.JSONArray;
/**
 * ç™»å½•后返回给用户的数据
 */
public class UserData {
    private String token;
    private JSONArray userMenu;
    public String getToken() {
        return token;
    }
    public void setToken(String token) {
        this.token = token;
    }
    public JSONArray getUserMenu() {
        return userMenu;
    }
    public void setUserMenu(JSONArray userMenu) {
        this.userMenu = userMenu;
    }
}
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/mapper/MenuMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.qianwen.mdc.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qianwen.mdc.domain.Menu;
public interface MenuMapper extends BaseMapper<Menu> {
    List<Menu> list(Integer parentId);
}
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/scheduled/DncProgFileParse.java
@@ -144,7 +144,7 @@
       
        //List<MdcMachineStatus> list = mdcMachineStatusMapper.select(statusObj);
        
        QueryWrapper<MachineStatus> qw = Wrappers.emptyWrapper();
        QueryWrapper<MachineStatus> qw = Wrappers.query();//
        qw.eq("machine_id", machine.getId());
        List<MachineStatus> list = mdcMachineStatusMapper.selectList(qw);
        if ((list.size() == 0) || (list.get(0).getProgName() == null)) {
@@ -211,7 +211,7 @@
        List<DncProcessing> list = mdcDncProgParseMapper.select(progParse);
        */
        
        QueryWrapper<DncProcessing> qw = Wrappers.emptyWrapper();
        QueryWrapper<DncProcessing> qw = Wrappers.query();
        qw.isNull("time");
        List<DncProcessing> list = mdcDncProgParseMapper.selectList(qw);
        if (list.size() == 0) {
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/service/MdcDataArchiveService.java
@@ -87,7 +87,7 @@
            RowBounds rowBounds = new RowBounds(0, 1);
            List<MdcMachineAccount> list = mdcMachineAccountMapper.selectByExampleAndRowBounds(accountExample, rowBounds);
            */
            QueryWrapper<MachineAccount> wrapperAcc = Wrappers.emptyWrapper();
            QueryWrapper<MachineAccount> wrapperAcc = Wrappers.query();
            wrapperAcc.eq("machine_id", status.getMachineId());
            wrapperAcc.orderByDesc("id");
            
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/service/devicetype/DeviceTypeService.java
@@ -93,7 +93,7 @@
    
    @Transactional(readOnly=true)
    public List<DeviceTypeDTO> allList() {
        QueryWrapper<DeviceType> qwp = Wrappers.emptyWrapper();
        QueryWrapper<DeviceType> qwp = Wrappers.query();
        qwp.eq("delete_flag", DeviceType.DELETE_FLAG_NOTREMOVED);
        
        return deviceTypeMapper.selectList(qwp).stream().map(dtype ->{
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/service/sysaccount/AccountTokenService.java
@@ -30,11 +30,11 @@
        //AccountToken mdcTokenObj = new AccountToken();
       // mdcTokenObj.setToken(token);
        //AccountToken mdcToken = mdcTokenMapper.selectOne(mdcTokenObj);
        QueryWrapper<AccountToken> qw = Wrappers.emptyWrapper();
        QueryWrapper<AccountToken> qw = Wrappers.query();
        qw.eq("token", token);
        AccountToken tokenObj = accountTokenMapper.selectOne(qw);
        if(tokenObj == null) {
            throw new InvalidTokenExcepton("token无效");
            throw new InvalidTokenExcepton("无效token:"+token);
        }
        
        tokenObj.setExpireTime(genExpiredTime());
mdc-parent/mdc-show/src/main/java/com/qianwen/mdc/service/sysaccount/SysAccountService.java
@@ -10,13 +10,20 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.qianwen.mdc.domain.AccountToken;
import com.qianwen.mdc.domain.Menu;
import com.qianwen.mdc.domain.SysAccount;
import com.qianwen.mdc.domain.workshop.Workshop;
import com.qianwen.mdc.dto.SysAccountDTO;
import com.qianwen.mdc.dto.sysaccount.UserData;
import com.qianwen.mdc.mapper.AccountTokenMapper;
import com.qianwen.mdc.mapper.MenuMapper;
import com.qianwen.mdc.mapper.SysAccountMapper;
import com.qianwen.mdc.mapper.WorkshopMapper;
import com.qianwen.mdc.service.impl.MdcTokenServiceImpl;
/**
@@ -29,6 +36,10 @@
    private SysAccountMapper sysAccountMapper;
    @Autowired
    private AccountTokenMapper accountTokenMapper;
    @Autowired
    private MenuMapper menuMapper;
    @Autowired
    private WorkshopMapper workshopMapper;
    //@Autowired
    //private AccountTokenService tokenService;
    private static final Logger logger = LoggerFactory.getLogger(SysAccountService.class);
@@ -38,7 +49,7 @@
        
        String token = null;
                
        QueryWrapper<SysAccount> qw = Wrappers.emptyWrapper();
        QueryWrapper<SysAccount> qw = Wrappers.query();
        qw.eq("username", username);
        SysAccount account = sysAccountMapper.selectOne(qw);
        //SysAccount mdcUser = mdcUserMapper.selectOne(mdcUserObj);
@@ -78,11 +89,137 @@
       
        return token;
    }
    @Transactional
    public UserData login2(String username, String password) {
        UserData ud = new UserData();
        String token = null;
        QueryWrapper<SysAccount> qw = Wrappers.query();
        qw.eq("username", username);
        SysAccount account = sysAccountMapper.selectOne(qw);
        //SysAccount mdcUser = mdcUserMapper.selectOne(mdcUserObj);
        logger.debug("user: {}", account);
        if (account == null) {
            throw new LoginFailExcepton("用户不存在");
        }
        if (StringUtils.equals(account.getPassword(), password)) {
            AccountToken tokenObj = accountTokenMapper.getByUserId(account.getId());
            if (tokenObj == null) {
                token = AccountTokenService.genToken(username);
                tokenObj = new AccountToken();
                tokenObj.setUserId(account.getId());
                tokenObj.setToken(token);
                tokenObj.setExpireTime(MdcTokenServiceImpl.genExpiredTime());
                accountTokenMapper.insert(tokenObj);
                //jsonResult.put("token", mdcTokenObj.getToken());
            } else {
                tokenObj.setExpireTime(MdcTokenServiceImpl.genExpiredTime());
                //mdcTokenMapper.updateByPrimaryKey(mdcToken);
                accountTokenMapper.updateById(tokenObj);
                token = tokenObj.getToken();
            }
            ud.setToken(token);
            ud.setUserMenu(generateUserMenu(account));
        } else {
            throw new LoginFailExcepton("用户密码错误");
        }
        return ud;
    }
    /**
     * ç”Ÿæˆç”¨æˆ·èœå•
     * @param account
     * @return
     */
    private JSONArray generateUserMenu(SysAccount account) {
        JSONArray menuData = new JSONArray();
        String userRoleCode = account.getRoleCode();//"ADMIN";//account.getRole()
        List<Menu> menuList = menuMapper.list(null);
        for(Menu m : menuList) {
            if (userRoleCode.equals(SysAccount.ROLE_USER) && SysAccount.ROLE_ADMIN.equals(m.getUseRole())) {
                // å½“前用户是普通用户,且菜单权限是管理员的,不给前端返回
                continue;
            }
            JSONObject item = buildMenuItem(m);
            JSONArray children = new JSONArray();
            List<Menu> subList = menuMapper.list(m.getId());
            for(Menu m2 : subList) {
                if (userRoleCode.equals(SysAccount.ROLE_USER) && SysAccount.ROLE_ADMIN.equals(m2.getUseRole())) {
                    // å½“前用户是普通用户,且菜单权限是管理员的,不给前端返回
                    continue;
                }
                JSONObject item2 = buildMenuItem(m2);
                children.add(item2);
            }
            if("workshop".equals(m.getOpFlag())) {
                //加载车间地图列表
                QueryWrapper<Workshop> qw =Wrappers.query();
                qw.orderByAsc("id");
                List<Workshop> wsList = workshopMapper.selectList(qw);
                for(Workshop ws : wsList) {
                    JSONObject wsitem = new JSONObject();
                    wsitem.put("label", ws.getName());
                    wsitem.put("pathName", "workshop");
                    JSONObject params = new JSONObject();
                    params.put("id", ws.getId());
                    wsitem.put("params", params);
                    JSONObject query = new JSONObject();
                    query.put("name", ws.getName());
                    wsitem.put("query", query);
                    children.add(wsitem);
                }
            }
            item.put("children", children);
            menuData.add(item);
        }
        return menuData;
    }
    private JSONObject buildMenuItem(Menu m) {
        JSONObject item = new JSONObject();
        item.put("label", m.getLabel());
        if(StringUtils.isNotEmpty(m.getUrl())) {
            if(m.isTypeHref()) {
                item.put("href", m.getUrl());
            }else {
                item.put("pathName", m.getUrl());
            }
        }
        if(StringUtils.isNotEmpty(m.getParams())) {
            item.put("params", JSONObject.parseObject(m.getParams()));
        }
        return item;
    }
    @Transactional(readOnly=true)
    public SysAccountDTO getUserByToken(String token) {
        
        QueryWrapper<AccountToken> w = Wrappers.emptyWrapper();
        QueryWrapper<AccountToken> w = Wrappers.query();
        w.eq("token", token);
        
        List<AccountToken> atlist = accountTokenMapper.selectList(w);
mdc-parent/mdc-show/src/main/resources/context.xml
@@ -4,11 +4,11 @@
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <import resource="classpath:ureport-console-context.xml" />
    <!--
    <!--  -->
    <bean id="propertyConfigurer" parent="ureport.props">
        <property name="location">
            <value>classpath:config.properties</value>
            <value>file:./mdcreportconfig.properties</value>
        </property>
    </bean>
     -->
</beans>
mdc-parent/mdc-show/src/main/resources/reportconfig.properties
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
ureport.fileStoreDir=d:/mdc/ureportfiles
mdc-parent/mdc-showdb-mysql/src/main/resources/mapper/MachineMapper.xml
@@ -153,7 +153,7 @@
                and acc.type=#{dto.type}
             </if>
             <if test="dto.transMode != null">
                and a.transMode=#{dto.transMode}
                and a.trans_mode=#{dto.transMode}
             </if>
             <if test="dto.category != null and dto.category != ''">
                and acc.category=#{dto.category}
mdc-parent/mdc-showdb-mysql/src/main/resources/mapper/MenuMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qianwen.mdc.mapper.MenuMapper">
  <resultMap id="BaseResultMap" type="com.qianwen.mdc.domain.Menu">
    <id column="id" jdbcType="INTEGER" property="id" />
    <result column="label" jdbcType="VARCHAR" property="label" />
    <result column="use_role" jdbcType="VARCHAR" property="useRole" />
    <result column="params" jdbcType="VARCHAR" property="params" />
    <result column="link_type" jdbcType="INTEGER" property="linkType" />
    <result column="url" jdbcType="VARCHAR" property="url" />
    <result column="parent_id" jdbcType="INTEGER" property="parentId" />
    <result column="order_num" jdbcType="INTEGER" property="orderNum" />
    <result column="op_flag" jdbcType="VARCHAR" property="opFlag" />
  </resultMap>
    <select id="list" resultMap="BaseResultMap">
      SELECT id,label,use_role,params,link_type,url,params,parent_id,op_flag
      FROM menu
      <where>
           <if test="parentId != null">
           and parent_id=#{parentId}
         </if>
         <if test="parentId == null">
           and parent_id is null
         </if>
      </where>
      order by order_num
     </select>
</mapper>