Bladeren bron

Merge branch 'v4' of http://git.ycjcjy.com/welcome/service-welcome3 into v4

张延森 6 jaren geleden
bovenliggende
commit
4e7db54944

+ 134
- 0
src/main/java/com.huiju.welcome/controller/SysDictController.java Bestand weergeven

@@ -0,0 +1,134 @@
1
+package com.huiju.welcome.controller;
2
+
3
+
4
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
+import com.huiju.welcome.common.base.BaseController;
6
+import com.huiju.welcome.common.base.ResponseBean;
7
+import com.huiju.welcome.model.SysDict;
8
+import com.huiju.welcome.service.ISysDictService;
9
+import org.slf4j.Logger;
10
+import org.slf4j.LoggerFactory;
11
+import org.springframework.beans.factory.annotation.Autowired;
12
+import org.springframework.web.bind.annotation.PathVariable;
13
+import org.springframework.web.bind.annotation.RequestBody;
14
+import org.springframework.web.bind.annotation.RequestMapping;
15
+import org.springframework.web.bind.annotation.RequestMethod;
16
+import org.springframework.web.bind.annotation.RequestParam;
17
+import org.springframework.web.bind.annotation.ResponseBody;
18
+import org.springframework.web.bind.annotation.RestController;
19
+
20
+/**
21
+ * <p>
22
+    * 字典表 前端控制器
23
+    * </p>
24
+ *
25
+ * @author jobob
26
+ * @since 2019-07-16
27
+ */
28
+@RestController
29
+@RequestMapping("/")
30
+public class SysDictController extends BaseController {
31
+
32
+    private final Logger logger = LoggerFactory.getLogger(SysDictController.class);
33
+
34
+    @Autowired
35
+    public ISysDictService iSysDictService;
36
+
37
+
38
+    /**
39
+     * 保存对象
40
+     * @param sysDict 实体对象
41
+     * @return
42
+     */
43
+    @RequestMapping(value="/sysDict/add",method= RequestMethod.POST)
44
+    public ResponseBean tpShopImgAdd(@RequestBody SysDict sysDict){
45
+        ResponseBean responseBean = new ResponseBean();
46
+        try {
47
+            if (iSysDictService.save(sysDict)){
48
+                responseBean.addSuccess("success");
49
+            }else {
50
+                responseBean.addError("fail");
51
+            }
52
+        }catch (Exception e){
53
+            logger.error("sysDictAdd -=- {}",e.toString());
54
+            responseBean.addError(e.getMessage());
55
+        }
56
+        return responseBean;
57
+    }
58
+
59
+    /**
60
+     * 根据id删除对象
61
+     * @param id  实体ID
62
+     */
63
+    @ResponseBody
64
+    @RequestMapping(value="/sysDict/delete/{id}", method= RequestMethod.DELETE)
65
+    public ResponseBean sysDictDelete(@PathVariable Integer id){
66
+        ResponseBean responseBean = new ResponseBean();
67
+        try {
68
+            if(iSysDictService.removeById(id)){
69
+                responseBean.addSuccess("success");
70
+            }else {
71
+                responseBean.addError("fail");
72
+            }
73
+        }catch (Exception e){
74
+            logger.error("sysDictDelete -=- {}",e.toString());
75
+            responseBean.addError(e.getMessage());
76
+        }
77
+        return responseBean;
78
+    }
79
+
80
+    /**
81
+     * 修改对象
82
+     * @param sysDict 实体对象
83
+     * @return
84
+     */
85
+    @RequestMapping(value="/sysDict/update",method= RequestMethod.PUT)
86
+    public ResponseBean tpShopImgUpdate(@RequestBody SysDict sysDict){
87
+        ResponseBean responseBean = new ResponseBean();
88
+        try {
89
+            if (iSysDictService.updateById(sysDict)){
90
+                responseBean.addSuccess("success");
91
+            }else {
92
+                responseBean.addError("fail");
93
+            }
94
+        }catch (Exception e){
95
+            logger.error("sysDictUpdate -=- {}",e.toString());
96
+            responseBean.addError(e.getMessage());
97
+        }
98
+        return responseBean;
99
+    }
100
+
101
+    /**
102
+     * 根据id查询对象
103
+     * @param id  实体ID
104
+     */
105
+    @RequestMapping(value="/sysDict/get/{id}",method= RequestMethod.GET)
106
+    public ResponseBean tpShopImgGet(@PathVariable Integer id){
107
+        ResponseBean responseBean = new ResponseBean();
108
+        try {
109
+            responseBean.addSuccess(iSysDictService.getById(id));
110
+        }catch (Exception e){
111
+            logger.error("sysDictDelete -=- {}",e.toString());
112
+            responseBean.addError(e.getMessage());
113
+        }
114
+        return responseBean;
115
+    }
116
+    
117
+    /**
118
+     * 根据TYPE查询对象
119
+     * @param type  实体type
120
+     */
121
+    @RequestMapping(value="/dict/get",method= RequestMethod.GET)
122
+    public ResponseBean getDictByType(@RequestParam  String type){
123
+        ResponseBean responseBean = new ResponseBean();
124
+        try {
125
+            QueryWrapper<SysDict> queryWrapper = new QueryWrapper<>();
126
+            queryWrapper.eq("type",type);
127
+            responseBean.addSuccess(iSysDictService.list(queryWrapper));
128
+        }catch (Exception e){
129
+            logger.error("getByType -=- {}",e.toString());
130
+            responseBean.addError(e.getMessage());
131
+        }
132
+        return responseBean;
133
+    }
134
+}

+ 1
- 0
src/main/java/com.huiju.welcome/controller/SysUserController.java Bestand weergeven

@@ -329,6 +329,7 @@ public class SysUserController extends BaseController {
329 329
         ResponseBean sysmenu= sysUserService.sysmenuAdd(menuId,menuName,code);
330 330
         return sysmenu;
331 331
     }
332
+
332 333
     @ApiOperation(value = "當前員工離職", notes = "當前員工離職")
333 334
     @RequestMapping(value = "/fireUser", method = RequestMethod.PUT)
334 335
     public ResponseBean fireUser(@RequestParam(value = "userId",required = false) Integer userId) {

+ 22
- 7
src/main/java/com.huiju.welcome/controller/TdGoodsTypeController.java Bestand weergeven

@@ -1,20 +1,20 @@
1 1
 package com.huiju.welcome.controller;
2 2
 
3 3
 
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4 6
 import com.huiju.welcome.common.base.BaseController;
5 7
 import com.huiju.welcome.common.base.ResponseBean;
8
+import com.huiju.welcome.model.SysUserRole;
6 9
 import com.huiju.welcome.model.TdGoodsType;
7 10
 import com.huiju.welcome.service.ITdGoodsTypeService;
11
+import io.swagger.annotations.ApiImplicitParam;
12
+import io.swagger.annotations.ApiImplicitParams;
13
+import io.swagger.annotations.ApiOperation;
8 14
 import org.slf4j.Logger;
9 15
 import org.slf4j.LoggerFactory;
10 16
 import org.springframework.beans.factory.annotation.Autowired;
11
-import org.springframework.web.bind.annotation.PathVariable;
12
-import org.springframework.web.bind.annotation.RequestBody;
13
-import org.springframework.web.bind.annotation.RequestMapping;
14
-import org.springframework.web.bind.annotation.RequestMethod;
15
-import org.springframework.web.bind.annotation.ResponseBody;
16
-
17
-import org.springframework.web.bind.annotation.RestController;
17
+import org.springframework.web.bind.annotation.*;
18 18
 
19 19
 
20 20
 /**
@@ -113,4 +113,19 @@ public class TdGoodsTypeController extends BaseController {
113 113
         }
114 114
         return responseBean;
115 115
     }
116
+
117
+    @ApiOperation(value = "商品类型列表", notes = "商品类型列表")
118
+    @ApiImplicitParams({
119
+            @ApiImplicitParam(paramType = "body", dataType = "String", name = "typeName", value = "商品类型名称")
120
+    })
121
+    @RequestMapping(value = "/typeList", method = RequestMethod.GET)
122
+    public ResponseBean typeList(@RequestParam(defaultValue = "1") int pageNum,
123
+                                       @RequestParam(defaultValue = "10") int pageSize,
124
+                                       @RequestParam(value = "typeName",required = false) String typeName) {
125
+        IPage<TdGoodsType> pg = new Page<>(pageNum, pageSize);
126
+
127
+        ResponseBean userManagement= iTdGoodsTypeService.typeList(pg,typeName);
128
+
129
+        return userManagement;
130
+    }
116 131
 }

+ 21
- 6
src/main/java/com.huiju.welcome/controller/TdSpecController.java Bestand weergeven

@@ -1,18 +1,18 @@
1 1
 package com.huiju.welcome.controller;
2 2
 
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
3 5
 import com.huiju.welcome.common.base.BaseController;
4 6
 import com.huiju.welcome.common.base.ResponseBean;
5 7
 import com.huiju.welcome.model.TdSpec;
6 8
 import com.huiju.welcome.service.ITdSpecService;
9
+import io.swagger.annotations.ApiImplicitParam;
10
+import io.swagger.annotations.ApiImplicitParams;
11
+import io.swagger.annotations.ApiOperation;
7 12
 import org.slf4j.Logger;
8 13
 import org.slf4j.LoggerFactory;
9 14
 import org.springframework.beans.factory.annotation.Autowired;
10
-import org.springframework.web.bind.annotation.PathVariable;
11
-import org.springframework.web.bind.annotation.RequestBody;
12
-import org.springframework.web.bind.annotation.RequestMapping;
13
-import org.springframework.web.bind.annotation.RequestMethod;
14
-import org.springframework.web.bind.annotation.ResponseBody;
15
-import org.springframework.web.bind.annotation.RestController;
15
+import org.springframework.web.bind.annotation.*;
16 16
 
17 17
 
18 18
 /**
@@ -111,4 +111,19 @@ public class TdSpecController extends BaseController {
111 111
         }
112 112
         return responseBean;
113 113
     }
114
+
115
+    @ApiOperation(value = "商品规格列表", notes = "商品规格列表")
116
+    @ApiImplicitParams({
117
+            @ApiImplicitParam(paramType = "body", dataType = "String", name = "specName", value = "商品规格名称")
118
+    })
119
+    @RequestMapping(value = "/specList", method = RequestMethod.GET)
120
+    public ResponseBean specList(@RequestParam(defaultValue = "1") int pageNum,
121
+                                 @RequestParam(defaultValue = "10") int pageSize,
122
+                                 @RequestParam(value = "specName",required = false) String specName) {
123
+        IPage<TdSpec> pg = new Page<>(pageNum, pageSize);
124
+
125
+        ResponseBean userManagement= iTdSpecService.specList(pg,specName);
126
+
127
+        return userManagement;
128
+    }
114 129
 }

+ 19
- 0
src/main/java/com.huiju.welcome/mapper/SysDictMapper.java Bestand weergeven

@@ -0,0 +1,19 @@
1
+package com.huiju.welcome.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.welcome.model.SysDict;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+
8
+/**
9
+ * <p>
10
+ * 字典表 Mapper 接口
11
+ * </p>
12
+ *
13
+ * @author jobob
14
+ * @since 2019-07-16
15
+ */
16
+@Mapper
17
+public interface SysDictMapper extends BaseMapper<SysDict> {
18
+
19
+}

+ 9
- 0
src/main/java/com.huiju.welcome/mapper/TdGoodsTypeMapper.java Bestand weergeven

@@ -2,8 +2,10 @@ package com.huiju.welcome.mapper;
2 2
 
3 3
 
4 4
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import com.baomidou.mybatisplus.core.metadata.IPage;
5 6
 import com.huiju.welcome.model.TdGoodsType;
6 7
 import org.apache.ibatis.annotations.Mapper;
8
+import org.apache.ibatis.annotations.Param;
7 9
 
8 10
 /**
9 11
  * <p>
@@ -16,4 +18,11 @@ import org.apache.ibatis.annotations.Mapper;
16 18
 @Mapper
17 19
 public interface TdGoodsTypeMapper extends BaseMapper<TdGoodsType> {
18 20
 
21
+    /**
22
+     *
23
+     * @param pg
24
+     * @param typeName
25
+     * @return
26
+     */
27
+    IPage<TdGoodsType> typeList(IPage<TdGoodsType> pg, @Param("typeName") String typeName);
19 28
 }

+ 9
- 0
src/main/java/com.huiju.welcome/mapper/TdSpecMapper.java Bestand weergeven

@@ -2,8 +2,10 @@ package com.huiju.welcome.mapper;
2 2
 
3 3
 
4 4
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import com.baomidou.mybatisplus.core.metadata.IPage;
5 6
 import com.huiju.welcome.model.TdSpec;
6 7
 import org.apache.ibatis.annotations.Mapper;
8
+import org.apache.ibatis.annotations.Param;
7 9
 
8 10
 /**
9 11
  * <p>
@@ -16,4 +18,11 @@ import org.apache.ibatis.annotations.Mapper;
16 18
 @Mapper
17 19
 public interface TdSpecMapper extends BaseMapper<TdSpec> {
18 20
 
21
+    /**
22
+     *
23
+     * @param pg
24
+     * @param specName
25
+     * @return
26
+     */
27
+    IPage<TdSpec> specList(IPage<TdSpec> pg, @Param("specName") String specName);
19 28
 }

+ 63
- 0
src/main/java/com.huiju.welcome/model/SysDict.java Bestand weergeven

@@ -0,0 +1,63 @@
1
+package com.huiju.welcome.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 字典表
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-07-16
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class SysDict implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+    
27
+    @TableId(value = "id", type = IdType.AUTO)
28
+    private Integer id;
29
+    
30
+    private String label;
31
+
32
+    private String value;
33
+
34
+    private Integer dictPid;
35
+
36
+    private String dictParents;
37
+
38
+    /**
39
+     * 1:意向房型      ROOM_TYPE
40
+     * 2:意向等级      GRADE
41
+     * 3:来访目的      VISIT_PURPOSE
42
+     * 4:来访渠道      VISIT_CHANNEL
43
+     * 5:来访人数      NUMBER_OF_VISITORS
44
+     * 6:客户年龄      CUSTOMER_AGE
45
+     * 7:现居住区域    RESIDENTIAL_AREA
46
+     * 8:工作行业      WORK_INDUSTRY
47
+     * 9:工作职务      WORK_DUTY
48
+     * 10:置业次数     NUMBER_OF_HOME_PURCHASES
49
+     * 11:名下房产数量 NUMBER_OF_PROPERTIES
50
+     * 12:现居住面积   LIVING_AREA
51
+     * 13:现住户型     RESIDENTIAL_UNIT
52
+     * 14:目前家庭结构 FAMILY_STRUCTURE
53
+     */
54
+    private String type;
55
+
56
+    private Integer sort;
57
+
58
+    private Integer status;
59
+
60
+    private LocalDateTime createDate;
61
+
62
+
63
+}

+ 16
- 0
src/main/java/com.huiju.welcome/service/ISysDictService.java Bestand weergeven

@@ -0,0 +1,16 @@
1
+package com.huiju.welcome.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.welcome.model.SysDict;
5
+
6
+/**
7
+ * <p>
8
+ * 字典表 服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-07-16
13
+ */
14
+public interface ISysDictService extends IService<SysDict> {
15
+
16
+}

+ 10
- 0
src/main/java/com.huiju.welcome/service/ITdGoodsTypeService.java Bestand weergeven

@@ -1,7 +1,9 @@
1 1
 package com.huiju.welcome.service;
2 2
 
3 3
 
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
4 5
 import com.baomidou.mybatisplus.extension.service.IService;
6
+import com.huiju.welcome.common.base.ResponseBean;
5 7
 import com.huiju.welcome.model.TdGoodsType;
6 8
 
7 9
 /**
@@ -14,4 +16,12 @@ import com.huiju.welcome.model.TdGoodsType;
14 16
  */
15 17
 public interface ITdGoodsTypeService extends IService<TdGoodsType> {
16 18
 
19
+    /**
20
+     * 商品类型列表
21
+     * @param pg
22
+     * @param typeName
23
+     * @return
24
+     */
25
+    ResponseBean typeList(IPage<TdGoodsType> pg, String typeName);
26
+
17 27
 }

+ 9
- 0
src/main/java/com.huiju.welcome/service/ITdSpecService.java Bestand weergeven

@@ -1,7 +1,9 @@
1 1
 package com.huiju.welcome.service;
2 2
 
3 3
 
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
4 5
 import com.baomidou.mybatisplus.extension.service.IService;
6
+import com.huiju.welcome.common.base.ResponseBean;
5 7
 import com.huiju.welcome.model.TdSpec;
6 8
 
7 9
 /**
@@ -14,4 +16,11 @@ import com.huiju.welcome.model.TdSpec;
14 16
  */
15 17
 public interface ITdSpecService extends IService<TdSpec> {
16 18
 
19
+    /**
20
+     * 商品类型列表
21
+     * @param pg
22
+     * @param specName
23
+     * @return
24
+     */
25
+    ResponseBean specList(IPage<TdSpec> pg, String specName);
17 26
 }

+ 20
- 0
src/main/java/com.huiju.welcome/service/impl/SysDictServiceImpl.java Bestand weergeven

@@ -0,0 +1,20 @@
1
+package com.huiju.welcome.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.welcome.mapper.SysDictMapper;
5
+import com.huiju.welcome.model.SysDict;
6
+import com.huiju.welcome.service.ISysDictService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 字典表 服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-07-16
16
+ */
17
+@Service
18
+public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> implements ISysDictService {
19
+
20
+}

+ 12
- 0
src/main/java/com.huiju.welcome/service/impl/TdGoodsTypeServiceImpl.java Bestand weergeven

@@ -1,10 +1,13 @@
1 1
 package com.huiju.welcome.service.impl;
2 2
 
3 3
 
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
4 5
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
6
+import com.huiju.welcome.common.base.ResponseBean;
5 7
 import com.huiju.welcome.mapper.TdGoodsTypeMapper;
6 8
 import com.huiju.welcome.model.TdGoodsType;
7 9
 import com.huiju.welcome.service.ITdGoodsTypeService;
10
+import org.springframework.beans.factory.annotation.Autowired;
8 11
 import org.springframework.stereotype.Service;
9 12
 
10 13
 /**
@@ -17,5 +20,14 @@ import org.springframework.stereotype.Service;
17 20
  */
18 21
 @Service
19 22
 public class TdGoodsTypeServiceImpl extends ServiceImpl<TdGoodsTypeMapper, TdGoodsType> implements ITdGoodsTypeService {
23
+    @Autowired
24
+    private TdGoodsTypeMapper tdGoodsTypeMapper;
25
+    @Override
26
+    public ResponseBean typeList(IPage<TdGoodsType> pg,String typeName) {
27
+        ResponseBean responseBean= new ResponseBean();
28
+        IPage<TdGoodsType> list= tdGoodsTypeMapper.typeList(pg,typeName);
29
+        responseBean.addSuccess(list);
30
+        return responseBean;
31
+    }
20 32
 
21 33
 }

+ 13
- 0
src/main/java/com.huiju.welcome/service/impl/TdSpecServiceImpl.java Bestand weergeven

@@ -1,10 +1,13 @@
1 1
 package com.huiju.welcome.service.impl;
2 2
 
3 3
 
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
4 5
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
6
+import com.huiju.welcome.common.base.ResponseBean;
5 7
 import com.huiju.welcome.mapper.TdSpecMapper;
6 8
 import com.huiju.welcome.model.TdSpec;
7 9
 import com.huiju.welcome.service.ITdSpecService;
10
+import org.springframework.beans.factory.annotation.Autowired;
8 11
 import org.springframework.stereotype.Service;
9 12
 
10 13
 /**
@@ -18,4 +21,14 @@ import org.springframework.stereotype.Service;
18 21
 @Service
19 22
 public class TdSpecServiceImpl extends ServiceImpl<TdSpecMapper, TdSpec> implements ITdSpecService {
20 23
 
24
+    @Autowired
25
+    private TdSpecMapper tdSpecMapper;
26
+
27
+    @Override
28
+    public ResponseBean specList(IPage<TdSpec> pg, String specName) {
29
+        ResponseBean responseBean= new ResponseBean();
30
+        IPage<TdSpec> list= tdSpecMapper.specList(pg,specName);
31
+        responseBean.addSuccess(list);
32
+        return responseBean;
33
+    }
21 34
 }

+ 5
- 0
src/main/resources/mapper/SysDictMapper.xml Bestand weergeven

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.community.huiju.fxf.mapper.SysDictMapper">
4
+
5
+</mapper>

+ 15
- 0
src/main/resources/mapper/TdGoodsTypeMapper.xml Bestand weergeven

@@ -0,0 +1,15 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.welcome.mapper.TdGoodsTypeMapper">
4
+    <select id="typeList" resultType="com.huiju.welcome.model.TdGoodsType">
5
+        select
6
+        *
7
+        from td_goods_type
8
+        <where>
9
+            <if test="typeName !=null and typeName !=''">
10
+                typeName LIKE CONCAT('%',#{typeName},'%')
11
+            </if>
12
+        </where>
13
+    </select>
14
+
15
+</mapper>

+ 15
- 0
src/main/resources/mapper/TdSpecMapper.xml Bestand weergeven

@@ -0,0 +1,15 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.welcome.mapper.TdSpecMapper">
4
+    <select id="specList" resultType="com.huiju.welcome.model.TdSpec">
5
+        select
6
+        *
7
+        from td_spec
8
+        <where>
9
+            <if test="specName !=null and typeName !=''">
10
+                specName LIKE CONCAT('%',#{specName},'%')
11
+            </if>
12
+        </where>
13
+    </select>
14
+
15
+</mapper>