From e76f0ff26e87271d42dc8a79633b061b734fd1fc Mon Sep 17 00:00:00 2001 From: huaibo Date: Fri, 11 Mar 2022 10:44:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A4=E6=98=93=E4=BF=A1=E6=81=AF=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 8 + .../controller/info/TradeInfoController.java | 108 +++++ .../src/main/resources/application-druid.yml | 4 +- ruoyi-framework/pom.xml | 5 + ruoyi-info/pom.xml | 25 + .../java/com/ruoyi/info/domain/TradeInfo.java | 252 ++++++++++ .../ruoyi/info/mapper/TradeInfoMapper.java | 61 +++ .../ruoyi/info/service/ITradeInfoService.java | 61 +++ .../service/impl/TradeInfoServiceImpl.java | 101 ++++ .../com/ruoyi/info/util/GenerateNoUtils.java | 37 ++ .../resources/mapper/info/TradeInfoMapper.xml | 142 ++++++ ruoyi-ui/src/api/info/trade.js | 44 ++ ruoyi-ui/src/views/info/trade/index.vue | 440 ++++++++++++++++++ 13 files changed, 1286 insertions(+), 2 deletions(-) create mode 100755 ruoyi-admin/src/main/java/com/ruoyi/web/controller/info/TradeInfoController.java create mode 100644 ruoyi-info/pom.xml create mode 100755 ruoyi-info/src/main/java/com/ruoyi/info/domain/TradeInfo.java create mode 100755 ruoyi-info/src/main/java/com/ruoyi/info/mapper/TradeInfoMapper.java create mode 100755 ruoyi-info/src/main/java/com/ruoyi/info/service/ITradeInfoService.java create mode 100755 ruoyi-info/src/main/java/com/ruoyi/info/service/impl/TradeInfoServiceImpl.java create mode 100644 ruoyi-info/src/main/java/com/ruoyi/info/util/GenerateNoUtils.java create mode 100755 ruoyi-info/src/main/resources/mapper/info/TradeInfoMapper.xml create mode 100755 ruoyi-ui/src/api/info/trade.js create mode 100755 ruoyi-ui/src/views/info/trade/index.vue diff --git a/pom.xml b/pom.xml index b4931dbc5..3c6ac08eb 100644 --- a/pom.xml +++ b/pom.xml @@ -199,6 +199,13 @@ ${ruoyi.version} + + + com.ruoyi + ruoyi-info + ${ruoyi.version} + + @@ -209,6 +216,7 @@ ruoyi-quartz ruoyi-generator ruoyi-common + ruoyi-info pom diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/info/TradeInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/info/TradeInfoController.java new file mode 100755 index 000000000..a53b53ce0 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/info/TradeInfoController.java @@ -0,0 +1,108 @@ +package com.ruoyi.web.controller.info; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.Size; + +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.info.domain.TradeInfo; +import com.ruoyi.info.service.ITradeInfoService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 交易信息Controller + * + * @author ruoyi + * @date 2022-03-10 + */ +@RestController +@RequestMapping("/info/trade") +public class TradeInfoController extends BaseController +{ + @Autowired + private ITradeInfoService tradeInfoService; + + /** + * 查询交易信息列表 + */ + @PreAuthorize("@ss.hasPermi('info:trade:list')") + @GetMapping("/list") + public TableDataInfo list(TradeInfo tradeInfo) + { + startPage(); + List list = tradeInfoService.selectTradeInfoList(tradeInfo); + return getDataTable(list); + } + + /** + * 导出交易信息列表 + */ + @PreAuthorize("@ss.hasPermi('info:trade:export')") + @Log(title = "交易信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TradeInfo tradeInfo) + { + List list = tradeInfoService.selectTradeInfoList(tradeInfo); + ExcelUtil util = new ExcelUtil(TradeInfo.class); + util.exportExcel(response, list, "交易信息数据"); + } + + /** + * 获取交易信息详细信息 + */ + @PreAuthorize("@ss.hasPermi('info:trade:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return AjaxResult.success(tradeInfoService.selectTradeInfoById(id)); + } + + /** + * 新增交易信息 + */ + @PreAuthorize("@ss.hasPermi('info:trade:add')") + @Log(title = "交易信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TradeInfo tradeInfo) + { + String nickName = getLoginUser().getUser().getNickName(); + tradeInfo.setOperatorName(nickName); + return toAjax(tradeInfoService.insertTradeInfo(tradeInfo)); + } + + /** + * 修改交易信息 + */ + @PreAuthorize("@ss.hasPermi('info:trade:edit')") + @Log(title = "交易信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TradeInfo tradeInfo) + { + return toAjax(tradeInfoService.updateTradeInfo(tradeInfo)); + } + + /** + * 删除交易信息 + */ + @PreAuthorize("@ss.hasPermi('info:trade:remove')") + @Log(title = "交易信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(tradeInfoService.deleteTradeInfoByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index 1f098e407..981510b90 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -6,9 +6,9 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://39.98.114.216:3306/ry_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root - password: password + password: rootroot # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml index f1b68c7c5..7186c8a35 100644 --- a/ruoyi-framework/pom.xml +++ b/ruoyi-framework/pom.xml @@ -59,6 +59,11 @@ ruoyi-system + + com.ruoyi + ruoyi-info + + \ No newline at end of file diff --git a/ruoyi-info/pom.xml b/ruoyi-info/pom.xml new file mode 100644 index 000000000..449cde4fe --- /dev/null +++ b/ruoyi-info/pom.xml @@ -0,0 +1,25 @@ + + + + ruoyi + com.ruoyi + 3.8.1 + + 4.0.0 + + ruoyi-info + + + + + + com.ruoyi + ruoyi-common + + + + + + \ No newline at end of file diff --git a/ruoyi-info/src/main/java/com/ruoyi/info/domain/TradeInfo.java b/ruoyi-info/src/main/java/com/ruoyi/info/domain/TradeInfo.java new file mode 100755 index 000000000..372946b8c --- /dev/null +++ b/ruoyi-info/src/main/java/com/ruoyi/info/domain/TradeInfo.java @@ -0,0 +1,252 @@ +package com.ruoyi.info.domain; + +import java.math.BigDecimal; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 交易信息对象 trade_info + * + * @author ruoyi + * @date 2022-03-10 + */ +public class TradeInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 交易编号 */ + @Excel(name = "交易编号") + private String tradeNo; + + /** 操作人名称 */ + @Excel(name = "操作人名称") + private String operatorName; + + /** 群编号 */ + @Excel(name = "群编号") + private String groupNo; + + /** 卡类型 */ + @Excel(name = "卡类型") + private String cardType; + + /** 币种 */ + @Excel(name = "币种") + private String currencyType; + + /** 卡面值 */ + @Excel(name = "卡面值") + private Long cardValue; + + /** 收卡汇率 */ + @Excel(name = "收卡汇率") + private BigDecimal buyCardExchangeRate; + + /** 收卡成本 */ + @Excel(name = "收卡成本") + private BigDecimal buyCost; + + /** 奈拉值 */ + @Excel(name = "奈拉值") + private Long nailaValue; + + /** 代码 */ + @Excel(name = "代码") + private String code; + + /** 对接群 */ + @Excel(name = "对接群") + private String commGroup; + + /** 售出价格 */ + @Excel(name = "售出价格") + private BigDecimal salePrice; + + /** 利润 */ + @Excel(name = "利润") + private BigDecimal profit; + + /** 银行账号 */ + @Excel(name = "银行账号") + private String bankAccount; + + /** 支付状态 */ + @Excel(name = "支付状态") + private String payStatus; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setTradeNo(String tradeNo) + { + this.tradeNo = tradeNo; + } + + public String getTradeNo() + { + return tradeNo; + } + public void setOperatorName(String operatorName) + { + this.operatorName = operatorName; + } + + public String getOperatorName() + { + return operatorName; + } + public void setGroupNo(String groupNo) + { + this.groupNo = groupNo; + } + + public String getGroupNo() + { + return groupNo; + } + public void setCardType(String cardType) + { + this.cardType = cardType; + } + + public String getCardType() + { + return cardType; + } + public void setCurrencyType(String currencyType) + { + this.currencyType = currencyType; + } + + public String getCurrencyType() + { + return currencyType; + } + public void setCardValue(Long cardValue) + { + this.cardValue = cardValue; + } + + public Long getCardValue() + { + return cardValue; + } + public void setBuyCardExchangeRate(BigDecimal buyCardExchangeRate) + { + this.buyCardExchangeRate = buyCardExchangeRate; + } + + public BigDecimal getBuyCardExchangeRate() + { + return buyCardExchangeRate; + } + public void setBuyCost(BigDecimal buyCost) + { + this.buyCost = buyCost; + } + + public BigDecimal getBuyCost() + { + return buyCost; + } + public void setNailaValue(Long nailaValue) + { + this.nailaValue = nailaValue; + } + + public Long getNailaValue() + { + return nailaValue; + } + public void setCode(String code) + { + this.code = code; + } + + public String getCode() + { + return code; + } + public void setCommGroup(String commGroup) + { + this.commGroup = commGroup; + } + + public String getCommGroup() + { + return commGroup; + } + public void setSalePrice(BigDecimal salePrice) + { + this.salePrice = salePrice; + } + + public BigDecimal getSalePrice() + { + return salePrice; + } + public void setProfit(BigDecimal profit) + { + this.profit = profit; + } + + public BigDecimal getProfit() + { + return profit; + } + public void setBankAccount(String bankAccount) + { + this.bankAccount = bankAccount; + } + + public String getBankAccount() + { + return bankAccount; + } + public void setPayStatus(String payStatus) + { + this.payStatus = payStatus; + } + + public String getPayStatus() + { + return payStatus; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("tradeNo", getTradeNo()) + .append("operatorName", getOperatorName()) + .append("groupNo", getGroupNo()) + .append("cardType", getCardType()) + .append("currencyType", getCurrencyType()) + .append("cardValue", getCardValue()) + .append("buyCardExchangeRate", getBuyCardExchangeRate()) + .append("buyCost", getBuyCost()) + .append("nailaValue", getNailaValue()) + .append("code", getCode()) + .append("commGroup", getCommGroup()) + .append("salePrice", getSalePrice()) + .append("profit", getProfit()) + .append("bankAccount", getBankAccount()) + .append("payStatus", getPayStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/ruoyi-info/src/main/java/com/ruoyi/info/mapper/TradeInfoMapper.java b/ruoyi-info/src/main/java/com/ruoyi/info/mapper/TradeInfoMapper.java new file mode 100755 index 000000000..22d93536b --- /dev/null +++ b/ruoyi-info/src/main/java/com/ruoyi/info/mapper/TradeInfoMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.info.mapper; + +import java.util.List; +import com.ruoyi.info.domain.TradeInfo; + +/** + * 交易信息Mapper接口 + * + * @author ruoyi + * @date 2022-03-10 + */ +public interface TradeInfoMapper +{ + /** + * 查询交易信息 + * + * @param id 交易信息主键 + * @return 交易信息 + */ + public TradeInfo selectTradeInfoById(Long id); + + /** + * 查询交易信息列表 + * + * @param tradeInfo 交易信息 + * @return 交易信息集合 + */ + public List selectTradeInfoList(TradeInfo tradeInfo); + + /** + * 新增交易信息 + * + * @param tradeInfo 交易信息 + * @return 结果 + */ + public int insertTradeInfo(TradeInfo tradeInfo); + + /** + * 修改交易信息 + * + * @param tradeInfo 交易信息 + * @return 结果 + */ + public int updateTradeInfo(TradeInfo tradeInfo); + + /** + * 删除交易信息 + * + * @param id 交易信息主键 + * @return 结果 + */ + public int deleteTradeInfoById(Long id); + + /** + * 批量删除交易信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTradeInfoByIds(Long[] ids); +} diff --git a/ruoyi-info/src/main/java/com/ruoyi/info/service/ITradeInfoService.java b/ruoyi-info/src/main/java/com/ruoyi/info/service/ITradeInfoService.java new file mode 100755 index 000000000..23a713413 --- /dev/null +++ b/ruoyi-info/src/main/java/com/ruoyi/info/service/ITradeInfoService.java @@ -0,0 +1,61 @@ +package com.ruoyi.info.service; + +import java.util.List; +import com.ruoyi.info.domain.TradeInfo; + +/** + * 交易信息Service接口 + * + * @author ruoyi + * @date 2022-03-10 + */ +public interface ITradeInfoService +{ + /** + * 查询交易信息 + * + * @param id 交易信息主键 + * @return 交易信息 + */ + public TradeInfo selectTradeInfoById(Long id); + + /** + * 查询交易信息列表 + * + * @param tradeInfo 交易信息 + * @return 交易信息集合 + */ + public List selectTradeInfoList(TradeInfo tradeInfo); + + /** + * 新增交易信息 + * + * @param tradeInfo 交易信息 + * @return 结果 + */ + public int insertTradeInfo(TradeInfo tradeInfo); + + /** + * 修改交易信息 + * + * @param tradeInfo 交易信息 + * @return 结果 + */ + public int updateTradeInfo(TradeInfo tradeInfo); + + /** + * 批量删除交易信息 + * + * @param ids 需要删除的交易信息主键集合 + * @return 结果 + */ + public int deleteTradeInfoByIds(Long[] ids); + + /** + * 删除交易信息信息 + * + * @param id 交易信息主键 + * @return 结果 + */ + public int deleteTradeInfoById(Long id); +} diff --git a/ruoyi-info/src/main/java/com/ruoyi/info/service/impl/TradeInfoServiceImpl.java b/ruoyi-info/src/main/java/com/ruoyi/info/service/impl/TradeInfoServiceImpl.java new file mode 100755 index 000000000..9fa5a4a74 --- /dev/null +++ b/ruoyi-info/src/main/java/com/ruoyi/info/service/impl/TradeInfoServiceImpl.java @@ -0,0 +1,101 @@ +package com.ruoyi.info.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.info.util.GenerateNoUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.info.mapper.TradeInfoMapper; +import com.ruoyi.info.domain.TradeInfo; +import com.ruoyi.info.service.ITradeInfoService; + +/** + * 交易信息Service业务层处理 + * + * @author ruoyi + * @date 2022-03-10 + */ +@Service +public class TradeInfoServiceImpl implements ITradeInfoService +{ + @Autowired + private TradeInfoMapper tradeInfoMapper; + @Autowired + private GenerateNoUtils generateNoUtils; + + /** + * 查询交易信息 + * + * @param id 交易信息主键 + * @return 交易信息 + */ + @Override + public TradeInfo selectTradeInfoById(Long id) + { + return tradeInfoMapper.selectTradeInfoById(id); + } + + /** + * 查询交易信息列表 + * + * @param tradeInfo 交易信息 + * @return 交易信息 + */ + @Override + public List selectTradeInfoList(TradeInfo tradeInfo) + { + return tradeInfoMapper.selectTradeInfoList(tradeInfo); + } + + /** + * 新增交易信息 + * + * @param tradeInfo 交易信息 + * @return 结果 + */ + @Override + public int insertTradeInfo(TradeInfo tradeInfo) + { + String tradeNo = generateNoUtils.tradeNo(); + tradeInfo.setCreateTime(DateUtils.getNowDate()); + tradeInfo.setTradeNo(tradeNo); + return tradeInfoMapper.insertTradeInfo(tradeInfo); + } + + /** + * 修改交易信息 + * + * @param tradeInfo 交易信息 + * @return 结果 + */ + @Override + public int updateTradeInfo(TradeInfo tradeInfo) + { + tradeInfo.setUpdateTime(DateUtils.getNowDate()); + return tradeInfoMapper.updateTradeInfo(tradeInfo); + } + + /** + * 批量删除交易信息 + * + * @param ids 需要删除的交易信息主键 + * @return 结果 + */ + @Override + public int deleteTradeInfoByIds(Long[] ids) + { + return tradeInfoMapper.deleteTradeInfoByIds(ids); + } + + /** + * 删除交易信息信息 + * + * @param id 交易信息主键 + * @return 结果 + */ + @Override + public int deleteTradeInfoById(Long id) + { + return tradeInfoMapper.deleteTradeInfoById(id); + } +} diff --git a/ruoyi-info/src/main/java/com/ruoyi/info/util/GenerateNoUtils.java b/ruoyi-info/src/main/java/com/ruoyi/info/util/GenerateNoUtils.java new file mode 100644 index 000000000..d08244a65 --- /dev/null +++ b/ruoyi-info/src/main/java/com/ruoyi/info/util/GenerateNoUtils.java @@ -0,0 +1,37 @@ +package com.ruoyi.info.util; + +import com.ruoyi.common.core.redis.RedisCache; +import org.apache.commons.lang3.time.DateFormatUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.concurrent.TimeUnit; + +@Component +public class GenerateNoUtils { + + @Autowired + private RedisCache redisCache; + + public String tradeNo() { + String yyyyMMdd = DateFormatUtils.format(new Date(), "yyyyMMdd"); + String incrKey = "trade:" + yyyyMMdd; + Long increment = redisCache.redisTemplate.opsForValue().increment(incrKey, 1); + redisCache.expire(incrKey, 1L, TimeUnit.DAYS); + return yyyyMMdd + paddingFour(increment); + } + + private static String paddingFour(long l) { + String s = String.valueOf(l); + int length = s.length(); + if (length > 3) { + return s; + } + for (; length < 4; length++) { + s = "0" + s; + } + return s; + } + +} diff --git a/ruoyi-info/src/main/resources/mapper/info/TradeInfoMapper.xml b/ruoyi-info/src/main/resources/mapper/info/TradeInfoMapper.xml new file mode 100755 index 000000000..67d5ac074 --- /dev/null +++ b/ruoyi-info/src/main/resources/mapper/info/TradeInfoMapper.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, trade_no, operator_name, group_no, card_type, currency_type, card_value, buy_card_exchange_rate, buy_cost, naila_value, code, comm_group, sale_price, profit, bank_account, pay_status, create_by, create_time, update_by, update_time from trade_info + + + + + + + + insert into trade_info + + trade_no, + operator_name, + group_no, + card_type, + currency_type, + card_value, + buy_card_exchange_rate, + buy_cost, + naila_value, + code, + comm_group, + sale_price, + profit, + bank_account, + pay_status, + create_by, + create_time, + update_by, + update_time, + + + #{tradeNo}, + #{operatorName}, + #{groupNo}, + #{cardType}, + #{currencyType}, + #{cardValue}, + #{buyCardExchangeRate}, + #{buyCost}, + #{nailaValue}, + #{code}, + #{commGroup}, + #{salePrice}, + #{profit}, + #{bankAccount}, + #{payStatus}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update trade_info + + trade_no = #{tradeNo}, + operator_name = #{operatorName}, + group_no = #{groupNo}, + card_type = #{cardType}, + currency_type = #{currencyType}, + card_value = #{cardValue}, + buy_card_exchange_rate = #{buyCardExchangeRate}, + buy_cost = #{buyCost}, + naila_value = #{nailaValue}, + code = #{code}, + comm_group = #{commGroup}, + sale_price = #{salePrice}, + profit = #{profit}, + bank_account = #{bankAccount}, + pay_status = #{payStatus}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from trade_info where id = #{id} + + + + delete from trade_info where id in + + #{id} + + + \ No newline at end of file diff --git a/ruoyi-ui/src/api/info/trade.js b/ruoyi-ui/src/api/info/trade.js new file mode 100755 index 000000000..1faecd302 --- /dev/null +++ b/ruoyi-ui/src/api/info/trade.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询交易信息列表 +export function listInfo(query) { + return request({ + url: '/info/trade/list', + method: 'get', + params: query + }) +} + +// 查询交易信息详细 +export function getInfo(id) { + return request({ + url: '/info/trade/' + id, + method: 'get' + }) +} + +// 新增交易信息 +export function addInfo(data) { + return request({ + url: '/info/trade', + method: 'post', + data: data + }) +} + +// 修改交易信息 +export function updateInfo(data) { + return request({ + url: '/info/trade', + method: 'put', + data: data + }) +} + +// 删除交易信息 +export function delInfo(id) { + return request({ + url: '/info/trade/' + id, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/views/info/trade/index.vue b/ruoyi-ui/src/views/info/trade/index.vue new file mode 100755 index 000000000..fd7ee4cb4 --- /dev/null +++ b/ruoyi-ui/src/views/info/trade/index.vue @@ -0,0 +1,440 @@ + + +