package com.yami.trading.service.trader.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yami.trading.bean.trader.domain.TraderOrder; import com.yami.trading.dao.trader.TraderOrderMapper; import com.yami.trading.service.trader.TraderOrderService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.RoundingMode; import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Service public class TraderOrderServiceImpl implements TraderOrderService { @Resource private TraderOrderMapper traderOrderMapper; public List> getPaged(Page page, String partyId) { // StringBuffer queryString = new StringBuffer(" " + " SELECT trader_order.SYMBOL symbol , " // + " trader_order.TRADE_AVG_PRICE trade_avg_price, " + " trader_order.DIRECTION direction , " // + " trader_order.STATE state,trader_order.PROFIT profit, " // + " trader_order.CLOSE_AVG_PRICE close_avg_price,trader_order.CHANGE_RATIO change_ratio , " // + " DATE_FORMAT(trader_order.CLOSE_TIME, '%Y-%m-%d %H:%i:%S') close_time,DATE_FORMAT(trader_order.CREATE_TIME, '%Y-%m-%d %H:%i:%S') create_time, " // + " trader_order.VOLUME_OPEN volume_open,item.NAME itemname, " + " trader_order.ORDER_NO order_no "); // queryString.append(" FROM T_TRADER_ORDER trader_order "); // queryString.append(" LEFT JOIN T_ITEM item ON trader_order.SYMBOL = item.SYMBOL "); // queryString.append(" WHERE 1 = 1 "); // Map parameters = new HashMap(); // queryString.append(" and trader_order.PARTY_ID =:partyId"); // parameters.put("partyId", partyId); // // queryString.append(" order by trader_order.CREATE_TIME desc "); List> traders = traderOrderMapper.listDatas((page.getCurrent() - 1) * page.getSize(), page.getSize(), partyId); List> data = this.bulidData(traders); return data; } private List> bulidData(List> traders) { List> result_traders = new ArrayList(); DecimalFormat df2 = new DecimalFormat("#.##"); df2.setRoundingMode(RoundingMode.FLOOR);// 向下取整 if (traders == null) { return result_traders; } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for (int i = 0; i < traders.size(); i++) { Map map = new HashMap(); Map entity = traders.get(i); map.put("order_no", entity.get("order_no")); map.put("name", entity.get("itemname")); map.put("close_avg_price", entity.get("close_avg_price")); map.put("trade_avg_price", entity.get("trade_avg_price")); map.put("direction", entity.get("direction")); map.put("state", entity.get("state")); map.put("profit", entity.get("profit")); map.put("lever_rate", entity.get("lever_rate")); map.put("follow_now", entity.get("follow_now")); map.put("follow_max", entity.get("follow_max")); if (entity.get("close_time") != null) { try { map.put("close_time", sdf.parse(entity.get("close_time").toString())); } catch (ParseException e) { throw new RuntimeException(e); } } else { map.put("close_time", ""); } // 验证下以 map 方式返回的日期类型字段,在 java 里是使用 String 来接,还是 Date 来接 TODO if (entity.get("create_time") != null) { try { map.put("create_time", sdf.parse(entity.get("create_time").toString())); } catch (ParseException e) { throw new RuntimeException(e); } } else { map.put("create_time", ""); } map.put("volume_open", entity.get("volume_open")); map.put("itemname", entity.get("itemname")); map.put("change_ratio", entity.get("change_ratio")); result_traders.add(map); } return result_traders; } @Override public void delete(String id) { // TraderOrder entity = findById(id); // if (entity != null) { // ApplicationUtil.executeDelete(entity); // } traderOrderMapper.deleteById(id); } @Override public void update(TraderOrder entity) { // ApplicationUtil.executeUpdate(entity); traderOrderMapper.updateById(entity); } @Override public void save(TraderOrder entity) { // ApplicationUtil.executeSaveOrUpdate(entity); traderOrderMapper.insert(entity); } @Override public TraderOrder findById(String id) { // return ApplicationUtil.executeGet(id, TraderOrder.class); TraderOrder traderOrder = traderOrderMapper.selectById(id); return traderOrder; } }