From f261a8a6841972c11739688213f5e581af4b11b4 Mon Sep 17 00:00:00 2001 From: yz <3614508250@qq.com> Date: Mon, 3 Jul 2023 17:24:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Eredis=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=B1=BB=20=E6=8C=82=E5=8D=95=E9=83=A8=E5=88=86=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=20=E4=BA=A4=E6=98=93=E6=8C=82=E5=8D=95=E5=BC=80?= =?UTF-8?q?=E4=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 + .../config/redis/RedisConfig.java | 41 + .../controller/PendingOrderController.java | 86 ++ .../controller/TradingController.java | 71 +- .../trading_trading/entity/PendingOrder.java | 434 +++++++ .../entity/PendingOrderExample.java | 1142 +++++++++++++++++ .../mappers/PendingOrderMapper.java | 98 ++ .../service/PendingOrderService.java | 31 + .../forex/trading_trading/util/RedisUtil.java | 572 +++++++++ src/main/resources/application.yml | 13 + src/main/resources/generatorConfig.xml | 3 +- .../resources/mappers/PendingOrderMapper.xml | 414 ++++++ 12 files changed, 2885 insertions(+), 26 deletions(-) create mode 100644 src/main/java/com/sztzjy/forex/trading_trading/config/redis/RedisConfig.java create mode 100644 src/main/java/com/sztzjy/forex/trading_trading/controller/PendingOrderController.java create mode 100644 src/main/java/com/sztzjy/forex/trading_trading/entity/PendingOrder.java create mode 100644 src/main/java/com/sztzjy/forex/trading_trading/entity/PendingOrderExample.java create mode 100644 src/main/java/com/sztzjy/forex/trading_trading/mappers/PendingOrderMapper.java create mode 100644 src/main/java/com/sztzjy/forex/trading_trading/service/PendingOrderService.java create mode 100644 src/main/java/com/sztzjy/forex/trading_trading/util/RedisUtil.java create mode 100644 src/main/resources/mappers/PendingOrderMapper.xml diff --git a/pom.xml b/pom.xml index 27d94a0..3c60883 100644 --- a/pom.xml +++ b/pom.xml @@ -30,6 +30,12 @@ mybatis-spring-boot-starter 2.0.0 + + + org.springframework.boot + spring-boot-starter-data-redis + 2.7.12 + com.github.pagehelper diff --git a/src/main/java/com/sztzjy/forex/trading_trading/config/redis/RedisConfig.java b/src/main/java/com/sztzjy/forex/trading_trading/config/redis/RedisConfig.java new file mode 100644 index 0000000..b34e139 --- /dev/null +++ b/src/main/java/com/sztzjy/forex/trading_trading/config/redis/RedisConfig.java @@ -0,0 +1,41 @@ +package com.sztzjy.forex.trading_trading.config.redis; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +@Configuration +public class RedisConfig { + @Bean + public RedisTemplate template(RedisConnectionFactory factory) { + // 创建RedisTemplate对象 + RedisTemplate template = new RedisTemplate<>(); + // 配置连接工厂 + template.setConnectionFactory(factory); + // 定义Jackson2JsonRedisSerializer序列化对象 + Jackson2JsonRedisSerializer jacksonSeial = new Jackson2JsonRedisSerializer<>(Object.class); + ObjectMapper om = new ObjectMapper(); + // 指定要序列化的域,field,get和set,以及修饰符范围,ANY是都有包括private和public + om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + // 指定序列化输入的类型,类必须是非final修饰的,final修饰的类,比如String,Integer等会报异常 + om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); + jacksonSeial.setObjectMapper(om); + StringRedisSerializer stringSerial = new StringRedisSerializer(); + // redis key 序列化方式使用stringSerial + template.setKeySerializer(stringSerial); + // redis value 序列化方式使用jackson + template.setValueSerializer(jacksonSeial); + // redis hash key 序列化方式使用stringSerial + template.setHashKeySerializer(stringSerial); + // redis hash value 序列化方式使用jackson + template.setHashValueSerializer(jacksonSeial); + template.afterPropertiesSet(); + return template; + } +} 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 new file mode 100644 index 0000000..e2c670b --- /dev/null +++ b/src/main/java/com/sztzjy/forex/trading_trading/controller/PendingOrderController.java @@ -0,0 +1,86 @@ +package com.sztzjy.forex.trading_trading.controller; + +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; +import com.sztzjy.forex.trading_trading.annotation.AnonymousAccess; +import com.sztzjy.forex.trading_trading.entity.PendingOrder; +import com.sztzjy.forex.trading_trading.service.PendingOrderService; +import com.sztzjy.forex.trading_trading.util.RedisUtil; +import org.springframework.beans.factory.annotation.Autowired; +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.Date; +import java.util.List; +import java.util.Set; + +@RestController +@RequestMapping("api/pendingOrder") +public class PendingOrderController { + @Autowired + PendingOrderService pendingOrderService; + + @Autowired + RedisUtil redisUtil; + + //查询挂单数据 + @AnonymousAccess + @PostMapping("getPendingOrder") + public List getPendingOrder(@RequestBody JSONObject jsonObject){ + String trainingId = String.valueOf(jsonObject.get("trainingId")); + String memberId = String.valueOf(jsonObject.get("memberId")); + PendingOrder pendingOrder=new PendingOrder(); + pendingOrder.setStatus(0); + pendingOrder.setTrainingId(trainingId); + pendingOrder.setMemberId(memberId); + List pendingOrders = pendingOrderService.selectByExample(pendingOrder); + return pendingOrders; + } + + //撤单 撤单成功后 根据pendingOrderId删除redis键 + public JSONObject cancelOrder(@RequestBody String pendingOrderId){ + PendingOrder pendingOrder=new PendingOrder(); + pendingOrder.setPendingOrderId(pendingOrderId); + pendingOrder.setStatus(0); + pendingOrderService.cancelOrder(pendingOrder); + redisUtil.del("pengingOrder_"+pendingOrder.getPendingOrderId()); + return JSONObject.parseObject("撤单成功"); + } + + //挂单自动撤单(到期自动撤单) 扫描redis pengingOrder_id 进行自动撤单 + public void pendingOrderQuest(){ + Set pendingOrderSet = redisUtil.keys("pengingOrder_" + "*"); //获取所有挂单键 + for(String key : pendingOrderSet){ + +// System.out.print(value+" "); + } + } + + //返回挂单对象 + public PendingOrder returnPendingOrder(String memberId, String trainingId, String tradingCode, 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.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){ + pendingOrderService.insert(pendingOrder); + redisUtil.set("pengingOrder_"+pendingOrder.getPendingOrderId(),pendingOrder.getValidityTime()); + } +} 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 f8b70bb..7a3a149 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 @@ -5,15 +5,18 @@ 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.entity.Member; +import com.sztzjy.forex.trading_trading.entity.PendingOrder; import com.sztzjy.forex.trading_trading.entity.TakeStash; import com.sztzjy.forex.trading_trading.entity.mql5Entity.ForexData; import com.sztzjy.forex.trading_trading.service.MemberService; import com.sztzjy.forex.trading_trading.service.TakeStashService; +import com.sztzjy.forex.trading_trading.util.RedisUtil; import org.springframework.beans.factory.annotation.Autowired; 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.Date; import java.util.List; @@ -28,6 +31,12 @@ public class TradingController { @Autowired TakeStashService takeStashService; + @Autowired + PendingOrderController pendingOrderController; + + @Autowired + RedisUtil redisUtil; + //获取市场报价 @AnonymousAccess @PostMapping("getMarketQuotation") @@ -61,7 +70,8 @@ public class TradingController { Member member = memberService.getMemberByMemberIdAndTrainingId(memberId, trainingId); Double availableFunds = member.getAvailableFunds(); //获取账户可用资金 ForexData forexData = getMarketQuotationByCode(tradingCode); //获取当前买卖价格 - + Double buyPic = Double.valueOf(forexData.getBuyPic()); //当前买价 + Double sellPic = Double.valueOf(forexData.getSellPic()); if (null != stopLoss || null != stopWin) { //判断止损止赢是否合理 如果stopLoss stopWin都为null则跳过 boolean winOrLossStopBoolean = getWinOrLossStop(stopLoss, stopWin, buySellType, forexData); if (winOrLossStopBoolean == false) { @@ -76,11 +86,9 @@ public class TradingController { return JSONObject.parseObject("可用资金不足"); } if ("buy".equals(buySellType)) { - Double buyPic = Double.valueOf(forexData.getBuyPic()); TakeStash takeStash = returnTakeStash(memberId, trainingId, tradingCode, buySellType, transactionVolume, buyPic, stopLoss, stopWin); takeStashService.insertTakeStash(takeStash); } else if ("sell".equals(buySellType)) { - Double sellPic = Double.valueOf(forexData.getSellPic()); TakeStash takeStash = returnTakeStash(memberId, trainingId, tradingCode, buySellType, transactionVolume, sellPic, stopLoss, stopWin); takeStashService.insertTakeStash(takeStash); } @@ -88,7 +96,6 @@ public class TradingController { updateMemberAvailableFundsAndMarginUsed(member, availableFunds); } else { //美元在后 使用可用资金表达式为 买卖手*1000*卖/买价 判断可用资金是否足够 先判断是买还是卖 if ("buy".equals(buySellType)) { - Double buyPic = Double.valueOf(forexData.getBuyPic()); if (availableFunds < transactionVolume * 1000 * buyPic) { return JSONObject.parseObject("可用资金不足"); } @@ -96,7 +103,6 @@ public class TradingController { takeStashService.insertTakeStash(takeStash); availableFunds = availableFunds - transactionVolume * 1000 * buyPic; } else if ("sell".equals(buySellType)) { - Double sellPic = Double.valueOf(forexData.getSellPic()); if (availableFunds < transactionVolume * 1000 * sellPic) { return JSONObject.parseObject("可用资金不足"); } @@ -106,25 +112,41 @@ public class TradingController { } updateMemberAvailableFundsAndMarginUsed(member, availableFunds); } - } else if (transactionType.equals("gdkc")) {//挂单开仓 - //限价买进 - //限价卖出 - //止损买进 - //止损卖出 - - } else { - JSONObject returnJson = JSONObject.parseObject("error"); - return returnJson; + } else if (transactionType.equals("gdkc")) {//挂单开仓 生成的数据为挂单数据 挂单数据生效 判断可用资金是否充足 + Double priceCommission = (Double) jsonObject.get("priceCommission"); //获取用户输入的价位 + Date validityTime = (Date) jsonObject.get("validityTime"); //获取挂单有效期 + if ("buyLimit".equals(buySellType)) { //限价买进(低价买进) 下单时买入价低于当前买价 + if (priceCommission >= buyPic) { + return JSONObject.parseObject("限价买进价位不能高于当前买价"); + } + } + if ("sellLimit".equals(buySellType)) {//限价卖出(高价卖出) 下单时卖出价高于当前卖价 + if (priceCommission <= sellPic) { + return JSONObject.parseObject("限价卖出价位不能低于当前卖价"); + } + } + if ("buyStop".equals(buySellType)) {//止损买进(高价买进) 下单时买入价格高于当前买价 + if (priceCommission <= buyPic) { + return JSONObject.parseObject("止损买进价位不能低于当前买价"); + } + } + if ("sellStop".equals(buySellType)) {//止损卖出(低价卖出)下单时卖出价格低于当前卖价 + if (priceCommission >= sellPic) { + return JSONObject.parseObject("止损卖出价位不能高于当前卖价"); + } + } + PendingOrder pendingOrder = pendingOrderController.returnPendingOrder(memberId, trainingId, tradingCode, buySellType, transactionVolume, priceCommission, stopLoss, stopWin, validityTime); + pendingOrderController.insertPendingOrder(pendingOrder);//保存挂单 } - - return null; + JSONObject returnJson = JSONObject.parseObject("error"); + return returnJson; } //修改当前持仓 @AnonymousAccess @PostMapping("updateTakeStash") - public JSONObject updateTakeStash(@RequestBody JSONObject jsonObject){ - String stashId= String.valueOf(jsonObject.get("stashId")); + public JSONObject updateTakeStash(@RequestBody JSONObject jsonObject) { + String stashId = String.valueOf(jsonObject.get("stashId")); Double stopLoss = (Double) jsonObject.get("stopLoss"); Double stopWin = (Double) jsonObject.get("stopWin"); String tradingCode = String.valueOf(jsonObject.get("tradingCode")); @@ -136,7 +158,7 @@ public class TradingController { return JSONObject.parseObject("止损或获利输入错误"); } } - TakeStash takeStash=new TakeStash(); + TakeStash takeStash = new TakeStash(); takeStash.setStashId(stashId); takeStash.setStopLoss(stopLoss); takeStashService.updateByPrimaryKey(takeStash); @@ -144,7 +166,7 @@ public class TradingController { } //当前持仓平仓 status设置为2 - public JSONObject pingcangTakeStash(@RequestBody JSONObject jsonObject){ + public JSONObject pingcangTakeStash(@RequestBody JSONObject jsonObject) { return null; @@ -183,7 +205,7 @@ public class TradingController { if ("buy".equals(buySellType)) { Double buyPic = Double.valueOf(forexData.getBuyPic()); //判断stopLoss 和stopWin 是否为空 - if(null!=stopLoss && null!=stopWin){ + if (null != stopLoss && null != stopWin) { if (stopLoss < buyPic && stopWin > buyPic) { return true; } @@ -204,20 +226,20 @@ public class TradingController { } else if ("sell".equals(buySellType)) { Double sellPic = Double.valueOf(forexData.getSellPic()); - if(null!=stopLoss && null!=stopWin){ + if (null != stopLoss && null != stopWin) { if (stopLoss > sellPic && stopWin < sellPic) { return true; } return false; } if (null == stopLoss) { - if(stopWin sellPic){ + if (stopLoss > sellPic) { return true; } return false; @@ -225,5 +247,4 @@ public class TradingController { } return false; } - } diff --git a/src/main/java/com/sztzjy/forex/trading_trading/entity/PendingOrder.java b/src/main/java/com/sztzjy/forex/trading_trading/entity/PendingOrder.java new file mode 100644 index 0000000..e2b2f4c --- /dev/null +++ b/src/main/java/com/sztzjy/forex/trading_trading/entity/PendingOrder.java @@ -0,0 +1,434 @@ +package com.sztzjy.forex.trading_trading.entity; + +import java.util.Date; + +public class PendingOrder { + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column sys_pending_order.pending_order_id + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + private String pendingOrderId; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column sys_pending_order.member_id + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + private String memberId; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column sys_pending_order.training_id + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + private String trainingId; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column sys_pending_order.commission_time + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + private Date commissionTime; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column sys_pending_order.trading_code + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + private String tradingCode; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column sys_pending_order.commission_number + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + private String commissionNumber; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column sys_pending_order.buy_sell_type + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + private String buySellType; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column sys_pending_order.volume_transaction + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + private Double volumeTransaction; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column sys_pending_order.price_commission + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + private Double priceCommission; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column sys_pending_order.stop_loss + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + private Double stopLoss; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column sys_pending_order.stop_win + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + private Double stopWin; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column sys_pending_order.validity_time + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + private Date validityTime; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column sys_pending_order.status + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + private Integer status; + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column sys_pending_order.pending_order_id + * + * @return the value of sys_pending_order.pending_order_id + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public String getPendingOrderId() { + return pendingOrderId; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column sys_pending_order.pending_order_id + * + * @param pendingOrderId the value for sys_pending_order.pending_order_id + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public void setPendingOrderId(String pendingOrderId) { + this.pendingOrderId = pendingOrderId == null ? null : pendingOrderId.trim(); + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column sys_pending_order.member_id + * + * @return the value of sys_pending_order.member_id + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public String getMemberId() { + return memberId; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column sys_pending_order.member_id + * + * @param memberId the value for sys_pending_order.member_id + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public void setMemberId(String memberId) { + this.memberId = memberId == null ? null : memberId.trim(); + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column sys_pending_order.training_id + * + * @return the value of sys_pending_order.training_id + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public String getTrainingId() { + return trainingId; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column sys_pending_order.training_id + * + * @param trainingId the value for sys_pending_order.training_id + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public void setTrainingId(String trainingId) { + this.trainingId = trainingId == null ? null : trainingId.trim(); + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column sys_pending_order.commission_time + * + * @return the value of sys_pending_order.commission_time + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public Date getCommissionTime() { + return commissionTime; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column sys_pending_order.commission_time + * + * @param commissionTime the value for sys_pending_order.commission_time + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public void setCommissionTime(Date commissionTime) { + this.commissionTime = commissionTime; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column sys_pending_order.trading_code + * + * @return the value of sys_pending_order.trading_code + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public String getTradingCode() { + return tradingCode; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column sys_pending_order.trading_code + * + * @param tradingCode the value for sys_pending_order.trading_code + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public void setTradingCode(String tradingCode) { + this.tradingCode = tradingCode == null ? null : tradingCode.trim(); + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column sys_pending_order.commission_number + * + * @return the value of sys_pending_order.commission_number + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public String getCommissionNumber() { + return commissionNumber; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column sys_pending_order.commission_number + * + * @param commissionNumber the value for sys_pending_order.commission_number + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public void setCommissionNumber(String commissionNumber) { + this.commissionNumber = commissionNumber == null ? null : commissionNumber.trim(); + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column sys_pending_order.buy_sell_type + * + * @return the value of sys_pending_order.buy_sell_type + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public String getBuySellType() { + return buySellType; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column sys_pending_order.buy_sell_type + * + * @param buySellType the value for sys_pending_order.buy_sell_type + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public void setBuySellType(String buySellType) { + this.buySellType = buySellType == null ? null : buySellType.trim(); + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column sys_pending_order.volume_transaction + * + * @return the value of sys_pending_order.volume_transaction + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public Double getVolumeTransaction() { + return volumeTransaction; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column sys_pending_order.volume_transaction + * + * @param volumeTransaction the value for sys_pending_order.volume_transaction + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public void setVolumeTransaction(Double volumeTransaction) { + this.volumeTransaction = volumeTransaction; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column sys_pending_order.price_commission + * + * @return the value of sys_pending_order.price_commission + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public Double getPriceCommission() { + return priceCommission; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column sys_pending_order.price_commission + * + * @param priceCommission the value for sys_pending_order.price_commission + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public void setPriceCommission(Double priceCommission) { + this.priceCommission = priceCommission; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column sys_pending_order.stop_loss + * + * @return the value of sys_pending_order.stop_loss + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public Double getStopLoss() { + return stopLoss; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column sys_pending_order.stop_loss + * + * @param stopLoss the value for sys_pending_order.stop_loss + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public void setStopLoss(Double stopLoss) { + this.stopLoss = stopLoss; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column sys_pending_order.stop_win + * + * @return the value of sys_pending_order.stop_win + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public Double getStopWin() { + return stopWin; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column sys_pending_order.stop_win + * + * @param stopWin the value for sys_pending_order.stop_win + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public void setStopWin(Double stopWin) { + this.stopWin = stopWin; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column sys_pending_order.validity_time + * + * @return the value of sys_pending_order.validity_time + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public Date getValidityTime() { + return validityTime; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column sys_pending_order.validity_time + * + * @param validityTime the value for sys_pending_order.validity_time + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public void setValidityTime(Date validityTime) { + this.validityTime = validityTime; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column sys_pending_order.status + * + * @return the value of sys_pending_order.status + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public Integer getStatus() { + return status; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column sys_pending_order.status + * + * @param status the value for sys_pending_order.status + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public void setStatus(Integer status) { + this.status = status; + } +} \ No newline at end of file diff --git a/src/main/java/com/sztzjy/forex/trading_trading/entity/PendingOrderExample.java b/src/main/java/com/sztzjy/forex/trading_trading/entity/PendingOrderExample.java new file mode 100644 index 0000000..95724c0 --- /dev/null +++ b/src/main/java/com/sztzjy/forex/trading_trading/entity/PendingOrderExample.java @@ -0,0 +1,1142 @@ +package com.sztzjy.forex.trading_trading.entity; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class PendingOrderExample { + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + protected String orderByClause; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + protected boolean distinct; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + protected List oredCriteria; + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public PendingOrderExample() { + oredCriteria = new ArrayList<>(); + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02: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_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public String getOrderByClause() { + return orderByClause; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02: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_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public boolean isDistinct() { + return distinct; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + public List getOredCriteria() { + return oredCriteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02: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_pending_order + * + * @mbg.generated Mon Jul 03 11:02: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_pending_order + * + * @mbg.generated Mon Jul 03 11:02: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_pending_order + * + * @mbg.generated Mon Jul 03 11:02: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_pending_order + * + * @mbg.generated Mon Jul 03 11:02: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_pending_order + * + * @mbg.generated Mon Jul 03 11:02: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 andPendingOrderIdIsNull() { + addCriterion("pending_order_id is null"); + return (Criteria) this; + } + + public Criteria andPendingOrderIdIsNotNull() { + addCriterion("pending_order_id is not null"); + return (Criteria) this; + } + + public Criteria andPendingOrderIdEqualTo(String value) { + addCriterion("pending_order_id =", value, "pendingOrderId"); + return (Criteria) this; + } + + public Criteria andPendingOrderIdNotEqualTo(String value) { + addCriterion("pending_order_id <>", value, "pendingOrderId"); + return (Criteria) this; + } + + public Criteria andPendingOrderIdGreaterThan(String value) { + addCriterion("pending_order_id >", value, "pendingOrderId"); + return (Criteria) this; + } + + public Criteria andPendingOrderIdGreaterThanOrEqualTo(String value) { + addCriterion("pending_order_id >=", value, "pendingOrderId"); + return (Criteria) this; + } + + public Criteria andPendingOrderIdLessThan(String value) { + addCriterion("pending_order_id <", value, "pendingOrderId"); + return (Criteria) this; + } + + public Criteria andPendingOrderIdLessThanOrEqualTo(String value) { + addCriterion("pending_order_id <=", value, "pendingOrderId"); + return (Criteria) this; + } + + public Criteria andPendingOrderIdLike(String value) { + addCriterion("pending_order_id like", value, "pendingOrderId"); + return (Criteria) this; + } + + public Criteria andPendingOrderIdNotLike(String value) { + addCriterion("pending_order_id not like", value, "pendingOrderId"); + return (Criteria) this; + } + + public Criteria andPendingOrderIdIn(List values) { + addCriterion("pending_order_id in", values, "pendingOrderId"); + return (Criteria) this; + } + + public Criteria andPendingOrderIdNotIn(List values) { + addCriterion("pending_order_id not in", values, "pendingOrderId"); + return (Criteria) this; + } + + public Criteria andPendingOrderIdBetween(String value1, String value2) { + addCriterion("pending_order_id between", value1, value2, "pendingOrderId"); + return (Criteria) this; + } + + public Criteria andPendingOrderIdNotBetween(String value1, String value2) { + addCriterion("pending_order_id not between", value1, value2, "pendingOrderId"); + return (Criteria) this; + } + + public Criteria andMemberIdIsNull() { + addCriterion("member_id is null"); + return (Criteria) this; + } + + public Criteria andMemberIdIsNotNull() { + addCriterion("member_id is not null"); + return (Criteria) this; + } + + public Criteria andMemberIdEqualTo(String value) { + addCriterion("member_id =", value, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdNotEqualTo(String value) { + addCriterion("member_id <>", value, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdGreaterThan(String value) { + addCriterion("member_id >", value, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdGreaterThanOrEqualTo(String value) { + addCriterion("member_id >=", value, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdLessThan(String value) { + addCriterion("member_id <", value, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdLessThanOrEqualTo(String value) { + addCriterion("member_id <=", value, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdLike(String value) { + addCriterion("member_id like", value, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdNotLike(String value) { + addCriterion("member_id not like", value, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdIn(List values) { + addCriterion("member_id in", values, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdNotIn(List values) { + addCriterion("member_id not in", values, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdBetween(String value1, String value2) { + addCriterion("member_id between", value1, value2, "memberId"); + return (Criteria) this; + } + + public Criteria andMemberIdNotBetween(String value1, String value2) { + addCriterion("member_id not between", value1, value2, "memberId"); + return (Criteria) this; + } + + 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 andCommissionTimeIsNull() { + addCriterion("commission_time is null"); + return (Criteria) this; + } + + public Criteria andCommissionTimeIsNotNull() { + addCriterion("commission_time is not null"); + return (Criteria) this; + } + + public Criteria andCommissionTimeEqualTo(Date value) { + addCriterion("commission_time =", value, "commissionTime"); + return (Criteria) this; + } + + public Criteria andCommissionTimeNotEqualTo(Date value) { + addCriterion("commission_time <>", value, "commissionTime"); + return (Criteria) this; + } + + public Criteria andCommissionTimeGreaterThan(Date value) { + addCriterion("commission_time >", value, "commissionTime"); + return (Criteria) this; + } + + public Criteria andCommissionTimeGreaterThanOrEqualTo(Date value) { + addCriterion("commission_time >=", value, "commissionTime"); + return (Criteria) this; + } + + public Criteria andCommissionTimeLessThan(Date value) { + addCriterion("commission_time <", value, "commissionTime"); + return (Criteria) this; + } + + public Criteria andCommissionTimeLessThanOrEqualTo(Date value) { + addCriterion("commission_time <=", value, "commissionTime"); + return (Criteria) this; + } + + public Criteria andCommissionTimeIn(List values) { + addCriterion("commission_time in", values, "commissionTime"); + return (Criteria) this; + } + + public Criteria andCommissionTimeNotIn(List values) { + addCriterion("commission_time not in", values, "commissionTime"); + return (Criteria) this; + } + + public Criteria andCommissionTimeBetween(Date value1, Date value2) { + addCriterion("commission_time between", value1, value2, "commissionTime"); + return (Criteria) this; + } + + public Criteria andCommissionTimeNotBetween(Date value1, Date value2) { + addCriterion("commission_time not between", value1, value2, "commissionTime"); + return (Criteria) this; + } + + public Criteria andTradingCodeIsNull() { + addCriterion("trading_code is null"); + return (Criteria) this; + } + + public Criteria andTradingCodeIsNotNull() { + addCriterion("trading_code is not null"); + return (Criteria) this; + } + + public Criteria andTradingCodeEqualTo(String value) { + addCriterion("trading_code =", value, "tradingCode"); + return (Criteria) this; + } + + public Criteria andTradingCodeNotEqualTo(String value) { + addCriterion("trading_code <>", value, "tradingCode"); + return (Criteria) this; + } + + public Criteria andTradingCodeGreaterThan(String value) { + addCriterion("trading_code >", value, "tradingCode"); + return (Criteria) this; + } + + public Criteria andTradingCodeGreaterThanOrEqualTo(String value) { + addCriterion("trading_code >=", value, "tradingCode"); + return (Criteria) this; + } + + public Criteria andTradingCodeLessThan(String value) { + addCriterion("trading_code <", value, "tradingCode"); + return (Criteria) this; + } + + public Criteria andTradingCodeLessThanOrEqualTo(String value) { + addCriterion("trading_code <=", value, "tradingCode"); + return (Criteria) this; + } + + public Criteria andTradingCodeLike(String value) { + addCriterion("trading_code like", value, "tradingCode"); + return (Criteria) this; + } + + public Criteria andTradingCodeNotLike(String value) { + addCriterion("trading_code not like", value, "tradingCode"); + return (Criteria) this; + } + + public Criteria andTradingCodeIn(List values) { + addCriterion("trading_code in", values, "tradingCode"); + return (Criteria) this; + } + + public Criteria andTradingCodeNotIn(List values) { + addCriterion("trading_code not in", values, "tradingCode"); + return (Criteria) this; + } + + public Criteria andTradingCodeBetween(String value1, String value2) { + addCriterion("trading_code between", value1, value2, "tradingCode"); + return (Criteria) this; + } + + public Criteria andTradingCodeNotBetween(String value1, String value2) { + addCriterion("trading_code not between", value1, value2, "tradingCode"); + return (Criteria) this; + } + + public Criteria andCommissionNumberIsNull() { + addCriterion("commission_number is null"); + return (Criteria) this; + } + + public Criteria andCommissionNumberIsNotNull() { + addCriterion("commission_number is not null"); + return (Criteria) this; + } + + public Criteria andCommissionNumberEqualTo(String value) { + addCriterion("commission_number =", value, "commissionNumber"); + return (Criteria) this; + } + + public Criteria andCommissionNumberNotEqualTo(String value) { + addCriterion("commission_number <>", value, "commissionNumber"); + return (Criteria) this; + } + + public Criteria andCommissionNumberGreaterThan(String value) { + addCriterion("commission_number >", value, "commissionNumber"); + return (Criteria) this; + } + + public Criteria andCommissionNumberGreaterThanOrEqualTo(String value) { + addCriterion("commission_number >=", value, "commissionNumber"); + return (Criteria) this; + } + + public Criteria andCommissionNumberLessThan(String value) { + addCriterion("commission_number <", value, "commissionNumber"); + return (Criteria) this; + } + + public Criteria andCommissionNumberLessThanOrEqualTo(String value) { + addCriterion("commission_number <=", value, "commissionNumber"); + return (Criteria) this; + } + + public Criteria andCommissionNumberLike(String value) { + addCriterion("commission_number like", value, "commissionNumber"); + return (Criteria) this; + } + + public Criteria andCommissionNumberNotLike(String value) { + addCriterion("commission_number not like", value, "commissionNumber"); + return (Criteria) this; + } + + public Criteria andCommissionNumberIn(List values) { + addCriterion("commission_number in", values, "commissionNumber"); + return (Criteria) this; + } + + public Criteria andCommissionNumberNotIn(List values) { + addCriterion("commission_number not in", values, "commissionNumber"); + return (Criteria) this; + } + + public Criteria andCommissionNumberBetween(String value1, String value2) { + addCriterion("commission_number between", value1, value2, "commissionNumber"); + return (Criteria) this; + } + + public Criteria andCommissionNumberNotBetween(String value1, String value2) { + addCriterion("commission_number not between", value1, value2, "commissionNumber"); + return (Criteria) this; + } + + public Criteria andBuySellTypeIsNull() { + addCriterion("buy_sell_type is null"); + return (Criteria) this; + } + + public Criteria andBuySellTypeIsNotNull() { + addCriterion("buy_sell_type is not null"); + return (Criteria) this; + } + + public Criteria andBuySellTypeEqualTo(String value) { + addCriterion("buy_sell_type =", value, "buySellType"); + return (Criteria) this; + } + + public Criteria andBuySellTypeNotEqualTo(String value) { + addCriterion("buy_sell_type <>", value, "buySellType"); + return (Criteria) this; + } + + public Criteria andBuySellTypeGreaterThan(String value) { + addCriterion("buy_sell_type >", value, "buySellType"); + return (Criteria) this; + } + + public Criteria andBuySellTypeGreaterThanOrEqualTo(String value) { + addCriterion("buy_sell_type >=", value, "buySellType"); + return (Criteria) this; + } + + public Criteria andBuySellTypeLessThan(String value) { + addCriterion("buy_sell_type <", value, "buySellType"); + return (Criteria) this; + } + + public Criteria andBuySellTypeLessThanOrEqualTo(String value) { + addCriterion("buy_sell_type <=", value, "buySellType"); + return (Criteria) this; + } + + public Criteria andBuySellTypeLike(String value) { + addCriterion("buy_sell_type like", value, "buySellType"); + return (Criteria) this; + } + + public Criteria andBuySellTypeNotLike(String value) { + addCriterion("buy_sell_type not like", value, "buySellType"); + return (Criteria) this; + } + + public Criteria andBuySellTypeIn(List values) { + addCriterion("buy_sell_type in", values, "buySellType"); + return (Criteria) this; + } + + public Criteria andBuySellTypeNotIn(List values) { + addCriterion("buy_sell_type not in", values, "buySellType"); + return (Criteria) this; + } + + public Criteria andBuySellTypeBetween(String value1, String value2) { + addCriterion("buy_sell_type between", value1, value2, "buySellType"); + return (Criteria) this; + } + + public Criteria andBuySellTypeNotBetween(String value1, String value2) { + addCriterion("buy_sell_type not between", value1, value2, "buySellType"); + return (Criteria) this; + } + + public Criteria andVolumeTransactionIsNull() { + addCriterion("volume_transaction is null"); + return (Criteria) this; + } + + public Criteria andVolumeTransactionIsNotNull() { + addCriterion("volume_transaction is not null"); + return (Criteria) this; + } + + public Criteria andVolumeTransactionEqualTo(Double value) { + addCriterion("volume_transaction =", value, "volumeTransaction"); + return (Criteria) this; + } + + public Criteria andVolumeTransactionNotEqualTo(Double value) { + addCriterion("volume_transaction <>", value, "volumeTransaction"); + return (Criteria) this; + } + + public Criteria andVolumeTransactionGreaterThan(Double value) { + addCriterion("volume_transaction >", value, "volumeTransaction"); + return (Criteria) this; + } + + public Criteria andVolumeTransactionGreaterThanOrEqualTo(Double value) { + addCriterion("volume_transaction >=", value, "volumeTransaction"); + return (Criteria) this; + } + + public Criteria andVolumeTransactionLessThan(Double value) { + addCriterion("volume_transaction <", value, "volumeTransaction"); + return (Criteria) this; + } + + public Criteria andVolumeTransactionLessThanOrEqualTo(Double value) { + addCriterion("volume_transaction <=", value, "volumeTransaction"); + return (Criteria) this; + } + + public Criteria andVolumeTransactionIn(List values) { + addCriterion("volume_transaction in", values, "volumeTransaction"); + return (Criteria) this; + } + + public Criteria andVolumeTransactionNotIn(List values) { + addCriterion("volume_transaction not in", values, "volumeTransaction"); + return (Criteria) this; + } + + public Criteria andVolumeTransactionBetween(Double value1, Double value2) { + addCriterion("volume_transaction between", value1, value2, "volumeTransaction"); + return (Criteria) this; + } + + public Criteria andVolumeTransactionNotBetween(Double value1, Double value2) { + addCriterion("volume_transaction not between", value1, value2, "volumeTransaction"); + return (Criteria) this; + } + + public Criteria andPriceCommissionIsNull() { + addCriterion("price_commission is null"); + return (Criteria) this; + } + + public Criteria andPriceCommissionIsNotNull() { + addCriterion("price_commission is not null"); + return (Criteria) this; + } + + public Criteria andPriceCommissionEqualTo(Double value) { + addCriterion("price_commission =", value, "priceCommission"); + return (Criteria) this; + } + + public Criteria andPriceCommissionNotEqualTo(Double value) { + addCriterion("price_commission <>", value, "priceCommission"); + return (Criteria) this; + } + + public Criteria andPriceCommissionGreaterThan(Double value) { + addCriterion("price_commission >", value, "priceCommission"); + return (Criteria) this; + } + + public Criteria andPriceCommissionGreaterThanOrEqualTo(Double value) { + addCriterion("price_commission >=", value, "priceCommission"); + return (Criteria) this; + } + + public Criteria andPriceCommissionLessThan(Double value) { + addCriterion("price_commission <", value, "priceCommission"); + return (Criteria) this; + } + + public Criteria andPriceCommissionLessThanOrEqualTo(Double value) { + addCriterion("price_commission <=", value, "priceCommission"); + return (Criteria) this; + } + + public Criteria andPriceCommissionIn(List values) { + addCriterion("price_commission in", values, "priceCommission"); + return (Criteria) this; + } + + public Criteria andPriceCommissionNotIn(List values) { + addCriterion("price_commission not in", values, "priceCommission"); + return (Criteria) this; + } + + public Criteria andPriceCommissionBetween(Double value1, Double value2) { + addCriterion("price_commission between", value1, value2, "priceCommission"); + return (Criteria) this; + } + + public Criteria andPriceCommissionNotBetween(Double value1, Double value2) { + addCriterion("price_commission not between", value1, value2, "priceCommission"); + return (Criteria) this; + } + + public Criteria andStopLossIsNull() { + addCriterion("stop_loss is null"); + return (Criteria) this; + } + + public Criteria andStopLossIsNotNull() { + addCriterion("stop_loss is not null"); + return (Criteria) this; + } + + public Criteria andStopLossEqualTo(Double value) { + addCriterion("stop_loss =", value, "stopLoss"); + return (Criteria) this; + } + + public Criteria andStopLossNotEqualTo(Double value) { + addCriterion("stop_loss <>", value, "stopLoss"); + return (Criteria) this; + } + + public Criteria andStopLossGreaterThan(Double value) { + addCriterion("stop_loss >", value, "stopLoss"); + return (Criteria) this; + } + + public Criteria andStopLossGreaterThanOrEqualTo(Double value) { + addCriterion("stop_loss >=", value, "stopLoss"); + return (Criteria) this; + } + + public Criteria andStopLossLessThan(Double value) { + addCriterion("stop_loss <", value, "stopLoss"); + return (Criteria) this; + } + + public Criteria andStopLossLessThanOrEqualTo(Double value) { + addCriterion("stop_loss <=", value, "stopLoss"); + return (Criteria) this; + } + + public Criteria andStopLossIn(List values) { + addCriterion("stop_loss in", values, "stopLoss"); + return (Criteria) this; + } + + public Criteria andStopLossNotIn(List values) { + addCriterion("stop_loss not in", values, "stopLoss"); + return (Criteria) this; + } + + public Criteria andStopLossBetween(Double value1, Double value2) { + addCriterion("stop_loss between", value1, value2, "stopLoss"); + return (Criteria) this; + } + + public Criteria andStopLossNotBetween(Double value1, Double value2) { + addCriterion("stop_loss not between", value1, value2, "stopLoss"); + return (Criteria) this; + } + + public Criteria andStopWinIsNull() { + addCriterion("stop_win is null"); + return (Criteria) this; + } + + public Criteria andStopWinIsNotNull() { + addCriterion("stop_win is not null"); + return (Criteria) this; + } + + public Criteria andStopWinEqualTo(Double value) { + addCriterion("stop_win =", value, "stopWin"); + return (Criteria) this; + } + + public Criteria andStopWinNotEqualTo(Double value) { + addCriterion("stop_win <>", value, "stopWin"); + return (Criteria) this; + } + + public Criteria andStopWinGreaterThan(Double value) { + addCriterion("stop_win >", value, "stopWin"); + return (Criteria) this; + } + + public Criteria andStopWinGreaterThanOrEqualTo(Double value) { + addCriterion("stop_win >=", value, "stopWin"); + return (Criteria) this; + } + + public Criteria andStopWinLessThan(Double value) { + addCriterion("stop_win <", value, "stopWin"); + return (Criteria) this; + } + + public Criteria andStopWinLessThanOrEqualTo(Double value) { + addCriterion("stop_win <=", value, "stopWin"); + return (Criteria) this; + } + + public Criteria andStopWinIn(List values) { + addCriterion("stop_win in", values, "stopWin"); + return (Criteria) this; + } + + public Criteria andStopWinNotIn(List values) { + addCriterion("stop_win not in", values, "stopWin"); + return (Criteria) this; + } + + public Criteria andStopWinBetween(Double value1, Double value2) { + addCriterion("stop_win between", value1, value2, "stopWin"); + return (Criteria) this; + } + + public Criteria andStopWinNotBetween(Double value1, Double value2) { + addCriterion("stop_win not between", value1, value2, "stopWin"); + return (Criteria) this; + } + + public Criteria andValidityTimeIsNull() { + addCriterion("validity_time is null"); + return (Criteria) this; + } + + public Criteria andValidityTimeIsNotNull() { + addCriterion("validity_time is not null"); + return (Criteria) this; + } + + public Criteria andValidityTimeEqualTo(Date value) { + addCriterion("validity_time =", value, "validityTime"); + return (Criteria) this; + } + + public Criteria andValidityTimeNotEqualTo(Date value) { + addCriterion("validity_time <>", value, "validityTime"); + return (Criteria) this; + } + + public Criteria andValidityTimeGreaterThan(Date value) { + addCriterion("validity_time >", value, "validityTime"); + return (Criteria) this; + } + + public Criteria andValidityTimeGreaterThanOrEqualTo(Date value) { + addCriterion("validity_time >=", value, "validityTime"); + return (Criteria) this; + } + + public Criteria andValidityTimeLessThan(Date value) { + addCriterion("validity_time <", value, "validityTime"); + return (Criteria) this; + } + + public Criteria andValidityTimeLessThanOrEqualTo(Date value) { + addCriterion("validity_time <=", value, "validityTime"); + return (Criteria) this; + } + + public Criteria andValidityTimeIn(List values) { + addCriterion("validity_time in", values, "validityTime"); + return (Criteria) this; + } + + public Criteria andValidityTimeNotIn(List values) { + addCriterion("validity_time not in", values, "validityTime"); + return (Criteria) this; + } + + public Criteria andValidityTimeBetween(Date value1, Date value2) { + addCriterion("validity_time between", value1, value2, "validityTime"); + return (Criteria) this; + } + + public Criteria andValidityTimeNotBetween(Date value1, Date value2) { + addCriterion("validity_time not between", value1, value2, "validityTime"); + 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(Integer value) { + addCriterion("status =", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotEqualTo(Integer value) { + addCriterion("status <>", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThan(Integer value) { + addCriterion("status >", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThanOrEqualTo(Integer value) { + addCriterion("status >=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThan(Integer value) { + addCriterion("status <", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThanOrEqualTo(Integer value) { + addCriterion("status <=", 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(Integer value1, Integer value2) { + addCriterion("status between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotBetween(Integer value1, Integer value2) { + addCriterion("status not between", value1, value2, "status"); + return (Criteria) this; + } + } + + /** + * This class was generated by MyBatis Generator. + * This class corresponds to the database table sys_pending_order + * + * @mbg.generated do_not_delete_during_merge Mon Jul 03 11:02: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_pending_order + * + * @mbg.generated Mon Jul 03 11:02: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/mappers/PendingOrderMapper.java b/src/main/java/com/sztzjy/forex/trading_trading/mappers/PendingOrderMapper.java new file mode 100644 index 0000000..ef55a83 --- /dev/null +++ b/src/main/java/com/sztzjy/forex/trading_trading/mappers/PendingOrderMapper.java @@ -0,0 +1,98 @@ +package com.sztzjy.forex.trading_trading.mappers; + +import com.sztzjy.forex.trading_trading.entity.PendingOrder; +import com.sztzjy.forex.trading_trading.entity.PendingOrderExample; +import java.util.List; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +@Mapper +public interface PendingOrderMapper { + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + long countByExample(PendingOrderExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + int deleteByExample(PendingOrderExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + int deleteByPrimaryKey(String pendingOrderId); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + int insert(PendingOrder record); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + int insertSelective(PendingOrder record); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + List selectByExample(PendingOrderExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + PendingOrder selectByPrimaryKey(String pendingOrderId); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + int updateByExampleSelective(@Param("record") PendingOrder record, @Param("example") PendingOrderExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + int updateByExample(@Param("record") PendingOrder record, @Param("example") PendingOrderExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + int updateByPrimaryKeySelective(PendingOrder record); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table sys_pending_order + * + * @mbg.generated Mon Jul 03 11:02:06 CST 2023 + */ + int updateByPrimaryKey(PendingOrder record); +} \ 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 new file mode 100644 index 0000000..7ac163a --- /dev/null +++ b/src/main/java/com/sztzjy/forex/trading_trading/service/PendingOrderService.java @@ -0,0 +1,31 @@ +package com.sztzjy.forex.trading_trading.service; + +import com.sztzjy.forex.trading_trading.entity.PendingOrder; +import com.sztzjy.forex.trading_trading.entity.PendingOrderExample; +import com.sztzjy.forex.trading_trading.mappers.PendingOrderMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class PendingOrderService { + @Autowired + PendingOrderMapper pendingOrderMapper; + + public void insert(PendingOrder pendingOrder){ + pendingOrderMapper.insert(pendingOrder); + } + + public List selectByExample(PendingOrder pendingOrder){ + PendingOrderExample pendingOrderExample = new PendingOrderExample(); + PendingOrderExample.Criteria criteria = pendingOrderExample.createCriteria(); + criteria.andMemberIdEqualTo(pendingOrder.getMemberId()).andTrainingIdEqualTo(pendingOrder.getTrainingId()); + List pendingOrders = pendingOrderMapper.selectByExample(pendingOrderExample); + return pendingOrders; + } + + public void cancelOrder(PendingOrder pendingOrder){ + pendingOrderMapper.updateByPrimaryKey(pendingOrder); + } +} diff --git a/src/main/java/com/sztzjy/forex/trading_trading/util/RedisUtil.java b/src/main/java/com/sztzjy/forex/trading_trading/util/RedisUtil.java new file mode 100644 index 0000000..e1d7d74 --- /dev/null +++ b/src/main/java/com/sztzjy/forex/trading_trading/util/RedisUtil.java @@ -0,0 +1,572 @@ +package com.sztzjy.forex.trading_trading.util; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.ValueOperations; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +@Component +public class RedisUtil { + + @Autowired + private RedisTemplate redisTemplate; + + public Set keys(String pattern) { + return redisTemplate.keys(pattern); + } + + /** + * 指定缓存失效时间 + * + * @param key 键 + * @param time 时间(秒) + * @return + */ + public boolean expire(String key, long time) { + try { + if (time > 0) { + redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 根据key 获取过期时间 + * + * @param key 键 不能为null + * @return 时间(秒) 返回0代表为永久有效 + */ + public long getExpire(String key) { + return redisTemplate.getExpire(key, TimeUnit.SECONDS); + } + + /** + * 判断key是否存在 + * + * @param key 键 + * @return true 存在 false不存在 + */ + public boolean hasKey(String key) { + try { + return redisTemplate.hasKey(key); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 删除缓存 + * + * @param key 可以传一个值 或多个 + */ + @SuppressWarnings("unchecked") + public void del(String... key) { + if (key != null && key.length > 0) { + if (key.length == 1) { + redisTemplate.delete(key[0]); + } else { + redisTemplate.delete(CollectionUtils.arrayToList(key)); + } + } + } + + // ============================String============================= + + /** + * 普通缓存获取 + * + * @param key 键 + * @return 值 + */ + public T get(String key) { + if (key == null) return null; + ValueOperations operation = redisTemplate.opsForValue(); + return operation.get(key); + } + + /** + * 普通缓存放入 + * + * @param key 键 + * @param value 值 + * @return true成功 false失败 + */ + public boolean set(String key, Object value) { + try { + redisTemplate.opsForValue().set(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + + } + + /** + * 普通缓存放入并设置时间 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 + * @return true成功 false 失败 + */ + public boolean set(String key, Object value, long time) { + try { + if (time > 0) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); + } else { + set(key, value); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 递增 + * + * @param key 键 + * @param delta 要增加几(大于0) + * @return + */ + public long incr(String key, long delta) { + if (delta < 0) { + throw new RuntimeException("递增因子必须大于0"); + } + return redisTemplate.opsForValue().increment(key, delta); + } + + /** + * 递减 + * + * @param key 键 + * @param delta 要减少几(小于0) + * @return + */ + public long decr(String key, long delta) { + if (delta < 0) { + throw new RuntimeException("递减因子必须大于0"); + } + return redisTemplate.opsForValue().increment(key, -delta); + } + + // ================================Map================================= + + /** + * HashGet + * + * @param key 键 不能为null + * @param item 项 不能为null + * @return 值 + */ + public Object hget(String key, String item) { + return redisTemplate.opsForHash().get(key, item); + } + + /** + * 获取hashKey对应的所有键值 + * + * @param key 键 + * @return 对应的多个键值 + */ + public Map hmget(String key) { + return redisTemplate.opsForHash().entries(key); + } + + /** + * HashSet + * + * @param key 键 + * @param map 对应多个键值 + * @return true 成功 false 失败 + */ + public boolean hmset(String key, Map map) { + try { + redisTemplate.opsForHash().putAll(key, map); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * HashSet 并设置时间 + * + * @param key 键 + * @param map 对应多个键值 + * @param time 时间(秒) + * @return true成功 false失败 + */ + public boolean hmset(String key, Map map, long time) { + try { + redisTemplate.opsForHash().putAll(key, map); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * + * @param key 键 + * @param item 项 + * @param value 值 + * @return true 成功 false失败 + */ + public boolean hset(String key, String item, Object value) { + try { + redisTemplate.opsForHash().put(key, item, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * + * @param key 键 + * @param item 项 + * @param value 值 + * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 + * @return true 成功 false失败 + */ + public boolean hset(String key, String item, Object value, long time) { + try { + redisTemplate.opsForHash().put(key, item, value); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 删除hash表中的值 + * + * @param key 键 不能为null + * @param item 项 可以使多个 不能为null + */ + public void hdel(String key, Object... item) { + redisTemplate.opsForHash().delete(key, item); + } + + /** + * 判断hash表中是否有该项的值 + * + * @param key 键 不能为null + * @param item 项 不能为null + * @return true 存在 false不存在 + */ + public boolean hHasKey(String key, String item) { + return redisTemplate.opsForHash().hasKey(key, item); + } + + /** + * hash递增 如果不存在,就会创建一个 并把新增后的值返回 + * + * @param key 键 + * @param item 项 + * @param by 要增加几(大于0) + * @return + */ + public double hincr(String key, String item, double by) { + return redisTemplate.opsForHash().increment(key, item, by); + } + + /** + * hash递减 + * + * @param key 键 + * @param item 项 + * @param by 要减少记(小于0) + * @return + */ + public double hdecr(String key, String item, double by) { + return redisTemplate.opsForHash().increment(key, item, -by); + } + + // ============================set============================= + + /** + * 根据key获取Set中的所有值 + * + * @param key 键 + * @return + */ + public Set sGet(String key) { + try { + return redisTemplate.opsForSet().members(key); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 根据value从一个set中查询,是否存在 + * + * @param key 键 + * @param value 值 + * @return true 存在 false不存在 + */ + public boolean sHasKey(String key, Object value) { + try { + return redisTemplate.opsForSet().isMember(key, value); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将数据放入set缓存 + * + * @param key 键 + * @param values 值 可以是多个 + * @return 成功个数 + */ + public long sSet(String key, Object... values) { + try { + return redisTemplate.opsForSet().add(key, values); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 将set数据放入缓存 + * + * @param key 键 + * @param time 时间(秒) + * @param values 值 可以是多个 + * @return 成功个数 + */ + public long sSetAndTime(String key, long time, Object... values) { + try { + Long count = redisTemplate.opsForSet().add(key, values); + if (time > 0) + expire(key, time); + return count; + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 获取set缓存的长度 + * + * @param key 键 + * @return + */ + public long sGetSetSize(String key) { + try { + return redisTemplate.opsForSet().size(key); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 移除值为value的 + * + * @param key 键 + * @param values 值 可以是多个 + * @return 移除的个数 + */ + public long setRemove(String key, Object... values) { + try { + Long count = redisTemplate.opsForSet().remove(key, values); + return count; + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + // ===============================list================================= + + /** + * 获取list缓存的内容 + * + * @param key 键 + * @param start 开始 + * @param end 结束 0 到 -1代表所有值 + * @return + */ + public List lGet(String key, long start, long end) { + try { + return redisTemplate.opsForList().range(key, start, end); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 获取list缓存的长度 + * + * @param key 键 + * @return + */ + public long lGetListSize(String key) { + try { + return redisTemplate.opsForList().size(key); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 通过索引 获取list中的值 + * + * @param key 键 + * @param index 索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推 + * @return + */ + public Object lGetIndex(String key, long index) { + try { + return redisTemplate.opsForList().index(key, index); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @return + */ + public boolean lSet(String key, Object value) { + try { + redisTemplate.opsForList().rightPush(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) + * @return + */ + public boolean lSet(String key, Object value, long time) { + try { + redisTemplate.opsForList().rightPush(key, value); + if (time > 0) + expire(key, time); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @return + */ + public boolean lSet(String key, List value) { + try { + redisTemplate.opsForList().rightPushAll(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) + * @return + */ + public boolean lSet(String key, List value, long time) { + try { + redisTemplate.opsForList().rightPushAll(key, value); + if (time > 0) + expire(key, time); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 根据索引修改list中的某条数据 + * + * @param key 键 + * @param index 索引 + * @param value 值 + * @return + */ + public boolean lUpdateIndex(String key, long index, Object value) { + try { + redisTemplate.opsForList().set(key, index, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 移除N个值为value + * + * @param key 键 + * @param count 移除多少个 + * @param value 值 + * @return 移除的个数 + */ + public long lRemove(String key, long count, Object value) { + try { + return redisTemplate.opsForList().remove(key, count, value); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index a767496..64f2976 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -13,6 +13,19 @@ spring: matching-strategy: ant_path_matcher jackson: time-zone: GMT+8 + redis: + host: localhost + port: 6379 + database: 0 +# spring.redis.pool.max-active=8 +# # 连接池最大阻塞等待时间(使用负值表示没有限制) +# spring.redis.pool.max-wait=-1 +# # 连接池中的最大空闲连接 +# spring.redis.pool.max-idle=8 +# # 连接池中的最小空闲连接 +# spring.redis.pool.min-idle=0 +# # 连接超时时间(毫秒) +# spring.redis.timeout=0 datasource: druid: # 初始连接数 diff --git a/src/main/resources/generatorConfig.xml b/src/main/resources/generatorConfig.xml index 4fa3b9e..be07f85 100644 --- a/src/main/resources/generatorConfig.xml +++ b/src/main/resources/generatorConfig.xml @@ -25,7 +25,8 @@ - + +
diff --git a/src/main/resources/mappers/PendingOrderMapper.xml b/src/main/resources/mappers/PendingOrderMapper.xml new file mode 100644 index 0000000..52f8ed8 --- /dev/null +++ b/src/main/resources/mappers/PendingOrderMapper.xml @@ -0,0 +1,414 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + pending_order_id, member_id, training_id, commission_time, trading_code, commission_number, + buy_sell_type, volume_transaction, price_commission, stop_loss, stop_win, validity_time, + status + + + + + + delete from sys_pending_order + where pending_order_id = #{pendingOrderId,jdbcType=VARCHAR} + + + + delete from sys_pending_order + + + + + + + insert into sys_pending_order (pending_order_id, member_id, training_id, + commission_time, trading_code, commission_number, + buy_sell_type, volume_transaction, price_commission, + stop_loss, stop_win, validity_time, + status) + values (#{pendingOrderId,jdbcType=VARCHAR}, #{memberId,jdbcType=VARCHAR}, #{trainingId,jdbcType=VARCHAR}, + #{commissionTime,jdbcType=TIMESTAMP}, #{tradingCode,jdbcType=VARCHAR}, #{commissionNumber,jdbcType=VARCHAR}, + #{buySellType,jdbcType=VARCHAR}, #{volumeTransaction,jdbcType=DOUBLE}, #{priceCommission,jdbcType=DOUBLE}, + #{stopLoss,jdbcType=DOUBLE}, #{stopWin,jdbcType=DOUBLE}, #{validityTime,jdbcType=TIMESTAMP}, + #{status,jdbcType=INTEGER}) + + + + insert into sys_pending_order + + + pending_order_id, + + + member_id, + + + training_id, + + + commission_time, + + + trading_code, + + + commission_number, + + + buy_sell_type, + + + volume_transaction, + + + price_commission, + + + stop_loss, + + + stop_win, + + + validity_time, + + + status, + + + + + #{pendingOrderId,jdbcType=VARCHAR}, + + + #{memberId,jdbcType=VARCHAR}, + + + #{trainingId,jdbcType=VARCHAR}, + + + #{commissionTime,jdbcType=TIMESTAMP}, + + + #{tradingCode,jdbcType=VARCHAR}, + + + #{commissionNumber,jdbcType=VARCHAR}, + + + #{buySellType,jdbcType=VARCHAR}, + + + #{volumeTransaction,jdbcType=DOUBLE}, + + + #{priceCommission,jdbcType=DOUBLE}, + + + #{stopLoss,jdbcType=DOUBLE}, + + + #{stopWin,jdbcType=DOUBLE}, + + + #{validityTime,jdbcType=TIMESTAMP}, + + + #{status,jdbcType=INTEGER}, + + + + + + + update sys_pending_order + + + pending_order_id = #{record.pendingOrderId,jdbcType=VARCHAR}, + + + member_id = #{record.memberId,jdbcType=VARCHAR}, + + + training_id = #{record.trainingId,jdbcType=VARCHAR}, + + + commission_time = #{record.commissionTime,jdbcType=TIMESTAMP}, + + + trading_code = #{record.tradingCode,jdbcType=VARCHAR}, + + + commission_number = #{record.commissionNumber,jdbcType=VARCHAR}, + + + buy_sell_type = #{record.buySellType,jdbcType=VARCHAR}, + + + volume_transaction = #{record.volumeTransaction,jdbcType=DOUBLE}, + + + price_commission = #{record.priceCommission,jdbcType=DOUBLE}, + + + stop_loss = #{record.stopLoss,jdbcType=DOUBLE}, + + + stop_win = #{record.stopWin,jdbcType=DOUBLE}, + + + validity_time = #{record.validityTime,jdbcType=TIMESTAMP}, + + + status = #{record.status,jdbcType=INTEGER}, + + + + + + + + + update sys_pending_order + set pending_order_id = #{record.pendingOrderId,jdbcType=VARCHAR}, + member_id = #{record.memberId,jdbcType=VARCHAR}, + training_id = #{record.trainingId,jdbcType=VARCHAR}, + commission_time = #{record.commissionTime,jdbcType=TIMESTAMP}, + trading_code = #{record.tradingCode,jdbcType=VARCHAR}, + commission_number = #{record.commissionNumber,jdbcType=VARCHAR}, + buy_sell_type = #{record.buySellType,jdbcType=VARCHAR}, + volume_transaction = #{record.volumeTransaction,jdbcType=DOUBLE}, + price_commission = #{record.priceCommission,jdbcType=DOUBLE}, + stop_loss = #{record.stopLoss,jdbcType=DOUBLE}, + stop_win = #{record.stopWin,jdbcType=DOUBLE}, + validity_time = #{record.validityTime,jdbcType=TIMESTAMP}, + status = #{record.status,jdbcType=INTEGER} + + + + + + + update sys_pending_order + + + member_id = #{memberId,jdbcType=VARCHAR}, + + + training_id = #{trainingId,jdbcType=VARCHAR}, + + + commission_time = #{commissionTime,jdbcType=TIMESTAMP}, + + + trading_code = #{tradingCode,jdbcType=VARCHAR}, + + + commission_number = #{commissionNumber,jdbcType=VARCHAR}, + + + buy_sell_type = #{buySellType,jdbcType=VARCHAR}, + + + volume_transaction = #{volumeTransaction,jdbcType=DOUBLE}, + + + price_commission = #{priceCommission,jdbcType=DOUBLE}, + + + stop_loss = #{stopLoss,jdbcType=DOUBLE}, + + + stop_win = #{stopWin,jdbcType=DOUBLE}, + + + validity_time = #{validityTime,jdbcType=TIMESTAMP}, + + + status = #{status,jdbcType=INTEGER}, + + + where pending_order_id = #{pendingOrderId,jdbcType=VARCHAR} + + + + update sys_pending_order + set member_id = #{memberId,jdbcType=VARCHAR}, + training_id = #{trainingId,jdbcType=VARCHAR}, + commission_time = #{commissionTime,jdbcType=TIMESTAMP}, + trading_code = #{tradingCode,jdbcType=VARCHAR}, + commission_number = #{commissionNumber,jdbcType=VARCHAR}, + buy_sell_type = #{buySellType,jdbcType=VARCHAR}, + volume_transaction = #{volumeTransaction,jdbcType=DOUBLE}, + price_commission = #{priceCommission,jdbcType=DOUBLE}, + stop_loss = #{stopLoss,jdbcType=DOUBLE}, + stop_win = #{stopWin,jdbcType=DOUBLE}, + validity_time = #{validityTime,jdbcType=TIMESTAMP}, + status = #{status,jdbcType=INTEGER} + where pending_order_id = #{pendingOrderId,jdbcType=VARCHAR} + + \ No newline at end of file