顾绍勇 пре 5 година
родитељ
комит
2859587ab4

+ 67
- 39
src/main/java/com/huiju/estateagents/sample/controller/TaContactController.java Прегледај датотеку

5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
 import com.huiju.estateagents.base.BaseController;
6
 import com.huiju.estateagents.base.BaseController;
7
 import com.huiju.estateagents.base.ResponseBean;
7
 import com.huiju.estateagents.base.ResponseBean;
8
+import com.huiju.estateagents.common.CommConstant;
8
 import com.huiju.estateagents.sample.entity.TaContact;
9
 import com.huiju.estateagents.sample.entity.TaContact;
10
+import com.huiju.estateagents.sample.entity.TaNotice;
9
 import com.huiju.estateagents.sample.service.ITaContactService;
11
 import com.huiju.estateagents.sample.service.ITaContactService;
12
+import org.apache.commons.lang3.StringUtils;
10
 import org.slf4j.Logger;
13
 import org.slf4j.Logger;
11
 import org.slf4j.LoggerFactory;
14
 import org.slf4j.LoggerFactory;
12
 import org.springframework.beans.factory.annotation.Autowired;
15
 import org.springframework.beans.factory.annotation.Autowired;
18
 import org.springframework.web.bind.annotation.ResponseBody;
21
 import org.springframework.web.bind.annotation.ResponseBody;
19
 import org.springframework.web.bind.annotation.RestController;
22
 import org.springframework.web.bind.annotation.RestController;
20
 
23
 
24
+import java.time.LocalDateTime;
25
+import java.util.ArrayList;
26
+import java.util.List;
27
+
21
 
28
 
22
 /**
29
 /**
23
  * <p>
30
  * <p>
24
-    * 联系人表  前端控制器
25
-    * </p>
31
+ * 联系人表  前端控制器
32
+ * </p>
26
  *
33
  *
27
  * @author fxf
34
  * @author fxf
28
  * @since 2020-03-18
35
  * @since 2020-03-18
29
  */
36
  */
30
 @RestController
37
 @RestController
31
-@RequestMapping("/")
38
+@RequestMapping("/api")
32
 public class TaContactController extends BaseController {
39
 public class TaContactController extends BaseController {
33
 
40
 
34
     private final Logger logger = LoggerFactory.getLogger(TaContactController.class);
41
     private final Logger logger = LoggerFactory.getLogger(TaContactController.class);
38
 
45
 
39
 
46
 
40
     /**
47
     /**
41
-     * 分页查询列表
48
+     * 条件查询联系人列表
49
+     *
42
      * @param pageNum
50
      * @param pageNum
43
      * @param pageSize
51
      * @param pageSize
52
+     * @param contactName
53
+     * @param telephone
54
+     * @param phone
55
+     * @param job
44
      * @return
56
      * @return
45
      */
57
      */
46
-    @RequestMapping(value="/taContact",method= RequestMethod.GET)
47
-    public ResponseBean taContactList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
48
-                                      @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
58
+    @RequestMapping(value = "/channel/listContactByCondition", method = RequestMethod.GET)
59
+    public ResponseBean listContactByCondition(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
60
+                                               @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
61
+                                               String contactName, String telephone, String phone, String job) {
49
         ResponseBean responseBean = new ResponseBean();
62
         ResponseBean responseBean = new ResponseBean();
50
         try {
63
         try {
51
             //使用分页插件
64
             //使用分页插件
52
-		    IPage<TaContact> pg = new Page<>(pageNum, pageSize);
65
+            IPage<TaContact> pg = new Page<>(pageNum, pageSize);
53
             QueryWrapper<TaContact> queryWrapper = new QueryWrapper<>();
66
             QueryWrapper<TaContact> queryWrapper = new QueryWrapper<>();
54
-            queryWrapper.orderByDesc("create_date");
67
+            queryWrapper.like(StringUtils.isNotBlank(contactName),"contact_name", contactName);
68
+            queryWrapper.like(StringUtils.isNotBlank(telephone),"telephone", telephone);
69
+            queryWrapper.like(StringUtils.isNotBlank(phone),"phone", phone);
70
+            queryWrapper.like(StringUtils.isNotBlank(job),"job", job);
71
+            queryWrapper.ne("status", CommConstant.STATUS_DELETE);
72
+            queryWrapper.orderByDesc("order_no", "create_date");
55
 
73
 
56
             IPage<TaContact> result = iTaContactService.page(pg, queryWrapper);
74
             IPage<TaContact> result = iTaContactService.page(pg, queryWrapper);
57
             responseBean.addSuccess(result);
75
             responseBean.addSuccess(result);
58
-        }catch (Exception e){
76
+        } catch (Exception e) {
59
             e.printStackTrace();
77
             e.printStackTrace();
60
-            logger.error("taContactList -=- {}",e.toString());
78
+            logger.error("taContactList -=- {}", e.toString());
61
             responseBean.addError(e.getMessage());
79
             responseBean.addError(e.getMessage());
62
         }
80
         }
63
         return responseBean;
81
         return responseBean;
65
 
83
 
66
     /**
84
     /**
67
      * 保存对象
85
      * 保存对象
86
+     *
68
      * @param taContact 实体对象
87
      * @param taContact 实体对象
69
      * @return
88
      * @return
70
      */
89
      */
71
-    @RequestMapping(value="/taContact",method= RequestMethod.POST)
72
-    public ResponseBean taContactAdd(@RequestBody TaContact taContact){
90
+    @RequestMapping(value = "/channel/taContact", method = RequestMethod.POST)
91
+    public ResponseBean taContactAdd(@RequestBody TaContact taContact) {
73
         ResponseBean responseBean = new ResponseBean();
92
         ResponseBean responseBean = new ResponseBean();
74
         try {
93
         try {
75
-            if (iTaContactService.save(taContact)){
94
+            taContact.setCreateDate(LocalDateTime.now());
95
+            taContact.setStatus(CommConstant.STATUS_NORMAL);
96
+            if (iTaContactService.save(taContact)) {
76
                 responseBean.addSuccess(taContact);
97
                 responseBean.addSuccess(taContact);
77
-            }else {
98
+            } else {
78
                 responseBean.addError("fail");
99
                 responseBean.addError("fail");
79
             }
100
             }
80
-        }catch (Exception e){
101
+        } catch (Exception e) {
81
             e.printStackTrace();
102
             e.printStackTrace();
82
-            logger.error("taContactAdd -=- {}",e.toString());
103
+            logger.error("taContactAdd -=- {}", e.toString());
83
             responseBean.addError(e.getMessage());
104
             responseBean.addError(e.getMessage());
84
         }
105
         }
85
         return responseBean;
106
         return responseBean;
86
     }
107
     }
87
 
108
 
88
     /**
109
     /**
89
-     * 根据id删除对象
90
-     * @param id  实体ID
110
+     * 批量删除
111
+     *
91
      */
112
      */
92
     @ResponseBody
113
     @ResponseBody
93
-    @RequestMapping(value="/taContact/{id}", method= RequestMethod.DELETE)
94
-    public ResponseBean taContactDelete(@PathVariable Integer id){
114
+    @RequestMapping(value = "/channel/taContact/batchDelete", method = RequestMethod.PUT)
115
+    public ResponseBean batchDelete(@RequestBody List<TaContact> taContactList) {
95
         ResponseBean responseBean = new ResponseBean();
116
         ResponseBean responseBean = new ResponseBean();
96
         try {
117
         try {
97
-            if(iTaContactService.removeById(id)){
98
-                responseBean.addSuccess("success");
99
-            }else {
100
-                responseBean.addError("fail");
118
+            List<TaContact> updateList = new ArrayList<>();
119
+            TaContact newContact;
120
+            for (TaContact taContact : taContactList) {
121
+                newContact = new TaContact();
122
+                newContact.setContactId(taContact.getContactId());
123
+                newContact.setStatus(CommConstant.STATUS_DELETE);
124
+                updateList.add(newContact);
101
             }
125
             }
102
-        }catch (Exception e){
126
+
127
+            responseBean.addSuccess(iTaContactService.updateBatchById(updateList));
128
+        } catch (Exception e) {
103
             e.printStackTrace();
129
             e.printStackTrace();
104
-            logger.error("taContactDelete -=- {}",e.toString());
130
+            logger.error("taContactDelete -=- {}", e.toString());
105
             responseBean.addError(e.getMessage());
131
             responseBean.addError(e.getMessage());
106
         }
132
         }
107
         return responseBean;
133
         return responseBean;
109
 
135
 
110
     /**
136
     /**
111
      * 修改对象
137
      * 修改对象
112
-     * @param id  实体ID
138
+     *
139
+     * @param id        实体ID
113
      * @param taContact 实体对象
140
      * @param taContact 实体对象
114
      * @return
141
      * @return
115
      */
142
      */
116
-    @RequestMapping(value="/taContact/{id}",method= RequestMethod.PUT)
143
+    @RequestMapping(value = "/channel/taContact/{id}", method = RequestMethod.PUT)
117
     public ResponseBean taContactUpdate(@PathVariable Integer id,
144
     public ResponseBean taContactUpdate(@PathVariable Integer id,
118
-                                        @RequestBody TaContact taContact){
145
+                                        @RequestBody TaContact taContact) {
119
         ResponseBean responseBean = new ResponseBean();
146
         ResponseBean responseBean = new ResponseBean();
120
         try {
147
         try {
121
-            if (iTaContactService.updateById(taContact)){
148
+            if (iTaContactService.updateById(taContact)) {
122
                 responseBean.addSuccess(taContact);
149
                 responseBean.addSuccess(taContact);
123
-            }else {
150
+            } else {
124
                 responseBean.addError("fail");
151
                 responseBean.addError("fail");
125
             }
152
             }
126
-        }catch (Exception e){
153
+        } catch (Exception e) {
127
             e.printStackTrace();
154
             e.printStackTrace();
128
-            logger.error("taContactUpdate -=- {}",e.toString());
155
+            logger.error("taContactUpdate -=- {}", e.toString());
129
             responseBean.addError(e.getMessage());
156
             responseBean.addError(e.getMessage());
130
         }
157
         }
131
         return responseBean;
158
         return responseBean;
133
 
160
 
134
     /**
161
     /**
135
      * 根据id查询对象
162
      * 根据id查询对象
136
-     * @param id  实体ID
163
+     *
164
+     * @param id 实体ID
137
      */
165
      */
138
-    @RequestMapping(value="/taContact/{id}",method= RequestMethod.GET)
139
-    public ResponseBean taContactGet(@PathVariable Integer id){
166
+    @RequestMapping(value = "/channel/taContact/{id}", method = RequestMethod.GET)
167
+    public ResponseBean taContactGet(@PathVariable Integer id) {
140
         ResponseBean responseBean = new ResponseBean();
168
         ResponseBean responseBean = new ResponseBean();
141
         try {
169
         try {
142
             responseBean.addSuccess(iTaContactService.getById(id));
170
             responseBean.addSuccess(iTaContactService.getById(id));
143
-        }catch (Exception e){
171
+        } catch (Exception e) {
144
             e.printStackTrace();
172
             e.printStackTrace();
145
-            logger.error("taContactDelete -=- {}",e.toString());
173
+            logger.error("taContactDelete -=- {}", e.toString());
146
             responseBean.addError(e.getMessage());
174
             responseBean.addError(e.getMessage());
147
         }
175
         }
148
         return responseBean;
176
         return responseBean;

+ 5
- 2
src/main/java/com/huiju/estateagents/sample/controller/TaH5SampleController.java Прегледај датотеку

5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
 import com.huiju.estateagents.base.BaseController;
6
 import com.huiju.estateagents.base.BaseController;
7
 import com.huiju.estateagents.base.ResponseBean;
7
 import com.huiju.estateagents.base.ResponseBean;
8
+import com.huiju.estateagents.common.CommConstant;
8
 import com.huiju.estateagents.sample.entity.TaH5Sample;
9
 import com.huiju.estateagents.sample.entity.TaH5Sample;
9
 import com.huiju.estateagents.sample.service.ITaH5SampleService;
10
 import com.huiju.estateagents.sample.service.ITaH5SampleService;
11
+import org.apache.commons.lang3.StringUtils;
10
 import org.slf4j.Logger;
12
 import org.slf4j.Logger;
11
 import org.slf4j.LoggerFactory;
13
 import org.slf4j.LoggerFactory;
12
 import org.springframework.beans.factory.annotation.Autowired;
14
 import org.springframework.beans.factory.annotation.Autowired;
42
      * @param pageSize
44
      * @param pageSize
43
      * @return
45
      * @return
44
      */
46
      */
45
-    @RequestMapping(value="/admin/ListH5SampleByCondition",method= RequestMethod.GET)
47
+    @RequestMapping(value="/channel/ListH5SampleByCondition",method= RequestMethod.GET)
46
     public ResponseBean ListH5SampleByCondition(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
48
     public ResponseBean ListH5SampleByCondition(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
47
                                        @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
49
                                        @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
48
                                        String sampleName){
50
                                        String sampleName){
51
             //使用分页插件
53
             //使用分页插件
52
 		    IPage<TaH5Sample> pg = new Page<>(pageNum, pageSize);
54
 		    IPage<TaH5Sample> pg = new Page<>(pageNum, pageSize);
53
             QueryWrapper<TaH5Sample> queryWrapper = new QueryWrapper<>();
55
             QueryWrapper<TaH5Sample> queryWrapper = new QueryWrapper<>();
54
-            queryWrapper.like("sample_name",sampleName);
56
+            queryWrapper.like(StringUtils.isNotBlank(sampleName),"sample_name",sampleName);
57
+            queryWrapper.ne("status", CommConstant.STATUS_DELETE);
55
             queryWrapper.orderByDesc("order_no","create_date");
58
             queryWrapper.orderByDesc("order_no","create_date");
56
 
59
 
57
             IPage<TaH5Sample> result = iTaH5SampleService.page(pg, queryWrapper);
60
             IPage<TaH5Sample> result = iTaH5SampleService.page(pg, queryWrapper);

+ 32
- 7
src/main/java/com/huiju/estateagents/sample/controller/TaNoticeController.java Прегледај датотеку

20
 import org.springframework.web.bind.annotation.RestController;
20
 import org.springframework.web.bind.annotation.RestController;
21
 
21
 
22
 import javax.servlet.http.HttpServletRequest;
22
 import javax.servlet.http.HttpServletRequest;
23
+import java.time.LocalDateTime;
23
 import java.util.List;
24
 import java.util.List;
24
 
25
 
25
 /**
26
 /**
39
     @Autowired
40
     @Autowired
40
     public ITaNoticeService iTaNoticeService;
41
     public ITaNoticeService iTaNoticeService;
41
 
42
 
42
-
43
     /**
43
     /**
44
      * 条件查询通知列表
44
      * 条件查询通知列表
45
      *
45
      *
52
      * @param type       类型
52
      * @param type       类型
53
      * @return
53
      * @return
54
      */
54
      */
55
-    @RequestMapping(value = "/admin/listNoticeByCondition", method = RequestMethod.GET)
55
+    @RequestMapping(value = "/channel/listNoticeByCondition", method = RequestMethod.GET)
56
     public ResponseBean listNoticeByCondition(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
56
     public ResponseBean listNoticeByCondition(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
57
                                               @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
57
                                               @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
58
                                               String title, String targetType, String targetName, Integer status,
58
                                               String title, String targetType, String targetName, Integer status,
75
      * @param taNotice 实体对象
75
      * @param taNotice 实体对象
76
      * @return
76
      * @return
77
      */
77
      */
78
-    @RequestMapping(value = "/admin/taNotice", method = RequestMethod.POST)
78
+    @RequestMapping(value = "/channel/taNotice", method = RequestMethod.POST)
79
     public ResponseBean taNoticeAdd(@RequestBody TaNotice taNotice) {
79
     public ResponseBean taNoticeAdd(@RequestBody TaNotice taNotice) {
80
         ResponseBean responseBean = new ResponseBean();
80
         ResponseBean responseBean = new ResponseBean();
81
         try {
81
         try {
82
+            taNotice.setCreateDate(LocalDateTime.now());
82
             if (iTaNoticeService.save(taNotice)) {
83
             if (iTaNoticeService.save(taNotice)) {
83
                 responseBean.addSuccess(taNotice);
84
                 responseBean.addSuccess(taNotice);
84
             } else {
85
             } else {
98
      * @param taNoticeList
99
      * @param taNoticeList
99
      */
100
      */
100
     @ResponseBody
101
     @ResponseBody
101
-    @RequestMapping(value = "/admin/taNotice/batchDelete/{id}", method = RequestMethod.DELETE)
102
-    public ResponseBean batchDelete(List<TaNotice> taNoticeList) {
102
+    @RequestMapping(value = "/channel/taNotice/batchDelete", method = RequestMethod.PUT)
103
+    public ResponseBean batchDelete(@RequestBody List<TaNotice> taNoticeList) {
103
         ResponseBean responseBean = new ResponseBean();
104
         ResponseBean responseBean = new ResponseBean();
104
         try {
105
         try {
105
             responseBean = iTaNoticeService.batchDelete(taNoticeList);
106
             responseBean = iTaNoticeService.batchDelete(taNoticeList);
119
      * @param taNotice 实体对象
120
      * @param taNotice 实体对象
120
      * @return
121
      * @return
121
      */
122
      */
122
-    @RequestMapping(value = "/admin/taNotice/{id}", method = RequestMethod.PUT)
123
+    @RequestMapping(value = "/channel/taNotice/{id}", method = RequestMethod.PUT)
123
     public ResponseBean taNoticeUpdate(@PathVariable Integer id,
124
     public ResponseBean taNoticeUpdate(@PathVariable Integer id,
124
                                        @RequestBody TaNotice taNotice) {
125
                                        @RequestBody TaNotice taNotice) {
125
         ResponseBean responseBean = new ResponseBean();
126
         ResponseBean responseBean = new ResponseBean();
142
      *
143
      *
143
      * @param id 实体ID
144
      * @param id 实体ID
144
      */
145
      */
145
-    @RequestMapping(value = "/taNotice/{id}", method = RequestMethod.GET)
146
+    @RequestMapping(value = "/channel/taNotice/{id}", method = RequestMethod.GET)
146
     public ResponseBean taNoticeGet(@PathVariable Integer id) {
147
     public ResponseBean taNoticeGet(@PathVariable Integer id) {
147
         ResponseBean responseBean = new ResponseBean();
148
         ResponseBean responseBean = new ResponseBean();
148
         try {
149
         try {
154
         }
155
         }
155
         return responseBean;
156
         return responseBean;
156
     }
157
     }
158
+
159
+    /**
160
+     * 条件查询通知列表-admin
161
+     *
162
+     * @param pageNum
163
+     * @param pageSize
164
+     * @param type       类型 目前默认 sample
165
+     * @return
166
+     */
167
+    @RequestMapping(value = "/admin/listNoticeByCondition", method = RequestMethod.GET)
168
+    public ResponseBean listNoticeByConditionForAdmin(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
169
+                                              @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
170
+                                              String type) {
171
+        ResponseBean responseBean = new ResponseBean();
172
+        try {
173
+            responseBean = iTaNoticeService.listNoticeByConditionForAdmin(pageNum, pageSize, type);
174
+            logger.info("TaNoticeController.listNoticeByConditionForAdmin 返回结果:" + JSONObject.toJSONString(responseBean));
175
+        } catch (Exception e) {
176
+            e.printStackTrace();
177
+            logger.error("listNoticeByConditionForAdmin -=- {}", e);
178
+            responseBean.addError(e.getMessage());
179
+        }
180
+        return responseBean;
181
+    }
157
 }
182
 }

+ 3
- 0
src/main/java/com/huiju/estateagents/sample/mapper/TaNoticeMapper.java Прегледај датотеку

36
                                           @Param("targetName") String targetName,
36
                                           @Param("targetName") String targetName,
37
                                           @Param("status") Integer status,
37
                                           @Param("status") Integer status,
38
                                           @Param("type") String type);
38
                                           @Param("type") String type);
39
+
40
+    IPage<TaNotice> listNoticeByConditionForAdmin(IPage<TaNotice> pg,
41
+                                          @Param("type") String type);
39
 }
42
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/sample/service/ITaNoticeService.java Прегледај датотеку

32
     ResponseBean listNoticeByCondition(Integer pageNum, Integer pageSize, String title, String targetType, String targetName,
32
     ResponseBean listNoticeByCondition(Integer pageNum, Integer pageSize, String title, String targetType, String targetName,
33
                                        Integer status, String type);
33
                                        Integer status, String type);
34
 
34
 
35
+    ResponseBean listNoticeByConditionForAdmin(Integer pageNum, Integer pageSize, String type);
36
+
35
     /**
37
     /**
36
      * 批量删除
38
      * 批量删除
37
      *
39
      *

+ 14
- 0
src/main/java/com/huiju/estateagents/sample/service/impl/TaNoticeServiceImpl.java Прегледај датотеку

45
         return responseBean;
45
         return responseBean;
46
     }
46
     }
47
 
47
 
48
+    @Override
49
+    public ResponseBean listNoticeByConditionForAdmin(Integer pageNum, Integer pageSize, String type) {
50
+        log.info("TaNoticeServiceImpl.listNoticeByConditionForAdmin 接收参数:pageNum:{},pageSize:{},type:{}",
51
+                pageNum, pageSize, type);
52
+
53
+        ResponseBean responseBean = new ResponseBean();
54
+
55
+        //使用分页插件
56
+        IPage<TaNotice> pg = new Page<>(pageNum, pageSize);
57
+        pg = taNoticeMapper.listNoticeByConditionForAdmin(pg, type);
58
+        responseBean.addSuccess(pg);
59
+        return responseBean;
60
+    }
61
+
48
     @Override
62
     @Override
49
     public ResponseBean batchDelete(List<TaNotice> taNoticeList) {
63
     public ResponseBean batchDelete(List<TaNotice> taNoticeList) {
50
         ResponseBean responseBean = new ResponseBean();
64
         ResponseBean responseBean = new ResponseBean();

+ 16
- 2
src/main/resources/mapper/sample/TaNoticeMapper.xml Прегледај датотеку

9
         FROM
9
         FROM
10
             ta_notice t
10
             ta_notice t
11
             LEFT JOIN ta_h5_sample t2 ON t.target_id = t2.sample_id
11
             LEFT JOIN ta_h5_sample t2 ON t.target_id = t2.sample_id
12
-        <where>
12
+        where
13
+            t.`status` != -1
13
             <if test="title != null and title != ''">
14
             <if test="title != null and title != ''">
14
                 t.title like CONCAT('%',#{title}, '%')
15
                 t.title like CONCAT('%',#{title}, '%')
15
             </if>
16
             </if>
22
             <if test="status != null">
23
             <if test="status != null">
23
                 AND t.`status` = #{status}
24
                 AND t.`status` = #{status}
24
             </if>
25
             </if>
25
-        </where>
26
+        ORDER BY
27
+            t.order_no DESC,t.create_date DESC
28
+    </select>
29
+
30
+    <select id="listNoticeByConditionForAdmin" resultType="com.huiju.estateagents.sample.entity.TaNotice">
31
+        SELECT
32
+            t.*,
33
+            t2.sample_name targetName
34
+        FROM
35
+            ta_notice t
36
+            LEFT JOIN ta_h5_sample t2 ON t.target_id = t2.sample_id
37
+        where
38
+            t.`status` == 1
39
+            AND t.invalid_time &gt;= NOW( )
26
         ORDER BY
40
         ORDER BY
27
             t.order_no DESC,t.create_date DESC
41
             t.order_no DESC,t.create_date DESC
28
     </select>
42
     </select>