package com.gear.admin.controller.swx;; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletResponse; 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.gear.admin.vo.swx.MarketCantractsVo; import com.gear.admin.vo.swx.MarketOptionsVo; import com.gear.common.builder.WhereBuilder; import com.gear.common.constant.SwxConstons; import com.gear.common.core.redis.RedisCache; import com.gear.common.vo.Result; import com.gear.swx.domain.SwxMarket; import com.gear.swx.domain.SwxMarketContracts; import com.gear.swx.service.ISwxMarketService; import io.jsonwebtoken.lang.Collections; import org.apache.logging.log4j.util.Strings; import org.springframework.beans.BeanUtils; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.gear.common.annotation.Log; import com.gear.common.core.controller.BaseController; import com.gear.common.enums.BusinessType; import com.gear.swx.domain.SwxMarketOptions; import com.gear.swx.service.ISwxMarketOptionsService; import com.gear.common.utils.poi.ExcelUtil; /** * 期权产品管理Controller * * @author czx * @date 2023-11-20 */ @RestController @RequestMapping("/swx/marketOptions") public class SwxMarketOptionsController extends BaseController { @Autowired private ISwxMarketOptionsService swxMarketOptionsService; @Autowired private ISwxMarketService swxMarketService; @Autowired private RedisCache redisCache; /** * 查询期权产品管理列表 */ @PreAuthorize("@ss.hasPermi('swx:marketOptions:list')") @GetMapping("/list") public Result> list(MarketOptionsVo swxMarketOptions, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize){ QueryWrapper queryWrapper = new QueryWrapper<>(); if(!Strings.isEmpty(swxMarketOptions.getCode()) || !Strings.isEmpty(swxMarketOptions.getName()) || swxMarketOptions.getType() != null){ QueryWrapper marketQueryWrapper = new QueryWrapper<>(); if(!Strings.isEmpty(swxMarketOptions.getCode())){ marketQueryWrapper.lambda().like(SwxMarket::getCode,swxMarketOptions.getCode()); } if(!Strings.isEmpty(swxMarketOptions.getName())){ marketQueryWrapper.lambda().like(SwxMarket::getName,swxMarketOptions.getName()); } if(swxMarketOptions.getType() != null){ marketQueryWrapper.lambda().eq(SwxMarket::getType,swxMarketOptions.getType()); } List list = swxMarketService.list(marketQueryWrapper); List ids = new ArrayList<>(); if(!Collections.isEmpty(list)) { for (SwxMarket item : list) { ids.add(item.getId()); } }else{ ids.add(""); } queryWrapper.lambda().in(SwxMarketOptions::getMId,ids); } Page page = new Page<>(pageNo,pageSize); queryWrapper.lambda().orderByDesc(SwxMarketOptions::getCreateTime); IPage pageList = swxMarketOptionsService.page(page,queryWrapper); IPage result = new Page<>(); List records = new ArrayList<>(); for(SwxMarketOptions item : pageList.getRecords()){ MarketOptionsVo vo = new MarketOptionsVo(); BeanUtils.copyProperties(item,vo); SwxMarket swxMarket = swxMarketService.getById(item.getMId()); if(swxMarket != null){ vo.setName(swxMarket.getName()); vo.setCode(swxMarket.getCode()); vo.setType(swxMarket.getType()); vo.setZdf(redisCache.getCacheObject(swxMarket.getCode()+"CurrZdf") == null ? BigDecimal.ZERO : new BigDecimal(redisCache.getCacheObject(swxMarket.getCode()+"CurrZdf")+"")); vo.setPrice(redisCache.getCacheObject(swxMarket.getCode()+"CurrPrice") == null ? BigDecimal.ZERO : new BigDecimal(redisCache.getCacheObject(swxMarket.getCode()+"CurrPrice")+"")); vo.setHundred(redisCache.getCacheList(swxMarket.getCode()+"Hundred")); } records.add(vo); } result.setRecords(records); result.setCurrent(pageList.getCurrent()); result.setPages(pageList.getPages()); result.setSize(pageList.getSize()); result.setTotal(pageList.getTotal()); return Result.OK(result); } /** * 导出期权产品管理列表 */ @PreAuthorize("@ss.hasPermi('swx:marketOptions:export')") @Log(title = "期权产品管理", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, SwxMarketOptions swxMarketOptions){ QueryWrapper queryWrapper = WhereBuilder.build(swxMarketOptions); List list = swxMarketOptionsService.list(queryWrapper); ExcelUtil util = new ExcelUtil(SwxMarketOptions.class); util.exportExcel(response, list, "期权产品管理数据"); } /** * 获取期权产品管理详细信息 */ @PreAuthorize("@ss.hasPermi('swx:marketOptions:query')") @GetMapping(value = "/{id}") public Result getInfo(@PathVariable("id") String id){ SwxMarketOptions swxMarketOptions = swxMarketOptionsService.getById(id); if(swxMarketOptions==null) { return Result.error("未找到对应数据"); } return Result.OK(swxMarketOptions); } /** * 修改期权产品管理 */ @PreAuthorize("@ss.hasPermi('swx:marketOptions:edit')") @Log(title = "期权产品管理", businessType = BusinessType.UPDATE) @PutMapping public Result edit(@RequestBody SwxMarketOptions swxMarketOptions){ if(swxMarketOptions.getStatus() != null){ SwxMarketOptions old = swxMarketOptionsService.getById(swxMarketOptions.getId()); SwxMarket swxMarket = swxMarketService.getById(old.getMId()); swxMarket.setCanOptions(swxMarketOptions.getStatus()); swxMarketService.updateById(swxMarket); } swxMarketOptionsService.updateById(swxMarketOptions); return Result.ok("编辑成功!"); } }