调整天医币消耗
This commit is contained in:
@@ -151,7 +151,7 @@ public class StatisticsController {
|
||||
.disableSubLogicDel()
|
||||
.in(BuyOrder::getOrderId,wumenOrderIds)
|
||||
.select("t.order_id oid,if(t2.type=4,'中医学vip',if(t2.type=5,'针灸学vip',if(t2.type=6,'肿瘤学vip',if(t2.type=7,'国学vip',if(t2.type=8,'心理学vip',if(t2.type=9,'中西汇通vip','其他')))))) vipType," +
|
||||
"t1.fee,DATE_FORMAT(t1.start_time, '%Y-%m-%d') startTime,DATE_FORMAT(t1.end_time, '%Y-%m-%d') endTime"));
|
||||
"t1.price fee,DATE_FORMAT(t1.start_time, '%Y-%m-%d') startTime,DATE_FORMAT(t1.end_time, '%Y-%m-%d') endTime"));
|
||||
Map<String,Object> buyOrdersMap = new HashMap<>();
|
||||
for (Map<String,Object> m : buyOrders) {
|
||||
List<Map<String,Object>> l = new ArrayList<>();
|
||||
@@ -204,13 +204,15 @@ public class StatisticsController {
|
||||
if (startTime.equals(endTime)){
|
||||
if (map.get("orderTime").toString().contains(month)){
|
||||
map.put("now",fee);
|
||||
} else if (sdfmonth.parse(startTime).getTime()<sdfmonth.parse(month).getTime()) {
|
||||
map.put("already",fee);
|
||||
}
|
||||
//摊销完成
|
||||
}else if (sdfmonth.parse(day).getTime()>sdfmonth.parse(endTime).getTime()){
|
||||
map.put("already",fee);
|
||||
//未开始摊销
|
||||
}else if (sdfday.parse(day).getTime()<sdfday.parse(startTime).getTime()){
|
||||
if (sdfmonth.parse(map.get("orderTime").toString()).getTime()<sdfmonth.parse(month).getTime()){
|
||||
if (sdfmonth.parse(map.get("orderTime").toString()).getTime()<=sdfmonth.parse(month).getTime()){
|
||||
map.put("notyet",fee);
|
||||
}
|
||||
//摊销中
|
||||
@@ -306,13 +308,13 @@ public class StatisticsController {
|
||||
BigDecimal already = BigDecimal.ZERO;
|
||||
BigDecimal nowTotal = BigDecimal.ZERO;
|
||||
BigDecimal notyet = BigDecimal.ZERO;
|
||||
//吴门医述订单课程
|
||||
//吴门医述订单
|
||||
List<String> wumenOrderIds = vipOrders.stream().filter(o -> o.getSource() == 1).map(Orders::getOrderOldId).collect(Collectors.toList());
|
||||
List<Map<String,Object>> buyOrders = buyOrderService.listMaps(new MPJLambdaWrapper<BuyOrder>()
|
||||
.leftJoin(UserVipLog.class,UserVipLog::getOrderSn,BuyOrder::getOrderSn)
|
||||
.disableSubLogicDel()
|
||||
.in(BuyOrder::getOrderId,wumenOrderIds)
|
||||
.select("t.order_id oid,fee,DATE_FORMAT(start_time, '%Y-%m-%d %H:%i:%s') startTime,DATE_FORMAT(end_time, '%Y-%m-%d %H:%i:%s') endTime"));
|
||||
.select("t.order_id oid,t1.price fee,DATE_FORMAT(start_time, '%Y-%m-%d %H:%i:%s') startTime,DATE_FORMAT(end_time, '%Y-%m-%d %H:%i:%s') endTime"));
|
||||
Map<String,Object> buyOrdersMap = new HashMap<>();
|
||||
for (Map<String,Object> m : buyOrders) {
|
||||
List<Map<String,Object>> l = new ArrayList<>();
|
||||
@@ -336,8 +338,8 @@ public class StatisticsController {
|
||||
}else {
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
map.put("fee",orders.getFee());
|
||||
map.put("startTime",null);
|
||||
map.put("endTime",null);
|
||||
map.put("startTime",sdfday.format(orders.getOrderTime()));
|
||||
map.put("endTime",sdfday.format(orders.getOrderTime()));
|
||||
list.add(map);
|
||||
}
|
||||
}
|
||||
@@ -353,16 +355,18 @@ public class StatisticsController {
|
||||
BigDecimal fee = (BigDecimal) map.get("fee");
|
||||
String startTime = (String) map.get("startTime")==null?"":map.get("startTime").toString();
|
||||
String endTime = (String) map.get("endTime")==null?"":map.get("endTime").toString();
|
||||
if (StringUtils.isEmpty(startTime)){
|
||||
if (sdfmonth.format(orders.getOrderTime()).equals(month)){
|
||||
if (startTime.equals(endTime)){
|
||||
if (sdfmonth.format(orders.getOrderTime()).contains(month)){
|
||||
nowTotal = nowTotal.add(fee);
|
||||
} else if (sdfmonth.parse(startTime).getTime()<sdfmonth.parse(month).getTime()) {
|
||||
already = already.add(fee);
|
||||
}
|
||||
//摊销完成
|
||||
}else if (sdfmonth.parse(day).getTime()>sdfmonth.parse(endTime).getTime()){
|
||||
already = already.add(fee);
|
||||
//未开始摊销
|
||||
}else if (sdfday.parse(day).getTime()<sdfday.parse(startTime).getTime()){
|
||||
if (orders.getOrderTime().getTime()<sdfmonth.parse(month).getTime()){
|
||||
if (sdfmonth.parse(sdfmonth.format(orders.getOrderTime())).getTime()<=sdfmonth.parse(month).getTime()){
|
||||
notyet = notyet.add(fee);
|
||||
}
|
||||
//摊销中
|
||||
@@ -436,7 +440,7 @@ public class StatisticsController {
|
||||
.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') startTime"));
|
||||
"DATE_FORMAT(t2.start_time, '%Y-%m-%d %H:%i:%s') startTime,t.order_sn"));
|
||||
Map<String,Object> buyOrdersMap = new HashMap<>();
|
||||
for (Map<String,Object> m : buyOrdersList) {
|
||||
List<Map<String,Object>> l = new ArrayList<>();
|
||||
@@ -471,11 +475,21 @@ public class StatisticsController {
|
||||
result.add(res);
|
||||
}else if(courseOrder.get("source").equals("吴门医述")){
|
||||
List<Map<String,Object>> l = (List<Map<String, Object>>) buyOrdersMap.get(courseOrder.get("orderOldId"));
|
||||
Map<String,Object> res = new HashMap<>();
|
||||
if (l!=null){
|
||||
for (Map<String,Object> m : l) {
|
||||
for (int i=0;i<l.size();i++) {
|
||||
Map<String,Object> res = new HashMap<>();
|
||||
Map<String,Object> m = l.get(i);
|
||||
if (m.get("ucblid")!=null){
|
||||
res.put("fee",m.get("fee"));
|
||||
if (new BigDecimal(m.get("fee").toString()).compareTo(BigDecimal.ZERO)>0){
|
||||
res.put("fee",m.get("fee"));
|
||||
}else {
|
||||
BigDecimal one = new BigDecimal(courseOrder.get("realMoney").toString()).divide(new BigDecimal(l.size()),2,BigDecimal.ROUND_HALF_UP);
|
||||
if (i==l.size()-1){
|
||||
res.put("fee",new BigDecimal(courseOrder.get("realMoney").toString()).subtract(one.multiply(new BigDecimal(l.size()-1))));
|
||||
}else {
|
||||
res.put("fee",one);
|
||||
}
|
||||
}
|
||||
if (m.get("startTime")==null){
|
||||
res.put("startTime",null);
|
||||
res.put("endTime",null);
|
||||
@@ -500,6 +514,7 @@ public class StatisticsController {
|
||||
result.add(res);
|
||||
}
|
||||
}else {
|
||||
Map<String,Object> res = new HashMap<>();
|
||||
res.put("fee",courseOrder.get("realMoney"));
|
||||
res.put("startTime",orderTime);
|
||||
res.put("endTime",orderTime);
|
||||
@@ -525,6 +540,13 @@ public class StatisticsController {
|
||||
if (sdfmonth.parse(map.get("orderTime").toString()).getTime()<=sdfmonth.parse(month).getTime()){
|
||||
map.put("notyet",fee);
|
||||
}
|
||||
}else if (startTime.equals(endTime)){
|
||||
if (startTime.contains(month)){
|
||||
map.put("now",fee);
|
||||
} else if (sdfmonth.parse(startTime).getTime()<sdfmonth.parse(month).getTime()) {
|
||||
map.put("already",fee);
|
||||
}
|
||||
//摊销中
|
||||
}else if (sdfmonth.parse(day).getTime()>sdfmonth.parse(endTime).getTime()){
|
||||
map.put("already",fee);
|
||||
//未开始摊销
|
||||
@@ -532,15 +554,6 @@ public class StatisticsController {
|
||||
if (sdfmonth.parse(map.get("orderTime").toString()).getTime()<=sdfmonth.parse(month).getTime()){
|
||||
map.put("notyet",fee);
|
||||
}
|
||||
}else if (startTime.equals(endTime)){
|
||||
if (startTime.contains(month)){
|
||||
map.put("now",fee);
|
||||
} else if (sdfmonth.parse(startTime).getTime()<sdfmonth.parse(month).getTime()) {
|
||||
map.put("already",fee);
|
||||
}else {
|
||||
map.put("notyet",fee);
|
||||
}
|
||||
//摊销中
|
||||
}else {
|
||||
//总天数
|
||||
int totalDays = Math.toIntExact((sdfday.parse(endTime).getTime() - sdfday.parse(startTime).getTime()) / 1000 / 60 / 60 / 24)+1;
|
||||
@@ -689,11 +702,21 @@ public class StatisticsController {
|
||||
result.add(res);
|
||||
}else if(courseOrder.get("source").equals("吴门医述")){
|
||||
List<Map<String,Object>> l = (List<Map<String, Object>>) buyOrdersMap.get(courseOrder.get("orderOldId"));
|
||||
Map<String,Object> res = new HashMap<>();
|
||||
if (l!=null){
|
||||
for (Map<String,Object> m : l) {
|
||||
for (int i=0;i<l.size();i++) {
|
||||
Map<String,Object> res = new HashMap<>();
|
||||
Map<String,Object> m = l.get(i);
|
||||
if (m.get("ucblid")!=null){
|
||||
res.put("fee",m.get("fee"));
|
||||
if (new BigDecimal(m.get("fee").toString()).compareTo(BigDecimal.ZERO)>0){
|
||||
res.put("fee",m.get("fee"));
|
||||
}else {
|
||||
BigDecimal one = new BigDecimal(courseOrder.get("realMoney").toString()).divide(new BigDecimal(l.size()),2,BigDecimal.ROUND_HALF_UP);
|
||||
if (i==l.size()-1){
|
||||
res.put("fee",new BigDecimal(courseOrder.get("realMoney").toString()).subtract(one.multiply(new BigDecimal(l.size()-1))));
|
||||
}else {
|
||||
res.put("fee",one);
|
||||
}
|
||||
}
|
||||
if (m.get("startTime")==null){
|
||||
res.put("startTime",null);
|
||||
res.put("endTime",null);
|
||||
@@ -718,6 +741,7 @@ public class StatisticsController {
|
||||
result.add(res);
|
||||
}
|
||||
}else {
|
||||
Map<String,Object> res = new HashMap<>();
|
||||
res.put("fee",courseOrder.get("realMoney"));
|
||||
res.put("startTime",orderTime);
|
||||
res.put("endTime",orderTime);
|
||||
@@ -740,22 +764,18 @@ public class StatisticsController {
|
||||
if (sdfmonth.parse(map.get("orderTime").toString()).getTime()<=sdfmonth.parse(month).getTime()){
|
||||
notyet = notyet.add(fee);
|
||||
}
|
||||
}else if (sdfmonth.parse(day).getTime()>sdfmonth.parse(endTime).getTime()){
|
||||
already = already.add(fee);
|
||||
//未开始摊销
|
||||
}else if (sdfday.parse(day).getTime()<sdfday.parse(startTime).getTime()){
|
||||
if (sdfmonth.parse(map.get("orderTime").toString()).getTime()<=sdfmonth.parse(month).getTime()){
|
||||
notyet = notyet.add(fee);
|
||||
}
|
||||
}else if (startTime.equals(endTime)){
|
||||
if (startTime.contains(month)){
|
||||
nowTotal = nowTotal.add(fee);
|
||||
} else if (sdfmonth.parse(startTime).getTime()<sdfmonth.parse(month).getTime()) {
|
||||
already = already.add(fee);
|
||||
}else {
|
||||
}
|
||||
}else if (sdfmonth.parse(day).getTime()>sdfmonth.parse(endTime).getTime()){
|
||||
already = already.add(fee);
|
||||
}else if (sdfday.parse(day).getTime()<sdfday.parse(startTime).getTime()){
|
||||
if (sdfmonth.parse(map.get("orderTime").toString()).getTime()<=sdfmonth.parse(month).getTime()){
|
||||
notyet = notyet.add(fee);
|
||||
}
|
||||
//摊销中
|
||||
}else {
|
||||
//总天数
|
||||
int totalDays = Math.toIntExact((sdfday.parse(endTime).getTime() - sdfday.parse(startTime).getTime()) / 1000 / 60 / 60 / 24)+1;
|
||||
|
||||
@@ -59,7 +59,7 @@ public class FinanceOrder implements Serializable {
|
||||
private String orderSn;
|
||||
|
||||
/**
|
||||
* 来源
|
||||
* 来源 0一路健康1吴门医述2手动添加
|
||||
*/
|
||||
private String come;
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.zmzm.finance.util;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.*;
|
||||
import java.util.UUID;
|
||||
|
||||
public class DataUtil {
|
||||
|
||||
@@ -11,6 +12,68 @@ public class DataUtil {
|
||||
// goods();
|
||||
// course();
|
||||
// mtRegister();
|
||||
// transVip();
|
||||
}
|
||||
|
||||
public static void transVip(){
|
||||
try {
|
||||
Connection fzdsConn = DriverManager.getConnection(
|
||||
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book?rewriteBatchedStatements=true&serverTimezone=Asia/Shanghai",
|
||||
"nuttyreading", "Wu751019!");
|
||||
Connection financeConn = DriverManager.getConnection(
|
||||
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/finance?rewriteBatchedStatements=true",
|
||||
"nuttyreading", "Wu751019!");
|
||||
PreparedStatement transactionDetailStatement = financeConn.prepareStatement(
|
||||
"INSERT ignore INTO finance_order (come,order_type,order_sn,tel,product_name,order_money,real_money,start_time," +
|
||||
"end_time,create_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",PreparedStatement.RETURN_GENERATED_KEYS);
|
||||
PreparedStatement ordersStatement = financeConn.prepareStatement(
|
||||
"INSERT ignore INTO orders (source,order_sn,order_old_id,tel,fee,type,order_time,pay_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
|
||||
PreparedStatement statement = fzdsConn.prepareStatement("select uvl.*,IF(u.tel is NULL,u.email,u.tel) tel," +
|
||||
"IF(uvl.pay_time is NULL,uvl.start_time,uvl.pay_time) startTime," +
|
||||
"if(uv.type='4','中医学vip',if(uv.type='5','针灸学vip',if(uv.type='6','肿瘤学vip',if(uv.type='7','国学vip'," +
|
||||
"if(uv.type='8','心理学vip','中西汇通vip'))))) vipType " +
|
||||
"from user_vip_log uvl " +
|
||||
"left join user_vip uv on uv.id = uvl.user_vip_id " +
|
||||
"left join user u on u.id = uvl.user_id " +
|
||||
"where uvl.type = 'master' and uvl.pay_type = '天医币' and price > 0 ");
|
||||
ResultSet resultSet = statement.executeQuery();
|
||||
int i=0;
|
||||
while(resultSet.next()){
|
||||
i++;
|
||||
System.out.println("" + i);
|
||||
String orderSn = UUID.randomUUID().toString().replace("-","");
|
||||
transactionDetailStatement.setInt(1,2);
|
||||
transactionDetailStatement.setInt(2,1);
|
||||
transactionDetailStatement.setString(3,orderSn);
|
||||
transactionDetailStatement.setString(4,resultSet.getString("tel"));
|
||||
transactionDetailStatement.setString(5,resultSet.getString("vipType"));
|
||||
transactionDetailStatement.setBigDecimal(6,resultSet.getBigDecimal("price"));
|
||||
transactionDetailStatement.setBigDecimal(7,resultSet.getBigDecimal("price"));
|
||||
transactionDetailStatement.setTimestamp(8,resultSet.getTimestamp("startTime"));
|
||||
transactionDetailStatement.setTimestamp(9,resultSet.getTimestamp("end_time"));
|
||||
transactionDetailStatement.setTimestamp(10,resultSet.getTimestamp("startTime"));
|
||||
transactionDetailStatement.execute();
|
||||
ResultSet rs = transactionDetailStatement.getGeneratedKeys();
|
||||
String id = "";
|
||||
while(rs.next()) {
|
||||
Object rsid = rs.getObject(1);
|
||||
id = rsid.toString();
|
||||
}
|
||||
ordersStatement.setInt(1,2);
|
||||
ordersStatement.setString(2,orderSn);
|
||||
ordersStatement.setString(3,id);
|
||||
ordersStatement.setString(4,resultSet.getString("tel"));
|
||||
ordersStatement.setBigDecimal(5,resultSet.getBigDecimal("price"));
|
||||
ordersStatement.setInt(6,1);
|
||||
ordersStatement.setTimestamp(7,resultSet.getTimestamp("startTime"));
|
||||
ordersStatement.setInt(8,1);
|
||||
ordersStatement.execute();
|
||||
}
|
||||
fzdsConn.close();
|
||||
financeConn.close();
|
||||
} catch (SQLException e) {
|
||||
System.out.println("Error: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static void mtRegister(){
|
||||
|
||||
Reference in New Issue
Block a user