Selaa lähdekoodia

学员余额变动导出

zouxuan 4 vuotta sitten
vanhempi
commit
565eea6f99

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysUserCashAccountDetailDao.java

@@ -37,4 +37,6 @@ public interface SysUserCashAccountDetailDao extends BaseDAO<Long, SysUserCashAc
      */
     List<SysUserCashAccountDetail> queryAccountDetail(Map<String, Object> params);
     int countAccountDetails(Map<String, Object> params);
+
+    List<SysUserCashAccountDetail> exportDetail(Integer userId);
 }

+ 4 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysUserCoursesAccountDetailDao.java

@@ -3,7 +3,10 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.biz.dal.entity.SysUserCoursesAccountDetail;
 import com.ym.mec.common.dal.BaseDAO;
 
+import java.util.List;
+
 public interface SysUserCoursesAccountDetailDao extends BaseDAO<Long, SysUserCoursesAccountDetail> {
 
-	
+
+    List<SysUserCoursesAccountDetail> exportDetail(Integer userId);
 }

+ 33 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysUserCashAccountDetail.java

@@ -23,6 +23,15 @@ public class SysUserCashAccountDetail {
 	@ApiModelProperty(value = "用户编号",required = false)
 	private Integer userId;
 
+	@ApiModelProperty(value = "手机号",required = false)
+	private String phone;
+
+	@ApiModelProperty(value = "姓名",required = false)
+	private String username;
+
+	@ApiModelProperty(value = "声部",required = false)
+	private String subjectName;
+
 	/** 交易流水号 */
 	@ApiModelProperty(value = "交易流水号",required = false)
 	private String transNo;
@@ -79,6 +88,30 @@ public class SysUserCashAccountDetail {
 	@ApiModelProperty(value = "平台账户号",required = false)
 	private String platformAccountNo;
 
+	public String getPhone() {
+		return phone;
+	}
+
+	public void setPhone(String phone) {
+		this.phone = phone;
+	}
+
+	public String getUsername() {
+		return username;
+	}
+
+	public void setUsername(String username) {
+		this.username = username;
+	}
+
+	public String getSubjectName() {
+		return subjectName;
+	}
+
+	public void setSubjectName(String subjectName) {
+		this.subjectName = subjectName;
+	}
+
 	public String getAttribute() {
 		return attribute;
 	}

+ 35 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysUserCoursesAccountDetail.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.entity;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.TransTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
@@ -15,6 +16,15 @@ public class SysUserCoursesAccountDetail {
 	
 	/** 用户编号 */
 	private Integer userId;
+
+	@ApiModelProperty(value = "手机号",required = false)
+	private String phone;
+
+	@ApiModelProperty(value = "姓名",required = false)
+	private String username;
+
+	@ApiModelProperty(value = "声部",required = false)
+	private String subjectName;
 	
 	/** 交易流水号 */
 	private String transNo;
@@ -54,7 +64,31 @@ public class SysUserCoursesAccountDetail {
 	
 	/** 平台账户号 */
 	private String platformAccountNo;
-	
+
+	public String getPhone() {
+		return phone;
+	}
+
+	public void setPhone(String phone) {
+		this.phone = phone;
+	}
+
+	public String getUsername() {
+		return username;
+	}
+
+	public void setUsername(String username) {
+		this.username = username;
+	}
+
+	public String getSubjectName() {
+		return subjectName;
+	}
+
+	public void setSubjectName(String subjectName) {
+		this.subjectName = subjectName;
+	}
+
 	public void setId(Long id){
 		this.id = id;
 	}

+ 11 - 0
mec-biz/src/main/resources/config/mybatis/SysUserCashAccountDetailMapper.xml

@@ -9,6 +9,9 @@
     <resultMap type="com.ym.mec.biz.dal.entity.SysUserCashAccountDetail" id="SysUserCashAccountDetail">
         <result column="id_" property="id"/>
         <result column="user_id_" property="userId"/>
+        <result column="phone_" property="phone"/>
+        <result column="username_" property="username"/>
+        <result column="subject_name_" property="subjectName"/>
         <result column="trans_no_" property="transNo"/>
         <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="trans_type_" property="transType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
@@ -238,4 +241,12 @@
             <include refid="queryAccountDetailCondition"/>
         ) t
     </select>
+    <select id="exportDetail" resultMap="SysUserCashAccountDetail">
+        SELECT su.username_,su.phone_,GROUP_CONCAT(sb.name_) subject_name_,cad.* FROM sys_user_cash_account_detail cad
+        LEFT JOIN sys_user su ON su.id_ = cad.user_id_
+        LEFT JOIN student s ON s.user_id_ = su.id_
+        LEFT JOIN `subject` sb ON FIND_IN_SET(sb.id_,s.subject_id_list_)
+        WHERE cad.user_id_ = #{userId}
+        GROUP BY cad.id_
+    </select>
 </mapper>

+ 13 - 9
mec-biz/src/main/resources/config/mybatis/SysUserCoursesAccountDetailMapper.xml

@@ -9,6 +9,9 @@
 	<resultMap type="com.ym.mec.biz.dal.entity.SysUserCoursesAccountDetail" id="SysUserCoursesAccountDetail">
 		<result column="id_" property="id" />
 		<result column="user_id_" property="userId" />
+		<result column="phone_" property="phone"/>
+		<result column="username_" property="username"/>
+		<result column="subject_name_" property="subjectName"/>
 		<result column="trans_no_" property="transNo" />
 		<result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 		<result column="trans_type_" property="transType"  typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
@@ -36,13 +39,9 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.SysUserCoursesAccountDetail" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		<!--
-		<selectKey resultClass="int" keyProperty="id" > 
-		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
-		</selectKey>
-		-->
 		INSERT INTO sys_user_courses_account_detail (id_,user_id_,trans_no_,type_,trans_type_,status_,amount_,balance_,description_,comment_,attribute1_,channel_,platform_account_no_,create_time_,update_time_)
-		VALUES(#{id},#{userId},#{transNo},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{transType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{amount},#{balance},#{description},#{comment},#{attribute1},#{channel},#{platformAccountNo},NOW(),NOW())
+		VALUES(#{id},#{userId},#{transNo},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{transType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+		       #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{amount},#{balance},#{description},#{comment},#{attribute1},#{channel},#{platformAccountNo},NOW(),NOW())
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -52,9 +51,6 @@
 			<if test="status != null">
 				status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 			</if>
-			<if test="id != null">
-				id_ = #{id},
-			</if>
 			<if test="balance != null">
 				balance_ = #{balance},
 			</if>
@@ -118,4 +114,12 @@
 		SELECT COUNT(*) FROM sys_user_courses_account_detail
 		<include refid="queryPageCondition" />
 	</select>
+	<select id="exportDetail" resultMap="SysUserCoursesAccountDetail">
+		SELECT su.username_,su.phone_,GROUP_CONCAT(sb.name_) subject_name_,cad.* FROM sys_user_courses_account_detail cad
+		LEFT JOIN sys_user su ON su.id_ = cad.user_id_
+		LEFT JOIN student s ON s.user_id_ = su.id_
+		LEFT JOIN `subject` sb ON FIND_IN_SET(sb.id_,s.subject_id_list_)
+		WHERE cad.user_id_ = #{userId}
+		GROUP BY cad.id_
+	</select>
 </mapper>

+ 78 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -130,9 +130,86 @@ public class ExportController extends BaseController {
     private MusicGroupQuitService musicGroupQuitService;
     @Autowired
     private IndexBaseMonthDataService indexService;
-
     @Autowired
     private TeacherCourseStatisticsService teacherCourseStatisticsService;
+    @Autowired
+    private SysUserCashAccountDetailDao sysUserCashAccountDetailDao;
+    @Autowired
+    private SysUserCoursesAccountDetailDao sysUserCoursesAccountDetailDao;
+
+    @ApiOperation(value = "学生个人账户余额导出")
+    @PostMapping("export/userCashAccountDetail")
+    @PreAuthorize("@pcs.hasPermissions('export/userCashAccountDetail')")
+    public void userCashAccountDetail(HttpServletResponse response, Integer userId) throws IOException {
+       List<SysUserCashAccountDetail> cashAccountDetails = sysUserCashAccountDetailDao.exportDetail(userId);
+       if(cashAccountDetails.size() < 1){
+           throw new BizException("没有可导出数据");
+       }
+       if(cashAccountDetails.size() > 49999){
+           throw new BizException("数据超长,请联系管理员");
+       }
+        OutputStream outputStream = response.getOutputStream();
+        try {
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"学员编号", "姓名", "电话", "声部",
+                    "交易类型", "交易金额", "交易时间", "备注"}, new String[]{
+                    "userId", "username", "phone", "subjectName",
+                    "type.msg", "amount", "createTime", "comment"}, cashAccountDetails);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attac:wq" +
+                    "hment;filename=classGroup-" + DateUtil.getDate(new Date()) + ".xls");
+            response.flushBuffer();
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+            outputStream.flush();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (outputStream != null) {
+                try {
+                    outputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
+    @ApiOperation(value = "学生个人课程余额导出")
+    @PostMapping("export/userCoursesAccount")
+    @PreAuthorize("@pcs.hasPermissions('export/userCoursesAccount')")
+    public void userCoursesAccount(HttpServletResponse response, Integer userId) throws IOException {
+        List<SysUserCoursesAccountDetail> coursesAccountDetails = sysUserCoursesAccountDetailDao.exportDetail(userId);
+        if(coursesAccountDetails.size() < 1){
+            throw new BizException("没有可导出数据");
+        }
+        if(coursesAccountDetails.size() > 49999){
+            throw new BizException("数据超长,请联系管理员");
+        }
+        OutputStream outputStream = response.getOutputStream();
+        try {
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"学员编号", "姓名", "电话", "声部",
+                    "交易类型", "交易金额", "交易时间", "备注"}, new String[]{
+                    "userId", "username", "phone", "subjectName",
+                    "type.msg", "amount", "createTime", "comment"}, coursesAccountDetails);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attac:wq" +
+                    "hment;filename=classGroup-" + DateUtil.getDate(new Date()) + ".xls");
+            response.flushBuffer();
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+            outputStream.flush();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (outputStream != null) {
+                try {
+                    outputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
 
     @ApiOperation(value = "班级列表导出")
     @PostMapping("export/classGroup")

+ 0 - 1
mec-web/src/main/java/com/ym/mec/web/controller/SysUserCoursesAccountDetailController.java

@@ -24,7 +24,6 @@ public class SysUserCoursesAccountDetailController extends BaseController {
     @ApiOperation(value = "分页查询用户交易明细")
     @GetMapping("/queryPage")
     public Object queryPage(CashAccountDetail queryInfo) {
-        SysUser user = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if(sysUser == null){
             return failed("获取用户信息失败");