lyhzzz 7 hónapja
szülő
commit
fe1926561f

+ 12 - 0
pom.xml

@@ -74,6 +74,18 @@
             <version>3.4.3.4</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+            <version>3.5.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+            <version>1.1.22</version>
+        </dependency>
+
         <!--mybatis-plus代码生成器-->
         <dependency>
             <groupId>com.baomidou</groupId>

+ 127 - 0
src/main/java/com/fdkankan/tk/entity/ScenePlus.java

@@ -0,0 +1,127 @@
+package com.fdkankan.tk.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 场景主表
+ * </p>
+ *
+ * @author 
+ * @since 2025-01-13
+ */
+@Getter
+@Setter
+@TableName("t_scene_plus")
+public class ScenePlus implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景码
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 用户id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 相机id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 手机id
+     */
+    @TableField("phone_id")
+    private String phoneId;
+
+    /**
+     * 场景名称
+     */
+    @TableField("title")
+    private String title;
+
+    /**
+     * 场景描述
+     */
+    @TableField("description")
+    private String description;
+
+    /**
+     * 场景状态:0-未建好,1--已建好,-1-计算出错,-2--不在官网显示
+     */
+    @TableField("scene_status")
+    private Integer sceneStatus;
+
+    /**
+     * 场景来源:相机拍摄10以内表示,1看看,2看看,3看见,4 深时 5 深光 6全景看看 其他来源10以上,11:一键换装,12:123看房,13文通虚拟场景
+     */
+    @TableField("scene_source")
+    private Integer sceneSource;
+
+    /**
+     * 支付状态:0表示未付款,1表示付款了,-1表示欠费,-2表示容量不足
+     */
+    @TableField("pay_status")
+    private Integer payStatus;
+
+    /**
+     * 场景类型  0-其他,1-文博,2-地产,3-电商,4-餐饮,5-家居,99-一件换装虚拟房源
+     */
+    @TableField("scene_type")
+    private Integer sceneType;
+
+    /**
+     * 是否推荐:0-否,1-是
+     */
+    @TableField("recommend")
+    private Integer recommend;
+
+    /**
+     * 是否有housetype文件(0-否,1-是)
+     */
+    @TableField("house_type")
+    private Integer houseType;
+
+    /**
+     * 人像抹除状态(-1-失败,0-执行中,1-成功,2-无)
+     */
+    @TableField("remove_portrait")
+    private Integer removePortrait;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * A-有效,I-无效
+     */
+    @TableField("rec_status")
+    private String recStatus;
+
+
+}

+ 212 - 0
src/main/java/com/fdkankan/tk/entity/ScenePlusExt.java

@@ -0,0 +1,212 @@
+package com.fdkankan.tk.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2025-01-13
+ */
+@Getter
+@Setter
+@TableName("t_scene_plus_ext")
+public class ScenePlusExt implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * t_scene_plus主键
+     */
+    @TableField("plus_id")
+    private Long plusId;
+
+    /**
+     * 场景数据目录
+     */
+    @TableField("data_source")
+    private String dataSource;
+
+    /**
+     * 场景链接
+     */
+    @TableField("web_site")
+    private String webSite;
+
+    /**
+     * 缩略图链接
+     */
+    @TableField("thumb")
+    private String thumb;
+
+    /**
+     * 方案:1-双目,2-转台,3-六目,4-八目,10-获取4k图,11-获取2k,12-获取1k
+     */
+    @TableField("scene_scheme")
+    private Integer sceneScheme;
+
+    /**
+     * 使用用量
+     */
+    @TableField("space")
+    private Long space;
+
+    /**
+     * 原始文件容量
+     */
+    @TableField("orig_space")
+    private Long origSpace;
+
+    /**
+     * 云服务器类型
+     */
+    @TableField("ecs")
+    private String ecs;
+
+    /**
+     * 点位数量
+     */
+    @TableField("shoot_count")
+    private Integer shootCount;
+
+    /**
+     * 浏览次数
+     */
+    @TableField("view_count")
+    private Integer viewCount;
+
+    /**
+     * gps定位
+     */
+    @TableField("gps")
+    private String gps;
+
+    /**
+     * 算法类型(slam、sfm)
+     */
+    @TableField("algorithm")
+    private String algorithm;
+
+    /**
+     * 固件版本
+     */
+    @TableField("firmware_version")
+    private String firmwareVersion;
+
+    /**
+     * 算法类型(V2,V3)
+     */
+    @TableField("build_type")
+    private String buildType;
+
+    /**
+     * 分辨率(2k,4k)
+     */
+    @TableField("scene_resolution")
+    private String sceneResolution;
+
+    /**
+     * 场景来源,lite:双目lite相机,pro:八目相机,minion:双面转台相机,laser:激光相机,virtual:虚拟场景,sketch:图片建模场景
+     */
+    @TableField("scene_from")
+    private String sceneFrom;
+
+    /**
+     * 切图方式(tiles:瓦片图,face:切片图,pano:全景图 ,local:本地切片,cube:立体图)
+     */
+    @TableField("scene_kind")
+    private String sceneKind;
+
+    /**
+     * 算法生成模型类型(dam,3dtiles)
+     */
+    @TableField("model_kind")
+    private String modelKind;
+
+    /**
+     * 点位视频
+     */
+    @TableField("videos")
+    private String videos;
+
+    /**
+     * oss桶名
+     */
+    @TableField("yun_file_bucket")
+    private String yunFileBucket;
+
+    /**
+     * 算法计算完成时间
+     */
+    @TableField("algorithm_time")
+    private Date algorithmTime;
+
+    /**
+     * 计算耗时
+     */
+    @TableField("compute_time")
+    private Long computeTime;
+
+    /**
+     * 拍摄模式:3(SFM架站式-看看场景), 
+ 
+4(SFM架站式-看见/深时/深光场景),
+5(SLAM移动定位模式) , 
+6(SLAM移动定位模式-有点位)
+     */
+    @TableField("location")
+    private Integer location;
+
+    /**
+     * 是否为混合类型
+     */
+    @TableField("mixture")
+    private Integer mixture;
+
+    /**
+     * 方向(只有激光场景才有)
+     */
+    @TableField("orientation")
+    private String orientation;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * A-有效,I-无效
+     */
+    @TableField("rec_status")
+    private String recStatus;
+
+    @TableField("is_obj")
+    private Integer isObj;
+
+    /**
+     * 图标大小(拜城公安需求)
+     */
+    @TableField("icon_size")
+    private String iconSize;
+
+
+}

+ 154 - 0
src/main/java/com/fdkankan/tk/entity/User.java

@@ -0,0 +1,154 @@
+package com.fdkankan.tk.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 用户信息表
+ * </p>
+ *
+ * @author 
+ * @since 2025-01-13
+ */
+@Getter
+@Setter
+@TableName("t_user")
+public class User implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 头像对应的链接地址
+     */
+    @TableField("head")
+    private String head;
+
+    /**
+     * 用户密码
+     */
+    @TableField("password")
+    private String password;
+
+    /**
+     * 用户邮箱
+     */
+    @TableField("email")
+    private String email;
+
+    /**
+     * 注册时间
+     */
+    @TableField("register_time")
+    private Date registerTime;
+
+    /**
+     * 用户名
+     */
+    @TableField("user_name")
+    private String userName;
+
+    /**
+     * 昵称
+     */
+    @TableField("nick_name")
+    private String nickName;
+
+    /**
+     * 0表示禁言(bbs)
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 0表示拒绝通知,1表示接受通知
+     */
+    @TableField("is_notice")
+    private Integer isNotice;
+
+    /**
+     * 机构名称
+     */
+    @TableField("organization_name")
+    private String organizationName;
+
+    /**
+     * 主页链接
+     */
+    @TableField("main_page")
+    private String mainPage;
+
+    /**
+     * 所在国家,默认是86
+     */
+    @TableField("country")
+    private String country;
+
+    /**
+     * 所在省份
+     */
+    @TableField("province")
+    private String province;
+
+    /**
+     * 所在城市
+     */
+    @TableField("city")
+    private String city;
+
+    /**
+     * 可下载场景总数
+     */
+    @TableField("download_num_total")
+    private Integer downloadNumTotal;
+
+    /**
+     * 已下载场景总数
+     */
+    @TableField("download_num")
+    private Integer downloadNum;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField("sys_user_id")
+    private Integer sysUserId;
+
+    /**
+     * 深时场景下载总次数
+     */
+    @TableField("ss_download_num_total")
+    private Integer ssDownloadNumTotal;
+
+    /**
+     * 深时场景已下载次数
+     */
+    @TableField("ss_download_num")
+    private Integer ssDownloadNum;
+
+
+}

+ 2 - 2
src/main/java/com/fdkankan/tk/generate/AutoGenerate.java

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir") ;
 
         generate(path,"tk", getTables(new String[]{
-                "t_room_danmaku",
+                "t_scene_plus","t_scene_plus_ext","t_user"
         }));
 
 //        generate(path,"goods", getTables(new String[]{
@@ -46,7 +46,7 @@ public class AutoGenerate {
 
 
     public static void  generate(String path,String moduleName,  List<String> tables){
-        FastAutoGenerator.create("jdbc:mysql://120.24.144.164:3306/4dkankan_takelook",
+        FastAutoGenerator.create("jdbc:mysql://120.24.144.164:3306/4dkankan_v4",
                 "root","4Dage@4Dage#@168")
                 .globalConfig(builder -> {
                     builder.author("")               //作者

+ 18 - 0
src/main/java/com/fdkankan/tk/mapper/IScenePlusExtMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tk.mapper;
+
+import com.fdkankan.tk.entity.ScenePlusExt;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-01-13
+ */
+@Mapper
+public interface IScenePlusExtMapper extends BaseMapper<ScenePlusExt> {
+
+}

+ 22 - 0
src/main/java/com/fdkankan/tk/mapper/IScenePlusMapper.java

@@ -0,0 +1,22 @@
+package com.fdkankan.tk.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.tk.entity.ScenePlus;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.tk.request.SceneParam;
+import com.fdkankan.tk.response.SceneVo;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 场景主表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-01-13
+ */
+@Mapper
+public interface IScenePlusMapper extends BaseMapper<ScenePlus> {
+
+    Page<SceneVo> pageList(SceneParam param);
+}

+ 18 - 0
src/main/java/com/fdkankan/tk/mapper/IUserMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tk.mapper;
+
+import com.fdkankan.tk.entity.User;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 用户信息表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-01-13
+ */
+@Mapper
+public interface IUserMapper extends BaseMapper<User> {
+
+}

+ 1 - 0
src/main/java/com/fdkankan/tk/request/SceneParam.java

@@ -10,6 +10,7 @@ public class SceneParam extends RequestBase {
 
     private Integer type ; //0 看看,1看见
     private String sceneName;
+    private String userName;
     private List<String> numList;
     private Integer status =2; //
 

+ 16 - 0
src/main/java/com/fdkankan/tk/service/IScenePlusExtService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.tk.service;
+
+import com.fdkankan.tk.entity.ScenePlusExt;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2025-01-13
+ */
+public interface IScenePlusExtService extends IService<ScenePlusExt> {
+
+}

+ 20 - 0
src/main/java/com/fdkankan/tk/service/IScenePlusService.java

@@ -0,0 +1,20 @@
+package com.fdkankan.tk.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.tk.entity.ScenePlus;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.tk.request.SceneParam;
+import com.fdkankan.tk.response.SceneVo;
+
+/**
+ * <p>
+ * 场景主表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2025-01-13
+ */
+public interface IScenePlusService extends IService<ScenePlus> {
+
+    Page<SceneVo> pageList(SceneParam param);
+}

+ 16 - 0
src/main/java/com/fdkankan/tk/service/IUserService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.tk.service;
+
+import com.fdkankan.tk.entity.User;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 用户信息表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2025-01-13
+ */
+public interface IUserService extends IService<User> {
+
+}

+ 22 - 0
src/main/java/com/fdkankan/tk/service/impl/ScenePlusExtServiceImpl.java

@@ -0,0 +1,22 @@
+package com.fdkankan.tk.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fdkankan.tk.entity.ScenePlusExt;
+import com.fdkankan.tk.mapper.IScenePlusExtMapper;
+import com.fdkankan.tk.service.IScenePlusExtService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2025-01-13
+ */
+@Service
+@DS("db2")
+public class ScenePlusExtServiceImpl extends ServiceImpl<IScenePlusExtMapper, ScenePlusExt> implements IScenePlusExtService {
+
+}

+ 29 - 0
src/main/java/com/fdkankan/tk/service/impl/ScenePlusServiceImpl.java

@@ -0,0 +1,29 @@
+package com.fdkankan.tk.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.tk.entity.ScenePlus;
+import com.fdkankan.tk.mapper.IScenePlusMapper;
+import com.fdkankan.tk.request.SceneParam;
+import com.fdkankan.tk.response.SceneVo;
+import com.fdkankan.tk.service.IScenePlusService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 场景主表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2025-01-13
+ */
+@Service
+@DS("db2")
+public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlus> implements IScenePlusService {
+
+    @Override
+    public Page<SceneVo> pageList(SceneParam param) {
+        return this.getBaseMapper().pageList(param);
+    }
+}

+ 7 - 21
src/main/java/com/fdkankan/tk/service/impl/SceneServiceImpl.java

@@ -5,12 +5,14 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.tk.common.PageInfo;
 import com.fdkankan.tk.common.ResultCode;
+import com.fdkankan.tk.common.util.JwtUtil;
 import com.fdkankan.tk.exception.BusinessException;
 import com.fdkankan.tk.httpClient.client.FdKKClient;
 import com.fdkankan.tk.httpClient.response.FdkkResponse;
 import com.fdkankan.tk.request.SceneParam;
 import com.fdkankan.tk.response.SceneProEntityVo;
 import com.fdkankan.tk.response.SceneVo;
+import com.fdkankan.tk.service.IScenePlusService;
 import com.fdkankan.tk.service.ISceneService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -24,6 +26,8 @@ public class SceneServiceImpl implements ISceneService {
 
     @Resource
     FdKKClient fdKKClient;
+    @Autowired
+    IScenePlusService scenePlusService;
 
     @Override
     public List<SceneVo> getListByNumList(List<String> numList) {
@@ -60,28 +64,10 @@ public class SceneServiceImpl implements ISceneService {
         if (param.getType() == null) {
             throw new BusinessException(ResultCode.PARAM_MISS);
         }
-        List<SceneVo> sceneVoList = new ArrayList<>();
-        long total = 0;
-        if (param.getType() == 0 || param.getType() == 1 || param.getType() == 4) {      //看看,看见
-            //获取四维(看看,看见)场景数据
-            FdkkResponse fdkkResponse = null;
-            if (param.getNumList() == null || param.getNumList().size() <= 0) {
-                fdkkResponse = fdKKClient.sceneList(param, token);
-            } else {
-                fdkkResponse = fdKKClient.sceneList(param);
-            }
-            if (fdkkResponse.getCode() != 0) {
-                throw new BusinessException(fdkkResponse.getCode(), fdkkResponse.getMsg());
-            }
-            PageInfo pageInfo = JSONObject.parseObject(JSONObject.toJSONString(fdkkResponse.getData()), PageInfo.class);
-            total = pageInfo.getTotal();
-            JSONArray list = JSONArray.parseArray(JSONObject.toJSONString(pageInfo.getList()));
-            sceneVoList = overSceneVo(list);
-        }
+        String userName = JwtUtil.getUserName(token);
+        param.setUserName(userName);
+        Page<SceneVo> voPage = scenePlusService.pageList(param);
 
-        Page<SceneVo> voPage = new Page<>(param.getPageNum(),param.getPageSize());
-        voPage.setRecords(sceneVoList);
-        voPage.setTotal(total);
         return PageInfo.PageInfo(voPage);
     }
 

+ 22 - 0
src/main/java/com/fdkankan/tk/service/impl/UserServiceImpl.java

@@ -0,0 +1,22 @@
+package com.fdkankan.tk.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fdkankan.tk.entity.User;
+import com.fdkankan.tk.mapper.IUserMapper;
+import com.fdkankan.tk.service.IUserService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 用户信息表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2025-01-13
+ */
+@Service
+@DS("db2")
+public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements IUserService {
+
+}

+ 5 - 0
src/main/resources/mapper/tk/ScenePlusExtMapper.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.fdkankan.tk.mapper.IScenePlusExtMapper">
+
+</mapper>

+ 27 - 0
src/main/resources/mapper/tk/ScenePlusMapper.xml

@@ -0,0 +1,27 @@
+<?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.fdkankan.tk.mapper.IScenePlusMapper">
+
+    <select id="pageList" resultType="com.fdkankan.tk.response.SceneVo">
+        select * from t_scene_plus s
+            left join t_scene_plus_ext e on s.id = e.plus_id
+            left join t_user u on s.user_id = u.id
+        where s.rec_status = 'A'
+        <if test="param.status != null and param.status ==2">
+            and s.scene_status = -2
+        </if>
+        <if test="param.sceneName!= null and param.sceneName !=''">
+            and s.title  like concat ('%', #{param.sceneName} ,'%')
+        </if>
+        <if test="param.userName!= null and param.userName !=''">
+            and u.user_name = #{param.userName}
+        </if>
+        <if test="param.numList !=null and param.numList.size >0">
+            and s.num in
+            <foreach collection="param.numList" item="num" open="(" separator="," close=")">
+                #{num}
+            </foreach>
+        </if>
+        order by s.create_time desc
+    </select>
+</mapper>

+ 5 - 0
src/main/resources/mapper/tk/UserMapper.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.fdkankan.tk.mapper.IUserMapper">
+
+</mapper>