Browse Source

测试提交

linzhiwei 2 years ago
commit
f54fb801d1

+ 128 - 0
pom.xml

@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.2.10.RELEASE</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+    <groupId>com.tolfy</groupId>
+    <artifactId>demo12345</artifactId>
+    <version>1.0.0</version>
+    <name>demo12345</name>
+    <description>Demo project for Spring Boot</description>
+    <properties>
+        <java.version>1.8</java.version>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+            <scope>runtime</scope>
+            <optional>true</optional>
+        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.oracle.database.jdbc</groupId>-->
+<!--            <artifactId>ojdbc8</artifactId>-->
+<!--            <scope>runtime</scope>-->
+<!--        </dependency>-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-configuration-processor</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <!--swagger2依赖-->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <version>2.9.2</version>
+        </dependency>
+        <!--视图逻辑swagger-ui-->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>2.9.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.oracle</groupId>
+            <artifactId>ojdbc6</artifactId>
+            <version>11.2.0.4.0-atlassian-hosted</version>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.3.2</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>
+                            <groupId>org.projectlombok</groupId>
+                            <artifactId>lombok</artifactId>
+                        </exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <releases>
+                <enabled>false</enabled>
+            </releases>
+        </repository>
+    </repositories>
+    <pluginRepositories>
+        <pluginRepository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+        </pluginRepository>
+        <pluginRepository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <releases>
+                <enabled>false</enabled>
+            </releases>
+        </pluginRepository>
+    </pluginRepositories>
+
+</project>

+ 15 - 0
src/main/java/com/tolfy/demo12345/Demo12345Application.java

@@ -0,0 +1,15 @@
+package com.tolfy.demo12345;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+@MapperScan("com.tolfy.demo12345.mapper")
+public class Demo12345Application {
+
+    public static void main(String[] args) {
+        SpringApplication.run(Demo12345Application.class, args);
+    }
+
+}

+ 81 - 0
src/main/java/com/tolfy/demo12345/config/SwaggerConfig.java

@@ -0,0 +1,81 @@
+package com.tolfy.demo12345.config;
+
+import com.google.common.base.Predicates;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * @Author Tuerlechat,
+ * @Date 2022/12/5
+ */
+@Configuration  //设置配置类
+@EnableSwagger2    //开启swagger2
+public class SwaggerConfig {
+
+    @Bean
+    public Docket webApiConfig(){
+
+        return new Docket(DocumentationType.SWAGGER_2)
+                .groupName("主页api接口")    //起一个分组名
+                .apiInfo(webApiInfo())  //添加下面对应的方法
+                .select()
+                //过滤掉admin路径下的所有页面
+                .paths(Predicates.not(PathSelectors.regex("/admin/.*")))
+                //过滤掉所有error或error.*页面(默认有一个error页面)
+                .paths(Predicates.not(PathSelectors.regex("/error.*")))
+                .build();
+
+    }
+
+    @Bean
+    public Docket adminApiConfig(){
+
+        return new Docket(DocumentationType.SWAGGER_2)
+                .groupName("管理员api接口")  //起一个分组名
+                .apiInfo(adminApiInfo())    //添加下面对应的方法
+                .select()
+                //只显示admin路径下的页面
+                .paths(Predicates.and(PathSelectors.regex("/admin/.*")))
+                .build();
+
+    }
+
+    /**
+     * 对应上面的实现方法
+     * @return
+     */
+    private ApiInfo webApiInfo(){
+
+        return new ApiInfoBuilder()
+                .title("swagger2—测试API文档")  //标题
+                .description("本文档描述了对swagger2进行使用测试")   //描述
+                .version("1.3") //版本
+                //网站访问跳转链接和发送邮箱
+                .contact(new Contact("我的主页",
+                        "http://note.youdao.com/noteshare?id=099f303ebbad1aa2c4e5b82fb5a28e12&sub=F20546FED38C4DE28BA0827035F631DB",
+                        "111111@qq.com"))
+                .build();
+    }
+
+    /**
+     * 对应上面的实现方法
+     * @return
+     */
+    private ApiInfo adminApiInfo(){
+
+        return new ApiInfoBuilder()
+                .title("swagger2-测试使用API文档2")
+                .description("本文档描述了对swagger2进行使用测试的一些信息")
+                .version("1.0")
+                .contact(new Contact("林志伟随手笔记", "http://note.youdao.com/noteshare?id=099f303ebbad1aa2c4e5b82fb5a28e12&sub=F20546FED38C4DE28BA0827035F631DB", "111111@qq.com"))
+                .build();
+    }
+
+}

+ 47 - 0
src/main/java/com/tolfy/demo12345/controller/AdminController.java

@@ -0,0 +1,47 @@
+package com.tolfy.demo12345.controller;
+
+//import com.example.demo123.service.UserService;
+import com.tolfy.demo12345.entity.User;
+import com.tolfy.demo12345.service.UserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @Author Tuerlechat,
+ * @Date 2022/12/5
+ */
+@Api(tags = "admin测试")
+@RestController
+@AllArgsConstructor
+@RequestMapping("/admin")
+public class AdminController {
+
+    private final UserService userService;
+
+    @ApiOperation(value = "这是admin接口测试")
+    @PostMapping("/imAdmin") //post请求
+    public String imAdmin(@ApiParam(name = "str", value = "张三", required = true) String str) {
+        return "我是admin接口。";
+    }
+
+    @ApiOperation(value = "获取用户信息")
+    @GetMapping("/getUserInfo") //get请求
+    public List<User> getUserInfo(User user) {
+        try {
+            List<User> list = userService.list();
+            return list;
+        }catch (Exception e){
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+}

+ 296 - 0
src/main/java/com/tolfy/demo12345/entity/User.java

@@ -0,0 +1,296 @@
+package com.tolfy.demo12345.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @Author: 翘屁老猫
+ * @Date: 2020/11/4 10:00
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName(value = "TF_SMPN_USER_X",resultMap = "userMap")
+@KeySequence("TF_SMPN_USER_X")
+@ApiModel
+public class User extends Model<User> {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 用户ID,主键
+     */
+    @TableId(value = "ID",type= IdType.INPUT)
+    @ApiModelProperty(value = "用户ID,主键")
+    private Long id;
+    /**
+     * 用户名
+     */
+    @ApiModelProperty(value = "用户名")
+    private String username;
+    /**
+     * 密码
+     */
+    @ApiModelProperty(value = "密码")
+    private String password;
+    /**
+     * 随机数
+     */
+    @ApiModelProperty(value = "随机数")
+    private String salt;
+    /**
+     * 电话
+     */
+    @ApiModelProperty(value = "电话")
+    private String phone;
+    /**
+     * 头像
+     */
+    @ApiModelProperty(value = "头像")
+    private String avatar;
+    /**
+     * 部门ID
+     */
+    @ApiModelProperty(value = "部门ID")
+    private Long departmentId;
+
+    @TableField(exist = false)
+    private String departmentName;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @TableField(value = "CREATE_TIME",fill = FieldFill.INSERT)
+    private Date createTime;
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @TableField(value = "UPDATE_TIME",fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+    /**
+     * 是否锁定,1正常,0锁定
+     */
+    @ApiModelProperty(value = "是否锁定,1正常,0锁定")
+    private String lockFlag;
+    /**
+     * 是否启用禁用,1启用,0禁用
+     */
+    @ApiModelProperty(value = "是否删除,1启用,0删除")
+    private String statusFlag;
+    /**
+     * 扩展功能,微信openid
+     */
+    @ApiModelProperty(value = "扩展功能,微信openid")
+    private String wxOpenid;
+    /**
+     * 扩展功能,QQ openid
+     */
+    @ApiModelProperty(value = "扩展功能,QQ openid")
+    private String qqOpenid;
+    /**
+     * 用户email
+     */
+    @ApiModelProperty(value = "用户email")
+    private String email;
+    /**
+     * 用户姓名
+     */
+    @ApiModelProperty(value = "用户姓名")
+    private String realName;
+    /**
+     * 最后一次登录时间
+     */
+    @ApiModelProperty(value = "最后一次登录时间")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date loginTime;
+    /**
+     * 最后一次访问IP
+     */
+    @ApiModelProperty(value = "最后一次访问IP")
+    private String lastIp;
+    /**
+     * 密码错误次数
+     */
+    @ApiModelProperty(value = "密码错误次数")
+    private Short pwderrtimes;
+    /**
+     * 工号
+     */
+    @ApiModelProperty(value = "工号")
+    private String worknumber;
+    /**
+     * 找回密码关键字
+     */
+    @ApiModelProperty(value = "找回密码关键字")
+    private String findpwdkey;
+    /**
+     * 别名
+     */
+    @ApiModelProperty(value = "别名")
+    private String aliasname;
+    /**
+     * 生日
+     */
+    @ApiModelProperty(value = "生日")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date birthday;
+    /**
+     * 属于(学院/部门)
+     */
+    @ApiModelProperty(value = "属于(学院/部门)")
+    private String belong;
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    @TableField(value = "CREATE_USER",fill = FieldFill.INSERT)
+    private Long createUser;
+
+    /**
+     * 电子签名图片
+     */
+    @ApiModelProperty(value = "电子签名图片")
+    private String esignature;
+
+    /**
+     * 用户级别
+     */
+    @ApiModelProperty(value = "用户级别")
+    private String userLevel;
+
+    /**
+     * 创建类型,0自建、1申请创建
+     */
+    @ApiModelProperty(value = "创建类型,0自建、1申请创建")
+    private String createType;
+
+    /**
+     * 首次登陆状态,1 首次登录,0 非首次登录
+     */
+    @ApiModelProperty(value = "首次登陆状态,1 首次登录,0 非首次登录")
+    private String firstlog;
+
+    /**
+     * 申请人
+     */
+    @ApiModelProperty(value = "申请人")
+    private String applyer;
+
+    /**
+     * 申请时间
+     */
+    @ApiModelProperty(value = "申请时间")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date applytime;
+
+    /**
+     * 申请说明
+     */
+    @ApiModelProperty(value = "申请说明")
+    private String applystate;
+
+    /**
+     * 审核人
+     */
+    @ApiModelProperty(value = "审核人")
+    private String auditor;
+
+    /**
+     * 用户账号详情
+     */
+    @ApiModelProperty(value = "用户账号详情")
+    private String accountstate;
+
+    /**
+     * 审核时间
+     */
+    @ApiModelProperty(value = "审核时间")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date audittime;
+
+    /**
+     * 审核说明
+     */
+    @ApiModelProperty(value = "审核说明")
+    private String auditstate;
+
+    /**
+     * 审核状态,1 未审核,2 同意, 0 不同意
+     */
+    @ApiModelProperty(value = "审核状态,1 未审核,2 同意, 0 不同意")
+    private String auditstatus;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String note;
+
+    /**
+     * 岗位
+     */
+    @ApiModelProperty(value = "岗位")
+    private String job;
+
+    /**
+     * 原始密码
+     */
+    @ApiModelProperty(value = "原始密码")
+    private String originalPassword;
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "是否启用禁用,1启用,0禁用")
+    private String enableFlag;
+
+    @ApiModelProperty(value = "总公司")
+    private Long parentCompanyId;
+
+    @ApiModelProperty(value = "总公司名称")
+    @TableField(exist = false)
+    private String parentCompanyName;
+
+    @ApiModelProperty(value = "分公司")
+    private Long companyId;
+
+    @ApiModelProperty(value = "分公司名称")
+    @TableField(exist = false)
+    private String companyName;
+
+    /**
+     * 当前版本号
+     */
+    @ApiModelProperty(value = "当前版本号")
+    private String nowVersion;
+
+    /**
+     * 上次APP更新时间
+     */
+    @ApiModelProperty(value = "上次APP更新时间")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date lastAppUpdateTime;
+
+    /**
+     * 备注
+     */
+//    @ApiModelProperty(value = "更新用户人")
+//    private String updateUser;
+
+}

+ 20 - 0
src/main/java/com/tolfy/demo12345/mapper/UserMapper.java

@@ -0,0 +1,20 @@
+/*
+ * Author: wangjian
+ * 生成mapper
+ */
+package com.tolfy.demo12345.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.tolfy.demo12345.entity.User;
+import org.mapstruct.Mapper;
+
+/**
+ * 用户表
+ *
+ * @author admin
+ * @date Thu Oct 10 00:00:00 CST 2019
+ */
+public interface UserMapper extends BaseMapper<User> {
+
+}

+ 20 - 0
src/main/java/com/tolfy/demo12345/service/UserService.java

@@ -0,0 +1,20 @@
+/*
+ * Author: wangjian
+ * 生成Service
+ */
+package com.tolfy.demo12345.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.tolfy.demo12345.entity.User;
+
+
+/**
+ * 用户表
+ *
+ * @author admin
+ * @date Thu Oct 10 00:00:00 CST 2019
+ */
+public interface UserService extends IService<User>{
+
+
+}

+ 31 - 0
src/main/java/com/tolfy/demo12345/service/impl/UserServiceImpl.java

@@ -0,0 +1,31 @@
+/*
+ * Author: wangjian
+ * 生成ServiceImpl
+ */
+package com.tolfy.demo12345.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import com.tolfy.demo12345.entity.User;
+import com.tolfy.demo12345.mapper.UserMapper;
+import com.tolfy.demo12345.service.UserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+;
+
+/**
+ * 用户表
+ *
+ * @author admin
+ * @date Thu Oct 10 00:00:00 CST 2019
+ */
+@Service("userService")
+@Slf4j
+public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
+
+    public void test(){
+
+    }
+}

+ 0 - 0
src/main/resources/application.properties


+ 7 - 0
src/main/resources/application.yml

@@ -0,0 +1,7 @@
+
+spring:
+  datasource:
+    driver-class-name: oracle.jdbc.driver.OracleDriver
+    url: jdbc:oracle:thin:@192.168.2.15:1521:orcl
+    username: TF_MYSY
+    password: TF_MYSY

+ 476 - 0
src/main/resources/mapper/UserMapper.xml

@@ -0,0 +1,476 @@
+<?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.tolfy.demo12345.mapper.UserMapper">
+
+    <resultMap id="userMap" type="com.tolfy.demo12345.entity.User">
+        <id property="id" column="ID"/>
+        <result property="username" column="USERNAME"/>
+        <result property="password" column="PASSWORD"/>
+        <result property="salt" column="SALT"/>
+        <result property="phone" column="PHONE"/>
+        <result property="avatar" column="AVATAR"/>
+        <result property="departmentId" column="DEPARTMENT_ID"/>
+        <result property="createTime" column="CREATE_TIME"/>
+        <result property="updateTime" column="UPDATE_TIME"/>
+        <result property="lockFlag" column="LOCK_FLAG"/>
+        <result property="statusFlag" column="STATUS_FLAG"/>
+        <result property="wxOpenid" column="WX_OPENID"/>
+        <result property="qqOpenid" column="QQ_OPENID"/>
+        <result property="email" column="EMAIL"/>
+        <result property="realName" column="REAL_NAME"/>
+        <result property="loginTime" column="LOGIN_TIME"/>
+        <result property="lastIp" column="LAST_IP"/>
+        <result property="pwderrtimes" column="PWDERRTIMES"/>
+        <result property="worknumber" column="WORKNUMBER"/>
+        <result property="findpwdkey" column="FINDPWDKEY"/>
+        <result property="aliasname" column="ALIASNAME"/>
+        <result property="birthday" column="BIRTHDAY"/>
+        <result property="belong" column="BELONG"/>
+        <result property="createUser" column="CREATE_USER"/>
+        <result property="esignature" column="ESIGNATURE"/>
+        <result property="userLevel" column="USER_LEVEL"/>
+        <result property="createType" column="CREATE_TYPE"/>
+        <result property="firstlog" column="FIRSTLOG"/>
+        <result property="applyer" column="APPLYER"/>
+        <result property="applytime" column="APPLYTIME"/>
+        <result property="applystate" column="APPLYSTATE"/>
+        <result property="auditor" column="AUDITOR"/>
+        <result property="accountstate" column="ACCOUNTSTATE"/>
+        <result property="audittime" column="AUDITTIME"/>
+        <result property="auditstatus" column="AUDITSTATUS"/>
+        <result property="auditstate" column="AUDITSTATE"/>
+        <result property="note" column="NOTE"/>
+        <result property="enableFlag" column="ENABLE_FLAG"/>
+        <result property="job" column="JOB"/>
+        <result property="originalPassword" column="ORIGINAL_PASSWORD"/>
+        <result property="parentCompanyId" column="PARENT_COMPANY_ID"/>
+        <result property="companyId" column="COMPANY_ID"/>
+        <result property="nowVersion" column="NOW_VERSION"/>
+        <result property="lastAppUpdateTime" column="LAST_APP_UPDATE_TIME"/>
+        <association property="departmentName" column="DEPARTMENT_ID" select="getDName"/>
+    </resultMap>
+
+
+    <select id="getDName" resultType="java.lang.Object" parameterType="java.lang.String">
+        select name as departmentName
+        from TF_SMPN_DEPARTMENT_X
+        where id = #{departmentId}
+    </select>
+
+    <select id="getUserById" resultMap="userMap">
+        select id,
+               username,
+               phone,
+               avatar,
+               department_id,
+               create_time,
+               update_time,
+               lock_flag,
+               status_flag,
+               wx_openid,
+               qq_openid,
+               email,
+               real_name,
+               login_time,
+               last_ip,
+               pwderrtimes,
+               worknumber,
+               findpwdkey,
+               aliasname,
+               birthday,
+               belong,
+               create_user,
+               CREATE_TYPE,
+               FIRSTLOG,
+               APPLYER,
+               APPLYTIME,
+               APPLYSTATE,
+               AUDITOR,
+               ACCOUNTSTATE,
+               AUDITTIME,
+               AUDITSTATE,
+               AUDITSTATUS,
+               ESIGNATURE,
+               NOTE,
+               ENABLE_FLAG,
+               JOB
+        from TF_SMPN_USER_X
+        where id = #{id}
+    </select>
+
+    <select id="getExistUserListByRole" resultMap="userMap">
+
+        select id,
+               username,
+               phone,
+               avatar,
+               department_id,
+               create_time,
+               update_time,
+               lock_flag,
+               status_flag,
+               wx_openid,
+               qq_openid,
+               email,
+               real_name,
+               login_time,
+               last_ip,
+               pwderrtimes,
+               worknumber,
+               findpwdkey,
+               aliasname,
+               birthday,
+               belong,
+               create_user,
+               CREATE_TYPE,
+               FIRSTLOG,
+               APPLYER,
+               APPLYTIME,
+               APPLYSTATE,
+               AUDITOR,
+               ACCOUNTSTATE,
+               AUDITTIME,
+               AUDITSTATE,
+               AUDITSTATUS,
+               ESIGNATURE,
+               NOTE,
+               JOB
+        from TF_SMPN_USER_X u
+        where status_flag = '1'
+          and exists(select 1 from TF_SMPN_USERROLE_X where user_id = u.id and role_id = #{roleId})
+    </select>
+
+    <select id="getNoExistUserListByRole" resultMap="userMap">
+
+        select id,
+               username,
+               phone,
+               avatar,
+               department_id,
+               create_time,
+               update_time,
+               lock_flag,
+               status_flag,
+               wx_openid,
+               qq_openid,
+               email,
+               real_name,
+               login_time,
+               last_ip,
+               pwderrtimes,
+               worknumber,
+               findpwdkey,
+               aliasname,
+               birthday,
+               belong,
+               create_user
+               CREATE_TYPE,
+               FIRSTLOG,
+               APPLYER,
+               APPLYTIME,
+               APPLYSTATE,
+               AUDITOR,
+               ACCOUNTSTATE,
+               AUDITTIME,
+               AUDITSTATE,
+               AUDITSTATUS,
+               ESIGNATURE,
+               NOTE,
+               JOB
+        from TF_SMPN_USER_X u
+        where status_flag = '1'
+          and not exists(select 1 from TF_SMPN_USERROLE_X where user_id = u.id and role_id = #{roleId})
+    </select>
+
+    <select id="getSources" parameterType="java.lang.Long" resultType="map">
+        select s.*
+        from TF_SMPN_DEPARTMENTSOURCE_X ds,
+             TF_SMPN_SOURCE_X s
+        where ds.source_id = s.id
+          and ds.department_id = #departmentId#
+    </select>
+
+
+    <select id="getUserPage" resultType="map" databaseId="oracle">
+    select id,
+    username,
+    phone,
+    avatar,
+    department_id,
+    create_time,
+    lock_flag,
+    decode(lock_flag,'0','锁定','未锁定') lock_flag_name,
+    status_flag,
+    wx_openid,
+    qq_openid,
+    email,
+    real_name,
+    login_time,
+    last_ip,
+    pwderrtimes,
+    worknumber,
+    findpwdkey,
+    aliasname,
+    birthday,
+    belong,
+    create_user,
+    user_level,
+    CREATE_TYPE,
+    FIRSTLOG,
+    APPLYER,
+    APPLYTIME,
+    APPLYSTATE,
+    AUDITOR,
+    ACCOUNTSTATE,
+    AUDITTIME,
+    AUDITSTATE,
+    AUDITSTATUS,
+    ESIGNATURE,
+    NOTE,
+    ENABLE_FLAG,
+    JOB,
+    PARENT_COMPANY_ID,
+    COMPANY_ID,
+    NOW_VERSION,
+    LAST_APP_UPDATE_TIME,
+    (select wmsys.wm_concat(u2.real_name)
+        from TF_SMPN_USER_ASCRIPTION u1 left join TF_SMPN_USER_X u2
+        on u1.parent_User_Id = u2.id
+        where u1.user_id = l.id) userGroup,
+    (select COMPANY_NAME
+        from TF_SMPN_COMPANY_X
+        where id = PARENT_COMPANY_ID) as parentCompanyName,
+    (select COMPANY_NAME
+        from TF_SMPN_COMPANY_X
+        where id = COMPANY_ID) as companyName,
+    (select real_name from TF_SMPN_USER_X
+    where username=l.AUDITOR) as auditorName,
+    (select real_name from TF_SMPN_USER_X
+    where id=l.create_user) as create_user_name,
+    (select m.name
+    from TF_SMPN_DEPARTMENT_X m
+    where m.id = l.department_id) as dept_name,
+    to_char((select wmsys.wm_concat(n.role_id)
+    from TF_SMPN_USERROLE_X n
+    where n.user_id = l.id)) as role_id_list,
+    to_char((select wmsys.wm_concat(to_char(o.role_name))
+    from TF_SMPN_ROLE_X o, TF_SMPN_USERROLE_X n
+    where n.role_id = o.id
+    and l.id = n.user_id)) as role_name,
+    (select notes
+    from tf_smpn_code_x
+    where key = '0001'
+    and value = l.status_flag) as status_flag_name
+    from TF_SMPN_USER_X l where 1=1
+    <if test="user.auditstatus != null and user.auditstatus.trim() != ''">
+        and AUDITSTATUS = #{user.auditstatus}
+    </if>
+    <if test="user.id != null">
+        and id = #{user.id}
+    </if>
+    <if test="user.realName != null and user.realName.trim() != ''">
+        and real_Name like '%'||#{user.realName}||'%'
+    </if>
+    <if test="user.departmentId != null">
+        and department_id = #{user.departmentId}
+    </if>
+    <if test="user.enableFlag != null and user.enableFlag.trim() != ''">
+            and ENABLE_FLAG = #{user.enableFlag}
+    </if>
+    <if test="user.lockFlag != null and user.lockFlag.trim() != ''">
+            and lock_flag = #{user.lockFlag}
+    </if>
+    <if test="user.userLevel != null and user.userLevel.trim() != ''">
+            and user_level = #{user.userLevel}
+    </if>
+    <if test="user.username != null">
+          and USERNAME like '%'||#{user.username}||'%'
+    </if>
+    and status_flag= 1
+    order by update_time DESC
+</select>
+    <select id="getUserPage" resultType="map" databaseId="mysql">
+        select id,
+        username,
+        phone,
+        avatar,
+        department_id,
+        create_time,
+        lock_flag,
+        case lock_flag when '0' then '锁定' else '未锁定' end lock_flag_name,
+        status_flag,
+        wx_openid,
+        qq_openid,
+        email,
+        real_name,
+        login_time,
+        last_ip,
+        pwderrtimes,
+        worknumber,
+        findpwdkey,
+        aliasname,
+        birthday,
+        belong,
+        create_user,
+        user_level,
+        CREATE_TYPE,
+        FIRSTLOG,
+        APPLYER,
+        APPLYTIME,
+        APPLYSTATE,
+        AUDITOR,
+        ACCOUNTSTATE,
+        AUDITTIME,
+        AUDITSTATE,
+        AUDITSTATUS,
+        ESIGNATURE,
+        NOTE,
+        (select real_name from TF_SMPN_USER_X
+        where id=l.create_user) as create_user_name,
+        (select m.name
+        from TF_SMPN_DEPARTMENT_X m
+        where m.id = l.department_id) as dept_name,
+        (select group_concat(n.role_id)
+        from TF_SMPN_USERROLE_X n
+        where n.user_id = l.id group by l.id) as role_id_list,
+        (select group_concat(o.role_name)
+        from TF_SMPN_ROLE_X o, TF_SMPN_USERROLE_X n
+        where n.role_id = o.id
+        and l.id = n.user_id GROUP BY l.id) as role_name,
+        (select notes
+        from tf_smpn_code_x
+        where `key` = '0011'
+        and `value` = l.status_flag) as status_flag_name
+        from TF_SMPN_USER_X l where 1=1
+        <if test="user.auditstatus != null">
+            and AUDITSTATUS = #{user.auditstatus}
+        </if>
+        <if test="user.realName != null and user.realName.trim() != ''">
+            and (real_name like CONCAT('%',#{user.realName},'%') or real_name like CONCAT('%',#{user.realName},'%'))
+        </if>
+        <if test="user.username != null and user.username.trim() != ''">
+            and (username like CONCAT('%',#{user.username},'%') or username like CONCAT('%',#{user.username},'%'))
+        </if>
+        <if test="user.departmentId != null">
+            and department_id = #{user.departmentId}
+        </if>
+        <if test="user.statusFlag != null">
+            and status_flag = #{user.statusFlag}
+        </if>
+        <if test="user.lockFlag != null">
+            and lock_flag = #{user.lockFlag}
+        </if>
+        <if test="user.userLevel != null">
+            and user_level = #{userLevel}
+        </if>
+    </select>
+
+    <update id="updateUserInfo">
+        update TF_SMPN_USER_X
+        <set>
+            <if test="lastIp != null and lastIp.trim() != ''">
+                LAST_IP = #{lastIp} ,
+            </if>
+            <if test="pwderrtimes != null">
+                PWDERRTIMES = #{pwderrtimes} ,
+            </if>
+            <if test="loginTime != null">
+                LOGIN_TIME = #{loginTime} ,
+            </if>
+            <if test="lockFlag != null and lockFlag.trim() != ''">
+                lockFlag = #{lockFlag} ,
+            </if>
+        </set>
+        where id=#{id}
+    </update>
+
+    <select id="getUserByMenu" resultType="map">
+        select u.id, u.real_name
+        from TF_SMPN_USER_X u,
+             TF_SMPN_USERROLE_X ur,
+             TF_SMPN_ROLE_X r,
+             TF_SMPN_ROLEMENU_X rm,
+             TF_SMPN_MENU_X m
+        where u.id = ur.user_id
+          and ur.role_id = r.id
+          and rm.role_id = r.id
+          and m.id = rm.menu_id
+          and m.name = #{menuName}
+    </select>
+
+
+    <select id="getListHistory" resultType="map" databaseId="oracle">
+        select u.USERNAME,u.REAL_NAME,u.PHONE,u.EMAIL,u.CREATE_TYPE,
+        u.STATUS_FLAG,u.LOCK_FLAG,u.AUDITSTATE,u.CREATE_TIME,u.CREATE_USER,u.AUDITTIME,
+        u.AUDITOR,u.AUDITSTATUS,u.AVATAR,u.ESIGNATURE,u.NOTE,u.APPLYER,u.APPLYSTATE,u.JOB,
+        (select real_name from TF_SMPN_USER_X where u.APPLYER = username) as applyerName,
+        (select real_name from TF_SMPN_USER_X
+        where username=u.AUDITOR) as auditorName,
+        (select m.name
+        from TF_SMPN_DEPARTMENT_X m
+        where m.id = u.department_id) as dept_name,
+        to_char((select wmsys.wm_concat(to_char(o.role_name))
+        from TF_SMPN_ROLE_X o, TF_SMPN_USERROLE_X n
+        where n.role_id = o.id
+        and u.id = n.user_id)) as role_name
+        FROM
+        TF_SMPN_USER_X u
+        where
+        u.CREATE_TYPE=1
+        <if test="map.userName != null and map.userName.trim() != ''">
+            and u.APPLYER like '%'||#{map.userName}||'%'
+        </if>
+        <if test="map.realName != null and map.realName.trim() != ''">
+            and u.REAL_NAME like '%'||#{map.realName}||'%'
+        </if>
+        <if test="map.auditStatus != null and map.auditStatus.trim() != ''">
+            and u.AUDITSTATUS = #{map.auditStatus}
+        </if>
+        <if test="map.StartAuditTime != null and map.StartAuditTime.trim() != ''">
+            and to_char(u.CREATE_TIME,'yyyy-MM-dd hh:mm:ss') >= #{map.StartAuditTime}
+        </if>
+        <if test="map.endAuditTime != null and map.endAuditTime.trim() != ''">
+            <![CDATA[   and to_char(u.CREATE_TIME,'yyyy-MM-dd hh:mm:ss') <= #{map.endAuditTime}   ]]>
+        </if>
+        order by u.CREATE_TIME desc
+    </select>
+
+    <update id="updateByIdList" parameterType="java.util.List">
+        update TF_SMPN_USER_X set LOCK_FLAG=0
+        where
+        id in
+        <foreach item="item" index="index" collection="list" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </update>
+
+    <update id="updateByIdListToUnlock" parameterType="java.util.List">
+        update TF_SMPN_USER_X
+        set LOCK_FLAG=1,
+        pwderrtimes = 0
+        where
+        id in
+        <foreach item="item" index="index" collection="list" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </update>
+
+    <update id="updateByIdStatusFlag" parameterType="java.util.List">
+        update TF_SMPN_USER_X set ENABLE_FLAG=0
+        where
+        id in
+        <foreach item="item" index="index" collection="list" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </update>
+
+    <update id="updateUnStatusFlag" parameterType="java.util.List">
+        update TF_SMPN_USER_X set ENABLE_FLAG=1
+        where
+        id in
+        <foreach item="item" index="index" collection="list" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </update>
+</mapper>