修改部分功能

pull/1/head
xiaoCJ 2 years ago
parent 73d0ead566
commit b4b0747978

@ -269,6 +269,8 @@ public class TradingController {
member.setOpeningTrades(openingTrades++);//设置开仓次数
memberService.updateByPrimaryKeySelective(member);
// wainingService.compareMarginLevels(member.getMemberId(),member.getTrainingId());//更改可用保证金后 调用预警
wainingService.compareTransactionNumber(member.getMemberId(),member.getTrainingId()); //比较交易次数的方法
wainingService.compareMarginLevels(member.getMemberId(),member.getTrainingId());//更改可用保证金后 调用预警
}
//判断止损止赢 逻辑:如果方式为买 则止损低于买价 获利高于买价 / 如果方式为卖 则止损高于卖价 获利低于买价 (可以只传一个参数)

@ -1,7 +1,6 @@
package com.sztzjy.forex.trading_trading.controller;
import cn.hutool.core.util.IdUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sztzjy.forex.trading_trading.entity.*;
@ -11,10 +10,10 @@ import com.sztzjy.forex.trading_trading.util.ResultEntity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
@Api(tags = "预警页面")
@ -35,6 +34,8 @@ public class WarningController {
private TransactionNumberWarningMapper transactionNumberWarningMapper;
@Autowired
private TransactionNumberWarningRecordMapper transactionNumberWarningRecordMapper;
@Autowired
private MarginWarningRecordMapper marginWarningRecordMapper;
//保证金预警页面展示
@GetMapping("/getMarginWarning")
@ -79,16 +80,14 @@ public class WarningController {
@DeleteMapping("/deleteMarginWarningRecord")
@ApiOperation("保证金预警记录表删除")
public void deleteMarginWarningRecord(@RequestParam String id) {
marketWarningRecordMapper.deleteByPrimaryKey(id);
marginWarningRecordMapper.deleteByPrimaryKey(id);
}
//新增行情预警
@PostMapping("/addMarketWarning")
@ApiOperation("新增行情预警")
public void addMarketWarning(@ApiParam("行情预警对象") @RequestBody MarketWarning marketWarning,
@ApiParam("任务ID") @RequestParam String trainingId,
@ApiParam("姓名") @RequestParam String name) {
wainingService.addMarketWarning(marketWarning, trainingId, name);
public void addMarketWarning(@ApiParam("行情预警对象") @RequestBody MarketWarning marketWarning) {
wainingService.addMarketWarning(marketWarning);
}
//查询行情预警
@ -109,11 +108,16 @@ public class WarningController {
//查询行情预警记录
@GetMapping("/getMarketWarningRecord")
@ApiOperation("查询行情预警记录")
public ResultEntity<List<MarketWarningRecord>> getMarketWarningRecord(@ApiParam("姓名") @RequestParam String name,
@ApiParam("任务ID") @RequestParam String trainingId) {
public ResultEntity<PageInfo<MarketWarningRecord>> getMarketWarningRecord(@ApiParam("姓名") @RequestParam String name,
@ApiParam("任务ID") @RequestParam String trainingId,
@ApiParam("首页页码") @RequestParam Integer index,
@ApiParam("页面条数") @RequestParam Integer size) {
PageHelper.startPage(index, size);
MarketWarningRecordExample marketWarningRecordExample = new MarketWarningRecordExample();
marketWarningRecordExample.createCriteria().andNameEqualTo(name).andTariningidEqualTo(trainingId);
return new ResultEntity<>(marketWarningRecordMapper.selectByExample(marketWarningRecordExample));
List<MarketWarningRecord> marketWarningRecords = marketWarningRecordMapper.selectByExample(marketWarningRecordExample);
PageInfo<MarketWarningRecord> pageInfo = new PageInfo<>(marketWarningRecords);
return new ResultEntity<>(pageInfo);
}
//删除行情预警
@ -144,26 +148,43 @@ public class WarningController {
//新增持仓时长预警
@PostMapping("/addAlertHoldDuration")
@ApiOperation("新增持仓时长预警")
public void addAlertHoldDuration(@ApiParam("持仓时长预警对象") @RequestBody AlertHoldDuration alertHoldDuration) {
wainingService.addAlertHoldDuration(alertHoldDuration);
public String addAlertHoldDuration(@ApiParam("持仓时长预警对象") @RequestBody AlertHoldDuration alertHoldDuration) {
return wainingService.addAlertHoldDuration(alertHoldDuration);
}
//
// //删除持仓时长预警
// @DeleteMapping("/deleteAlertHoldDuration")
// @ApiOperation("删除持仓时长预警")
// public String deleteAlertHoldDuration(@ApiParam("交易品种") @RequestParam String symbol) {
// AlertHoldDurationExample alertHoldDurationExample = new AlertHoldDurationExample();
// alertHoldDurationExample.createCriteria().andSymbolEqualTo(symbol);
// alertHoldDurationMapper.deleteByExample(alertHoldDurationExample);
// return "删除成功";
// }
//删除持仓时长预警
@DeleteMapping("/deleteAlertHoldDuration")
@ApiOperation("删除持仓时长预警")
public void deleteAlertHoldDuration(@ApiParam("id") @RequestParam String id) {
public String deleteAlertHoldDuration(@ApiParam("id") @RequestParam String id) {
alertHoldDurationMapper.deleteByPrimaryKey(id);
return "删除成功";
}
//启用或关闭持仓时长预警
@PutMapping("/setAlertHoldDuration")
@ApiOperation("启用或关闭持仓时长预警")
public void setAlertHoldDuration(@ApiParam("0 停用 1 启用") @RequestParam Integer status,
@ApiParam("id") @RequestParam String id) {
AlertHoldDuration alertHoldDuration = alertHoldDurationMapper.selectByPrimaryKey(id);
@ApiParam("id") @RequestParam String symbol) {
AlertHoldDurationExample alertHoldDurationExample = new AlertHoldDurationExample();
alertHoldDurationExample.createCriteria().andSymbolEqualTo(symbol);
List<AlertHoldDuration> alertHoldDurations = alertHoldDurationMapper.selectByExample(alertHoldDurationExample);
for (AlertHoldDuration alertHoldDuration : alertHoldDurations) {
alertHoldDuration.setStatus(status);
alertHoldDurationMapper.updateByPrimaryKeySelective(alertHoldDuration);
}
}
//删除持仓时长预警记录表
@DeleteMapping("/deleteAlertHoldDurationRecord")
@ -176,23 +197,39 @@ public class WarningController {
//查询持仓时长预警记录表
@GetMapping("/getAlertHoldDurationRecord")
@ApiOperation("查询持仓时长预警记录表")
public ResultEntity<List<AlertHoldDurationRecord>> getAlertHoldDurationRecord(@ApiParam("memberId") @RequestParam String memberId,
@ApiParam("memberId") @RequestParam String trainingId) {
public ResultEntity<PageInfo<AlertHoldDurationRecord>> getAlertHoldDurationRecord(@ApiParam("memberId") @RequestParam String memberId,
@ApiParam("trainingId") @RequestParam String trainingId,
@ApiParam("首页页码") @RequestParam Integer index,
@ApiParam("页面条数") @RequestParam Integer size) {
PageHelper.startPage(index,size);
AlertHoldDurationRecordExample alertHoldDurationRecordExample = new AlertHoldDurationRecordExample();
alertHoldDurationRecordExample.createCriteria().andTariningidEqualTo(trainingId).andMamberidEqualTo(memberId);
alertHoldDurationRecordExample.createCriteria().andTrainingidEqualTo(trainingId).andMemberidEqualTo(memberId);
List<AlertHoldDurationRecord> alertHoldDurationRecords = alertHoldDurationRecordMapper.selectByExample(alertHoldDurationRecordExample);
return new ResultEntity<>(alertHoldDurationRecords);
// List<AlertHoldDurationRecord> resultAHDR = new ArrayList<>();
// for (AlertHoldDurationRecord alertHoldDurationRecord : alertHoldDurationRecords) {
// if (alertHoldDurationRecord.getWariningHoldDuration() != null && alertHoldDurationRecord.getWariningTime() != null)
// resultAHDR.add(alertHoldDurationRecord);
// }
PageInfo<AlertHoldDurationRecord>pageInfo = new PageInfo<>(alertHoldDurationRecords);
return new ResultEntity<>(pageInfo);
}
//查询持仓时长预警表
@GetMapping("/getAlertHoldDuration")
@ApiOperation("查询持仓时长预警表")
public ResultEntity<List<AlertHoldDuration>> getAlertHoldDuration(@ApiParam("memberId") @RequestParam String memberId,
@ApiParam("memberId") @RequestParam String trainingId) {
public ResultEntity<PageInfo<AlertHoldDuration>> getAlertHoldDuration(@ApiParam("memberId") @RequestParam String memberId,
@ApiParam("trainingId") @RequestParam String trainingId,
@ApiParam("首页页码") @RequestParam Integer index,
@ApiParam("页面条数") @RequestParam Integer size) {
PageHelper.startPage(index,size);
AlertHoldDurationExample alertHoldDurationExample = new AlertHoldDurationExample();
alertHoldDurationExample.createCriteria().andTrainingidEqualTo(trainingId).andMemberidEqualTo(memberId);
List<AlertHoldDuration> alertHoldDurations = alertHoldDurationMapper.selectByExample(alertHoldDurationExample);
return new ResultEntity<>(alertHoldDurations);
// for (AlertHoldDuration alertHoldDuration : alertHoldDurations) {
// return new ResultEntity<>(alertHoldDurationMapper.selectBySymbol(alertHoldDuration.getSymbol()));
// }
PageInfo<AlertHoldDuration> pageInfo = new PageInfo<>(alertHoldDurations);
return new ResultEntity<>(pageInfo);
}
//交易次数预警新增
@ -205,7 +242,7 @@ public class WarningController {
//交易次数预警删除
@DeleteMapping("/deleteTransactionNumberWarning")
@ApiOperation("删除持仓时长预警记录表数据")
@ApiOperation("交易次数预警删除")
public void deleteTransactionNumberWarning(@ApiParam("id") @RequestParam String id) {
transactionNumberWarningMapper.deleteByPrimaryKey(id);
}
@ -213,17 +250,21 @@ public class WarningController {
//交易次数预警查询
@GetMapping("/getTransactionNumberWarning")
@ApiOperation("交易次数预警查询")
public ResultEntity<List<TransactionNumberWarning>> getTransactionNumberWarning(@ApiParam("memberId") @RequestParam String memberId,
@ApiParam("memberId") @RequestParam String trainingId) {
public ResultEntity<PageInfo<TransactionNumberWarning>> getTransactionNumberWarning(@ApiParam("memberId") @RequestParam String memberId,
@ApiParam("memberId") @RequestParam String trainingId,
@ApiParam("首页页码") @RequestParam Integer index,
@ApiParam("页面条数") @RequestParam Integer size) {
PageHelper.startPage(index,size);
TransactionNumberWarningExample tnwr = new TransactionNumberWarningExample();
tnwr.createCriteria().andTrainingIdEqualTo(trainingId).andMemberIdEqualTo(memberId);
List<TransactionNumberWarning> tnwrs = transactionNumberWarningMapper.selectByExample(tnwr);
return new ResultEntity<>(tnwrs);
PageInfo<TransactionNumberWarning> pageInfo = new PageInfo(tnwrs);
return new ResultEntity<>(pageInfo);
}
//交易次数预警启用或关闭
@PutMapping("/setTransactionNumberWarning")
@ApiOperation("启用或关闭持仓时长预警")
@ApiOperation("交易次数预警启用或关闭")
public void setTransactionNumberWarning(@ApiParam("0 停用 1 启用") @RequestParam Integer status,
@ApiParam("id") @RequestParam String id) {
TransactionNumberWarning alertHoldDuration = transactionNumberWarningMapper.selectByPrimaryKey(id);
@ -235,18 +276,23 @@ public class WarningController {
//交易次数预警记录查询
@GetMapping("/getTransactionNumberWarningRecord")
@ApiOperation("交易次数预警记录查询")
public ResultEntity<List<TransactionNumberWarningRecord>> getTransactionNumberWarningRecord(@ApiParam("memberId") @RequestParam String memberId,
@ApiParam("memberId") @RequestParam String trainingId) {
public ResultEntity<PageInfo<TransactionNumberWarningRecord>> getTransactionNumberWarningRecord(@ApiParam("memberId") @RequestParam String memberId,
@ApiParam("memberId") @RequestParam String trainingId,
@ApiParam("首页页码") @RequestParam Integer index,
@ApiParam("页面条数") @RequestParam Integer size) {
PageHelper.startPage(index,size);
TransactionNumberWarningRecordExample tnwre = new TransactionNumberWarningRecordExample();
tnwre.createCriteria().andTrainingIdEqualTo(trainingId).andMemberIdEqualTo(memberId);
List<TransactionNumberWarningRecord> tnwrs = transactionNumberWarningRecordMapper.selectByExample(tnwre);
return new ResultEntity<>(tnwrs);
PageInfo<TransactionNumberWarningRecord> pageInfo = new PageInfo<>(tnwrs);
return new ResultEntity<>(pageInfo);
}
//交易次数预警记录删除
@DeleteMapping("/deleteTransactionNumberWarningRecord")
@ApiOperation("删除持仓时长预警记录表数据")
@ApiOperation("交易次数预警记录删除")
public void deleteTransactionNumberWarningRecord(@ApiParam("id") @RequestParam String id) {
transactionNumberWarningRecordMapper.deleteByPrimaryKey(id);
}
}

@ -8,7 +8,7 @@ public class AlertHoldDurationRecord {
* This field was generated by MyBatis Generator.
* This field corresponds to the database column sys_alert_hold_duration_record.id
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
private String id;
@ -17,7 +17,7 @@ public class AlertHoldDurationRecord {
* This field was generated by MyBatis Generator.
* This field corresponds to the database column sys_alert_hold_duration_record.durationID
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
private String durationid;
@ -26,34 +26,34 @@ public class AlertHoldDurationRecord {
* This field was generated by MyBatis Generator.
* This field corresponds to the database column sys_alert_hold_duration_record.stashId
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
private String stashid;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column sys_alert_hold_duration_record.mamberId
* This field corresponds to the database column sys_alert_hold_duration_record.memberId
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
private String mamberid;
private String memberid;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column sys_alert_hold_duration_record.tariningId
* This field corresponds to the database column sys_alert_hold_duration_record.trainingId
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
private String tariningid;
private String trainingid;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column sys_alert_hold_duration_record.name
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
private String name;
@ -62,7 +62,7 @@ public class AlertHoldDurationRecord {
* This field was generated by MyBatis Generator.
* This field corresponds to the database column sys_alert_hold_duration_record.symbol
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
private String symbol;
@ -71,7 +71,7 @@ public class AlertHoldDurationRecord {
* This field was generated by MyBatis Generator.
* This field corresponds to the database column sys_alert_hold_duration_record.direction
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
private String direction;
@ -80,7 +80,7 @@ public class AlertHoldDurationRecord {
* This field was generated by MyBatis Generator.
* This field corresponds to the database column sys_alert_hold_duration_record.trading_hour
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
private Date tradingHour;
@ -89,7 +89,7 @@ public class AlertHoldDurationRecord {
* This field was generated by MyBatis Generator.
* This field corresponds to the database column sys_alert_hold_duration_record.hold_duration
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
private String holdDuration;
@ -98,7 +98,7 @@ public class AlertHoldDurationRecord {
* This field was generated by MyBatis Generator.
* This field corresponds to the database column sys_alert_hold_duration_record.warining_hold_duration
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
private String wariningHoldDuration;
@ -107,7 +107,7 @@ public class AlertHoldDurationRecord {
* This field was generated by MyBatis Generator.
* This field corresponds to the database column sys_alert_hold_duration_record.warining_time
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
private Date wariningTime;
@ -117,7 +117,7 @@ public class AlertHoldDurationRecord {
*
* @return the value of sys_alert_hold_duration_record.id
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public String getId() {
return id;
@ -129,7 +129,7 @@ public class AlertHoldDurationRecord {
*
* @param id the value for sys_alert_hold_duration_record.id
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public void setId(String id) {
this.id = id == null ? null : id.trim();
@ -141,7 +141,7 @@ public class AlertHoldDurationRecord {
*
* @return the value of sys_alert_hold_duration_record.durationID
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public String getDurationid() {
return durationid;
@ -153,7 +153,7 @@ public class AlertHoldDurationRecord {
*
* @param durationid the value for sys_alert_hold_duration_record.durationID
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public void setDurationid(String durationid) {
this.durationid = durationid == null ? null : durationid.trim();
@ -165,7 +165,7 @@ public class AlertHoldDurationRecord {
*
* @return the value of sys_alert_hold_duration_record.stashId
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public String getStashid() {
return stashid;
@ -177,7 +177,7 @@ public class AlertHoldDurationRecord {
*
* @param stashid the value for sys_alert_hold_duration_record.stashId
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public void setStashid(String stashid) {
this.stashid = stashid == null ? null : stashid.trim();
@ -185,50 +185,50 @@ public class AlertHoldDurationRecord {
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column sys_alert_hold_duration_record.mamberId
* This method returns the value of the database column sys_alert_hold_duration_record.memberId
*
* @return the value of sys_alert_hold_duration_record.mamberId
* @return the value of sys_alert_hold_duration_record.memberId
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public String getMamberid() {
return mamberid;
public String getMemberid() {
return memberid;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column sys_alert_hold_duration_record.mamberId
* This method sets the value of the database column sys_alert_hold_duration_record.memberId
*
* @param mamberid the value for sys_alert_hold_duration_record.mamberId
* @param memberid the value for sys_alert_hold_duration_record.memberId
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public void setMamberid(String mamberid) {
this.mamberid = mamberid == null ? null : mamberid.trim();
public void setMemberid(String memberid) {
this.memberid = memberid == null ? null : memberid.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column sys_alert_hold_duration_record.tariningId
* This method returns the value of the database column sys_alert_hold_duration_record.trainingId
*
* @return the value of sys_alert_hold_duration_record.tariningId
* @return the value of sys_alert_hold_duration_record.trainingId
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public String getTariningid() {
return tariningid;
public String getTrainingid() {
return trainingid;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column sys_alert_hold_duration_record.tariningId
* This method sets the value of the database column sys_alert_hold_duration_record.trainingId
*
* @param tariningid the value for sys_alert_hold_duration_record.tariningId
* @param trainingid the value for sys_alert_hold_duration_record.trainingId
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public void setTariningid(String tariningid) {
this.tariningid = tariningid == null ? null : tariningid.trim();
public void setTrainingid(String trainingid) {
this.trainingid = trainingid == null ? null : trainingid.trim();
}
/**
@ -237,7 +237,7 @@ public class AlertHoldDurationRecord {
*
* @return the value of sys_alert_hold_duration_record.name
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public String getName() {
return name;
@ -249,7 +249,7 @@ public class AlertHoldDurationRecord {
*
* @param name the value for sys_alert_hold_duration_record.name
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public void setName(String name) {
this.name = name == null ? null : name.trim();
@ -261,7 +261,7 @@ public class AlertHoldDurationRecord {
*
* @return the value of sys_alert_hold_duration_record.symbol
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public String getSymbol() {
return symbol;
@ -273,7 +273,7 @@ public class AlertHoldDurationRecord {
*
* @param symbol the value for sys_alert_hold_duration_record.symbol
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public void setSymbol(String symbol) {
this.symbol = symbol == null ? null : symbol.trim();
@ -285,7 +285,7 @@ public class AlertHoldDurationRecord {
*
* @return the value of sys_alert_hold_duration_record.direction
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public String getDirection() {
return direction;
@ -297,7 +297,7 @@ public class AlertHoldDurationRecord {
*
* @param direction the value for sys_alert_hold_duration_record.direction
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public void setDirection(String direction) {
this.direction = direction == null ? null : direction.trim();
@ -309,7 +309,7 @@ public class AlertHoldDurationRecord {
*
* @return the value of sys_alert_hold_duration_record.trading_hour
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public Date getTradingHour() {
return tradingHour;
@ -321,7 +321,7 @@ public class AlertHoldDurationRecord {
*
* @param tradingHour the value for sys_alert_hold_duration_record.trading_hour
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public void setTradingHour(Date tradingHour) {
this.tradingHour = tradingHour;
@ -333,7 +333,7 @@ public class AlertHoldDurationRecord {
*
* @return the value of sys_alert_hold_duration_record.hold_duration
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public String getHoldDuration() {
return holdDuration;
@ -345,7 +345,7 @@ public class AlertHoldDurationRecord {
*
* @param holdDuration the value for sys_alert_hold_duration_record.hold_duration
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public void setHoldDuration(String holdDuration) {
this.holdDuration = holdDuration == null ? null : holdDuration.trim();
@ -357,7 +357,7 @@ public class AlertHoldDurationRecord {
*
* @return the value of sys_alert_hold_duration_record.warining_hold_duration
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public String getWariningHoldDuration() {
return wariningHoldDuration;
@ -369,7 +369,7 @@ public class AlertHoldDurationRecord {
*
* @param wariningHoldDuration the value for sys_alert_hold_duration_record.warining_hold_duration
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public void setWariningHoldDuration(String wariningHoldDuration) {
this.wariningHoldDuration = wariningHoldDuration == null ? null : wariningHoldDuration.trim();
@ -381,7 +381,7 @@ public class AlertHoldDurationRecord {
*
* @return the value of sys_alert_hold_duration_record.warining_time
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public Date getWariningTime() {
return wariningTime;
@ -393,7 +393,7 @@ public class AlertHoldDurationRecord {
*
* @param wariningTime the value for sys_alert_hold_duration_record.warining_time
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public void setWariningTime(Date wariningTime) {
this.wariningTime = wariningTime;

@ -9,7 +9,7 @@ public class AlertHoldDurationRecordExample {
* This field was generated by MyBatis Generator.
* This field corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
protected String orderByClause;
@ -17,7 +17,7 @@ public class AlertHoldDurationRecordExample {
* This field was generated by MyBatis Generator.
* This field corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
protected boolean distinct;
@ -25,7 +25,7 @@ public class AlertHoldDurationRecordExample {
* This field was generated by MyBatis Generator.
* This field corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
protected List<Criteria> oredCriteria;
@ -33,7 +33,7 @@ public class AlertHoldDurationRecordExample {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public AlertHoldDurationRecordExample() {
oredCriteria = new ArrayList<>();
@ -43,7 +43,7 @@ public class AlertHoldDurationRecordExample {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
@ -53,7 +53,7 @@ public class AlertHoldDurationRecordExample {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public String getOrderByClause() {
return orderByClause;
@ -63,7 +63,7 @@ public class AlertHoldDurationRecordExample {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public void setDistinct(boolean distinct) {
this.distinct = distinct;
@ -73,7 +73,7 @@ public class AlertHoldDurationRecordExample {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public boolean isDistinct() {
return distinct;
@ -83,7 +83,7 @@ public class AlertHoldDurationRecordExample {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public List<Criteria> getOredCriteria() {
return oredCriteria;
@ -93,7 +93,7 @@ public class AlertHoldDurationRecordExample {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public void or(Criteria criteria) {
oredCriteria.add(criteria);
@ -103,7 +103,7 @@ public class AlertHoldDurationRecordExample {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public Criteria or() {
Criteria criteria = createCriteriaInternal();
@ -115,7 +115,7 @@ public class AlertHoldDurationRecordExample {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
@ -129,7 +129,7 @@ public class AlertHoldDurationRecordExample {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
@ -140,7 +140,7 @@ public class AlertHoldDurationRecordExample {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public void clear() {
oredCriteria.clear();
@ -152,7 +152,7 @@ public class AlertHoldDurationRecordExample {
* This class was generated by MyBatis Generator.
* This class corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
@ -405,143 +405,143 @@ public class AlertHoldDurationRecordExample {
return (Criteria) this;
}
public Criteria andMamberidIsNull() {
addCriterion("mamberId is null");
public Criteria andMemberidIsNull() {
addCriterion("memberId is null");
return (Criteria) this;
}
public Criteria andMamberidIsNotNull() {
addCriterion("mamberId is not null");
public Criteria andMemberidIsNotNull() {
addCriterion("memberId is not null");
return (Criteria) this;
}
public Criteria andMamberidEqualTo(String value) {
addCriterion("mamberId =", value, "mamberid");
public Criteria andMemberidEqualTo(String value) {
addCriterion("memberId =", value, "memberid");
return (Criteria) this;
}
public Criteria andMamberidNotEqualTo(String value) {
addCriterion("mamberId <>", value, "mamberid");
public Criteria andMemberidNotEqualTo(String value) {
addCriterion("memberId <>", value, "memberid");
return (Criteria) this;
}
public Criteria andMamberidGreaterThan(String value) {
addCriterion("mamberId >", value, "mamberid");
public Criteria andMemberidGreaterThan(String value) {
addCriterion("memberId >", value, "memberid");
return (Criteria) this;
}
public Criteria andMamberidGreaterThanOrEqualTo(String value) {
addCriterion("mamberId >=", value, "mamberid");
public Criteria andMemberidGreaterThanOrEqualTo(String value) {
addCriterion("memberId >=", value, "memberid");
return (Criteria) this;
}
public Criteria andMamberidLessThan(String value) {
addCriterion("mamberId <", value, "mamberid");
public Criteria andMemberidLessThan(String value) {
addCriterion("memberId <", value, "memberid");
return (Criteria) this;
}
public Criteria andMamberidLessThanOrEqualTo(String value) {
addCriterion("mamberId <=", value, "mamberid");
public Criteria andMemberidLessThanOrEqualTo(String value) {
addCriterion("memberId <=", value, "memberid");
return (Criteria) this;
}
public Criteria andMamberidLike(String value) {
addCriterion("mamberId like", value, "mamberid");
public Criteria andMemberidLike(String value) {
addCriterion("memberId like", value, "memberid");
return (Criteria) this;
}
public Criteria andMamberidNotLike(String value) {
addCriterion("mamberId not like", value, "mamberid");
public Criteria andMemberidNotLike(String value) {
addCriterion("memberId not like", value, "memberid");
return (Criteria) this;
}
public Criteria andMamberidIn(List<String> values) {
addCriterion("mamberId in", values, "mamberid");
public Criteria andMemberidIn(List<String> values) {
addCriterion("memberId in", values, "memberid");
return (Criteria) this;
}
public Criteria andMamberidNotIn(List<String> values) {
addCriterion("mamberId not in", values, "mamberid");
public Criteria andMemberidNotIn(List<String> values) {
addCriterion("memberId not in", values, "memberid");
return (Criteria) this;
}
public Criteria andMamberidBetween(String value1, String value2) {
addCriterion("mamberId between", value1, value2, "mamberid");
public Criteria andMemberidBetween(String value1, String value2) {
addCriterion("memberId between", value1, value2, "memberid");
return (Criteria) this;
}
public Criteria andMamberidNotBetween(String value1, String value2) {
addCriterion("mamberId not between", value1, value2, "mamberid");
public Criteria andMemberidNotBetween(String value1, String value2) {
addCriterion("memberId not between", value1, value2, "memberid");
return (Criteria) this;
}
public Criteria andTariningidIsNull() {
addCriterion("tariningId is null");
public Criteria andTrainingidIsNull() {
addCriterion("trainingId is null");
return (Criteria) this;
}
public Criteria andTariningidIsNotNull() {
addCriterion("tariningId is not null");
public Criteria andTrainingidIsNotNull() {
addCriterion("trainingId is not null");
return (Criteria) this;
}
public Criteria andTariningidEqualTo(String value) {
addCriterion("tariningId =", value, "tariningid");
public Criteria andTrainingidEqualTo(String value) {
addCriterion("trainingId =", value, "trainingid");
return (Criteria) this;
}
public Criteria andTariningidNotEqualTo(String value) {
addCriterion("tariningId <>", value, "tariningid");
public Criteria andTrainingidNotEqualTo(String value) {
addCriterion("trainingId <>", value, "trainingid");
return (Criteria) this;
}
public Criteria andTariningidGreaterThan(String value) {
addCriterion("tariningId >", value, "tariningid");
public Criteria andTrainingidGreaterThan(String value) {
addCriterion("trainingId >", value, "trainingid");
return (Criteria) this;
}
public Criteria andTariningidGreaterThanOrEqualTo(String value) {
addCriterion("tariningId >=", value, "tariningid");
public Criteria andTrainingidGreaterThanOrEqualTo(String value) {
addCriterion("trainingId >=", value, "trainingid");
return (Criteria) this;
}
public Criteria andTariningidLessThan(String value) {
addCriterion("tariningId <", value, "tariningid");
public Criteria andTrainingidLessThan(String value) {
addCriterion("trainingId <", value, "trainingid");
return (Criteria) this;
}
public Criteria andTariningidLessThanOrEqualTo(String value) {
addCriterion("tariningId <=", value, "tariningid");
public Criteria andTrainingidLessThanOrEqualTo(String value) {
addCriterion("trainingId <=", value, "trainingid");
return (Criteria) this;
}
public Criteria andTariningidLike(String value) {
addCriterion("tariningId like", value, "tariningid");
public Criteria andTrainingidLike(String value) {
addCriterion("trainingId like", value, "trainingid");
return (Criteria) this;
}
public Criteria andTariningidNotLike(String value) {
addCriterion("tariningId not like", value, "tariningid");
public Criteria andTrainingidNotLike(String value) {
addCriterion("trainingId not like", value, "trainingid");
return (Criteria) this;
}
public Criteria andTariningidIn(List<String> values) {
addCriterion("tariningId in", values, "tariningid");
public Criteria andTrainingidIn(List<String> values) {
addCriterion("trainingId in", values, "trainingid");
return (Criteria) this;
}
public Criteria andTariningidNotIn(List<String> values) {
addCriterion("tariningId not in", values, "tariningid");
public Criteria andTrainingidNotIn(List<String> values) {
addCriterion("trainingId not in", values, "trainingid");
return (Criteria) this;
}
public Criteria andTariningidBetween(String value1, String value2) {
addCriterion("tariningId between", value1, value2, "tariningid");
public Criteria andTrainingidBetween(String value1, String value2) {
addCriterion("trainingId between", value1, value2, "trainingid");
return (Criteria) this;
}
public Criteria andTariningidNotBetween(String value1, String value2) {
addCriterion("tariningId not between", value1, value2, "tariningid");
public Criteria andTrainingidNotBetween(String value1, String value2) {
addCriterion("trainingId not between", value1, value2, "trainingid");
return (Criteria) this;
}
@ -1020,7 +1020,7 @@ public class AlertHoldDurationRecordExample {
* This class was generated by MyBatis Generator.
* This class corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated do_not_delete_during_merge Fri Jul 21 17:10:02 CST 2023
* @mbg.generated do_not_delete_during_merge Fri Jul 28 15:22:21 CST 2023
*/
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
@ -1032,7 +1032,7 @@ public class AlertHoldDurationRecordExample {
* This class was generated by MyBatis Generator.
* This class corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
public static class Criterion {
private String condition;

@ -6,6 +6,8 @@ import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface AlertHoldDurationMapper {
/**
@ -95,4 +97,7 @@ public interface AlertHoldDurationMapper {
* @mbg.generated Fri Jul 21 17:12:37 CST 2023
*/
int updateByPrimaryKey(AlertHoldDuration record);
@Select("SELECT DISTINCT symbol FROM sys_alert_hold_duration WHERE symbol = #{symbol}")
List<AlertHoldDuration>selectBySymbol(@Param("symbol")String symbol);
}

@ -1,18 +1,21 @@
package com.sztzjy.forex.trading_trading.mappers;
import com.sztzjy.forex.trading_trading.entity.AlertHoldDuration;
import com.sztzjy.forex.trading_trading.entity.AlertHoldDurationRecord;
import com.sztzjy.forex.trading_trading.entity.AlertHoldDurationRecordExample;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface AlertHoldDurationRecordMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
long countByExample(AlertHoldDurationRecordExample example);
@ -20,7 +23,7 @@ public interface AlertHoldDurationRecordMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
int deleteByExample(AlertHoldDurationRecordExample example);
@ -28,7 +31,7 @@ public interface AlertHoldDurationRecordMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
int deleteByPrimaryKey(String id);
@ -36,7 +39,7 @@ public interface AlertHoldDurationRecordMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
int insert(AlertHoldDurationRecord record);
@ -44,7 +47,7 @@ public interface AlertHoldDurationRecordMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
int insertSelective(AlertHoldDurationRecord record);
@ -52,7 +55,7 @@ public interface AlertHoldDurationRecordMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
List<AlertHoldDurationRecord> selectByExample(AlertHoldDurationRecordExample example);
@ -60,7 +63,7 @@ public interface AlertHoldDurationRecordMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
AlertHoldDurationRecord selectByPrimaryKey(String id);
@ -68,7 +71,7 @@ public interface AlertHoldDurationRecordMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
int updateByExampleSelective(@Param("record") AlertHoldDurationRecord record, @Param("example") AlertHoldDurationRecordExample example);
@ -76,7 +79,7 @@ public interface AlertHoldDurationRecordMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
int updateByExample(@Param("record") AlertHoldDurationRecord record, @Param("example") AlertHoldDurationRecordExample example);
@ -84,7 +87,7 @@ public interface AlertHoldDurationRecordMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
int updateByPrimaryKeySelective(AlertHoldDurationRecord record);
@ -92,7 +95,10 @@ public interface AlertHoldDurationRecordMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_alert_hold_duration_record
*
* @mbg.generated Fri Jul 21 17:10:02 CST 2023
* @mbg.generated Fri Jul 28 15:22:21 CST 2023
*/
int updateByPrimaryKey(AlertHoldDurationRecord record);
@Select("SELECT DISTINCT symbol FROM sys_alert_hold_duration_record WHERE symbol = #{symbol}")
List<AlertHoldDurationRecord>selectBySymbol(@Param("symbol") String symbol);
}

@ -4,6 +4,7 @@ import cn.hutool.core.util.IdUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sztzjy.forex.trading_trading.config.websocket.WebSocket;
import com.sztzjy.forex.trading_trading.controller.TradingController;
import com.sztzjy.forex.trading_trading.entity.*;
import com.sztzjy.forex.trading_trading.mappers.*;
import com.sztzjy.forex.trading_trading.util.ForexMarketDateUtil;
@ -43,16 +44,19 @@ public class WainingService {
@Autowired
private TransactionNumberWarningRecordMapper transactionNumberWarningRecordMapper;
@Autowired
private WebSocket webSocket;
private TrainingMapper trainingMapper;
@Autowired
private MemberService memberService;
//保证金比较接口
public String compareMarginLevels(String memberId, String trainingId) {
public void compareMarginLevels(String memberId, String trainingId) {
String message = "保证金已到达预警水平!";
MemberExample memberExample = new MemberExample();
memberExample.createCriteria().andMemberIdEqualTo(memberId).andTrainingIdEqualTo(trainingId);
List<Member> members = memberMapper.selectByExample(memberExample);
MarginWarningExample marginWarningExample = new MarginWarningExample();
marginWarningExample.createCriteria().andMemberIdEqualTo(memberId);
marginWarningExample.createCriteria().andMemberIdEqualTo(memberId).andStatusEqualTo(1);
MarginWarningRecordExample mwre = new MarginWarningRecordExample();
List<MarginWarning> marginWarningList = marginWarningMapper.selectByExample(marginWarningExample);
for (MarginWarning marginWarning : marginWarningList) {
@ -73,7 +77,6 @@ public class WainingService {
}
}
}
return message;
}
//保证金预警查询
@ -94,18 +97,23 @@ public class WainingService {
MemberExample memberExample = new MemberExample();
memberExample.createCriteria().andTrainingIdEqualTo(trainingId).andNameEqualTo(userName);
List<Member> members = memberMapper.selectByExample(memberExample);
// Double positionProfitLoss = takeStashController.getPositionProfitLoss(memberId); //获取持仓盈亏
for (Member member : members) {
marginWarning.setAccount(userName);
BeanUtils.copyProperties(member, marginWarning);
marginWarning.setStatus(0);
marginWarning.setId(IdUtil.simpleUUID());
marginWarning.setMarginLevel(50.12);
marginWarning.setNetValue(50.2131);
//这两个值需要写方法去取
//净值 = 持仓盈亏 + 累计盈亏 + 期初资金 保证金水平 = 净值/已用保证金 (%)
// Double marginLevel =
marginWarning.setMarginLevel(50.12); //保证金水平
marginWarning.setNetValue(50.2131); //净值
marginWarningMapper.insert(marginWarning);
}
return marginWarning;
}
//保证金预警水平修改保存
public MarginWarning saveWarningLevel(Integer warningLevel, String memberId, String userName, String trainingId) {
MarginWarningExample marginWarningExample = new MarginWarningExample();
@ -149,29 +157,34 @@ public class WainingService {
}
// 新增行情预警,并在达到预警值时将数据存入记录表
public void addMarketWarning(MarketWarning marketWarning, String trainingId, String name) {
public void addMarketWarning(MarketWarning marketWarning) {
String trainingId = marketWarning.getTariningid();
Training training = trainingMapper.selectByPrimaryKey(trainingId);
if (training.getStatus().equals("ONGOING")) {
// 记录表需要设置预警水平和预警时间 为报警时候的值
String marketWarningId = marketWarning.getId();
String marketWarningId = IdUtil.simpleUUID();
marketWarning.setId(marketWarningId);
MarketWarningRecord marketWarningRecord = new MarketWarningRecord();
marketWarning.setTime(new Timestamp(new Date().getTime()));
marketWarning.setTariningid(trainingId);
marketWarning.setName(name);
marketWarningMapper.insert(marketWarning);
BeanUtils.copyProperties(marketWarning, marketWarningRecord);
marketWarningRecord.setMarketWarningId(marketWarningId);
marketWarningRecord.setId(IdUtil.simpleUUID());
marketWarningRecordMapper.insert(marketWarningRecord);
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
objectObjectHashMap.put("marketWarningId", marketWarningId);
redisUtil.hmset("marketWarningRecord_" + marketWarningId + "_", objectObjectHashMap);
ComparativeTransactionPrice();
redisUtil.hmset("trainingId_" + trainingId + "_marketWarningRecord_" + marketWarningId + "_", objectObjectHashMap);
comparativeTransactionPrice();
}
}
//行情预警监控用户设置的交易品种当前的交易价格10S一次
@Scheduled(fixedRate = 10000)
public void ComparativeTransactionPrice() {
@Scheduled(fixedRate = 120000)
public void comparativeTransactionPrice() {
// 从redis取出所有的marketWarning
Set<String> marketWarningSet = redisUtil.keys("marketWarningRecord*");
Set<String> marketWarningSet = redisUtil.keys("*marketWarningRecord*");
// 从redis取出所有的交易品种的参数
List<ForexMarketData> forexDateList = redisUtil.get("ForexDateList");
Map<String, ForexMarketData> forexMarketDateMap = forexMarketDateUtil.getForexMarketDateMap(forexDateList);
@ -179,6 +192,8 @@ public class WainingService {
for (String key : marketWarningSet) {
Map<Object, Object> marketWarningMap = redisUtil.hmget(key);
String marketWarningId = (String) marketWarningMap.get("marketWarningId");
MarketWarning marketWarning = marketWarningMapper.selectByPrimaryKey(marketWarningId);
if (marketWarning != null && marketWarning.getStatus() != null && marketWarning.getStatus() == 1) {
MarketWarningRecordExample marketWarningRecordExample = new MarketWarningRecordExample();
marketWarningRecordExample.createCriteria().andMarketWarningIdEqualTo(marketWarningId);
List<MarketWarningRecord> marketWarningRecords = marketWarningRecordMapper.selectByExample(marketWarningRecordExample);
@ -192,9 +207,9 @@ public class WainingService {
Double lowerBreakPrice = marketWarningRecord.getLowerBreakPrice();
String direction = marketWarningRecord.getDirection();
String message = "预警通知:价格已达到预警值";
if (direction.equals("买")) {
if (direction.equals("买")) {
// 3.拿redis的价位和新增的高价低价做比较==的时候就弹出提示,并且存入行情预警记录表
if (buyPic.equals(upperBreakPrice) || buyPic.equals(lowerBreakPrice)) {
if (buyPic >= upperBreakPrice || buyPic <= lowerBreakPrice) {
WebSocket.sendMessage(message);
marketWarningRecord.setWarningPrice(buyPic);
marketWarningRecord.setWarningTime((new Timestamp(new Date().getTime())));
@ -202,7 +217,7 @@ public class WainingService {
redisUtil.del(key);
}
} else {
if (sellPicValue.equals(upperBreakPrice) || sellPicValue.equals(lowerBreakPrice)) {
if (sellPicValue >= upperBreakPrice || sellPicValue <= lowerBreakPrice) {
WebSocket.sendMessage(message);
marketWarningRecord.setWarningPrice(sellPicValue);
marketWarningRecord.setWarningTime((new Timestamp(new Date().getTime())));
@ -213,17 +228,21 @@ public class WainingService {
}
}
}
}
//新增持仓时长预警
public void addAlertHoldDuration(AlertHoldDuration alertHoldDuration) {
public String addAlertHoldDuration(AlertHoldDuration alertHoldDuration) {
String trainingid = alertHoldDuration.getTrainingid();
String symbol = alertHoldDuration.getSymbol();
TakeStashExample takeStashExample = new TakeStashExample();
takeStashExample.createCriteria().andTradingCodeEqualTo(symbol);
takeStashExample.createCriteria().andTradingCodeEqualTo(symbol).andStatusEqualTo(0);
List<TakeStash> takeStashes = takeStashMapper.selectByExample(takeStashExample);
if (takeStashes != null) {
for (TakeStash takeStash : takeStashes) {
String stashId = takeStash.getStashId();
alertHoldDuration.setSetTime(new Timestamp(new Date().getTime()));
alertHoldDuration.setStashid(stashId);
alertHoldDuration.setId(IdUtil.simpleUUID());
alertHoldDurationMapper.insert(alertHoldDuration);
String durationId = alertHoldDuration.getId();
@ -238,15 +257,19 @@ public class WainingService {
objectObjectHashMap.put("durationId", durationId);
alertHoldDurationRecordMapper.insert(ahdr);
redisUtil.hmset("AlertHoldDurationTakeStashId" + stashId + "_", objectObjectHashMap);
if (alertHoldDuration.getStatus() == 1) {
redisUtil.hmset("trainingId_" + trainingid + "_AlertHoldDurationTakeStashId" + stashId + "_", objectObjectHashMap);
b();
}
}
}
return "该品种下没有交易记录";
}
// 持仓时长预警对比定时任务
@Scheduled(fixedRate = 10000)
@Scheduled(fixedRate = 120000)
public void b() {
Set<String> alertHoldDurationTakeStashId = redisUtil.keys("AlertHoldDurationTakeStashId");
Set<String> alertHoldDurationTakeStashId = redisUtil.keys("*AlertHoldDurationTakeStashId*");
for (String takeStashId : alertHoldDurationTakeStashId) {
Map<Object, Object> hmget = redisUtil.hmget(takeStashId);
String resultTakeStashId = (String) hmget.get("takeStashId");
@ -258,28 +281,37 @@ public class WainingService {
Date timeTransaction = takeStash.getTimeTransaction(); //交易时间
String buySellType = takeStash.getBuySellType(); //买卖类型
List<AlertHoldDurationRecord> alertHoldDurationRecords = alertHoldDurationRecordMapper.selectByExample(alertHoldDurationRecordExample);
if (!alertHoldDurationRecords.isEmpty()) {
AlertHoldDurationRecord ahdr = alertHoldDurationRecords.get(0);
AlertHoldDuration alertHoldDurations = alertHoldDurationMapper.selectByPrimaryKey(ahdr.getDurationid());
if (alertHoldDurations != null && alertHoldDurations.getStatus() != null) {
if (alertHoldDurations.getStatus() == 1) {
// String wainingHoldDuration = alertHoldDurations.getWariningHoldDuration();
// Date setTime = alertHoldDurations.getSetTime();
// Calendar calendar = Calendar.getInstance();
// calendar.setTime(setTime);
// calendar.add(Calendar.DAY_OF_YEAR, Integer.parseInt(wainingHoldDuration));
// //相加后的时间
// Timestamp resultTime = new Timestamp(calendar.getTime().getTime());
AlertHoldDuration alertHoldDurations = alertHoldDurationMapper.selectByPrimaryKey(durationId);
String wainingHoldDuration = alertHoldDurations.getWariningHoldDuration();
Date setTime = alertHoldDurations.getSetTime();
Calendar calendar = Calendar.getInstance();
calendar.setTime(setTime);
calendar.add(Calendar.DAY_OF_YEAR, Integer.parseInt(wainingHoldDuration));
//相加后的时间
Timestamp resultTime = new Timestamp(calendar.getTime().getTime());
//当前时间 - 交易时间 = 持仓时间 持仓时间 > 用户设置的持仓预警时间 就报警
String wainingHoldDuration = alertHoldDurations.getWariningHoldDuration();
long warningHours = Long.parseLong(wainingHoldDuration) * 24;
Timestamp nowTime = new Timestamp(new Date().getTime());
long timeDiff = nowTime.getTime() - timeTransaction.getTime();
long timeDiff = nowTime.getTime() - timeTransaction.getTime(); //当前时间 - 交易时间 = 持仓时间
long totalHours = timeDiff / (1000 * 60 * 60);
long days = totalHours / 24;
long hours = totalHours % 24;
String timeString = days + "天 " + hours + "小时";
//"当前时间等于或大于预警值就将时间存库然后发送消息给前端"
if (nowTime.compareTo(resultTime) >= 0) {
if (totalHours >= warningHours) {
String message = alertHoldDurations.getSymbol() + "货币对已持仓xx天请择机平仓";
ahdr.setWariningTime(nowTime); //设置预警时间
ahdr.setTradingHour(timeTransaction); //设置交易时间
WebSocket.sendMessage(message);
redisUtil.del(takeStashId);
}
if (buySellType != null) {
ahdr.setDirection(buySellType); //设置买卖类型
@ -288,12 +320,16 @@ public class WainingService {
alertHoldDurationRecordMapper.updateByPrimaryKeySelective(ahdr);
}
}
}
}
}
//新增交易时长预警
public String addTransactionNumberWarning(TransactionNumberWarning transactionNumberWarning) {
TransactionNumberWarningRecord tnwr = new TransactionNumberWarningRecord();
transactionNumberWarning.setSetTime(new Timestamp(new Date().getTime()));
transactionNumberWarning.setId(IdUtil.simpleUUID());
tnwr.setId(IdUtil.simpleUUID());
BeanUtils.copyProperties(transactionNumberWarning, tnwr);
transactionNumberWarningMapper.insert(transactionNumberWarning);
transactionNumberWarningRecordMapper.insert(tnwr);
@ -301,14 +337,19 @@ public class WainingService {
}
//比较交易次数的公共方法
public String CompareTransactionNumber(String memberId, String trainingId) {
public void compareTransactionNumber(String memberId, String trainingId) {
String message = "交易笔数未达到所设置的预警值,请增加交易次数。";
MemberExample memberExample = new MemberExample();
memberExample.createCriteria().andMemberIdEqualTo(memberId).andTrainingIdEqualTo(trainingId);
List<Member> members = memberMapper.selectByExample(memberExample);
TransactionNumberWarningRecordExample tnwrExample = new TransactionNumberWarningRecordExample();
tnwrExample.createCriteria().andMemberIdEqualTo(memberId).andTrainingIdEqualTo(trainingId);
List<TransactionNumberWarningRecord> transactionNumberWarningRecords = transactionNumberWarningRecordMapper.selectByExample(tnwrExample);
TransactionNumberWarningExample tnwrExample = new TransactionNumberWarningExample();
tnwrExample.createCriteria().andMemberIdEqualTo(memberId).andTrainingIdEqualTo(trainingId).andStatusEqualTo(1);
List<TransactionNumberWarning> transactionNumberWarnings = transactionNumberWarningMapper.selectByExample(tnwrExample);
for (TransactionNumberWarning transactionNumberWarning : transactionNumberWarnings) {
TransactionNumberWarningRecordExample tnwre = new TransactionNumberWarningRecordExample();
tnwre.createCriteria().andTransactionNumberWarningIdEqualTo(transactionNumberWarning.getId());
List<TransactionNumberWarningRecord> transactionNumberWarningRecords = transactionNumberWarningRecordMapper.selectByExample(tnwre);
for (TransactionNumberWarningRecord tnwr : transactionNumberWarningRecords) {
for (Member member : members) {
Integer warningCount = tnwr.getWarningCount();
@ -324,9 +365,8 @@ public class WainingService {
}
}
}
return message;
}
}
// // 新增行情预警,并在达到预警值时将数据存入记录表
// public void addMarketWarning(MarketWarning marketWarning, String trainingId, String name) {

@ -5,13 +5,13 @@
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Fri Jul 21 17:10:02 CST 2023.
This element was generated on Fri Jul 28 15:22:21 CST 2023.
-->
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="durationID" jdbcType="VARCHAR" property="durationid" />
<result column="stashId" jdbcType="VARCHAR" property="stashid" />
<result column="mamberId" jdbcType="VARCHAR" property="mamberid" />
<result column="tariningId" jdbcType="VARCHAR" property="tariningid" />
<result column="memberId" jdbcType="VARCHAR" property="memberid" />
<result column="trainingId" jdbcType="VARCHAR" property="trainingid" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="symbol" jdbcType="VARCHAR" property="symbol" />
<result column="direction" jdbcType="VARCHAR" property="direction" />
@ -24,7 +24,7 @@
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Fri Jul 21 17:10:02 CST 2023.
This element was generated on Fri Jul 28 15:22:21 CST 2023.
-->
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
@ -58,7 +58,7 @@
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Fri Jul 21 17:10:02 CST 2023.
This element was generated on Fri Jul 28 15:22:21 CST 2023.
-->
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
@ -92,16 +92,16 @@
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Fri Jul 21 17:10:02 CST 2023.
This element was generated on Fri Jul 28 15:22:21 CST 2023.
-->
id, durationID, stashId, mamberId, tariningId, name, symbol, direction, trading_hour,
id, durationID, stashId, memberId, trainingId, name, symbol, direction, trading_hour,
hold_duration, warining_hold_duration, warining_time
</sql>
<select id="selectByExample" parameterType="com.sztzjy.forex.trading_trading.entity.AlertHoldDurationRecordExample" resultMap="BaseResultMap">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Fri Jul 21 17:10:02 CST 2023.
This element was generated on Fri Jul 28 15:22:21 CST 2023.
-->
select
<if test="distinct">
@ -120,7 +120,7 @@
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Fri Jul 21 17:10:02 CST 2023.
This element was generated on Fri Jul 28 15:22:21 CST 2023.
-->
select
<include refid="Base_Column_List" />
@ -131,7 +131,7 @@
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Fri Jul 21 17:10:02 CST 2023.
This element was generated on Fri Jul 28 15:22:21 CST 2023.
-->
delete from sys_alert_hold_duration_record
where id = #{id,jdbcType=VARCHAR}
@ -140,7 +140,7 @@
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Fri Jul 21 17:10:02 CST 2023.
This element was generated on Fri Jul 28 15:22:21 CST 2023.
-->
delete from sys_alert_hold_duration_record
<if test="_parameter != null">
@ -151,15 +151,15 @@
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Fri Jul 21 17:10:02 CST 2023.
This element was generated on Fri Jul 28 15:22:21 CST 2023.
-->
insert into sys_alert_hold_duration_record (id, durationID, stashId,
mamberId, tariningId, name,
memberId, trainingId, name,
symbol, direction, trading_hour,
hold_duration, warining_hold_duration, warining_time
)
values (#{id,jdbcType=VARCHAR}, #{durationid,jdbcType=VARCHAR}, #{stashid,jdbcType=VARCHAR},
#{mamberid,jdbcType=VARCHAR}, #{tariningid,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR},
#{memberid,jdbcType=VARCHAR}, #{trainingid,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR},
#{symbol,jdbcType=VARCHAR}, #{direction,jdbcType=VARCHAR}, #{tradingHour,jdbcType=TIMESTAMP},
#{holdDuration,jdbcType=VARCHAR}, #{wariningHoldDuration,jdbcType=VARCHAR}, #{wariningTime,jdbcType=TIMESTAMP}
)
@ -168,7 +168,7 @@
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Fri Jul 21 17:10:02 CST 2023.
This element was generated on Fri Jul 28 15:22:21 CST 2023.
-->
insert into sys_alert_hold_duration_record
<trim prefix="(" suffix=")" suffixOverrides=",">
@ -181,11 +181,11 @@
<if test="stashid != null">
stashId,
</if>
<if test="mamberid != null">
mamberId,
<if test="memberid != null">
memberId,
</if>
<if test="tariningid != null">
tariningId,
<if test="trainingid != null">
trainingId,
</if>
<if test="name != null">
name,
@ -219,11 +219,11 @@
<if test="stashid != null">
#{stashid,jdbcType=VARCHAR},
</if>
<if test="mamberid != null">
#{mamberid,jdbcType=VARCHAR},
<if test="memberid != null">
#{memberid,jdbcType=VARCHAR},
</if>
<if test="tariningid != null">
#{tariningid,jdbcType=VARCHAR},
<if test="trainingid != null">
#{trainingid,jdbcType=VARCHAR},
</if>
<if test="name != null">
#{name,jdbcType=VARCHAR},
@ -252,7 +252,7 @@
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Fri Jul 21 17:10:02 CST 2023.
This element was generated on Fri Jul 28 15:22:21 CST 2023.
-->
select count(*) from sys_alert_hold_duration_record
<if test="_parameter != null">
@ -263,7 +263,7 @@
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Fri Jul 21 17:10:02 CST 2023.
This element was generated on Fri Jul 28 15:22:21 CST 2023.
-->
update sys_alert_hold_duration_record
<set>
@ -276,11 +276,11 @@
<if test="record.stashid != null">
stashId = #{record.stashid,jdbcType=VARCHAR},
</if>
<if test="record.mamberid != null">
mamberId = #{record.mamberid,jdbcType=VARCHAR},
<if test="record.memberid != null">
memberId = #{record.memberid,jdbcType=VARCHAR},
</if>
<if test="record.tariningid != null">
tariningId = #{record.tariningid,jdbcType=VARCHAR},
<if test="record.trainingid != null">
trainingId = #{record.trainingid,jdbcType=VARCHAR},
</if>
<if test="record.name != null">
name = #{record.name,jdbcType=VARCHAR},
@ -312,14 +312,14 @@
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Fri Jul 21 17:10:02 CST 2023.
This element was generated on Fri Jul 28 15:22:21 CST 2023.
-->
update sys_alert_hold_duration_record
set id = #{record.id,jdbcType=VARCHAR},
durationID = #{record.durationid,jdbcType=VARCHAR},
stashId = #{record.stashid,jdbcType=VARCHAR},
mamberId = #{record.mamberid,jdbcType=VARCHAR},
tariningId = #{record.tariningid,jdbcType=VARCHAR},
memberId = #{record.memberid,jdbcType=VARCHAR},
trainingId = #{record.trainingid,jdbcType=VARCHAR},
name = #{record.name,jdbcType=VARCHAR},
symbol = #{record.symbol,jdbcType=VARCHAR},
direction = #{record.direction,jdbcType=VARCHAR},
@ -335,7 +335,7 @@
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Fri Jul 21 17:10:02 CST 2023.
This element was generated on Fri Jul 28 15:22:21 CST 2023.
-->
update sys_alert_hold_duration_record
<set>
@ -345,11 +345,11 @@
<if test="stashid != null">
stashId = #{stashid,jdbcType=VARCHAR},
</if>
<if test="mamberid != null">
mamberId = #{mamberid,jdbcType=VARCHAR},
<if test="memberid != null">
memberId = #{memberid,jdbcType=VARCHAR},
</if>
<if test="tariningid != null">
tariningId = #{tariningid,jdbcType=VARCHAR},
<if test="trainingid != null">
trainingId = #{trainingid,jdbcType=VARCHAR},
</if>
<if test="name != null">
name = #{name,jdbcType=VARCHAR},
@ -379,13 +379,13 @@
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Fri Jul 21 17:10:02 CST 2023.
This element was generated on Fri Jul 28 15:22:21 CST 2023.
-->
update sys_alert_hold_duration_record
set durationID = #{durationid,jdbcType=VARCHAR},
stashId = #{stashid,jdbcType=VARCHAR},
mamberId = #{mamberid,jdbcType=VARCHAR},
tariningId = #{tariningid,jdbcType=VARCHAR},
memberId = #{memberid,jdbcType=VARCHAR},
trainingId = #{trainingid,jdbcType=VARCHAR},
name = #{name,jdbcType=VARCHAR},
symbol = #{symbol,jdbcType=VARCHAR},
direction = #{direction,jdbcType=VARCHAR},

Loading…
Cancel
Save