Commit 1100c623 by huluobin

资产负债

parent 8ab5e334
......@@ -50,28 +50,28 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<!-- <scope>test</scope>-->
</dependency>
<!--mp 增加Mybatis-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<scope>test</scope>
<!-- <scope>test</scope>-->
</dependency>
<!--fastJson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<scope>test</scope>
<!-- <scope>test</scope>-->
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>test</scope>
<!-- <scope>test</scope>-->
</dependency>
<dependency>
......
package com.bailuntec.api;
import com.bailuntec.api.bailuntec.cw.CwApiJackson2HttpMeesageConverter;
import feign.codec.Decoder;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.support.SpringDecoder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
......@@ -14,4 +20,11 @@ import org.springframework.context.annotation.Configuration;
@Configuration
@EnableFeignClients(basePackages = {"com.bailuntec.api"})
public class Config {
@Bean
public Decoder feignDecoder() {
CwApiJackson2HttpMeesageConverter cwApiJackson2HttpMeesageConverter = new CwApiJackson2HttpMeesageConverter();
ObjectFactory<HttpMessageConverters> objectFactory = () -> new HttpMessageConverters(cwApiJackson2HttpMeesageConverter);
return new SpringDecoder(objectFactory);
}
}
package com.bailuntec.api.bailuntec.cw;
import com.bailuntec.api.bailuntec.cw.response.GetCashiersResp;
import com.bailuntec.api.bailuntec.cw.response.GetHandleFeeTradeRecordsResp;
import com.bailuntec.api.bailuntec.cw.response.GetRepayPlanDetailsResp;
import com.bailuntec.api.bailuntec.cw.response.GetWithdrawDetailPagesResp;
import com.bailuntec.api.bailuntec.cw.request.PostApplyReq;
import com.bailuntec.api.bailuntec.cw.response.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
......@@ -19,7 +19,7 @@ import java.util.List;
* @author robbendev
* @since 2020/9/28 4:02 下午
*/
@FeignClient(name = "cw", url = "http://cw.bailuntec.com/", fallback = CwApi.CwApiFallback.class)
@FeignClient(name = "cw", url = "http://cw.bailuntec.com/")
public interface CwApi {
/**
......@@ -75,29 +75,45 @@ public interface CwApi {
@RequestParam("endDate") String endDate);
@Component
class CwApiFallback implements CwApi {
/**
* 推送费用单到财务系统
*
* @param req req
* @return resp
*/
@PostMapping(value = "/API/API/Apply", consumes = {MediaType.APPLICATION_JSON_VALUE}, produces = MediaType.APPLICATION_JSON_VALUE)
CwResult<String> postApply(@RequestBody PostApplyReq req);
@Override
public List<GetCashiersResp> getCashiers(Integer rows, String BeginModifyTime, String EndModifyTime, Integer Page) {
throw new RuntimeException("net work error");
}
@Override
public GetWithdrawDetailPagesResp getWithdrawDetailPages(Integer pagesize, String begintime, String endtime, Integer pageindex) {
throw new RuntimeException("net work error");
}
/**
* 获取公司主体借款余额
*
* @return 公司主体借款余额
*/
@GetMapping("/api/api/GetBorrows")
CwResult<List<BorrowBalanceDTO>> getBorrows();
@Override
public List<GetHandleFeeTradeRecordsResp> getHandleFeeTradeRecords(String beginTime, String endTime) {
throw new RuntimeException("net work error");
}
/**
* 获取银行账号余额
*
* @return 银行账号余额
*/
@GetMapping("/api/api/GetBankAccountSummary")
CwResult<List<BankAccountBalanceDTO>> getBankAccountSummary();
@Override
public List<GetRepayPlanDetailsResp> getRepayPlanDetails(String startDate, String endDate) {
throw new RuntimeException("net work error");
}
/**
* 获取平台提现在途资金信息
*
* @return 平台提现在途资金信息
*/
@GetMapping("/api/api/GetWithdrawOnWaySummary")
CwResult<List<WithdrawOnWayDTO>> getWithdrawOnWaySummary();
}
/**
* 获取PayPal帐号信息
*
* @return PayPal帐号信息
*/
@GetMapping("/api/api/GetPayPalBalance")
List<PayPalBalanceDTO> getPayPalBalance();
}
package com.bailuntec.api.bailuntec.cw;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/10/29 8:57 下午
*/
public class CwApiJackson2HttpMeesageConverter extends MappingJackson2HttpMessageConverter {
public CwApiJackson2HttpMeesageConverter() {
List<MediaType> mediaTypes = new ArrayList<>();
mediaTypes.add(MediaType.TEXT_PLAIN);
mediaTypes.add(MediaType.TEXT_HTML);
setSupportedMediaTypes(mediaTypes);
}
}
package com.bailuntec.api.bailuntec.cw.request;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ApplyMoneyDetail {
///申请金额的名称(类型)
private String Name;
///金额
private BigDecimal Money;
///兑换成人民币金额
private BigDecimal MoneyRmb;
///备注
private String Remark;
}
package com.bailuntec.api.bailuntec.cw.request;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/10/29 6:44 下午
*/
@Data
public class PostApplyReq {
// 申请标题(Title)不可为空;
private String Title;
// 公司主体(CompanyMainName)不可为空;
private String CompanyMainName;
// 审核回调地址(ApplyCallbackUrl)不可为空;
private String ApplyCallbackUrl;
// 出纳回调地址(CashierCallbackUrl)不可为空;
private String CashierCallbackUrl;
// 币种编号(UnitCode)不可为空;
private String UnitCode;
// 币种名称(UnitName)不可为空;
private String UnitName;
private String TradeObjectID;
//交易对象(TradeObjectID/TradeObjectName)不可为空;
private String TradeObjectName;
private String BankNameto;
private String BankCardto;
private String BankCardUserto;
private String SourceCode;
private String SourceTypeCode;
private String ApplyType;
//// 申请人(UserAcctID/UserAcctName)不存在;
private String UserAcctID;
private String UserAcctName;
private Integer PayDay;
private List<ApplyMoneyDetail> MoneyDetail;
private Date ExpectPayTime;
private String DetailKey;
private String TypeName;
private String ItemColumn;
private String CustomerCode;
}
package com.bailuntec.api.bailuntec.cw.response;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 银行账号余额
*/
@Data
public class BankAccountBalanceDTO {
@JsonProperty("CompanyValue")
@JSONField(name = "CompanyValue")
private Integer companyValue;
@JsonProperty("CompanyName")
@JSONField(name = "CompanyName")
private String companyName;
@JsonProperty("PayAccountID")
@JSONField(name = "PayAccountID")
private Integer payAccountId;
@JsonProperty("BankName")
@JSONField(name = "BankName")
private String bankName;
@JsonProperty("BankCard")
@JSONField(name = "BankCard")
private String bankCard;
@JsonProperty("BankCardUser")
@JSONField(name = "BankCardUser")
private String bankCardUser;
@JsonProperty("Balance")
@JSONField(name = "Balance")
private BigDecimal balanceRmb;
}
package com.bailuntec.api.bailuntec.cw.response;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 公司主体借款余额
*/
@Data
public class BorrowBalanceDTO {
@JSONField(name = "Company")
@JsonProperty("Company")
private String companyName;
@JSONField(name = "CompanyVal")
@JsonProperty("CompanyVal")
private Integer companyValue;
@JSONField(name = "BankCard")
@JsonProperty("BankCard")
private String bankCard;
@JSONField(name = "BankName")
@JsonProperty("BankName")
private String bankName;
@JSONField(name = "BankCardUser")
@JsonProperty("BankCardUser")
private String bankCardUser;
@JSONField(name = "Creditor")
@JsonProperty("Creditor")
private String creditor;
@JSONField(name = "NoRepayMoneyRMB")
@JsonProperty("NoRepayMoneyRMB")
private BigDecimal balanceRmb;
}
package com.bailuntec.api.bailuntec.cw.response;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/10/29 6:59 下午
*/
@Data
public class CwResult<T> {
@JsonProperty("Success")
private Boolean Success;
@JsonProperty("Message")
private String Message;
@JsonProperty("Data")
private T Data;
}
package com.bailuntec.api.bailuntec.cw.response;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class PayPalBalanceDTO {
@JSONField(name = "Account")
@JsonProperty("Account")
private String account;
@JSONField(name = "CurrencyCode")
@JsonProperty("CurrencyCode")
private String currencyCode;
@JSONField(name = "Balance")
@JsonProperty("Balance")
private BigDecimal balance;
}
package com.bailuntec.api.bailuntec.cw.response;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 平台提现在途
*/
@Data
public class WithdrawOnWayDTO {
@JSONField(name = "SalePlatformId")
@JsonProperty("SalePlatformId")
private Integer salePlatformId;
@JSONField(name = "SalePlatform")
@JsonProperty("SalePlatform")
private String salePlatform;
@JSONField(name = "PlatformId")
@JsonProperty("PlatformId")
private Integer platformId;
@JSONField(name = "Platform")
@JsonProperty("Platform")
private String platform;
@JSONField(name = "PayAccountId")
@JsonProperty("PayAccountId")
private Integer payAccountId;
@JSONField(name = "PayAccount")
@JsonProperty("PayAccount")
private String payAccount;
@JSONField(name = "BankName")
@JsonProperty("BankName")
private String bankName;
@JSONField(name = "BankCardUser")
@JsonProperty("BankCardUser")
private String bankCardUser;
@JSONField(name = "RMBMoney")
@JsonProperty("RMBMoney")
private BigDecimal amountRmb;
}
package com.bailuntec.api.bailuntec.oa;
import com.bailuntec.api.bailuntec.oa.response.ExchangeRate;
import com.bailuntec.api.bailuntec.oa.response.OaDepartmentResp;
import com.bailuntec.api.bailuntec.oa.response.OaUserResp;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
......@@ -39,4 +41,8 @@ public interface OaApi {
@GetMapping("/api/user/GetDeparmentList")
List<OaDepartmentResp> getDeparmentList();
@GetMapping("/api/ExchangeRate/GetExchangeRate")
String getExchangeRate(@RequestParam("fromCur") String fromCur,
@RequestParam("toCur") String toCur);
}
package com.bailuntec.api.bailuntec.oa.response;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Data;
import java.math.BigDecimal;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/10/29 5:57 下午
*/
@Data
public class ExchangeRate {
@JsonProperty("Rate")
private BigDecimal rate;
@JsonProperty("ToCurName")
private String toCurName;
}
......@@ -35,4 +35,5 @@ public class OaDepartmentResp {
private Integer sort;
private Integer departmentId;
}
......@@ -2,10 +2,18 @@ package com.bailuntec.api.bailuntec.cw;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.bailuntec.api.Application;
import com.bailuntec.api.bailuntec.cw.request.PostApplyReq;
import com.bailuntec.api.bailuntec.cw.response.CwResult;
import lombok.extern.slf4j.Slf4j;
import org.assertj.core.util.Lists;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import javax.annotation.Resource;
import java.util.Date;
/**
......@@ -16,8 +24,16 @@ import java.util.Date;
* @author robbendev
* @since 2020/10/8 1:38 下午
*/
@ActiveProfiles(value = "test")
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
class CwApiTest {
@Resource
CwApi cwApi;
@Test
void getCashiers() {
}
......@@ -36,6 +52,47 @@ class CwApiTest {
@Test
void postApply() {
PostApplyReq req = new PostApplyReq();
req.setTitle("test");
req.setCompanyMainName("test");
req.setApplyCallbackUrl("test");
req.setCashierCallbackUrl("test");
req.setUnitCode("code");
req.setUnitName("code");
req.setTradeObjectID("test");
req.setTradeObjectName("test");
req.setBankNameto("test");
req.setBankCardto("test");
req.setBankCardUserto("test");
req.setSourceCode("newCost");
req.setSourceTypeCode("newCostType");
req.setApplyType("");
req.setUserAcctID("-1");
req.setUserAcctName("");
req.setPayDay(0);
req.setExpectPayTime(new Date());
req.setMoneyDetail(Lists.newArrayList());
req.setDetailKey("test");
req.setTypeName("");
req.setItemColumn("");
req.setCustomerCode("");
CwResult<String> string = cwApi.postApply(req);
log.info(string.toString());
}
@Test
void testRgex() {
String string = "\"{dsadsads\"\"\"dda}\"";
log.info(string.replaceAll(" /^['|\"](.*)['|\"]$/", ""));
}
@Test
void testFastJson() {
String date = "/Date(-62135596800000)/";
......
package com.bailuntec.api.bailuntec.oa;
import com.bailuntec.api.Application;
import com.bailuntec.api.amazon.api.JsonUtilByFsJson;
import com.bailuntec.api.bailuntec.oa.response.ExchangeRate;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/10/29 6:04 下午
*/
@ActiveProfiles(value = "test")
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
class OaApiTest {
@Resource
OaApi oaApi;
@Test
void getAllUser() {
}
@Test
void getDeparmentList() {
}
@Test
void getExchangeRate() {
String exchangeRate = oaApi.getExchangeRate("CNY", "CNY");
log.info(exchangeRate);
ExchangeRate exchangeRate1 = JsonUtilByFsJson.jsonToBean(exchangeRate, ExchangeRate.class);
log.info(exchangeRate1.toString());
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment