统计
This commit is contained in:
@@ -28,13 +28,15 @@ public class StatisticsController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IOrdersService ordersService;
|
private IOrdersService ordersService;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private ITCustomerApplyBuyService customerApplyBuyService;
|
||||||
|
@Autowired
|
||||||
private IUserVipLogService userVipLogService;
|
private IUserVipLogService userVipLogService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ITCustomerApplyCurriculumService customerApplyCurriculumService;
|
private ITCustomerApplyCurriculumService customerApplyCurriculumService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ITCustomerTaihuClassService customerTaihuClassService;
|
private ITCustomerTaihuClassService customerTaihuClassService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IUserCourseBuyLogService userCourseBuyLogService;
|
private IBuyOrderService buyOrderService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IFinanceOrderService financeOrderService;
|
private IFinanceOrderService financeOrderService;
|
||||||
|
|
||||||
@@ -61,15 +63,46 @@ public class StatisticsController {
|
|||||||
.selectSum(Orders::getFee,"fee"));
|
.selectSum(Orders::getFee,"fee"));
|
||||||
map.put("consumes",consumes);
|
map.put("consumes",consumes);
|
||||||
//总额
|
//总额
|
||||||
Map<String,Object> totalPoint = userService.getMap(new MPJLambdaWrapper<User>()
|
// Map<String,Object> totalPoint = userService.getMap(new MPJLambdaWrapper<User>()
|
||||||
.selectSum(User::getPoint,"totalPoint"));
|
// .selectSum(User::getPoint,"totalPoint"));
|
||||||
|
BigDecimal total = BigDecimal.ZERO;
|
||||||
|
List<Orders> totals = ordersService.list(new MPJLambdaWrapper<Orders>()
|
||||||
|
.eq(Orders::getUseFlag,1).eq(Orders::getType,0));
|
||||||
|
List<String> yljkTotalOids = new ArrayList<>();
|
||||||
|
for (Orders o:totals){
|
||||||
|
if (o.getSource()==0){//一路健康
|
||||||
|
yljkTotalOids.add(o.getOrderOldId());
|
||||||
|
}else {
|
||||||
|
total = total.add(o.getFee());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
List<TCustomerApplyBuy> applyBuyTotals = customerApplyBuyService.listByIds(yljkTotalOids);
|
||||||
|
for (TCustomerApplyBuy buy:applyBuyTotals){
|
||||||
|
total = total.add(BigDecimal.valueOf(buy.getConvertpoint()));
|
||||||
|
}
|
||||||
//指定月份以后的冲销差额
|
//指定月份以后的冲销差额
|
||||||
Map<String,Object> diff = ordersService.getMap(new MPJLambdaWrapper<Orders>()
|
BigDecimal in = BigDecimal.ZERO;
|
||||||
.eq(Orders::getUseFlag,1).and(t->t.eq(Orders::getType,0).or().eq(Orders::getPayType,1))
|
List<Orders> ins = ordersService.list(new MPJLambdaWrapper<Orders>()
|
||||||
|
.eq(Orders::getUseFlag,1).eq(Orders::getType,0)
|
||||||
|
.apply("DATE_FORMAT(t.order_time, '%Y-%m') > '"+params.get("year")+"-"+params.get("month")+"'"));
|
||||||
|
List<String> yljkOids = new ArrayList<>();
|
||||||
|
for (Orders o:ins){
|
||||||
|
if (o.getSource()==0){//一路健康
|
||||||
|
yljkOids.add(o.getOrderOldId());
|
||||||
|
}else {
|
||||||
|
in = in.add(o.getFee());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
List<TCustomerApplyBuy> applyBuys = customerApplyBuyService.listByIds(yljkOids);
|
||||||
|
for (TCustomerApplyBuy buy:applyBuys){
|
||||||
|
in = in.add(BigDecimal.valueOf(buy.getConvertpoint()));
|
||||||
|
}
|
||||||
|
Map<String,Object> out = ordersService.getMap(new MPJLambdaWrapper<Orders>()
|
||||||
|
.eq(Orders::getUseFlag,1).eq(Orders::getPayType,1)
|
||||||
.apply("DATE_FORMAT(t.order_time, '%Y-%m') > '"+params.get("year")+"-"+params.get("month")+"'")
|
.apply("DATE_FORMAT(t.order_time, '%Y-%m') > '"+params.get("year")+"-"+params.get("month")+"'")
|
||||||
.select("SUM(IF(type=0,fee,fee*-1)) diff"));
|
.select("SUM(fee) fee"));
|
||||||
//目前总额+差额
|
//目前总额+差额
|
||||||
map.put("surplus",new BigDecimal(totalPoint.get("totalPoint").toString()).subtract(diff==null?BigDecimal.ZERO:new BigDecimal(diff.get("diff").toString())));
|
map.put("surplus",total.subtract(in).add(new BigDecimal(out==null?"0":out.get("fee").toString())));
|
||||||
return R.ok().putData("map",map);
|
return R.ok().putData("map",map);
|
||||||
}
|
}
|
||||||
//天医币明细导出
|
//天医币明细导出
|
||||||
@@ -194,18 +227,32 @@ public class StatisticsController {
|
|||||||
BigDecimal already = BigDecimal.ZERO;
|
BigDecimal already = BigDecimal.ZERO;
|
||||||
BigDecimal nowTotal = BigDecimal.ZERO;
|
BigDecimal nowTotal = BigDecimal.ZERO;
|
||||||
BigDecimal notyet = BigDecimal.ZERO;
|
BigDecimal notyet = BigDecimal.ZERO;
|
||||||
|
|
||||||
List<String> taihuOrderIds = courseOrders.stream().filter(o -> o.getSource() == 0).map(Orders::getOrderOldId).collect(Collectors.toList());
|
List<String> taihuOrderIds = courseOrders.stream().filter(o -> o.getSource() == 0).map(Orders::getOrderOldId).collect(Collectors.toList());
|
||||||
// Map<String,Map<String,Object>> taihuClassMap = cus.listMaps(new MPJLambdaWrapper<TCustomerTaihuClass>()
|
|
||||||
// .leftJoin("t_customer_apply_curriculum t1 on t.description like concat('%',t1.curriculumID,'%')")
|
|
||||||
// .in("t1.oid", taihuOrderIds)
|
|
||||||
// .apply("t1.valid=1 and t1.status = '50'")
|
|
||||||
// .select("t1.oid,if(t1.point>0,t1.point,t1.money) fee,DATE_FORMAT(t.startDate, '%Y-%m-%d %H:%i:%s') startDate,t.studyDays"))
|
|
||||||
// .stream().collect(Collectors.toMap(m -> m.get("oid").toString(), m -> m));
|
|
||||||
Map<String,Map<String,Object>> taihuClassMap = customerApplyCurriculumService.listMaps(new MPJLambdaWrapper<TCustomerApplyCurriculum>()
|
Map<String,Map<String,Object>> taihuClassMap = customerApplyCurriculumService.listMaps(new MPJLambdaWrapper<TCustomerApplyCurriculum>()
|
||||||
.in("t.oid", taihuOrderIds)
|
.in("t.oid", taihuOrderIds)
|
||||||
.apply("t.valid=1 and t.status = '50'")
|
.apply("t.valid=1 and t.status = '50'")
|
||||||
.select("t.oid,if(t.point>0,t.point,t.money) fee,curriculumID"))
|
.select("t.oid,if(t.point>0,t.point,t.money) fee,curriculumID"))
|
||||||
.stream().collect(Collectors.toMap(m -> m.get("oid").toString(), m -> m));
|
.stream().collect(Collectors.toMap(m -> m.get("oid").toString(), m -> m));
|
||||||
|
|
||||||
|
List<String> wumenOrderIds = courseOrders.stream().filter(o -> o.getSource() == 1).map(Orders::getOrderOldId).collect(Collectors.toList());
|
||||||
|
List<Map<String,Object>> buyOrdersList = buyOrderService.listMaps(new MPJLambdaWrapper<BuyOrder>()
|
||||||
|
.leftJoin("user_course_buy_log t1 on (t1.order_sn = t.order_sn )")
|
||||||
|
.leftJoin("user_course_buy t2 on t2.id = t1.user_course_buy_id")
|
||||||
|
.in("t.order_id",wumenOrderIds)
|
||||||
|
.gt(BuyOrder::getRealMoney,0)
|
||||||
|
.select("t.order_id oid,t1.id ucblid,if(t1.fee is null,t.real_money,t1.fee) fee,t1.days,t1.begin_day," +
|
||||||
|
"DATE_FORMAT(t2.start_time, '%Y-%m-%d %H:%i:%s') start_time,DATE_FORMAT(t2.end_time, '%Y-%m-%d %H:%i:%s') end_time"));
|
||||||
|
Map<String,Object> buyOrdersMap = new HashMap<>();
|
||||||
|
for (Map<String,Object> m : buyOrdersList) {
|
||||||
|
List<Map<String,Object>> l = new ArrayList<>();
|
||||||
|
if(buyOrdersMap.get(m.get("oid").toString())!=null){
|
||||||
|
l = (List<Map<String, Object>>) buyOrdersMap.get(m.get("oid").toString());
|
||||||
|
}
|
||||||
|
l.add(m);
|
||||||
|
buyOrdersMap.put(m.get("oid").toString(),l);
|
||||||
|
}
|
||||||
|
|
||||||
for(Orders orders:courseOrders){
|
for(Orders orders:courseOrders){
|
||||||
List<Map<String,Object>> list = new ArrayList<>();
|
List<Map<String,Object>> list = new ArrayList<>();
|
||||||
if(orders.getSource()==0){
|
if(orders.getSource()==0){
|
||||||
@@ -231,26 +278,33 @@ public class StatisticsController {
|
|||||||
}
|
}
|
||||||
list.add(map);
|
list.add(map);
|
||||||
}else if (orders.getSource()==1){
|
}else if (orders.getSource()==1){
|
||||||
List<Map<String,Object>> userCourseBuyLogs = userCourseBuyLogService.listMaps(new MPJLambdaWrapper<UserCourseBuyLog>()
|
List<Map<String,Object>> l = (List<Map<String, Object>>) buyOrdersMap.get(orders.getOrderOldId());
|
||||||
.leftJoin("user_course_buy t1 on t1.id = t.id")
|
if (l!=null){
|
||||||
.leftJoin("buy_order t2 on t2.order_sn = t.order_sn ")
|
for (Map<String,Object> userCourseBuyLog : l) {
|
||||||
.apply("t2.order_id = "+orders.getOrderOldId())
|
Map<String,Object> map = new HashMap<>();
|
||||||
.isNotNull("t1.start_time")
|
map.put("fee",new BigDecimal(userCourseBuyLog.get("fee").toString()));
|
||||||
.select("t.fee,t.days,t.begin_day,t1.start_time,t1.end_time"));
|
if (userCourseBuyLog.get("ucblid")==null){
|
||||||
for (Map<String,Object> userCourseBuyLog : userCourseBuyLogs) {
|
map.put("startTime","2022-12-30");
|
||||||
Map<String,Object> map = new HashMap<>();
|
map.put("endTime","2022-12-30");
|
||||||
map.put("fee",new BigDecimal(userCourseBuyLog.get("fee").toString()));
|
}else {
|
||||||
if (Integer.parseInt(userCourseBuyLog.get("begin_day").toString())==0){
|
if (userCourseBuyLog.get("start_time")==null){
|
||||||
map.put("startTime",sdfday.format(userCourseBuyLog.get("start_time").toString()));
|
map.put("startTime",null);
|
||||||
map.put("endTime",sdfday.format(DateUtils.addDays(sdfday.parse(userCourseBuyLog.get("start_time").toString()),
|
map.put("endTime",null);
|
||||||
Integer.parseInt(userCourseBuyLog.get("days").toString())-1)));
|
}else {
|
||||||
}else {
|
if (Integer.parseInt(userCourseBuyLog.get("begin_day").toString())==0){
|
||||||
map.put("startTime",sdfday.format(DateUtils.addDays(sdfday.parse(userCourseBuyLog.get("start_time").toString()),
|
map.put("startTime",userCourseBuyLog.get("start_time").toString());
|
||||||
Integer.parseInt(userCourseBuyLog.get("days").toString()))));
|
map.put("endTime",sdfday.format(DateUtils.addDays(sdfday.parse(userCourseBuyLog.get("start_time").toString()),
|
||||||
map.put("endTime",sdfday.format(DateUtils.addDays(sdfday.parse(userCourseBuyLog.get("start_time").toString()),
|
Integer.parseInt(userCourseBuyLog.get("days").toString())-1)));
|
||||||
Integer.parseInt(userCourseBuyLog.get("days").toString())-1)));
|
}else {
|
||||||
|
map.put("startTime",sdfday.format(DateUtils.addDays(sdfday.parse(userCourseBuyLog.get("start_time").toString()),
|
||||||
|
Integer.parseInt(userCourseBuyLog.get("days").toString()))));
|
||||||
|
map.put("endTime",sdfday.format(DateUtils.addDays(sdfday.parse(userCourseBuyLog.get("start_time").toString()),
|
||||||
|
Integer.parseInt(userCourseBuyLog.get("days").toString())-1)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
list.add(map);
|
||||||
}
|
}
|
||||||
list.add(map);
|
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
FinanceOrder financeOrder = financeOrderService.getById(orders.getOrderOldId());
|
FinanceOrder financeOrder = financeOrderService.getById(orders.getOrderOldId());
|
||||||
|
|||||||
Reference in New Issue
Block a user