|
@@ -96,13 +96,13 @@ public class UserPositionServiceImpl implements IUserPositionService {
|
|
|
if("做多".equals(userPosition.getOrderDirection())){
|
|
|
// 现价小于等于委托价
|
|
|
if (buyOrderPrice.compareTo(userPosition.getBuyOrderPrice()) < 1){
|
|
|
- buyOrderPrice = buyOrderPrice.add(new BigDecimal(stock.getSpread()));
|
|
|
+ buyOrderPrice = buyOrderPrice.add(stock.getSpread());
|
|
|
toFulfill(userPosition, buyOrderPrice);
|
|
|
}
|
|
|
}else{
|
|
|
// 现价大于等于委托价
|
|
|
if (buyOrderPrice.compareTo(userPosition.getBuyOrderPrice()) > -1){
|
|
|
- buyOrderPrice = buyOrderPrice.subtract(new BigDecimal(stock.getSpread()));
|
|
|
+ buyOrderPrice = buyOrderPrice.subtract(stock.getSpread());
|
|
|
toFulfill(userPosition, buyOrderPrice);
|
|
|
}
|
|
|
}
|
|
@@ -254,6 +254,7 @@ public class UserPositionServiceImpl implements IUserPositionService {
|
|
|
userPositionInsert.setUserId(userPosition.getUserId());
|
|
|
userPositionInsert.setNickName(userPosition.getNickName());
|
|
|
userPositionInsert.setAgentId(userPosition.getAgentId());
|
|
|
+ userPositionInsert.setAgentName(userPosition.getAgentName());
|
|
|
userPositionInsert.setStockCode(userPosition.getStockCode());
|
|
|
userPositionInsert.setStockName(userPosition.getStockName());
|
|
|
userPositionInsert.setStockGid(userPosition.getStockGid());
|
|
@@ -584,7 +585,8 @@ public class UserPositionServiceImpl implements IUserPositionService {
|
|
|
// 手续费
|
|
|
BigDecimal position_freez = new BigDecimal(buyNum*stock.getTransFee());
|
|
|
//冻结保证金
|
|
|
- BigDecimal depositFreezeAmt = new BigDecimal(buyNum*stock.getDepositAmt());
|
|
|
+ BigDecimal depositFreezeAmt = buyOrderPrice.multiply(new BigDecimal(stock.getContractSize())).multiply(new BigDecimal(buyNum)).divide(new BigDecimal(stock.getSiteLever()),2,4);
|
|
|
+ log.info("冻结保证金 = "+depositFreezeAmt);
|
|
|
BigDecimal subtractDepositFreezeAmt = user_enable_amt.subtract(depositFreezeAmt).subtract(position_freez);
|
|
|
log.info("挂单冻结保证金="+depositFreezeAmt);
|
|
|
// depositFreezeAmt = depositFreezeAmt.add(position_freez);
|
|
@@ -610,6 +612,7 @@ public class UserPositionServiceImpl implements IUserPositionService {
|
|
|
userPosition.setUserId(user.getId());
|
|
|
userPosition.setNickName(user.getRealName());
|
|
|
userPosition.setAgentId(user.getAgentId());
|
|
|
+ userPosition.setAgentName(user.getAgentName());
|
|
|
userPosition.setStockCode(stock.getStockCode());
|
|
|
userPosition.setStockName(stock.getStockName());
|
|
|
userPosition.setStockGid(stock.getStockGid());
|
|
@@ -630,25 +633,10 @@ public class UserPositionServiceImpl implements IUserPositionService {
|
|
|
userPosition.setProfitAndLose(profit_and_lose);
|
|
|
userPosition.setOrderStayDays(0);
|
|
|
userPosition.setOrderStayFee(new BigDecimal("0"));
|
|
|
- userPosition.setOrderSpread(new BigDecimal(stock.getSpread()*buyNum));
|
|
|
+ userPosition.setOrderSpread(stock.getSpread().multiply(new BigDecimal(buyNum)));
|
|
|
userPosition.setDepositFreezeAmt(depositFreezeAmt);
|
|
|
userPosition.setEntryOrders(1);
|
|
|
int insertPositionCount = this.userPositionMapper.insertSelective(userPosition);
|
|
|
-// UserCapitalDetail userCapitalDetail = new UserCapitalDetail();
|
|
|
-// userCapitalDetail.setAgentId(user.getAgentId());
|
|
|
-// userCapitalDetail.setAgentName(user.getAgentName());
|
|
|
-// userCapitalDetail.setUserId(user.getId());
|
|
|
-// userCapitalDetail.setUserName(user.getRealName());
|
|
|
-// userCapitalDetail.setDeType(3);
|
|
|
-// userCapitalDetail.setIsRead(Integer.valueOf(0));
|
|
|
-// userCapitalDetail.setOrderNum(buyNum);
|
|
|
-// userCapitalDetail.setBuyFeeAmt(position_freez);
|
|
|
-// userCapitalDetail.setOrderSpread(new BigDecimal(0));
|
|
|
-// userCapitalDetail.setOrderStayFee(new BigDecimal(0));
|
|
|
-// userCapitalDetail.setAllProfit(new BigDecimal(0));
|
|
|
-// userCapitalDetail.setStockName(stock.getStockName());
|
|
|
-// userCapitalDetail.setStockCode(stock.getStockCode());
|
|
|
-// int insertSxfCount = this.userCashDetailMapper.insertUserCapitalDetail(userCapitalDetail);
|
|
|
if (insertPositionCount > 0) {
|
|
|
log.info("【用户交易挂单】保存持仓记录成功");
|
|
|
} else {
|
|
@@ -713,9 +701,9 @@ public class UserPositionServiceImpl implements IUserPositionService {
|
|
|
}
|
|
|
if(buyType == 0){
|
|
|
// 做多
|
|
|
- nowPrice = nowPrice.add(new BigDecimal(stock.getSpread()));
|
|
|
+ nowPrice = nowPrice.add(stock.getSpread());
|
|
|
}else{
|
|
|
- nowPrice = nowPrice.subtract(new BigDecimal(stock.getSpread()));
|
|
|
+ nowPrice = nowPrice.subtract(stock.getSpread());
|
|
|
}
|
|
|
log.info("用户 {} 下单,货币id = {} ,数量 = {} , 方向 = {}", user.getId(), stockId, buyNum, buyType);
|
|
|
// 用户可用金
|
|
@@ -765,8 +753,7 @@ public class UserPositionServiceImpl implements IUserPositionService {
|
|
|
userCapitalDetail.setIsRead(Integer.valueOf(0));
|
|
|
userCapitalDetail.setOrderNum(buyNum);
|
|
|
userCapitalDetail.setBuyFeeAmt(position_freez);
|
|
|
- BigDecimal spread = new BigDecimal(finalStock.getSpread());
|
|
|
- userCapitalDetail.setOrderSpread(spread.multiply(new BigDecimal(buyNum)));
|
|
|
+ userCapitalDetail.setOrderSpread(finalStock.getSpread().multiply(new BigDecimal(buyNum)));
|
|
|
userCapitalDetail.setOrderStayFee(new BigDecimal(0));
|
|
|
userCapitalDetail.setAllProfit(new BigDecimal(0));
|
|
|
userCapitalDetail.setStockName(finalStock.getStockName());
|
|
@@ -784,6 +771,7 @@ public class UserPositionServiceImpl implements IUserPositionService {
|
|
|
userPosition.setUserId(user.getId());
|
|
|
userPosition.setNickName(user.getRealName());
|
|
|
userPosition.setAgentId(user.getAgentId());
|
|
|
+ userPosition.setAgentName(user.getAgentName());
|
|
|
userPosition.setStockCode(stock.getStockCode());
|
|
|
userPosition.setStockName(stock.getStockName());
|
|
|
userPosition.setStockGid(stock.getStockGid());
|
|
@@ -810,8 +798,8 @@ public class UserPositionServiceImpl implements IUserPositionService {
|
|
|
// userPosition.setAllProfitAndLose(all_profit_and_lose);
|
|
|
userPosition.setOrderStayDays(0);
|
|
|
userPosition.setOrderStayFee(new BigDecimal("0"));
|
|
|
- userPosition.setOrderSpread(new BigDecimal(stock.getSpread() * buyNum));
|
|
|
- log.info("点差"+(stock.getSpread() * buyNum));
|
|
|
+ userPosition.setOrderSpread(stock.getSpread().multiply(new BigDecimal(buyNum)));
|
|
|
+ log.info("点差"+(stock.getSpread().multiply(new BigDecimal(buyNum))));
|
|
|
//冻结保证金
|
|
|
userPosition.setDepositFreezeAmt(depositFreezeAmt);
|
|
|
//是否挂单
|
|
@@ -1164,7 +1152,7 @@ public class UserPositionServiceImpl implements IUserPositionService {
|
|
|
return transNum;
|
|
|
}
|
|
|
|
|
|
- public ServerResponse listByAgent(Integer positionType, Integer state, Integer userId, Integer agentId, String positionSn, String beginTime, String endTime, HttpServletRequest request, int pageNum, int pageSize) {
|
|
|
+ public ServerResponse listByAgent(Integer positionType, Integer state, String nickName, Integer agentId, String positionSn, String beginTime, String endTime, HttpServletRequest request, int pageNum, int pageSize) {
|
|
|
AgentUser currentAgent = this.iAgentUserService.getCurrentAgent(request);
|
|
|
if (agentId != null) {
|
|
|
AgentUser agentUser = this.agentUserMapper.selectByPrimaryKey(agentId);
|
|
@@ -1202,7 +1190,7 @@ public class UserPositionServiceImpl implements IUserPositionService {
|
|
|
}
|
|
|
indexMap.put(indexInfo.getCnName(), indexInfo);
|
|
|
}
|
|
|
- List<UserPosition> userPositions = this.userPositionMapper.listByAgent(positionType, state, userId, searchId, positionSn, begin_time, end_time);
|
|
|
+ List<UserPosition> userPositions = this.userPositionMapper.listByAgent(positionType, state, nickName, searchId, positionSn, begin_time, end_time);
|
|
|
List<AgentPositionVO> agentPositionVOS = Lists.newArrayList();
|
|
|
for (UserPosition position : userPositions) {
|
|
|
AgentPositionVO agentPositionVO = assembleAgentPositionVO(position, state, indexMap);
|
|
@@ -1277,7 +1265,7 @@ public class UserPositionServiceImpl implements IUserPositionService {
|
|
|
return ServerResponse.createBySuccess(agentIncomeVO);
|
|
|
}
|
|
|
|
|
|
- public ServerResponse listByAdmin(Integer agentId, Integer positionType, Integer state, Integer userId, String positionSn, String beginTime, String endTime, int pageNum, int pageSize) {
|
|
|
+ public ServerResponse listByAdmin(Integer agentId, Integer positionType, Integer state, String nickName, String positionSn, String beginTime, String endTime, int pageNum, int pageSize) {
|
|
|
PageHelper.startPage(pageNum, pageSize);
|
|
|
Timestamp begin_time = null;
|
|
|
if (StringUtils.isNotBlank(beginTime)) {
|
|
@@ -1287,7 +1275,7 @@ public class UserPositionServiceImpl implements IUserPositionService {
|
|
|
if (StringUtils.isNotBlank(endTime)) {
|
|
|
end_time = DateTimeUtil.searchStrToTimestamp(endTime);
|
|
|
}
|
|
|
- List<UserPosition> userPositions = this.userPositionMapper.listByAgent(positionType, state, userId, agentId, positionSn, begin_time, end_time);
|
|
|
+ List<UserPosition> userPositions = this.userPositionMapper.listByAgent(positionType, state, nickName, agentId, positionSn, begin_time, end_time);
|
|
|
Map<String, IndexInfo> indexMap = new HashMap<>();
|
|
|
List<IndexInfo> indexInfoList = stockMapper.selectStockList();
|
|
|
for (IndexInfo indexInfo : indexInfoList) {
|
|
@@ -1371,6 +1359,7 @@ public class UserPositionServiceImpl implements IUserPositionService {
|
|
|
userPosition.setUserId(user.getId());
|
|
|
userPosition.setNickName(user.getRealName());
|
|
|
userPosition.setAgentId(user.getAgentId());
|
|
|
+ userPosition.setAgentName(user.getAgentName());
|
|
|
userPosition.setStockCode(stock.getStockCode());
|
|
|
userPosition.setStockName(stock.getStockName());
|
|
|
userPosition.setStockGid(stock.getStockGid());
|
|
@@ -1445,7 +1434,6 @@ public class UserPositionServiceImpl implements IUserPositionService {
|
|
|
public ServerResponse closingStayTask(UserPosition position, Integer stayDays) throws Exception {
|
|
|
log.info("=================closingStayTask====================");
|
|
|
log.info("修改留仓费,持仓id={},持仓天数={}", position.getId(), stayDays);
|
|
|
-
|
|
|
SiteSetting siteSetting = this.iSiteSettingService.getSiteSetting();
|
|
|
if (siteSetting == null) {
|
|
|
log.error("修改留仓费出错,网站设置表不存在");
|
|
@@ -1494,6 +1482,7 @@ public class UserPositionServiceImpl implements IUserPositionService {
|
|
|
adminPositionVO.setUserId(position.getUserId());
|
|
|
adminPositionVO.setNickName(position.getNickName());
|
|
|
adminPositionVO.setAgentId(position.getAgentId());
|
|
|
+ adminPositionVO.setAgentName(position.getAgentName());
|
|
|
adminPositionVO.setStockName(position.getStockName());
|
|
|
adminPositionVO.setStockCode(position.getStockCode());
|
|
|
adminPositionVO.setStockGid(position.getStockGid());
|