package com.yami.trading.admin.controller.trader; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yami.trading.admin.model.TraderOrderListModel; import com.yami.trading.admin.model.trader.TraderOrderModel; import com.yami.trading.bean.item.domain.Item; import com.yami.trading.bean.model.User; import com.yami.trading.bean.trader.domain.Trader; import com.yami.trading.bean.trader.domain.TraderOrder; import com.yami.trading.common.domain.Result; import com.yami.trading.common.exception.BusinessException; import com.yami.trading.common.util.StringUtils; import com.yami.trading.service.item.ItemService; import com.yami.trading.service.trader.AdminTraderOrderService; import com.yami.trading.service.trader.AdminTraderService; import com.yami.trading.service.user.UserService; import io.swagger.annotations.Api; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import java.text.SimpleDateFormat; import java.util.HashMap; import java.util.List; import java.util.Map; @RestController @CrossOrigin @RequestMapping() @Api(tags = "交易员订单管理") public class AdminTraderOrderController { private static Log logger = LogFactory.getLog(AdminTraderOrderController.class); Map item_map = new HashMap(); @Autowired private AdminTraderService adminTraderService; @Autowired private AdminTraderOrderService adminTraderOrderService; @Autowired private ItemService itemService; @Autowired private UserService userService; private final String action = "/normal/adminTraderOrder!"; @RequestMapping(action + "list.action") public Result list(TraderOrderListModel model, Page page) { page = this.adminTraderOrderService.pagedQuery(page, model.getName_para(), model.getUsername_para(), model.getRolename_para()); HashMap resultDict=new HashMap(); resultDict.put("pageSize", page.getSize()); resultDict.put("pageNo", page.getCurrent()); resultDict.put("page", page); return Result.succeed(resultDict, "获取数据成功"); } // @RequestMapping(action + "toAdd.action") // public String toAdd() { // return "add"; // } @RequestMapping(action + "add.action") public Result add(@RequestBody TraderOrderModel model) { String usercode = model.getUsercode(); String symbol = model.getSymbol(); String profit = model.getProfit(); String change_ratio = model.getChangeRatio(); String close_avg_price = model.getCloseAvgPrice(); String trade_avg_price = model.getTradeAvgPrice(); String close_time = model.getCloseTime(); String create_time = model.getCreateTime(); String direction = model.getDirection(); String lever_rate = model.getLeverRate(); String state = model.getState(); String volume_open = model.getVolumeOpen(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { String error = verification(usercode, symbol, profit, change_ratio, close_avg_price, trade_avg_price, close_time, create_time, direction, lever_rate, state, volume_open); if (!StringUtils.isNullOrEmpty(error)) throw new BusinessException(error); User party = userService.findUserByUserCode(usercode); if (party == null ) { error = "交易员UID不存在!"; throw new BusinessException(error); } Trader trader = this.adminTraderService.findByPartyId(party.getUserId()); if (trader == null) { error = "交易员不存在!"; throw new BusinessException(error); } TraderOrder entity = new TraderOrder(); entity.setPartyId(party.getUserId()); entity.setSymbol(symbol); entity.setProfit(Double.parseDouble(profit)); entity.setChangeRatio(Double.parseDouble(change_ratio)); entity.setCloseAvgPrice(Double.parseDouble(close_avg_price)); entity.setTradeAvgPrice(Double.parseDouble(trade_avg_price)); entity.setCloseTime(sdf.parse(close_time)); entity.setCreateTime(sdf.parse(create_time)); entity.setDirection(direction); entity.setLeverRate(Double.parseDouble(lever_rate)); entity.setProfit(Double.parseDouble(profit)); entity.setState(state); entity.setVolumeOpen(Double.parseDouble(volume_open)); this.adminTraderOrderService.save(entity); } catch (BusinessException e) { return Result.failed("1", e.getMessage()); } catch (Throwable t) { logger.error("error ", t); return Result.failed("1", t.getMessage()); } return Result.succeed("添加成功!", "0"); } // private String verificationUpdate() { // if (StringUtils.isEmptyString(this.usercode)) // return "请输入交易员UID"; // if (StringUtils.isEmptyString(this.symbol)) // return "请输入品�?"; // if (this.create_time == null) // return "请输入开仓时�?"; // if (this.close_time == null) // return "请输入平仓时�?"; // // if (this.lever_rate <= 0 || this.lever_rate %1 != 0) // return "杠杆倍数不能小于等于0,并且不能有小�?"; // if (this.volume_open <= 0 || this.volume_open %1 != 0) // return "委托数量不能小于等于0,并且不能有小�?"; // if (this.trade_avg_price < 0) // return "买入价格不能小于0"; // if (this.close_avg_price < 0) // return "平常价格不能小于0"; // return null; // } @RequestMapping(action + "toUpdate.action") public Result toUpdate(HttpServletRequest request) { String id = request.getParameter("uuid"); TraderOrder entity = adminTraderOrderService.findById(id); User user = userService.findByUserId(entity.getPartyId()); entity.setUsercode(user.getUserCode()); // User party = userService.cacheUserBy(entity.getPartyId().toString()); // this.usercode = party.getUsercode(); // // this.symbol = entity.getSymbol(); // this.profit = entity.getProfit(); // this.change_ratio = entity.getChange_ratio(); // this.close_avg_price = entity.getClose_avg_price(); // this.trade_avg_price = entity.getTrade_avg_price(); // this.close_time = entity.getClose_time(); // this.create_time = entity.getCreate_time(); // this.direction = entity.getDirection(); // this.lever_rate = entity.getLever_rate(); // this.profit = entity.getProfit(); // this.state = entity.getState(); // this.volume_open = entity.getVolume_open(); // // return "update"; return Result.succeed(entity, "获取数据成功!"); } @RequestMapping(action + "update.action") public Result update(@RequestBody TraderOrderModel model) { String id = model.getUuid(); String usercode = model.getUsercode(); String symbol = model.getSymbol(); String profit = model.getProfit(); String change_ratio = model.getChangeRatio(); String close_avg_price = model.getCloseAvgPrice(); String trade_avg_price = model.getTradeAvgPrice(); String close_time = model.getCloseTime(); String create_time = model.getCreateTime(); String direction = model.getDirection(); String lever_rate = model.getLeverRate(); String state = model.getState(); String volume_open = model.getVolumeOpen(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { String error = verification(usercode, symbol, profit, change_ratio, close_avg_price, trade_avg_price, close_time, create_time, direction, lever_rate, state, volume_open); if (!StringUtils.isNullOrEmpty(error)) throw new BusinessException(error); TraderOrder entity = adminTraderOrderService.findById(id); entity.setSymbol(symbol); entity.setProfit(Double.parseDouble(profit)); entity.setChangeRatio(Double.parseDouble(change_ratio)); entity.setCloseAvgPrice(Double.parseDouble(close_avg_price)); entity.setTradeAvgPrice(Double.parseDouble(trade_avg_price)); entity.setCloseTime(sdf.parse(close_time)); entity.setCreateTime(sdf.parse(create_time)); entity.setDirection(direction); entity.setLeverRate(Double.parseDouble(lever_rate)); entity.setProfit(Double.parseDouble(profit)); entity.setState(state); entity.setVolumeOpen(Double.parseDouble(volume_open)); this.adminTraderOrderService.update(entity); return Result.succeed("更新成功!", "0"); } catch (BusinessException e) { return Result.failed("1", e.getMessage()); } catch (Throwable t) { logger.error("update error ", t); return Result.failed("1", t.getMessage()); } } @RequestMapping(action + "delete.action") public Result toDelete(HttpServletRequest request) { String id = request.getParameter("uuid"); try { this.adminTraderOrderService.delete(id); return Result.succeed("删除成功!"); } catch (BusinessException e) { return Result.failed("1", e.getMessage()); } catch (Throwable t) { logger.error("update error ", t); return Result.failed("1", t.getMessage()); } } private String verification(String usercode, String symbol, String profit, String change_ratio, String close_avg_price, String trade_avg_price, String close_time, String create_time, String direction, String lever_rate, String state, String volume_open) { if (StringUtils.isEmptyString(usercode)) return "请输入交易员UID"; if (StringUtils.isEmptyString(symbol)) return "请输入品种"; if (create_time == null) return "请输入开仓时间"; if (close_time == null) return "请输入平仓时间"; if (Double.parseDouble(lever_rate) <= 0 || Double.parseDouble(lever_rate) %1 != 0) return "杠杆倍数不能小于等于0,并且不能有小数"; if (Double.parseDouble(volume_open) <= 0 || Double.parseDouble(volume_open) %1 != 0) return "委托数量不能小于等于0,并且不能有数"; if (Double.parseDouble(trade_avg_price) < 0) return "买入价格不能小于0"; if (Double.parseDouble(close_avg_price) < 0) return "平常价格不能小于0"; return null; } public Map getItem_map() { List items = this.itemService.cacheGetAll(); if(items != null) { for(Item item :items) { this.item_map.put(item.getSymbol().toString(), item.getName().toString()); } } return item_map; } public void setItem_map(Map item_map) { this.item_map = item_map; } }