修复当期天数和当期摊销,金额精度问题
This commit is contained in:
@@ -6,10 +6,12 @@
|
||||
<select id="getUserCourseBuyInfo" resultType="map">
|
||||
select w.name,w.tel,w.ctitle,w.cctitle,if(w.startTime is null,'',w.startTime) startTime,if(w.endTime is null,'',w.endTime) endTime,w.totalDays
|
||||
,w.type,w.payType,w.payTime,w.orderSn,w.days,w.fee,w.remark,w.dayAmount,w.alreadyDay,w.currentDay
|
||||
,ROUND(alreadyDay*dayAmount,2) alreadyTanxiao,ROUND(currentDay*dayAmount,2) currentTanxiao,ROUND(fee-(alreadyDay*dayAmount)-(currentDay*dayAmount),2) surplusTanxiao
|
||||
,ROUND(alreadyDay*dayAmount,2) alreadyTanxiao
|
||||
,ROUND(if(alreadyDay+currentDay=totalDays,fee-ROUND(alreadyDay*dayAmount,2),currentDay*dayAmount),2) currentTanxiao
|
||||
,ROUND(fee-(alreadyDay*dayAmount)-ROUND(if(alreadyDay+currentDay=totalDays,fee-ROUND(alreadyDay*dayAmount,2),currentDay*dayAmount),2),2) surplusTanxiao
|
||||
from (
|
||||
select q.*
|
||||
,IF(days-alreadyDay=0,0,IF(beginDay=0,IF(startTime is NULL,0,IF(days-alreadyDay>=monthDays,if(DATE_FORMAT(startTime, '%Y-%m') = SUBSTR(#{date},1,7),DATEDIFF(#{date},startTime)+1,monthDays),days-alreadyDay)),IF(beginDay-alreadyTotalDay>monthDays,0,monthDays-(beginDay-alreadyTotalDay-1)))) currentDay
|
||||
,IF(days-alreadyDay=0,0,IF(beginDay=0,IF(startTime is NULL,0,IF(days-alreadyDay>=monthDays,if(DATE_FORMAT(startTime,'%Y-%m')=SUBSTR(#{date},1,7),DATEDIFF(#{date},startTime)+1,monthDays),if(DATE_FORMAT(startTime, '%Y-%m')=SUBSTR(#{date},1,7),DATEDIFF(#{date},startTime)+1,days-alreadyDay))),IF(beginDay-alreadyTotalDay>monthDays,0,monthDays-(beginDay-alreadyTotalDay-1)))) currentDay
|
||||
from (
|
||||
select s.*
|
||||
,IF(alreadyTotalDay>beginDay,IF(beginDay=0,IF(alreadyTotalDay < days,alreadyTotalDay,days),alreadyTotalDay-beginDay+1),0) alreadyDay
|
||||
@@ -36,12 +38,14 @@
|
||||
<select id="getUserCourseBuyInfoTotal" resultType="map">
|
||||
select ROUND(SUM(fee),2) fee,ROUND(SUM(alreadyTanxiao),2) alreadyTanxiao,ROUND(SUM(currentTanxiao),2) currentTanxiao,ROUND(SUM(surplusTanxiao),2) surplusTanxiao
|
||||
from (
|
||||
select w.name,w.tel,w.ctitle,w.cctitle,w.startTime,w.endTime,w.totalDays
|
||||
select w.name,w.tel,w.ctitle,w.cctitle,if(w.startTime is null,'',w.startTime) startTime,if(w.endTime is null,'',w.endTime) endTime,w.totalDays
|
||||
,w.type,w.payType,w.payTime,w.orderSn,w.days,w.fee,w.remark,w.dayAmount,w.alreadyDay,w.currentDay
|
||||
,ROUND(alreadyDay*dayAmount,2) alreadyTanxiao,ROUND(currentDay*dayAmount,2) currentTanxiao,ROUND(fee-(alreadyDay*dayAmount)-(currentDay*dayAmount),2) surplusTanxiao
|
||||
,ROUND(alreadyDay*dayAmount,2) alreadyTanxiao
|
||||
,ROUND(if(alreadyDay+currentDay=totalDays,fee-ROUND(alreadyDay*dayAmount,2),currentDay*dayAmount),2) currentTanxiao
|
||||
,ROUND(fee-(alreadyDay*dayAmount)-ROUND(if(alreadyDay+currentDay=totalDays,fee-ROUND(alreadyDay*dayAmount,2),currentDay*dayAmount),2),2) surplusTanxiao
|
||||
from (
|
||||
select q.*
|
||||
,IF(days-alreadyDay=0,0,IF(beginDay=0,IF(startTime is NULL,0,IF(days-alreadyDay>=monthDays,monthDays,days-alreadyDay)),IF(beginDay-alreadyTotalDay>monthDays,0,monthDays-(beginDay-alreadyTotalDay-1)))) currentDay
|
||||
,IF(days-alreadyDay=0,0,IF(beginDay=0,IF(startTime is NULL,0,IF(days-alreadyDay>=monthDays,if(DATE_FORMAT(startTime,'%Y-%m')=SUBSTR(#{date},1,7),DATEDIFF(#{date},startTime)+1,monthDays),if(DATE_FORMAT(startTime, '%Y-%m')=SUBSTR(#{date},1,7),DATEDIFF(#{date},startTime)+1,days-alreadyDay))),IF(beginDay-alreadyTotalDay>monthDays,0,monthDays-(beginDay-alreadyTotalDay-1)))) currentDay
|
||||
from (
|
||||
select s.*
|
||||
,IF(alreadyTotalDay>beginDay,IF(beginDay=0,IF(alreadyTotalDay < days,alreadyTotalDay,days),alreadyTotalDay-beginDay+1),0) alreadyDay
|
||||
@@ -61,7 +65,7 @@
|
||||
left join course c on c.id = ucb.course_id
|
||||
left join course_catalogue cc on cc.id = ucb.catalogue_id
|
||||
where ucbl.del_flag = 0 and DATE_FORMAT(ucbl.pay_time,'%Y-%m-%d') <= #{date}
|
||||
order by ucbl.pay_time
|
||||
order by ucb.id
|
||||
) t) s) q) w
|
||||
) e
|
||||
</select>
|
||||
|
||||
Reference in New Issue
Block a user