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.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.SwxLoanSettings; import com.gear.swx.domain.SwxMarket; import com.gear.swx.domain.SwxMarketSmart; 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.SwxMarketContracts; import com.gear.swx.service.ISwxMarketContractsService; import com.gear.common.utils.poi.ExcelUtil; /** * 合约产品管理Controller * * @author czx * @date 2023-11-20 */ @RestController @RequestMapping("/swx/marketContracts") public class SwxMarketContractsController extends BaseController { @Autowired private ISwxMarketContractsService swxMarketContractsService; @Autowired private ISwxMarketService swxMarketService; @Autowired private RedisCache redisCache; /** * 查询合约产品管理列表 */ @PreAuthorize("@ss.hasPermi('swx:marketContracts:list')") @GetMapping("/list") public Result> list(MarketCantractsVo swxMarketContracts, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize){ QueryWrapper queryWrapper = new QueryWrapper<>(); if(!Strings.isEmpty(swxMarketContracts.getCode()) || !Strings.isEmpty(swxMarketContracts.getName()) || swxMarketContracts.getType() != null){ QueryWrapper marketQueryWrapper = new QueryWrapper<>(); if(!Strings.isEmpty(swxMarketContracts.getCode())){ marketQueryWrapper.lambda().like(SwxMarket::getCode,swxMarketContracts.getCode()); } if(!Strings.isEmpty(swxMarketContracts.getName())){ marketQueryWrapper.lambda().like(SwxMarket::getName,swxMarketContracts.getName()); } if(swxMarketContracts.getType() != null){ marketQueryWrapper.lambda().eq(SwxMarket::getType,swxMarketContracts.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(SwxMarketContracts::getMId,ids); } Page page = new Page(pageNo, pageSize); queryWrapper.lambda().orderByDesc(SwxMarketContracts::getCreateTime); IPage pageList = swxMarketContractsService.page(page, queryWrapper); IPage result = new Page<>(); List records = new ArrayList<>(); for(SwxMarketContracts item : pageList.getRecords()){ MarketCantractsVo vo = new MarketCantractsVo(); 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:marketContracts:export')") @Log(title = "合约产品管理", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, SwxMarketContracts swxMarketContracts){ QueryWrapper queryWrapper = WhereBuilder.build(swxMarketContracts); List list = swxMarketContractsService.list(queryWrapper); ExcelUtil util = new ExcelUtil(SwxMarketContracts.class); util.exportExcel(response, list, "合约产品管理数据"); } /** * 获取合约产品管理详细信息 */ @PreAuthorize("@ss.hasPermi('swx:marketContracts:query')") @GetMapping(value = "/{id}") public Result getInfo(@PathVariable("id") String id){ SwxMarketContracts swxMarketContracts = swxMarketContractsService.getById(id); if(swxMarketContracts==null) { return Result.error("未找到对应数据"); } return Result.OK(swxMarketContracts); } /** * 修改合约产品管理 */ @PreAuthorize("@ss.hasPermi('swx:marketContracts:edit')") @Log(title = "合约产品管理", businessType = BusinessType.UPDATE) @PutMapping public Result edit(@RequestBody SwxMarketContracts swxMarketContracts){ //更新市场信息时,如果状态设置为不启用,则将market表状态修改 if(swxMarketContracts.getStatus() != null){ SwxMarketContracts old = swxMarketContractsService.getById(swxMarketContracts.getId()); SwxMarket swxMarket = swxMarketService.getById(old.getMId()); swxMarket.setCanContracts(swxMarketContracts.getStatus()); swxMarketService.updateById(swxMarket); } swxMarketContractsService.updateById(swxMarketContracts); return Result.ok("编辑成功!"); } }