1
0
Go преди 4 години
родител
ревизия
6abee513b7
променени са 52 файла, в които са добавени 584 реда и са изтрити 222 реда
  1. 1 1
      front/project/Constant.js
  2. 3 2
      front/project/admin/routes/show/comment/page.js
  3. 3 2
      front/project/admin/routes/show/faq/page.js
  4. 3 2
      front/project/www/components/QAList/index.js
  5. 11 0
      front/project/www/routes/examination/main/page.js
  6. 10 0
      front/project/www/routes/exercise/main/page.js
  7. 2 2
      front/project/www/stores/main.js
  8. 12 0
      front/src/services/Tools.js
  9. 0 17
      server/data/src/main/java/com/qxgmat/data/relation/CourseStudentOnlineRelationMapper.java
  10. 3 1
      server/data/src/main/java/com/qxgmat/data/relation/UserRelationMapper.java
  11. 4 4
      server/data/src/main/java/com/qxgmat/data/relation/mapping/CourseDataHistoryRelationMapper.xml
  12. 0 25
      server/data/src/main/java/com/qxgmat/data/relation/mapping/CourseStudentOnlineRelationMapper.xml
  13. 1 1
      server/data/src/main/java/com/qxgmat/data/relation/mapping/TextbookQuestionRelationMapper.xml
  14. 1 1
      server/data/src/main/java/com/qxgmat/data/relation/mapping/UserAbnormalRelationMapper.xml
  15. 2 2
      server/data/src/main/java/com/qxgmat/data/relation/mapping/UserAskCourseRelationMapper.xml
  16. 10 10
      server/data/src/main/java/com/qxgmat/data/relation/mapping/UserFeedbackErrorRelationMapper.xml
  17. 1 1
      server/data/src/main/java/com/qxgmat/data/relation/mapping/UserPaperQuestionRelationMapper.xml
  18. 5 4
      server/data/src/main/java/com/qxgmat/data/relation/mapping/UserRelationMapper.xml
  19. 1 1
      server/data/src/main/java/com/qxgmat/data/relation/mapping/UserSentenceRecordRelationMapper.xml
  20. 5 5
      server/data/src/main/java/com/qxgmat/data/relation/mapping/UserTextbookFeedbackRelationMapper.xml
  21. 2 3
      server/gateway-api/src/main/java/com/qxgmat/controller/admin/CourseController.java
  22. 1 1
      server/gateway-api/src/main/java/com/qxgmat/controller/admin/QuestionController.java
  23. 3 3
      server/gateway-api/src/main/java/com/qxgmat/controller/admin/ReadyController.java
  24. 5 2
      server/gateway-api/src/main/java/com/qxgmat/controller/admin/SentenceController.java
  25. 1 1
      server/gateway-api/src/main/java/com/qxgmat/controller/admin/SettingController.java
  26. 3 1
      server/gateway-api/src/main/java/com/qxgmat/controller/admin/TextbookController.java
  27. 7 6
      server/gateway-api/src/main/java/com/qxgmat/controller/admin/UserController.java
  28. 65 47
      server/gateway-api/src/main/java/com/qxgmat/service/UsersService.java
  29. 14 1
      server/gateway-api/src/main/java/com/qxgmat/service/extend/ExaminationService.java
  30. 18 6
      server/gateway-api/src/main/java/com/qxgmat/service/extend/ExerciseService.java
  31. 14 1
      server/gateway-api/src/main/java/com/qxgmat/service/inline/CommentService.java
  32. 16 1
      server/gateway-api/src/main/java/com/qxgmat/service/inline/CourseExperienceService.java
  33. 10 1
      server/gateway-api/src/main/java/com/qxgmat/service/inline/CourseService.java
  34. 14 1
      server/gateway-api/src/main/java/com/qxgmat/service/inline/FaqService.java
  35. 15 0
      server/gateway-api/src/main/java/com/qxgmat/service/inline/MessageService.java
  36. 20 1
      server/gateway-api/src/main/java/com/qxgmat/service/inline/PreviewPaperService.java
  37. 1 1
      server/gateway-api/src/main/java/com/qxgmat/service/inline/ReadyArticleService.java
  38. 1 1
      server/gateway-api/src/main/java/com/qxgmat/service/inline/ReadyReadService.java
  39. 1 1
      server/gateway-api/src/main/java/com/qxgmat/service/inline/ReadyRoomService.java
  40. 27 17
      server/gateway-api/src/main/java/com/qxgmat/service/inline/SentenceArticleService.java
  41. 14 0
      server/gateway-api/src/main/java/com/qxgmat/service/inline/SentenceQuestionService.java
  42. 14 1
      server/gateway-api/src/main/java/com/qxgmat/service/inline/TextbookQuestionService.java
  43. 37 29
      server/gateway-api/src/main/java/com/qxgmat/service/inline/TextbookTopicService.java
  44. 16 1
      server/gateway-api/src/main/java/com/qxgmat/service/inline/UserAbnormalService.java
  45. 18 4
      server/gateway-api/src/main/java/com/qxgmat/service/inline/UserAskCourseService.java
  46. 16 2
      server/gateway-api/src/main/java/com/qxgmat/service/inline/UserAskQuestionService.java
  47. 11 2
      server/gateway-api/src/main/java/com/qxgmat/service/inline/UserCourseAppointmentService.java
  48. 21 1
      server/gateway-api/src/main/java/com/qxgmat/service/inline/UserFeedbackErrorService.java
  49. 32 3
      server/gateway-api/src/main/java/com/qxgmat/service/inline/UserOrderRecordService.java
  50. 15 1
      server/gateway-api/src/main/java/com/qxgmat/service/inline/UserOrderService.java
  51. 21 1
      server/gateway-api/src/main/java/com/qxgmat/service/inline/UserTextbookFeedbackService.java
  52. 53 0
      server/tools/src/main/java/com/nuliji/tools/Tools.java

+ 1 - 1
front/project/Constant.js

@@ -112,7 +112,7 @@ export const FaqChannel = [
   { label: 'GetReady', value: 'getready' },
   { label: '模考', value: 'examination' },
   { label: 'CAT难度适应性', value: 'cat', parent: 'examination' },
-  { label: '非CAT', value: 'nocat', parent: 'examination' },
+  { label: '非CAT', value: 'base', parent: 'examination' },
   { label: '数学机经', value: 'textbook' },
   { label: '换库', value: 'library' },
   { label: '课堂-课程', value: 'course' },

+ 3 - 2
front/project/admin/routes/show/comment/page.js

@@ -179,7 +179,7 @@ export default class extends Page {
 
   initData() {
     if (!this.state.search.order) {
-      this.state.search.order = '`order`';
+      this.state.search.order = 'order';
       this.state.search.direction = 'desc';
     }
     System.listComment(Object.assign({ isSpecial: true }, this.state.search)).then(result => {
@@ -191,8 +191,9 @@ export default class extends Page {
     const { search, page } = this.state;
     if (value) {
       search.size = page.total;
-      search.order = '`order`';
+      search.order = 'order';
       search.direction = 'desc';
+      search.isSystem = null;
       this.setState({ mode: 'order', search });
     } else {
       search.size = 20;

+ 3 - 2
front/project/admin/routes/show/faq/page.js

@@ -165,7 +165,7 @@ export default class extends Page {
 
   initData() {
     if (!this.state.search.order) {
-      this.state.search.order = '`order`';
+      this.state.search.order = 'order';
       this.state.search.direction = 'desc';
     }
     System.listFAQ(Object.assign({ isSpecial: true }, this.state.search)).then(result => {
@@ -176,9 +176,10 @@ export default class extends Page {
   changeModel(value) {
     const { search, page } = this.state;
     if (value) {
-      search.order = '`order`';
+      search.order = 'order';
       search.direction = 'desc';
       search.size = page.total;
+      search.isSystem = null;
       this.setState({ mode: 'order', search });
     } else {
       search.size = 20;

+ 3 - 2
front/project/www/components/QAList/index.js

@@ -46,15 +46,16 @@ class QAItem extends Component {
 }
 
 function QAList(props) {
-  const { style, data = [] } = props;
+  const { style, data = [], tabs = [], active } = props;
   return (
     <Module style={style} className="qa-list">
       <Tabs
         type="division"
         theme="theme"
+        active={active}
         space={2.5}
         width={100}
-        tabs={[{ key: 'qx', name: '解析详情' }, { key: 'chinese', name: '中文语意' }]}
+        tabs={tabs}
       />
       {data.map(item => {
         return <QAItem data={item} />;

+ 11 - 0
front/project/www/routes/examination/main/page.js

@@ -7,6 +7,7 @@ import Panel, { WaitPanel, BuyPanel, SmallPanel, SmallWaitPanel, SmallBuyPanel }
 import Tabs from '../../../components/Tabs';
 import Module from '../../../components/Module';
 import Division from '../../../components/Division';
+import QAList from '../../../components/QAList';
 import { Main } from '../../../stores/main';
 // import { My } from '../../../stores/my';
 import { Question } from '../../../stores/question';
@@ -115,6 +116,10 @@ export default class extends Page {
       });
       this.setState({ textbookProgress: result });
     });
+
+    Main.listFaq({ page: 1, size: 100, channel: 'textbook' }).then(result => {
+      this.setState({ faqs: result.list });
+    });
   }
 
   refreshExamination(tab) {
@@ -148,6 +153,10 @@ export default class extends Page {
       });
       this.setState({ examinationProgress: result });
     });
+
+    Main.listFaq({ page: 1, size: 100, channel: `examination-${subject.extend}` }).then(result => {
+      this.setState({ faqs: result.list });
+    });
   }
 
   onChangeTab(level, tab) {
@@ -221,6 +230,8 @@ export default class extends Page {
           </Module>
           {tab1 !== TEXTBOOK && this.renderExamination()}
           {tab1 === TEXTBOOK && this.renderTextbook()}
+
+          {this.state.faqs && <QAList data={this.state.faqs} active={'faq'} tabs={[{ key: 'faq', name: 'FAQs' }]} />}
         </div>
       </div>
     );

+ 10 - 0
front/project/www/routes/exercise/main/page.js

@@ -19,6 +19,7 @@ import { Card1 } from '../../../components/Card';
 import ListTable from '../../../components/ListTable';
 import ProgressText from '../../../components/ProgressText';
 import IconButton from '../../../components/IconButton';
+import QAList from '../../../components/QAList';
 import { Main } from '../../../stores/main';
 import { My } from '../../../stores/my';
 import { Sentence } from '../../../stores/sentence';
@@ -449,6 +450,10 @@ export default class extends Page {
       courseMap.process = result.filter(row => row.isUsed && (row.isStop || row.restoreTime) && new Date(row.useEndTime).getTime() >= now);
       this.setState({ courseMap });
     });
+
+    Main.listFaq({ page: 1, size: 100, channel: 'preview' }).then(result => {
+      this.setState({ faqs: result.list });
+    });
   }
 
   refreshListPreview() {
@@ -516,6 +521,9 @@ export default class extends Page {
       });
       this.setState({ exerciseProgress: result });
     });
+    Main.listFaq({ page: 1, size: 100, channel: 'exercise' }).then(result => {
+      this.setState({ faqs: result.list });
+    });
   }
 
   onChangeTab(level, tab) {
@@ -683,6 +691,8 @@ export default class extends Page {
           {tab1 !== SENTENCE && tab1 !== PREVIEW && this.renderExercise()}
           {tab1 === SENTENCE && this.renderSentence()}
           {tab1 === PREVIEW && this.renderPreview()}
+
+          {this.state.faqs && <QAList data={this.state.faqs} active={'faq'} tabs={[{ key: 'faq', name: 'FAQs' }]} />}
         </div>
         {sentenceModel && this.renderInputCodeModel()}
       </div>

+ 2 - 2
front/project/www/stores/main.js

@@ -136,11 +136,11 @@ export default class MainStore extends BaseStore {
     return this.apiGet('/base/contract', { key });
   }
 
-  listFaq(page, size, channel, position) {
+  listFaq({ page, size, channel, position }) {
     return this.apiGet('/base/faq/list', { page, size, channel, position });
   }
 
-  listComment(page, size, channel, position) {
+  listComment({ page, size, channel, position }) {
     return this.apiGet('/base/comment/list', { page, size, channel, position });
   }
 

+ 12 - 0
front/src/services/Tools.js

@@ -527,3 +527,15 @@ export function resortListWithOrder(target, order) {
   });
   return list;
 }
+
+// 下划线转换驼峰
+export function toHump(name) {
+  return name.replace(/_(\w)/g, (all, letter) => {
+    return letter.toUpperCase();
+  });
+}
+
+// 驼峰转换下划线
+export function toLine(name) {
+  return name.replace(/([A-Z])/g, '_$1').toLowerCase();
+}

+ 0 - 17
server/data/src/main/java/com/qxgmat/data/relation/CourseStudentOnlineRelationMapper.java

@@ -1,17 +0,0 @@
-package com.qxgmat.data.relation;
-
-import com.qxgmat.data.relation.entity.CourseStudentNumberRelation;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Collection;
-import java.util.List;
-
-/**
- * Created by gaojie on 2017/11/9.
- */
-public interface CourseStudentOnlineRelationMapper {
-
-    List<CourseStudentNumberRelation> groupByTime(
-            @Param("ids") Collection ids
-    );
-}

+ 3 - 1
server/data/src/main/java/com/qxgmat/data/relation/UserRelationMapper.java

@@ -23,7 +23,9 @@ public interface UserRelationMapper {
 
     List<User> listByCourse(
             @Param("keyword") String keyword,
-            @Param("courseId") Number courseId
+            @Param("courseId") Number courseId,
+            String order,
+            String direction
     );
 
     void accumulation(

+ 4 - 4
server/data/src/main/java/com/qxgmat/data/relation/mapping/CourseDataHistoryRelationMapper.xml

@@ -12,7 +12,7 @@
     <!--
       WARNING - @mbg.generated
     -->
-    cd.`id`
+    cdh.`id`
   </sql>
 
   <!--
@@ -21,9 +21,9 @@
   <select id="listByUser" resultMap="IdMap">
     select
     <include refid="Id_Column_List" />
-    from `course_data_history` cd
+    from `course_data_history` cdh
     <if test="userId != null">
-    left join `user_order_record` uo on `uo`.`product_type`='data' and `uo`.`product_id` = cd.`data_id`
+    left join `user_order_record` uo on `uo`.`product_type`='data' and `uo`.`product_id` = cdh.`data_id`
       and `uo`.userId = #{userId,jdbcType=VARCHAR}
     </if>
     <!--and `uo`.create_time &lt; cd.create_time-->
@@ -32,7 +32,7 @@
     `uo`.`id` > 0
     </if>
     <if test="dataId != null">
-      and `cd`.dataId = #{dataId,jdbcType=VARCHAR}
+      and `cdh`.dataId = #{dataId,jdbcType=VARCHAR}
     </if>
 
   </select>

+ 0 - 25
server/data/src/main/java/com/qxgmat/data/relation/mapping/CourseStudentOnlineRelationMapper.xml

@@ -1,25 +0,0 @@
-<?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.qxgmat.data.relation.CourseStudentOnlineRelationMapper">
-  <resultMap id="NumberMap" type="com.qxgmat.data.relation.entity.CourseStudentNumberRelation">
-    <!--
-      WARNING - @mbg.generated
-    -->
-    <id column="id" jdbcType="INTEGER" property="id" />
-    <id column="number" jdbcType="INTEGER" property="number" />
-  </resultMap>
-
-  <!--
-    统计学生人数
-  -->
-  <select id="groupByTime" resultMap="NumberMap">
-    select
-    count(cs.`id`) as `number`, cs.`time_id` as `id`
-    from `course_student_online` cs
-    where
-    cs.`time_id` IN
-    <foreach collection="ids" item="item" index="index" open="(" close=")" separator=",">
-      #{item}
-    </foreach>
-  </select>
-</mapper>

+ 1 - 1
server/data/src/main/java/com/qxgmat/data/relation/mapping/TextbookQuestionRelationMapper.xml

@@ -11,7 +11,7 @@
     <!--
       WARNING - @mbg.generated
     -->
-    sq.`id`
+    tq.`id`
   </sql>
 
   <!--累加做题记录-->

+ 1 - 1
server/data/src/main/java/com/qxgmat/data/relation/mapping/UserAbnormalRelationMapper.xml

@@ -11,7 +11,7 @@
     <!--
       WARNING - @mbg.generated
     -->
-    ur.`id`
+    ua.`id`
   </sql>
 
   <!--

+ 2 - 2
server/data/src/main/java/com/qxgmat/data/relation/mapping/UserAskCourseRelationMapper.xml

@@ -11,7 +11,7 @@
     <!--
       WARNING - @mbg.generated
     -->
-    ua.`id`
+    uac.`id`
   </sql>
 
   <!--修改问答排序-->
@@ -27,7 +27,7 @@
   <select id="listWithCourse" resultMap="IdMap">
     select
     <include refid="Id_Column_List" />
-    from `user_ask_course` ua
+    from `user_ask_course` uac
     left join `user` u on u.`id` = ua.`user_id`
       <if test="userId != null">
         and ua.`user_id` = #{userId,jdbcType=VARCHAR}

+ 10 - 10
server/data/src/main/java/com/qxgmat/data/relation/mapping/UserFeedbackErrorRelationMapper.xml

@@ -11,7 +11,7 @@
     <!--
       WARNING - @mbg.generated
     -->
-    uf.`id`
+    ufe.`id`
   </sql>
 
   <!--用户提问列表-->
@@ -21,10 +21,10 @@
     </if>
     select
     <include refid="Id_Column_List" />
-    from `user_feedback_error` uf
-    left join `user` u on u.`id` = uf.`user_id`
+    from `user_feedback_error` ufe
+    left join `user` u on u.`id` = ufe.`user_id`
       <if test="userId != null">
-        and uf.`user_id` = #{userId,jdbcType=VARCHAR}
+        and ufe.`user_id` = #{userId,jdbcType=VARCHAR}
       </if>
       <if test="max != null">
         and u.`total_money` &lt; ${max}
@@ -35,22 +35,22 @@
     where
     u.`id` &gt; 0
     <if test="keyword != null">
-      and uf.`title` like #{keywordLike,jdbcType=VARCHAR}
+      and ufe.`title` like #{keywordLike,jdbcType=VARCHAR}
     </if>
     <if test="module != null">
-      and uf.`module` = #{module,jdbcType=VARCHAR}
+      and ufe.`module` = #{module,jdbcType=VARCHAR}
     </if>
     <if test="questionType != null">
-      and uf.`question_type` = #{questionType,jdbcType=VARCHAR}
+      and ufe.`question_type` = #{questionType,jdbcType=VARCHAR}
     </if>
     <if test="target != null">
-      and uf.`target` = #{target,jdbcType=VARCHAR}
+      and ufe.`target` = #{target,jdbcType=VARCHAR}
     </if>
     <if test="moduleId != null">
-      and uf.`module_id` = #{moduleId,jdbcType=VARCHAR}
+      and ufe.`module_id` = #{moduleId,jdbcType=VARCHAR}
     </if>
     <if test="status != null">
-      and uf.`status` = #{status,jdbcType=INTEGER}
+      and ufe.`status` = #{status,jdbcType=INTEGER}
     </if>
     order by ${order} ${direction}
   </select>

+ 1 - 1
server/data/src/main/java/com/qxgmat/data/relation/mapping/UserPaperQuestionRelationMapper.xml

@@ -13,7 +13,7 @@
     <!--
       WARNING - @mbg.generated
     -->
-    up.`id`
+    upq.`id`
   </sql>
 
   <!--

+ 5 - 4
server/data/src/main/java/com/qxgmat/data/relation/mapping/UserRelationMapper.xml

@@ -19,7 +19,7 @@
     <!--
       WARNING - @mbg.generated
     -->
-    ur.`id`
+    u.`id`
   </sql>
 
   <!--累加支付-->
@@ -67,14 +67,15 @@
     select
     <include refid="Id_Column_List" />
     from `user` u
-    left join `user_order_record` ur on ur.`user_id` = u.`id` and ur.`product_type` = 'course'
+    left join `user_order_record` uor on uor.`user_id` = u.`id` and uor.`product_type` = 'course'
     <if test="courseId != null">
-      and ur.`product_id` = #{courseId,jdbcType=VARCHAR}
+      and uor.`product_id` = #{courseId,jdbcType=VARCHAR}
     </if>
-    where ur.`id` &gt; 0
+    where uor.`id` &gt; 0
     <if test="keyword != null">
       and (u.`mobile` like #{keywordLike,jdbcType=VARCHAR}
         or u.`id` like #{keywordLike,jdbcType=VARCHAR})
     </if>
+    order by ${order} ${direction}
   </select>
 </mapper>

+ 1 - 1
server/data/src/main/java/com/qxgmat/data/relation/mapping/UserSentenceRecordRelationMapper.xml

@@ -17,7 +17,7 @@
     <!--
       WARNING - @mbg.generated
     -->
-    ur.`id`
+    usr.`id`
   </sql>
 
   <!--

+ 5 - 5
server/data/src/main/java/com/qxgmat/data/relation/mapping/UserTextbookFeedbackRelationMapper.xml

@@ -11,15 +11,15 @@
     <!--
       WARNING - @mbg.generated
     -->
-    ua.`id`
+    utf.`id`
   </sql>
 
   <!--用户提问列表-->
   <select id="listAdmin" resultMap="IdMap">
     select
     <include refid="Id_Column_List" />
-    from `user_textbook_feedback` uf
-    left join `textbook_topic` tt on tt.`id` = uf.`topic_id`
+    from `user_textbook_feedback` utf
+    left join `textbook_topic` tt on tt.`id` = utf.`topic_id`
       <if test="questionSubject != null">
         and tt.`question_subject` = #{questionSubject,jdbcType=VARCHAR}
       </if>
@@ -29,10 +29,10 @@
     where
     tt.`id` &gt; 0
     <if test="target != null">
-      and uf.`target` = #{target,jdbcType=VARCHAR}
+      and utf.`target` = #{target,jdbcType=VARCHAR}
     </if>
     <if test="status != null">
-      and uf.`status` = #{status,jdbcType=INTEGER}
+      and utf.`status` = #{status,jdbcType=INTEGER}
     </if>
     order by ${order} ${direction}
   </select>

+ 2 - 3
server/gateway-api/src/main/java/com/qxgmat/controller/admin/CourseController.java

@@ -32,7 +32,6 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
-import javax.xml.transform.TransformerFactory;
 import java.math.BigDecimal;
 import java.util.Collection;
 import java.util.Date;
@@ -154,7 +153,7 @@ public class CourseController {
         if (ids != null && ids.length > 0){
             p = courseService.select(ids);
         }else{
-            p = courseService.listAdmin(page, size, keyword, CourseModule.ValueOf(courseModule), structId, excludeVs);
+            p = courseService.listAdmin(page, size, keyword, CourseModule.ValueOf(courseModule), structId, excludeVs, order, DirectionStatus.ValueOf(direction));
         }
         List<CourseListDto> pr = Transform.convert(p, CourseListDto.class);
 
@@ -803,7 +802,7 @@ public class CourseController {
             @RequestParam(required = false, defaultValue = "id") String order,
             @RequestParam(required = false, defaultValue = "desc") String direction,
             HttpSession session) {
-        Page<UserAskCourse> p = userAskCourseService.listWithCourse(page, size, structId, courseId, AskStatus.ValueOf(answerStatus), showStatus, userId, MoneyRange.ValueOf(moneyRang), order, DirectionStatus.ValueOf(direction));
+        Page<UserAskCourse> p = userAskCourseService.listAdmin(page, size, structId, courseId, AskStatus.ValueOf(answerStatus), showStatus, userId, MoneyRange.ValueOf(moneyRang), order, DirectionStatus.ValueOf(direction));
         List<UserAskCourseListDto> pr = Transform.convert(p, UserAskCourseListDto.class);
 
         // 绑定用户

+ 1 - 1
server/gateway-api/src/main/java/com/qxgmat/controller/admin/QuestionController.java

@@ -245,7 +245,7 @@ public class QuestionController {
             @RequestParam(required = false, defaultValue = "id") String order,
             @RequestParam(required = false, defaultValue = "desc") String direction,
             HttpSession session) {
-        Page<UserAskQuestion> p = userAskQuestionService.listWithUser(page, size, askModule, questionType, questionModule, userId, questionNoId, AskTarget.ValueOf(target), AskStatus.ValueOf(answerStatus), showStatus, MoneyRange.ValueOf(moneyRang), hasRecord, order, DirectionStatus.ValueOf(direction));
+        Page<UserAskQuestion> p = userAskQuestionService.listAdmin(page, size, askModule, questionType, questionModule, userId, questionNoId, AskTarget.ValueOf(target), AskStatus.ValueOf(answerStatus), showStatus, MoneyRange.ValueOf(moneyRang), hasRecord, order, DirectionStatus.ValueOf(direction));
         List<UserAskQuestionListDto> pr = Transform.convert(p, UserAskQuestionListDto.class);
 
         // 绑定题目

+ 3 - 3
server/gateway-api/src/main/java/com/qxgmat/controller/admin/ReadyController.java

@@ -104,7 +104,7 @@ public class ReadyController {
             @RequestParam(required = false, defaultValue = "id") String order,
             @RequestParam(required = false, defaultValue = "desc") String direction
     ){
-        Page<ReadyArticle> p = readyArticleService.list(page, size, parentCategoryId, categoryId, order, DirectionStatus.ValueOf(direction));
+        Page<ReadyArticle> p = readyArticleService.listAdmin(page, size, parentCategoryId, categoryId, order, DirectionStatus.ValueOf(direction));
         return ResponseHelp.success(p, page, size, p.getTotal());
     }
 
@@ -155,7 +155,7 @@ public class ReadyController {
             @RequestParam(required = false, defaultValue = "id") String order,
             @RequestParam(required = false, defaultValue = "desc") String direction
     ){
-        Page<ReadyRoom> p = readyRoomService.list(page, size, position, areaId, order, DirectionStatus.ValueOf(direction));
+        Page<ReadyRoom> p = readyRoomService.listAdmin(page, size, position, areaId, order, DirectionStatus.ValueOf(direction));
         return ResponseHelp.success(p, page, size, p.getTotal());
     }
 
@@ -198,7 +198,7 @@ public class ReadyController {
             @RequestParam(required = false, defaultValue = "id") String order,
             @RequestParam(required = false, defaultValue = "desc") String direction
     ){
-        Page<ReadyRead> p = readyReadService.list(page, size, plate, order, DirectionStatus.ValueOf(direction));
+        Page<ReadyRead> p = readyReadService.listAdmin(page, size, plate, order, DirectionStatus.ValueOf(direction));
         return ResponseHelp.success(p, page, size, p.getTotal());
     }
 }

+ 5 - 2
server/gateway-api/src/main/java/com/qxgmat/controller/admin/SentenceController.java

@@ -8,6 +8,7 @@ import com.nuliji.tools.ResponseHelp;
 import com.nuliji.tools.Transform;
 import com.nuliji.tools.exception.ParameterException;
 import com.qxgmat.data.constants.enums.SettingKey;
+import com.qxgmat.data.constants.enums.status.DirectionStatus;
 import com.qxgmat.data.dao.entity.SentenceArticle;
 import com.qxgmat.data.dao.entity.SentenceQuestion;
 import com.qxgmat.data.dao.entity.Setting;
@@ -93,8 +94,10 @@ public class SentenceController {
             @RequestParam(required = false, defaultValue = "100") int size,
             @RequestParam(required = false) Number chapter,
             @RequestParam(required = false) Number part,
+            @RequestParam(required = false, defaultValue = "id") String order,
+            @RequestParam(required = false, defaultValue = "desc") String direction,
             HttpSession session) {
-        Page<SentenceArticle> p = sentenceArticleService.select(page, size, chapter, part);
+        Page<SentenceArticle> p = sentenceArticleService.listAdmin(page, size, chapter, part, order, DirectionStatus.ValueOf(direction));
         List<SentenceArticle> pr = Transform.convert(p, SentenceArticle.class);
         return ResponseHelp.success(pr, page, size, p.getTotal());
     }
@@ -139,7 +142,7 @@ public class SentenceController {
             @RequestParam(required = false, defaultValue = "id") String order,
             @RequestParam(required = false, defaultValue = "desc") String direction,
             HttpSession session) {
-        Page<SentenceQuestion> p = sentenceQuestionService.select(page, size);
+        Page<SentenceQuestion> p = sentenceQuestionService.listAdmin(page, size, order, DirectionStatus.ValueOf(direction));
         List<SentenceQuestionListDto> pr = Transform.convert(p, SentenceQuestionListDto.class);
 
         return ResponseHelp.success(pr, page, size, p.getTotal());

+ 1 - 1
server/gateway-api/src/main/java/com/qxgmat/controller/admin/SettingController.java

@@ -624,7 +624,7 @@ public class SettingController {
             @RequestParam(required = false, defaultValue = "id") String order,
             @RequestParam(required = false, defaultValue = "desc") String direction
     ){
-        Page<Message> p = messageService.select(page, size);
+        Page<Message> p = messageService.listAdmin(page, size, order, DirectionStatus.ValueOf(direction));
         return ResponseHelp.success(p, page, size, p.getTotal());
     }
 

+ 3 - 1
server/gateway-api/src/main/java/com/qxgmat/controller/admin/TextbookController.java

@@ -263,8 +263,10 @@ public class TextbookController {
             @RequestParam(required = false) Number libraryId,
             @RequestParam(required = false) String keyword,
             @RequestParam(required = false) String quality,
+            @RequestParam(required = false, defaultValue = "id") String order,
+            @RequestParam(required = false, defaultValue = "desc") String direction,
             HttpSession session) {
-        Page<TextbookTopic> p = textbookTopicService.select(page, size, questionSubject, libraryId, keyword, TopicQuality.ValueOf(quality));
+        Page<TextbookTopic> p = textbookTopicService.listAdmin(page, size, questionSubject, libraryId, keyword, TopicQuality.ValueOf(quality), order, DirectionStatus.ValueOf(direction));
         List<TextbookTopicInfoDto> pr = Transform.convert(p, TextbookTopicInfoDto.class);
 
         Collection libraryIds = Transform.getIds(p, TextbookTopic.class, "libraryId");

+ 7 - 6
server/gateway-api/src/main/java/com/qxgmat/controller/admin/UserController.java

@@ -256,16 +256,16 @@ public class UserController {
             @RequestParam(required = false) Boolean real,
             @RequestParam(required = false) Boolean wechat,
             @RequestParam(required = false) Boolean prepare,
-            @RequestParam(required = false) String order,
             @RequestParam(required = false) String startTime,
             @RequestParam(required = false) String endTime,
+            @RequestParam(required = false, defaultValue = "id") String order,
             @RequestParam(required = false, defaultValue = "desc") String direction,
             HttpSession session) {
         Page<User> p;
         if (ids != null && ids.length > 0){
             p = usersService.select(ids);
         }else{
-            p = usersService.select(page, size, keyword, real, wechat, prepare, startTime, endTime, order, DirectionStatus.ValueOf(direction));
+            p = usersService.listAdmin(page, size, keyword, real, wechat, prepare, startTime, endTime, order, DirectionStatus.ValueOf(direction));
         }
         List<UserListDto> pr = Transform.convert(p, UserListDto.class);
 
@@ -284,11 +284,11 @@ public class UserController {
             @RequestParam(required = false, defaultValue = "100") int size,
             @RequestParam(required = false, defaultValue = "") String keyword,
             @RequestParam(required = false) Integer courseId,
-            @RequestParam(required = false) String order,
+            @RequestParam(required = false, defaultValue = "id") String order,
             @RequestParam(required = false, defaultValue = "desc") String direction,
             HttpSession session) {
         // 已经购买过课程的用户
-        Page<User> p = usersService.listByCourse(page, size, keyword, courseId);
+        Page<User> p = usersService.listAdminByCourse(page, size, keyword, courseId, order, DirectionStatus.ValueOf(direction));
         List<UserListDto> pr = Transform.convert(p, UserListDto.class);
 
         Collection userIds = Transform.getIds(p, User.class, "id");
@@ -352,7 +352,7 @@ public class UserController {
             @RequestParam(required = false) String productType,
             @RequestParam(required = false) String payMethod,
             @RequestParam(required = false) Integer orderId,
-            @RequestParam(required = false) String order,
+            @RequestParam(required = false, defaultValue = "id") String order,
             @RequestParam(required = false, defaultValue = "desc") String direction,
             HttpSession session) {
         Page<UserOrder> p = userOrderService.listAdmin(page, size, userId, productType, payMethod, orderId, order, DirectionStatus.ValueOf(direction));
@@ -674,7 +674,7 @@ public class UserController {
         if (ids != null && ids.length > 0){
             p = userCourseAppointmentService.select(ids);
         }else{
-            p = userCourseAppointmentService.listAdmin(page, size, recordId, userId, courseId, startTime, endTime);
+            p = userCourseAppointmentService.listAdmin(page, size, recordId, userId, courseId, startTime, endTime, order, DirectionStatus.ValueOf(direction));
         }
         List<UserCourseAppointmentInfoDto> pr = Transform.convert(p, UserCourseAppointmentInfoDto.class);
 
@@ -854,6 +854,7 @@ public class UserController {
         }
         return ResponseHelp.success(true);
     }
+
     @RequestMapping(value = "/abnormal/handler", method = RequestMethod.POST)
     @ApiOperation(value = "异常登录处理", httpMethod = "POST")
     public Response<Boolean> editAbnormal(@RequestBody @Validated UserAbnormalHandlerDto dto, HttpServletRequest request) {

+ 65 - 47
server/gateway-api/src/main/java/com/qxgmat/service/UsersService.java

@@ -448,6 +448,9 @@ public class UsersService extends AbstractService {
         return userPrepareRelationList;
     }
 
+    private Map<String, String> adminMap = new HashMap<String, String>(){{
+        put("", "u");
+    }};
     /**
      * 获取购买过课程的用户
      * @param page
@@ -456,9 +459,23 @@ public class UsersService extends AbstractService {
      * @param courseId
      * @return
      */
-    public Page<User> listByCourse(int page, int pageSize, String keyword, Integer courseId){
+    public Page<User> listAdminByCourse(int page, int pageSize, String keyword, Integer courseId, String order, DirectionStatus direction){
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
+        if (direction == null){
+            direction = DirectionStatus.DESC;
+        }
+        String finalOrder = order;
+        DirectionStatus finalDirection = direction;
         Page<User> p = page(()->{
-            userRelationMapper.listByCourse(keyword, courseId);
+            userRelationMapper.listByCourse(keyword, courseId, finalOrder, finalDirection.key);
         }, page, pageSize);
 
         Collection ids = Transform.getIds(p, User.class, "id");
@@ -488,6 +505,52 @@ public class UsersService extends AbstractService {
         userRelationMapper.accumulation(userId, money);
     }
 
+    public Page<User> listAdmin(int page, int pageSize, String keyword, Boolean real, Boolean wechat, Boolean prepare, String startTime, String endTime, String order, DirectionStatus direction){
+        Example example = new Example(User.class);
+        if(keyword != null)
+            example.and(
+                    example.createCriteria()
+                            .orLike("id", "%"+keyword+"%")
+                            .orLike("mobile", "%"+keyword+"%")
+            );
+        if (real != null)
+            example.and(
+                    example.createCriteria().andEqualTo("realStatus", real?1:0)
+            );
+        if (wechat != null)
+            example.and(
+                    wechat ? example.createCriteria().andNotEqualTo("wechatUnionid", "") : example.createCriteria().andEqualTo("wechatUnionid", "")
+            );
+        if (prepare != null)
+            example.and(
+                    prepare ? example.createCriteria().andIsNotNull("prepareTime"):example.createCriteria().andIsNull("prepareTime")
+            );
+        if (startTime != null){
+            example.and(
+                    example.createCriteria().andGreaterThanOrEqualTo("createTime", startTime)
+            );
+        }
+        if(endTime != null){
+            example.and(
+                    example.createCriteria().andLessThan("createTime", endTime)
+            );
+        }
+        if(order==null||order.isEmpty()) order = "id";
+        if (direction != null){
+            switch(direction){
+                case ASC:
+                    example.orderBy(order).asc();
+                    break;
+                case DESC:
+                default:
+                    example.orderBy(order).desc();
+            }
+        } else {
+            example.orderBy(order).desc();
+        }
+        return select(userMapper, example, page, pageSize);
+    }
+
     public boolean equalsPassword(User user, String password){
         return Objects.equals(user.getPassword(), Tools.stringMD5(Tools.stringMD5(password)));
     }
@@ -539,51 +602,6 @@ public class UsersService extends AbstractService {
 
     public Page<User> select(int page, int pageSize){return select(userMapper, page, pageSize);
     }
-    public Page<User> select(int page, int pageSize, String keyword, Boolean real, Boolean wechat, Boolean prepare, String startTime, String endTime, String order, DirectionStatus direction){
-        Example example = new Example(User.class);
-        if(keyword != null)
-            example.and(
-                    example.createCriteria()
-                            .orLike("id", "%"+keyword+"%")
-                            .orLike("mobile", "%"+keyword+"%")
-            );
-        if (real != null)
-            example.and(
-                    example.createCriteria().andEqualTo("realStatus", real?1:0)
-            );
-        if (wechat != null)
-            example.and(
-                    wechat ? example.createCriteria().andNotEqualTo("wechatUnionid", "") : example.createCriteria().andEqualTo("wechatUnionid", "")
-            );
-        if (prepare != null)
-            example.and(
-                    prepare ? example.createCriteria().andIsNotNull("prepareTime"):example.createCriteria().andIsNull("prepareTime")
-            );
-        if (startTime != null){
-            example.and(
-                    example.createCriteria().andGreaterThanOrEqualTo("createTime", startTime)
-            );
-        }
-        if(endTime != null){
-            example.and(
-                    example.createCriteria().andLessThan("createTime", endTime)
-            );
-        }
-        if(order==null||order.isEmpty()) order = "id";
-        if (direction != null){
-            switch(direction){
-                case ASC:
-                    example.orderBy(order).asc();
-                    break;
-                case DESC:
-                default:
-                    example.orderBy(order).desc();
-            }
-        } else {
-            example.orderBy(order).desc();
-        }
-        return select(userMapper, example, page, pageSize);
-    }
 
     public Page<User> select(Integer[] ids){
         return page(()->select(userMapper, ids), 1, ids.length);

+ 14 - 1
server/gateway-api/src/main/java/com/qxgmat/service/extend/ExaminationService.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.Page;
 import com.nuliji.tools.AbstractService;
 import com.nuliji.tools.PageResult;
+import com.nuliji.tools.Tools;
 import com.nuliji.tools.Transform;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
@@ -148,6 +149,10 @@ public class ExaminationService extends AbstractService {
         return result;
     }
 
+    private Map<String, String> adminMap = new HashMap<String, String>(){{
+        put("", "qn");
+    }};
+
     /**
      *
      * @param page
@@ -163,7 +168,15 @@ public class ExaminationService extends AbstractService {
      * @return
      */
     public Page<QuestionNoRelation> listAdmin(int page, int pageSize, String questionType, Number structId, Number questionNo, Number paperId, String place, String difficult, String order, DirectionStatus direction){
-        if(order == null || order.isEmpty()) order = "id";
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
         if (direction == null){
             direction = DirectionStatus.DESC;
         }

+ 18 - 6
server/gateway-api/src/main/java/com/qxgmat/service/extend/ExerciseService.java

@@ -3,6 +3,7 @@ package com.qxgmat.service.extend;
 import com.github.pagehelper.Page;
 import com.nuliji.tools.AbstractService;
 import com.nuliji.tools.PageResult;
+import com.nuliji.tools.Tools;
 import com.nuliji.tools.Transform;
 import com.qxgmat.data.constants.enums.QuestionType;
 import com.qxgmat.data.constants.enums.logic.ExerciseLogic;
@@ -24,9 +25,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
+import java.util.*;
 
 @Service
 public class ExerciseService extends AbstractService {
@@ -65,6 +64,10 @@ public class ExerciseService extends AbstractService {
 
     @Resource
     private UserReportService userReportService;
+
+    private Map<String, String> adminMap = new HashMap<String, String>(){{
+        put("", "qn");
+    }};
     /**
      *
      * @param page
@@ -82,7 +85,15 @@ public class ExerciseService extends AbstractService {
      * @return
      */
     public Page<QuestionNoRelation> listAdmin(int page, int pageSize, String questionType, Number structId, Number questionNo, Number paperId, String place, String difficult, String startTime, String endTime, String order, DirectionStatus direction){
-        if(order == null || order.isEmpty()) order = "id";
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
         if (direction == null){
             direction = DirectionStatus.DESC;
         }
@@ -113,7 +124,7 @@ public class ExerciseService extends AbstractService {
      * @param times
      * @return
      */
-    public PageResult<ExercisePaper> list(int page, int size, Number structId, Number userId, ExerciseLogic logic, String logicExtend, Integer times){
+    public Page<ExercisePaper> list(int page, int size, Number structId, Number userId, ExerciseLogic logic, String logicExtend, Integer times){
         String logicKey = logic != null ? logic.key : "";
         Page<ExercisePaper> p = page(()->{
             exercisePaperRelationMapper.listWithUser(structId, userId, logicKey, logicExtend, times);
@@ -122,8 +133,9 @@ public class ExerciseService extends AbstractService {
         Collection ids = Transform.getIds(p, ExercisePaper.class, "id");
         // 获取详细数据
         List<ExercisePaper> list = exercisePaperService.select(ids);
+        Transform.replace(p, list, QuestionNoRelation.class, "id");
 
-        return new PageResult<>(list, p.getTotal());
+        return p;
     }
 
     /**

+ 14 - 1
server/gateway-api/src/main/java/com/qxgmat/service/inline/CommentService.java

@@ -2,6 +2,7 @@ package com.qxgmat.service.inline;
 
 import com.github.pagehelper.Page;
 import com.nuliji.tools.AbstractService;
+import com.nuliji.tools.Tools;
 import com.nuliji.tools.Transform;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
@@ -30,10 +31,22 @@ public class CommentService extends AbstractService {
     @Resource
     private CommentRelationMapper commentRelationMapper;
 
+    private Map<String, String> adminMap = new HashMap<String, String>(){{
+        put("", "c");
+    }};
+
     public Page<Comment> listAdmin(int page, int size, Boolean user, String channel, String position, Integer userId, Boolean isSpecial, Boolean isShow, MoneyRange moneyRange, String order, DirectionStatus direction){
         Integer max = moneyRange != null ? moneyRange.max == Integer.MAX_VALUE ? null : moneyRange.max : null;
         Integer min = moneyRange != null ? moneyRange.min : null;
-        if(order == null || order.isEmpty()) order = "id";
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
         if (direction == null){
             direction = DirectionStatus.DESC;
         }

+ 16 - 1
server/gateway-api/src/main/java/com/qxgmat/service/inline/CourseExperienceService.java

@@ -2,6 +2,7 @@ package com.qxgmat.service.inline;
 
 import com.github.pagehelper.Page;
 import com.nuliji.tools.AbstractService;
+import com.nuliji.tools.Tools;
 import com.nuliji.tools.Transform;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
@@ -21,7 +22,9 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class CourseExperienceService extends AbstractService {
@@ -33,8 +36,20 @@ public class CourseExperienceService extends AbstractService {
     @Resource
     private CourseExperienceRelationMapper courseExperienceRelationMapper;
 
+    private Map<String, String> adminMap = new HashMap<String, String>(){{
+        put("", "ce");
+    }};
+
     public Page<CourseExperience> listWithUser(int page, int size, Integer userId, String startTime, String endTime, String order, DirectionStatus direction){
-        if(order == null || order.isEmpty()) order = "id";
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
         if (direction == null){
             direction = DirectionStatus.DESC;
         }

+ 10 - 1
server/gateway-api/src/main/java/com/qxgmat/service/inline/CourseService.java

@@ -29,7 +29,7 @@ public class CourseService extends AbstractService {
     @Resource
     private CourseRelationMapper courseRelationMapper;
 
-    public Page<Course> listAdmin(int page, int size, String keyword, CourseModule module, Integer structId, Boolean excludeVs){
+    public Page<Course> listAdmin(int page, int size, String keyword, CourseModule module, Integer structId, Boolean excludeVs, String order, DirectionStatus direction){
         Example example = new Example(Course.class);
         if (keyword != null) {
             example.and(
@@ -56,6 +56,15 @@ public class CourseService extends AbstractService {
                             .andNotEqualTo("courseModule", CourseModule.VS.key)
             );
         }
+        if(order == null || order.isEmpty()) order = "id";
+        switch(direction){
+            case ASC:
+                example.orderBy(order).asc();
+                break;
+            case DESC:
+            default:
+                example.orderBy(order).desc();
+        }
         return select(courseMapper, example, page, size);
     }
 

+ 14 - 1
server/gateway-api/src/main/java/com/qxgmat/service/inline/FaqService.java

@@ -2,6 +2,7 @@ package com.qxgmat.service.inline;
 
 import com.github.pagehelper.Page;
 import com.nuliji.tools.AbstractService;
+import com.nuliji.tools.Tools;
 import com.nuliji.tools.Transform;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
@@ -30,10 +31,22 @@ public class FaqService extends AbstractService {
     @Resource
     private FaqRelationMapper faqRelationMapper;
 
+    private Map<String, String> adminMap = new HashMap<String, String>(){{
+        put("", "f");
+    }};
+
     public Page<Faq> listAdmin(int page, int size, Boolean user, String channel, String position, Integer userId, Integer answerStatus, Boolean isSpecial, Boolean isShow, MoneyRange moneyRange, String order, DirectionStatus direction){
         Integer max = moneyRange != null ? moneyRange.max == Integer.MAX_VALUE ? null : moneyRange.max : null;
         Integer min = moneyRange != null ? moneyRange.min : null;
-        if(order == null || order.isEmpty()) order = "id";
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
         if (direction == null){
             direction = DirectionStatus.DESC;
         }

+ 15 - 0
server/gateway-api/src/main/java/com/qxgmat/service/inline/MessageService.java

@@ -5,6 +5,7 @@ import com.nuliji.tools.AbstractService;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
 import com.nuliji.tools.mybatis.Example;
+import com.qxgmat.data.constants.enums.status.DirectionStatus;
 import com.qxgmat.data.dao.MessageMapper;
 import com.qxgmat.data.dao.entity.Message;
 import org.slf4j.Logger;
@@ -23,6 +24,20 @@ public class MessageService extends AbstractService {
     @Resource
     private MessageMapper messageMapper;
 
+    public Page<Message> listAdmin(int page, int pageSize, String order, DirectionStatus direction){
+        Example example = new Example(Message.class);
+        if(order == null || order.isEmpty()) order = "id";
+        switch(direction){
+            case ASC:
+                example.orderBy(order).asc();
+                break;
+            case DESC:
+            default:
+                example.orderBy(order).desc();
+        }
+        return select(messageMapper, example, page, pageSize);
+    }
+
     /**
      * 获取到期还未发送消息列表
      * @return

+ 20 - 1
server/gateway-api/src/main/java/com/qxgmat/service/inline/PreviewPaperService.java

@@ -3,6 +3,7 @@ package com.qxgmat.service.inline;
 import com.github.pagehelper.Page;
 import com.nuliji.tools.AbstractService;
 import com.nuliji.tools.PageResult;
+import com.nuliji.tools.Tools;
 import com.nuliji.tools.Transform;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
@@ -43,9 +44,27 @@ public class PreviewPaperService extends AbstractService {
     @Resource
     private PreviewPaperRelationMapper previewPaperRelationMapper;
 
+    private Map<String, String> adminMap = new HashMap<String, String>(){{
+        put("", "pp");
+    }};
+
     public Page<PreviewPaper> listAdmin(int page, int size, CourseModule courseModule, QuestionType questionType, Integer structId, String order, DirectionStatus direction){
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
+        if (direction == null){
+            direction = DirectionStatus.DESC;
+        }
+        String finalOrder = order;
+        DirectionStatus finalDirection = direction;
         Page<PreviewPaper> p = page(() -> {
-            previewPaperRelationMapper.listAdmin(courseModule != null ? courseModule.key : null, questionType != null ? questionType.key : null, structId, order, direction != null ? direction.key : null);
+            previewPaperRelationMapper.listAdmin(courseModule != null ? courseModule.key : null, questionType != null ? questionType.key : null, structId, finalOrder, finalDirection.key);
         }, page, size);
 
         Collection ids = Transform.getIds(p, PreviewPaper.class, "id");

+ 1 - 1
server/gateway-api/src/main/java/com/qxgmat/service/inline/ReadyArticleService.java

@@ -25,7 +25,7 @@ public class ReadyArticleService extends AbstractService {
     @Resource
     private ReadyArticleMapper readyArticleMapper;
 
-    public Page<ReadyArticle> list(int page, int size, Integer parentCategoryId, Integer categoryId, String order, DirectionStatus direction){
+    public Page<ReadyArticle> listAdmin(int page, int size, Integer parentCategoryId, Integer categoryId, String order, DirectionStatus direction){
         Example example = new Example(ReadyArticle.class);
         if (parentCategoryId != null)
             example.and(

+ 1 - 1
server/gateway-api/src/main/java/com/qxgmat/service/inline/ReadyReadService.java

@@ -23,7 +23,7 @@ public class ReadyReadService extends AbstractService {
     @Resource
     private ReadyReadMapper readyReadMapper;
 
-    public Page<ReadyRead> list(int page, int size, String plate, String order, DirectionStatus direction){
+    public Page<ReadyRead> listAdmin(int page, int size, String plate, String order, DirectionStatus direction){
         Example example = new Example(ReadyRead.class);
         if (plate != null)
             example.and(

+ 1 - 1
server/gateway-api/src/main/java/com/qxgmat/service/inline/ReadyRoomService.java

@@ -25,7 +25,7 @@ public class ReadyRoomService extends AbstractService {
     @Resource
     private ReadyRoomMapper readyRoomMapper;
 
-    public Page<ReadyRoom> list(int page, int size, String position, Integer areaId, String order, DirectionStatus direction){
+    public Page<ReadyRoom> listAdmin(int page, int size, String position, Integer areaId, String order, DirectionStatus direction){
         Example example = new Example(ReadyRoom.class);
         if (position != null)
             example.and(

+ 27 - 17
server/gateway-api/src/main/java/com/qxgmat/service/inline/SentenceArticleService.java

@@ -5,6 +5,7 @@ import com.nuliji.tools.AbstractService;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
 import com.nuliji.tools.mybatis.Example;
+import com.qxgmat.data.constants.enums.status.DirectionStatus;
 import com.qxgmat.data.dao.SentenceArticleMapper;
 import com.qxgmat.data.dao.entity.Manager;
 import com.qxgmat.data.dao.entity.SentenceArticle;
@@ -33,6 +34,32 @@ public class SentenceArticleService extends AbstractService {
         return select(sentenceArticleMapper, example);
     }
 
+    public Page<SentenceArticle> listAdmin(int page, int pageSize, Number chapter, Number part, String order, DirectionStatus direction){
+        Example example = new Example(SentenceArticle.class);
+        if (chapter!=null){
+            example.and(
+                    example.createCriteria()
+                            .andEqualTo("chapter", chapter)
+            );
+        }
+        if (part!=null){
+            example.and(
+                    example.createCriteria()
+                            .andEqualTo("part", part)
+            );
+        }
+        if(order == null || order.isEmpty()) order = "id";
+        switch(direction){
+            case ASC:
+                example.orderBy(order).asc();
+                break;
+            case DESC:
+            default:
+                example.orderBy(order).desc();
+        }
+        return select(sentenceArticleMapper, example, page, pageSize);
+    }
+
     /**
      * 获取长难句单个章节所有文章
      * @param chapter
@@ -119,23 +146,6 @@ public class SentenceArticleService extends AbstractService {
         return select(sentenceArticleMapper, page, pageSize);
     }
 
-    public Page<SentenceArticle> select(int page, int pageSize, Number chapter, Number part){
-        Example example = new Example(SentenceArticle.class);
-        if (chapter!=null){
-            example.and(
-                    example.createCriteria()
-                            .andEqualTo("chapter", chapter)
-            );
-        }
-        if (part!=null){
-            example.and(
-                    example.createCriteria()
-                            .andEqualTo("part", part)
-            );
-        }
-        return select(sentenceArticleMapper, example, page, pageSize);
-    }
-
     public Page<SentenceArticle> select(Integer[] ids){
         return page(()->select(sentenceArticleMapper, ids), 1, ids.length);
     }

+ 14 - 0
server/gateway-api/src/main/java/com/qxgmat/service/inline/SentenceQuestionService.java

@@ -6,6 +6,7 @@ import com.nuliji.tools.Transform;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
 import com.nuliji.tools.mybatis.Example;
+import com.qxgmat.data.constants.enums.status.DirectionStatus;
 import com.qxgmat.data.dao.SentenceQuestionMapper;
 import com.qxgmat.data.dao.entity.Manager;
 import com.qxgmat.data.dao.entity.Question;
@@ -35,6 +36,19 @@ public class SentenceQuestionService extends AbstractService {
     @Resource
     private SentenceQuestionRelationMapper sentenceQuestionRelationMapper;
 
+    public Page<SentenceQuestion> listAdmin(int page, int pageSize, String order, DirectionStatus direction){
+        Example example = new Example(SentenceQuestion.class);
+        if(order == null || order.isEmpty()) order = "id";
+        switch(direction){
+            case ASC:
+                example.orderBy(order).asc();
+                break;
+            case DESC:
+            default:
+                example.orderBy(order).desc();
+        }
+        return select(sentenceQuestionMapper, example, page, pageSize);
+    }
     /**
      * 后台搜索长难句
      * @param page

+ 14 - 1
server/gateway-api/src/main/java/com/qxgmat/service/inline/TextbookQuestionService.java

@@ -3,6 +3,7 @@ package com.qxgmat.service.inline;
 import com.github.pagehelper.Page;
 import com.nuliji.tools.AbstractService;
 import com.nuliji.tools.PageResult;
+import com.nuliji.tools.Tools;
 import com.nuliji.tools.Transform;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
@@ -39,6 +40,10 @@ public class TextbookQuestionService extends AbstractService {
     @Resource
     private TextbookQuestionRelationMapper textbookQuestionRelationMapper;
 
+    private Map<String, String> adminMap = new HashMap<String, String>(){{
+        put("", "tq");
+    }};
+
     /**
      * 管理后台查询列表
      * @param page
@@ -51,7 +56,15 @@ public class TextbookQuestionService extends AbstractService {
      * @return
      */
     public Page<TextbookQuestion> listAdmin(int page, int pageSize, String questionType, Number paperId, Integer questionNoId, String order, DirectionStatus direction){
-        if(order == null || order.isEmpty()) order = "id";
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
         if (direction == null){
             direction = DirectionStatus.DESC;
         }

+ 37 - 29
server/gateway-api/src/main/java/com/qxgmat/service/inline/TextbookTopicService.java

@@ -29,6 +29,43 @@ public class TextbookTopicService extends AbstractService {
     @Resource
     private TextbookTopicMapper textbookTopicMapper;
 
+    public Page<TextbookTopic> listAdmin(int page, int pageSize, String questionType, Number libraryId, String keyword, TopicQuality quality, String order, DirectionStatus direction){
+        Example example = new Example(TextbookTopic.class);
+        if (questionType!=null){
+            example.and(
+                    example.createCriteria()
+                            .andEqualTo("questionType", questionType)
+            );
+        }
+        if (libraryId!=null){
+            example.and(
+                    example.createCriteria()
+                            .andEqualTo("libraryId", libraryId)
+            );
+        }
+        if (keyword!=null){
+            example.and(
+                    example.createCriteria()
+                            .andLike("keyword", "%"+keyword+"%")
+            );
+        }
+        if (quality!=null){
+            example.and(
+                    example.createCriteria()
+                            .andEqualTo("quality", quality.key)
+            );
+        }
+        if(order == null || order.isEmpty()) order = "id";
+        switch(direction){
+            case ASC:
+                example.orderBy(order).asc();
+                break;
+            case DESC:
+            default:
+                example.orderBy(order).desc();
+        }
+        return select(textbookTopicMapper, example, page, pageSize);
+    }
     /**
      * 获取换库表中的最后一题
      * @param libraryId
@@ -120,35 +157,6 @@ public class TextbookTopicService extends AbstractService {
         return select(textbookTopicMapper, page, pageSize);
     }
 
-    public Page<TextbookTopic> select(int page, int pageSize, String questionType, Number libraryId, String keyword, TopicQuality quality){
-        Example example = new Example(TextbookTopic.class);
-        if (questionType!=null){
-            example.and(
-                    example.createCriteria()
-                            .andEqualTo("questionType", questionType)
-            );
-        }
-        if (libraryId!=null){
-            example.and(
-                    example.createCriteria()
-                            .andEqualTo("libraryId", libraryId)
-            );
-        }
-        if (keyword!=null){
-            example.and(
-                    example.createCriteria()
-                            .andLike("keyword", "%"+keyword+"%")
-            );
-        }
-        if (quality!=null){
-            example.and(
-                    example.createCriteria()
-                            .andEqualTo("quality", quality.key)
-            );
-        }
-        return select(textbookTopicMapper, example, page, pageSize);
-    }
-
     public Page<TextbookTopic> select(Integer[] ids){
         return page(()->select(textbookTopicMapper, ids), 1, ids.length);
     }

+ 16 - 1
server/gateway-api/src/main/java/com/qxgmat/service/inline/UserAbnormalService.java

@@ -2,6 +2,7 @@ package com.qxgmat.service.inline;
 
 import com.github.pagehelper.Page;
 import com.nuliji.tools.AbstractService;
+import com.nuliji.tools.Tools;
 import com.nuliji.tools.Transform;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
@@ -20,7 +21,9 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class UserAbnormalService extends AbstractService {
@@ -32,8 +35,20 @@ public class UserAbnormalService extends AbstractService {
     @Resource
     private UserAbnormalRelationMapper userAbnormalRelationMapper;
 
+    private Map<String, String> adminMap = new HashMap<String, String>(){{
+        put("", "ua");
+    }};
+
     public Page<UserAbnormal> listAdmin(int page, int size, Integer userId, Integer totalAlert, String order, DirectionStatus direction){
-        if(order == null || order.isEmpty()) order = "id";
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
         if (direction == null){
             direction = DirectionStatus.DESC;
         }

+ 18 - 4
server/gateway-api/src/main/java/com/qxgmat/service/inline/UserAskCourseService.java

@@ -2,6 +2,7 @@ package com.qxgmat.service.inline;
 
 import com.github.pagehelper.Page;
 import com.nuliji.tools.AbstractService;
+import com.nuliji.tools.Tools;
 import com.nuliji.tools.Transform;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
@@ -23,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -36,14 +38,26 @@ public class UserAskCourseService extends AbstractService {
     @Resource
     private UserAskCourseRelationMapper userAskCourseRelationMapper;
 
-    public Page<UserAskCourse> listWithCourse(int page, int size, Integer structId, Number courseId, AskStatus status, Integer showStatus, Integer userId, MoneyRange moneyRange, String order, DirectionStatus direction){
+    private Map<String, String> adminMap = new HashMap<String, String>(){{
+        put("", "uac");
+    }};
+
+    public Page<UserAskCourse> listAdmin(int page, int size, Integer structId, Number courseId, AskStatus status, Integer showStatus, Integer userId, MoneyRange moneyRange, String order, DirectionStatus direction){
         Integer statusIndex = status != null ? status.index : null;
-        if(order == null || order.isEmpty()) order = "id";
+        Integer max = moneyRange != null ? moneyRange.max == Integer.MAX_VALUE ? null : moneyRange.max : null;
+        Integer min = moneyRange != null ? moneyRange.min : null;
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
         if (direction == null){
             direction = DirectionStatus.DESC;
         }
-        Integer max = moneyRange != null ? moneyRange.max == Integer.MAX_VALUE ? null : moneyRange.max : null;
-        Integer min = moneyRange != null ? moneyRange.min : null;
         String finalOrder = order;
         DirectionStatus finalDirection = direction;
         Page<UserAskCourse> p = page(

+ 16 - 2
server/gateway-api/src/main/java/com/qxgmat/service/inline/UserAskQuestionService.java

@@ -2,6 +2,7 @@ package com.qxgmat.service.inline;
 
 import com.github.pagehelper.Page;
 import com.nuliji.tools.AbstractService;
+import com.nuliji.tools.Tools;
 import com.nuliji.tools.Transform;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
@@ -21,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -54,12 +56,24 @@ public class UserAskQuestionService extends AbstractService {
         return p;
     }
 
-    public Page<UserAskQuestion> listWithUser(int page, int size, String askModule, String questionType, String questionModule, Number userId, Number questionNoId, AskTarget target, AskStatus status, Integer showStatus, MoneyRange moneyRange, Boolean hasRecord,String order, DirectionStatus direction){
+    private Map<String, String> adminMap = new HashMap<String, String>(){{
+        put("", "uaq");
+    }};
+
+    public Page<UserAskQuestion> listAdmin(int page, int size, String askModule, String questionType, String questionModule, Number userId, Number questionNoId, AskTarget target, AskStatus status, Integer showStatus, MoneyRange moneyRange, Boolean hasRecord, String order, DirectionStatus direction){
         String tk = target != null ? target.key : "";
         Integer statusIndex = status != null ? status.index : null;
         Integer max = moneyRange != null ? moneyRange.max == Integer.MAX_VALUE ? null : moneyRange.max : null;
         Integer min = moneyRange != null ? moneyRange.min : null;
-        if(order == null || order.isEmpty()) order = "id";
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
         if (direction == null){
             direction = DirectionStatus.DESC;
         }

+ 11 - 2
server/gateway-api/src/main/java/com/qxgmat/service/inline/UserCourseAppointmentService.java

@@ -5,6 +5,7 @@ import com.nuliji.tools.AbstractService;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
 import com.nuliji.tools.mybatis.Example;
+import com.qxgmat.data.constants.enums.status.DirectionStatus;
 import com.qxgmat.data.dao.UserCourseAppointmentMapper;
 import com.qxgmat.data.dao.entity.CourseNo;
 import com.qxgmat.data.dao.entity.UserCourseAppointment;
@@ -22,7 +23,7 @@ public class UserCourseAppointmentService extends AbstractService {
     @Resource
     private UserCourseAppointmentMapper userCourseAppointmentMapper;
 
-    public Page<UserCourseAppointment> listAdmin(int page, int size, Integer recordId, Integer userId, Integer courseId, String startTime, String endTime){
+    public Page<UserCourseAppointment> listAdmin(int page, int size, Integer recordId, Integer userId, Integer courseId, String startTime, String endTime, String order, DirectionStatus direction){
         Example example = new Example(UserCourseAppointment.class);
         if(recordId != null){
             example.and(
@@ -55,7 +56,15 @@ public class UserCourseAppointmentService extends AbstractService {
                             .andLessThanOrEqualTo("endTime", endTime)
             );
         }
-        example.orderBy("id").desc();
+        if(order == null || order.isEmpty()) order = "id";
+        switch(direction){
+            case ASC:
+                example.orderBy(order).asc();
+                break;
+            case DESC:
+            default:
+                example.orderBy(order).desc();
+        }
         return select(userCourseAppointmentMapper, example, page, size);
     }
 

+ 21 - 1
server/gateway-api/src/main/java/com/qxgmat/service/inline/UserFeedbackErrorService.java

@@ -2,6 +2,7 @@ package com.qxgmat.service.inline;
 
 import com.github.pagehelper.Page;
 import com.nuliji.tools.AbstractService;
+import com.nuliji.tools.Tools;
 import com.nuliji.tools.Transform;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
@@ -19,7 +20,9 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class UserFeedbackErrorService extends AbstractService {
@@ -31,14 +34,31 @@ public class UserFeedbackErrorService extends AbstractService {
     @Resource
     private UserFeedbackErrorRelationMapper userFeedbackErrorRelationMapper;
 
+    private Map<String, String> adminMap = new HashMap<String, String>(){{
+        put("", "ufe");
+    }};
 
     public Page<UserFeedbackError> listAdmin(int page, int size, FeedbackModule module, FeedbackStatus status, String questionType, String target, Integer moduleId, String keyword, Integer userId, MoneyRange moneyRange, String order, DirectionStatus direction){
         String moduleKey = module == null ? null : module.key;
         Integer statusIndex = status == null ? null : status.index;
         Integer max = moneyRange != null ? moneyRange.max == Integer.MAX_VALUE ? null : moneyRange.max : null;
         Integer min = moneyRange != null ? moneyRange.min : null;
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
+        if (direction == null){
+            direction = DirectionStatus.DESC;
+        }
+        String finalOrder = order;
+        DirectionStatus finalDirection = direction;
         Page<UserFeedbackError> p = page(
-                ()-> userFeedbackErrorRelationMapper.listAdmin(moduleKey, statusIndex, questionType, target, moduleId, userId, keyword, min, max, order, direction.key)
+                ()-> userFeedbackErrorRelationMapper.listAdmin(moduleKey, statusIndex, questionType, target, moduleId, userId, keyword, min, max, finalOrder, finalDirection.key)
         , page, size);
 
         Collection ids = Transform.getIds(p, UserFeedbackError.class, "id");

+ 32 - 3
server/gateway-api/src/main/java/com/qxgmat/service/inline/UserOrderRecordService.java

@@ -2,6 +2,7 @@ package com.qxgmat.service.inline;
 
 import com.github.pagehelper.Page;
 import com.nuliji.tools.AbstractService;
+import com.nuliji.tools.Tools;
 import com.nuliji.tools.Transform;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
@@ -350,6 +351,10 @@ public class UserOrderRecordService extends AbstractService {
         return select(userOrderRecordMapper, example, page, size);
     }
 
+    private Map<String, String> adminMap = new HashMap<String, String>(){{
+        put("", "uor");
+    }};
+
     /**
      * 列出用户学习记录
      * @param page
@@ -359,7 +364,15 @@ public class UserOrderRecordService extends AbstractService {
      * @return
      */
     public Page<UserOrderRecord> listWithStudyAdmin(int page, int size, String[] modules, Integer structId, Integer courseId, Integer userId, String teacher, String order, DirectionStatus direction){
-        if(order == null || order.isEmpty()) order = "id";
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
         if (direction == null){
             direction = DirectionStatus.DESC;
         }
@@ -384,7 +397,15 @@ public class UserOrderRecordService extends AbstractService {
      * @return
      */
     public Page<UserOrderRecord> listWithVs(int page, int size, VsCourseType vsType, Integer courseId, Integer userId, String order, DirectionStatus direction){
-        if(order == null || order.isEmpty()) order = "id";
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
         if (direction == null){
             direction = DirectionStatus.DESC;
         }
@@ -408,7 +429,15 @@ public class UserOrderRecordService extends AbstractService {
      * @return
      */
     public Page<UserOrderRecord> listWithCourse(int page, int size, Integer userId, CourseModule courseModule, Boolean isUsed, Boolean isEnd, String order, DirectionStatus direction){
-        if(order == null || order.isEmpty()) order = "id";
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
         if (direction == null){
             direction = DirectionStatus.DESC;
         }

+ 15 - 1
server/gateway-api/src/main/java/com/qxgmat/service/inline/UserOrderService.java

@@ -2,6 +2,7 @@ package com.qxgmat.service.inline;
 
 import com.github.pagehelper.Page;
 import com.nuliji.tools.AbstractService;
+import com.nuliji.tools.Tools;
 import com.nuliji.tools.Transform;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
@@ -17,7 +18,9 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class UserOrderService extends AbstractService {
@@ -29,9 +32,20 @@ public class UserOrderService extends AbstractService {
     @Resource
     private UserOrderRelationMapper userOrderRelationMapper;
 
+    private Map<String, String> adminMap = new HashMap<String, String>(){{
+        put("", "uo");
+    }};
 
     public Page<UserOrder> listAdmin(int page, int size, Integer userId, String productType, String payMethod, Integer orderId, String order, DirectionStatus direction){
-        if(order == null || order.isEmpty()) order = "id";
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
         if (direction == null){
             direction = DirectionStatus.DESC;
         }

+ 21 - 1
server/gateway-api/src/main/java/com/qxgmat/service/inline/UserTextbookFeedbackService.java

@@ -2,6 +2,7 @@ package com.qxgmat.service.inline;
 
 import com.github.pagehelper.Page;
 import com.nuliji.tools.AbstractService;
+import com.nuliji.tools.Tools;
 import com.nuliji.tools.Transform;
 import com.nuliji.tools.exception.ParameterException;
 import com.nuliji.tools.exception.SystemException;
@@ -16,7 +17,9 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class UserTextbookFeedbackService extends AbstractService {
@@ -28,11 +31,28 @@ public class UserTextbookFeedbackService extends AbstractService {
     @Resource
     private UserTextbookFeedbackRelationMapper userTextbookFeedbackRelationMapper;
 
+    private Map<String, String> adminMap = new HashMap<String, String>(){{
+        put("", "utf");
+    }};
 
     public Page<UserTextbookFeedback> listAdmin(int page, int size, String target, String questionSubject, FeedbackStatus status, Integer no, String order, DirectionStatus direction){
         Integer statusIndex = status == null ? null : status.index;
+        if(order == null || order.isEmpty()){
+            order = "id";
+        }
+        order = Tools.underscoreName(order);
+        if(adminMap.containsKey(order)){
+            order = adminMap.get(order)+".`"+order+"`";
+        }else{
+            order = adminMap.get("")+".`"+order+"`";
+        }
+        if (direction == null){
+            direction = DirectionStatus.DESC;
+        }
+        String finalOrder = order;
+        DirectionStatus finalDirection = direction;
         Page<UserTextbookFeedback> p = page(
-                ()-> userTextbookFeedbackRelationMapper.listAdmin(target, questionSubject, statusIndex, no, order, direction.key)
+                ()-> userTextbookFeedbackRelationMapper.listAdmin(target, questionSubject, statusIndex, no, finalOrder, finalDirection.key)
         , page, size);
 
         Collection ids = Transform.getIds(p, UserTextbookFeedback.class, "id");

+ 53 - 0
server/tools/src/main/java/com/nuliji/tools/Tools.java

@@ -17,6 +17,8 @@ import java.security.InvalidKeyException;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * Created by gaojie on 2017/11/9.
@@ -304,4 +306,55 @@ public class Tools {
         }
         return packageMap;
     }
+
+    /**
+     * 转换为下划线
+     *
+     * @param camelCaseName
+     * @return
+     */
+    public static String underscoreName(String camelCaseName) {
+        StringBuilder result = new StringBuilder();
+        if (camelCaseName != null && camelCaseName.length() > 0) {
+            result.append(camelCaseName.substring(0, 1).toLowerCase());
+            for (int i = 1; i < camelCaseName.length(); i++) {
+                char ch = camelCaseName.charAt(i);
+                if (Character.isUpperCase(ch)) {
+                    result.append("_");
+                    result.append(Character.toLowerCase(ch));
+                } else {
+                    result.append(ch);
+                }
+            }
+        }
+        return result.toString();
+    }
+
+    /**
+     * 转换为驼峰
+     *
+     * @param underscoreName
+     * @return
+     */
+    public static String camelCaseName(String underscoreName) {
+        StringBuilder result = new StringBuilder();
+        if (underscoreName != null && underscoreName.length() > 0) {
+            boolean flag = false;
+            for (int i = 0; i < underscoreName.length(); i++) {
+                char ch = underscoreName.charAt(i);
+                if ("_".charAt(0) == ch) {
+                    flag = true;
+                } else {
+                    if (flag) {
+                        result.append(Character.toUpperCase(ch));
+                        flag = false;
+                    } else {
+                        result.append(ch);
+                    }
+                }
+            }
+        }
+        return result.toString();
+    }
+
 }