From 73f9db939f865adddf37dbba6473298572a65596 Mon Sep 17 00:00:00 2001 From: yz <3614508250@qq.com> Date: Fri, 21 Jul 2023 17:46:27 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=88=E5=88=A9=E8=AE=A1=E7=AE=97=20?= =?UTF-8?q?=E8=B5=84=E4=BA=A7=E8=AE=A1=E7=AE=97=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=8C=81=E4=BB=93=E5=8F=82=E6=95=B0=20=E6=8C=81=E4=BB=93?= =?UTF-8?q?=E6=8C=82=E5=8D=95=E5=88=86=E9=A1=B5=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trading_trading/TrainingExample.java | 1092 ----------------- .../controller/MemberController.java | 10 +- .../controller/PendingOrderController.java | 159 ++- .../controller/TakeStashController.java | 123 +- .../controller/TradingController.java | 87 +- .../trading_trading/dto/TakeStashVO.java | 9 + .../entity/ForexMarketData.java | 2 +- .../trading_trading/entity/TakeStash.java | 156 ++- .../entity/TakeStashExample.java | 962 ++++++++------- .../mappers/TrainingMapper.java | 5 +- .../service/PendingOrderService.java | 11 +- .../service/ScheduledTask.java | 92 +- .../service/TakeStashService.java | 8 +- .../trading_trading/util/BigDecimalUtils.java | 287 +++++ src/main/resources/Dockerfile | 3 + .../resources/mappers/TakeStashMapper.xml | 176 +-- 16 files changed, 1412 insertions(+), 1770 deletions(-) delete mode 100644 src/main/java/com/sztzjy/forex/trading_trading/TrainingExample.java create mode 100644 src/main/java/com/sztzjy/forex/trading_trading/util/BigDecimalUtils.java create mode 100644 src/main/resources/Dockerfile diff --git a/src/main/java/com/sztzjy/forex/trading_trading/TrainingExample.java b/src/main/java/com/sztzjy/forex/trading_trading/TrainingExample.java deleted file mode 100644 index 783dd15..0000000 --- a/src/main/java/com/sztzjy/forex/trading_trading/TrainingExample.java +++ /dev/null @@ -1,1092 +0,0 @@ -package com.sztzjy.forex.trading_trading; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class TrainingExample { - /** - * This field was generated by MyBatis Generator. - * This field corresponds to the database table sys_training - * - * @mbg.generated Fri Jun 30 14:37:06 CST 2023 - */ - protected String orderByClause; - - /** - * This field was generated by MyBatis Generator. - * This field corresponds to the database table sys_training - * - * @mbg.generated Fri Jun 30 14:37:06 CST 2023 - */ - protected boolean distinct; - - /** - * This field was generated by MyBatis Generator. - * This field corresponds to the database table sys_training - * - * @mbg.generated Fri Jun 30 14:37:06 CST 2023 - */ - protected List oredCriteria; - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table sys_training - * - * @mbg.generated Fri Jun 30 14:37:06 CST 2023 - */ - public TrainingExample() { - oredCriteria = new ArrayList<>(); - } - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table sys_training - * - * @mbg.generated Fri Jun 30 14:37:06 CST 2023 - */ - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table sys_training - * - * @mbg.generated Fri Jun 30 14:37:06 CST 2023 - */ - public String getOrderByClause() { - return orderByClause; - } - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table sys_training - * - * @mbg.generated Fri Jun 30 14:37:06 CST 2023 - */ - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table sys_training - * - * @mbg.generated Fri Jun 30 14:37:06 CST 2023 - */ - public boolean isDistinct() { - return distinct; - } - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table sys_training - * - * @mbg.generated Fri Jun 30 14:37:06 CST 2023 - */ - public List getOredCriteria() { - return oredCriteria; - } - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table sys_training - * - * @mbg.generated Fri Jun 30 14:37:06 CST 2023 - */ - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table sys_training - * - * @mbg.generated Fri Jun 30 14:37:06 CST 2023 - */ - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table sys_training - * - * @mbg.generated Fri Jun 30 14:37:06 CST 2023 - */ - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table sys_training - * - * @mbg.generated Fri Jun 30 14:37:06 CST 2023 - */ - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - /** - * This method was generated by MyBatis Generator. - * This method corresponds to the database table sys_training - * - * @mbg.generated Fri Jun 30 14:37:06 CST 2023 - */ - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - /** - * This class was generated by MyBatis Generator. - * This class corresponds to the database table sys_training - * - * @mbg.generated Fri Jun 30 14:37:06 CST 2023 - */ - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList<>(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andTrainingIdIsNull() { - addCriterion("training_id is null"); - return (Criteria) this; - } - - public Criteria andTrainingIdIsNotNull() { - addCriterion("training_id is not null"); - return (Criteria) this; - } - - public Criteria andTrainingIdEqualTo(String value) { - addCriterion("training_id =", value, "trainingId"); - return (Criteria) this; - } - - public Criteria andTrainingIdNotEqualTo(String value) { - addCriterion("training_id <>", value, "trainingId"); - return (Criteria) this; - } - - public Criteria andTrainingIdGreaterThan(String value) { - addCriterion("training_id >", value, "trainingId"); - return (Criteria) this; - } - - public Criteria andTrainingIdGreaterThanOrEqualTo(String value) { - addCriterion("training_id >=", value, "trainingId"); - return (Criteria) this; - } - - public Criteria andTrainingIdLessThan(String value) { - addCriterion("training_id <", value, "trainingId"); - return (Criteria) this; - } - - public Criteria andTrainingIdLessThanOrEqualTo(String value) { - addCriterion("training_id <=", value, "trainingId"); - return (Criteria) this; - } - - public Criteria andTrainingIdLike(String value) { - addCriterion("training_id like", value, "trainingId"); - return (Criteria) this; - } - - public Criteria andTrainingIdNotLike(String value) { - addCriterion("training_id not like", value, "trainingId"); - return (Criteria) this; - } - - public Criteria andTrainingIdIn(List values) { - addCriterion("training_id in", values, "trainingId"); - return (Criteria) this; - } - - public Criteria andTrainingIdNotIn(List values) { - addCriterion("training_id not in", values, "trainingId"); - return (Criteria) this; - } - - public Criteria andTrainingIdBetween(String value1, String value2) { - addCriterion("training_id between", value1, value2, "trainingId"); - return (Criteria) this; - } - - public Criteria andTrainingIdNotBetween(String value1, String value2) { - addCriterion("training_id not between", value1, value2, "trainingId"); - return (Criteria) this; - } - - public Criteria andPeopleCountIsNull() { - addCriterion("people_count is null"); - return (Criteria) this; - } - - public Criteria andPeopleCountIsNotNull() { - addCriterion("people_count is not null"); - return (Criteria) this; - } - - public Criteria andPeopleCountEqualTo(Integer value) { - addCriterion("people_count =", value, "peopleCount"); - return (Criteria) this; - } - - public Criteria andPeopleCountNotEqualTo(Integer value) { - addCriterion("people_count <>", value, "peopleCount"); - return (Criteria) this; - } - - public Criteria andPeopleCountGreaterThan(Integer value) { - addCriterion("people_count >", value, "peopleCount"); - return (Criteria) this; - } - - public Criteria andPeopleCountGreaterThanOrEqualTo(Integer value) { - addCriterion("people_count >=", value, "peopleCount"); - return (Criteria) this; - } - - public Criteria andPeopleCountLessThan(Integer value) { - addCriterion("people_count <", value, "peopleCount"); - return (Criteria) this; - } - - public Criteria andPeopleCountLessThanOrEqualTo(Integer value) { - addCriterion("people_count <=", value, "peopleCount"); - return (Criteria) this; - } - - public Criteria andPeopleCountIn(List values) { - addCriterion("people_count in", values, "peopleCount"); - return (Criteria) this; - } - - public Criteria andPeopleCountNotIn(List values) { - addCriterion("people_count not in", values, "peopleCount"); - return (Criteria) this; - } - - public Criteria andPeopleCountBetween(Integer value1, Integer value2) { - addCriterion("people_count between", value1, value2, "peopleCount"); - return (Criteria) this; - } - - public Criteria andPeopleCountNotBetween(Integer value1, Integer value2) { - addCriterion("people_count not between", value1, value2, "peopleCount"); - return (Criteria) this; - } - - public Criteria andStartTimeIsNull() { - addCriterion("start_time is null"); - return (Criteria) this; - } - - public Criteria andStartTimeIsNotNull() { - addCriterion("start_time is not null"); - return (Criteria) this; - } - - public Criteria andStartTimeEqualTo(String value) { - addCriterion("start_time =", value, "startTime"); - return (Criteria) this; - } - - public Criteria andStartTimeNotEqualTo(String value) { - addCriterion("start_time <>", value, "startTime"); - return (Criteria) this; - } - - public Criteria andStartTimeGreaterThan(String value) { - addCriterion("start_time >", value, "startTime"); - return (Criteria) this; - } - - public Criteria andStartTimeGreaterThanOrEqualTo(String value) { - addCriterion("start_time >=", value, "startTime"); - return (Criteria) this; - } - - public Criteria andStartTimeLessThan(String value) { - addCriterion("start_time <", value, "startTime"); - return (Criteria) this; - } - - public Criteria andStartTimeLessThanOrEqualTo(String value) { - addCriterion("start_time <=", value, "startTime"); - return (Criteria) this; - } - - public Criteria andStartTimeLike(String value) { - addCriterion("start_time like", value, "startTime"); - return (Criteria) this; - } - - public Criteria andStartTimeNotLike(String value) { - addCriterion("start_time not like", value, "startTime"); - return (Criteria) this; - } - - public Criteria andStartTimeIn(List values) { - addCriterion("start_time in", values, "startTime"); - return (Criteria) this; - } - - public Criteria andStartTimeNotIn(List values) { - addCriterion("start_time not in", values, "startTime"); - return (Criteria) this; - } - - public Criteria andStartTimeBetween(String value1, String value2) { - addCriterion("start_time between", value1, value2, "startTime"); - return (Criteria) this; - } - - public Criteria andStartTimeNotBetween(String value1, String value2) { - addCriterion("start_time not between", value1, value2, "startTime"); - return (Criteria) this; - } - - public Criteria andEndTimeIsNull() { - addCriterion("end_time is null"); - return (Criteria) this; - } - - public Criteria andEndTimeIsNotNull() { - addCriterion("end_time is not null"); - return (Criteria) this; - } - - public Criteria andEndTimeEqualTo(String value) { - addCriterion("end_time =", value, "endTime"); - return (Criteria) this; - } - - public Criteria andEndTimeNotEqualTo(String value) { - addCriterion("end_time <>", value, "endTime"); - return (Criteria) this; - } - - public Criteria andEndTimeGreaterThan(String value) { - addCriterion("end_time >", value, "endTime"); - return (Criteria) this; - } - - public Criteria andEndTimeGreaterThanOrEqualTo(String value) { - addCriterion("end_time >=", value, "endTime"); - return (Criteria) this; - } - - public Criteria andEndTimeLessThan(String value) { - addCriterion("end_time <", value, "endTime"); - return (Criteria) this; - } - - public Criteria andEndTimeLessThanOrEqualTo(String value) { - addCriterion("end_time <=", value, "endTime"); - return (Criteria) this; - } - - public Criteria andEndTimeLike(String value) { - addCriterion("end_time like", value, "endTime"); - return (Criteria) this; - } - - public Criteria andEndTimeNotLike(String value) { - addCriterion("end_time not like", value, "endTime"); - return (Criteria) this; - } - - public Criteria andEndTimeIn(List values) { - addCriterion("end_time in", values, "endTime"); - return (Criteria) this; - } - - public Criteria andEndTimeNotIn(List values) { - addCriterion("end_time not in", values, "endTime"); - return (Criteria) this; - } - - public Criteria andEndTimeBetween(String value1, String value2) { - addCriterion("end_time between", value1, value2, "endTime"); - return (Criteria) this; - } - - public Criteria andEndTimeNotBetween(String value1, String value2) { - addCriterion("end_time not between", value1, value2, "endTime"); - return (Criteria) this; - } - - public Criteria andStatusIsNull() { - addCriterion("status is null"); - return (Criteria) this; - } - - public Criteria andStatusIsNotNull() { - addCriterion("status is not null"); - return (Criteria) this; - } - - public Criteria andStatusEqualTo(String value) { - addCriterion("status =", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotEqualTo(String value) { - addCriterion("status <>", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThan(String value) { - addCriterion("status >", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusGreaterThanOrEqualTo(String value) { - addCriterion("status >=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThan(String value) { - addCriterion("status <", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLessThanOrEqualTo(String value) { - addCriterion("status <=", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusLike(String value) { - addCriterion("status like", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotLike(String value) { - addCriterion("status not like", value, "status"); - return (Criteria) this; - } - - public Criteria andStatusIn(List values) { - addCriterion("status in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotIn(List values) { - addCriterion("status not in", values, "status"); - return (Criteria) this; - } - - public Criteria andStatusBetween(String value1, String value2) { - addCriterion("status between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andStatusNotBetween(String value1, String value2) { - addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; - } - - public Criteria andCreatorIdIsNull() { - addCriterion("creator_id is null"); - return (Criteria) this; - } - - public Criteria andCreatorIdIsNotNull() { - addCriterion("creator_id is not null"); - return (Criteria) this; - } - - public Criteria andCreatorIdEqualTo(Integer value) { - addCriterion("creator_id =", value, "creatorId"); - return (Criteria) this; - } - - public Criteria andCreatorIdNotEqualTo(Integer value) { - addCriterion("creator_id <>", value, "creatorId"); - return (Criteria) this; - } - - public Criteria andCreatorIdGreaterThan(Integer value) { - addCriterion("creator_id >", value, "creatorId"); - return (Criteria) this; - } - - public Criteria andCreatorIdGreaterThanOrEqualTo(Integer value) { - addCriterion("creator_id >=", value, "creatorId"); - return (Criteria) this; - } - - public Criteria andCreatorIdLessThan(Integer value) { - addCriterion("creator_id <", value, "creatorId"); - return (Criteria) this; - } - - public Criteria andCreatorIdLessThanOrEqualTo(Integer value) { - addCriterion("creator_id <=", value, "creatorId"); - return (Criteria) this; - } - - public Criteria andCreatorIdIn(List values) { - addCriterion("creator_id in", values, "creatorId"); - return (Criteria) this; - } - - public Criteria andCreatorIdNotIn(List values) { - addCriterion("creator_id not in", values, "creatorId"); - return (Criteria) this; - } - - public Criteria andCreatorIdBetween(Integer value1, Integer value2) { - addCriterion("creator_id between", value1, value2, "creatorId"); - return (Criteria) this; - } - - public Criteria andCreatorIdNotBetween(Integer value1, Integer value2) { - addCriterion("creator_id not between", value1, value2, "creatorId"); - return (Criteria) this; - } - - public Criteria andCreateSchoolIsNull() { - addCriterion("create_school is null"); - return (Criteria) this; - } - - public Criteria andCreateSchoolIsNotNull() { - addCriterion("create_school is not null"); - return (Criteria) this; - } - - public Criteria andCreateSchoolEqualTo(String value) { - addCriterion("create_school =", value, "createSchool"); - return (Criteria) this; - } - - public Criteria andCreateSchoolNotEqualTo(String value) { - addCriterion("create_school <>", value, "createSchool"); - return (Criteria) this; - } - - public Criteria andCreateSchoolGreaterThan(String value) { - addCriterion("create_school >", value, "createSchool"); - return (Criteria) this; - } - - public Criteria andCreateSchoolGreaterThanOrEqualTo(String value) { - addCriterion("create_school >=", value, "createSchool"); - return (Criteria) this; - } - - public Criteria andCreateSchoolLessThan(String value) { - addCriterion("create_school <", value, "createSchool"); - return (Criteria) this; - } - - public Criteria andCreateSchoolLessThanOrEqualTo(String value) { - addCriterion("create_school <=", value, "createSchool"); - return (Criteria) this; - } - - public Criteria andCreateSchoolLike(String value) { - addCriterion("create_school like", value, "createSchool"); - return (Criteria) this; - } - - public Criteria andCreateSchoolNotLike(String value) { - addCriterion("create_school not like", value, "createSchool"); - return (Criteria) this; - } - - public Criteria andCreateSchoolIn(List values) { - addCriterion("create_school in", values, "createSchool"); - return (Criteria) this; - } - - public Criteria andCreateSchoolNotIn(List values) { - addCriterion("create_school not in", values, "createSchool"); - return (Criteria) this; - } - - public Criteria andCreateSchoolBetween(String value1, String value2) { - addCriterion("create_school between", value1, value2, "createSchool"); - return (Criteria) this; - } - - public Criteria andCreateSchoolNotBetween(String value1, String value2) { - addCriterion("create_school not between", value1, value2, "createSchool"); - return (Criteria) this; - } - - public Criteria andTrainingNameIsNull() { - addCriterion("training_name is null"); - return (Criteria) this; - } - - public Criteria andTrainingNameIsNotNull() { - addCriterion("training_name is not null"); - return (Criteria) this; - } - - public Criteria andTrainingNameEqualTo(String value) { - addCriterion("training_name =", value, "trainingName"); - return (Criteria) this; - } - - public Criteria andTrainingNameNotEqualTo(String value) { - addCriterion("training_name <>", value, "trainingName"); - return (Criteria) this; - } - - public Criteria andTrainingNameGreaterThan(String value) { - addCriterion("training_name >", value, "trainingName"); - return (Criteria) this; - } - - public Criteria andTrainingNameGreaterThanOrEqualTo(String value) { - addCriterion("training_name >=", value, "trainingName"); - return (Criteria) this; - } - - public Criteria andTrainingNameLessThan(String value) { - addCriterion("training_name <", value, "trainingName"); - return (Criteria) this; - } - - public Criteria andTrainingNameLessThanOrEqualTo(String value) { - addCriterion("training_name <=", value, "trainingName"); - return (Criteria) this; - } - - public Criteria andTrainingNameLike(String value) { - addCriterion("training_name like", value, "trainingName"); - return (Criteria) this; - } - - public Criteria andTrainingNameNotLike(String value) { - addCriterion("training_name not like", value, "trainingName"); - return (Criteria) this; - } - - public Criteria andTrainingNameIn(List values) { - addCriterion("training_name in", values, "trainingName"); - return (Criteria) this; - } - - public Criteria andTrainingNameNotIn(List values) { - addCriterion("training_name not in", values, "trainingName"); - return (Criteria) this; - } - - public Criteria andTrainingNameBetween(String value1, String value2) { - addCriterion("training_name between", value1, value2, "trainingName"); - return (Criteria) this; - } - - public Criteria andTrainingNameNotBetween(String value1, String value2) { - addCriterion("training_name not between", value1, value2, "trainingName"); - return (Criteria) this; - } - - public Criteria andCreatorNameIsNull() { - addCriterion("creator_name is null"); - return (Criteria) this; - } - - public Criteria andCreatorNameIsNotNull() { - addCriterion("creator_name is not null"); - return (Criteria) this; - } - - public Criteria andCreatorNameEqualTo(String value) { - addCriterion("creator_name =", value, "creatorName"); - return (Criteria) this; - } - - public Criteria andCreatorNameNotEqualTo(String value) { - addCriterion("creator_name <>", value, "creatorName"); - return (Criteria) this; - } - - public Criteria andCreatorNameGreaterThan(String value) { - addCriterion("creator_name >", value, "creatorName"); - return (Criteria) this; - } - - public Criteria andCreatorNameGreaterThanOrEqualTo(String value) { - addCriterion("creator_name >=", value, "creatorName"); - return (Criteria) this; - } - - public Criteria andCreatorNameLessThan(String value) { - addCriterion("creator_name <", value, "creatorName"); - return (Criteria) this; - } - - public Criteria andCreatorNameLessThanOrEqualTo(String value) { - addCriterion("creator_name <=", value, "creatorName"); - return (Criteria) this; - } - - public Criteria andCreatorNameLike(String value) { - addCriterion("creator_name like", value, "creatorName"); - return (Criteria) this; - } - - public Criteria andCreatorNameNotLike(String value) { - addCriterion("creator_name not like", value, "creatorName"); - return (Criteria) this; - } - - public Criteria andCreatorNameIn(List values) { - addCriterion("creator_name in", values, "creatorName"); - return (Criteria) this; - } - - public Criteria andCreatorNameNotIn(List values) { - addCriterion("creator_name not in", values, "creatorName"); - return (Criteria) this; - } - - public Criteria andCreatorNameBetween(String value1, String value2) { - addCriterion("creator_name between", value1, value2, "creatorName"); - return (Criteria) this; - } - - public Criteria andCreatorNameNotBetween(String value1, String value2) { - addCriterion("creator_name not between", value1, value2, "creatorName"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Date value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Date value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Date value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Date value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Date value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Date value1, Date value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Date value1, Date value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andUpdateTimeIsNull() { - addCriterion("update_time is null"); - return (Criteria) this; - } - - public Criteria andUpdateTimeIsNotNull() { - addCriterion("update_time is not null"); - return (Criteria) this; - } - - public Criteria andUpdateTimeEqualTo(Date value) { - addCriterion("update_time =", value, "updateTime"); - return (Criteria) this; - } - - public Criteria andUpdateTimeNotEqualTo(Date value) { - addCriterion("update_time <>", value, "updateTime"); - return (Criteria) this; - } - - public Criteria andUpdateTimeGreaterThan(Date value) { - addCriterion("update_time >", value, "updateTime"); - return (Criteria) this; - } - - public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) { - addCriterion("update_time >=", value, "updateTime"); - return (Criteria) this; - } - - public Criteria andUpdateTimeLessThan(Date value) { - addCriterion("update_time <", value, "updateTime"); - return (Criteria) this; - } - - public Criteria andUpdateTimeLessThanOrEqualTo(Date value) { - addCriterion("update_time <=", value, "updateTime"); - return (Criteria) this; - } - - public Criteria andUpdateTimeIn(List values) { - addCriterion("update_time in", values, "updateTime"); - return (Criteria) this; - } - - public Criteria andUpdateTimeNotIn(List values) { - addCriterion("update_time not in", values, "updateTime"); - return (Criteria) this; - } - - public Criteria andUpdateTimeBetween(Date value1, Date value2) { - addCriterion("update_time between", value1, value2, "updateTime"); - return (Criteria) this; - } - - public Criteria andUpdateTimeNotBetween(Date value1, Date value2) { - addCriterion("update_time not between", value1, value2, "updateTime"); - return (Criteria) this; - } - - public Criteria andSchoolIdIsNull() { - addCriterion("school_id is null"); - return (Criteria) this; - } - - public Criteria andSchoolIdIsNotNull() { - addCriterion("school_id is not null"); - return (Criteria) this; - } - - public Criteria andSchoolIdEqualTo(Integer value) { - addCriterion("school_id =", value, "schoolId"); - return (Criteria) this; - } - - public Criteria andSchoolIdNotEqualTo(Integer value) { - addCriterion("school_id <>", value, "schoolId"); - return (Criteria) this; - } - - public Criteria andSchoolIdGreaterThan(Integer value) { - addCriterion("school_id >", value, "schoolId"); - return (Criteria) this; - } - - public Criteria andSchoolIdGreaterThanOrEqualTo(Integer value) { - addCriterion("school_id >=", value, "schoolId"); - return (Criteria) this; - } - - public Criteria andSchoolIdLessThan(Integer value) { - addCriterion("school_id <", value, "schoolId"); - return (Criteria) this; - } - - public Criteria andSchoolIdLessThanOrEqualTo(Integer value) { - addCriterion("school_id <=", value, "schoolId"); - return (Criteria) this; - } - - public Criteria andSchoolIdIn(List values) { - addCriterion("school_id in", values, "schoolId"); - return (Criteria) this; - } - - public Criteria andSchoolIdNotIn(List values) { - addCriterion("school_id not in", values, "schoolId"); - return (Criteria) this; - } - - public Criteria andSchoolIdBetween(Integer value1, Integer value2) { - addCriterion("school_id between", value1, value2, "schoolId"); - return (Criteria) this; - } - - public Criteria andSchoolIdNotBetween(Integer value1, Integer value2) { - addCriterion("school_id not between", value1, value2, "schoolId"); - return (Criteria) this; - } - } - - /** - * This class was generated by MyBatis Generator. - * This class corresponds to the database table sys_training - * - * @mbg.generated do_not_delete_during_merge Fri Jun 30 14:37:06 CST 2023 - */ - public static class Criteria extends GeneratedCriteria { - protected Criteria() { - super(); - } - } - - /** - * This class was generated by MyBatis Generator. - * This class corresponds to the database table sys_training - * - * @mbg.generated Fri Jun 30 14:37:06 CST 2023 - */ - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/src/main/java/com/sztzjy/forex/trading_trading/controller/MemberController.java b/src/main/java/com/sztzjy/forex/trading_trading/controller/MemberController.java index df8014f..89056e2 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/controller/MemberController.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/controller/MemberController.java @@ -13,6 +13,7 @@ import com.sztzjy.forex.trading_trading.entity.Training; import com.sztzjy.forex.trading_trading.service.GradeWeightService; import com.sztzjy.forex.trading_trading.service.MemberService; import com.sztzjy.forex.trading_trading.service.TrainingService; +import com.sztzjy.forex.trading_trading.util.BigDecimalUtils; import com.sztzjy.forex.trading_trading.util.ResultEntity; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -40,6 +41,9 @@ public class MemberController { @Autowired TakeStashController takeStashController; + @Autowired + BigDecimalUtils bigDecimalUtils; + @AnonymousAccess @PostMapping("getMemberById") public ResultEntity getMember(@RequestBody String memberId) { @@ -58,11 +62,11 @@ public class MemberController { Double positionProfitLoss = takeStashController.flashTotalPositionProfitLoss(member.getMemberId()); member.setPositionProfitLoss(positionProfitLoss); //设置持仓盈亏 Double totalAssets = member.getTotalAssets(); - Double netValue=totalAssets+positionProfitLoss; + Double netValue=bigDecimalUtils.add(totalAssets,positionProfitLoss); member.setNetValue(netValue); //设置净值 Double marginUsed = member.getMarginUsed(); //获取已用保证金 - member.setAvailableFunds(netValue-marginUsed); //设置可用资金 - member.setMarginLevel(netValue/marginUsed); //设置保证金水平 + member.setAvailableFunds(bigDecimalUtils.sub(netValue,marginUsed)); //设置可用资金 + member.setMarginLevel(bigDecimalUtils.div(netValue,marginUsed,2)); //设置保证金水平 return new ResultEntity(HttpStatus.OK, "获取成员ID",member); } diff --git a/src/main/java/com/sztzjy/forex/trading_trading/controller/PendingOrderController.java b/src/main/java/com/sztzjy/forex/trading_trading/controller/PendingOrderController.java index d33608f..ee53908 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/controller/PendingOrderController.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/controller/PendingOrderController.java @@ -3,6 +3,7 @@ package com.sztzjy.forex.trading_trading.controller; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson.JSONObject; +import com.github.pagehelper.PageInfo; import com.sztzjy.forex.trading_trading.annotation.AnonymousAccess; import com.sztzjy.forex.trading_trading.dto.PengdingVo; import com.sztzjy.forex.trading_trading.dto.TakeStashVO; @@ -14,15 +15,13 @@ import com.sztzjy.forex.trading_trading.util.RedisUtil; import com.sztzjy.forex.trading_trading.util.ResultEntity; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Set; +import java.util.*; @RestController @RequestMapping("api/pendingOrder") @@ -36,84 +35,134 @@ public class PendingOrderController { @Autowired RedisUtil redisUtil; + @Autowired + TradingController tradingController; + + @Autowired + ForexMarketDateUtil forexMarketDateUtil; + //查询挂单数据 @AnonymousAccess @PostMapping("getPendingOrder") - public ResultEntity> getPendingOrder(@RequestBody JSONObject jsonObject){ + public ResultEntity> getPendingOrder(@RequestBody JSONObject jsonObject) { String trainingId = String.valueOf(jsonObject.get("trainingId")); String memberId = String.valueOf(jsonObject.get("memberId")); - PendingOrder pendingOrder=new PendingOrder(); + Integer pageIndex = jsonObject.getInteger("index"); + Integer pageSize = jsonObject.getInteger("size"); + PendingOrder pendingOrder = new PendingOrder(); pendingOrder.setStatus(0); pendingOrder.setTrainingId(trainingId); pendingOrder.setMemberId(memberId); - List pendingOrders = pendingOrderService.selectByTrainingIdAndStatusAndMemberId(pendingOrder); - List pengdingVoList=new ArrayList<>(); + PageInfo pendingOrderPageInfo = pendingOrderService.selectByTrainingIdAndStatusAndMemberId(pendingOrder, pageIndex, pageSize); + List pendingOrders = pendingOrderPageInfo.getList(); + List pengdingVoList = new ArrayList<>(); for (int i = 0; i < pendingOrders.size(); i++) { - PengdingVo pengdingVo=new PengdingVo(pendingOrders.get(i)); + PengdingVo pengdingVo = new PengdingVo(pendingOrders.get(i)); pengdingVoList.add(pengdingVo); } List data = flashPendingCurrentPrice(pengdingVoList).getBody().getData(); - return new ResultEntity(HttpStatus.OK, "获取挂单数据成功",data); + PageInfo pageInfo=new PageInfo<>(); + pageInfo.setTotal(pendingOrderPageInfo.getTotal()); + pageInfo.setList(data); + return new ResultEntity(HttpStatus.OK, "获取挂单数据成功", pageInfo); } //撤单 撤单成功后 根据pendingOrderId删除redis键 @AnonymousAccess @PostMapping("cancelOrder") - public ResultEntity cancelOrder(@RequestBody JSONObject jsonObject){ + public ResultEntity cancelOrder(@RequestBody JSONObject jsonObject) { String pendingOrderId = String.valueOf(jsonObject.get("pendingOrderId")); pendingOrderService.cancelOrder(pendingOrderId); - redisUtil.del("pengingOrder_"+pendingOrderId); + redisUtil.del("pengingOrder_" + pendingOrderId); return new ResultEntity(HttpStatus.OK, "撤单成功"); } - //挂单自动撤单(到期自动撤单) 扫描redis pengingOrder_id 进行自动撤单 - public void pendingOrderQuest(){ - Set pendingOrderSet = redisUtil.keys("pengingOrder_" + "*"); //获取所有挂单键 - for(String key : pendingOrderSet){ -// System.out.print(value+" "); + + //判断是否开仓 + public Boolean isOpenTakeStash(Map pengingOrderMap,Map forexMarketDataMap) { + String buySellType = (String) pengingOrderMap.get("buySellType"); + String tradingCode = (String) pengingOrderMap.get("tradingCode"); + Double priceCommission = (Double) pengingOrderMap.get("priceCommission"); + ForexMarketData forexDate = forexMarketDataMap.get(tradingCode); + Double buyPic = forexDate.getBuyPic(); + Double sellPic = Double.valueOf(forexDate.getSellPic()); + if ("buyLimit".equals(buySellType)) { //限价买进 + if (buyPic < priceCommission) { + return true; + } } - } + if ("sellLimit".equals(buySellType)) { //限价卖出 + if (sellPic > priceCommission) { + return true; + } + } + if ("buyStop".equals(buySellType)) { //止损买入 + if (buyPic > priceCommission) { + return true; + } + } + if ("sellStop".equals(buySellType)) { + if (sellPic < priceCommission) { + return true; + } + } + return false; - //挂单自动开仓 + } - //返回挂单对象 - public PendingOrder returnPendingOrder(String memberId, String trainingId, String tradingCode,String currencyName, String buySellType, Double transactionVolume, Double priceCommission, Double stopLoss, Double stopWin,Date validityTime) { - Date now = new Date(); - String commissionNumber = DateUtil.format(now, "yyyyMMddHHmmss") + System.currentTimeMillis(); - PendingOrder pendingOrder=new PendingOrder(); - pendingOrder.setMemberId(memberId); - pendingOrder.setTrainingId(trainingId); - pendingOrder.setCommissionTime(now); - pendingOrder.setTradingCode(tradingCode); - pendingOrder.setCurrencyName(currencyName); - pendingOrder.setCommissionNumber(commissionNumber); - pendingOrder.setBuySellType(buySellType); - pendingOrder.setVolumeTransaction(transactionVolume); - pendingOrder.setPriceCommission(priceCommission); - pendingOrder.setStopLoss(stopLoss); - pendingOrder.setStopWin(stopWin); - pendingOrder.setValidityTime(validityTime); - pendingOrder.setStatus(0); - return pendingOrder; + //判断是否到期 到期则删除挂单数据和redis中的键 + public Boolean isExpire(Map pengingOrderMap, String key) { + Date validityTime = (Date) pengingOrderMap.get("validityTime"); //获取有效期 + Date currentDate = new Date(); + if (validityTime.after(currentDate)) { + pendingOrderService.cancelOrder((String) pengingOrderMap.get("pendingOrderId")); + redisUtil.del(key); + return true; + } + return false; } - //保存挂单 挂单保存后 将挂单ID和有效期存入redis - public void insertPendingOrder(PendingOrder pendingOrder){ - String uuid = IdUtil.simpleUUID(); - pendingOrder.setPendingOrderId(uuid); - pendingOrderService.insert(pendingOrder); - redisUtil.set("pengingOrder_"+pendingOrder.getPendingOrderId(),pendingOrder.getValidityTime()); + public JSONObject pengingKeyReturnJSONObject(Map pengingOrderMap) { + Object tradingCode = pengingOrderMap.get("tradingCode"); + Object currencyName = pengingOrderMap.get("currencyName"); + Object transactionType = pengingOrderMap.get("transactionType"); + Object transactionVolume = pengingOrderMap.get("transactionVolume"); + Object buySellTypeObj = pengingOrderMap.get("buySellType"); + String buySellType= String.valueOf(buySellTypeObj); + if(buySellType.contains("buy")){ + buySellType="buy"; + }else { + buySellType="sell"; + } + Object stopLoss = pengingOrderMap.get("stopLoss"); + Object stopWin = pengingOrderMap.get("stopWin"); + Object memberId = pengingOrderMap.get("memberId"); + Object trainingId = pengingOrderMap.get("trainingId"); + Object priceCommission = pengingOrderMap.get("priceCommission"); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("tradingCode", tradingCode); + jsonObject.put("currencyName", currencyName); + jsonObject.put("transactionType", transactionType); + jsonObject.put("transactionVolume", transactionVolume); + jsonObject.put("buySellType", buySellType); + jsonObject.put("stopLoss", stopLoss); + jsonObject.put("stopWin", stopWin); + jsonObject.put("memberId", memberId); + jsonObject.put("trainingId", trainingId); + jsonObject.put("priceCommission", priceCommission); + return jsonObject; } + //挂单刷新当前价位 @AnonymousAccess @PostMapping("flashPendingCurrentPrice") - public ResultEntity> flashPendingCurrentPrice(@RequestBody List pengdingVoList){ - List pengdingVos=new ArrayList<>(); + public ResultEntity> flashPendingCurrentPrice(@RequestBody List pengdingVoList) { + List pengdingVos = new ArrayList<>(); for (int i = 0; i < pengdingVoList.size(); i++) { PengdingVo pengdingVo = pengdingVoList.get(i); - if(0!=pengdingVo.getStatus()){ + if (0 != pengdingVo.getStatus()) { continue; } String buySellType = pengdingVo.getBuySellType(); //买入或卖出 @@ -122,23 +171,23 @@ public class PendingOrderController { Double nowBuyPic = forexData.getBuyPic(); //当前买价 Double nowSellPic = Double.valueOf(forexData.getSellPic()); //当前卖价 if (tradingCode.startsWith("USD")) { //美元在前 - if("buy".equals(buySellType)){ //买 + if ("buy".equals(buySellType)) { //买 pengdingVo.setCurrentPrice(nowBuyPic); - }else { //卖 + } else { //卖 pengdingVo.setCurrentPrice(nowSellPic); } - }else { //美元在后 - if("buy".equals(buySellType)){ //买 + } else { //美元在后 + if ("buy".equals(buySellType)) { //买 pengdingVo.setCurrentPrice(nowBuyPic); - }else { //卖 + } else { //卖 pengdingVo.setCurrentPrice(nowSellPic); } } pengdingVos.add(pengdingVo); } - if(0==pengdingVos.size()){ - return new ResultEntity(HttpStatus.OK, "挂单数据为空",null); + if (0 == pengdingVos.size()) { + return new ResultEntity(HttpStatus.OK, "挂单数据为空", null); } - return new ResultEntity(HttpStatus.OK, "挂单当前价格刷新",pengdingVos); + return new ResultEntity(HttpStatus.OK, "挂单当前价格刷新", pengdingVos); } } diff --git a/src/main/java/com/sztzjy/forex/trading_trading/controller/TakeStashController.java b/src/main/java/com/sztzjy/forex/trading_trading/controller/TakeStashController.java index 0afd8c0..690745a 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/controller/TakeStashController.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/controller/TakeStashController.java @@ -2,6 +2,7 @@ package com.sztzjy.forex.trading_trading.controller; import com.alibaba.fastjson.JSONObject; +import com.github.pagehelper.PageInfo; import com.sztzjy.forex.trading_trading.annotation.AnonymousAccess; import com.sztzjy.forex.trading_trading.dto.TakeStashVO; import com.sztzjy.forex.trading_trading.entity.ForexMarketData; @@ -10,6 +11,7 @@ import com.sztzjy.forex.trading_trading.entity.TakeStash; import com.sztzjy.forex.trading_trading.service.MemberService; import com.sztzjy.forex.trading_trading.service.TakeStashService; import com.sztzjy.forex.trading_trading.service.TrainingService; +import com.sztzjy.forex.trading_trading.util.BigDecimalUtils; import com.sztzjy.forex.trading_trading.util.ForexMarketDateUtil; import com.sztzjy.forex.trading_trading.util.RedisUtil; import com.sztzjy.forex.trading_trading.util.ResultEntity; @@ -20,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.math.BigDecimal; import java.util.*; @RestController @@ -44,11 +47,18 @@ public class TakeStashController { @Autowired TrainingService trainingService; + @Autowired + BigDecimalUtils bigDecimalUtils; + //获取当前持仓表 status 0为获取当前持仓/1为挂单持仓/2为历史持仓 @AnonymousAccess @PostMapping("getTakeStashList") - public ResultEntity getTakeStashList(@RequestBody TakeStash takeStash) { - List takeStashList = takeStashService.findTakeStashByTrainingIdAndMemberIdAndStatus(takeStash.getTrainingId(), takeStash.getMemberId(), takeStash.getStatus()); + public ResultEntity getTakeStashList(@RequestBody JSONObject jsonObject) { + Integer pageIndex = jsonObject.getInteger("index"); + Integer pageSize = jsonObject.getInteger("size"); + TakeStash takeStash = jsonObject.getObject("takeStash", TakeStash.class); + PageInfo pageInfo = takeStashService.findTakeStashByTrainingIdAndMemberIdAndStatus(takeStash.getTrainingId(), takeStash.getMemberId(), takeStash.getStatus(), pageIndex, pageSize); + List takeStashList = pageInfo.getList(); List takeStashVOList = new ArrayList<>(); for (int i = 0; i < takeStashList.size(); i++) { TakeStashVO takeStashVO = new TakeStashVO(takeStashList.get(i)); @@ -57,7 +67,10 @@ public class TakeStashController { if (takeStash.getStatus() == 0) { takeStashVOList = flashProfitAndLoss(takeStashVOList).getBody().getData(); } - return new ResultEntity(HttpStatus.OK, "返回持仓数据", takeStashVOList); + PageInfo voPageInfo = new PageInfo<>(); + voPageInfo.setTotal(pageInfo.getTotal()); + voPageInfo.setList(takeStashVOList); + return new ResultEntity(HttpStatus.OK, "返回持仓数据", voPageInfo); } //根据持仓ID获取单个持仓数据 @@ -89,19 +102,23 @@ public class TakeStashController { Double profitAndLoss; if (tradingCode.startsWith("USD")) { //美元在前 if ("buy".equals(buySellType)) { //买 - profitAndLoss = (nowBuyPic - priceTransaction) * volumeTransaction * 100000 / nowBuyPic; - takeStashVO.setCurrentPrice(nowBuyPic); - } else { //卖 - profitAndLoss = (nowSellPic - priceTransaction) * volumeTransaction * 100000 / nowSellPic; + // profitAndLoss =(nowBuyPic - priceTransaction) * volumeTransaction * 100000.0 / nowBuyPic; + profitAndLoss = bigDecimalUtils.div(bigDecimalUtils.mul(bigDecimalUtils.mul(bigDecimalUtils.sub(nowSellPic, priceTransaction), volumeTransaction), 100000), nowSellPic, 2); takeStashVO.setCurrentPrice(nowSellPic); + } else { //卖 + // profitAndLoss = (nowSellPic - priceTransaction) * volumeTransaction * 100000.0 / nowSellPic; + profitAndLoss = bigDecimalUtils.div(bigDecimalUtils.mul(bigDecimalUtils.mul(bigDecimalUtils.sub(nowBuyPic, priceTransaction), volumeTransaction), 100000), nowBuyPic, 2); + takeStashVO.setCurrentPrice(nowBuyPic); } } else { //美元在后 if ("buy".equals(buySellType)) { //买 - profitAndLoss = (nowBuyPic - priceTransaction) * volumeTransaction * 100000; - takeStashVO.setCurrentPrice(nowBuyPic); - } else { //卖 - profitAndLoss = (nowSellPic - priceTransaction) * volumeTransaction * 100000; +// profitAndLoss = (nowBuyPic - priceTransaction) * volumeTransaction * 100000.0; + profitAndLoss = bigDecimalUtils.mul(bigDecimalUtils.mul(bigDecimalUtils.sub(nowSellPic, priceTransaction), volumeTransaction), 100000, 2); takeStashVO.setCurrentPrice(nowSellPic); + } else { //卖 +// profitAndLoss = (nowSellPic - priceTransaction) * volumeTransaction * 100000.0; + profitAndLoss = bigDecimalUtils.mul(bigDecimalUtils.mul(bigDecimalUtils.sub(nowBuyPic, priceTransaction), volumeTransaction), 100000, 2); + takeStashVO.setCurrentPrice(nowBuyPic); } } takeStashVO.setProfitAndLoss(profitAndLoss); @@ -114,8 +131,8 @@ public class TakeStashController { } //总持仓盈亏刷新 获取member下所有持仓数据 - public Double flashTotalPositionProfitLoss(String memberId){ - List takeStashList = takeStashService.selectAllByMemberIdAndStatus(memberId,0); + public Double flashTotalPositionProfitLoss(String memberId) { + List takeStashList = takeStashService.selectAllByMemberIdAndStatus(memberId, 0); Double totalProfitAndLoss = 0.0; for (int i = 0; i < takeStashList.size(); i++) { TakeStash takeStash = takeStashList.get(i); @@ -129,18 +146,23 @@ public class TakeStashController { Double profitAndLoss; if (tradingCode.startsWith("USD")) { //美元在前 if ("buy".equals(buySellType)) { //买 - profitAndLoss = (nowBuyPic - priceTransaction) * volumeTransaction * 100000 / nowBuyPic; + // profitAndLoss =(nowBuyPic - priceTransaction) * volumeTransaction * 100000.0 / nowBuyPic; + profitAndLoss = bigDecimalUtils.div(bigDecimalUtils.mul(bigDecimalUtils.mul(bigDecimalUtils.sub(nowSellPic, priceTransaction), volumeTransaction), 100000), nowSellPic, 2); } else { //卖 - profitAndLoss = (nowSellPic - priceTransaction) * volumeTransaction * 100000 / nowSellPic; + // profitAndLoss = (nowSellPic - priceTransaction) * volumeTransaction * 100000.0 / nowSellPic; + profitAndLoss = bigDecimalUtils.div(bigDecimalUtils.mul(bigDecimalUtils.mul(bigDecimalUtils.sub(nowBuyPic, priceTransaction), volumeTransaction), 100000), nowBuyPic, 2); } } else { //美元在后 if ("buy".equals(buySellType)) { //买 - profitAndLoss = (nowBuyPic - priceTransaction) * volumeTransaction * 100000; +// profitAndLoss = (nowBuyPic - priceTransaction) * volumeTransaction * 100000.0; + profitAndLoss = bigDecimalUtils.mul(bigDecimalUtils.mul(bigDecimalUtils.sub(nowSellPic, priceTransaction), volumeTransaction), 100000, 2); } else { //卖 - profitAndLoss = (nowSellPic - priceTransaction) * volumeTransaction * 100000; +// profitAndLoss = (nowSellPic - priceTransaction) * volumeTransaction * 100000.0; + profitAndLoss = bigDecimalUtils.mul(bigDecimalUtils.mul(bigDecimalUtils.sub(nowBuyPic, priceTransaction), volumeTransaction), 100000, 2); } } - totalProfitAndLoss=totalProfitAndLoss+profitAndLoss; +// totalProfitAndLoss = totalProfitAndLoss + profitAndLoss; + totalProfitAndLoss=bigDecimalUtils.add(totalProfitAndLoss,profitAndLoss); } return totalProfitAndLoss; @@ -188,83 +210,94 @@ public class TakeStashController { String buySellType = takeStashNew.getBuySellType(); String tradingCode = takeStashNew.getTradingCode(); Double volumeTransaction = takeStashNew.getVolumeTransaction(); - Double priceTransaction = takeStashNew.getPriceTransaction(); + Double priceTransaction = takeStashNew.getPriceTransaction(); //获取进仓时交易价格 + Double priceTransactionCloser = 0.0; //记录出仓时交易价格 ForexMarketData forexData = forexMarketDateController.getForexMarketDateByCode(tradingCode); Double backFund = 0.0; //返还资金 - Double CumulativeProfitLoss=0.0; //盈亏 + Double profitAndLoss = 0.0; //盈亏 Double nowSellPic = Double.valueOf(forexData.getSellPic());//当前卖价 Double nowBuyPic = forexData.getBuyPic(); //当前买价 if (tradingCode.startsWith("USD")) { //美元在前 返还资金表达式为 if ("buy".equals(buySellType)) { //如果持仓方向为买 则平仓方向为卖 - CumulativeProfitLoss=(nowSellPic - priceTransaction) * volumeTransaction * 100000 / nowSellPic; - backFund = 1000 * volumeTransaction+CumulativeProfitLoss; - availableFunds = availableFunds + backFund; + priceTransactionCloser = nowSellPic; +// CumulativeProfitLoss = (nowSellPic - priceTransaction) * volumeTransaction * 100000.0 / nowSellPic; + profitAndLoss = bigDecimalUtils.div(bigDecimalUtils.mul(bigDecimalUtils.mul(bigDecimalUtils.sub(nowSellPic, priceTransaction), volumeTransaction), 100000), nowSellPic, 2); + backFund = bigDecimalUtils.add(bigDecimalUtils.mul(priceTransaction,bigDecimalUtils.mul(1000,volumeTransaction),2),profitAndLoss); + availableFunds = bigDecimalUtils.add(availableFunds,backFund); } else if ("sell".equals(buySellType)) { //如果持仓方向为卖 则平仓方向为买 可用资金=可用资金+当前买价*1000*买卖手 - CumulativeProfitLoss=( priceTransaction-nowBuyPic ) * volumeTransaction * 100000 / nowBuyPic; - backFund = 1000 * volumeTransaction+CumulativeProfitLoss; - availableFunds = availableFunds + backFund; + priceTransactionCloser = nowBuyPic; + profitAndLoss = bigDecimalUtils.div(bigDecimalUtils.mul(bigDecimalUtils.mul(bigDecimalUtils.sub(nowBuyPic, priceTransaction), volumeTransaction), 100000), nowBuyPic, 2); + backFund = bigDecimalUtils.add(bigDecimalUtils.mul(priceTransaction,bigDecimalUtils.mul(1000,volumeTransaction),2),profitAndLoss); + availableFunds = bigDecimalUtils.add(availableFunds,backFund); } } else { //美元在后 backFund = 1000 * volumeTransaction; if ("buy".equals(buySellType)) { //如果持仓方向为买 则平仓方向为卖 可用资金=可用资金+1000*买卖手 - CumulativeProfitLoss=(priceTransaction-nowSellPic)*volumeTransaction*100000/nowSellPic; - backFund=1000*volumeTransaction*nowSellPic+CumulativeProfitLoss; - availableFunds = availableFunds + backFund; + priceTransactionCloser = nowSellPic; + profitAndLoss = bigDecimalUtils.mul(bigDecimalUtils.mul(bigDecimalUtils.sub(nowSellPic, priceTransaction), volumeTransaction), 100000, 2); + backFund = bigDecimalUtils.add(bigDecimalUtils.mul(priceTransaction,bigDecimalUtils.mul(1000,volumeTransaction),2),profitAndLoss); + availableFunds = bigDecimalUtils.add(availableFunds,backFund); } else if ("sell".equals(buySellType)) { //如果持仓方向为卖 则平仓方向为买 可用资金=可用资金+当前买价*1000*买卖手 - CumulativeProfitLoss=( priceTransaction-nowBuyPic)*volumeTransaction*100000/nowBuyPic; - backFund=1000*volumeTransaction*nowBuyPic+CumulativeProfitLoss; - availableFunds = availableFunds + backFund; + priceTransactionCloser = nowBuyPic; + profitAndLoss = bigDecimalUtils.mul(bigDecimalUtils.mul(bigDecimalUtils.sub(nowBuyPic, priceTransaction), volumeTransaction), 100000, 2); + backFund = bigDecimalUtils.add(bigDecimalUtils.mul(priceTransaction,bigDecimalUtils.mul(1000,volumeTransaction),2),profitAndLoss); + availableFunds = bigDecimalUtils.add(availableFunds,backFund); } } Double marginUsed = member.getMarginUsed();//未修改前member表中成员保证金 Double tradingMargin = takeStashNew.getTradingMargin(); //进仓时使用的保证金 - marginUsed = marginUsed - tradingMargin; //修改成员保证金 + marginUsed = bigDecimalUtils.sub(marginUsed,tradingMargin); //修改成员保证金 member.setAvailableFunds(availableFunds); member.setMarginUsed(marginUsed); Integer closingTrades = member.getClosingTrades(); member.setClosingTrades(closingTrades++); Double cumulativeProfitLoss = member.getCumulativeProfitLoss(); //为修改前member表中的累积盈亏 - member.setCumulativeProfitLoss(cumulativeProfitLoss+CumulativeProfitLoss); //修改累计盈亏 - member.setTotalAssets(member.getInitialCapital()+cumulativeProfitLoss+CumulativeProfitLoss); //设置总资产 + member.setCumulativeProfitLoss(bigDecimalUtils.add(cumulativeProfitLoss,profitAndLoss)); //修改累计盈亏 + member.setTotalAssets(bigDecimalUtils.add(bigDecimalUtils.add(member.getInitialCapital(),cumulativeProfitLoss),profitAndLoss)); //设置总资产 memberService.updateByPrimaryKeySelective(member); TakeStash takeStash = new TakeStash(); takeStash.setStashId(stashId); takeStash.setStatus(2); - takeStash.setProfitAndLossByClose(backFund - tradingMargin); //盈亏=返还资金-进仓时使用的保证金 + takeStash.setPriceTransactionClose(priceTransactionCloser); + takeStash.setProfitAndLossByClose(profitAndLoss); + takeStash.setTimeTransactionClose(new Date()); takeStashService.updateByPrimaryKeySelective(takeStash); return new ResultEntity(HttpStatus.OK, "平仓成功"); } - public void updateMemberAndTakeStash(String memberId,String stashId,Double backFund,Double CumulativeProfitLoss){ + public void updateMemberAndTakeStash(String memberId, String stashId, Double backFund, Double CumulativeProfitLoss) { TakeStash takeStashNew = takeStashService.selectByPrimaryKey(stashId); Member member = memberService.selectByPrimaryKey(memberId); Double marginUsed = member.getMarginUsed();//未修改前member表中成员保证金 - Double tradingMargin = takeStashNew.getTradingMargin(); //进仓时使用的保证金 - marginUsed = marginUsed - tradingMargin; //修改成员保证金 + Double tradingMargin;//进仓时使用的保证金 + if (takeStashNew.getTradingMargin()!=null){ + tradingMargin=0.0; + }else { + tradingMargin = takeStashNew.getTradingMargin(); + } + marginUsed = bigDecimalUtils.sub(marginUsed,tradingMargin); //修改成员保证金 Double availableFunds = member.getAvailableFunds(); //可用资金 - availableFunds=availableFunds+backFund; + availableFunds = bigDecimalUtils.add(availableFunds,backFund); member.setAvailableFunds(availableFunds); member.setMarginUsed(marginUsed); Integer closingTrades = member.getClosingTrades(); member.setClosingTrades(closingTrades++); Double cumulativeProfitLoss = member.getCumulativeProfitLoss(); //为修改前member表中的累积盈亏 - member.setCumulativeProfitLoss(cumulativeProfitLoss+CumulativeProfitLoss); //修改累计盈亏 - member.setTotalAssets(member.getInitialCapital()+cumulativeProfitLoss+CumulativeProfitLoss); //设置总资产 + member.setCumulativeProfitLoss(bigDecimalUtils.add(cumulativeProfitLoss,CumulativeProfitLoss)); //修改累计盈亏 + member.setTotalAssets(bigDecimalUtils.add(CumulativeProfitLoss,bigDecimalUtils.add(member.getInitialCapital(),cumulativeProfitLoss))); //设置总资产 memberService.updateByPrimaryKeySelective(member); TakeStash takeStash = new TakeStash(); takeStash.setStashId(stashId); takeStash.setStatus(2); - takeStash.setProfitAndLossByClose(backFund - tradingMargin); //盈亏=返还资金-进仓时使用的保证金 + takeStash.setProfitAndLossByClose(bigDecimalUtils.sub(backFund,tradingMargin)); //盈亏=返还资金-进仓时使用的保证金 takeStashService.updateByPrimaryKeySelective(takeStash); } - - } diff --git a/src/main/java/com/sztzjy/forex/trading_trading/controller/TradingController.java b/src/main/java/com/sztzjy/forex/trading_trading/controller/TradingController.java index 437d4d1..b56c867 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/controller/TradingController.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/controller/TradingController.java @@ -2,6 +2,7 @@ package com.sztzjy.forex.trading_trading.controller; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; +import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import com.sztzjy.forex.trading_trading.annotation.AnonymousAccess; import com.sztzjy.forex.trading_trading.entity.ForexMarketData; @@ -10,7 +11,9 @@ import com.sztzjy.forex.trading_trading.entity.PendingOrder; import com.sztzjy.forex.trading_trading.entity.TakeStash; import com.sztzjy.forex.trading_trading.service.ForexMarketDataService; import com.sztzjy.forex.trading_trading.service.MemberService; +import com.sztzjy.forex.trading_trading.service.PendingOrderService; import com.sztzjy.forex.trading_trading.service.TakeStashService; +import com.sztzjy.forex.trading_trading.util.BigDecimalUtils; import com.sztzjy.forex.trading_trading.util.RedisUtil; import com.sztzjy.forex.trading_trading.util.ResultEntity; import org.springframework.beans.factory.annotation.Autowired; @@ -36,8 +39,6 @@ public class TradingController { @Autowired TakeStashService takeStashService; - @Autowired - PendingOrderController pendingOrderController; @Autowired RedisUtil redisUtil; @@ -45,6 +46,12 @@ public class TradingController { @Autowired ForexMarketDataService forexMarketDataService; + @Autowired + PendingOrderService pendingOrderService; + + @Autowired + BigDecimalUtils bigDecimalUtils; + //获取市场报价 @AnonymousAccess @PostMapping("getMarketQuotation") @@ -93,15 +100,19 @@ public class TradingController { Double stopWin = jsonObject.getDouble("stopWin"); String memberId = jsonObject.getString("memberId"); String trainingId = jsonObject.getString("trainingId"); - Member member = memberService.getMemberByMemberIdAndTrainingId(memberId, trainingId); - Double availableFunds = member.getAvailableFunds(); //获取账户可用资金 + Double priceCommission = jsonObject.getDouble("priceCommission"); //获取挂单开仓用户输入的价位 ForexMarketData forexData = getMarketQuotationByCode(tradingCode).getBody().getData();//获取当前买卖价格 Double buyPic = forexData.getBuyPic();//当前买价 Double sellPic = Double.valueOf(forexData.getSellPic());//当前买价 + Double priceTransaction=0.0; //记录当前交易价格(买价或卖价) + if(priceCommission!=-1){ + buyPic=priceCommission; + sellPic=priceCommission; + } + Member member = memberService.getMemberByMemberIdAndTrainingId(memberId, trainingId); + Double availableFunds = member.getAvailableFunds(); //获取账户可用资金 Double margin = 0.0; //记录所需保证金 - String stashId = IdUtil.simpleUUID(); Boolean stopLossWinFlag=false; - Double priceTransaction=0.0; //记录当前交易价格(买价或卖价) if (null != stopLoss || null != stopWin) { //判断止损止赢是否合理 如果stopLoss stopWin都为null则跳过 stopLossWinFlag=true; boolean winOrLossStopBoolean = getWinOrLossStop(stopLoss, stopWin, buySellType, forexData); @@ -111,12 +122,13 @@ public class TradingController { } //如果方式为卖 则止损高于卖价 获利低于买价 if (transactionType.equals("sjkc")) {//市价开仓 + String stashId = IdUtil.simpleUUID(); //设置市价开仓ID if (tradingCode.startsWith("USD")) { //美元在前 - if (availableFunds < transactionVolume * 1000) { //判断可用资金是否足够 + if (availableFunds < transactionVolume * 1000.0) { //判断可用资金是否足够 return new ResultEntity(HttpStatus.BAD_REQUEST, "可用资金不足"); } - margin=transactionVolume * 1000; //所需保证金 - availableFunds = availableFunds - margin; + margin=bigDecimalUtils.mul(transactionVolume,1000,2); //所需保证金 + availableFunds = bigDecimalUtils.sub(availableFunds,margin); if ("buy".equals(buySellType)) { priceTransaction=buyPic; TakeStash takeStash = returnTakeStash(stashId,memberId, trainingId, tradingCode, currencyName, buySellType, transactionVolume, buyPic, stopLoss, stopWin , margin); @@ -130,7 +142,8 @@ public class TradingController { } else { //美元在后 使用可用资金表达式为 买卖手*1000*卖/买价 判断可用资金是否足够 先判断是买还是卖 if ("buy".equals(buySellType)) { priceTransaction=buyPic; - margin=transactionVolume * 1000 * buyPic; //所需保证金 +// margin=transactionVolume * 1000.0 * buyPic; //所需保证金 + margin=bigDecimalUtils.mul(bigDecimalUtils.mul(transactionVolume,1000,2),buyPic,2); if (availableFunds < margin) { return new ResultEntity(HttpStatus.BAD_REQUEST, "可用资金不足"); } @@ -139,7 +152,8 @@ public class TradingController { takeStashService.insertTakeStash(takeStash); } else if ("sell".equals(buySellType)) { priceTransaction=sellPic; - margin=transactionVolume * 1000 * sellPic; //所需保证金 +// margin=transactionVolume * 1000.0 * sellPic; //所需保证金 + margin=bigDecimalUtils.mul(bigDecimalUtils.mul(transactionVolume,1000,2),sellPic,2); if (availableFunds < margin) { return new ResultEntity(HttpStatus.BAD_REQUEST, "可用资金不足"); } @@ -171,7 +185,7 @@ public class TradingController { redisUtil.hmset("trainingId_"+trainingId+"_stashId_"+stashId,map); } } else if (transactionType.equals("gdkc")) {//挂单开仓 生成的数据为挂单数据 挂单数据生效 判断可用资金是否充足 - Double priceCommission = jsonObject.getDouble("priceCommission");//获取用户输入的价位 + String pendingOrderId = IdUtil.simpleUUID(); //设置市价开仓ID Date validityTime = jsonObject.getDate("validityTime"); //获取挂单有效期 if ("buyLimit".equals(buySellType)) { //限价买进(低价买进) 下单时买入价低于当前买价 if (priceCommission >= buyPic) { @@ -193,8 +207,24 @@ public class TradingController { return new ResultEntity(HttpStatus.BAD_REQUEST, "止损卖出价位不能高于当前卖价"); } } - PendingOrder pendingOrder = pendingOrderController.returnPendingOrder(memberId, trainingId, tradingCode,currencyName,buySellType, transactionVolume, priceCommission, stopLoss, stopWin, validityTime); - pendingOrderController.insertPendingOrder(pendingOrder);//保存挂单 + PendingOrder pendingOrder = returnPendingOrder(pendingOrderId,memberId, trainingId, tradingCode,currencyName,buySellType, transactionVolume, priceCommission, stopLoss, stopWin, validityTime); + insertPendingOrder(pendingOrder);//保存挂单 + + //保存挂单数据后 保存到redis中 + Map map=new HashMap(); + map.put("tradingCode",tradingCode); + map.put("currencyName",currencyName); + map.put("transactionType",transactionType); + map.put("transactionVolume",transactionVolume); + map.put("buySellType",buySellType); + map.put("stopLoss",stopLoss); + map.put("stopWin",stopWin); + map.put("memberId",memberId); + map.put("trainingId",trainingId); + map.put("validityTime",validityTime); + map.put("pendingOrderId",pendingOrderId); + map.put("priceCommission",priceCommission); + redisUtil.hmset("trainingId_"+trainingId+"_pengingOrderId_"+pendingOrderId,map); } //获取交易次数预警 memberID tradingID 获取预警次数 判断是否超过 如果超过 则报警 //checkopeningTrades(memberID,tradingID){} @@ -282,5 +312,34 @@ public class TradingController { return false; } + //返回挂单对象 + public PendingOrder returnPendingOrder(String pendingOrderId,String memberId, String trainingId, String tradingCode,String currencyName, String buySellType, Double transactionVolume, Double priceCommission, Double stopLoss, Double stopWin,Date validityTime) { + Date now = new Date(); + String commissionNumber = DateUtil.format(now, "yyyyMMddHHmmss") + System.currentTimeMillis(); + PendingOrder pendingOrder=new PendingOrder(); + pendingOrder.setPendingOrderId(pendingOrderId); + pendingOrder.setMemberId(memberId); + pendingOrder.setTrainingId(trainingId); + pendingOrder.setCommissionTime(now); + pendingOrder.setTradingCode(tradingCode); + pendingOrder.setCurrencyName(currencyName); + pendingOrder.setCommissionNumber(commissionNumber); + pendingOrder.setBuySellType(buySellType); + pendingOrder.setVolumeTransaction(transactionVolume); + pendingOrder.setPriceCommission(priceCommission); + pendingOrder.setStopLoss(stopLoss); + pendingOrder.setStopWin(stopWin); + pendingOrder.setValidityTime(validityTime); + pendingOrder.setStatus(0); + return pendingOrder; + } + + //保存挂单 挂单保存后 将挂单ID和有效期存入redis + public void insertPendingOrder(PendingOrder pendingOrder){ + String uuid = IdUtil.simpleUUID(); + pendingOrder.setPendingOrderId(uuid); + pendingOrderService.insert(pendingOrder); + } + } diff --git a/src/main/java/com/sztzjy/forex/trading_trading/dto/TakeStashVO.java b/src/main/java/com/sztzjy/forex/trading_trading/dto/TakeStashVO.java index b8892a2..63fe0c3 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/dto/TakeStashVO.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/dto/TakeStashVO.java @@ -30,6 +30,9 @@ public class TakeStashVO { this.timeTransaction = takeStash.getTimeTransaction(); this.status = takeStash.getStatus(); this.currencyName=takeStash.getCurrencyName(); + this.profitAndLossByClose=takeStash.getProfitAndLossByClose(); + this.priceTransactionClose=takeStash.getPriceTransactionClose(); + this.timeTransactionClose=takeStash.getTimeTransactionClose(); } private String stashId; @@ -60,4 +63,10 @@ public class TakeStashVO { private Double profitAndLoss; private String currencyName; + + private Double profitAndLossByClose; + + private Double priceTransactionClose; + + private Date timeTransactionClose; } diff --git a/src/main/java/com/sztzjy/forex/trading_trading/entity/ForexMarketData.java b/src/main/java/com/sztzjy/forex/trading_trading/entity/ForexMarketData.java index db6d0ff..9a00c90 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/entity/ForexMarketData.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/entity/ForexMarketData.java @@ -615,7 +615,7 @@ public class ForexMarketData { marketData.setDate((String) data.get("date")); marketData.setHighPic((String) data.get("highPic")); marketData.setLowPic((String) data.get("lowPic")); - marketData.setOpenPri((String) data.get("openPic")); + marketData.setOpenPri((String) data.get("openPri")); marketData.setRanges((String) data.get("range")); marketData.setSellPic((String) data.get("sellPic")); marketData.setYesPic((String) data.get("yesPic")); diff --git a/src/main/java/com/sztzjy/forex/trading_trading/entity/TakeStash.java b/src/main/java/com/sztzjy/forex/trading_trading/entity/TakeStash.java index 4269c0a..fb00ef9 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/entity/TakeStash.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/entity/TakeStash.java @@ -8,7 +8,7 @@ public class TakeStash { * This field was generated by MyBatis Generator. * This field corresponds to the database column sys_take_stash.stash_id * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ private String stashId; @@ -17,7 +17,7 @@ public class TakeStash { * This field was generated by MyBatis Generator. * This field corresponds to the database column sys_take_stash.member_id * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ private String memberId; @@ -26,7 +26,7 @@ public class TakeStash { * This field was generated by MyBatis Generator. * This field corresponds to the database column sys_take_stash.training_id * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ private String trainingId; @@ -35,7 +35,7 @@ public class TakeStash { * This field was generated by MyBatis Generator. * This field corresponds to the database column sys_take_stash.trading_code * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ private String tradingCode; @@ -44,7 +44,7 @@ public class TakeStash { * This field was generated by MyBatis Generator. * This field corresponds to the database column sys_take_stash.currency_name * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ private String currencyName; @@ -53,7 +53,7 @@ public class TakeStash { * This field was generated by MyBatis Generator. * This field corresponds to the database column sys_take_stash.order_number * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ private String orderNumber; @@ -62,7 +62,7 @@ public class TakeStash { * This field was generated by MyBatis Generator. * This field corresponds to the database column sys_take_stash.buy_sell_type * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ private String buySellType; @@ -71,7 +71,7 @@ public class TakeStash { * This field was generated by MyBatis Generator. * This field corresponds to the database column sys_take_stash.volume_transaction * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ private Double volumeTransaction; @@ -80,16 +80,25 @@ public class TakeStash { * This field was generated by MyBatis Generator. * This field corresponds to the database column sys_take_stash.price_transaction * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ private Double priceTransaction; + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column sys_take_stash.price_transaction_close + * + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 + */ + private Double priceTransactionClose; + /** * * This field was generated by MyBatis Generator. * This field corresponds to the database column sys_take_stash.stop_loss * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ private Double stopLoss; @@ -98,7 +107,7 @@ public class TakeStash { * This field was generated by MyBatis Generator. * This field corresponds to the database column sys_take_stash.stop_win * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ private Double stopWin; @@ -107,16 +116,25 @@ public class TakeStash { * This field was generated by MyBatis Generator. * This field corresponds to the database column sys_take_stash.time_transaction * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ private Date timeTransaction; + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column sys_take_stash.time_transaction_close + * + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 + */ + private Date timeTransactionClose; + /** * * This field was generated by MyBatis Generator. * This field corresponds to the database column sys_take_stash.status * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ private Integer status; @@ -125,7 +143,7 @@ public class TakeStash { * This field was generated by MyBatis Generator. * This field corresponds to the database column sys_take_stash.profit_and_loss_by_close * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ private Double profitAndLossByClose; @@ -134,7 +152,7 @@ public class TakeStash { * This field was generated by MyBatis Generator. * This field corresponds to the database column sys_take_stash.trading_margin * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ private Double tradingMargin; @@ -144,7 +162,7 @@ public class TakeStash { * * @return the value of sys_take_stash.stash_id * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public String getStashId() { return stashId; @@ -156,7 +174,7 @@ public class TakeStash { * * @param stashId the value for sys_take_stash.stash_id * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setStashId(String stashId) { this.stashId = stashId == null ? null : stashId.trim(); @@ -168,7 +186,7 @@ public class TakeStash { * * @return the value of sys_take_stash.member_id * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public String getMemberId() { return memberId; @@ -180,7 +198,7 @@ public class TakeStash { * * @param memberId the value for sys_take_stash.member_id * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setMemberId(String memberId) { this.memberId = memberId == null ? null : memberId.trim(); @@ -192,7 +210,7 @@ public class TakeStash { * * @return the value of sys_take_stash.training_id * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public String getTrainingId() { return trainingId; @@ -204,7 +222,7 @@ public class TakeStash { * * @param trainingId the value for sys_take_stash.training_id * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setTrainingId(String trainingId) { this.trainingId = trainingId == null ? null : trainingId.trim(); @@ -216,7 +234,7 @@ public class TakeStash { * * @return the value of sys_take_stash.trading_code * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public String getTradingCode() { return tradingCode; @@ -228,7 +246,7 @@ public class TakeStash { * * @param tradingCode the value for sys_take_stash.trading_code * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setTradingCode(String tradingCode) { this.tradingCode = tradingCode == null ? null : tradingCode.trim(); @@ -240,7 +258,7 @@ public class TakeStash { * * @return the value of sys_take_stash.currency_name * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public String getCurrencyName() { return currencyName; @@ -252,7 +270,7 @@ public class TakeStash { * * @param currencyName the value for sys_take_stash.currency_name * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setCurrencyName(String currencyName) { this.currencyName = currencyName == null ? null : currencyName.trim(); @@ -264,7 +282,7 @@ public class TakeStash { * * @return the value of sys_take_stash.order_number * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public String getOrderNumber() { return orderNumber; @@ -276,7 +294,7 @@ public class TakeStash { * * @param orderNumber the value for sys_take_stash.order_number * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setOrderNumber(String orderNumber) { this.orderNumber = orderNumber == null ? null : orderNumber.trim(); @@ -288,7 +306,7 @@ public class TakeStash { * * @return the value of sys_take_stash.buy_sell_type * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public String getBuySellType() { return buySellType; @@ -300,7 +318,7 @@ public class TakeStash { * * @param buySellType the value for sys_take_stash.buy_sell_type * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setBuySellType(String buySellType) { this.buySellType = buySellType == null ? null : buySellType.trim(); @@ -312,7 +330,7 @@ public class TakeStash { * * @return the value of sys_take_stash.volume_transaction * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public Double getVolumeTransaction() { return volumeTransaction; @@ -324,7 +342,7 @@ public class TakeStash { * * @param volumeTransaction the value for sys_take_stash.volume_transaction * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setVolumeTransaction(Double volumeTransaction) { this.volumeTransaction = volumeTransaction; @@ -336,7 +354,7 @@ public class TakeStash { * * @return the value of sys_take_stash.price_transaction * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public Double getPriceTransaction() { return priceTransaction; @@ -348,19 +366,43 @@ public class TakeStash { * * @param priceTransaction the value for sys_take_stash.price_transaction * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setPriceTransaction(Double priceTransaction) { this.priceTransaction = priceTransaction; } + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column sys_take_stash.price_transaction_close + * + * @return the value of sys_take_stash.price_transaction_close + * + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 + */ + public Double getPriceTransactionClose() { + return priceTransactionClose; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column sys_take_stash.price_transaction_close + * + * @param priceTransactionClose the value for sys_take_stash.price_transaction_close + * + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 + */ + public void setPriceTransactionClose(Double priceTransactionClose) { + this.priceTransactionClose = priceTransactionClose; + } + /** * This method was generated by MyBatis Generator. * This method returns the value of the database column sys_take_stash.stop_loss * * @return the value of sys_take_stash.stop_loss * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public Double getStopLoss() { return stopLoss; @@ -372,7 +414,7 @@ public class TakeStash { * * @param stopLoss the value for sys_take_stash.stop_loss * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setStopLoss(Double stopLoss) { this.stopLoss = stopLoss; @@ -384,7 +426,7 @@ public class TakeStash { * * @return the value of sys_take_stash.stop_win * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public Double getStopWin() { return stopWin; @@ -396,7 +438,7 @@ public class TakeStash { * * @param stopWin the value for sys_take_stash.stop_win * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setStopWin(Double stopWin) { this.stopWin = stopWin; @@ -408,7 +450,7 @@ public class TakeStash { * * @return the value of sys_take_stash.time_transaction * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public Date getTimeTransaction() { return timeTransaction; @@ -420,19 +462,43 @@ public class TakeStash { * * @param timeTransaction the value for sys_take_stash.time_transaction * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setTimeTransaction(Date timeTransaction) { this.timeTransaction = timeTransaction; } + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column sys_take_stash.time_transaction_close + * + * @return the value of sys_take_stash.time_transaction_close + * + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 + */ + public Date getTimeTransactionClose() { + return timeTransactionClose; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column sys_take_stash.time_transaction_close + * + * @param timeTransactionClose the value for sys_take_stash.time_transaction_close + * + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 + */ + public void setTimeTransactionClose(Date timeTransactionClose) { + this.timeTransactionClose = timeTransactionClose; + } + /** * This method was generated by MyBatis Generator. * This method returns the value of the database column sys_take_stash.status * * @return the value of sys_take_stash.status * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public Integer getStatus() { return status; @@ -444,7 +510,7 @@ public class TakeStash { * * @param status the value for sys_take_stash.status * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setStatus(Integer status) { this.status = status; @@ -456,7 +522,7 @@ public class TakeStash { * * @return the value of sys_take_stash.profit_and_loss_by_close * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public Double getProfitAndLossByClose() { return profitAndLossByClose; @@ -468,7 +534,7 @@ public class TakeStash { * * @param profitAndLossByClose the value for sys_take_stash.profit_and_loss_by_close * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setProfitAndLossByClose(Double profitAndLossByClose) { this.profitAndLossByClose = profitAndLossByClose; @@ -480,7 +546,7 @@ public class TakeStash { * * @return the value of sys_take_stash.trading_margin * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public Double getTradingMargin() { return tradingMargin; @@ -492,7 +558,7 @@ public class TakeStash { * * @param tradingMargin the value for sys_take_stash.trading_margin * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setTradingMargin(Double tradingMargin) { this.tradingMargin = tradingMargin; diff --git a/src/main/java/com/sztzjy/forex/trading_trading/entity/TakeStashExample.java b/src/main/java/com/sztzjy/forex/trading_trading/entity/TakeStashExample.java index 8c327eb..12f59b0 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/entity/TakeStashExample.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/entity/TakeStashExample.java @@ -9,7 +9,7 @@ public class TakeStashExample { * This field was generated by MyBatis Generator. * This field corresponds to the database table sys_take_stash * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ protected String orderByClause; @@ -17,7 +17,7 @@ public class TakeStashExample { * This field was generated by MyBatis Generator. * This field corresponds to the database table sys_take_stash * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ protected boolean distinct; @@ -25,15 +25,15 @@ public class TakeStashExample { * This field was generated by MyBatis Generator. * This field corresponds to the database table sys_take_stash * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ - protected List oredCriteria; + protected List oredCriteria; /** * This method was generated by MyBatis Generator. * This method corresponds to the database table sys_take_stash * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public TakeStashExample() { oredCriteria = new ArrayList<>(); @@ -43,7 +43,7 @@ public class TakeStashExample { * This method was generated by MyBatis Generator. * This method corresponds to the database table sys_take_stash * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setOrderByClause(String orderByClause) { this.orderByClause = orderByClause; @@ -53,7 +53,7 @@ public class TakeStashExample { * This method was generated by MyBatis Generator. * This method corresponds to the database table sys_take_stash * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public String getOrderByClause() { return orderByClause; @@ -63,7 +63,7 @@ public class TakeStashExample { * This method was generated by MyBatis Generator. * This method corresponds to the database table sys_take_stash * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void setDistinct(boolean distinct) { this.distinct = distinct; @@ -73,7 +73,7 @@ public class TakeStashExample { * This method was generated by MyBatis Generator. * This method corresponds to the database table sys_take_stash * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public boolean isDistinct() { return distinct; @@ -83,9 +83,9 @@ public class TakeStashExample { * This method was generated by MyBatis Generator. * This method corresponds to the database table sys_take_stash * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ - public List getOredCriteria() { + public List getOredCriteria() { return oredCriteria; } @@ -93,9 +93,9 @@ public class TakeStashExample { * This method was generated by MyBatis Generator. * This method corresponds to the database table sys_take_stash * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ - public void or(Criteria criteria) { + public void or(TakeStashExample.Criteria criteria) { oredCriteria.add(criteria); } @@ -103,10 +103,10 @@ public class TakeStashExample { * This method was generated by MyBatis Generator. * This method corresponds to the database table sys_take_stash * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ - public Criteria or() { - Criteria criteria = createCriteriaInternal(); + public TakeStashExample.Criteria or() { + TakeStashExample.Criteria criteria = createCriteriaInternal(); oredCriteria.add(criteria); return criteria; } @@ -115,10 +115,10 @@ public class TakeStashExample { * This method was generated by MyBatis Generator. * This method corresponds to the database table sys_take_stash * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); + public TakeStashExample.Criteria createCriteria() { + TakeStashExample.Criteria criteria = createCriteriaInternal(); if (oredCriteria.size() == 0) { oredCriteria.add(criteria); } @@ -129,10 +129,10 @@ public class TakeStashExample { * This method was generated by MyBatis Generator. * This method corresponds to the database table sys_take_stash * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); + protected TakeStashExample.Criteria createCriteriaInternal() { + TakeStashExample.Criteria criteria = new TakeStashExample.Criteria(); return criteria; } @@ -140,7 +140,7 @@ public class TakeStashExample { * This method was generated by MyBatis Generator. * This method corresponds to the database table sys_take_stash * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public void clear() { oredCriteria.clear(); @@ -152,10 +152,10 @@ public class TakeStashExample { * This class was generated by MyBatis Generator. * This class corresponds to the database table sys_take_stash * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ protected abstract static class GeneratedCriteria { - protected List criteria; + protected List criteria; protected GeneratedCriteria() { super(); @@ -166,11 +166,11 @@ public class TakeStashExample { return criteria.size() > 0; } - public List getAllCriteria() { + public List getAllCriteria() { return criteria; } - public List getCriteria() { + public List getCriteria() { return criteria; } @@ -178,991 +178,1111 @@ public class TakeStashExample { if (condition == null) { throw new RuntimeException("Value for condition cannot be null"); } - criteria.add(new Criterion(condition)); + criteria.add(new TakeStashExample.Criterion(condition)); } protected void addCriterion(String condition, Object value, String property) { if (value == null) { throw new RuntimeException("Value for " + property + " cannot be null"); } - criteria.add(new Criterion(condition, value)); + criteria.add(new TakeStashExample.Criterion(condition, value)); } protected void addCriterion(String condition, Object value1, Object value2, String property) { if (value1 == null || value2 == null) { throw new RuntimeException("Between values for " + property + " cannot be null"); } - criteria.add(new Criterion(condition, value1, value2)); + criteria.add(new TakeStashExample.Criterion(condition, value1, value2)); } - public Criteria andStashIdIsNull() { + public TakeStashExample.Criteria andStashIdIsNull() { addCriterion("stash_id is null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStashIdIsNotNull() { + public TakeStashExample.Criteria andStashIdIsNotNull() { addCriterion("stash_id is not null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStashIdEqualTo(String value) { + public TakeStashExample.Criteria andStashIdEqualTo(String value) { addCriterion("stash_id =", value, "stashId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStashIdNotEqualTo(String value) { + public TakeStashExample.Criteria andStashIdNotEqualTo(String value) { addCriterion("stash_id <>", value, "stashId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStashIdGreaterThan(String value) { + public TakeStashExample.Criteria andStashIdGreaterThan(String value) { addCriterion("stash_id >", value, "stashId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStashIdGreaterThanOrEqualTo(String value) { + public TakeStashExample.Criteria andStashIdGreaterThanOrEqualTo(String value) { addCriterion("stash_id >=", value, "stashId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStashIdLessThan(String value) { + public TakeStashExample.Criteria andStashIdLessThan(String value) { addCriterion("stash_id <", value, "stashId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStashIdLessThanOrEqualTo(String value) { + public TakeStashExample.Criteria andStashIdLessThanOrEqualTo(String value) { addCriterion("stash_id <=", value, "stashId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStashIdLike(String value) { + public TakeStashExample.Criteria andStashIdLike(String value) { addCriterion("stash_id like", value, "stashId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStashIdNotLike(String value) { + public TakeStashExample.Criteria andStashIdNotLike(String value) { addCriterion("stash_id not like", value, "stashId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStashIdIn(List values) { + public TakeStashExample.Criteria andStashIdIn(List values) { addCriterion("stash_id in", values, "stashId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStashIdNotIn(List values) { + public TakeStashExample.Criteria andStashIdNotIn(List values) { addCriterion("stash_id not in", values, "stashId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStashIdBetween(String value1, String value2) { + public TakeStashExample.Criteria andStashIdBetween(String value1, String value2) { addCriterion("stash_id between", value1, value2, "stashId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStashIdNotBetween(String value1, String value2) { + public TakeStashExample.Criteria andStashIdNotBetween(String value1, String value2) { addCriterion("stash_id not between", value1, value2, "stashId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andMemberIdIsNull() { + public TakeStashExample.Criteria andMemberIdIsNull() { addCriterion("member_id is null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andMemberIdIsNotNull() { + public TakeStashExample.Criteria andMemberIdIsNotNull() { addCriterion("member_id is not null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andMemberIdEqualTo(String value) { + public TakeStashExample.Criteria andMemberIdEqualTo(String value) { addCriterion("member_id =", value, "memberId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andMemberIdNotEqualTo(String value) { + public TakeStashExample.Criteria andMemberIdNotEqualTo(String value) { addCriterion("member_id <>", value, "memberId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andMemberIdGreaterThan(String value) { + public TakeStashExample.Criteria andMemberIdGreaterThan(String value) { addCriterion("member_id >", value, "memberId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andMemberIdGreaterThanOrEqualTo(String value) { + public TakeStashExample.Criteria andMemberIdGreaterThanOrEqualTo(String value) { addCriterion("member_id >=", value, "memberId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andMemberIdLessThan(String value) { + public TakeStashExample.Criteria andMemberIdLessThan(String value) { addCriterion("member_id <", value, "memberId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andMemberIdLessThanOrEqualTo(String value) { + public TakeStashExample.Criteria andMemberIdLessThanOrEqualTo(String value) { addCriterion("member_id <=", value, "memberId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andMemberIdLike(String value) { + public TakeStashExample.Criteria andMemberIdLike(String value) { addCriterion("member_id like", value, "memberId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andMemberIdNotLike(String value) { + public TakeStashExample.Criteria andMemberIdNotLike(String value) { addCriterion("member_id not like", value, "memberId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andMemberIdIn(List values) { + public TakeStashExample.Criteria andMemberIdIn(List values) { addCriterion("member_id in", values, "memberId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andMemberIdNotIn(List values) { + public TakeStashExample.Criteria andMemberIdNotIn(List values) { addCriterion("member_id not in", values, "memberId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andMemberIdBetween(String value1, String value2) { + public TakeStashExample.Criteria andMemberIdBetween(String value1, String value2) { addCriterion("member_id between", value1, value2, "memberId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andMemberIdNotBetween(String value1, String value2) { + public TakeStashExample.Criteria andMemberIdNotBetween(String value1, String value2) { addCriterion("member_id not between", value1, value2, "memberId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTrainingIdIsNull() { + public TakeStashExample.Criteria andTrainingIdIsNull() { addCriterion("training_id is null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTrainingIdIsNotNull() { + public TakeStashExample.Criteria andTrainingIdIsNotNull() { addCriterion("training_id is not null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTrainingIdEqualTo(String value) { + public TakeStashExample.Criteria andTrainingIdEqualTo(String value) { addCriterion("training_id =", value, "trainingId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTrainingIdNotEqualTo(String value) { + public TakeStashExample.Criteria andTrainingIdNotEqualTo(String value) { addCriterion("training_id <>", value, "trainingId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTrainingIdGreaterThan(String value) { + public TakeStashExample.Criteria andTrainingIdGreaterThan(String value) { addCriterion("training_id >", value, "trainingId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTrainingIdGreaterThanOrEqualTo(String value) { + public TakeStashExample.Criteria andTrainingIdGreaterThanOrEqualTo(String value) { addCriterion("training_id >=", value, "trainingId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTrainingIdLessThan(String value) { + public TakeStashExample.Criteria andTrainingIdLessThan(String value) { addCriterion("training_id <", value, "trainingId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTrainingIdLessThanOrEqualTo(String value) { + public TakeStashExample.Criteria andTrainingIdLessThanOrEqualTo(String value) { addCriterion("training_id <=", value, "trainingId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTrainingIdLike(String value) { + public TakeStashExample.Criteria andTrainingIdLike(String value) { addCriterion("training_id like", value, "trainingId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTrainingIdNotLike(String value) { + public TakeStashExample.Criteria andTrainingIdNotLike(String value) { addCriterion("training_id not like", value, "trainingId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTrainingIdIn(List values) { + public TakeStashExample.Criteria andTrainingIdIn(List values) { addCriterion("training_id in", values, "trainingId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTrainingIdNotIn(List values) { + public TakeStashExample.Criteria andTrainingIdNotIn(List values) { addCriterion("training_id not in", values, "trainingId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTrainingIdBetween(String value1, String value2) { + public TakeStashExample.Criteria andTrainingIdBetween(String value1, String value2) { addCriterion("training_id between", value1, value2, "trainingId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTrainingIdNotBetween(String value1, String value2) { + public TakeStashExample.Criteria andTrainingIdNotBetween(String value1, String value2) { addCriterion("training_id not between", value1, value2, "trainingId"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingCodeIsNull() { + public TakeStashExample.Criteria andTradingCodeIsNull() { addCriterion("trading_code is null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingCodeIsNotNull() { + public TakeStashExample.Criteria andTradingCodeIsNotNull() { addCriterion("trading_code is not null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingCodeEqualTo(String value) { + public TakeStashExample.Criteria andTradingCodeEqualTo(String value) { addCriterion("trading_code =", value, "tradingCode"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingCodeNotEqualTo(String value) { + public TakeStashExample.Criteria andTradingCodeNotEqualTo(String value) { addCriterion("trading_code <>", value, "tradingCode"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingCodeGreaterThan(String value) { + public TakeStashExample.Criteria andTradingCodeGreaterThan(String value) { addCriterion("trading_code >", value, "tradingCode"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingCodeGreaterThanOrEqualTo(String value) { + public TakeStashExample.Criteria andTradingCodeGreaterThanOrEqualTo(String value) { addCriterion("trading_code >=", value, "tradingCode"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingCodeLessThan(String value) { + public TakeStashExample.Criteria andTradingCodeLessThan(String value) { addCriterion("trading_code <", value, "tradingCode"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingCodeLessThanOrEqualTo(String value) { + public TakeStashExample.Criteria andTradingCodeLessThanOrEqualTo(String value) { addCriterion("trading_code <=", value, "tradingCode"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingCodeLike(String value) { + public TakeStashExample.Criteria andTradingCodeLike(String value) { addCriterion("trading_code like", value, "tradingCode"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingCodeNotLike(String value) { + public TakeStashExample.Criteria andTradingCodeNotLike(String value) { addCriterion("trading_code not like", value, "tradingCode"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingCodeIn(List values) { + public TakeStashExample.Criteria andTradingCodeIn(List values) { addCriterion("trading_code in", values, "tradingCode"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingCodeNotIn(List values) { + public TakeStashExample.Criteria andTradingCodeNotIn(List values) { addCriterion("trading_code not in", values, "tradingCode"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingCodeBetween(String value1, String value2) { + public TakeStashExample.Criteria andTradingCodeBetween(String value1, String value2) { addCriterion("trading_code between", value1, value2, "tradingCode"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingCodeNotBetween(String value1, String value2) { + public TakeStashExample.Criteria andTradingCodeNotBetween(String value1, String value2) { addCriterion("trading_code not between", value1, value2, "tradingCode"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andCurrencyNameIsNull() { + public TakeStashExample.Criteria andCurrencyNameIsNull() { addCriterion("currency_name is null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andCurrencyNameIsNotNull() { + public TakeStashExample.Criteria andCurrencyNameIsNotNull() { addCriterion("currency_name is not null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andCurrencyNameEqualTo(String value) { + public TakeStashExample.Criteria andCurrencyNameEqualTo(String value) { addCriterion("currency_name =", value, "currencyName"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andCurrencyNameNotEqualTo(String value) { + public TakeStashExample.Criteria andCurrencyNameNotEqualTo(String value) { addCriterion("currency_name <>", value, "currencyName"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andCurrencyNameGreaterThan(String value) { + public TakeStashExample.Criteria andCurrencyNameGreaterThan(String value) { addCriterion("currency_name >", value, "currencyName"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andCurrencyNameGreaterThanOrEqualTo(String value) { + public TakeStashExample.Criteria andCurrencyNameGreaterThanOrEqualTo(String value) { addCriterion("currency_name >=", value, "currencyName"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andCurrencyNameLessThan(String value) { + public TakeStashExample.Criteria andCurrencyNameLessThan(String value) { addCriterion("currency_name <", value, "currencyName"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andCurrencyNameLessThanOrEqualTo(String value) { + public TakeStashExample.Criteria andCurrencyNameLessThanOrEqualTo(String value) { addCriterion("currency_name <=", value, "currencyName"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andCurrencyNameLike(String value) { + public TakeStashExample.Criteria andCurrencyNameLike(String value) { addCriterion("currency_name like", value, "currencyName"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andCurrencyNameNotLike(String value) { + public TakeStashExample.Criteria andCurrencyNameNotLike(String value) { addCriterion("currency_name not like", value, "currencyName"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andCurrencyNameIn(List values) { + public TakeStashExample.Criteria andCurrencyNameIn(List values) { addCriterion("currency_name in", values, "currencyName"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andCurrencyNameNotIn(List values) { + public TakeStashExample.Criteria andCurrencyNameNotIn(List values) { addCriterion("currency_name not in", values, "currencyName"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andCurrencyNameBetween(String value1, String value2) { + public TakeStashExample.Criteria andCurrencyNameBetween(String value1, String value2) { addCriterion("currency_name between", value1, value2, "currencyName"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andCurrencyNameNotBetween(String value1, String value2) { + public TakeStashExample.Criteria andCurrencyNameNotBetween(String value1, String value2) { addCriterion("currency_name not between", value1, value2, "currencyName"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andOrderNumberIsNull() { + public TakeStashExample.Criteria andOrderNumberIsNull() { addCriterion("order_number is null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andOrderNumberIsNotNull() { + public TakeStashExample.Criteria andOrderNumberIsNotNull() { addCriterion("order_number is not null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andOrderNumberEqualTo(String value) { + public TakeStashExample.Criteria andOrderNumberEqualTo(String value) { addCriterion("order_number =", value, "orderNumber"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andOrderNumberNotEqualTo(String value) { + public TakeStashExample.Criteria andOrderNumberNotEqualTo(String value) { addCriterion("order_number <>", value, "orderNumber"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andOrderNumberGreaterThan(String value) { + public TakeStashExample.Criteria andOrderNumberGreaterThan(String value) { addCriterion("order_number >", value, "orderNumber"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andOrderNumberGreaterThanOrEqualTo(String value) { + public TakeStashExample.Criteria andOrderNumberGreaterThanOrEqualTo(String value) { addCriterion("order_number >=", value, "orderNumber"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andOrderNumberLessThan(String value) { + public TakeStashExample.Criteria andOrderNumberLessThan(String value) { addCriterion("order_number <", value, "orderNumber"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andOrderNumberLessThanOrEqualTo(String value) { + public TakeStashExample.Criteria andOrderNumberLessThanOrEqualTo(String value) { addCriterion("order_number <=", value, "orderNumber"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andOrderNumberLike(String value) { + public TakeStashExample.Criteria andOrderNumberLike(String value) { addCriterion("order_number like", value, "orderNumber"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andOrderNumberNotLike(String value) { + public TakeStashExample.Criteria andOrderNumberNotLike(String value) { addCriterion("order_number not like", value, "orderNumber"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andOrderNumberIn(List values) { + public TakeStashExample.Criteria andOrderNumberIn(List values) { addCriterion("order_number in", values, "orderNumber"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andOrderNumberNotIn(List values) { + public TakeStashExample.Criteria andOrderNumberNotIn(List values) { addCriterion("order_number not in", values, "orderNumber"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andOrderNumberBetween(String value1, String value2) { + public TakeStashExample.Criteria andOrderNumberBetween(String value1, String value2) { addCriterion("order_number between", value1, value2, "orderNumber"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andOrderNumberNotBetween(String value1, String value2) { + public TakeStashExample.Criteria andOrderNumberNotBetween(String value1, String value2) { addCriterion("order_number not between", value1, value2, "orderNumber"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andBuySellTypeIsNull() { + public TakeStashExample.Criteria andBuySellTypeIsNull() { addCriterion("buy_sell_type is null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andBuySellTypeIsNotNull() { + public TakeStashExample.Criteria andBuySellTypeIsNotNull() { addCriterion("buy_sell_type is not null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andBuySellTypeEqualTo(String value) { + public TakeStashExample.Criteria andBuySellTypeEqualTo(String value) { addCriterion("buy_sell_type =", value, "buySellType"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andBuySellTypeNotEqualTo(String value) { + public TakeStashExample.Criteria andBuySellTypeNotEqualTo(String value) { addCriterion("buy_sell_type <>", value, "buySellType"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andBuySellTypeGreaterThan(String value) { + public TakeStashExample.Criteria andBuySellTypeGreaterThan(String value) { addCriterion("buy_sell_type >", value, "buySellType"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andBuySellTypeGreaterThanOrEqualTo(String value) { + public TakeStashExample.Criteria andBuySellTypeGreaterThanOrEqualTo(String value) { addCriterion("buy_sell_type >=", value, "buySellType"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andBuySellTypeLessThan(String value) { + public TakeStashExample.Criteria andBuySellTypeLessThan(String value) { addCriterion("buy_sell_type <", value, "buySellType"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andBuySellTypeLessThanOrEqualTo(String value) { + public TakeStashExample.Criteria andBuySellTypeLessThanOrEqualTo(String value) { addCriterion("buy_sell_type <=", value, "buySellType"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andBuySellTypeLike(String value) { + public TakeStashExample.Criteria andBuySellTypeLike(String value) { addCriterion("buy_sell_type like", value, "buySellType"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andBuySellTypeNotLike(String value) { + public TakeStashExample.Criteria andBuySellTypeNotLike(String value) { addCriterion("buy_sell_type not like", value, "buySellType"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andBuySellTypeIn(List values) { + public TakeStashExample.Criteria andBuySellTypeIn(List values) { addCriterion("buy_sell_type in", values, "buySellType"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andBuySellTypeNotIn(List values) { + public TakeStashExample.Criteria andBuySellTypeNotIn(List values) { addCriterion("buy_sell_type not in", values, "buySellType"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andBuySellTypeBetween(String value1, String value2) { + public TakeStashExample.Criteria andBuySellTypeBetween(String value1, String value2) { addCriterion("buy_sell_type between", value1, value2, "buySellType"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andBuySellTypeNotBetween(String value1, String value2) { + public TakeStashExample.Criteria andBuySellTypeNotBetween(String value1, String value2) { addCriterion("buy_sell_type not between", value1, value2, "buySellType"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andVolumeTransactionIsNull() { + public TakeStashExample.Criteria andVolumeTransactionIsNull() { addCriterion("volume_transaction is null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andVolumeTransactionIsNotNull() { + public TakeStashExample.Criteria andVolumeTransactionIsNotNull() { addCriterion("volume_transaction is not null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andVolumeTransactionEqualTo(Double value) { + public TakeStashExample.Criteria andVolumeTransactionEqualTo(Double value) { addCriterion("volume_transaction =", value, "volumeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andVolumeTransactionNotEqualTo(Double value) { + public TakeStashExample.Criteria andVolumeTransactionNotEqualTo(Double value) { addCriterion("volume_transaction <>", value, "volumeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andVolumeTransactionGreaterThan(Double value) { + public TakeStashExample.Criteria andVolumeTransactionGreaterThan(Double value) { addCriterion("volume_transaction >", value, "volumeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andVolumeTransactionGreaterThanOrEqualTo(Double value) { + public TakeStashExample.Criteria andVolumeTransactionGreaterThanOrEqualTo(Double value) { addCriterion("volume_transaction >=", value, "volumeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andVolumeTransactionLessThan(Double value) { + public TakeStashExample.Criteria andVolumeTransactionLessThan(Double value) { addCriterion("volume_transaction <", value, "volumeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andVolumeTransactionLessThanOrEqualTo(Double value) { + public TakeStashExample.Criteria andVolumeTransactionLessThanOrEqualTo(Double value) { addCriterion("volume_transaction <=", value, "volumeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andVolumeTransactionIn(List values) { + public TakeStashExample.Criteria andVolumeTransactionIn(List values) { addCriterion("volume_transaction in", values, "volumeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andVolumeTransactionNotIn(List values) { + public TakeStashExample.Criteria andVolumeTransactionNotIn(List values) { addCriterion("volume_transaction not in", values, "volumeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andVolumeTransactionBetween(Double value1, Double value2) { + public TakeStashExample.Criteria andVolumeTransactionBetween(Double value1, Double value2) { addCriterion("volume_transaction between", value1, value2, "volumeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andVolumeTransactionNotBetween(Double value1, Double value2) { + public TakeStashExample.Criteria andVolumeTransactionNotBetween(Double value1, Double value2) { addCriterion("volume_transaction not between", value1, value2, "volumeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andPriceTransactionIsNull() { + public TakeStashExample.Criteria andPriceTransactionIsNull() { addCriterion("price_transaction is null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andPriceTransactionIsNotNull() { + public TakeStashExample.Criteria andPriceTransactionIsNotNull() { addCriterion("price_transaction is not null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andPriceTransactionEqualTo(Double value) { + public TakeStashExample.Criteria andPriceTransactionEqualTo(Double value) { addCriterion("price_transaction =", value, "priceTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andPriceTransactionNotEqualTo(Double value) { + public TakeStashExample.Criteria andPriceTransactionNotEqualTo(Double value) { addCriterion("price_transaction <>", value, "priceTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andPriceTransactionGreaterThan(Double value) { + public TakeStashExample.Criteria andPriceTransactionGreaterThan(Double value) { addCriterion("price_transaction >", value, "priceTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andPriceTransactionGreaterThanOrEqualTo(Double value) { + public TakeStashExample.Criteria andPriceTransactionGreaterThanOrEqualTo(Double value) { addCriterion("price_transaction >=", value, "priceTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andPriceTransactionLessThan(Double value) { + public TakeStashExample.Criteria andPriceTransactionLessThan(Double value) { addCriterion("price_transaction <", value, "priceTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andPriceTransactionLessThanOrEqualTo(Double value) { + public TakeStashExample.Criteria andPriceTransactionLessThanOrEqualTo(Double value) { addCriterion("price_transaction <=", value, "priceTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andPriceTransactionIn(List values) { + public TakeStashExample.Criteria andPriceTransactionIn(List values) { addCriterion("price_transaction in", values, "priceTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andPriceTransactionNotIn(List values) { + public TakeStashExample.Criteria andPriceTransactionNotIn(List values) { addCriterion("price_transaction not in", values, "priceTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andPriceTransactionBetween(Double value1, Double value2) { + public TakeStashExample.Criteria andPriceTransactionBetween(Double value1, Double value2) { addCriterion("price_transaction between", value1, value2, "priceTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andPriceTransactionNotBetween(Double value1, Double value2) { + public TakeStashExample.Criteria andPriceTransactionNotBetween(Double value1, Double value2) { addCriterion("price_transaction not between", value1, value2, "priceTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopLossIsNull() { + public TakeStashExample.Criteria andPriceTransactionCloseIsNull() { + addCriterion("price_transaction_close is null"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andPriceTransactionCloseIsNotNull() { + addCriterion("price_transaction_close is not null"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andPriceTransactionCloseEqualTo(Double value) { + addCriterion("price_transaction_close =", value, "priceTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andPriceTransactionCloseNotEqualTo(Double value) { + addCriterion("price_transaction_close <>", value, "priceTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andPriceTransactionCloseGreaterThan(Double value) { + addCriterion("price_transaction_close >", value, "priceTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andPriceTransactionCloseGreaterThanOrEqualTo(Double value) { + addCriterion("price_transaction_close >=", value, "priceTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andPriceTransactionCloseLessThan(Double value) { + addCriterion("price_transaction_close <", value, "priceTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andPriceTransactionCloseLessThanOrEqualTo(Double value) { + addCriterion("price_transaction_close <=", value, "priceTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andPriceTransactionCloseIn(List values) { + addCriterion("price_transaction_close in", values, "priceTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andPriceTransactionCloseNotIn(List values) { + addCriterion("price_transaction_close not in", values, "priceTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andPriceTransactionCloseBetween(Double value1, Double value2) { + addCriterion("price_transaction_close between", value1, value2, "priceTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andPriceTransactionCloseNotBetween(Double value1, Double value2) { + addCriterion("price_transaction_close not between", value1, value2, "priceTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andStopLossIsNull() { addCriterion("stop_loss is null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopLossIsNotNull() { + public TakeStashExample.Criteria andStopLossIsNotNull() { addCriterion("stop_loss is not null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopLossEqualTo(Double value) { + public TakeStashExample.Criteria andStopLossEqualTo(Double value) { addCriterion("stop_loss =", value, "stopLoss"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopLossNotEqualTo(Double value) { + public TakeStashExample.Criteria andStopLossNotEqualTo(Double value) { addCriterion("stop_loss <>", value, "stopLoss"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopLossGreaterThan(Double value) { + public TakeStashExample.Criteria andStopLossGreaterThan(Double value) { addCriterion("stop_loss >", value, "stopLoss"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopLossGreaterThanOrEqualTo(Double value) { + public TakeStashExample.Criteria andStopLossGreaterThanOrEqualTo(Double value) { addCriterion("stop_loss >=", value, "stopLoss"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopLossLessThan(Double value) { + public TakeStashExample.Criteria andStopLossLessThan(Double value) { addCriterion("stop_loss <", value, "stopLoss"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopLossLessThanOrEqualTo(Double value) { + public TakeStashExample.Criteria andStopLossLessThanOrEqualTo(Double value) { addCriterion("stop_loss <=", value, "stopLoss"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopLossIn(List values) { + public TakeStashExample.Criteria andStopLossIn(List values) { addCriterion("stop_loss in", values, "stopLoss"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopLossNotIn(List values) { + public TakeStashExample.Criteria andStopLossNotIn(List values) { addCriterion("stop_loss not in", values, "stopLoss"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopLossBetween(Double value1, Double value2) { + public TakeStashExample.Criteria andStopLossBetween(Double value1, Double value2) { addCriterion("stop_loss between", value1, value2, "stopLoss"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopLossNotBetween(Double value1, Double value2) { + public TakeStashExample.Criteria andStopLossNotBetween(Double value1, Double value2) { addCriterion("stop_loss not between", value1, value2, "stopLoss"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopWinIsNull() { + public TakeStashExample.Criteria andStopWinIsNull() { addCriterion("stop_win is null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopWinIsNotNull() { + public TakeStashExample.Criteria andStopWinIsNotNull() { addCriterion("stop_win is not null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopWinEqualTo(Double value) { + public TakeStashExample.Criteria andStopWinEqualTo(Double value) { addCriterion("stop_win =", value, "stopWin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopWinNotEqualTo(Double value) { + public TakeStashExample.Criteria andStopWinNotEqualTo(Double value) { addCriterion("stop_win <>", value, "stopWin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopWinGreaterThan(Double value) { + public TakeStashExample.Criteria andStopWinGreaterThan(Double value) { addCriterion("stop_win >", value, "stopWin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopWinGreaterThanOrEqualTo(Double value) { + public TakeStashExample.Criteria andStopWinGreaterThanOrEqualTo(Double value) { addCriterion("stop_win >=", value, "stopWin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopWinLessThan(Double value) { + public TakeStashExample.Criteria andStopWinLessThan(Double value) { addCriterion("stop_win <", value, "stopWin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopWinLessThanOrEqualTo(Double value) { + public TakeStashExample.Criteria andStopWinLessThanOrEqualTo(Double value) { addCriterion("stop_win <=", value, "stopWin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopWinIn(List values) { + public TakeStashExample.Criteria andStopWinIn(List values) { addCriterion("stop_win in", values, "stopWin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopWinNotIn(List values) { + public TakeStashExample.Criteria andStopWinNotIn(List values) { addCriterion("stop_win not in", values, "stopWin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopWinBetween(Double value1, Double value2) { + public TakeStashExample.Criteria andStopWinBetween(Double value1, Double value2) { addCriterion("stop_win between", value1, value2, "stopWin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStopWinNotBetween(Double value1, Double value2) { + public TakeStashExample.Criteria andStopWinNotBetween(Double value1, Double value2) { addCriterion("stop_win not between", value1, value2, "stopWin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTimeTransactionIsNull() { + public TakeStashExample.Criteria andTimeTransactionIsNull() { addCriterion("time_transaction is null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTimeTransactionIsNotNull() { + public TakeStashExample.Criteria andTimeTransactionIsNotNull() { addCriterion("time_transaction is not null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTimeTransactionEqualTo(Date value) { + public TakeStashExample.Criteria andTimeTransactionEqualTo(Date value) { addCriterion("time_transaction =", value, "timeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTimeTransactionNotEqualTo(Date value) { + public TakeStashExample.Criteria andTimeTransactionNotEqualTo(Date value) { addCriterion("time_transaction <>", value, "timeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTimeTransactionGreaterThan(Date value) { + public TakeStashExample.Criteria andTimeTransactionGreaterThan(Date value) { addCriterion("time_transaction >", value, "timeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTimeTransactionGreaterThanOrEqualTo(Date value) { + public TakeStashExample.Criteria andTimeTransactionGreaterThanOrEqualTo(Date value) { addCriterion("time_transaction >=", value, "timeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTimeTransactionLessThan(Date value) { + public TakeStashExample.Criteria andTimeTransactionLessThan(Date value) { addCriterion("time_transaction <", value, "timeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTimeTransactionLessThanOrEqualTo(Date value) { + public TakeStashExample.Criteria andTimeTransactionLessThanOrEqualTo(Date value) { addCriterion("time_transaction <=", value, "timeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTimeTransactionIn(List values) { + public TakeStashExample.Criteria andTimeTransactionIn(List values) { addCriterion("time_transaction in", values, "timeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTimeTransactionNotIn(List values) { + public TakeStashExample.Criteria andTimeTransactionNotIn(List values) { addCriterion("time_transaction not in", values, "timeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTimeTransactionBetween(Date value1, Date value2) { + public TakeStashExample.Criteria andTimeTransactionBetween(Date value1, Date value2) { addCriterion("time_transaction between", value1, value2, "timeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTimeTransactionNotBetween(Date value1, Date value2) { + public TakeStashExample.Criteria andTimeTransactionNotBetween(Date value1, Date value2) { addCriterion("time_transaction not between", value1, value2, "timeTransaction"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andTimeTransactionCloseIsNull() { + addCriterion("time_transaction_close is null"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andTimeTransactionCloseIsNotNull() { + addCriterion("time_transaction_close is not null"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andTimeTransactionCloseEqualTo(Date value) { + addCriterion("time_transaction_close =", value, "timeTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andTimeTransactionCloseNotEqualTo(Date value) { + addCriterion("time_transaction_close <>", value, "timeTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andTimeTransactionCloseGreaterThan(Date value) { + addCriterion("time_transaction_close >", value, "timeTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andTimeTransactionCloseGreaterThanOrEqualTo(Date value) { + addCriterion("time_transaction_close >=", value, "timeTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andTimeTransactionCloseLessThan(Date value) { + addCriterion("time_transaction_close <", value, "timeTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andTimeTransactionCloseLessThanOrEqualTo(Date value) { + addCriterion("time_transaction_close <=", value, "timeTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andTimeTransactionCloseIn(List values) { + addCriterion("time_transaction_close in", values, "timeTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andTimeTransactionCloseNotIn(List values) { + addCriterion("time_transaction_close not in", values, "timeTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andTimeTransactionCloseBetween(Date value1, Date value2) { + addCriterion("time_transaction_close between", value1, value2, "timeTransactionClose"); + return (TakeStashExample.Criteria) this; + } + + public TakeStashExample.Criteria andTimeTransactionCloseNotBetween(Date value1, Date value2) { + addCriterion("time_transaction_close not between", value1, value2, "timeTransactionClose"); + return (TakeStashExample.Criteria) this; } - public Criteria andStatusIsNull() { + public TakeStashExample.Criteria andStatusIsNull() { addCriterion("status is null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStatusIsNotNull() { + public TakeStashExample.Criteria andStatusIsNotNull() { addCriterion("status is not null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStatusEqualTo(Integer value) { + public TakeStashExample.Criteria andStatusEqualTo(Integer value) { addCriterion("status =", value, "status"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStatusNotEqualTo(Integer value) { + public TakeStashExample.Criteria andStatusNotEqualTo(Integer value) { addCriterion("status <>", value, "status"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStatusGreaterThan(Integer value) { + public TakeStashExample.Criteria andStatusGreaterThan(Integer value) { addCriterion("status >", value, "status"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStatusGreaterThanOrEqualTo(Integer value) { + public TakeStashExample.Criteria andStatusGreaterThanOrEqualTo(Integer value) { addCriterion("status >=", value, "status"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStatusLessThan(Integer value) { + public TakeStashExample.Criteria andStatusLessThan(Integer value) { addCriterion("status <", value, "status"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStatusLessThanOrEqualTo(Integer value) { + public TakeStashExample.Criteria andStatusLessThanOrEqualTo(Integer value) { addCriterion("status <=", value, "status"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStatusIn(List values) { + public TakeStashExample.Criteria andStatusIn(List values) { addCriterion("status in", values, "status"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStatusNotIn(List values) { + public TakeStashExample.Criteria andStatusNotIn(List values) { addCriterion("status not in", values, "status"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStatusBetween(Integer value1, Integer value2) { + public TakeStashExample.Criteria andStatusBetween(Integer value1, Integer value2) { addCriterion("status between", value1, value2, "status"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andStatusNotBetween(Integer value1, Integer value2) { + public TakeStashExample.Criteria andStatusNotBetween(Integer value1, Integer value2) { addCriterion("status not between", value1, value2, "status"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andProfitAndLossByCloseIsNull() { + public TakeStashExample.Criteria andProfitAndLossByCloseIsNull() { addCriterion("profit_and_loss_by_close is null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andProfitAndLossByCloseIsNotNull() { + public TakeStashExample.Criteria andProfitAndLossByCloseIsNotNull() { addCriterion("profit_and_loss_by_close is not null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andProfitAndLossByCloseEqualTo(Double value) { + public TakeStashExample.Criteria andProfitAndLossByCloseEqualTo(Double value) { addCriterion("profit_and_loss_by_close =", value, "profitAndLossByClose"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andProfitAndLossByCloseNotEqualTo(Double value) { + public TakeStashExample.Criteria andProfitAndLossByCloseNotEqualTo(Double value) { addCriterion("profit_and_loss_by_close <>", value, "profitAndLossByClose"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andProfitAndLossByCloseGreaterThan(Double value) { + public TakeStashExample.Criteria andProfitAndLossByCloseGreaterThan(Double value) { addCriterion("profit_and_loss_by_close >", value, "profitAndLossByClose"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andProfitAndLossByCloseGreaterThanOrEqualTo(Double value) { + public TakeStashExample.Criteria andProfitAndLossByCloseGreaterThanOrEqualTo(Double value) { addCriterion("profit_and_loss_by_close >=", value, "profitAndLossByClose"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andProfitAndLossByCloseLessThan(Double value) { + public TakeStashExample.Criteria andProfitAndLossByCloseLessThan(Double value) { addCriterion("profit_and_loss_by_close <", value, "profitAndLossByClose"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andProfitAndLossByCloseLessThanOrEqualTo(Double value) { + public TakeStashExample.Criteria andProfitAndLossByCloseLessThanOrEqualTo(Double value) { addCriterion("profit_and_loss_by_close <=", value, "profitAndLossByClose"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andProfitAndLossByCloseIn(List values) { + public TakeStashExample.Criteria andProfitAndLossByCloseIn(List values) { addCriterion("profit_and_loss_by_close in", values, "profitAndLossByClose"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andProfitAndLossByCloseNotIn(List values) { + public TakeStashExample.Criteria andProfitAndLossByCloseNotIn(List values) { addCriterion("profit_and_loss_by_close not in", values, "profitAndLossByClose"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andProfitAndLossByCloseBetween(Double value1, Double value2) { + public TakeStashExample.Criteria andProfitAndLossByCloseBetween(Double value1, Double value2) { addCriterion("profit_and_loss_by_close between", value1, value2, "profitAndLossByClose"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andProfitAndLossByCloseNotBetween(Double value1, Double value2) { + public TakeStashExample.Criteria andProfitAndLossByCloseNotBetween(Double value1, Double value2) { addCriterion("profit_and_loss_by_close not between", value1, value2, "profitAndLossByClose"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingMarginIsNull() { + public TakeStashExample.Criteria andTradingMarginIsNull() { addCriterion("trading_margin is null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingMarginIsNotNull() { + public TakeStashExample.Criteria andTradingMarginIsNotNull() { addCriterion("trading_margin is not null"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingMarginEqualTo(Double value) { + public TakeStashExample.Criteria andTradingMarginEqualTo(Double value) { addCriterion("trading_margin =", value, "tradingMargin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingMarginNotEqualTo(Double value) { + public TakeStashExample.Criteria andTradingMarginNotEqualTo(Double value) { addCriterion("trading_margin <>", value, "tradingMargin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingMarginGreaterThan(Double value) { + public TakeStashExample.Criteria andTradingMarginGreaterThan(Double value) { addCriterion("trading_margin >", value, "tradingMargin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingMarginGreaterThanOrEqualTo(Double value) { + public TakeStashExample.Criteria andTradingMarginGreaterThanOrEqualTo(Double value) { addCriterion("trading_margin >=", value, "tradingMargin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingMarginLessThan(Double value) { + public TakeStashExample.Criteria andTradingMarginLessThan(Double value) { addCriterion("trading_margin <", value, "tradingMargin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingMarginLessThanOrEqualTo(Double value) { + public TakeStashExample.Criteria andTradingMarginLessThanOrEqualTo(Double value) { addCriterion("trading_margin <=", value, "tradingMargin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingMarginIn(List values) { + public TakeStashExample.Criteria andTradingMarginIn(List values) { addCriterion("trading_margin in", values, "tradingMargin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingMarginNotIn(List values) { + public TakeStashExample.Criteria andTradingMarginNotIn(List values) { addCriterion("trading_margin not in", values, "tradingMargin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingMarginBetween(Double value1, Double value2) { + public TakeStashExample.Criteria andTradingMarginBetween(Double value1, Double value2) { addCriterion("trading_margin between", value1, value2, "tradingMargin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } - public Criteria andTradingMarginNotBetween(Double value1, Double value2) { + public TakeStashExample.Criteria andTradingMarginNotBetween(Double value1, Double value2) { addCriterion("trading_margin not between", value1, value2, "tradingMargin"); - return (Criteria) this; + return (TakeStashExample.Criteria) this; } } @@ -1170,9 +1290,9 @@ public class TakeStashExample { * This class was generated by MyBatis Generator. * This class corresponds to the database table sys_take_stash * - * @mbg.generated do_not_delete_during_merge Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated do_not_delete_during_merge Fri Jul 21 14:51:28 CST 2023 */ - public static class Criteria extends GeneratedCriteria { + public static class Criteria extends TakeStashExample.GeneratedCriteria { protected Criteria() { super(); } @@ -1182,7 +1302,7 @@ public class TakeStashExample { * This class was generated by MyBatis Generator. * This class corresponds to the database table sys_take_stash * - * @mbg.generated Mon Jul 17 14:31:17 CST 2023 + * @mbg.generated Fri Jul 21 14:51:28 CST 2023 */ public static class Criterion { private String condition; diff --git a/src/main/java/com/sztzjy/forex/trading_trading/mappers/TrainingMapper.java b/src/main/java/com/sztzjy/forex/trading_trading/mappers/TrainingMapper.java index 22eefbc..6b44f57 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/mappers/TrainingMapper.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/mappers/TrainingMapper.java @@ -130,6 +130,9 @@ public interface TrainingMapper { "WHERE NOW() >= start_time AND NOW() <= end_time AND status <> 'ONGOING'") void updateTrainingStatusToInProgress(); - @Select("select training_id from sys_training where status=1") + @Select("select training_id from sys_training where status='ONGOING'") List selectProceedTraining(); + + @Select("select training_id from sys_training where status= 'FINISHED'") + List selectTrainingIdByStatus(); } \ No newline at end of file diff --git a/src/main/java/com/sztzjy/forex/trading_trading/service/PendingOrderService.java b/src/main/java/com/sztzjy/forex/trading_trading/service/PendingOrderService.java index ee2a1af..ca1449b 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/service/PendingOrderService.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/service/PendingOrderService.java @@ -1,8 +1,12 @@ package com.sztzjy.forex.trading_trading.service; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.sztzjy.forex.trading_trading.entity.PendingOrder; import com.sztzjy.forex.trading_trading.entity.PendingOrderExample; +import com.sztzjy.forex.trading_trading.entity.TakeStash; import com.sztzjy.forex.trading_trading.mappers.PendingOrderMapper; +import io.swagger.models.auth.In; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -17,15 +21,18 @@ public class PendingOrderService { pendingOrderMapper.insert(pendingOrder); } - public List selectByTrainingIdAndStatusAndMemberId(PendingOrder pendingOrder){ + public PageInfo selectByTrainingIdAndStatusAndMemberId(PendingOrder pendingOrder, Integer pageNum,Integer pageSize){ + PageHelper.startPage(pageNum, pageSize); PendingOrderExample pendingOrderExample = new PendingOrderExample(); PendingOrderExample.Criteria criteria = pendingOrderExample.createCriteria(); criteria.andMemberIdEqualTo(pendingOrder.getMemberId()).andTrainingIdEqualTo(pendingOrder.getTrainingId()).andStatusEqualTo(pendingOrder.getStatus()); List pendingOrders = pendingOrderMapper.selectByExample(pendingOrderExample); - return pendingOrders; + PageInfo pageInfo = new PageInfo<>(pendingOrders); + return pageInfo; } public void cancelOrder(String pendingOrderId){ pendingOrderMapper.deleteByPrimaryKey(pendingOrderId); } + } diff --git a/src/main/java/com/sztzjy/forex/trading_trading/service/ScheduledTask.java b/src/main/java/com/sztzjy/forex/trading_trading/service/ScheduledTask.java index 02309f3..995882d 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/service/ScheduledTask.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/service/ScheduledTask.java @@ -2,12 +2,17 @@ package com.sztzjy.forex.trading_trading.service; import cn.hutool.core.util.IdUtil; +import com.alibaba.fastjson.JSONObject; import com.sztzjy.forex.trading_trading.annotation.AnonymousAccess; import com.sztzjy.forex.trading_trading.common.mql5API.Mql5API; +import com.sztzjy.forex.trading_trading.controller.PendingOrderController; import com.sztzjy.forex.trading_trading.controller.TakeStashController; +import com.sztzjy.forex.trading_trading.controller.TradingController; import com.sztzjy.forex.trading_trading.entity.ForexMarketData; import com.sztzjy.forex.trading_trading.entity.mql5Entity.ForexData; import com.sztzjy.forex.trading_trading.mappers.TrainingMapper; +import com.sztzjy.forex.trading_trading.util.BigDecimalUtils; +import com.sztzjy.forex.trading_trading.util.ForexMarketDateUtil; import com.sztzjy.forex.trading_trading.util.RedisUtil; import lombok.extern.slf4j.Slf4j; import org.checkerframework.checker.units.qual.A; @@ -17,6 +22,8 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.PostMapping; +import javax.annotation.PostConstruct; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.*; @@ -44,40 +51,49 @@ public class ScheduledTask { @Autowired TakeStashController takeStashController; + @Autowired + ForexMarketDateUtil forexMarketDateUtil; + + @Autowired + PendingOrderController pendingOrderController; + + @Autowired + TradingController tradingController; + + @Autowired + BigDecimalUtils bigDecimalUtils; + @Scheduled(cron = "0 * * * * *") // 修改实训状态 每分钟执行一次 public void updateTrainingStatus() { trainingMapper.updateTrainingStatusToInProgress(); trainingMapper.updateTrainingStatusToEnd(); } - Boolean flag=false; //项目启动保证insertForexMarketData先执行 暂用 //每两分钟执行一次 真实的数据插入 + @PostConstruct @Scheduled(cron = "0 */2 * * * ?") public void insertForexMarketData() { - if(!timerEnable){ - return; - } - //TODO getMarketQuotation方法获取的数据有空指针,待解决 +// if(!timerEnable){ +// return; +// } Mql5API api = new Mql5API(); List forexData = api.getMarketQuotation(); List forexMarketDataList = ForexMarketData.copyToForexData(forexData); forexMarketDataService.insertAll(forexMarketDataList); redisUtil.set("ForexDateList", forexMarketDataList); - flag=true; } //每16秒执行一次 根据真实汇率数据生成模拟汇率数据 @Scheduled(cron = "0/16 * * * * ?") public void insertSimulatedForexMarketData() { - if(!timerEnable){ - return; - } - if (flag==false){ - return; - } +// if(!timerEnable){ +// return; +// } + //获取batchId相同的最后入库的数据 - List forexMarketDataList = forexMarketDataService.selectLastForexMarketData(); + List forexMarketDataList=redisUtil.get("ForexDateList"); +// forexMarketDataList = forexMarketDataService.selectLastForexMarketData(); if(forexMarketDataList==null|| forexMarketDataList.size()==0){ return; } @@ -85,11 +101,13 @@ public class ScheduledTask { Random random = new Random(); List forexMarketData = new ArrayList<>(); String batchId = IdUtil.simpleUUID(); - DecimalFormat decimalFormat = new DecimalFormat("#0.######"); // 格式化为六位小数 for (ForexMarketData data : forexMarketDataList) { + Double buyPic = modifyDecimal(data.getBuyPic(), random); + Double openPriDouble = Double.valueOf(data.getOpenPri()); + String diffAmo = bigDecimalUtils.sub(String.valueOf(buyPic), data.getOpenPri()).toString(); ForexMarketData resultData = new ForexMarketData( - modifyDecimal(data.getBuyPic(), random), - modifyDecimal(data.getClosePri(), random), + buyPic, + data.getClosePri(), data.getCode(), data.getColor(), data.getCurrency(), @@ -99,14 +117,14 @@ public class ScheduledTask { data.getLowPic(), data.getOpenPri(), data.getRanges(), - data.getSellPic(), + String.valueOf(modifyDecimal(Double.parseDouble(data.getSellPic()), random)), data.getYesPic(), - String.valueOf(modifyDecimal(Double.parseDouble(data.getDiffAmo()), random)), - String.valueOf(modifyDecimal(Double.parseDouble(decimalFormat.format(Double.parseDouble(data.getDiffPer().replace("%",""))/100)), random)), + diffAmo, + data.getDiffPer(), batchId); forexMarketData.add(resultData); } - forexMarketDataService.insertAllByMarketData(forexMarketData); +// forexMarketDataService.insertAllByMarketData(forexMarketData); redisUtil.set("ForexDateList", forexMarketData); log.info("--------插入模拟汇率数据成功------"); }catch (Exception e) { @@ -144,6 +162,7 @@ public class ScheduledTask { } + //error //监听止损止盈 根据code获取当前买卖价格 如果价格高于/低于止损止盈 则按照止损止盈的值进行平仓 //查询实训表中状态为1的所有实训并获取ID 获取持仓表中所有状态为0 且止损和止盈不为空的所有数据 获取当前价位如果 @Scheduled(cron = "0 */2 * * * ?") @@ -229,4 +248,37 @@ public class ScheduledTask { } + + //挂单自动开仓(到期自动撤单) 定时方法 + @Scheduled(cron = "0 */2 * * * ?") + public void OpenPendingOrder() { + Set pendingOrderSet = redisUtil.keys("pengingOrder*"); + List forexDateList = redisUtil.get("ForexDateList"); + Map forexMarketDateMap = forexMarketDateUtil.getForexMarketDateMap(forexDateList); + + for (String key : pendingOrderSet) { + Map pengingOrderMap = redisUtil.hmget(key); + Boolean expire = pendingOrderController.isExpire(pengingOrderMap, key); //判断是否到期 + if (expire) { + continue; + } + //判断是否开仓 + Boolean isPpen = pendingOrderController.isOpenTakeStash(pengingOrderMap,forexMarketDateMap); + if(isPpen){ + continue; + } + JSONObject jsonObject = pendingOrderController.pengingKeyReturnJSONObject(pengingOrderMap); + tradingController.getMarketQuotation(jsonObject); + } + } + + //自动清空实例到期的所有redisKey + @Scheduled(cron = "0 */2 * * * ?") + public void clearRedisKeyByTrainingId(){ + List trainingIds=trainingMapper.selectTrainingIdByStatus(); + for (int i = 0; i < trainingIds.size(); i++) { + redisUtil.del("trainingId_"+trainingIds+"*"); + } + } + } diff --git a/src/main/java/com/sztzjy/forex/trading_trading/service/TakeStashService.java b/src/main/java/com/sztzjy/forex/trading_trading/service/TakeStashService.java index bbdafdc..f4696bd 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/service/TakeStashService.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/service/TakeStashService.java @@ -1,6 +1,8 @@ package com.sztzjy.forex.trading_trading.service; import cn.hutool.core.util.IdUtil; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.sztzjy.forex.trading_trading.entity.TakeStash; import com.sztzjy.forex.trading_trading.entity.TakeStashExample; import com.sztzjy.forex.trading_trading.mappers.TakeStashMapper; @@ -19,12 +21,14 @@ public class TakeStashService { takeStashMapper.insert(takeStash); } - public List findTakeStashByTrainingIdAndMemberIdAndStatus(String trainingId, String memberId, Integer status) { + public PageInfo findTakeStashByTrainingIdAndMemberIdAndStatus(String trainingId, String memberId, Integer status,Integer pageNum,Integer pageSize) { + PageHelper.startPage(pageNum, pageSize); TakeStashExample example=new TakeStashExample(); TakeStashExample.Criteria criteria = example.createCriteria(); criteria.andMemberIdEqualTo(memberId).andTrainingIdEqualTo(trainingId).andStatusEqualTo(status); List takeStashes = takeStashMapper.selectByExample(example); - return takeStashes; + PageInfo pageInfo = new PageInfo<>(takeStashes); + return pageInfo; } public List selectAllByMemberIdAndStatus(String memberId, Integer status) { diff --git a/src/main/java/com/sztzjy/forex/trading_trading/util/BigDecimalUtils.java b/src/main/java/com/sztzjy/forex/trading_trading/util/BigDecimalUtils.java new file mode 100644 index 0000000..bb06715 --- /dev/null +++ b/src/main/java/com/sztzjy/forex/trading_trading/util/BigDecimalUtils.java @@ -0,0 +1,287 @@ +package com.sztzjy.forex.trading_trading.util; + +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; + +@Component +public class BigDecimalUtils { + //默认除法运算精度 + private static final int DEF_DIV_SCALE = 5; + + public double add(double v1, double v2) { + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + return b1.add(b2).doubleValue(); + } + + /** + * 提供精确的加法运算 + * + * @param v1 被加数 + * @param v2 加数 + * @return 两个参数的和 + */ + public BigDecimal add(String v1, String v2) { + BigDecimal b1 = new BigDecimal(v1); + BigDecimal b2 = new BigDecimal(v2); + return b1.add(b2); + } + + /** + * 提供精确的加法运算 + * + * @param v1 被加数 + * @param v2 加数 + * @param scale 保留scale 位小数 + * @return 两个参数的和 + * @throws IllegalAccessException + */ + public String add(String v1, String v2, int scale) throws IllegalAccessException { + if (scale < 0) { + throw new IllegalAccessException("The scale must be a positive integer or zero"); + } + BigDecimal b1 = new BigDecimal(v1); + BigDecimal b2 = new BigDecimal(v2); + return b1.add(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString(); + } + + /** + * 提供精确的减法运算 + * + * @param v1 被减数 + * @param v2 减数 + * @return 两个参数的差 + */ + public Double sub(Double v1, Double v2) { + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + return b1.subtract(b2).doubleValue(); + } + + + + /** + * 提供精确的减法运算 + * + * @param v1 被减数 + * @param v2 减数 + * @return 两个参数的差 + */ + public BigDecimal sub(String v1, String v2) { + BigDecimal b1 = new BigDecimal(v1); + BigDecimal b2 = new BigDecimal(v2); + return b1.subtract(b2); + } + + /** + * 提供精确的减法运算 + * + * @param v1 被减数 + * @param v2 减数 + * @param scale 保留scale 位小数 + * @return 两个参数的差 + * @throws IllegalAccessException + */ + public String sub(String v1, String v2, int scale) throws IllegalAccessException { + if (scale < 0) { + throw new IllegalAccessException("The scale must be a positive integer or zero"); + } + BigDecimal b1 = new BigDecimal(v1); + BigDecimal b2 = new BigDecimal(v2); + return b1.subtract(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString(); + } + + /** + * 提供精确的乘法运算 + * + * @param v1 被乘数 + * @param v2 乘数 + * @return 两个参数的积 + */ + public Double mul(double v1, double v2) { + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + return b1.multiply(b2).doubleValue(); + } + + /** + * 提供精确的乘法运算 + * + * @param v1 被乘数 + * @param v2 乘数 + * @return 两个参数的积 + */ + public BigDecimal mul(String v1, String v2) { + BigDecimal b1 = new BigDecimal(v1); + BigDecimal b2 = new BigDecimal(v2); + return b1.multiply(b2); + } + + /** + * 提供精确的乘法运算 + * + * @param v1 被乘数 + * @param v2 乘数 + * @param scale 保留scale 位小数 + * @return 两个参数的积 + */ + public double mul(double v1, double v2, int scale) { + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + return round(b1.multiply(b2).doubleValue(), scale); + } + + + /** + * 提供精确的乘法运算 + * + * @param v1 被乘数 + * @param v2 乘数 + * @param scale 保留scale 位小数 + * @return 两个参数的积 + */ + public String mul(String v1, String v2, int scale) { + if (scale < 0) { + throw new IllegalArgumentException( + "The scale must be a positive integer or zero"); + } + BigDecimal b1 = new BigDecimal(v1); + BigDecimal b2 = new BigDecimal(v2); + return b1.multiply(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString(); + } + + /** + * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 + * 小数点以后10位,以后的数字四舍五入 + * + * @param v1 被除数 + * @param v2 除数 + * @return 两个参数的商 + */ + + public Double div(double v1, double v2) { + return div(v1, v2, DEF_DIV_SCALE); + } + + /** + * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 + * 定精度,以后的数字四舍五入 + * + * @param v1 被除数 + * @param v2 除数 + * @param scale 表示表示需要精确到小数点以后几位。 + * @return 两个参数的商 + */ + public double div(double v1, double v2, int scale) { + if (scale < 0) { + throw new IllegalArgumentException("The scale must be a positive integer or zero"); + } + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue(); + } + + /** + * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 + * 定精度,以后的数字四舍五入 + * + * @param v1 被除数 + * @param v2 除数 + * @param scale 表示需要精确到小数点以后几位 + * @return 两个参数的商 + */ + public String div(String v1, String v2, int scale) { + if (scale < 0) { + throw new IllegalArgumentException("The scale must be a positive integer or zero"); + } + BigDecimal b1 = new BigDecimal(v1); + BigDecimal b2 = new BigDecimal(v1); + return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).toString(); + } + + /** + * 提供精确的小数位四舍五入处理 + * + * @param v 需要四舍五入的数字 + * @param scale 小数点后保留几位 + * @return 四舍五入后的结果 + */ + public double round(double v, int scale) { + if (scale < 0) { + throw new IllegalArgumentException("The scale must be a positive integer or zero"); + } + BigDecimal b = new BigDecimal(Double.toString(v)); + return b.setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue(); + } + + /** + * 提供精确的小数位四舍五入处理 + * + * @param v 需要四舍五入的数字 + * @param scale 小数点后保留几位 + * @return 四舍五入后的结果 + */ + public String round(String v, int scale) { + if (scale < 0) { + throw new IllegalArgumentException( + "The scale must be a positive integer or zero"); + } + BigDecimal b = new BigDecimal(v); + return b.setScale(scale, BigDecimal.ROUND_HALF_UP).toString(); + } + + /** + * 取余数 + * + * @param v1 被除数 + * @param v2 除数 + * @param scale 小数点后保留几位 + * @return 余数 + */ + public String remainder(String v1, String v2, int scale) { + if (scale < 0) { + throw new IllegalArgumentException( + "The scale must be a positive integer or zero"); + } + BigDecimal b1 = new BigDecimal(v1); + BigDecimal b2 = new BigDecimal(v2); + return b1.remainder(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString(); + } + + /** + * 取余数 BigDecimal + * + * @param v1 被除数 + * @param v2 除数 + * @param scale 小数点后保留几位 + * @return 余数 + */ + public BigDecimal remainder(BigDecimal v1, BigDecimal v2, int scale) { + if (scale < 0) { + throw new IllegalArgumentException( + "The scale must be a positive integer or zero"); + } + return v1.remainder(v2).setScale(scale, BigDecimal.ROUND_HALF_UP); + } + + /** + * 比较大小 + * + * @param v1 被比较数 + * @param v2 比较数 + * @return 如果v1 大于v2 则 返回true 否则false + */ + public boolean compare(String v1, String v2) { + BigDecimal b1 = new BigDecimal(v1); + BigDecimal b2 = new BigDecimal(v2); + int bj = b1.compareTo(b2); + boolean res; + if (bj > 0) + res = true; + else + res = false; + return res; + } + +} diff --git a/src/main/resources/Dockerfile b/src/main/resources/Dockerfile new file mode 100644 index 0000000..db988a2 --- /dev/null +++ b/src/main/resources/Dockerfile @@ -0,0 +1,3 @@ +FROM openjdk:18 +EXPOSE 8801 +ENTRYPOINT ["java","-jar","/foreignExchangeTrading.jar"] \ No newline at end of file diff --git a/src/main/resources/mappers/TakeStashMapper.xml b/src/main/resources/mappers/TakeStashMapper.xml index f4a65e6..3c78607 100644 --- a/src/main/resources/mappers/TakeStashMapper.xml +++ b/src/main/resources/mappers/TakeStashMapper.xml @@ -5,7 +5,7 @@ @@ -16,9 +16,11 @@ + + @@ -27,7 +29,7 @@ @@ -61,7 +63,7 @@ @@ -95,17 +97,17 @@ - stash_id, member_id, training_id, trading_code, currency_name, order_number, buy_sell_type, - volume_transaction, price_transaction, stop_loss, stop_win, time_transaction, status, - profit_and_loss_by_close, trading_margin + stash_id, member_id, training_id, trading_code, currency_name, order_number, buy_sell_type, + volume_transaction, price_transaction, price_transaction_close, stop_loss, stop_win, + time_transaction, time_transaction_close, status, profit_and_loss_by_close, trading_margin