Explorar el Código

添加账号管理功能和角色管理功能

liu hace 1 año
padre
commit
10de55b327

+ 1 - 1
src/main/java/com/template/AutoCode.java

@@ -56,7 +56,7 @@ public class AutoCode {
         mpg.setPackageInfo(pc);
         //4、策略配置
         StrategyConfig strategy = new StrategyConfig();
-        strategy.setInclude("welcome_school"); // 设置要映射的表名
+        strategy.setInclude("welcome_role"); // 设置要映射的表名
         strategy.setNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
         strategy.setColumnNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
         strategy.setEntityLombokModel(true); // 自动lombok;

+ 32 - 0
src/main/java/com/template/api/WelcomeAccountControllerAPI.java

@@ -0,0 +1,32 @@
+package com.template.api;
+
+import com.template.model.pojo.WelcomeAccount;
+import com.template.model.pojo.WelcomeRole;
+import com.template.model.result.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+@RequestMapping("/api/welcomeAccount")
+@Api(tags = {"WelcomeAccountController"}, value = "账号管理设置")
+public interface WelcomeAccountControllerAPI {
+
+    @PostMapping(value = "/saveAccount")
+    @ApiOperation(value = "添加账号", notes = "添加账号", httpMethod = "POST")
+    CommonResult saveAccount(@RequestBody WelcomeAccount welcomeAccount);
+
+
+    @GetMapping(value = "/deleteAccount")
+    @ApiOperation(value = "删除账号", notes = "删除账号", httpMethod = "GET")
+    CommonResult deleteAccount(@RequestParam Integer accountId);
+
+
+    @PostMapping(value = "/updateAccount")
+    @ApiOperation(value = "修改账号", notes = "修改账号", httpMethod = "POST")
+    CommonResult updateAccount(@RequestBody WelcomeAccount welcomeAccount);
+
+
+    @GetMapping(value = "/listAccount")
+    @ApiOperation(value = "查询账号", notes = "查询账号", httpMethod = "GET")
+    CommonResult listAccount(@RequestParam int currentPage, @RequestParam int pageCount);
+}

+ 30 - 0
src/main/java/com/template/api/WelcomeRoleControllerAPI.java

@@ -0,0 +1,30 @@
+package com.template.api;
+
+import com.template.model.pojo.WelcomeRole;
+import com.template.model.pojo.WelcomeSchool;
+import com.template.model.result.CommonResult;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+@RequestMapping("/api/welcomeRole")
+public interface WelcomeRoleControllerAPI {
+
+    @PostMapping(value = "/saveRole")
+    @ApiOperation(value = "添加角色", notes = "添加角色", httpMethod = "POST")
+    CommonResult saveRole(@RequestBody WelcomeRole welcomeRole);
+
+
+    @GetMapping(value = "/deleteRole")
+    @ApiOperation(value = "删除角色", notes = "删除角色", httpMethod = "GET")
+    CommonResult deleteRole(@RequestParam Integer roleId);
+
+
+    @PostMapping(value = "/updateRole")
+    @ApiOperation(value = "修改角色", notes = "修改角色", httpMethod = "POST")
+    CommonResult updateRole(@RequestBody WelcomeRole welcomeRole);
+
+
+    @GetMapping(value = "/listRole")
+    @ApiOperation(value = "查询角色", notes = "查询角色", httpMethod = "GET")
+    CommonResult listRole(@RequestParam int currentPage, @RequestParam int pageCount);
+}

+ 96 - 1
src/main/java/com/template/controller/WelcomeAccountController.java

@@ -1,10 +1,29 @@
 package com.template.controller;
 
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.template.api.WelcomeAccountControllerAPI;
+import com.template.common.utils.AesUtils;
+import com.template.model.pojo.WelcomeAccount;
+import com.template.model.pojo.WelcomeBed;
+import com.template.model.pojo.WelcomeOrg;
+import com.template.model.pojo.WelcomeRole;
+import com.template.model.request.loginRequest;
+import com.template.model.result.CommonResult;
+import com.template.model.result.PageUtils;
+import com.template.model.vo.WelcomeAccountVo;
+import com.template.services.WelcomeAccountService;
+import com.template.services.WelcomeOrgService;
+import com.template.services.WelcomeRoleService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
 /**
  * <p>
  *  前端控制器
@@ -14,7 +33,83 @@ import org.springframework.web.bind.annotation.RestController;
  * @since 2025-06-13
  */
 @RestController
-public class WelcomeAccountController {
+public class WelcomeAccountController implements WelcomeAccountControllerAPI {
+
+    @Autowired
+    WelcomeAccountService welcomeAccountService;
+
+    @Autowired
+    WelcomeOrgService welcomeOrgService;
+
+    @Autowired
+    WelcomeRoleService welcomeRoleService;
+
+    @Override
+    public CommonResult saveAccount(WelcomeAccount welcomeAccount) {
+        String account = welcomeAccount.getAccount();
+//        将密码加密
+        String password = welcomeAccount.getPassword();
+        String encPassword = AesUtils.encrypt(password);
+        welcomeAccount.setPassword(encPassword);
+        WelcomeAccount dataByAccount = welcomeAccountService.getDataByAccount(account);
+        if (ObjectUtils.isNotEmpty(dataByAccount)) {
+            return CommonResult.fail("已存在该账号");
+        }
+        welcomeAccountService.insertWelcomeAccount(welcomeAccount);
+        return CommonResult.ok();
+    }
+
+    @Override
+    public CommonResult deleteAccount(Integer accountId) {
+        welcomeAccountService.removeById(accountId);
+        return CommonResult.ok();
+    }
+
+    @Override
+    public CommonResult updateAccount(WelcomeAccount welcomeAccount) {
+        String account = welcomeAccount.getAccount();
+        //        将密码加密
+        String password = welcomeAccount.getPassword();
+        String encPassword = AesUtils.encrypt(password);
+        welcomeAccount.setPassword(encPassword);
+
+        WelcomeAccount dataByAccount = welcomeAccountService.getDataByAccount(account);
+        if (ObjectUtils.isNotEmpty(dataByAccount)) {
+            Integer id = dataByAccount.getId();
+            Integer id1 = welcomeAccount.getId();
+            if (!id.equals(id1)) {
+                return CommonResult.fail("已存在该账号");
+            }
+
+        }
+        welcomeAccountService.updateWelcomeAccount(welcomeAccount);
+        return CommonResult.ok();
+    }
+
+    @Override
+    public CommonResult listAccount(int currentPage, int pageCount) {
+        PageUtils<WelcomeAccountVo> pageUtils= welcomeAccountService.listAccount(currentPage,pageCount);
+        List<WelcomeAccountVo> list = pageUtils.getList();
+        for (WelcomeAccountVo record : list) {
+            String collegeId = record.getCollegeId();
+            List<WelcomeOrg> checkOrgList= new ArrayList<>();
+            if (ObjectUtils.isNotEmpty(collegeId)) {
+                List<String> checkOrg= Arrays.asList(collegeId.split(","));
+                for(int i=0;i<checkOrg.size();i++){
+                    WelcomeOrg welcomeOrg= welcomeOrgService.getById(checkOrg.get(i));
+                    if (welcomeOrg!=null){
+                        checkOrgList.add(welcomeOrg);
+                    }
+                }
+                record.setWelcomeOrgList(checkOrgList);
+            }
+            if (ObjectUtils.isNotEmpty(record.getRoleId())) {
+                WelcomeRole byId = welcomeRoleService.getById(record.getRoleId());
+                record.setWelcomeRole(byId);
+            }
 
+        }
+        return CommonResult.ok(pageUtils);
+    }
 }
 

+ 3 - 0
src/main/java/com/template/controller/WelcomeDormitoryController.java

@@ -242,12 +242,15 @@ public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI
                 if (count == wdv.getBedNumber().intValue()) {//满员 1
                     //更改状态
                     wdv.setStatus(1);
+                    wdv.setFreeBedNumber(0);
                 } else if (count > 0 && count < wdv.getBedNumber().intValue()) {//缺额 3
                     //更改状态
                     wdv.setStatus(3);
+                    wdv.setFreeBedNumber(wdv.getBedNumber()-count);
                 } else {//全空 2
                     //更改状态
                     wdv.setStatus(2);
+                    wdv.setFreeBedNumber(wdv.getBedNumber()-count);
                 }
 
 

+ 88 - 0
src/main/java/com/template/controller/WelcomeRoleController.java

@@ -0,0 +1,88 @@
+package com.template.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.template.api.WelcomeRoleControllerAPI;
+import com.template.model.pojo.WelcomeAccount;
+import com.template.model.pojo.WelcomeRole;
+import com.template.model.pojo.WelcomeSchool;
+import com.template.model.result.CommonResult;
+import com.template.model.result.PageUtils;
+import com.template.services.WelcomeAccountService;
+import com.template.services.WelcomeRoleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-06-25
+ */
+@RestController
+public class WelcomeRoleController implements WelcomeRoleControllerAPI {
+
+    @Autowired
+    WelcomeRoleService welcomeRoleService;
+
+    @Autowired
+    WelcomeAccountService welcomeAccountService;
+
+    @Override
+    public CommonResult saveRole(WelcomeRole welcomeRole) {
+        String roleName = welcomeRole.getRoleName();
+        LambdaQueryWrapper<WelcomeRole> wrapper=new LambdaQueryWrapper<>();
+        wrapper.eq(WelcomeRole::getRoleName,roleName);
+        WelcomeRole one = welcomeRoleService.getOne(wrapper);
+        if (ObjectUtils.isNotEmpty(one)) {
+            return CommonResult.fail("已存在该角色");
+        }
+        return welcomeRoleService.save(welcomeRole)?CommonResult.ok():CommonResult.fail();
+    }
+
+    @Override
+    public CommonResult deleteRole(Integer roleId) {
+//          判断该角色是否还有账号在使用
+        LambdaQueryWrapper<WelcomeAccount> wrapper=new LambdaQueryWrapper<>();
+        wrapper.eq(WelcomeAccount::getRoleId,roleId);
+        List<WelcomeAccount> list = welcomeAccountService.list(wrapper);
+        if (ObjectUtils.isNotEmpty(list)&&list.size()>0) {
+            return CommonResult.fail("该角色还在使用中");
+        }
+        return welcomeRoleService.removeById(roleId)?CommonResult.ok():CommonResult.fail();
+    }
+
+    @Override
+    public CommonResult updateRole(WelcomeRole welcomeRole) {
+        String roleName = welcomeRole.getRoleName();
+
+//        判断当前角色名称是否已存在
+        LambdaQueryWrapper<WelcomeRole> wrapper=new LambdaQueryWrapper<>();
+        wrapper.eq(WelcomeRole::getRoleName,roleName);
+        WelcomeRole one = welcomeRoleService.getOne(wrapper);
+        if (ObjectUtils.isNotEmpty(one)) {
+            Integer id = one.getId();
+            Integer id1 = welcomeRole.getId();
+            if (!id.equals(id1)) {
+                return CommonResult.fail("已存在该角色");
+            }
+        }
+
+        return welcomeRoleService.updateById(welcomeRole)?CommonResult.ok():CommonResult.fail();
+    }
+
+    @Override
+    public CommonResult listRole(int currentPage, int pageCount) {
+        PageUtils<WelcomeRole> pageUtils= welcomeRoleService.listRole(currentPage,pageCount);
+        return CommonResult.ok(pageUtils);
+    }
+}
+

+ 4 - 0
src/main/java/com/template/mapper/WelcomeAccountMapper.java

@@ -1,7 +1,10 @@
 package com.template.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.template.model.pojo.WelcomeAccount;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.template.model.vo.WelcomeAccountVo;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -15,4 +18,5 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface WelcomeAccountMapper extends BaseMapper<WelcomeAccount> {
 
+    IPage<WelcomeAccountVo> listAccount(Page<WelcomeAccountVo> page);
 }

+ 18 - 0
src/main/java/com/template/mapper/WelcomeRoleMapper.java

@@ -0,0 +1,18 @@
+package com.template.mapper;
+
+import com.template.model.pojo.WelcomeRole;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-06-25
+ */
+@Repository
+public interface WelcomeRoleMapper extends BaseMapper<WelcomeRole> {
+
+}

+ 6 - 0
src/main/java/com/template/model/pojo/WelcomeAccount.java

@@ -43,6 +43,12 @@ public class WelcomeAccount implements Serializable {
     @ApiModelProperty(value = "密码")
     private String password;
 
+    @ApiModelProperty(value = "角色id")
+    private Integer roleId;
+
+    @ApiModelProperty(value = "学院id")
+    private String collegeId;
+
     @ApiModelProperty(value = "创建时间")
     @TableField(fill = FieldFill.INSERT)
     private Date createTime;

+ 89 - 0
src/main/java/com/template/model/pojo/WelcomeRole.java

@@ -0,0 +1,89 @@
+package com.template.model.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-06-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="WelcomeRole对象", description="")
+public class WelcomeRole implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "角色权限表")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "角色名称")
+    private String roleName;
+
+    @ApiModelProperty(value = "数据总览设置 1.数据总览")
+    private String dataManagementSetting;
+
+    @ApiModelProperty(value = "学生管理设置 1.添加,2查询,3编辑,4删除,5.导入,6导出")
+    private String studentManagementSetting;
+
+    @ApiModelProperty(value = "楼栋管理设置 1.添加,2查询,3编辑,4删除,5.导入,6导出")
+    private String buildingManagementSetting;
+
+    @ApiModelProperty(value = "宿舍管理设置 1.添加,2查询,3编辑,4删除,5导出")
+    private String dormitoryManagementSetting;
+
+    @ApiModelProperty(value = "床位管理设置 1.添加,2查询,3编辑,4删除,5导出")
+    private String bedManagementSetting;
+
+    @ApiModelProperty(value = "访客管理设置 1.添加,2查询,3编辑,4删除,5导出")
+    private String visitorManagementSetting;
+
+    @ApiModelProperty(value = "角色管理设置 1.添加,2查询,3编辑,4删除")
+    private String roleManagementSetting;
+
+    @ApiModelProperty(value = "账号管理设置 1.添加,2查询,3编辑,4删除")
+    private String accountManagementSetting;
+
+    @ApiModelProperty(value = "设置管理设置 1.缴费设置,2.车位数设置,3.联系方式设置,4.文本设置")
+    private String settingManagementSetting;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    @ApiModelProperty(value = "创建人员")
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    @ApiModelProperty(value = "更新人员")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateUser;
+
+    @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleted;
+
+
+}

+ 37 - 0
src/main/java/com/template/model/vo/WelcomeAccountVo.java

@@ -0,0 +1,37 @@
+package com.template.model.vo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.template.model.pojo.WelcomeOrg;
+import com.template.model.pojo.WelcomeRole;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class WelcomeAccountVo {
+    private Integer id;
+
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "账号")
+    private String account;
+
+    @ApiModelProperty(value = "密码")
+    private String password;
+
+    @ApiModelProperty(value = "角色id")
+    private Integer roleId;
+
+    @ApiModelProperty(value = "学院id")
+    private String collegeId;
+
+    @ApiModelProperty(value = "角色")
+    private WelcomeRole welcomeRole;
+
+    @ApiModelProperty(value = "学院名称")
+    private List<WelcomeOrg> welcomeOrgList;
+}

+ 2 - 0
src/main/java/com/template/services/WelcomeAccountService.java

@@ -4,6 +4,7 @@ import com.template.model.pojo.WelcomeAccount;
 import com.template.model.pojo.WelcomeAccount;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.template.model.result.PageUtils;
+import com.template.model.vo.WelcomeAccountVo;
 
 /**
  * <p>
@@ -27,5 +28,6 @@ public interface WelcomeAccountService extends IService<WelcomeAccount> {
     WelcomeAccount getDataByAccount(String account);
 
 
+    PageUtils<WelcomeAccountVo> listAccount(int currentPage, int pageCount);
 
 }

+ 18 - 0
src/main/java/com/template/services/WelcomeRoleService.java

@@ -0,0 +1,18 @@
+package com.template.services;
+
+import com.template.model.pojo.WelcomeRole;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.template.model.result.PageUtils;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-06-25
+ */
+public interface WelcomeRoleService extends IService<WelcomeRole> {
+
+    PageUtils<WelcomeRole> listRole(int currentPage, int pageCount);
+}

+ 16 - 0
src/main/java/com/template/services/impl/WelcomeAccountServiceImpl.java

@@ -1,19 +1,28 @@
 package com.template.services.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.template.mapper.WelcomeAccountMapper;
 import com.template.model.pojo.WelcomeAccount;
 import com.template.model.pojo.WelcomeAccount;
 import com.template.mapper.WelcomeAccountMapper;
+import com.template.model.pojo.WelcomeOrg;
 import com.template.model.result.PageUtils;
+import com.template.model.vo.WelcomeAccountVo;
 import com.template.services.WelcomeAccountService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -69,5 +78,12 @@ public class WelcomeAccountServiceImpl extends ServiceImpl<WelcomeAccountMapper,
         return wa;
     }
 
+    @Override
+    public PageUtils<WelcomeAccountVo> listAccount(int currentPage, int pageCount) {
+        Page<WelcomeAccountVo> page = new Page<>(currentPage, pageCount);
+        IPage<WelcomeAccountVo> result = welcomeAccountMapper.listAccount(page);
+        return new PageUtils<>(result);
+    }
+
 
 }

+ 34 - 0
src/main/java/com/template/services/impl/WelcomeRoleServiceImpl.java

@@ -0,0 +1,34 @@
+package com.template.services.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.template.model.pojo.WelcomeRole;
+import com.template.mapper.WelcomeRoleMapper;
+import com.template.model.pojo.WelcomeSchool;
+import com.template.model.result.PageUtils;
+import com.template.services.WelcomeRoleService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ceshi
+ * @since 2025-06-25
+ */
+@Service
+public class WelcomeRoleServiceImpl extends ServiceImpl<WelcomeRoleMapper, WelcomeRole> implements WelcomeRoleService {
+
+    @Autowired
+    WelcomeRoleMapper welcomeRoleMapper;
+
+    @Override
+    public PageUtils<WelcomeRole> listRole(int currentPage, int pageCount) {
+        IPage<WelcomeRole> result = welcomeRoleMapper.selectPage(new Page<>(currentPage, pageCount), new QueryWrapper<>());
+        return new PageUtils<>(result);
+    }
+}

+ 13 - 0
src/main/resources/mapper/template/WelcomeAccountMapper.xml

@@ -2,4 +2,17 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.template.mapper.WelcomeAccountMapper">
 
+
+    <select id="listAccount" resultType="com.template.model.vo.WelcomeAccountVo">
+        SELECT
+            wa.*
+        FROM
+            `welcome_account` wa
+                LEFT JOIN welcome_role wr ON wr.id = wa.role_id
+                AND wr.deleted = 0
+        WHERE
+            wa.deleted = 0
+        ORDER BY
+            wa.create_time
+    </select>
 </mapper>

+ 5 - 0
src/main/resources/mapper/template/WelcomeRoleMapper.xml

@@ -0,0 +1,5 @@
+<?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.template.mapper.WelcomeRoleMapper">
+
+</mapper>