Procházet zdrojové kódy

feat:云教练反馈

Joburgess před 4 roky
rodič
revize
5d0848708b

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMusicCompareRecord.java

@@ -36,6 +36,9 @@ public class SysMusicCompareRecord {
 
 
 	/** 录音文件地址 */
 	/** 录音文件地址 */
 	private String recordFilePath;
 	private String recordFilePath;
+
+	/** 周一日期 */
+	private String monday;
 	
 	
 	/** 创建时间 */
 	/** 创建时间 */
 	private java.util.Date createTime;
 	private java.util.Date createTime;
@@ -142,6 +145,14 @@ public class SysMusicCompareRecord {
 		this.playTime = playTime;
 		this.playTime = playTime;
 	}
 	}
 
 
+	public String getMonday() {
+		return monday;
+	}
+
+	public void setMonday(String monday) {
+		this.monday = monday;
+	}
+
 	public void setCreateTime(java.util.Date createTime){
 	public void setCreateTime(java.util.Date createTime){
 		this.createTime = createTime;
 		this.createTime = createTime;
 	}
 	}

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysSuggestion.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 package com.ym.mec.biz.dal.entity;
 
 
+import com.ym.mec.biz.dal.enums.SuggestionType;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 
@@ -30,6 +31,9 @@ public class SysSuggestion {
 	@ApiModelProperty(value = "客户端类型",required = false)
 	@ApiModelProperty(value = "客户端类型",required = false)
 	private String clientType;
 	private String clientType;
 
 
+	@ApiModelProperty(value = "建议类型")
+	private SuggestionType type = SuggestionType.APP;
+
 	@ApiModelProperty(value = "用户名",required = false)
 	@ApiModelProperty(value = "用户名",required = false)
 	private String username;
 	private String username;
 	
 	
@@ -92,6 +96,14 @@ public class SysSuggestion {
 		this.clientType = clientType;
 		this.clientType = clientType;
 	}
 	}
 
 
+	public SuggestionType getType() {
+		return type;
+	}
+
+	public void setType(SuggestionType type) {
+		this.type = type;
+	}
+
 	public void setCreateTime(java.util.Date createTime){
 	public void setCreateTime(java.util.Date createTime){
 		this.createTime = createTime;
 		this.createTime = createTime;
 	}
 	}

+ 34 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SuggestionType.java

@@ -0,0 +1,34 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+public enum SuggestionType implements BaseEnum<String, SuggestionType> {
+	APP("APP", "软件反馈"),
+	SMART_PRACTICE("SMART_PRACTICE", "智能陪练");
+
+	private String code;
+
+	private String msg;
+
+	SuggestionType(String code, String msg) {
+		this.code = code;
+		this.msg = msg;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getMsg() {
+		return msg;
+	}
+
+	public void setMsg(String msg) {
+		this.msg = msg;
+	}
+
+	@Override
+	public String getCode() {
+		return this.code;
+	}
+}

+ 54 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/SysSuggestionQueryInfo.java

@@ -0,0 +1,54 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.biz.dal.enums.SuggestionType;
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Author Joburgess
+ * @Date 2021/8/10 0010
+ */
+public class SysSuggestionQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "建议类型")
+    private SuggestionType type;
+
+    private String startTime;
+
+    private String endTime;
+
+    @ApiModelProperty(value = "客户端类型",required = false)
+    private String clientType;
+
+    public SuggestionType getType() {
+        return type;
+    }
+
+    public void setType(SuggestionType type) {
+        this.type = type;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    public String getClientType() {
+        return clientType;
+    }
+
+    public void setClientType(String clientType) {
+        this.clientType = clientType;
+    }
+}

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicCompareRecordServiceImpl.java

@@ -5,6 +5,7 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.SoundCompareHelper;
 import com.ym.mec.biz.dal.dto.SoundCompareHelper;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.util.date.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.biz.dal.entity.SysMusicCompareRecord;
 import com.ym.mec.biz.dal.entity.SysMusicCompareRecord;
@@ -14,6 +15,8 @@ import org.springframework.stereotype.Service;
 
 
 import java.io.IOException;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
 import java.util.Map;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Objects;
 
 
@@ -51,6 +54,7 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 		sysMusicCompareRecord.setDeviceType(soundCompareInfo.getDeviceType());
 		sysMusicCompareRecord.setDeviceType(soundCompareInfo.getDeviceType());
 		sysMusicCompareRecord.setClientId(soundCompareInfo.getClientId());
 		sysMusicCompareRecord.setClientId(soundCompareInfo.getClientId());
 		sysMusicCompareRecord.setPlayTime(soundCompareInfo.getFile().length()/(SoundCompareHandler.soundCompareConfig.audioFormat.getFrameSize()*SoundCompareHandler.soundCompareConfig.audioFormat.getFrameRate()));
 		sysMusicCompareRecord.setPlayTime(soundCompareInfo.getFile().length()/(SoundCompareHandler.soundCompareConfig.audioFormat.getFrameSize()*SoundCompareHandler.soundCompareConfig.audioFormat.getFrameRate()));
+		sysMusicCompareRecord.setMonday(LocalDate.now().with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue()).toString());
 		sysMusicCompareRecordDao.insert(sysMusicCompareRecord);
 		sysMusicCompareRecordDao.insert(sysMusicCompareRecord);
 	}
 	}
 }
 }

+ 6 - 2
mec-biz/src/main/resources/config/mybatis/SysMusicCompareRecordMapper.xml

@@ -19,6 +19,7 @@
 		<result column="device_type_" property="deviceType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
 		<result column="device_type_" property="deviceType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
 		<result column="client_id_" property="clientId" />
 		<result column="client_id_" property="clientId" />
 		<result column="play_time_" property="playTime"/>
 		<result column="play_time_" property="playTime"/>
+		<result column="monday_" property="monday"/>
 		<result column="create_time_" property="createTime" />
 		<result column="create_time_" property="createTime" />
 	</resultMap>
 	</resultMap>
 
 
@@ -40,9 +41,9 @@
 		</selectKey>
 		</selectKey>
 		-->
 		-->
 		INSERT INTO sys_music_compare_record (id_,user_id_,sys_music_score_id_,score_data_,score_,intonation_,cadence_,integrity_,
 		INSERT INTO sys_music_compare_record (id_,user_id_,sys_music_score_id_,score_data_,score_,intonation_,cadence_,integrity_,
-		                                      record_file_path_,device_type_,client_id_,play_time_,create_time_)
+		                                      record_file_path_,device_type_,client_id_,play_time_,monday_,create_time_)
 		VALUES(#{id},#{userId},#{sysMusicScoreId},#{scoreData},#{score},#{intonation},#{cadence},#{integrity},
 		VALUES(#{id},#{userId},#{sysMusicScoreId},#{scoreData},#{score},#{intonation},#{cadence},#{integrity},
-		       #{recordFilePath},#{deviceType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{clientId},#{playTime},NOW())
+		       #{recordFilePath},#{deviceType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{clientId},#{playTime},#{monday},NOW())
 	</insert>
 	</insert>
 
 
 	<!-- 根据主键查询一条记录 -->
 	<!-- 根据主键查询一条记录 -->
@@ -81,6 +82,9 @@
 		<if test="playTime != null">
 		<if test="playTime != null">
 			play_time_ = #{playTime},
 			play_time_ = #{playTime},
 		</if>
 		</if>
+		<if test="monday != null">
+			monday_ = #{monday},
+		</if>
 	</set> WHERE id_ = #{id}
 	</set> WHERE id_ = #{id}
 	</update>
 	</update>
 
 

+ 29 - 3
mec-biz/src/main/resources/config/mybatis/SysSuggestionMapper.xml

@@ -15,6 +15,7 @@
         <result column="username_" property="username"/>
         <result column="username_" property="username"/>
         <result column="create_time_" property="createTime"/>
         <result column="create_time_" property="createTime"/>
         <result column="client_type_" property="clientType"/>
         <result column="client_type_" property="clientType"/>
+        <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
     </resultMap>
 
 
     <!-- 根据主键查询一条记录 -->
     <!-- 根据主键查询一条记录 -->
@@ -30,8 +31,8 @@
     <!-- 向数据库增加一条记录 -->
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.SysSuggestion" useGeneratedKeys="true" keyColumn="id"
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.SysSuggestion" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
             keyProperty="id">
-        INSERT INTO sys_suggestion (id_,mobile_no_,title_,content_,user_id_,create_time_,client_type_)
-        VALUES(#{id},#{mobileNo},#{title},#{content},#{userId},now(),#{clientType})
+        INSERT INTO sys_suggestion (id_,mobile_no_,title_,content_,user_id_,create_time_,client_type_,type_)
+        VALUES(#{id},#{mobileNo},#{title},#{content},#{userId},now(),#{clientType},#{type, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
     </insert>
     </insert>
 
 
     <!-- 根据主键查询一条记录 -->
     <!-- 根据主键查询一条记录 -->
@@ -53,6 +54,9 @@
             <if test="mobileNo != null">
             <if test="mobileNo != null">
                 mobile_no_ = #{mobileNo},
                 mobile_no_ = #{mobileNo},
             </if>
             </if>
+            <if test="type != null">
+                type_ = #{type, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
         </set>
         </set>
         WHERE id_ = #{id}
         WHERE id_ = #{id}
     </update>
     </update>
@@ -62,16 +66,38 @@
 		DELETE FROM sys_suggestion WHERE id_ = #{id} 
 		DELETE FROM sys_suggestion WHERE id_ = #{id} 
 	</delete>
 	</delete>
 
 
+    <sql id="queryCondition">
+        <where>
+            <if test="type!=null">
+                AND ss.type_ = #{type, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
+            <if test="clientType!=null">
+                AND ss.client_type_ = #{clientType}
+            </if>
+            <if test="startTime!=null and startTime!=''">
+                AND DATE_FORMAT(ss.create_time_,'%Y-%m-%d') &gt;= #{startTime}
+            </if>
+            <if test="endTime!=null and endTime!=''">
+                AND DATE_FORMAT(ss.create_time_,'%Y-%m-%d') &lt;= #{endTime}
+            </if>
+            <if test="search!=null and search!=''">
+                AND (su.real_name_ LIKE CONCAT('%', #{search}, '%') OR su.username_ LIKE CONCAT('%', #{search}, '%') OR ss.user_id_=#{search} OR su.phone_=#{search})
+            </if>
+        </where>
+    </sql>
+
     <!-- 分页查询 -->
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="SysSuggestion" parameterType="map">
     <select id="queryPage" resultMap="SysSuggestion" parameterType="map">
         SELECT ss.*,CASE WHEN su.real_name_ IS NULL THEN su.username_ ELSE su.real_name_ END username_ FROM sys_suggestion ss
         SELECT ss.*,CASE WHEN su.real_name_ IS NULL THEN su.username_ ELSE su.real_name_ END username_ FROM sys_suggestion ss
         LEFT JOIN sys_user su ON su.id_ = ss.user_id_
         LEFT JOIN sys_user su ON su.id_ = ss.user_id_
+        <include refid="queryCondition" />
         ORDER BY ss.id_ DESC
         ORDER BY ss.id_ DESC
         <include refid="global.limit"/>
         <include refid="global.limit"/>
     </select>
     </select>
 
 
     <!-- 查询当前表的总记录数 -->
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
     <select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM sys_suggestion
+		SELECT COUNT(*) FROM sys_suggestion ss
+        <include refid="queryCondition" />
 	</select>
 	</select>
 </mapper>
 </mapper>

+ 5 - 4
mec-student/src/main/java/com/ym/mec/student/controller/StudentManageController.java

@@ -1,13 +1,11 @@
 package com.ym.mec.student.controller;
 package com.ym.mec.student.controller;
 
 
+import com.ym.mec.biz.dal.enums.SuggestionType;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import io.swagger.annotations.ApiParam;
 
 
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
@@ -121,6 +119,9 @@ public class StudentManageController extends BaseController {
         }
         }
     	sysSuggestion.setClientType("STUDENT");
     	sysSuggestion.setClientType("STUDENT");
         sysSuggestion.setUserId(sysUser.getId().longValue());
         sysSuggestion.setUserId(sysUser.getId().longValue());
+        if(StringUtils.isEmpty(sysSuggestion.getMobileNo())){
+            sysSuggestion.setMobileNo(sysUser.getPhone());
+        }
         suggestionService.insert(sysSuggestion);
         suggestionService.insert(sysSuggestion);
         return succeed();
         return succeed();
     }
     }

+ 6 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherManageController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.teacher.controller;
 package com.ym.mec.teacher.controller;
 
 
+import com.ym.mec.biz.dal.enums.SuggestionType;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import io.swagger.annotations.ApiParam;
@@ -30,6 +31,8 @@ import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.UploadReturnBean;
 import com.ym.mec.common.entity.UploadReturnBean;
 import com.ym.mec.util.upload.UploadUtil;
 import com.ym.mec.util.upload.UploadUtil;
 
 
+import java.util.Objects;
+
 @Api(tags = "教师管理")
 @Api(tags = "教师管理")
 @RestController
 @RestController
 public class TeacherManageController extends BaseController {
 public class TeacherManageController extends BaseController {
@@ -79,6 +82,9 @@ public class TeacherManageController extends BaseController {
         }
         }
         sysSuggestion.setUserId(sysUser.getId().longValue());
         sysSuggestion.setUserId(sysUser.getId().longValue());
     	sysSuggestion.setClientType("TEACHER");
     	sysSuggestion.setClientType("TEACHER");
+        if(StringUtils.isEmpty(sysSuggestion.getMobileNo())){
+            sysSuggestion.setMobileNo(sysUser.getPhone());
+        }
         suggestionService.insert(sysSuggestion);
         suggestionService.insert(sysSuggestion);
         return succeed();
         return succeed();
     }
     }

+ 40 - 10
mec-web/src/main/java/com/ym/mec/web/controller/SysSuggestionController.java

@@ -1,36 +1,66 @@
 package com.ym.mec.web.controller;
 package com.ym.mec.web.controller;
 
 
-import com.ym.mec.biz.dal.entity.ChargeType;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.SysSuggestion;
 import com.ym.mec.biz.dal.entity.SysSuggestion;
-import com.ym.mec.biz.service.ChargeTypeService;
+import com.ym.mec.biz.dal.enums.SuggestionType;
+import com.ym.mec.biz.dal.page.SysSuggestionQueryInfo;
 import com.ym.mec.biz.service.SysSuggestionService;
 import com.ym.mec.biz.service.SysSuggestionService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Objects;
 
 
-@RequestMapping("sysSuggestion")
 @Api(tags = "意见反馈")
 @Api(tags = "意见反馈")
 @RestController
 @RestController
 public class SysSuggestionController extends BaseController {
 public class SysSuggestionController extends BaseController {
 
 
     @Autowired
     @Autowired
     private SysSuggestionService sysSuggestionService;
     private SysSuggestionService sysSuggestionService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
 
     @ApiOperation(value = "新增")
     @ApiOperation(value = "新增")
-    @RequestMapping("/add")
+    @RequestMapping("sysSuggestion/add")
     @PreAuthorize("@pcs.hasPermissions('sysSuggestion/add')")
     @PreAuthorize("@pcs.hasPermissions('sysSuggestion/add')")
     public Object add(SysSuggestion sysSuggestion) {
     public Object add(SysSuggestion sysSuggestion) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        sysSuggestion.setUserId(sysUser.getId().longValue());
+        sysSuggestion.setClientType("TEACHER");
+        if(StringUtils.isEmpty(sysSuggestion.getMobileNo())){
+            sysSuggestion.setMobileNo(sysUser.getPhone());
+        }
+        sysSuggestionService.insert(sysSuggestion);
+        return succeed();
+    }
+
+    @ApiOperation(value = "新增")
+    @RequestMapping("suggestion/add")
+    public Object suggestionAdd(SysSuggestion sysSuggestion) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        sysSuggestion.setUserId(sysUser.getId().longValue());
+        sysSuggestion.setClientType("EDUCATION");
+        if(StringUtils.isEmpty(sysSuggestion.getMobileNo())){
+            sysSuggestion.setMobileNo(sysUser.getPhone());
+        }
         sysSuggestionService.insert(sysSuggestion);
         sysSuggestionService.insert(sysSuggestion);
         return succeed();
         return succeed();
     }
     }
 
 
     @ApiOperation(value = "删除")
     @ApiOperation(value = "删除")
-    @RequestMapping("/del")
+    @RequestMapping("sysSuggestion/del")
     @PreAuthorize("@pcs.hasPermissions('sysSuggestion/del')")
     @PreAuthorize("@pcs.hasPermissions('sysSuggestion/del')")
     public Object del(Long id) {
     public Object del(Long id) {
         sysSuggestionService.delete(id);
         sysSuggestionService.delete(id);
@@ -38,9 +68,9 @@ public class SysSuggestionController extends BaseController {
     }
     }
 
 
     @ApiOperation(value = "分页查询")
     @ApiOperation(value = "分页查询")
-    @RequestMapping("/queryPage")
+    @RequestMapping("sysSuggestion/queryPage")
     @PreAuthorize("@pcs.hasPermissions('sysSuggestion/queryPage')")
     @PreAuthorize("@pcs.hasPermissions('sysSuggestion/queryPage')")
-    public Object queryPage(QueryInfo queryInfo) {
+    public Object queryPage(SysSuggestionQueryInfo queryInfo) {
         return succeed(sysSuggestionService.queryPage(queryInfo));
         return succeed(sysSuggestionService.queryPage(queryInfo));
     }
     }