|
@@ -5,12 +5,11 @@ import com.microsvc.toolkit.common.webportal.exception.BizException;
|
|
import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
import com.yonge.cooleshow.biz.dal.queryInfo.SysMusicCompareRecordQueryInfo;
|
|
import com.yonge.cooleshow.biz.dal.queryInfo.SysMusicCompareRecordQueryInfo;
|
|
-import com.yonge.cooleshow.biz.dal.service.PaymentDivMemberRecordService;
|
|
|
|
-import com.yonge.cooleshow.biz.dal.service.SysMusicCompareRecordService;
|
|
|
|
-import com.yonge.cooleshow.biz.dal.service.TenantPersonStatService;
|
|
|
|
-import com.yonge.cooleshow.biz.dal.service.UserOrderService;
|
|
|
|
|
|
+import com.yonge.cooleshow.biz.dal.service.*;
|
|
|
|
+import com.yonge.cooleshow.biz.dal.wrapper.OssFileWrapper;
|
|
import com.yonge.cooleshow.biz.dal.wrapper.PaymentDivMemberRecordWrapper;
|
|
import com.yonge.cooleshow.biz.dal.wrapper.PaymentDivMemberRecordWrapper;
|
|
import com.yonge.cooleshow.biz.dal.wrapper.TenantPersonStatWrapper;
|
|
import com.yonge.cooleshow.biz.dal.wrapper.TenantPersonStatWrapper;
|
|
|
|
+import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherWrapper;
|
|
import com.yonge.cooleshow.common.controller.BaseController;
|
|
import com.yonge.cooleshow.common.controller.BaseController;
|
|
import com.yonge.cooleshow.common.entity.HttpResponseResult;
|
|
import com.yonge.cooleshow.common.entity.HttpResponseResult;
|
|
import com.yonge.toolset.base.page.PageInfo;
|
|
import com.yonge.toolset.base.page.PageInfo;
|
|
@@ -24,7 +23,11 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
|
+import java.util.Date;
|
|
|
|
+import java.util.List;
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Api(tags = "首页统计")
|
|
@Api(tags = "首页统计")
|
|
@RequestMapping("${app-config.url.tenant:}/index")
|
|
@RequestMapping("${app-config.url.tenant:}/index")
|
|
@@ -41,6 +44,8 @@ public class IndexController extends BaseController {
|
|
private PaymentDivMemberRecordService paymentDivMemberRecordService;
|
|
private PaymentDivMemberRecordService paymentDivMemberRecordService;
|
|
@Autowired
|
|
@Autowired
|
|
private UserOrderService userOrderService;
|
|
private UserOrderService userOrderService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private OssFileService ossFileService;
|
|
|
|
|
|
|
|
|
|
@ApiOperation("学员训练数据统计列表")
|
|
@ApiOperation("学员训练数据统计列表")
|
|
@@ -58,6 +63,39 @@ public class IndexController extends BaseController {
|
|
return succeed(sysMusicCompareRecordService.weChatStudentTrainData(queryInfo));
|
|
return succeed(sysMusicCompareRecordService.weChatStudentTrainData(queryInfo));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @ApiOperation("导出学员训练数据统计列表")
|
|
|
|
+ @PostMapping("exportStudentTrainData")
|
|
|
|
+ public HttpResponseResult<OssFileWrapper.ExportFile> exportStudentTrainData
|
|
|
|
+ (@RequestBody SysMusicCompareRecordQueryInfo.WechatCompareRecordQueryInfo queryInfo){
|
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
|
+ if (sysUser == null) {
|
|
|
|
+ return failed("获取用户信息失败");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtils.isEmpty(queryInfo.getStartTime())){
|
|
|
|
+ throw new BizException("请选择筛选时间");
|
|
|
|
+ }
|
|
|
|
+ queryInfo.setTenantId(sysUser.getTenantId());
|
|
|
|
+ List<SysMusicCompareRecordQueryInfo.WechatCompareRecordPageDto> rows = sysMusicCompareRecordService.weChatStudentTrainData(queryInfo).getRows();
|
|
|
|
+ if (rows.isEmpty()) {
|
|
|
|
+ throw new BizException("没有可导出数据");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<SysMusicCompareRecordQueryInfo.WechatCompareRecordExportDto> templates = rows.stream().map(next -> {
|
|
|
|
+ SysMusicCompareRecordQueryInfo.WechatCompareRecordExportDto template = new SysMusicCompareRecordQueryInfo.WechatCompareRecordExportDto();
|
|
|
|
+ template.setUsername(next.getUsername());
|
|
|
|
+ template.setSubjectName(next.getSubjectName());
|
|
|
|
+ template.setAvgTrainTimes(next.getAvgTrainTimes());
|
|
|
|
+ template.setTrainTimes(next.getTrainTimes());
|
|
|
|
+ template.setTrainDays(next.getTrainDays());
|
|
|
|
+ return template;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ String format = new SimpleDateFormat("yyyyMMddHHmm").format(new Date());
|
|
|
|
+ OssFileWrapper.ExportFile exportFile = ossFileService.uploadFile(templates,
|
|
|
|
+ TeacherWrapper.ExportTeacherTemplate.class, format, "练习统计列表");
|
|
|
|
+ return succeed(exportFile);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
@ApiOperation("首页学员训练数据统计列表、汇总")
|
|
@ApiOperation("首页学员训练数据统计列表、汇总")
|
|
@PostMapping("studentTrainData")
|
|
@PostMapping("studentTrainData")
|
|
@@ -125,6 +163,36 @@ public class IndexController extends BaseController {
|
|
return succeed(PageUtil.pageInfo(paymentDivMemberRecordService.queryIncome(QueryInfo.getPage(query), query)));
|
|
return succeed(PageUtil.pageInfo(paymentDivMemberRecordService.queryIncome(QueryInfo.getPage(query), query)));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @ApiOperation("导出收入明细列表")
|
|
|
|
+ @PostMapping("exportIncome")
|
|
|
|
+ public HttpResponseResult<OssFileWrapper.ExportFile>
|
|
|
|
+ exportIncome(@RequestBody PaymentDivMemberRecordWrapper.IndexIncomeQuery query){
|
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
|
+ if (sysUser == null) {
|
|
|
|
+ return failed("获取用户信息失败");
|
|
|
|
+ }
|
|
|
|
+ query.setTenantId(sysUser.getTenantId());
|
|
|
|
+ List<PaymentDivMemberRecordWrapper.IndexIncomeQueryDto> rows = paymentDivMemberRecordService.queryIncome(QueryInfo.getPage(query), query).getRecords();
|
|
|
|
+ if (rows.isEmpty()) {
|
|
|
|
+ throw new BizException("没有可导出数据");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<PaymentDivMemberRecordWrapper.IndexIncomeExportDto> templates = rows.stream().map(next -> {
|
|
|
|
+ PaymentDivMemberRecordWrapper.IndexIncomeExportDto template = new PaymentDivMemberRecordWrapper.IndexIncomeExportDto();
|
|
|
|
+ template.setName(next.getName());
|
|
|
|
+ template.setPhone(next.getPhone());
|
|
|
|
+ template.setAmount(next.getAmount());
|
|
|
|
+ template.setPayTime(next.getPayTime());
|
|
|
|
+ template.setOrderType(next.getOrderType().getName());
|
|
|
|
+ return template;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ String format = new SimpleDateFormat("yyyyMMddHHmm").format(new Date());
|
|
|
|
+ OssFileWrapper.ExportFile exportFile = ossFileService.uploadFile(templates,
|
|
|
|
+ TeacherWrapper.ExportTeacherTemplate.class, format, "练习统计列表");
|
|
|
|
+ return succeed(exportFile);
|
|
|
|
+ }
|
|
|
|
+
|
|
@ApiOperation("收入订单详情")
|
|
@ApiOperation("收入订单详情")
|
|
@PostMapping("getIncomeOrderDetail")
|
|
@PostMapping("getIncomeOrderDetail")
|
|
public HttpResponseResult<PaymentDivMemberRecordWrapper.OrderDetailDto> getIncomeOrderDetail(String orderNo){
|
|
public HttpResponseResult<PaymentDivMemberRecordWrapper.OrderDetailDto> getIncomeOrderDetail(String orderNo){
|