trading-order-admin/src/main/java/com/yami/trading/admin/controller/dz/AdminETFDzController.java
New file @@ -0,0 +1,92 @@ package com.yami.trading.admin.controller.dz; import com.yami.trading.bean.dz.StockDz; import com.yami.trading.common.constants.Constants; import com.yami.trading.common.domain.Result; import com.yami.trading.service.dz.StockDzService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @RestController @CrossOrigin @Api(tags = "后台etf大宗订单") @RequestMapping("eftDz") @Slf4j public class AdminETFDzController { @Resource StockDzService stockDzService; @ApiOperation("获取etf列表") @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.indices); } /** * @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") Integer period, @RequestParam(value = "nowPrice") String nowPrice, @RequestParam(value = "switchType", defaultValue = "0") Integer switchType) { return stockDzService.addByAdmin(stockCode, stockNum, password, startTime, endTime, discount, period,nowPrice,switchType); } /** * 删除大宗 */ @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) { return stockDzService.getDzCheckList(pageNum, pageSize, state, stockCode, Constants.indices); } @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) { if(checkType != 2 && (id == null || checkType == null || orderNum == null)){ return Result.failed("参数不能为空"); } return stockDzService.dzCheck(id, checkType, orderNum); } } trading-order-admin/src/main/java/com/yami/trading/admin/controller/loan/internal/LoanServiceImpl.java
@@ -358,7 +358,11 @@ } transferMap.put("repayment", new Object[] {rep,repayments.get(rep)}); transferMap.put("houseImgs", null==houseImgs?new String[0]:commaPattern.split(houseImgs)); String[] imgs = null == houseImgs ? new String[0] : commaPattern.split(houseImgs); for (int i = 0; i < imgs.length; i++) { imgs[i] = Constants.IMAGES_HTTP + imgs[i]; } transferMap.put("houseImgs", imgs); transferMap.put("lendingInstitution", new Object[] {led,order.getLendingName()}); trading-order-admin/src/main/java/com/yami/trading/api/controller/RealtimeController.java
@@ -362,6 +362,9 @@ log.error("获取行情接口,realtime is null;币种->{}", item.getSymbol()); } }); if (!list.isEmpty()) { list.sort(Comparator.comparing(QueryRealtimeDTO::getChangeRatio).reversed()); } Result<List<QueryRealtimeDTO>> ok = Result.ok(list); ok.setTotal((long) itemsTotal.size()); return ok; trading-order-admin/src/main/java/com/yami/trading/api/controller/dz/ApiETFDzController.java
New file @@ -0,0 +1,98 @@ package com.yami.trading.api.controller.dz; 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.security.common.util.SecurityUtils; import com.yami.trading.service.dz.StockDzService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @RestController @CrossOrigin @Api(tags = "etf大宗") @RequestMapping("api/etfDz") @Slf4j public class ApiETFDzController { @Resource StockDzService stockDzService; private static final ThreadLocal<Boolean> orderCreated = ThreadLocal.withInitial(() -> false); private final Lock lock = new ReentrantLock(); /** * 大宗交易 列表 * @param pageNum * @param pageSize * @param orderBy * @param keyWords 搜索内容 * @return */ @ApiOperation("大宗交易列表") @PostMapping({"getDzList.do"}) @ResponseBody public Result getDzList(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "5") int pageSize, @RequestParam(value = "orderBy", required = false) String orderBy, @RequestParam(value = "keyWords", required = false) String keyWords) { return stockDzService.getDzList(pageNum, pageSize, orderBy,keyWords, Constants.indices); } @ApiOperation("大宗下单") @GetMapping({"buyStockDz.do"}) @ResponseBody public Result buyDz(@RequestParam("dzId") String dzId, @RequestParam(value = "password", required = false) String password, @RequestParam("num") double num) { lock.lock(); try { if (orderCreated.get()) { throw new YamiShopBindException("当前交易人数过多,请稍后重试"); } orderCreated.set(true); String partyId = SecurityUtils.getCurrentUserId(); if (partyId == null || partyId.isEmpty()) { throw new YamiShopBindException("请先登录"); } return stockDzService.buyDz(dzId, password, num, partyId); } catch (Exception e) { log.error(e.getMessage()); } finally{ lock.unlock(); orderCreated.set(false); } throw new YamiShopBindException("订单异常,请稍后重试"); } /** * 大宗交易订单列表 * @param pageNum * @param pageSize * @param state * @return */ @ApiOperation("大宗交易订单列表") @PostMapping({"getDzOrderList.do"}) @ResponseBody public Result getDzOrderList(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "5") int pageSize, @RequestParam(value = "state", required = false) String state) { String partyId = SecurityUtils.getCurrentUserId(); if (partyId == null || partyId.isEmpty()) { throw new YamiShopBindException("请先登录"); } return stockDzService.getDzOrderList(pageNum, pageSize, state, partyId, Constants.indices); } } trading-order-admin/src/main/java/com/yami/trading/api/controller/dz/ApiStockDzController.java
@@ -47,9 +47,7 @@ } /** * 大宗下单 */ @ApiOperation("大宗下单") @GetMapping({"buyStockDz.do"}) @ResponseBody public Result buyDz(@RequestParam("dzId") String dzId, trading-order-admin/src/main/resources/application-dev.yml
@@ -114,10 +114,10 @@ http.server.host: http://localhost:8080/images/ admin_rest_url: https://enjdhdg.site/api images.dir: /mydata/img/ images.dir: /www/wwwroot/alljys/img admin_url: https://localhost:8080/admin web_url: http://localhost:8080/wap/ images_http: https://syimg.yanshiz.com/ images_http: https://allimg.yanshiz.com/ email: host: smtp.gmail.com username: coinzne.com@gmail.com trading-order-service/src/main/java/com/yami/trading/service/impl/AwsS3OSSFileServiceImpl.java
@@ -2,6 +2,7 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSONObject; import com.yami.trading.common.constants.Constants; import com.yami.trading.common.exception.BusinessException; import com.yami.trading.common.exception.YamiShopBindException; import com.yami.trading.service.AwsS3OSSFileService; @@ -174,7 +175,7 @@ String path = filename; // 直接使用文件名作为路径 // 确保目标文件夹存在 File targetDir = new File(imgDir); File targetDir = new File(Constants.IMAGES_DIR); if (!targetDir.exists()) { targetDir.mkdirs(); // 设置目录权限为755 (rwxr-xr-x)