diff --git a/web/src/main/java/com/ibeetl/jlw/web/AccountController.java b/web/src/main/java/com/ibeetl/jlw/web/AccountController.java index 14726488..babd0590 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/AccountController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/AccountController.java @@ -5,16 +5,26 @@ import com.ibeetl.admin.core.entity.CoreUser; import com.ibeetl.admin.core.service.CoreUserService; import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.jlw.entity.ResourcesApplication; +import com.ibeetl.jlw.entity.Student; +import com.ibeetl.jlw.entity.StudentAccountAssetAllocation; +import com.ibeetl.jlw.enums.AccountTypeEnum; import com.ibeetl.jlw.service.ResourcesApplicationService; +import com.ibeetl.jlw.service.StudentAccountAssetAllocationService; +import com.ibeetl.jlw.service.StudentService; import com.ibeetl.jlw.web.query.ResourcesApplicationQuery; +import com.ibeetl.jlw.web.query.StudentAccountAssetAllocationQuery; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import javafx.beans.binding.DoubleExpression; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.math.BigDecimal; +import java.sql.*; +import java.util.List; import java.util.Map; @Api(tags = "对外开放接口") @@ -26,6 +36,43 @@ public class AccountController { private ResourcesApplicationService resourcesApplicationService; @Autowired private CoreUserService userService; + @Autowired + private StudentService studentService; + @Autowired + private StudentAccountAssetAllocationService studentAccountAssetAllocationService; + + + private final static String URL = "jdbc:sqlserver://120.79.161.177:1433;databaseName=Test.Zhiyun_v2.0;trustServerCertificate=true;encrypt=true"; + private final static String USER = "sa"; + private final static String PASSWORD = "sztzjy@2017"; + + + // 打开数据库连接 + public static Connection openConn() throws SQLException { + try { + Connection connection = DriverManager.getConnection(URL, USER, PASSWORD); + if (connection != null) { + System.out.println("成功建立数据库连接"); + return connection; + } else { + throw new SQLException("无法建立数据库连接"); + } + } catch (SQLException e) { + throw new SQLException("无法建立数据库连接: " + e.getMessage(), e); + } + } + + // 关闭数据库连接 + public static void closeConn(Connection connection) { + if (connection != null) { + try { + connection.close(); + System.out.println("数据库连接已关闭"); + } catch (SQLException e) { + System.err.println("无法关闭数据库连接: " + e.getMessage()); + } + } + } @ApiOperation("查询应用信息") @GetMapping("findApplications") @@ -43,4 +90,94 @@ public class AccountController { Map objectMap = userService.getUserByUsernameAndPwd(username, password); return JsonResult.success(objectMap); } + + @ApiOperation("为学生账号创建基础资金表") + @PostMapping("createFund.json") + public void createFund() throws SQLException { + + List students = studentService.getValues(null); + if (students != null && students.size() > 0) { + for (Student student : students) { + Connection connection = openConn(); + String username = student.getStudentSn(); + StudentAccountAssetAllocationQuery query = new StudentAccountAssetAllocationQuery(); + query.setStudentId(student.getStudentId()); +// List studentAccountAssetAllocations = studentAccountAssetAllocationService.getValuesByQuery(query); +// if (studentAccountAssetAllocations != null && studentAccountAssetAllocations.size() > 0) { +// continue; +// } + String sql = "select top 100 EduUsers.UserName,EduAssetAllocation.* from EduUsers " + + "join EduAssetAllocation on EduUsers.Id = EduAssetAllocation.UserId where UserName = '" + username + "'"; + PreparedStatement preparedStatement = connection.prepareStatement(sql); + ResultSet resultSet = preparedStatement.executeQuery(); + while (resultSet.next()) { + StudentAccountAssetAllocationQuery allocationQuery = new StudentAccountAssetAllocationQuery(); + Integer applicationId = resultSet.getInt("ApplicationId"); + String applicationName = resultSet.getString("name"); + Double initialCapital = resultSet.getDouble("InitialCapital"); + Double AvailableFunds = resultSet.getDouble("AvailableFunds"); + String IntoAccount = resultSet.getString("IntoAccount"); + Double transferInAmount = resultSet.getDouble("TransferInAmount"); + Double InitialInvestmentCapital = resultSet.getDouble("InitialInvestmentCapital"); + Double TransferOutAmount = resultSet.getDouble("TransferOutAmount"); + Double Borrowed_Funds = resultSet.getDouble("Borrowed_Funds"); + Double InvestmentFunds = resultSet.getDouble("InvestmentFunds"); + Double Investment_value = resultSet.getDouble("Investment_value"); + Double Investment_income = resultSet.getDouble("Investment_income"); + Double Total_assets_of_subaccounts = resultSet.getDouble("Total_assets_of_subaccounts"); + Double Asset_Investment = resultSet.getDouble("Asset_Investment"); + Double Return_on_equity = resultSet.getDouble("Return_on_equity"); + allocationQuery.setStudentId(student.getStudentId()); + if (applicationId == -1) { + allocationQuery.setApplicationId(Long.valueOf(-1)); + allocationQuery.setName(AccountTypeEnum.BANK_ACCOUNT); + } else if (applicationId == -2) { + allocationQuery.setApplicationId(Long.valueOf(-2)); + allocationQuery.setName(AccountTypeEnum.CASH_ACCOUNT); + } else if (applicationId == 4) { + allocationQuery.setApplicationId(Long.valueOf(4)); + allocationQuery.setName(AccountTypeEnum.P2P_ACCOUNT); + }else if (applicationId==5){ + allocationQuery.setApplicationId(Long.valueOf(5)); + allocationQuery.setName(AccountTypeEnum.CROWDFUNDING_ACCOUNT); + }else if(applicationId==16){ + allocationQuery.setApplicationId(Long.valueOf(16)); + allocationQuery.setName(AccountTypeEnum.EQUITY_FUND_INVESTMENT_ACCOUNT); + }else if(applicationId==-16){ + allocationQuery.setApplicationId(Long.valueOf(-16)); + allocationQuery.setName(AccountTypeEnum.FUTURES_INVESTMENT_ACCOUNT); + }else if(applicationId==18){ + allocationQuery.setApplicationId(Long.valueOf(18)); + allocationQuery.setName(AccountTypeEnum.EQUITY_INVESTMENT_ACCOUNT); + }else if(applicationName.equals("外汇投资账户")){ + allocationQuery.setApplicationId(Long.valueOf(113)); + allocationQuery.setName(AccountTypeEnum.FOREX_INVESTMENT_ACCOUNT); + } + allocationQuery.setUniversitiesCollegesId(student.getOrgId()); + allocationQuery.setState(1); + allocationQuery.setInitialCapital(applicationName.equals("外汇投资账户")?new BigDecimal(1000000D):BigDecimal.valueOf(initialCapital)); + allocationQuery.setAvailableFunds(applicationName.equals("外汇投资账户")?new BigDecimal(1000000D):BigDecimal.valueOf(AvailableFunds)); + allocationQuery.setIntoAccount(applicationId==-1?null:AccountTypeEnum.BANK_ACCOUNT); + allocationQuery.setTransferinAmount(BigDecimal.valueOf(transferInAmount)); + allocationQuery.setTransferOutAmount(BigDecimal.valueOf(TransferOutAmount)); + allocationQuery.setInitialInvestmentCapital(applicationName.equals("外汇投资账户")?new BigDecimal(1000000D):BigDecimal.valueOf(InitialInvestmentCapital)); + allocationQuery.setBorrowedFunds(BigDecimal.valueOf(Borrowed_Funds)); + allocationQuery.setInvestmentFunds(BigDecimal.valueOf(InvestmentFunds)); + allocationQuery.setInvestmentValue(BigDecimal.valueOf(Investment_value)); + allocationQuery.setInvestmentIncome(BigDecimal.valueOf(Investment_income)); + allocationQuery.setTotalAssetsOfSubAccounts(BigDecimal.valueOf(Total_assets_of_subaccounts)); + allocationQuery.setAssetInvestment(BigDecimal.valueOf(Asset_Investment)); + allocationQuery.setReturnOnEquity(BigDecimal.valueOf(Return_on_equity)); + allocationQuery.setIsUpdate(1); + allocationQuery.setAmountFrozen(BigDecimal.ZERO); + allocationQuery.setUpdateVersion(Long.valueOf(-1)); + allocationQuery.setIsDel(1); + allocationQuery.setIsInstitution(1); + if(allocationQuery.getName()==null)continue; + studentAccountAssetAllocationService.add(allocationQuery); + } + closeConn(connection); + } + } + } }