package com.yami.trading.admin.controller.item; import javax.validation.Valid; import cn.hutool.core.util.StrUtil; import com.google.common.collect.Lists; import com.yami.trading.bean.item.domain.Item; import com.yami.trading.bean.item.dto.ItemConfig; import com.yami.trading.common.domain.Result; import com.yami.trading.common.exception.YamiShopBindException; import com.yami.trading.common.lang.LangUtils; import com.yami.trading.common.query.QueryWrapperGenerator; import com.yami.trading.common.util.StringUtils; import com.yami.trading.service.user.UserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yami.trading.bean.item.dto.ItemDTO; import com.yami.trading.bean.item.mapstruct.ItemWrapper; import com.yami.trading.service.item.ItemService; import com.yami.trading.bean.item.query.ItemQuery; /** * 产品Controller * @author lucas * @version 2023-03-10 */ @Api(tags ="永续合约管理和行情品种") @RestController @RequestMapping(value = "normal/adminItemAction!") public class AdminItemController { @Autowired private ItemService itemService; @Autowired private ItemWrapper itemWrapper; @Autowired private UserService userService; /** * 产品列表数据 */ @ApiOperation(value = "永续合约列表,配置列表") @GetMapping("list") public Result> list(ItemQuery itemQuery, Page page) throws Exception { QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (itemQuery, ItemQuery.class); IPage result = itemService.findPage (page, queryWrapper); return Result.ok (result); } @ApiOperation(value = "设置前端显示状态,返回修改后的状态") @GetMapping("setShowStatus") public Result setShowStatus(String symbol, String showStatus) throws Exception { Item bySymbol = itemService.findBySymbol(symbol); if(bySymbol == null){ throw new YamiShopBindException( symbol + "不存在"); } Item update = new Item(); update.setUuid(bySymbol.getUuid()); update.setShowStatus(showStatus); itemService.updateById(update); return Result.ok(showStatus); } @ApiOperation(value = "设置交易状态, 返回修改后的状态") @GetMapping("setTradeStatus") public Result setTradeStatus(String symbol, String tradeStatus) throws Exception { Item bySymbol = itemService.findBySymbol(symbol); if(bySymbol == null){ throw new YamiShopBindException( symbol + "不存在"); } Item update = new Item(); update.setUuid(bySymbol.getUuid()); update.setTradeStatus(tradeStatus); itemService.updateById(update); return Result.ok(tradeStatus); } /** * 根据Id获取产品数据 */ @ApiOperation(value = "根据Id获取产品数据") @GetMapping("queryById") public Result queryById(String id) { return Result.ok ( itemService.findById ( id ) ); } /** * 保存产品 */ @ApiOperation(value = "保存产品") @PostMapping("save") public Result save(@Valid @RequestBody Item item) { //新增或编辑表单保存 itemService.saveOrUpdate (item); return Result.ok ( "保存产品成功" ); } /** * 保存产品 */ @ApiOperation(value = "保存配置") @PostMapping("addConfig.action") public Result addConfig(@Valid @RequestBody ItemConfig itemConfig) { //userService.checkLoginSafeword(SecurityUtils.getSysUser().getUserId().toString(), itemConfig.getLoginSafeword()); if(StrUtil.isNotBlank(itemConfig.getUuid())){ throw new YamiShopBindException("新增配置不要传入uuid"); } Item bySymbol = itemService.findBySymbol(itemConfig.getSymbol()); if(bySymbol != null){ throw new YamiShopBindException("代码已经存在"); } Item item = itemWrapper.toEntity(itemConfig); //新增或编辑表单保存 itemService.save (item); // todo log return Result.ok ( "保存行情品种成功" ); } /** * 保存永续合约 */ @ApiOperation(value = "保存永续合约") @PostMapping("add.action") public Result addConfig(@Valid @RequestBody ItemDTO itemDTO) { //userService.checkLoginSafeword(SecurityUtils.getSysUser().getUserId().toString(), itemDTO.getLoginSafeword()); if(StrUtil.isNotBlank(itemDTO.getUuid())){ throw new YamiShopBindException("新增配置不要传入uuid"); } Item bySymbol = itemService.findBySymbol(itemDTO.getSymbol()); if(bySymbol != null){ throw new YamiShopBindException("代码已经存在"); } Item item = itemWrapper.toEntity(itemDTO); //新增或编辑表单保存 itemService.save (item); // todo log return Result.ok ( "保存永续合约成功" ); } /** * 保存产品 */ @ApiOperation(value = "更新产品/修改交易对/修改状态") @PostMapping("update.action") public Result updateConfig(@Valid @RequestBody ItemDTO itemDTO) { // userService.checkLoginSafeword(SecurityUtils.getSysUser().getUserId().toString(), itemDTO.getLoginSafeword()); if(StrUtil.isBlank(itemDTO.getUuid())){ throw new YamiShopBindException("更新数据时候uuid不能为空"); } Item byId = itemService.getById(itemDTO.getUuid()); if(byId == null){ throw new YamiShopBindException("更新永续合约不存在"); } // 新老代码不等 if (!byId.getSymbol().equalsIgnoreCase(itemDTO.getSymbol())) { // 且老的名称已经存在 Item bySymbol = itemService.findBySymbol(itemDTO.getSymbol()); if(bySymbol != null ){ throw new YamiShopBindException("被更新的永续合约已经存在"); } } Item item = itemWrapper.toEntity(itemDTO); //新增或编辑表单保存 itemService.saveOrUpdate (item); // todo log return Result.ok ( "保存行情永续合约成功" ); } /** * 保存产品 */ @ApiOperation(value = "更新配置") @PostMapping("updateConfig.action") public Result updateConfig(@Valid @RequestBody ItemConfig itemConfig) { //userService.checkLoginSafeword(SecurityUtils.getSysUser().getUserId().toString(), itemConfig.getLoginSafeword()); if(StrUtil.isBlank(itemConfig.getUuid())){ throw new YamiShopBindException("更新数据时候uuid不能为空"); } Item byId = itemService.getById(itemConfig.getUuid()); if(byId == null){ throw new YamiShopBindException("更新品种不存在"); } // 新老代码不等 if (!byId.getSymbol().equalsIgnoreCase(itemConfig.getSymbol())) { // 且老的名称已经存在 Item bySymbol = itemService.findBySymbol(itemConfig.getSymbol()); if(bySymbol != null ){ throw new YamiShopBindException("被更新的品种已经存在"); } } Item item = itemWrapper.toEntity(itemConfig); //新增或编辑表单保存 itemService.saveOrUpdate (item); // todo log return Result.ok ( "保存行情品种成功" ); } /** * 删除产品 */ @ApiOperation(value = "删除产品") @DeleteMapping("delete") public Result delete(String ids) { String idArray[] = ids.split(","); itemService.removeByIds ( Lists.newArrayList ( idArray ) ); return Result.ok( "删除产品成功" ); } }