package com.yami.trading.admin.controller.dz;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.yami.trading.admin.facade.PermissionFacade;
|
import com.yami.trading.bean.dz.StockDz;
|
import com.yami.trading.bean.model.User;
|
import com.yami.trading.common.constants.Constants;
|
import com.yami.trading.common.domain.Result;
|
import com.yami.trading.common.exception.YamiShopBindException;
|
import com.yami.trading.dao.dz.StockDzMapper;
|
import com.yami.trading.security.common.util.SecurityUtils;
|
import com.yami.trading.service.dz.StockDzService;
|
import com.yami.trading.service.user.UserService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
|
@RestController
|
@CrossOrigin
|
@Api(tags = "后台美股暗池订单")
|
@RequestMapping("stockDarkPools")
|
@Slf4j
|
public class AdminStockDarkPoolsController {
|
|
@Resource
|
StockDzService stockDzService;
|
|
@Autowired
|
private PermissionFacade permissionFacade;
|
|
@Autowired
|
UserService userService;
|
|
@Autowired
|
StockDzMapper stockDzMapper;
|
|
|
/**
|
* @Description: 获取大宗列表
|
* @Param:
|
* @return:
|
*/
|
@ApiOperation("获取大宗列表")
|
@PostMapping({"getDzListByAdmin.do"})
|
public Result getDzListByAdmin(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
|
@RequestParam(value = "pageSize", defaultValue = "5") int pageSize,
|
@RequestParam(value = "keywords", required = false)String keywords) {
|
return stockDzService.getDzListByAdmin(pageNum, pageSize, keywords, Constants.US_DARK);
|
}
|
|
/**
|
* @Description: 新增大宗
|
* @Param:
|
* @return:
|
*/
|
@ApiOperation("新增大宗")
|
@PostMapping({"addByAdmin.do"})
|
public Result addByAdmin(@RequestParam(value = "stockCode") String stockCode,
|
@RequestParam(value = "stockNum") String stockNum,
|
@RequestParam(value = "password", required = false) String password,
|
@RequestParam(value = "startTime") String startTime,
|
@RequestParam(value = "endTime") String endTime,
|
@RequestParam(value = "discount", required = false) String discount,
|
@RequestParam(value = "period", required = false) Integer period,
|
@RequestParam(value = "nowPrice") String nowPrice,
|
@RequestParam(value = "switchType", defaultValue = "0") Integer switchType) {
|
return stockDzService.addByAdmin(stockCode, null, stockNum, password, startTime, endTime, discount, period,nowPrice,switchType, Constants.US_DARK, 0);
|
}
|
|
/**
|
* 删除大宗
|
*/
|
@ApiOperation("删除大宗")
|
@PostMapping({"deleteByAdmin.do"})
|
public Result deleteByAdmin(@RequestParam(value = "id") String id) {
|
return stockDzService.deleteByAdmin(id);
|
}
|
|
/**
|
* 修改大宗
|
*/
|
@ApiOperation("修改大宗")
|
@PostMapping({"updateByAdmin.do"})
|
public Result updateByAdmin(StockDz model) {
|
return stockDzService.updByAdmin(model);
|
}
|
|
|
@ApiOperation("大宗交易审核列表")
|
@PostMapping({"getDzCheckList.do"})
|
@ResponseBody
|
public Result getDzCheckList(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
|
@RequestParam(value = "pageSize", defaultValue = "15") int pageSize,
|
@RequestParam(value = "state", required = false) String state,
|
@RequestParam(value = "stockCode", required = false)String stockCode,
|
@RequestParam(value = "userName", required = false)String userName
|
) {
|
return stockDzService.getDzCheckList(pageNum, pageSize, state, stockCode, Constants.US_DARK, userName, permissionFacade.getOwnerUserIds());
|
}
|
|
@ApiOperation("大宗审核")
|
@PostMapping({"dzCheck.do"})
|
@ResponseBody
|
public Result check(@RequestParam(value = "id") String id,
|
@RequestParam(value = "checkType") Integer checkType,
|
@RequestParam(value = "orderNum", required = false) Double orderNum,
|
@RequestParam(value = "price", required = false, defaultValue = "0") double price) {
|
if(checkType != 2 && (id == null || checkType == null || orderNum == null)){
|
return Result.failed("参数不能为空");
|
}
|
return stockDzService.dzCheck(id, checkType, orderNum, price);
|
}
|
|
/**
|
* @Description: 大宗列表
|
* @Param:
|
* @return:
|
*/
|
@ApiOperation("获取大宗列表数据")
|
@PostMapping({"getDzList.do"})
|
public Result getDzList(@RequestParam(value = "stockName", required = false) String stockName) {
|
LambdaQueryWrapper<StockDz> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(StockDz::getStockType, Constants.US_DARK);
|
if (StringUtils.isNotBlank(stockName)) {
|
queryWrapper.and(wrapper -> wrapper
|
.like(StockDz::getStockCode, stockName)
|
.or()
|
.like(StockDz::getStockName, stockName)
|
);
|
}
|
return Result.succeed(stockDzMapper.selectList(queryWrapper));
|
}
|
|
|
@ApiOperation("大宗下单")
|
@GetMapping({"buyStockDz.do"})
|
public Result buyDz(@RequestParam("dzId") String dzId,
|
@RequestParam("num") double num,
|
@RequestParam("userCode") String userCode) {
|
if (dzId == null || num ==0 ||userCode == null) {
|
return Result.failed("请输入参数");
|
}
|
User user = userService.findUserByUserCode(userCode);
|
if(user == null){
|
return Result.failed("未找到用户");
|
}
|
return stockDzService.buyDz(dzId, null, num, user.getUserId(), true);
|
}
|
|
@ApiOperation("大宗平仓")
|
@GetMapping({"closeStockDz.do"})
|
public Result closeStockDz(@RequestParam("id") String id) {
|
return stockDzService.closeDz(id, null, null, true);
|
}
|
|
|
}
|