Compare commits

...

4 Commits

@ -0,0 +1,104 @@
package com.ruoyi.booksystem.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
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.booksystem.domain.Account;
import com.ruoyi.booksystem.service.IAccountService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* Controller
*
* @author ruoyi
* @date 2023-12-18
*/
@RestController
@RequestMapping("/booksystem/account")
public class AccountController extends BaseController
{
@Autowired
private IAccountService accountService;
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:account:list')")
@GetMapping("/list")
public TableDataInfo list(Account account)
{
startPage();
List<Account> list = accountService.selectAccountList(account);
return getDataTable(list);
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:account:export')")
@Log(title = "交易账户", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, Account account)
{
List<Account> list = accountService.selectAccountList(account);
ExcelUtil<Account> util = new ExcelUtil<Account>(Account.class);
util.exportExcel(response, list, "交易账户数据");
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:account:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(accountService.selectAccountById(id));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:account:add')")
@Log(title = "交易账户", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody Account account)
{
return toAjax(accountService.insertAccount(account));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:account:edit')")
@Log(title = "交易账户", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody Account account)
{
return toAjax(accountService.updateAccount(account));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:account:remove')")
@Log(title = "交易账户", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(accountService.deleteAccountByIds(ids));
}
}

@ -0,0 +1,111 @@
package com.ruoyi.booksystem.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.SecurityUtils;
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.booksystem.domain.Operations;
import com.ruoyi.booksystem.service.IOperationsService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* Controller
*
* @author ruoyi
* @date 2023-12-18
*/
@RestController
@RequestMapping("/booksystem/operations")
public class OperationsController extends BaseController
{
@Autowired
private IOperationsService operationsService;
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:operations:list')")
@GetMapping("/list")
public TableDataInfo list(Operations operations)
{
startPage();
List<Operations> list = operationsService.selectOperationsList(operations);
return getDataTable(list);
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:operations:export')")
@Log(title = "当日操作", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, Operations operations)
{
List<Operations> list = operationsService.selectOperationsList(operations);
ExcelUtil<Operations> util = new ExcelUtil<Operations>(Operations.class);
util.exportExcel(response, list, "当日操作数据");
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:operations:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(operationsService.selectOperationsById(id));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:operations:add')")
@Log(title = "当日操作", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody Operations operations)
{
LoginUser loginUser = SecurityUtils.getLoginUser();
System.out.println("[AccountBookController] userName: " + loginUser.getUsername() + " userId: " + loginUser.getUserId());
operations.setUserId(loginUser.getUserId());
//插入一条后,要更新持仓表
return toAjax(operationsService.insertOperations(operations));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:operations:edit')")
@Log(title = "当日操作", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody Operations operations)
{
return toAjax(operationsService.updateOperations(operations));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:operations:remove')")
@Log(title = "当日操作", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(operationsService.deleteOperationsByIds(ids));
}
}

@ -0,0 +1,104 @@
package com.ruoyi.booksystem.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
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.booksystem.domain.Statistics;
import com.ruoyi.booksystem.service.IStatisticsService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* Controller
*
* @author ruoyi
* @date 2023-12-18
*/
@RestController
@RequestMapping("/booksystem/statistics")
public class StatisticsController extends BaseController
{
@Autowired
private IStatisticsService statisticsService;
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statistics:list')")
@GetMapping("/list")
public TableDataInfo list(Statistics statistics)
{
startPage();
List<Statistics> list = statisticsService.selectStatisticsList(statistics);
return getDataTable(list);
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statistics:export')")
@Log(title = "单笔操作统计", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, Statistics statistics)
{
List<Statistics> list = statisticsService.selectStatisticsList(statistics);
ExcelUtil<Statistics> util = new ExcelUtil<Statistics>(Statistics.class);
util.exportExcel(response, list, "单笔操作统计数据");
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statistics:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(statisticsService.selectStatisticsById(id));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statistics:add')")
@Log(title = "单笔操作统计", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody Statistics statistics)
{
return toAjax(statisticsService.insertStatistics(statistics));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statistics:edit')")
@Log(title = "单笔操作统计", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody Statistics statistics)
{
return toAjax(statisticsService.updateStatistics(statistics));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statistics:remove')")
@Log(title = "单笔操作统计", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(statisticsService.deleteStatisticsByIds(ids));
}
}

@ -0,0 +1,104 @@
package com.ruoyi.booksystem.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
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.booksystem.domain.StatisticsRemain;
import com.ruoyi.booksystem.service.IStatisticsRemainService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* Controller
*
* @author ruoyi
* @date 2023-12-18
*/
@RestController
@RequestMapping("/booksystem/statisticremain")
public class StatisticsRemainController extends BaseController
{
@Autowired
private IStatisticsRemainService statisticsRemainService;
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statisticremain:list')")
@GetMapping("/list")
public TableDataInfo list(StatisticsRemain statisticsRemain)
{
startPage();
List<StatisticsRemain> list = statisticsRemainService.selectStatisticsRemainList(statisticsRemain);
return getDataTable(list);
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statisticremain:export')")
@Log(title = "当日持仓统计", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, StatisticsRemain statisticsRemain)
{
List<StatisticsRemain> list = statisticsRemainService.selectStatisticsRemainList(statisticsRemain);
ExcelUtil<StatisticsRemain> util = new ExcelUtil<StatisticsRemain>(StatisticsRemain.class);
util.exportExcel(response, list, "当日持仓统计数据");
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statisticremain:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(statisticsRemainService.selectStatisticsRemainById(id));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statisticremain:add')")
@Log(title = "当日持仓统计", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody StatisticsRemain statisticsRemain)
{
return toAjax(statisticsRemainService.insertStatisticsRemain(statisticsRemain));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statisticremain:edit')")
@Log(title = "当日持仓统计", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody StatisticsRemain statisticsRemain)
{
return toAjax(statisticsRemainService.updateStatisticsRemain(statisticsRemain));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statisticremain:remove')")
@Log(title = "当日持仓统计", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(statisticsRemainService.deleteStatisticsRemainByIds(ids));
}
}

@ -0,0 +1,104 @@
package com.ruoyi.booksystem.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
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.booksystem.domain.StatisticsTotal;
import com.ruoyi.booksystem.service.IStatisticsTotalService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* Controller
*
* @author ruoyi
* @date 2023-12-18
*/
@RestController
@RequestMapping("/booksystem/statistictotal")
public class StatisticsTotalController extends BaseController
{
@Autowired
private IStatisticsTotalService statisticsTotalService;
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statistictotal:list')")
@GetMapping("/list")
public TableDataInfo list(StatisticsTotal statisticsTotal)
{
startPage();
List<StatisticsTotal> list = statisticsTotalService.selectStatisticsTotalList(statisticsTotal);
return getDataTable(list);
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statistictotal:export')")
@Log(title = "统计当日持仓", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, StatisticsTotal statisticsTotal)
{
List<StatisticsTotal> list = statisticsTotalService.selectStatisticsTotalList(statisticsTotal);
ExcelUtil<StatisticsTotal> util = new ExcelUtil<StatisticsTotal>(StatisticsTotal.class);
util.exportExcel(response, list, "统计当日持仓数据");
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statistictotal:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(statisticsTotalService.selectStatisticsTotalById(id));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statistictotal:add')")
@Log(title = "统计当日持仓", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody StatisticsTotal statisticsTotal)
{
return toAjax(statisticsTotalService.insertStatisticsTotal(statisticsTotal));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statistictotal:edit')")
@Log(title = "统计当日持仓", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody StatisticsTotal statisticsTotal)
{
return toAjax(statisticsTotalService.updateStatisticsTotal(statisticsTotal));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('booksystem:statistictotal:remove')")
@Log(title = "统计当日持仓", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(statisticsTotalService.deleteStatisticsTotalByIds(ids));
}
}

@ -0,0 +1,153 @@
package com.ruoyi.booksystem.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
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;
/**
* account
*
* @author ruoyi
* @date 2023-12-18
*/
public class Account extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long id;
/** 交易日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "交易日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date tradeDay;
/** 交易日星期 */
@Excel(name = "交易日星期")
private String weekDay;
/** 净资产 */
@Excel(name = "净资产")
private BigDecimal assets;
/** 总资产 */
@Excel(name = "总资产")
private BigDecimal totalAssets;
/** 当日盈亏 */
@Excel(name = "当日盈亏")
private BigDecimal profit;
/** 当日净资产盈亏比例 */
@Excel(name = "当日净资产盈亏比例")
private BigDecimal assetsDiff;
/** 当日总资产盈亏比例 */
@Excel(name = "当日总资产盈亏比例")
private BigDecimal totalDiff;
/** 用户id */
@Excel(name = "用户id")
private Long userId;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setTradeDay(Date tradeDay)
{
this.tradeDay = tradeDay;
}
public Date getTradeDay()
{
return tradeDay;
}
public void setWeekDay(String weekDay)
{
this.weekDay = weekDay;
}
public String getWeekDay()
{
return weekDay;
}
public void setAssets(BigDecimal assets)
{
this.assets = assets;
}
public BigDecimal getAssets()
{
return assets;
}
public void setTotalAssets(BigDecimal totalAssets)
{
this.totalAssets = totalAssets;
}
public BigDecimal getTotalAssets()
{
return totalAssets;
}
public void setProfit(BigDecimal profit)
{
this.profit = profit;
}
public BigDecimal getProfit()
{
return profit;
}
public void setAssetsDiff(BigDecimal assetsDiff)
{
this.assetsDiff = assetsDiff;
}
public BigDecimal getAssetsDiff()
{
return assetsDiff;
}
public void setTotalDiff(BigDecimal totalDiff)
{
this.totalDiff = totalDiff;
}
public BigDecimal getTotalDiff()
{
return totalDiff;
}
public void setUserId(Long userId)
{
this.userId = userId;
}
public Long getUserId()
{
return userId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("tradeDay", getTradeDay())
.append("weekDay", getWeekDay())
.append("assets", getAssets())
.append("totalAssets", getTotalAssets())
.append("profit", getProfit())
.append("assetsDiff", getAssetsDiff())
.append("totalDiff", getTotalDiff())
.append("userId", getUserId())
.toString();
}
}

@ -0,0 +1,265 @@
package com.ruoyi.booksystem.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
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;
/**
* operations
*
* @author ruoyi
* @date 2023-12-18
*/
public class Operations extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long id;
/** 股票代码 */
@Excel(name = "股票代码")
private String code;
/** 股票名称 */
@Excel(name = "股票名称")
private String name;
/** 交易日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "交易日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date tradeDay;
/** 交易日星期 */
@Excel(name = "交易日星期")
private String weekDay;
/** 操作(含账户转入转出) */
@Excel(name = "操作", readConverterExp = "含=账户转入转出")
private String operate;
/** 交易价格 */
@Excel(name = "交易价格")
private BigDecimal dealPrice;
/** 成交量 */
@Excel(name = "成交量")
private Long volumn;
/** 成交额 */
@Excel(name = "成交额")
private BigDecimal amount;
/** 印花税 */
@Excel(name = "印花税")
private BigDecimal tax;
/** 手续费 */
@Excel(name = "手续费")
private BigDecimal fee;
/** 其他费用 */
@Excel(name = "其他费用")
private BigDecimal other;
/** 操作时涨跌 */
@Excel(name = "操作时涨跌")
private BigDecimal operateDiff;
/** 关联操作id */
@Excel(name = "关联操作id")
private Long preId;
/** 用户id */
@Excel(name = "用户id")
private Long userId;
/** 操作逻辑 */
@Excel(name = "操作逻辑")
private String dealLogic;
/** 备注 */
@Excel(name = "备注")
private String bz;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setCode(String code)
{
this.code = code;
}
public String getCode()
{
return code;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public void setTradeDay(Date tradeDay)
{
this.tradeDay = tradeDay;
}
public Date getTradeDay()
{
return tradeDay;
}
public void setWeekDay(String weekDay)
{
this.weekDay = weekDay;
}
public String getWeekDay()
{
return weekDay;
}
public void setOperate(String operate)
{
this.operate = operate;
}
public String getOperate()
{
return operate;
}
public void setDealPrice(BigDecimal dealPrice)
{
this.dealPrice = dealPrice;
}
public BigDecimal getDealPrice()
{
return dealPrice;
}
public void setVolumn(Long volumn)
{
this.volumn = volumn;
}
public Long getVolumn()
{
return volumn;
}
public void setAmount(BigDecimal amount)
{
this.amount = amount;
}
public BigDecimal getAmount()
{
return amount;
}
public void setTax(BigDecimal tax)
{
this.tax = tax;
}
public BigDecimal getTax()
{
return tax;
}
public void setFee(BigDecimal fee)
{
this.fee = fee;
}
public BigDecimal getFee()
{
return fee;
}
public void setOther(BigDecimal other)
{
this.other = other;
}
public BigDecimal getOther()
{
return other;
}
public void setOperateDiff(BigDecimal operateDiff)
{
this.operateDiff = operateDiff;
}
public BigDecimal getOperateDiff()
{
return operateDiff;
}
public void setPreId(Long preId)
{
this.preId = preId;
}
public Long getPreId()
{
return preId;
}
public void setUserId(Long userId)
{
this.userId = userId;
}
public Long getUserId()
{
return userId;
}
public void setDealLogic(String dealLogic)
{
this.dealLogic = dealLogic;
}
public String getDealLogic()
{
return dealLogic;
}
public void setBz(String bz)
{
this.bz = bz;
}
public String getBz()
{
return bz;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("code", getCode())
.append("name", getName())
.append("tradeDay", getTradeDay())
.append("weekDay", getWeekDay())
.append("operate", getOperate())
.append("dealPrice", getDealPrice())
.append("volumn", getVolumn())
.append("amount", getAmount())
.append("tax", getTax())
.append("fee", getFee())
.append("other", getOther())
.append("operateDiff", getOperateDiff())
.append("preId", getPreId())
.append("userId", getUserId())
.append("dealLogic", getDealLogic())
.append("bz", getBz())
.toString();
}
}

@ -0,0 +1,181 @@
package com.ruoyi.booksystem.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
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;
/**
* statistics
*
* @author ruoyi
* @date 2023-12-18
*/
public class Statistics extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long id;
/** 股票代码 */
@Excel(name = "股票代码")
private String code;
/** 股票名称 */
@Excel(name = "股票名称")
private String name;
/** 交易日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "交易日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date tradeDay;
/** 交易日星期 */
@Excel(name = "交易日星期")
private String weekDay;
/** 操作id */
@Excel(name = "操作id")
private String operationsId;
/** 当笔当日盈亏 */
@Excel(name = "当笔当日盈亏")
private BigDecimal profit;
/** 当笔当日盈亏盈亏比例 */
@Excel(name = "当笔当日盈亏盈亏比例")
private Long diff;
/** 操作id */
@Excel(name = "操作id")
private Long operateionId;
/** 用户id */
@Excel(name = "用户id")
private Long userId;
/** 备注 */
@Excel(name = "备注")
private String bz;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setCode(String code)
{
this.code = code;
}
public String getCode()
{
return code;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public void setTradeDay(Date tradeDay)
{
this.tradeDay = tradeDay;
}
public Date getTradeDay()
{
return tradeDay;
}
public void setWeekDay(String weekDay)
{
this.weekDay = weekDay;
}
public String getWeekDay()
{
return weekDay;
}
public void setOperationsId(String operationsId)
{
this.operationsId = operationsId;
}
public String getOperationsId()
{
return operationsId;
}
public void setProfit(BigDecimal profit)
{
this.profit = profit;
}
public BigDecimal getProfit()
{
return profit;
}
public void setDiff(Long diff)
{
this.diff = diff;
}
public Long getDiff()
{
return diff;
}
public void setOperateionId(Long operateionId)
{
this.operateionId = operateionId;
}
public Long getOperateionId()
{
return operateionId;
}
public void setUserId(Long userId)
{
this.userId = userId;
}
public Long getUserId()
{
return userId;
}
public void setBz(String bz)
{
this.bz = bz;
}
public String getBz()
{
return bz;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("code", getCode())
.append("name", getName())
.append("tradeDay", getTradeDay())
.append("weekDay", getWeekDay())
.append("operationsId", getOperationsId())
.append("profit", getProfit())
.append("diff", getDiff())
.append("operateionId", getOperateionId())
.append("userId", getUserId())
.append("bz", getBz())
.toString();
}
}

@ -0,0 +1,181 @@
package com.ruoyi.booksystem.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
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;
/**
* statistics_remain
*
* @author ruoyi
* @date 2023-12-18
*/
public class StatisticsRemain extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long id;
/** 股票代码 */
@Excel(name = "股票代码")
private String code;
/** 股票名称 */
@Excel(name = "股票名称")
private String name;
/** 交易日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "交易日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date tradeDay;
/** 交易日星期 */
@Excel(name = "交易日星期")
private String weekDay;
/** 总盈亏 */
@Excel(name = "总盈亏")
private BigDecimal totalProfit;
/** 总盈亏比例 */
@Excel(name = "总盈亏比例")
private BigDecimal totalDiff;
/** 总盈亏占整体盈亏比例 */
@Excel(name = "总盈亏占整体盈亏比例")
private BigDecimal totalDiffOverall;
/** 剩余数量 */
@Excel(name = "剩余数量")
private BigDecimal remaining;
/** 用户id */
@Excel(name = "用户id")
private Long userId;
/** 备注 */
@Excel(name = "备注")
private String bz;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setCode(String code)
{
this.code = code;
}
public String getCode()
{
return code;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public void setTradeDay(Date tradeDay)
{
this.tradeDay = tradeDay;
}
public Date getTradeDay()
{
return tradeDay;
}
public void setWeekDay(String weekDay)
{
this.weekDay = weekDay;
}
public String getWeekDay()
{
return weekDay;
}
public void setTotalProfit(BigDecimal totalProfit)
{
this.totalProfit = totalProfit;
}
public BigDecimal getTotalProfit()
{
return totalProfit;
}
public void setTotalDiff(BigDecimal totalDiff)
{
this.totalDiff = totalDiff;
}
public BigDecimal getTotalDiff()
{
return totalDiff;
}
public void setTotalDiffOverall(BigDecimal totalDiffOverall)
{
this.totalDiffOverall = totalDiffOverall;
}
public BigDecimal getTotalDiffOverall()
{
return totalDiffOverall;
}
public void setRemaining(BigDecimal remaining)
{
this.remaining = remaining;
}
public BigDecimal getRemaining()
{
return remaining;
}
public void setUserId(Long userId)
{
this.userId = userId;
}
public Long getUserId()
{
return userId;
}
public void setBz(String bz)
{
this.bz = bz;
}
public String getBz()
{
return bz;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("code", getCode())
.append("name", getName())
.append("tradeDay", getTradeDay())
.append("weekDay", getWeekDay())
.append("totalProfit", getTotalProfit())
.append("totalDiff", getTotalDiff())
.append("totalDiffOverall", getTotalDiffOverall())
.append("remaining", getRemaining())
.append("userId", getUserId())
.append("bz", getBz())
.toString();
}
}

@ -0,0 +1,266 @@
package com.ruoyi.booksystem.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
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;
/**
* statistics_total
*
* @author ruoyi
* @date 2023-12-18
*/
public class StatisticsTotal extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long id;
/** 股票代码 */
@Excel(name = "股票代码")
private String code;
/** 股票名称 */
@Excel(name = "股票名称")
private String name;
/** 建仓交易日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "建仓交易日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date startTradeDay;
/** 清仓交易日星期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "清仓交易日星期", width = 30, dateFormat = "yyyy-MM-dd")
private Date endTradeDay;
/** 总盈亏 */
@Excel(name = "总盈亏")
private BigDecimal totalProfit;
/** 总盈亏比例 */
@Excel(name = "总盈亏比例")
private BigDecimal totalDiff;
/** 建仓交易价格 */
@Excel(name = "建仓交易价格")
private BigDecimal startPrice;
/** 建仓交易价格 */
@Excel(name = "建仓交易价格")
private BigDecimal endPrice;
/** 总成交量 */
@Excel(name = "总成交量")
private Long volumnTotal;
/** 总成交额 */
@Excel(name = "总成交额")
private BigDecimal amountTotal;
/** 交易次数 */
@Excel(name = "交易次数")
private BigDecimal operateTimes;
/** 总手续费 */
@Excel(name = "总手续费")
private BigDecimal fee;
/** 总印花税 */
@Excel(name = "总印花税")
private BigDecimal tax;
/** 总其他费用 */
@Excel(name = "总其他费用")
private BigDecimal other;
/** 用户id */
@Excel(name = "用户id")
private Long userId;
/** 备注 */
@Excel(name = "备注")
private String bz;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setCode(String code)
{
this.code = code;
}
public String getCode()
{
return code;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public void setStartTradeDay(Date startTradeDay)
{
this.startTradeDay = startTradeDay;
}
public Date getStartTradeDay()
{
return startTradeDay;
}
public void setEndTradeDay(Date endTradeDay)
{
this.endTradeDay = endTradeDay;
}
public Date getEndTradeDay()
{
return endTradeDay;
}
public void setTotalProfit(BigDecimal totalProfit)
{
this.totalProfit = totalProfit;
}
public BigDecimal getTotalProfit()
{
return totalProfit;
}
public void setTotalDiff(BigDecimal totalDiff)
{
this.totalDiff = totalDiff;
}
public BigDecimal getTotalDiff()
{
return totalDiff;
}
public void setStartPrice(BigDecimal startPrice)
{
this.startPrice = startPrice;
}
public BigDecimal getStartPrice()
{
return startPrice;
}
public void setEndPrice(BigDecimal endPrice)
{
this.endPrice = endPrice;
}
public BigDecimal getEndPrice()
{
return endPrice;
}
public void setVolumnTotal(Long volumnTotal)
{
this.volumnTotal = volumnTotal;
}
public Long getVolumnTotal()
{
return volumnTotal;
}
public void setAmountTotal(BigDecimal amountTotal)
{
this.amountTotal = amountTotal;
}
public BigDecimal getAmountTotal()
{
return amountTotal;
}
public void setOperateTimes(BigDecimal operateTimes)
{
this.operateTimes = operateTimes;
}
public BigDecimal getOperateTimes()
{
return operateTimes;
}
public void setFee(BigDecimal fee)
{
this.fee = fee;
}
public BigDecimal getFee()
{
return fee;
}
public void setTax(BigDecimal tax)
{
this.tax = tax;
}
public BigDecimal getTax()
{
return tax;
}
public void setOther(BigDecimal other)
{
this.other = other;
}
public BigDecimal getOther()
{
return other;
}
public void setUserId(Long userId)
{
this.userId = userId;
}
public Long getUserId()
{
return userId;
}
public void setBz(String bz)
{
this.bz = bz;
}
public String getBz()
{
return bz;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("code", getCode())
.append("name", getName())
.append("startTradeDay", getStartTradeDay())
.append("endTradeDay", getEndTradeDay())
.append("totalProfit", getTotalProfit())
.append("totalDiff", getTotalDiff())
.append("startPrice", getStartPrice())
.append("endPrice", getEndPrice())
.append("volumnTotal", getVolumnTotal())
.append("amountTotal", getAmountTotal())
.append("operateTimes", getOperateTimes())
.append("fee", getFee())
.append("tax", getTax())
.append("other", getOther())
.append("userId", getUserId())
.append("bz", getBz())
.toString();
}
}

@ -0,0 +1,61 @@
package com.ruoyi.booksystem.mapper;
import java.util.List;
import com.ruoyi.booksystem.domain.Account;
/**
* Mapper
*
* @author ruoyi
* @date 2023-12-18
*/
public interface AccountMapper
{
/**
*
*
* @param id
* @return
*/
public Account selectAccountById(Long id);
/**
*
*
* @param account
* @return
*/
public List<Account> selectAccountList(Account account);
/**
*
*
* @param account
* @return
*/
public int insertAccount(Account account);
/**
*
*
* @param account
* @return
*/
public int updateAccount(Account account);
/**
*
*
* @param id
* @return
*/
public int deleteAccountById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteAccountByIds(Long[] ids);
}

@ -0,0 +1,61 @@
package com.ruoyi.booksystem.mapper;
import java.util.List;
import com.ruoyi.booksystem.domain.Operations;
/**
* Mapper
*
* @author ruoyi
* @date 2023-12-18
*/
public interface OperationsMapper
{
/**
*
*
* @param id
* @return
*/
public Operations selectOperationsById(Long id);
/**
*
*
* @param operations
* @return
*/
public List<Operations> selectOperationsList(Operations operations);
/**
*
*
* @param operations
* @return
*/
public int insertOperations(Operations operations);
/**
*
*
* @param operations
* @return
*/
public int updateOperations(Operations operations);
/**
*
*
* @param id
* @return
*/
public int deleteOperationsById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteOperationsByIds(Long[] ids);
}

@ -0,0 +1,61 @@
package com.ruoyi.booksystem.mapper;
import java.util.List;
import com.ruoyi.booksystem.domain.Statistics;
/**
* Mapper
*
* @author ruoyi
* @date 2023-12-18
*/
public interface StatisticsMapper
{
/**
*
*
* @param id
* @return
*/
public Statistics selectStatisticsById(Long id);
/**
*
*
* @param statistics
* @return
*/
public List<Statistics> selectStatisticsList(Statistics statistics);
/**
*
*
* @param statistics
* @return
*/
public int insertStatistics(Statistics statistics);
/**
*
*
* @param statistics
* @return
*/
public int updateStatistics(Statistics statistics);
/**
*
*
* @param id
* @return
*/
public int deleteStatisticsById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteStatisticsByIds(Long[] ids);
}

@ -0,0 +1,61 @@
package com.ruoyi.booksystem.mapper;
import java.util.List;
import com.ruoyi.booksystem.domain.StatisticsRemain;
/**
* Mapper
*
* @author ruoyi
* @date 2023-12-18
*/
public interface StatisticsRemainMapper
{
/**
*
*
* @param id
* @return
*/
public StatisticsRemain selectStatisticsRemainById(Long id);
/**
*
*
* @param statisticsRemain
* @return
*/
public List<StatisticsRemain> selectStatisticsRemainList(StatisticsRemain statisticsRemain);
/**
*
*
* @param statisticsRemain
* @return
*/
public int insertStatisticsRemain(StatisticsRemain statisticsRemain);
/**
*
*
* @param statisticsRemain
* @return
*/
public int updateStatisticsRemain(StatisticsRemain statisticsRemain);
/**
*
*
* @param id
* @return
*/
public int deleteStatisticsRemainById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteStatisticsRemainByIds(Long[] ids);
}

@ -0,0 +1,61 @@
package com.ruoyi.booksystem.mapper;
import java.util.List;
import com.ruoyi.booksystem.domain.StatisticsTotal;
/**
* Mapper
*
* @author ruoyi
* @date 2023-12-18
*/
public interface StatisticsTotalMapper
{
/**
*
*
* @param id
* @return
*/
public StatisticsTotal selectStatisticsTotalById(Long id);
/**
*
*
* @param statisticsTotal
* @return
*/
public List<StatisticsTotal> selectStatisticsTotalList(StatisticsTotal statisticsTotal);
/**
*
*
* @param statisticsTotal
* @return
*/
public int insertStatisticsTotal(StatisticsTotal statisticsTotal);
/**
*
*
* @param statisticsTotal
* @return
*/
public int updateStatisticsTotal(StatisticsTotal statisticsTotal);
/**
*
*
* @param id
* @return
*/
public int deleteStatisticsTotalById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteStatisticsTotalByIds(Long[] ids);
}

@ -0,0 +1,61 @@
package com.ruoyi.booksystem.service;
import java.util.List;
import com.ruoyi.booksystem.domain.Account;
/**
* Service
*
* @author ruoyi
* @date 2023-12-18
*/
public interface IAccountService
{
/**
*
*
* @param id
* @return
*/
public Account selectAccountById(Long id);
/**
*
*
* @param account
* @return
*/
public List<Account> selectAccountList(Account account);
/**
*
*
* @param account
* @return
*/
public int insertAccount(Account account);
/**
*
*
* @param account
* @return
*/
public int updateAccount(Account account);
/**
*
*
* @param ids
* @return
*/
public int deleteAccountByIds(Long[] ids);
/**
*
*
* @param id
* @return
*/
public int deleteAccountById(Long id);
}

@ -0,0 +1,61 @@
package com.ruoyi.booksystem.service;
import java.util.List;
import com.ruoyi.booksystem.domain.Operations;
/**
* Service
*
* @author ruoyi
* @date 2023-12-18
*/
public interface IOperationsService
{
/**
*
*
* @param id
* @return
*/
public Operations selectOperationsById(Long id);
/**
*
*
* @param operations
* @return
*/
public List<Operations> selectOperationsList(Operations operations);
/**
*
*
* @param operations
* @return
*/
public int insertOperations(Operations operations);
/**
*
*
* @param operations
* @return
*/
public int updateOperations(Operations operations);
/**
*
*
* @param ids
* @return
*/
public int deleteOperationsByIds(Long[] ids);
/**
*
*
* @param id
* @return
*/
public int deleteOperationsById(Long id);
}

@ -0,0 +1,61 @@
package com.ruoyi.booksystem.service;
import java.util.List;
import com.ruoyi.booksystem.domain.StatisticsRemain;
/**
* Service
*
* @author ruoyi
* @date 2023-12-18
*/
public interface IStatisticsRemainService
{
/**
*
*
* @param id
* @return
*/
public StatisticsRemain selectStatisticsRemainById(Long id);
/**
*
*
* @param statisticsRemain
* @return
*/
public List<StatisticsRemain> selectStatisticsRemainList(StatisticsRemain statisticsRemain);
/**
*
*
* @param statisticsRemain
* @return
*/
public int insertStatisticsRemain(StatisticsRemain statisticsRemain);
/**
*
*
* @param statisticsRemain
* @return
*/
public int updateStatisticsRemain(StatisticsRemain statisticsRemain);
/**
*
*
* @param ids
* @return
*/
public int deleteStatisticsRemainByIds(Long[] ids);
/**
*
*
* @param id
* @return
*/
public int deleteStatisticsRemainById(Long id);
}

@ -0,0 +1,61 @@
package com.ruoyi.booksystem.service;
import java.util.List;
import com.ruoyi.booksystem.domain.Statistics;
/**
* Service
*
* @author ruoyi
* @date 2023-12-18
*/
public interface IStatisticsService
{
/**
*
*
* @param id
* @return
*/
public Statistics selectStatisticsById(Long id);
/**
*
*
* @param statistics
* @return
*/
public List<Statistics> selectStatisticsList(Statistics statistics);
/**
*
*
* @param statistics
* @return
*/
public int insertStatistics(Statistics statistics);
/**
*
*
* @param statistics
* @return
*/
public int updateStatistics(Statistics statistics);
/**
*
*
* @param ids
* @return
*/
public int deleteStatisticsByIds(Long[] ids);
/**
*
*
* @param id
* @return
*/
public int deleteStatisticsById(Long id);
}

@ -0,0 +1,61 @@
package com.ruoyi.booksystem.service;
import java.util.List;
import com.ruoyi.booksystem.domain.StatisticsTotal;
/**
* Service
*
* @author ruoyi
* @date 2023-12-18
*/
public interface IStatisticsTotalService
{
/**
*
*
* @param id
* @return
*/
public StatisticsTotal selectStatisticsTotalById(Long id);
/**
*
*
* @param statisticsTotal
* @return
*/
public List<StatisticsTotal> selectStatisticsTotalList(StatisticsTotal statisticsTotal);
/**
*
*
* @param statisticsTotal
* @return
*/
public int insertStatisticsTotal(StatisticsTotal statisticsTotal);
/**
*
*
* @param statisticsTotal
* @return
*/
public int updateStatisticsTotal(StatisticsTotal statisticsTotal);
/**
*
*
* @param ids
* @return
*/
public int deleteStatisticsTotalByIds(Long[] ids);
/**
*
*
* @param id
* @return
*/
public int deleteStatisticsTotalById(Long id);
}

@ -0,0 +1,93 @@
package com.ruoyi.booksystem.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.booksystem.mapper.AccountMapper;
import com.ruoyi.booksystem.domain.Account;
import com.ruoyi.booksystem.service.IAccountService;
/**
* Service
*
* @author ruoyi
* @date 2023-12-18
*/
@Service
public class AccountServiceImpl implements IAccountService
{
@Autowired
private AccountMapper accountMapper;
/**
*
*
* @param id
* @return
*/
@Override
public Account selectAccountById(Long id)
{
return accountMapper.selectAccountById(id);
}
/**
*
*
* @param account
* @return
*/
@Override
public List<Account> selectAccountList(Account account)
{
return accountMapper.selectAccountList(account);
}
/**
*
*
* @param account
* @return
*/
@Override
public int insertAccount(Account account)
{
return accountMapper.insertAccount(account);
}
/**
*
*
* @param account
* @return
*/
@Override
public int updateAccount(Account account)
{
return accountMapper.updateAccount(account);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteAccountByIds(Long[] ids)
{
return accountMapper.deleteAccountByIds(ids);
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteAccountById(Long id)
{
return accountMapper.deleteAccountById(id);
}
}

@ -0,0 +1,93 @@
package com.ruoyi.booksystem.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.booksystem.mapper.OperationsMapper;
import com.ruoyi.booksystem.domain.Operations;
import com.ruoyi.booksystem.service.IOperationsService;
/**
* Service
*
* @author ruoyi
* @date 2023-12-18
*/
@Service
public class OperationsServiceImpl implements IOperationsService
{
@Autowired
private OperationsMapper operationsMapper;
/**
*
*
* @param id
* @return
*/
@Override
public Operations selectOperationsById(Long id)
{
return operationsMapper.selectOperationsById(id);
}
/**
*
*
* @param operations
* @return
*/
@Override
public List<Operations> selectOperationsList(Operations operations)
{
return operationsMapper.selectOperationsList(operations);
}
/**
*
*
* @param operations
* @return
*/
@Override
public int insertOperations(Operations operations)
{
return operationsMapper.insertOperations(operations);
}
/**
*
*
* @param operations
* @return
*/
@Override
public int updateOperations(Operations operations)
{
return operationsMapper.updateOperations(operations);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteOperationsByIds(Long[] ids)
{
return operationsMapper.deleteOperationsByIds(ids);
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteOperationsById(Long id)
{
return operationsMapper.deleteOperationsById(id);
}
}

@ -0,0 +1,93 @@
package com.ruoyi.booksystem.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.booksystem.mapper.StatisticsRemainMapper;
import com.ruoyi.booksystem.domain.StatisticsRemain;
import com.ruoyi.booksystem.service.IStatisticsRemainService;
/**
* Service
*
* @author ruoyi
* @date 2023-12-18
*/
@Service
public class StatisticsRemainServiceImpl implements IStatisticsRemainService
{
@Autowired
private StatisticsRemainMapper statisticsRemainMapper;
/**
*
*
* @param id
* @return
*/
@Override
public StatisticsRemain selectStatisticsRemainById(Long id)
{
return statisticsRemainMapper.selectStatisticsRemainById(id);
}
/**
*
*
* @param statisticsRemain
* @return
*/
@Override
public List<StatisticsRemain> selectStatisticsRemainList(StatisticsRemain statisticsRemain)
{
return statisticsRemainMapper.selectStatisticsRemainList(statisticsRemain);
}
/**
*
*
* @param statisticsRemain
* @return
*/
@Override
public int insertStatisticsRemain(StatisticsRemain statisticsRemain)
{
return statisticsRemainMapper.insertStatisticsRemain(statisticsRemain);
}
/**
*
*
* @param statisticsRemain
* @return
*/
@Override
public int updateStatisticsRemain(StatisticsRemain statisticsRemain)
{
return statisticsRemainMapper.updateStatisticsRemain(statisticsRemain);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteStatisticsRemainByIds(Long[] ids)
{
return statisticsRemainMapper.deleteStatisticsRemainByIds(ids);
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteStatisticsRemainById(Long id)
{
return statisticsRemainMapper.deleteStatisticsRemainById(id);
}
}

@ -0,0 +1,93 @@
package com.ruoyi.booksystem.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.booksystem.mapper.StatisticsMapper;
import com.ruoyi.booksystem.domain.Statistics;
import com.ruoyi.booksystem.service.IStatisticsService;
/**
* Service
*
* @author ruoyi
* @date 2023-12-18
*/
@Service
public class StatisticsServiceImpl implements IStatisticsService
{
@Autowired
private StatisticsMapper statisticsMapper;
/**
*
*
* @param id
* @return
*/
@Override
public Statistics selectStatisticsById(Long id)
{
return statisticsMapper.selectStatisticsById(id);
}
/**
*
*
* @param statistics
* @return
*/
@Override
public List<Statistics> selectStatisticsList(Statistics statistics)
{
return statisticsMapper.selectStatisticsList(statistics);
}
/**
*
*
* @param statistics
* @return
*/
@Override
public int insertStatistics(Statistics statistics)
{
return statisticsMapper.insertStatistics(statistics);
}
/**
*
*
* @param statistics
* @return
*/
@Override
public int updateStatistics(Statistics statistics)
{
return statisticsMapper.updateStatistics(statistics);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteStatisticsByIds(Long[] ids)
{
return statisticsMapper.deleteStatisticsByIds(ids);
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteStatisticsById(Long id)
{
return statisticsMapper.deleteStatisticsById(id);
}
}

@ -0,0 +1,93 @@
package com.ruoyi.booksystem.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.booksystem.mapper.StatisticsTotalMapper;
import com.ruoyi.booksystem.domain.StatisticsTotal;
import com.ruoyi.booksystem.service.IStatisticsTotalService;
/**
* Service
*
* @author ruoyi
* @date 2023-12-18
*/
@Service
public class StatisticsTotalServiceImpl implements IStatisticsTotalService
{
@Autowired
private StatisticsTotalMapper statisticsTotalMapper;
/**
*
*
* @param id
* @return
*/
@Override
public StatisticsTotal selectStatisticsTotalById(Long id)
{
return statisticsTotalMapper.selectStatisticsTotalById(id);
}
/**
*
*
* @param statisticsTotal
* @return
*/
@Override
public List<StatisticsTotal> selectStatisticsTotalList(StatisticsTotal statisticsTotal)
{
return statisticsTotalMapper.selectStatisticsTotalList(statisticsTotal);
}
/**
*
*
* @param statisticsTotal
* @return
*/
@Override
public int insertStatisticsTotal(StatisticsTotal statisticsTotal)
{
return statisticsTotalMapper.insertStatisticsTotal(statisticsTotal);
}
/**
*
*
* @param statisticsTotal
* @return
*/
@Override
public int updateStatisticsTotal(StatisticsTotal statisticsTotal)
{
return statisticsTotalMapper.updateStatisticsTotal(statisticsTotal);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteStatisticsTotalByIds(Long[] ids)
{
return statisticsTotalMapper.deleteStatisticsTotalByIds(ids);
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteStatisticsTotalById(Long id)
{
return statisticsTotalMapper.deleteStatisticsTotalById(id);
}
}

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.booksystem.mapper.AccountMapper">
<resultMap type="Account" id="AccountResult">
<result property="id" column="id" />
<result property="tradeDay" column="trade_day" />
<result property="weekDay" column="week_day" />
<result property="assets" column="assets" />
<result property="totalAssets" column="total_assets" />
<result property="profit" column="profit" />
<result property="assetsDiff" column="assets_diff" />
<result property="totalDiff" column="total_diff" />
<result property="userId" column="user_id" />
</resultMap>
<sql id="selectAccountVo">
select id, trade_day, week_day, assets, total_assets, profit, assets_diff, total_diff, user_id from account
</sql>
<select id="selectAccountList" parameterType="Account" resultMap="AccountResult">
<include refid="selectAccountVo"/>
<where>
<if test="tradeDay != null "> and trade_day = #{tradeDay}</if>
<if test="weekDay != null "> and week_day = #{weekDay}</if>
<if test="assets != null "> and assets = #{assets}</if>
<if test="totalAssets != null "> and total_assets = #{totalAssets}</if>
<if test="profit != null "> and profit = #{profit}</if>
<if test="assetsDiff != null "> and assets_diff = #{assetsDiff}</if>
<if test="totalDiff != null "> and total_diff = #{totalDiff}</if>
<if test="userId != null "> and user_id = #{userId}</if>
</where>
</select>
<select id="selectAccountById" parameterType="Long" resultMap="AccountResult">
<include refid="selectAccountVo"/>
where id = #{id}
</select>
<insert id="insertAccount" parameterType="Account" useGeneratedKeys="true" keyProperty="id">
insert into account
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="tradeDay != null">trade_day,</if>
<if test="weekDay != null">week_day,</if>
<if test="assets != null">assets,</if>
<if test="totalAssets != null">total_assets,</if>
<if test="profit != null">profit,</if>
<if test="assetsDiff != null">assets_diff,</if>
<if test="totalDiff != null">total_diff,</if>
<if test="userId != null">user_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="tradeDay != null">#{tradeDay},</if>
<if test="weekDay != null">#{weekDay},</if>
<if test="assets != null">#{assets},</if>
<if test="totalAssets != null">#{totalAssets},</if>
<if test="profit != null">#{profit},</if>
<if test="assetsDiff != null">#{assetsDiff},</if>
<if test="totalDiff != null">#{totalDiff},</if>
<if test="userId != null">#{userId},</if>
</trim>
</insert>
<update id="updateAccount" parameterType="Account">
update account
<trim prefix="SET" suffixOverrides=",">
<if test="tradeDay != null">trade_day = #{tradeDay},</if>
<if test="weekDay != null">week_day = #{weekDay},</if>
<if test="assets != null">assets = #{assets},</if>
<if test="totalAssets != null">total_assets = #{totalAssets},</if>
<if test="profit != null">profit = #{profit},</if>
<if test="assetsDiff != null">assets_diff = #{assetsDiff},</if>
<if test="totalDiff != null">total_diff = #{totalDiff},</if>
<if test="userId != null">user_id = #{userId},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteAccountById" parameterType="Long">
delete from account where id = #{id}
</delete>
<delete id="deleteAccountByIds" parameterType="String">
delete from account where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.booksystem.mapper.OperationsMapper">
<resultMap type="Operations" id="OperationsResult">
<result property="id" column="id" />
<result property="code" column="code" />
<result property="name" column="name" />
<result property="tradeDay" column="trade_day" />
<result property="weekDay" column="week_day" />
<result property="operate" column="operate" />
<result property="dealPrice" column="deal_price" />
<result property="volumn" column="volumn" />
<result property="amount" column="amount" />
<result property="tax" column="tax" />
<result property="fee" column="fee" />
<result property="other" column="other" />
<result property="operateDiff" column="operate_diff" />
<result property="preId" column="pre_id" />
<result property="userId" column="user_id" />
<result property="dealLogic" column="deal_logic" />
<result property="bz" column="bz" />
</resultMap>
<sql id="selectOperationsVo">
select id, code, name, trade_day, week_day, operate, deal_price, volumn, amount, tax, fee, other, operate_diff, pre_id, user_id, deal_logic, bz from operations
</sql>
<select id="selectOperationsList" parameterType="Operations" resultMap="OperationsResult">
<include refid="selectOperationsVo"/>
<where>
<if test="code != null and code != ''"> and code = #{code}</if>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
<if test="tradeDay != null "> and trade_day = #{tradeDay}</if>
<if test="weekDay != null "> and week_day = #{weekDay}</if>
<if test="operate != null and operate != ''"> and operate = #{operate}</if>
<if test="dealPrice != null "> and deal_price = #{dealPrice}</if>
<if test="volumn != null "> and volumn = #{volumn}</if>
<if test="amount != null "> and amount = #{amount}</if>
<if test="tax != null "> and tax = #{tax}</if>
<if test="fee != null "> and fee = #{fee}</if>
<if test="other != null "> and other = #{other}</if>
<if test="operateDiff != null "> and operate_diff = #{operateDiff}</if>
<if test="preId != null "> and pre_id = #{preId}</if>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="dealLogic != null and dealLogic != ''"> and deal_logic = #{dealLogic}</if>
<if test="bz != null and bz != ''"> and bz = #{bz}</if>
</where>
</select>
<select id="selectOperationsById" parameterType="Long" resultMap="OperationsResult">
<include refid="selectOperationsVo"/>
where id = #{id}
</select>
<insert id="insertOperations" parameterType="Operations" useGeneratedKeys="true" keyProperty="id">
insert into operations
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="code != null and code != ''">code,</if>
<if test="name != null">name,</if>
<if test="tradeDay != null">trade_day,</if>
<if test="weekDay != null">week_day,</if>
<if test="operate != null and operate != ''">operate,</if>
<if test="dealPrice != null">deal_price,</if>
<if test="volumn != null">volumn,</if>
<if test="amount != null">amount,</if>
<if test="tax != null">tax,</if>
<if test="fee != null">fee,</if>
<if test="other != null">other,</if>
<if test="operateDiff != null">operate_diff,</if>
<if test="preId != null">pre_id,</if>
<if test="userId != null">user_id,</if>
<if test="dealLogic != null">deal_logic,</if>
<if test="bz != null">bz,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="code != null and code != ''">#{code},</if>
<if test="name != null">#{name},</if>
<if test="tradeDay != null">#{tradeDay},</if>
<if test="weekDay != null">#{weekDay},</if>
<if test="operate != null and operate != ''">#{operate},</if>
<if test="dealPrice != null">#{dealPrice},</if>
<if test="volumn != null">#{volumn},</if>
<if test="amount != null">#{amount},</if>
<if test="tax != null">#{tax},</if>
<if test="fee != null">#{fee},</if>
<if test="other != null">#{other},</if>
<if test="operateDiff != null">#{operateDiff},</if>
<if test="preId != null">#{preId},</if>
<if test="userId != null">#{userId},</if>
<if test="dealLogic != null">#{dealLogic},</if>
<if test="bz != null">#{bz},</if>
</trim>
</insert>
<update id="updateOperations" parameterType="Operations">
update operations
<trim prefix="SET" suffixOverrides=",">
<if test="code != null and code != ''">code = #{code},</if>
<if test="name != null">name = #{name},</if>
<if test="tradeDay != null">trade_day = #{tradeDay},</if>
<if test="weekDay != null">week_day = #{weekDay},</if>
<if test="operate != null and operate != ''">operate = #{operate},</if>
<if test="dealPrice != null">deal_price = #{dealPrice},</if>
<if test="volumn != null">volumn = #{volumn},</if>
<if test="amount != null">amount = #{amount},</if>
<if test="tax != null">tax = #{tax},</if>
<if test="fee != null">fee = #{fee},</if>
<if test="other != null">other = #{other},</if>
<if test="operateDiff != null">operate_diff = #{operateDiff},</if>
<if test="preId != null">pre_id = #{preId},</if>
<if test="userId != null">user_id = #{userId},</if>
<if test="dealLogic != null">deal_logic = #{dealLogic},</if>
<if test="bz != null">bz = #{bz},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteOperationsById" parameterType="Long">
delete from operations where id = #{id}
</delete>
<delete id="deleteOperationsByIds" parameterType="String">
delete from operations where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.booksystem.mapper.StatisticsMapper">
<resultMap type="Statistics" id="StatisticsResult">
<result property="id" column="id" />
<result property="code" column="code" />
<result property="name" column="name" />
<result property="tradeDay" column="trade_day" />
<result property="weekDay" column="week_day" />
<result property="operationsId" column="operations_id" />
<result property="profit" column="profit" />
<result property="diff" column="diff" />
<result property="operateionId" column="operateion_id" />
<result property="userId" column="user_id" />
<result property="bz" column="bz" />
</resultMap>
<sql id="selectStatisticsVo">
select id, code, name, trade_day, week_day, operations_id, profit, diff, operateion_id, user_id, bz from statistics
</sql>
<select id="selectStatisticsList" parameterType="Statistics" resultMap="StatisticsResult">
<include refid="selectStatisticsVo"/>
<where>
<if test="code != null and code != ''"> and code = #{code}</if>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
<if test="tradeDay != null "> and trade_day = #{tradeDay}</if>
<if test="weekDay != null "> and week_day = #{weekDay}</if>
<if test="operationsId != null and operationsId != ''"> and operations_id = #{operationsId}</if>
<if test="profit != null "> and profit = #{profit}</if>
<if test="diff != null "> and diff = #{diff}</if>
<if test="operateionId != null "> and operateion_id = #{operateionId}</if>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="bz != null and bz != ''"> and bz = #{bz}</if>
</where>
</select>
<select id="selectStatisticsById" parameterType="Long" resultMap="StatisticsResult">
<include refid="selectStatisticsVo"/>
where id = #{id}
</select>
<insert id="insertStatistics" parameterType="Statistics" useGeneratedKeys="true" keyProperty="id">
insert into statistics
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="code != null and code != ''">code,</if>
<if test="name != null">name,</if>
<if test="tradeDay != null">trade_day,</if>
<if test="weekDay != null">week_day,</if>
<if test="operationsId != null and operationsId != ''">operations_id,</if>
<if test="profit != null">profit,</if>
<if test="diff != null">diff,</if>
<if test="operateionId != null">operateion_id,</if>
<if test="userId != null">user_id,</if>
<if test="bz != null">bz,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="code != null and code != ''">#{code},</if>
<if test="name != null">#{name},</if>
<if test="tradeDay != null">#{tradeDay},</if>
<if test="weekDay != null">#{weekDay},</if>
<if test="operationsId != null and operationsId != ''">#{operationsId},</if>
<if test="profit != null">#{profit},</if>
<if test="diff != null">#{diff},</if>
<if test="operateionId != null">#{operateionId},</if>
<if test="userId != null">#{userId},</if>
<if test="bz != null">#{bz},</if>
</trim>
</insert>
<update id="updateStatistics" parameterType="Statistics">
update statistics
<trim prefix="SET" suffixOverrides=",">
<if test="code != null and code != ''">code = #{code},</if>
<if test="name != null">name = #{name},</if>
<if test="tradeDay != null">trade_day = #{tradeDay},</if>
<if test="weekDay != null">week_day = #{weekDay},</if>
<if test="operationsId != null and operationsId != ''">operations_id = #{operationsId},</if>
<if test="profit != null">profit = #{profit},</if>
<if test="diff != null">diff = #{diff},</if>
<if test="operateionId != null">operateion_id = #{operateionId},</if>
<if test="userId != null">user_id = #{userId},</if>
<if test="bz != null">bz = #{bz},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteStatisticsById" parameterType="Long">
delete from statistics where id = #{id}
</delete>
<delete id="deleteStatisticsByIds" parameterType="String">
delete from statistics where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.booksystem.mapper.StatisticsRemainMapper">
<resultMap type="StatisticsRemain" id="StatisticsRemainResult">
<result property="id" column="id" />
<result property="code" column="code" />
<result property="name" column="name" />
<result property="tradeDay" column="trade_day" />
<result property="weekDay" column="week_day" />
<result property="totalProfit" column="total_profit" />
<result property="totalDiff" column="total_diff" />
<result property="totalDiffOverall" column="total_diff_overall" />
<result property="remaining" column="remaining" />
<result property="userId" column="user_id" />
<result property="bz" column="bz" />
</resultMap>
<sql id="selectStatisticsRemainVo">
select id, code, name, trade_day, week_day, total_profit, total_diff, total_diff_overall, remaining, user_id, bz from statistics_remain
</sql>
<select id="selectStatisticsRemainList" parameterType="StatisticsRemain" resultMap="StatisticsRemainResult">
<include refid="selectStatisticsRemainVo"/>
<where>
<if test="code != null and code != ''"> and code = #{code}</if>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
<if test="tradeDay != null "> and trade_day = #{tradeDay}</if>
<if test="weekDay != null "> and week_day = #{weekDay}</if>
<if test="totalProfit != null "> and total_profit = #{totalProfit}</if>
<if test="totalDiff != null "> and total_diff = #{totalDiff}</if>
<if test="totalDiffOverall != null "> and total_diff_overall = #{totalDiffOverall}</if>
<if test="remaining != null "> and remaining = #{remaining}</if>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="bz != null and bz != ''"> and bz = #{bz}</if>
</where>
</select>
<select id="selectStatisticsRemainById" parameterType="Long" resultMap="StatisticsRemainResult">
<include refid="selectStatisticsRemainVo"/>
where id = #{id}
</select>
<insert id="insertStatisticsRemain" parameterType="StatisticsRemain" useGeneratedKeys="true" keyProperty="id">
insert into statistics_remain
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="code != null and code != ''">code,</if>
<if test="name != null">name,</if>
<if test="tradeDay != null">trade_day,</if>
<if test="weekDay != null">week_day,</if>
<if test="totalProfit != null">total_profit,</if>
<if test="totalDiff != null">total_diff,</if>
<if test="totalDiffOverall != null">total_diff_overall,</if>
<if test="remaining != null">remaining,</if>
<if test="userId != null">user_id,</if>
<if test="bz != null">bz,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="code != null and code != ''">#{code},</if>
<if test="name != null">#{name},</if>
<if test="tradeDay != null">#{tradeDay},</if>
<if test="weekDay != null">#{weekDay},</if>
<if test="totalProfit != null">#{totalProfit},</if>
<if test="totalDiff != null">#{totalDiff},</if>
<if test="totalDiffOverall != null">#{totalDiffOverall},</if>
<if test="remaining != null">#{remaining},</if>
<if test="userId != null">#{userId},</if>
<if test="bz != null">#{bz},</if>
</trim>
</insert>
<update id="updateStatisticsRemain" parameterType="StatisticsRemain">
update statistics_remain
<trim prefix="SET" suffixOverrides=",">
<if test="code != null and code != ''">code = #{code},</if>
<if test="name != null">name = #{name},</if>
<if test="tradeDay != null">trade_day = #{tradeDay},</if>
<if test="weekDay != null">week_day = #{weekDay},</if>
<if test="totalProfit != null">total_profit = #{totalProfit},</if>
<if test="totalDiff != null">total_diff = #{totalDiff},</if>
<if test="totalDiffOverall != null">total_diff_overall = #{totalDiffOverall},</if>
<if test="remaining != null">remaining = #{remaining},</if>
<if test="userId != null">user_id = #{userId},</if>
<if test="bz != null">bz = #{bz},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteStatisticsRemainById" parameterType="Long">
delete from statistics_remain where id = #{id}
</delete>
<delete id="deleteStatisticsRemainByIds" parameterType="String">
delete from statistics_remain where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.booksystem.mapper.StatisticsTotalMapper">
<resultMap type="StatisticsTotal" id="StatisticsTotalResult">
<result property="id" column="id" />
<result property="code" column="code" />
<result property="name" column="name" />
<result property="startTradeDay" column="start_trade_day" />
<result property="endTradeDay" column="end_trade_day" />
<result property="totalProfit" column="total_profit" />
<result property="totalDiff" column="total_diff" />
<result property="startPrice" column="start_price" />
<result property="endPrice" column="end_price" />
<result property="volumnTotal" column="volumn_total" />
<result property="amountTotal" column="amount_total" />
<result property="operateTimes" column="operate_times" />
<result property="fee" column="fee" />
<result property="tax" column="tax" />
<result property="other" column="other" />
<result property="userId" column="user_id" />
<result property="bz" column="bz" />
</resultMap>
<sql id="selectStatisticsTotalVo">
select id, code, name, start_trade_day, end_trade_day, total_profit, total_diff, start_price, end_price, volumn_total, amount_total, operate_times, fee, tax, other, user_id, bz from statistics_total
</sql>
<select id="selectStatisticsTotalList" parameterType="StatisticsTotal" resultMap="StatisticsTotalResult">
<include refid="selectStatisticsTotalVo"/>
<where>
<if test="code != null and code != ''"> and code = #{code}</if>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
<if test="startTradeDay != null "> and start_trade_day = #{startTradeDay}</if>
<if test="endTradeDay != null "> and end_trade_day = #{endTradeDay}</if>
<if test="totalProfit != null "> and total_profit = #{totalProfit}</if>
<if test="totalDiff != null "> and total_diff = #{totalDiff}</if>
<if test="startPrice != null "> and start_price = #{startPrice}</if>
<if test="endPrice != null "> and end_price = #{endPrice}</if>
<if test="volumnTotal != null "> and volumn_total = #{volumnTotal}</if>
<if test="amountTotal != null "> and amount_total = #{amountTotal}</if>
<if test="operateTimes != null "> and operate_times = #{operateTimes}</if>
<if test="fee != null "> and fee = #{fee}</if>
<if test="tax != null "> and tax = #{tax}</if>
<if test="other != null "> and other = #{other}</if>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="bz != null and bz != ''"> and bz = #{bz}</if>
</where>
</select>
<select id="selectStatisticsTotalById" parameterType="Long" resultMap="StatisticsTotalResult">
<include refid="selectStatisticsTotalVo"/>
where id = #{id}
</select>
<insert id="insertStatisticsTotal" parameterType="StatisticsTotal" useGeneratedKeys="true" keyProperty="id">
insert into statistics_total
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="code != null and code != ''">code,</if>
<if test="name != null">name,</if>
<if test="startTradeDay != null">start_trade_day,</if>
<if test="endTradeDay != null">end_trade_day,</if>
<if test="totalProfit != null">total_profit,</if>
<if test="totalDiff != null">total_diff,</if>
<if test="startPrice != null">start_price,</if>
<if test="endPrice != null">end_price,</if>
<if test="volumnTotal != null">volumn_total,</if>
<if test="amountTotal != null">amount_total,</if>
<if test="operateTimes != null">operate_times,</if>
<if test="fee != null">fee,</if>
<if test="tax != null">tax,</if>
<if test="other != null">other,</if>
<if test="userId != null">user_id,</if>
<if test="bz != null">bz,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="code != null and code != ''">#{code},</if>
<if test="name != null">#{name},</if>
<if test="startTradeDay != null">#{startTradeDay},</if>
<if test="endTradeDay != null">#{endTradeDay},</if>
<if test="totalProfit != null">#{totalProfit},</if>
<if test="totalDiff != null">#{totalDiff},</if>
<if test="startPrice != null">#{startPrice},</if>
<if test="endPrice != null">#{endPrice},</if>
<if test="volumnTotal != null">#{volumnTotal},</if>
<if test="amountTotal != null">#{amountTotal},</if>
<if test="operateTimes != null">#{operateTimes},</if>
<if test="fee != null">#{fee},</if>
<if test="tax != null">#{tax},</if>
<if test="other != null">#{other},</if>
<if test="userId != null">#{userId},</if>
<if test="bz != null">#{bz},</if>
</trim>
</insert>
<update id="updateStatisticsTotal" parameterType="StatisticsTotal">
update statistics_total
<trim prefix="SET" suffixOverrides=",">
<if test="code != null and code != ''">code = #{code},</if>
<if test="name != null">name = #{name},</if>
<if test="startTradeDay != null">start_trade_day = #{startTradeDay},</if>
<if test="endTradeDay != null">end_trade_day = #{endTradeDay},</if>
<if test="totalProfit != null">total_profit = #{totalProfit},</if>
<if test="totalDiff != null">total_diff = #{totalDiff},</if>
<if test="startPrice != null">start_price = #{startPrice},</if>
<if test="endPrice != null">end_price = #{endPrice},</if>
<if test="volumnTotal != null">volumn_total = #{volumnTotal},</if>
<if test="amountTotal != null">amount_total = #{amountTotal},</if>
<if test="operateTimes != null">operate_times = #{operateTimes},</if>
<if test="fee != null">fee = #{fee},</if>
<if test="tax != null">tax = #{tax},</if>
<if test="other != null">other = #{other},</if>
<if test="userId != null">user_id = #{userId},</if>
<if test="bz != null">bz = #{bz},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteStatisticsTotalById" parameterType="Long">
delete from statistics_total where id = #{id}
</delete>
<delete id="deleteStatisticsTotalByIds" parameterType="String">
delete from statistics_total where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

@ -6,7 +6,8 @@ spring:
druid: druid:
# 主库数据源 # 主库数据源
master: master:
url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 # url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url: jdbc:mysql://192.168.0.222:3306/ry_refactor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root username: root
password: 1qazse42W3 password: 1qazse42W3
# 从库数据源 # 从库数据源

@ -61,10 +61,14 @@ spring:
enabled: true enabled: true
# redis 配置 # redis 配置
redis: redis:
# # 地址
# host: localhost
# # 端口默认为6379
# port: 6379
# 地址 # 地址
host: localhost host: 192.168.0.222
# 端口默认为6379 # 端口默认为6379
port: 6379 port: 6380
# 数据库索引 # 数据库索引
database: 0 database: 0
# 密码 # 密码
@ -75,7 +79,7 @@ spring:
pool: pool:
# 连接池中的最小空闲连接 # 连接池中的最小空闲连接
min-idle: 0 min-idle: 0
# 连接池中的最大空闲连接 # 连接池中的最大空闲连接yi
max-idle: 8 max-idle: 8
# 连接池的最大数据库连接数 # 连接池的最大数据库连接数
max-active: 8 max-active: 8

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询交易账户列表
export function listAccount(query) {
return request({
url: '/booksystem/account/list',
method: 'get',
params: query
})
}
// 查询交易账户详细
export function getAccount(id) {
return request({
url: '/booksystem/account/' + id,
method: 'get'
})
}
// 新增交易账户
export function addAccount(data) {
return request({
url: '/booksystem/account',
method: 'post',
data: data
})
}
// 修改交易账户
export function updateAccount(data) {
return request({
url: '/booksystem/account',
method: 'put',
data: data
})
}
// 删除交易账户
export function delAccount(id) {
return request({
url: '/booksystem/account/' + id,
method: 'delete'
})
}

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询当日操作列表
export function listOperations(query) {
return request({
url: '/booksystem/operations/list',
method: 'get',
params: query
})
}
// 查询当日操作详细
export function getOperations(id) {
return request({
url: '/booksystem/operations/' + id,
method: 'get'
})
}
// 新增当日操作
export function addOperations(data) {
return request({
url: '/booksystem/operations',
method: 'post',
data: data
})
}
// 修改当日操作
export function updateOperations(data) {
return request({
url: '/booksystem/operations',
method: 'put',
data: data
})
}
// 删除当日操作
export function delOperations(id) {
return request({
url: '/booksystem/operations/' + id,
method: 'delete'
})
}

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询当日持仓统计列表
export function listStatisticremain(query) {
return request({
url: '/booksystem/statisticremain/list',
method: 'get',
params: query
})
}
// 查询当日持仓统计详细
export function getStatisticremain(id) {
return request({
url: '/booksystem/statisticremain/' + id,
method: 'get'
})
}
// 新增当日持仓统计
export function addStatisticremain(data) {
return request({
url: '/booksystem/statisticremain',
method: 'post',
data: data
})
}
// 修改当日持仓统计
export function updateStatisticremain(data) {
return request({
url: '/booksystem/statisticremain',
method: 'put',
data: data
})
}
// 删除当日持仓统计
export function delStatisticremain(id) {
return request({
url: '/booksystem/statisticremain/' + id,
method: 'delete'
})
}

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询单笔操作统计列表
export function listStatistics(query) {
return request({
url: '/booksystem/statistics/list',
method: 'get',
params: query
})
}
// 查询单笔操作统计详细
export function getStatistics(id) {
return request({
url: '/booksystem/statistics/' + id,
method: 'get'
})
}
// 新增单笔操作统计
export function addStatistics(data) {
return request({
url: '/booksystem/statistics',
method: 'post',
data: data
})
}
// 修改单笔操作统计
export function updateStatistics(data) {
return request({
url: '/booksystem/statistics',
method: 'put',
data: data
})
}
// 删除单笔操作统计
export function delStatistics(id) {
return request({
url: '/booksystem/statistics/' + id,
method: 'delete'
})
}

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询统计当日持仓列表
export function listStatistictotal(query) {
return request({
url: '/booksystem/statistictotal/list',
method: 'get',
params: query
})
}
// 查询统计当日持仓详细
export function getStatistictotal(id) {
return request({
url: '/booksystem/statistictotal/' + id,
method: 'get'
})
}
// 新增统计当日持仓
export function addStatistictotal(data) {
return request({
url: '/booksystem/statistictotal',
method: 'post',
data: data
})
}
// 修改统计当日持仓
export function updateStatistictotal(data) {
return request({
url: '/booksystem/statistictotal',
method: 'put',
data: data
})
}
// 删除统计当日持仓
export function delStatistictotal(id) {
return request({
url: '/booksystem/statistictotal/' + id,
method: 'delete'
})
}

@ -0,0 +1,306 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="交易日期" prop="tradeDay">
<el-date-picker clearable size="small"
v-model="queryParams.tradeDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择交易日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['booksystem:account:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['booksystem:account:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['booksystem:account:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['booksystem:account:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="accountList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="交易日期" align="center" prop="tradeDay" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.tradeDay, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="星期" align="center" prop="weekDay" width="180" />
<el-table-column label="净资产" align="center" prop="assets" />
<el-table-column label="总资产" align="center" prop="totalAssets" />
<el-table-column label="当日盈亏" align="center" prop="profit" />
<el-table-column label="当日净资产盈亏比例" align="center" prop="assetsDiff" />
<el-table-column label="当日总资产盈亏比例" align="center" prop="totalDiff" />
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['booksystem:account:edit']"-->
<!-- >修改</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['booksystem:account:remove']"-->
<!-- >删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改交易账户对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="交易日期" prop="tradeDay">
<el-date-picker clearable size="small"
@change="handleChange"
v-model="form.tradeDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择交易日期">
</el-date-picker>
</el-form-item>
<el-form-item label="净资产" prop="assets">
<el-input v-model="form.assets" placeholder="请输入净资产" />
</el-form-item>
<el-form-item label="总资产" prop="totalAssets">
<el-input v-model="form.totalAssets" placeholder="请输入总资产" />
</el-form-item>
<el-form-item label="当日盈亏" prop="profit">
<el-input v-model="form.profit" placeholder="请输入当日盈亏" />
</el-form-item>
<el-form-item label="当日净资产盈亏比例" prop="assetsDiff">
<el-input v-model="form.assetsDiff" placeholder="请输入当日净资产盈亏比例" />
</el-form-item>
<el-form-item label="当日总资产盈亏比例" prop="totalDiff">
<el-input v-model="form.totalDiff" placeholder="请输入当日总资产盈亏比例" />
</el-form-item>
<el-form-item label="用户id" prop="userId">
<el-input v-model="form.userId" placeholder="请输入用户id" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listAccount, getAccount, delAccount, addAccount, updateAccount } from "@/api/booksystem/account";
export default {
name: "Account",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
accountList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
tradeDay: null,
weekDay: null,
assets: null,
totalAssets: null,
profit: null,
assetsDiff: null,
totalDiff: null,
userId: null
},
//
form: {},
//
rules: {
},
//
weekOptions :['周日','周一', '周二', '周三', '周四', '周五', '周六'],
checkedWeek: [],
};
},
created() {
this.getList();
},
methods: {
/** 查询交易账户列表 */
getList() {
this.loading = true;
listAccount(this.queryParams).then(response => {
this.accountList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
tradeDay: null,
weekDay: null,
assets: null,
totalAssets: null,
profit: null,
assetsDiff: null,
totalDiff: null,
userId: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加交易账户";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAccount(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改交易账户";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateAccount(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAccount(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除交易账户编号为"' + ids + '"的数据项?').then(function() {
return delAccount(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('booksystem/account/export', {
...this.queryParams
}, `account_${new Date().getTime()}.xlsx`)
},
handleChange(value)
{
let currentDate = new Date(this.queryParams.tradeDay);
const getWeek = currentDate.getDay();
const weekArr=['周日','周一', '周二', '周三', '周四', '周五', '周六']
if(!value) return
let week = weekArr[getWeek]
this.form.weekDay = week;
console.log(' to handleDateChange week is: ',week)
},
}
};
</script>

@ -0,0 +1,435 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="股票代码" prop="code">
<el-input
v-model="queryParams.code"
placeholder="请输入股票代码"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="股票名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入股票名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="交易日期" prop="tradeDay">
<el-date-picker clearable size="small"
v-model="queryParams.tradeDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择交易日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['booksystem:operations:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['booksystem:operations:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['booksystem:operations:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['booksystem:operations:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="operationsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="股票代码" align="center" prop="code" />
<el-table-column label="股票名称" align="center" prop="name" />
<el-table-column label="交易日期" align="center" prop="tradeDay" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.tradeDay, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="星期" align="center" prop="weekDay" width="180"/>
<el-table-column label="操作" align="center" prop="operate" />
<el-table-column label="交易价格" align="center" prop="dealPrice" />
<el-table-column label="成交量" align="center" prop="volumn" />
<el-table-column label="成交额" align="center" prop="amount" />
<el-table-column label="印花税" align="center" prop="tax" />
<el-table-column label="手续费" align="center" prop="fee" />
<el-table-column label="其他费用" align="center" prop="other" />
<el-table-column label="操作时涨跌" align="center" prop="operateDiff" />
<el-table-column label="关联操作id" align="center" prop="preId" />
<el-table-column label="操作逻辑" align="center" prop="dealLogic" />
<el-table-column label="备注" align="center" prop="bz" />
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['booksystem:operations:edit']"-->
<!-- >修改</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['booksystem:operations:remove']"-->
<!-- >删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改当日操作对话框 -->
<el-dialog :title="title" :visible.sync="open" width="70%" append-to-body :before-close="handleClose">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col span="8">
<el-form-item label="股票代码" prop="code">
<el-input v-model="form.code" placeholder="请输入股票代码" />
</el-form-item>
</el-col>
<el-col span="8">
<el-form-item label="股票名称" prop="name">
<el-input v-model="form.name" placeholder="请输入股票名称" />
</el-form-item>
</el-col>
<el-col span="8">
<el-form-item label="交易日期" prop="tradeDay">
<el-date-picker clearable size="small"
@change="handleChange"
v-model="form.tradeDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择交易日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="8">
<el-form-item label="操作" prop="operate">
<el-select v-model="form.operate" placeholder="请输入操作">
<el-option
v-for="item in operate_options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col span="8">
<el-form-item label="交易价格" prop="dealPrice">
<el-input v-model="form.dealPrice" placeholder="请输入交易价格" />
</el-form-item>
</el-col>
<el-col span="8">
<el-form-item label="成交量" prop="volumn">
<el-input v-model="form.volumn" placeholder="请输入成交量" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="8">
<el-form-item label="成交额" prop="amount">
<el-input v-model="form.amount" placeholder="请输入成交额" />
</el-form-item>
</el-col>
<el-col span="8">
<el-form-item label="印花税" prop="tax">
<el-input v-model="form.tax" placeholder="请输入印花税" />
</el-form-item>
</el-col>
<el-col span="8">
<el-form-item label="手续费" prop="fee">
<el-input v-model="form.fee" placeholder="请输入手续费" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="8">
<el-form-item label="其他费用" prop="other">
<el-input v-model="form.other" placeholder="请输入其他费用" />
</el-form-item>
</el-col>
<el-col span="8">
<el-form-item label="操作时涨跌" prop="operateDiff">
<el-input v-model="form.operateDiff" placeholder="请输入操作时涨跌" />
</el-form-item>
</el-col>
<el-col span="8">
<el-form-item label="关联操作id" prop="preId">
<el-input v-model="form.preId" placeholder="请输入关联操作id" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="24">
<el-form-item label="操作逻辑" prop="dealLogic">
<el-input v-model="form.dealLogic" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col span="24">
<el-form-item label="备注" prop="bz">
<el-input v-model="form.bz" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listOperations, getOperations, delOperations, addOperations, updateOperations } from "@/api/booksystem/operations";
export default {
name: "Operations",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
operationsList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
code: null,
name: null,
tradeDay: null,
weekDay: null,
operate: null,
dealPrice: null,
volumn: null,
amount: null,
tax: null,
fee: null,
other: null,
operateDiff: null,
preId: null,
userId: null,
dealLogic: null,
bz: null
},
//
form: {},
//
rules: {
code: [
{ required: true, message: "股票代码不能为空", trigger: "blur" }
],
operate: [
{ required: true, message: "操作不能为空", trigger: "blur" }
],
},
//
operate_options: [{
value: '买入',
label: '买入'
}, {
value: '卖出',
label: '卖出'
}],
};
},
created() {
this.getList();
},
methods: {
/** 查询当日操作列表 */
getList() {
this.loading = true;
listOperations(this.queryParams).then(response => {
this.operationsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
code: null,
name: null,
tradeDay: null,
weekDay: null,
operate: null,
dealPrice: null,
volumn: null,
amount: null,
tax: null,
fee: null,
other: null,
operateDiff: null,
preId: null,
userId: null,
dealLogic: null,
bz: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加当日操作";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getOperations(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改当日操作";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateOperations(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addOperations(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除当日操作编号为"' + ids + '"的数据项?').then(function() {
return delOperations(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('booksystem/operations/export', {
...this.queryParams
}, `operations_${new Date().getTime()}.xlsx`)
},
//
handleChange(value)
{
let currentDate = new Date(this.queryParams.tradeDay);
const getWeek = currentDate.getDay();
const weekArr=['周日','周一', '周二', '周三', '周四', '周五', '周六']
if(!value) return
let week = weekArr[getWeek]
this.form.weekDay = week;
console.log(' to handleDateChange week is: ',week)
},
//
handleClose(done) {
this.$confirm('确认退出添加操作吗?')
.then(_ => {
done();
})
.catch(_ => {});
}
}
};
</script>

@ -0,0 +1,332 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="股票代码" prop="code">
<el-input
v-model="queryParams.code"
placeholder="请输入股票代码"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="股票名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入股票名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="交易日期" prop="tradeDay">
<el-date-picker clearable size="small"
v-model="queryParams.tradeDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择交易日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['booksystem:statisticremain:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['booksystem:statisticremain:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['booksystem:statisticremain:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['booksystem:statisticremain:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="statisticremainList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="股票代码" align="center" prop="code" />
<el-table-column label="股票名称" align="center" prop="name" />
<el-table-column label="交易日期" align="center" prop="tradeDay" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.tradeDay, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="星期" align="center" prop="weekDay" />
<el-table-column label="总盈亏" align="center" prop="totalProfit" />
<el-table-column label="总盈亏比例" align="center" prop="totalDiff" />
<el-table-column label="总盈亏占整体盈亏比例" align="center" prop="totalDiffOverall" />
<el-table-column label="剩余数量" align="center" prop="remaining" />
<el-table-column label="备注" align="center" prop="bz" />
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['booksystem:statisticremain:edit']"-->
<!-- >修改</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['booksystem:statisticremain:remove']"-->
<!-- >删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改当日持仓统计对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="股票代码" prop="code">
<el-input v-model="form.code" placeholder="请输入股票代码" />
</el-form-item>
<el-form-item label="股票名称" prop="name">
<el-input v-model="form.name" placeholder="请输入股票名称" />
</el-form-item>
<el-form-item label="交易日期" prop="tradeDay">
<el-date-picker clearable size="small"
v-model="form.tradeDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择交易日期">
</el-date-picker>
</el-form-item>
<el-form-item label="交易日星期" prop="weekDay">
<el-date-picker clearable size="small"
v-model="form.weekDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择交易日星期">
</el-date-picker>
</el-form-item>
<el-form-item label="总盈亏" prop="totalProfit">
<el-input v-model="form.totalProfit" placeholder="请输入总盈亏" />
</el-form-item>
<el-form-item label="总盈亏比例" prop="totalDiff">
<el-input v-model="form.totalDiff" placeholder="请输入总盈亏比例" />
</el-form-item>
<el-form-item label="总盈亏占整体盈亏比例" prop="totalDiffOverall">
<el-input v-model="form.totalDiffOverall" placeholder="请输入总盈亏占整体盈亏比例" />
</el-form-item>
<el-form-item label="剩余数量" prop="remaining">
<el-input v-model="form.remaining" placeholder="请输入剩余数量" />
</el-form-item>
<el-form-item label="用户id" prop="userId">
<el-input v-model="form.userId" placeholder="请输入用户id" />
</el-form-item>
<el-form-item label="备注" prop="bz">
<el-input v-model="form.bz" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listStatisticremain, getStatisticremain, delStatisticremain, addStatisticremain, updateStatisticremain } from "@/api/booksystem/statisticremain";
export default {
name: "Statisticremain",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
statisticremainList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
code: null,
name: null,
tradeDay: null,
weekDay: null,
totalProfit: null,
totalDiff: null,
totalDiffOverall: null,
remaining: null,
userId: null,
bz: null
},
//
form: {},
//
rules: {
code: [
{ required: true, message: "股票代码不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询当日持仓统计列表 */
getList() {
this.loading = true;
listStatisticremain(this.queryParams).then(response => {
this.statisticremainList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
code: null,
name: null,
tradeDay: null,
weekDay: null,
totalProfit: null,
totalDiff: null,
totalDiffOverall: null,
remaining: null,
userId: null,
bz: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加当日持仓统计";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getStatisticremain(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改当日持仓统计";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateStatisticremain(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addStatisticremain(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除当日持仓统计编号为"' + ids + '"的数据项?').then(function() {
return delStatisticremain(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('booksystem/statisticremain/export', {
...this.queryParams
}, `statisticremain_${new Date().getTime()}.xlsx`)
}
}
};
</script>

@ -0,0 +1,317 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="股票代码" prop="code">
<el-input
v-model="queryParams.code"
placeholder="请输入股票代码"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="股票名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入股票名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="交易日期" prop="tradeDay">
<el-date-picker clearable size="small"
v-model="queryParams.tradeDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择交易日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['booksystem:statistics:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['booksystem:statistics:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['booksystem:statistics:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['booksystem:statistics:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="statisticsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="股票代码" align="center" prop="code" />
<el-table-column label="股票名称" align="center" prop="name" />
<el-table-column label="交易日期" align="center" prop="tradeDay" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.tradeDay, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="星期" align="center" prop="weekDay" />
<el-table-column label="操作id" align="center" prop="operationsId" />
<el-table-column label="当笔当日盈亏" align="center" prop="profit" />
<el-table-column label="当笔当日盈亏盈亏比例" align="center" prop="diff" />
<el-table-column label="操作id" align="center" prop="operateionId" />
<el-table-column label="备注" align="center" prop="bz" />
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改单笔操作统计对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="股票代码" prop="code">
<el-input v-model="form.code" placeholder="请输入股票代码" />
</el-form-item>
<el-form-item label="股票名称" prop="name">
<el-input v-model="form.name" placeholder="请输入股票名称" />
</el-form-item>
<el-form-item label="交易日期" prop="tradeDay">
<el-date-picker clearable size="small"
v-model="form.tradeDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择交易日期">
</el-date-picker>
</el-form-item>
<el-form-item label="交易日星期" prop="weekDay">
<el-date-picker clearable size="small"
v-model="form.weekDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择交易日星期">
</el-date-picker>
</el-form-item>
<el-form-item label="操作id" prop="operationsId">
<el-input v-model="form.operationsId" placeholder="请输入操作id" />
</el-form-item>
<el-form-item label="当笔当日盈亏" prop="profit">
<el-input v-model="form.profit" placeholder="请输入当笔当日盈亏" />
</el-form-item>
<el-form-item label="当笔当日盈亏盈亏比例" prop="diff">
<el-input v-model="form.diff" placeholder="请输入当笔当日盈亏盈亏比例" />
</el-form-item>
<el-form-item label="操作id" prop="operateionId">
<el-input v-model="form.operateionId" placeholder="请输入操作id" />
</el-form-item>
<el-form-item label="用户id" prop="userId">
<el-input v-model="form.userId" placeholder="请输入用户id" />
</el-form-item>
<el-form-item label="备注" prop="bz">
<el-input v-model="form.bz" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listStatistics, getStatistics, delStatistics, addStatistics, updateStatistics } from "@/api/booksystem/statistics";
export default {
name: "Statistics",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
statisticsList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
code: null,
name: null,
tradeDay: null,
weekDay: null,
operationsId: null,
profit: null,
diff: null,
operateionId: null,
userId: null,
bz: null
},
//
form: {},
//
rules: {
code: [
{ required: true, message: "股票代码不能为空", trigger: "blur" }
],
operationsId: [
{ required: true, message: "操作id不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询单笔操作统计列表 */
getList() {
this.loading = true;
listStatistics(this.queryParams).then(response => {
this.statisticsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
code: null,
name: null,
tradeDay: null,
weekDay: null,
operationsId: null,
profit: null,
diff: null,
operateionId: null,
userId: null,
bz: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加单笔操作统计";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getStatistics(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改单笔操作统计";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateStatistics(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addStatistics(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除单笔操作统计编号为"' + ids + '"的数据项?').then(function() {
return delStatistics(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('booksystem/statistics/export', {
...this.queryParams
}, `statistics_${new Date().getTime()}.xlsx`)
}
}
};
</script>

@ -0,0 +1,380 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="股票代码" prop="code">
<el-input
v-model="queryParams.code"
placeholder="请输入股票代码"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="股票名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入股票名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="建仓交易日期" prop="startTradeDay">
<el-date-picker clearable size="small"
v-model="queryParams.startTradeDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择建仓交易日期">
</el-date-picker>
</el-form-item>
<el-form-item label="清仓交易日星期" prop="endTradeDay">
<el-date-picker clearable size="small"
v-model="queryParams.endTradeDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择清仓交易日星期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['booksystem:statistictotal:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['booksystem:statistictotal:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['booksystem:statistictotal:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['booksystem:statistictotal:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="statistictotalList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="股票代码" align="center" prop="code" />
<el-table-column label="股票名称" align="center" prop="name" />
<el-table-column label="建仓交易日期" align="center" prop="startTradeDay" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.startTradeDay, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="清仓交易日星期" align="center" prop="endTradeDay" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.endTradeDay, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="总盈亏" align="center" prop="totalProfit" />
<el-table-column label="总盈亏比例" align="center" prop="totalDiff" />
<el-table-column label="建仓交易价格" align="center" prop="startPrice" />
<el-table-column label="建仓交易价格" align="center" prop="endPrice" />
<el-table-column label="总成交量" align="center" prop="volumnTotal" />
<el-table-column label="总成交额" align="center" prop="amountTotal" />
<el-table-column label="交易次数" align="center" prop="operateTimes" />
<el-table-column label="总手续费" align="center" prop="fee" />
<el-table-column label="总印花税" align="center" prop="tax" />
<el-table-column label="总其他费用" align="center" prop="other" />
<el-table-column label="备注" align="center" prop="bz" />
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['booksystem:statistictotal:edit']"-->
<!-- >修改</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['booksystem:statistictotal:remove']"-->
<!-- >删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改统计当日持仓对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="股票代码" prop="code">
<el-input v-model="form.code" placeholder="请输入股票代码" />
</el-form-item>
<el-form-item label="股票名称" prop="name">
<el-input v-model="form.name" placeholder="请输入股票名称" />
</el-form-item>
<el-form-item label="建仓交易日期" prop="startTradeDay">
<el-date-picker clearable size="small"
v-model="form.startTradeDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择建仓交易日期">
</el-date-picker>
</el-form-item>
<el-form-item label="清仓交易日星期" prop="endTradeDay">
<el-date-picker clearable size="small"
v-model="form.endTradeDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择清仓交易日星期">
</el-date-picker>
</el-form-item>
<el-form-item label="总盈亏" prop="totalProfit">
<el-input v-model="form.totalProfit" placeholder="请输入总盈亏" />
</el-form-item>
<el-form-item label="总盈亏比例" prop="totalDiff">
<el-input v-model="form.totalDiff" placeholder="请输入总盈亏比例" />
</el-form-item>
<el-form-item label="建仓交易价格" prop="startPrice">
<el-input v-model="form.startPrice" placeholder="请输入建仓交易价格" />
</el-form-item>
<el-form-item label="建仓交易价格" prop="endPrice">
<el-input v-model="form.endPrice" placeholder="请输入建仓交易价格" />
</el-form-item>
<el-form-item label="总成交量" prop="volumnTotal">
<el-input v-model="form.volumnTotal" placeholder="请输入总成交量" />
</el-form-item>
<el-form-item label="总成交额" prop="amountTotal">
<el-input v-model="form.amountTotal" placeholder="请输入总成交额" />
</el-form-item>
<el-form-item label="交易次数" prop="operateTimes">
<el-input v-model="form.operateTimes" placeholder="请输入交易次数" />
</el-form-item>
<el-form-item label="总手续费" prop="fee">
<el-input v-model="form.fee" placeholder="请输入总手续费" />
</el-form-item>
<el-form-item label="总印花税" prop="tax">
<el-input v-model="form.tax" placeholder="请输入总印花税" />
</el-form-item>
<el-form-item label="总其他费用" prop="other">
<el-input v-model="form.other" placeholder="请输入总其他费用" />
</el-form-item>
<el-form-item label="用户id" prop="userId">
<el-input v-model="form.userId" placeholder="请输入用户id" />
</el-form-item>
<el-form-item label="备注" prop="bz">
<el-input v-model="form.bz" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listStatistictotal, getStatistictotal, delStatistictotal, addStatistictotal, updateStatistictotal } from "@/api/booksystem/statistictotal";
export default {
name: "Statistictotal",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
statistictotalList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
code: null,
name: null,
startTradeDay: null,
endTradeDay: null,
totalProfit: null,
totalDiff: null,
startPrice: null,
endPrice: null,
volumnTotal: null,
amountTotal: null,
operateTimes: null,
fee: null,
tax: null,
other: null,
userId: null,
bz: null
},
//
form: {},
//
rules: {
code: [
{ required: true, message: "股票代码不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询统计当日持仓列表 */
getList() {
this.loading = true;
listStatistictotal(this.queryParams).then(response => {
this.statistictotalList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
code: null,
name: null,
startTradeDay: null,
endTradeDay: null,
totalProfit: null,
totalDiff: null,
startPrice: null,
endPrice: null,
volumnTotal: null,
amountTotal: null,
operateTimes: null,
fee: null,
tax: null,
other: null,
userId: null,
bz: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加统计当日持仓";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getStatistictotal(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改统计当日持仓";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateStatistictotal(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addStatistictotal(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除统计当日持仓编号为"' + ids + '"的数据项?').then(function() {
return delStatistictotal(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('booksystem/statistictotal/export', {
...this.queryParams
}, `statistictotal_${new Date().getTime()}.xlsx`)
}
}
};
</script>

@ -246,6 +246,16 @@
<el-table-column label="10日区间涨跌幅" align="center" prop="differrange10" /> <el-table-column label="10日区间涨跌幅" align="center" prop="differrange10" />
<el-table-column label="20日区间涨跌幅" align="center" prop="differrange20" /> <el-table-column label="20日区间涨跌幅" align="center" prop="differrange20" />
<el-table-column label="60日区间涨跌幅" align="center" prop="differrange60" /> <el-table-column label="60日区间涨跌幅" align="center" prop="differrange60" />
<el-table-column label="3日区间涨跌幅" align="center" prop="differrange3" />
<el-table-column label="5日区间涨跌幅" align="center" prop="differrange5" />
<el-table-column label="15日区间涨跌幅" align="center" prop="differrange15" />
<el-table-column label="30日区间涨跌幅" align="center" prop="differrange30" />
<el-table-column label="10日区间最大回撤" align="center" prop="backdifferrange10" />
<el-table-column label="20日区间最大回撤" align="center" prop="backdifferrange20" />
<el-table-column label="60日区间最大回撤" align="center" prop="backdifferrange60" />
<el-table-column label="是否创新高" align="center" prop="isHigh" />
<el-table-column label="是否创新低" align="center" prop="isLow" />
<el-table-column label="排名" align="center" prop="sort" />
<el-table-column label="20日区间平均成交量" align="center" prop="avgVolume20" /> <el-table-column label="20日区间平均成交量" align="center" prop="avgVolume20" />
<el-table-column label="自由流通市值" align="center" prop="freefloatMarketValue" /> <el-table-column label="自由流通市值" align="center" prop="freefloatMarketValue" />
<el-table-column label="总市值" align="center" prop="totalMarketValue" /> <el-table-column label="总市值" align="center" prop="totalMarketValue" />
@ -319,6 +329,36 @@
<el-form-item label="60日区间涨跌幅" prop="differrange60"> <el-form-item label="60日区间涨跌幅" prop="differrange60">
<el-input v-model="form.differrange60" placeholder="请输入60日区间涨跌幅" /> <el-input v-model="form.differrange60" placeholder="请输入60日区间涨跌幅" />
</el-form-item> </el-form-item>
<el-form-item label="3日区间涨跌幅" prop="differrange3">
<el-input v-model="form.differrange3" placeholder="请输入3日区间涨跌幅" />
</el-form-item>
<el-form-item label="5日区间涨跌幅" prop="differrange5">
<el-input v-model="form.differrange5" placeholder="请输入5日区间涨跌幅" />
</el-form-item>
<el-form-item label="15日区间涨跌幅" prop="differrange15">
<el-input v-model="form.differrange15" placeholder="请输入15日区间涨跌幅" />
</el-form-item>
<el-form-item label="30日区间涨跌幅" prop="differrange30">
<el-input v-model="form.differrange30" placeholder="请输入30日区间涨跌幅" />
</el-form-item>
<el-form-item label="10日区间最大回撤" prop="backdifferrange10">
<el-input v-model="form.backdifferrange10" placeholder="请输入10日区间最大回撤" />
</el-form-item>
<el-form-item label="20日区间最大回撤" prop="backdifferrange20">
<el-input v-model="form.backdifferrange20" placeholder="请输入20日区间最大回撤" />
</el-form-item>
<el-form-item label="60日区间最大回撤" prop="backdifferrange60">
<el-input v-model="form.backdifferrange60" placeholder="请输入60日区间最大回撤" />
</el-form-item>
<el-form-item label="是否创新高" prop="isHigh">
<el-input v-model="form.isHigh" placeholder="请输入是否创新高" />
</el-form-item>
<el-form-item label="是否创新低" prop="isLow">
<el-input v-model="form.isLow" placeholder="请输入是否创新低" />
</el-form-item>
<el-form-item label="排名" prop="sort">
<el-input v-model="form.sort" placeholder="请输入排名" />
</el-form-item>
<el-form-item label="20日区间平均成交量" prop="avgVolume20"> <el-form-item label="20日区间平均成交量" prop="avgVolume20">
<el-input v-model="form.avgVolume20" placeholder="请输入20日区间平均成交量" /> <el-input v-model="form.avgVolume20" placeholder="请输入20日区间平均成交量" />
</el-form-item> </el-form-item>
@ -554,6 +594,16 @@ export default {
differrange10: null, differrange10: null,
differrange20: null, differrange20: null,
differrange60: null, differrange60: null,
differrange3: null,
differrange5: null,
differrange15: null,
differrange30: null,
backdifferrange10: null,
backdifferrange20: null,
backdifferrange60: null,
isHigh: null,
isLow: null,
sort: null,
avgVolume20: null, avgVolume20: null,
freefloatMarketValue: null, freefloatMarketValue: null,
totalMarketValue: null, totalMarketValue: null,

@ -0,0 +1,22 @@
-- 菜单 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('交易账户', '2123', '1', 'account', 'booksystem/account/index', 1, 0, 'C', '0', '0', 'booksystem:account:list', '#', 'admin', sysdate(), '', null, '交易账户菜单');
-- 按钮父菜单ID
SELECT @parentId := LAST_INSERT_ID();
-- 按钮 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('交易账户查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', 'booksystem:account:query', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('交易账户新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', 'booksystem:account:add', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('交易账户修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', 'booksystem:account:edit', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('交易账户删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', 'booksystem:account:remove', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('交易账户导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', 'booksystem:account:export', '#', 'admin', sysdate(), '', null, '');

@ -0,0 +1,37 @@
/*
Navicat Premium Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 80022
Source Host : localhost:3306
Source Schema : ry
Target Server Type : MySQL
Target Server Version : 80022
File Encoding : 65001
Date: 07/04/2022 13:49:59
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for account 账户表;盘后统计或查询时统计
-- ----------------------------
DROP TABLE IF EXISTS `account`;
CREATE TABLE `account` (
`id` double NOT NULL AUTO_INCREMENT,
`trade_day` date NULL DEFAULT NULL COMMENT '交易日期',
`week_day` date NULL DEFAULT NULL COMMENT '交易日星期',
`assets` decimal(50, 2) NULL DEFAULT NULL COMMENT '净资产',
`total_assets` decimal(50, 2) NULL DEFAULT NULL COMMENT '总资产',
`profit` decimal(50, 2) NULL DEFAULT NULL COMMENT '当日盈亏',
`assets_diff` decimal(50, 2) NULL DEFAULT NULL COMMENT '当日净资产盈亏比例',
`total_diff` decimal(50, 2) NULL DEFAULT NULL COMMENT '当日总资产盈亏比例',
`user_id` bigint NULL DEFAULT NULL COMMENT '用户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '账户表' ROW_FORMAT = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;

@ -0,0 +1,47 @@
/*
Navicat Premium Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 80022
Source Host : localhost:3306
Source Schema : ry
Target Server Type : MySQL
Target Server Version : 80022
File Encoding : 65001
Date: 07/04/2022 13:49:59
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for operations 操作表
-- ----------------------------
DROP TABLE IF EXISTS `operations`;
CREATE TABLE `operations` (
`id` double NOT NULL AUTO_INCREMENT,
`code` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票代码',
`name` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '股票名称',
`trade_day` date NULL DEFAULT NULL COMMENT '交易日期',
`week_day` date NULL DEFAULT NULL COMMENT '交易日星期',
`operate` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '操作(含账户转入转出)',
`deal_price` decimal(50, 2) NULL DEFAULT NULL COMMENT '交易价格',
`volumn` decimal(50, 0) NULL DEFAULT NULL COMMENT '成交量',
`amount` decimal(50, 2) NULL DEFAULT NULL COMMENT '成交额',
`tax` decimal(50, 2) NULL DEFAULT NULL COMMENT '印花税',
`fee` decimal(50, 2) NULL DEFAULT NULL COMMENT '手续费',
`other` decimal(50, 2) NULL DEFAULT NULL COMMENT '其他费用',
`operate_diff` decimal(50, 2) NULL DEFAULT NULL COMMENT '操作时涨跌',
`pre_id` double NULL DEFAULT NULL COMMENT '关联操作id',
`user_id` bigint NULL DEFAULT NULL COMMENT '用户id',
`deal_logic` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '操作逻辑',
`bz` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '备注',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '操作表' ROW_FORMAT = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;

@ -0,0 +1,42 @@
/*
Navicat Premium Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 80022
Source Host : localhost:3306
Source Schema : ry
Target Server Type : MySQL
Target Server Version : 80022
File Encoding : 65001
Date: 07/04/2022 13:49:59
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for account_book 统计表单笔操作;清仓时统计,查询时统计,盘后统计;为当前持仓股
-- ----------------------------
DROP TABLE IF EXISTS `statistics`;
CREATE TABLE `statistics` (
`id` double NOT NULL AUTO_INCREMENT,
`code` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票代码',
`name` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '股票名称',
`trade_day` date NULL DEFAULT NULL COMMENT '交易日期',
`week_day` date NULL DEFAULT NULL COMMENT '交易日星期',
`operations_id` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '操作id',
`profit` decimal(50, 2) NULL DEFAULT NULL COMMENT '当笔当日盈亏',
`diff` decimal(50, 0) NULL DEFAULT NULL COMMENT '当笔当日盈亏盈亏比例',
`operateion_id` double NULL DEFAULT NULL COMMENT '操作id',
`user_id` bigint NULL DEFAULT NULL COMMENT '用户id',
`bz` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '备注',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '交易记统计表单笔操作' ROW_FORMAT = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;

@ -0,0 +1,40 @@
/*
Navicat Premium Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 80022
Source Host : localhost:3306
Source Schema : ry
Target Server Type : MySQL
Target Server Version : 80022
File Encoding : 65001
Date: 07/04/2022 13:49:59
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for account_book 统计表当日持仓,包含当日清仓;清仓时统计,查询时统计,盘后统计;为当前持仓股
-- ----------------------------
DROP TABLE IF EXISTS `statistics_remain`;
CREATE TABLE `statistics_remain` (
`id` double NOT NULL AUTO_INCREMENT,
`code` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票代码',
`name` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '股票名称',
`trade_day` date NULL DEFAULT NULL COMMENT '交易日期',
`week_day` date NULL DEFAULT NULL COMMENT '交易日星期',
`total_profit` decimal(50, 2) NULL DEFAULT NULL COMMENT '总盈亏',
`total_diff` decimal(50, 2) NULL DEFAULT NULL COMMENT '总盈亏比例',
`total_diff_overall` decimal(50, 2) NULL DEFAULT NULL COMMENT '总盈亏占整体盈亏比例',
`remaining` decimal(50, 2) NULL DEFAULT NULL COMMENT '剩余数量',
`user_id` bigint NULL DEFAULT NULL COMMENT '用户id',
`bz` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '备注',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '统计表当日持仓' ROW_FORMAT = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;

@ -0,0 +1,46 @@
/*
Navicat Premium Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 80022
Source Host : localhost:3306
Source Schema : ry
Target Server Type : MySQL
Target Server Version : 80022
File Encoding : 65001
Date: 07/04/2022 13:49:59
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for account_book 统计表清仓后操作
-- ----------------------------
DROP TABLE IF EXISTS `statistics_total`;
CREATE TABLE `statistics_total` (
`id` double NOT NULL AUTO_INCREMENT,
`code` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票代码',
`name` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '股票名称',
`start_trade_day` date NULL DEFAULT NULL COMMENT '建仓交易日期',
`end_trade_day` date NULL DEFAULT NULL COMMENT '清仓交易日星期',
`total_profit` decimal(50, 2) NULL DEFAULT NULL COMMENT '总盈亏',
`total_diff` decimal(50, 2) NULL DEFAULT NULL COMMENT '总盈亏比例',
`start_price` decimal(50, 2) NULL DEFAULT NULL COMMENT '建仓交易价格',
`end_price` decimal(50, 2) NULL DEFAULT NULL COMMENT '建仓交易价格',
`volumn_total` decimal(50, 0) NULL DEFAULT NULL COMMENT '总成交量',
`amount_total` decimal(50, 2) NULL DEFAULT NULL COMMENT '总成交额',
`operate_times` decimal(50, 2) NULL DEFAULT NULL COMMENT '交易次数',
`fee` decimal(50, 2) NULL DEFAULT NULL COMMENT '总手续费',
`tax` decimal(50, 2) NULL DEFAULT NULL COMMENT '总印花税',
`other` decimal(50, 2) NULL DEFAULT NULL COMMENT '总其他费用',
`user_id` bigint NULL DEFAULT NULL COMMENT '用户id',
`bz` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '备注',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '统计表当日持仓' ROW_FORMAT = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;

@ -0,0 +1,22 @@
-- 菜单 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('当日持仓统计', '2123', '1', 'statisticremain', 'booksystem/statisticremain/index', 1, 0, 'C', '0', '0', 'booksystem:statisticremain:list', '#', 'admin', sysdate(), '', null, '当日持仓统计菜单');
-- 按钮父菜单ID
SELECT @parentId := LAST_INSERT_ID();
-- 按钮 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('当日持仓统计查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', 'booksystem:statisticremain:query', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('当日持仓统计新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', 'booksystem:statisticremain:add', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('当日持仓统计修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', 'booksystem:statisticremain:edit', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('当日持仓统计删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', 'booksystem:statisticremain:remove', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('当日持仓统计导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', 'booksystem:statisticremain:export', '#', 'admin', sysdate(), '', null, '');

@ -959,7 +959,7 @@ public class StocksController extends BaseController
break; break;
} }
} }
stocksService.insertStocksTmp(stocks1); stocksService.insertStocks(stocks1);
} }
} }
System.out.println("testAnalysis finished."); System.out.println("testAnalysis finished.");
@ -1033,7 +1033,7 @@ public class StocksController extends BaseController
break; break;
} }
} }
stocksService.insertStocksTmp(stocks1); stocksService.insertStocks(stocks1);
} }
System.out.println("testAnalysis finished."); System.out.println("testAnalysis finished.");
} }

@ -124,6 +124,30 @@ public class Stocks extends BaseEntity
@Excel(name = "是否跌停") @Excel(name = "是否跌停")
private String isdrop; private String isdrop;
/** 是否300天新高 */
@Excel(name = "近期创阶段新高")
private String isHigh;
/** 是否300天新低 */
@Excel(name = "近期创阶段新低")
private String isLow;
/** 10日区间最大回撤 */
@Excel(name = "10日区间最大回撤")
private BigDecimal backdifferrange10;
/** 20日区间最大回撤 */
@Excel(name = "20日区间最大回撤")
private BigDecimal backdifferrange20;
/** 60日区间最大回撤 */
@Excel(name = "60日区间最大回撤")
private BigDecimal backdifferrange60;
/** 排名 */
@Excel(name = "排名")
private Long sort;
private int blemindCount; private int blemindCount;
/** 扩展字段1查询板块数据是板块内数量 */ /** 扩展字段1查询板块数据是板块内数量 */
@ -302,6 +326,63 @@ public class Stocks extends BaseEntity
{ {
return isdrop; return isdrop;
} }
public void setIsHigh(String isHigh)
{
this.isHigh = isHigh;
}
public String getIsHigh()
{
return isHigh;
}
public void setIsLow(String isLow)
{
this.isLow = isLow;
}
public String getIsLow()
{
return isLow;
}
public void setBackdifferrange10(BigDecimal backdifferrange10)
{
this.backdifferrange10 = backdifferrange10;
}
public BigDecimal getBackdifferrange10()
{
return backdifferrange10;
}
public void setBackdifferrange20(BigDecimal backdifferrange20)
{
this.backdifferrange20 = backdifferrange20;
}
public BigDecimal getBackdifferrange20()
{
return backdifferrange20;
}
public void setBackdifferrange60(BigDecimal backdifferrange60)
{
this.backdifferrange60 = backdifferrange60;
}
public BigDecimal getBackdifferrange60()
{
return backdifferrange60;
}
public void setSort(Long sort)
{
this.sort = sort;
}
public Long getSort()
{
return sort;
}
public void setDifferrange(BigDecimal differrange) public void setDifferrange(BigDecimal differrange)
{ {
this.differrange = differrange; this.differrange = differrange;
@ -516,10 +597,18 @@ public class Stocks extends BaseEntity
.append("differrange5", getDifferrange5()) .append("differrange5", getDifferrange5())
.append("differrange15", getDifferrange15()) .append("differrange15", getDifferrange15())
.append("differrange30", getDifferrange30()) .append("differrange30", getDifferrange30())
.append("backdifferrange10", getBackdifferrange10())
.append("backdifferrange20", getBackdifferrange20())
.append("backdifferrange60", getBackdifferrange60())
.append("avgVolume20", getAvgVolume20()) .append("avgVolume20", getAvgVolume20())
.append("freefloatMarketValue", getFreefloatMarketValue()) .append("freefloatMarketValue", getFreefloatMarketValue())
.append("totalMarketValue", getTotalMarketValue()) .append("totalMarketValue", getTotalMarketValue())
.append("agenciesHold", getAgenciesHold()) .append("agenciesHold", getAgenciesHold())
.append("islimit", getIslimit())
.append("isdrop", getIsdrop())
.append("isHigh", getIsHigh())
.append("isLow", getIsLow())
.append("sort", getSort())
.append("stockBasicList", getStockBasicList()) .append("stockBasicList", getStockBasicList())
.toString(); .toString();
} }

@ -86,13 +86,7 @@ public interface IStocksService
*/ */
public int insertStocks(Stocks stocks); public int insertStocks(Stocks stocks);
/**
* ,
*
* @param stocks
* @return
*/
public int insertStocksTmp(Stocks stocks);
/** /**
* *

@ -162,22 +162,6 @@ public class StocksServiceImpl implements IStocksService
return rows; return rows;
} }
/**
* ,
*
* @param stocks
* @return
*/
@Transactional
@Override
public int insertStocksTmp(Stocks stocks)
{
int rows = stocksMapper.insertStocksTmp(stocks);
//todo 需要更新基础数据
// insertStockBasic(stocks);
return rows;
}
/** /**
* *
* *
@ -399,6 +383,7 @@ public class StocksServiceImpl implements IStocksService
//已存在,不进行操作 //已存在,不进行操作
failureNum++; failureNum++;
failureMsg.append("<br/>" + failureNum + "、股票代码 " + stocks.getCode() + " 已存在"); failureMsg.append("<br/>" + failureNum + "、股票代码 " + stocks.getCode() + " 已存在");
} }
} }
catch (Exception e) catch (Exception e)
@ -449,8 +434,8 @@ public class StocksServiceImpl implements IStocksService
stocks.setTradeDay(tradeDay); stocks.setTradeDay(tradeDay);
this.insertStocks(stocks); this.insertStocks(stocks);
successNum++; successNum++;
System.out.println("<br/>" + successNum + "、股票代码 " + stocks.getCode() + " 导入成功"); System.out.println("<br/>", + successNum + "、股票代码 " + stocks.getCode() + " 导入成功");
successMsg.append("<br/>" + successNum + "、股票代码 " + stocks.getCode() + " 导入成功"); successMsg.append("<br/>", + successNum + "、股票代码 " + stocks.getCode() + " 导入成功");
} }
else if (isUpdateSupport) else if (isUpdateSupport)
{ {
@ -459,19 +444,19 @@ public class StocksServiceImpl implements IStocksService
// user.setUpdateBy(operName); // user.setUpdateBy(operName);
// this.updateUser(user); // this.updateUser(user);
// successNum++; // successNum++;
// successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 更新成功"); // successMsg.append("<br/>", + successNum + "、账号 " + user.getUserName() + " 更新成功");
} }
else else
{ {
//已存在,不进行操作 //已存在,不进行操作
failureNum++; failureNum++;
failureMsg.append("<br/>" + failureNum + "、股票代码 " + stocks.getCode() + " 已存在"); failureMsg.append("<br/>", + failureNum + "、股票代码 " + stocks.getCode() + " 已存在");
} }
} }
catch (Exception e) catch (Exception e)
{ {
failureNum++; failureNum++;
String msg = "<br/>" + failureNum + "、股票代码 " + stocks.getCode() + " 导入失败:"; String msg = "<br/>", + failureNum + "、股票代码 " + stocks.getCode() + " 导入失败:";
failureMsg.append(msg + e.getMessage()); failureMsg.append(msg + e.getMessage());
log.error(msg, e); log.error(msg, e);
}*/ }*/

@ -94,13 +94,7 @@ public interface StocksMapper
*/ */
public int insertStocks(Stocks stocks); public int insertStocks(Stocks stocks);
/**
* ,
*
* @param stocks
* @return
*/
public int insertStocksTmp(Stocks stocks);
/** /**
* *

@ -56,64 +56,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectStocksInTrendList" parameterType="StocksInTrend" resultMap="StocksInTrendResult"> <select id="selectStocksInTrendList" parameterType="StocksInTrend" resultMap="StocksInTrendResult">
<!-- <include refid="selectStocksInTrendVo"/>--> <!-- <include refid="selectStocksInTrendVo"/>-->
select sit.id as id, sit.code as code , sit.trade_day as trade_day, sit.sort as sort, sit.type as type, s.blemind2 as blemind2 , s.blemind3 as blemind3, s.`name` as name,sks.open as open,sks.close as close, sks.differrange as differrange ,sks.differrange10 as differrange10 , sks.differrange20 as differrange20 ,sks.differrange60 as differrange60,stm.differrange3 ,stm.differrange5,stm.differrange15,stm.differrange30 from stocks_in_trend sit, stock_basis s,stocks sks, stocks_tmp stm select s.id as id, s.code as code, s.trade_day as trade_day, s.sort as sort, s.type as type, s.blemind2 as blemind2, s.blemind3 as blemind3, s.name as name, s.open as open, s.close as close, s.differrange as differrange, s.differrange10 as differrange10, s.differrange20 as differrange20, s.differrange60 as differrange60, s.differrange3 as differrange3, s.differrange5 as differrange5, s.differrange15 as differrange15, s.differrange30 as differrange30 from stocks s
<where> <where>
sit.`code` = s.`code` and sit.`code` = sks.`code` and sks.`code` = stm.`code` and stm.trade_day = sks.trade_day and sks.trade_day = sit.trade_day <if test="code != null and code != ''"> and s.code = #{code}</if>
<if test="code != null and code != ''"> and sks.code = #{code}</if>
<if test="name != null and name != ''"> and s.name = #{name}</if> <if test="name != null and name != ''"> and s.name = #{name}</if>
<if test="blemind2 != null and blemind2 != ''"> and s.blemind2 = #{blemind2}</if> <if test="blemind2 != null and blemind2 != ''"> and s.blemind2 = #{blemind2}</if>
<if test="blemind3 != null and blemind3 != ''"> and s.blemind3 = #{blemind3}</if> <if test="blemind3 != null and blemind3 != ''"> and s.blemind3 = #{blemind3}</if>
<if test="tradeDay != null "> and sks.trade_day = #{tradeDay}</if> <if test="tradeDay != null "> and s.trade_day = #{tradeDay}</if>
<if test="sort != null "> and sit.sort = #{sort}</if> <if test="sort != null "> and s.sort = #{sort}</if>
<if test="type != null and type != ''"> and sit.type = #{type}</if> <if test="type != null and type != ''"> and s.type = #{type}</if>
</where> </where>
ORDER BY sit.sort ASC ORDER BY s.sort ASC
</select> </select>
<select id="selectGroupStocksInTrendList" parameterType="Stocks" resultMap="StocksResult"> <select id="selectGroupStocksInTrendList" parameterType="Stocks" resultMap="StocksResult">
select blemind2 ,COUNT(blemind2) as blemind_count from (select s.code, sb.blemind2 as blemind2 from stocks_in_trend s, stock_basis sb WHERE s.`code` = sb.`code` and s.trade_day = #{tradeDay} and s.type=#{type}) temp GROUP BY blemind2 ORDER BY blemind_count DESC select blemind2 ,COUNT(blemind2) as blemind_count from stocks s WHERE s.trade_day = #{tradeDay} and s.type=#{type} GROUP BY blemind2 ORDER BY blemind_count DESC
</select> </select>
<select id="selectStocksInTrendById" parameterType="Long" resultMap="StocksInTrendResult"> <select id="selectStocksInTrendById" parameterType="Long" resultMap="StocksInTrendResult">
<include refid="selectStocksInTrendVo"/> select id, code, trade_day, sort, type, name, blemind2, blemind3, open, close, differrange, differrange10, differrange20, differrange60, differrange3, differrange5, differrange15, differrange30 from stocks where id = #{id}
where id = #{id}
</select> </select>
<insert id="insertStocksInTrend" parameterType="StocksInTrend" useGeneratedKeys="true" keyProperty="id">
insert into stocks_in_trend
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="code != null and code != ''">code,</if>
<if test="tradeDay != null">trade_day,</if>
<if test="sort != null">sort,</if>
<if test="type != null">type,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="code != null and code != ''">#{code},</if>
<if test="tradeDay != null">#{tradeDay},</if>
<if test="sort != null">#{sort},</if>
<if test="type != null">#{type},</if>
</trim>
</insert>
<update id="updateStocksInTrend" parameterType="StocksInTrend">
update stocks_in_trend
<trim prefix="SET" suffixOverrides=",">
<if test="code != null and code != ''">code = #{code},</if>
<if test="tradeDay != null">trade_day = #{tradeDay},</if>
<if test="sort != null">sort = #{sort},</if>
<if test="type != null">type = #{type},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteStocksInTrendById" parameterType="Long">
delete from stocks_in_trend where id = #{id}
</delete>
<delete id="deleteStocksInTrendByIds" parameterType="String">
delete from stocks_in_trend where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper> </mapper>

@ -15,7 +15,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectStocksLimitVo"> <sql id="selectStocksLimitVo">
select id, code, trade_day, islimit, isdrop from stocks_limit select id, code, trade_day, islimit, isdrop from stocks
</sql> </sql>
<select id="selectStocksLimitList" parameterType="StocksLimit" resultMap="StocksLimitResult"> <select id="selectStocksLimitList" parameterType="StocksLimit" resultMap="StocksLimitResult">
@ -33,46 +33,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where id = #{id} where id = #{id}
</select> </select>
<insert id="insertStocksLimit" parameterType="StocksLimit" useGeneratedKeys="true" keyProperty="id"> <select id="selectGroupStocksLimit" parameterType="Stocks" resultMap="StocksLimitResult">
insert into stocks_limit select blemind2 ,COUNT(blemind2) as blemindsCount from stocks
<trim prefix="(" suffix=")" suffixOverrides=","> where trade_day = #{tradeDay} and isdrop=#{isdrop} and islimit=#{islimit} GROUP BY blemind2 ORDER BY blemindsCount DESC limit 10;
<if test="code != null and code != ''">code,</if>
<if test="tradeDay != null">trade_day,</if>
<if test="islimit != null and islimit != ''">islimit,</if>
<if test="isdrop != null and isdrop != ''">isdrop,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="code != null and code != ''">#{code},</if>
<if test="tradeDay != null">#{tradeDay},</if>
<if test="islimit != null and islimit != ''">#{islimit},</if>
<if test="isdrop != null and isdrop != ''">#{isdrop},</if>
</trim>
</insert>
<update id="updateStocksLimit" parameterType="StocksLimit">
update stocks_limit
<trim prefix="SET" suffixOverrides=",">
<if test="code != null and code != ''">code = #{code},</if>
<if test="tradeDay != null">trade_day = #{tradeDay},</if>
<if test="islimit != null and islimit != ''">islimit = #{islimit},</if>
<if test="isdrop != null and isdrop != ''">isdrop = #{isdrop},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteStocksLimitById" parameterType="Long">
delete from stocks_limit where id = #{id}
</delete>
<delete id="deleteStocksLimitByIds" parameterType="String">
delete from stocks_limit where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="selectGroupStocksLimit" parameterType="StocksLimit" resultMap="StocksLimitResult">
select sb.blemind2 as blemind2 ,COUNT(blemind2) as blemindsCount from stocks_limit sl,stock_basis sb
where sl.`code` = sb.`code` and sl.trade_day = #{tradeDay} and sl.isdrop=#{isdrop} and sl.islimit=#{islimit} GROUP BY blemind2 ORDER BY blemindsCount DESC limit 10;
</select> </select>
</mapper> </mapper>

@ -19,6 +19,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="low" column="low" /> <result property="low" column="low" />
<result property="islimit" column="islimit" /> <result property="islimit" column="islimit" />
<result property="isdrop" column="isdrop" /> <result property="isdrop" column="isdrop" />
<result property="isHigh" column="isHigh" />
<result property="isLow" column="isLow" />
<result property="differrange" column="differrange" /> <result property="differrange" column="differrange" />
<result property="tradeDays" column="trade_days" /> <result property="tradeDays" column="trade_days" />
<result property="volumn" column="volumn" /> <result property="volumn" column="volumn" />
@ -30,14 +32,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="differrange5" column="differrange5" /> <result property="differrange5" column="differrange5" />
<result property="differrange15" column="differrange15" /> <result property="differrange15" column="differrange15" />
<result property="differrange30" column="differrange30" /> <result property="differrange30" column="differrange30" />
<result property="backdifferrange10" column="backdifferrange10" />
<result property="backdifferrange20" column="backdifferrange20" />
<result property="backdifferrange60" column="backdifferrange60" />
<result property="avgVolume20" column="avg_volume20" /> <result property="avgVolume20" column="avg_volume20" />
<result property="freefloatMarketValue" column="freefloat_market_value" /> <result property="freefloatMarketValue" column="freefloat_market_value" />
<result property="totalMarketValue" column="total_market_value" /> <result property="totalMarketValue" column="total_market_value" />
<result property="agenciesHold" column="agencies_hold" /> <result property="agenciesHold" column="agencies_hold" />
<result property="blemindCount" column="blemind_count" /> <result property="blemindCount" column="blemind_count" />
<result property="listdate" column="listdate" />
<result property="blemindsCount" column="blemindsCount" /> <result property="blemindsCount" column="blemindsCount" />
<result property="orderParam" column="orderParam" /> <result property="orderParam" column="orderParam" />
<result property="sort" column="sort" />
<result property="type" column="type" />
</resultMap> </resultMap>
<resultMap id="StocksStockBasicResult" type="Stocks" extends="StocksResult"> <resultMap id="StocksStockBasicResult" type="Stocks" extends="StocksResult">
@ -46,7 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectStocksVo"> <sql id="selectStocksVo">
select id, code, trade_day, open, close, differrange, trade_days, volumn, amount, differrange10, differrange20, differrange60, avg_volume20, freefloat_market_value, total_market_value, agencies_hold from stocks select id, code, trade_day, open, close, high, low, islimit, isdrop, isHigh, isLow, differrange, trade_days, volumn, amount, differrange10, differrange20, differrange60, differrange3, differrange5, differrange15, differrange30, backdifferrange10, backdifferrange20, backdifferrange60, sort, avg_volume20, freefloat_market_value, total_market_value, agencies_hold from stocks
</sql> </sql>
<select id="selectStocksList" parameterType="Stocks" resultMap="StocksResult"> <select id="selectStocksList" parameterType="Stocks" resultMap="StocksResult">
@ -80,11 +86,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
--> -->
<select id="selectStocksListB" parameterType="Stocks" resultMap="StocksResult"> <select id="selectStocksListB" parameterType="Stocks" resultMap="StocksResult">
select a.code , a.trade_day , a.open, a.close, a.differrange, a.trade_days, a.volumn, a.amount, a.differrange10, a.differrange20, a.differrange60, a.differrange3, a.differrange5, a.differrange15, a.differrange30, a.avg_volume20, a.freefloat_market_value, a.total_market_value, a.agencies_hold,b.name as name, b.blemind2 as blemind2, b.blemind3 as blemind3, b.listdate as listdate from select s.code , s.trade_day , s.open, s.close, s.differrange, s.trade_days, s.volumn, s.amount, s.differrange10, s.differrange20, s.differrange60, s.differrange3, s.differrange5, s.differrange15, s.differrange30, s.avg_volume20, s.freefloat_market_value, s.total_market_value, s.agencies_hold, b.name as name, b.blemind2 as blemind2, b.blemind3 as blemind3, b.listdate as listdate
(select s.code , s.trade_day , s.open, s.close, s.differrange, s.trade_days, s.volumn, s.amount, s.differrange10, s.differrange20, s.differrange60, st.differrange3, st.differrange5, st.differrange15, st.differrange30, s.avg_volume20, s.freefloat_market_value, s.total_market_value, s.agencies_hold from stocks s
from stocks s,stocks_tmp st where s.`code` = st.`code` and s.trade_day = st.trade_day) a left join stock_basis b on b.code = s.code
left join stock_basis b on b.code = a.code where s.trade_day = #{tradeDay}
where a.trade_day = #{tradeDay}
</select> </select>
<select id="selectStrongStocksList" parameterType="Stocks" resultMap="StocksResult"> <select id="selectStrongStocksList" parameterType="Stocks" resultMap="StocksResult">
@ -111,17 +116,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="selectStocksListSort" parameterType="Stocks" resultMap="StocksResult"> <select id="selectStocksListSort" parameterType="Stocks" resultMap="StocksResult">
select a.code , a.trade_day , a.open, a.close, a.differrange, a.trade_days, a.volumn, a.amount, a.differrange10, a.differrange20, a.differrange60, a.differrange3, a.differrange5, a.differrange15, a.differrange30, a.avg_volume20, a.freefloat_market_value, a.total_market_value, a.agencies_hold,b.name as name, b.blemind2 as blemind2, b.blemind3 as blemind3, b.listdate as listdate from select s.code , s.trade_day , s.open, s.close, s.differrange, s.trade_days, s.volumn, s.amount, s.differrange10, s.differrange20, s.differrange60, s.differrange3, s.differrange5, s.differrange15, s.differrange30, s.avg_volume20, s.freefloat_market_value, s.total_market_value, s.agencies_hold, b.name as name, b.blemind2 as blemind2, b.blemind3 as blemind3, b.listdate as listdate
(select s.code , s.trade_day , s.open, s.close, s.differrange, s.trade_days, s.volumn, s.amount, s.differrange10, s.differrange20, s.differrange60, st.differrange3, st.differrange5, st.differrange15, st.differrange30, s.avg_volume20, s.freefloat_market_value, s.total_market_value, s.agencies_hold from stocks s
from stocks s,stocks_tmp st where s.`code` = st.`code` and s.trade_day = st.trade_day) a left join stock_basis b on b.code = s.code
left join stock_basis b on b.code = a.code
<where> <where>
<if test="tradeDay != null "> and a.trade_day = #{tradeDay}</if> <if test="tradeDay != null "> and s.trade_day = #{tradeDay}</if>
<if test="tradeDays != null "> and a.trade_days >= #{tradeDays}</if> <if test="tradeDays != null "> and s.trade_days >= #{tradeDays}</if>
<if test="differrange10 != null "> and a.differrange10 = #{differrange10}</if> <if test="differrange10 != null "> and s.differrange10 = #{differrange10}</if>
<if test="differrange20 != null "> and a.differrange20 = #{differrange20}</if> <if test="differrange20 != null "> and s.differrange20 = #{differrange20}</if>
<if test="differrange60 != null "> and a.differrange60 = #{differrange60}</if> <if test="differrange60 != null "> and s.differrange60 = #{differrange60}</if>
<if test="agenciesHold != null "> and a.agencies_hold >= #{agenciesHold}</if> <if test="agenciesHold != null "> and s.agencies_hold >= #{agenciesHold}</if>
</where> </where>
order by ${orderParam} desc order by ${orderParam} desc
</select> </select>
@ -140,15 +144,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
--> -->
<select id="selectStocksById" parameterType="Long" resultMap="StocksStockBasicResult"> <select id="selectStocksById" parameterType="Long" resultMap="StocksStockBasicResult">
select a.code , a.trade_day , a.open, a.close, a.differrange, a.trade_days, a.volumn, a.amount, a.differrange10, a.differrange20, a.differrange60, a.differrange3, a.differrange5, a.differrange15, a.differrange30, a.avg_volume20, a.freefloat_market_value, a.total_market_value, a.agencies_hold,b.name as name, b.blemind2 as blemind2, b.blemind3 as blemind3, b.listdate as listdate from select s.code , s.trade_day , s.open, s.close, s.differrange, s.trade_days, s.volumn, s.amount, s.differrange10, s.differrange20, s.differrange60, s.differrange3, s.differrange5, s.differrange15, s.differrange30, s.avg_volume20, s.freefloat_market_value, s.total_market_value, s.agencies_hold, b.name as name, b.blemind2 as blemind2, b.blemind3 as blemind3, b.listdate as listdate
(select s.code , s.trade_day , s.open, s.close, s.differrange, s.trade_days, s.volumn, s.amount, s.differrange10, s.differrange20, s.differrange60, st.differrange3, st.differrange5, st.differrange15, st.differrange30, s.avg_volume20, s.freefloat_market_value, s.total_market_value, s.agencies_hold from stocks s
from stocks s,stocks_tmp st where s.`code` = st.`code` and s.trade_day = st.trade_day) a left join stock_basis b on b.code = s.code
left join stock_basis b on b.code = a.id where s.id = #{id}
where a.id = #{id}
</select> </select>
<select id="selectStocksByCode" parameterType="Stocks" resultMap="StocksResult"> <select id="selectStocksByCode" parameterType="Stocks" resultMap="StocksResult">
select id, code, trade_day, open, close, differrange, trade_days, volumn, amount, differrange10, differrange20, differrange60, avg_volume20, freefloat_market_value, total_market_value, agencies_hold from stocks where code = #{code} and trade_day = #{tradeDay} select id, code, trade_day, open, close, high, low, islimit, isdrop, isHigh, isLow, differrange, trade_days, volumn, amount, differrange10, differrange20, differrange60, differrange3, differrange5, differrange15, differrange30, backdifferrange10, backdifferrange20, backdifferrange60, sort, avg_volume20, freefloat_market_value, total_market_value, agencies_hold from stocks where code = #{code} and trade_day = #{tradeDay}
</select> </select>
<insert id="insertStocks" parameterType="Stocks" useGeneratedKeys="true" keyProperty="id"> <insert id="insertStocks" parameterType="Stocks" useGeneratedKeys="true" keyProperty="id">
@ -162,6 +165,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="low != null">low,</if> <if test="low != null">low,</if>
<if test="islimit != null">islimit,</if> <if test="islimit != null">islimit,</if>
<if test="isdrop != null">isdrop,</if> <if test="isdrop != null">isdrop,</if>
<if test="isHigh != null">isHigh,</if>
<if test="isLow != null">isLow,</if>
<if test="differrange != null">differrange,</if> <if test="differrange != null">differrange,</if>
<if test="tradeDays != null">trade_days,</if> <if test="tradeDays != null">trade_days,</if>
<if test="volumn != null">volumn,</if> <if test="volumn != null">volumn,</if>
@ -169,6 +174,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="differrange10 != null">differrange10,</if> <if test="differrange10 != null">differrange10,</if>
<if test="differrange20 != null">differrange20,</if> <if test="differrange20 != null">differrange20,</if>
<if test="differrange60 != null">differrange60,</if> <if test="differrange60 != null">differrange60,</if>
<if test="differrange3 != null">differrange3,</if>
<if test="differrange5 != null">differrange5,</if>
<if test="differrange15 != null">differrange15,</if>
<if test="differrange30 != null">differrange30,</if>
<if test="backdifferrange10 != null">backdifferrange10,</if>
<if test="backdifferrange20 != null">backdifferrange20,</if>
<if test="backdifferrange60 != null">backdifferrange60,</if>
<if test="sort != null">sort,</if>
<if test="avgVolume20 != null">avg_volume20,</if> <if test="avgVolume20 != null">avg_volume20,</if>
<if test="freefloatMarketValue != null">freefloat_market_value,</if> <if test="freefloatMarketValue != null">freefloat_market_value,</if>
<if test="totalMarketValue != null">total_market_value,</if> <if test="totalMarketValue != null">total_market_value,</if>
@ -183,6 +196,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="low != null">#{low},</if> <if test="low != null">#{low},</if>
<if test="islimit != null">#{islimit},</if> <if test="islimit != null">#{islimit},</if>
<if test="isdrop != null">#{isdrop},</if> <if test="isdrop != null">#{isdrop},</if>
<if test="isHigh != null">#{isHigh},</if>
<if test="isLow != null">#{isLow},</if>
<if test="differrange != null">#{differrange},</if> <if test="differrange != null">#{differrange},</if>
<if test="tradeDays != null">#{tradeDays},</if> <if test="tradeDays != null">#{tradeDays},</if>
<if test="volumn != null">#{volumn},</if> <if test="volumn != null">#{volumn},</if>
@ -190,6 +205,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="differrange10 != null">#{differrange10},</if> <if test="differrange10 != null">#{differrange10},</if>
<if test="differrange20 != null">#{differrange20},</if> <if test="differrange20 != null">#{differrange20},</if>
<if test="differrange60 != null">#{differrange60},</if> <if test="differrange60 != null">#{differrange60},</if>
<if test="differrange3 != null">#{differrange3},</if>
<if test="differrange5 != null">#{differrange5},</if>
<if test="differrange15 != null">#{differrange15},</if>
<if test="differrange30 != null">#{differrange30},</if>
<if test="backdifferrange10 != null">#{backdifferrange10},</if>
<if test="backdifferrange20 != null">#{backdifferrange20},</if>
<if test="backdifferrange60 != null">#{backdifferrange60},</if>
<if test="sort != null">#{sort},</if>
<if test="avgVolume20 != null">#{avgVolume20},</if> <if test="avgVolume20 != null">#{avgVolume20},</if>
<if test="freefloatMarketValue != null">#{freefloatMarketValue},</if> <if test="freefloatMarketValue != null">#{freefloatMarketValue},</if>
<if test="totalMarketValue != null">#{totalMarketValue},</if> <if test="totalMarketValue != null">#{totalMarketValue},</if>
@ -208,6 +231,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="low != null">low = #{low},</if> <if test="low != null">low = #{low},</if>
<if test="islimit != null">islimit = #{islimit},</if> <if test="islimit != null">islimit = #{islimit},</if>
<if test="isdrop != null">isdrop = #{isdrop},</if> <if test="isdrop != null">isdrop = #{isdrop},</if>
<if test="isHigh != null">isHigh = #{isHigh},</if>
<if test="isLow != null">isLow = #{isLow},</if>
<if test="differrange != null">differrange = #{differrange},</if> <if test="differrange != null">differrange = #{differrange},</if>
<if test="tradeDays != null">trade_days = #{tradeDays},</if> <if test="tradeDays != null">trade_days = #{tradeDays},</if>
<if test="volumn != null">volumn = #{volumn},</if> <if test="volumn != null">volumn = #{volumn},</if>
@ -215,6 +240,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="differrange10 != null">differrange10 = #{differrange10},</if> <if test="differrange10 != null">differrange10 = #{differrange10},</if>
<if test="differrange20 != null">differrange20 = #{differrange20},</if> <if test="differrange20 != null">differrange20 = #{differrange20},</if>
<if test="differrange60 != null">differrange60 = #{differrange60},</if> <if test="differrange60 != null">differrange60 = #{differrange60},</if>
<if test="differrange3 != null">differrange3 = #{differrange3},</if>
<if test="differrange5 != null">differrange5 = #{differrange5},</if>
<if test="differrange15 != null">differrange15 = #{differrange15},</if>
<if test="differrange30 != null">differrange30 = #{differrange30},</if>
<if test="backdifferrange10 != null">backdifferrange10 = #{backdifferrange10},</if>
<if test="backdifferrange20 != null">backdifferrange20 = #{backdifferrange20},</if>
<if test="backdifferrange60 != null">backdifferrange60 = #{backdifferrange60},</if>
<if test="sort != null">sort = #{sort},</if>
<if test="avgVolume20 != null">avg_volume20 = #{avgVolume20},</if> <if test="avgVolume20 != null">avg_volume20 = #{avgVolume20},</if>
<if test="freefloatMarketValue != null">freefloat_market_value = #{freefloatMarketValue},</if> <if test="freefloatMarketValue != null">freefloat_market_value = #{freefloatMarketValue},</if>
<if test="totalMarketValue != null">total_market_value = #{totalMarketValue},</if> <if test="totalMarketValue != null">total_market_value = #{totalMarketValue},</if>
@ -341,25 +374,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<!--插入到stocks_tmp表中的数据--> <!--插入到stocks_tmp表中的数据-->
<insert id="insertStocksTmp" parameterType="Stocks" useGeneratedKeys="true" keyProperty="id">
insert into stocks_tmp
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="code != null and code != ''">code,</if>
<if test="tradeDay != null">trade_day,</if>
<if test="differrange3 != null">differrange3,</if>
<if test="differrange5 != null">differrange5,</if>
<if test="differrange15 != null">differrange15,</if>
<if test="differrange30 != null">differrange30,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="code != null and code != ''">#{code},</if>
<if test="tradeDay != null">#{tradeDay},</if>
<if test="differrange3 != null">#{differrange3},</if>
<if test="differrange5 != null">#{differrange5},</if>
<if test="differrange15 != null">#{differrange15},</if>
<if test="differrange30 != null">#{differrange30},</if>
</trim>
</insert>
<select id="selectStocksDataForQuery" parameterType="Stocks" resultMap="StocksResult"> <select id="selectStocksDataForQuery" parameterType="Stocks" resultMap="StocksResult">
select code,name from stock_basis; select code,name from stock_basis;

@ -15,7 +15,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectStocksNewRecordVo"> <sql id="selectStocksNewRecordVo">
select id, code, trade_day, isHigh, isLow from stocks_new_record select id, code, trade_day, isHigh, isLow from stocks
</sql> </sql>
<select id="selectStocksNewRecordList" parameterType="StocksNewRecord" resultMap="StocksNewRecordResult"> <select id="selectStocksNewRecordList" parameterType="StocksNewRecord" resultMap="StocksNewRecordResult">
@ -33,51 +33,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where id = #{id} where id = #{id}
</select> </select>
<insert id="insertStocksNewRecord" parameterType="StocksNewRecord" useGeneratedKeys="true" keyProperty="id">
insert into stocks_new_record
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="code != null and code != ''">code,</if>
<if test="tradeDay != null">trade_day,</if>
<if test="isHigh != null and isHigh != ''">isHigh,</if>
<if test="isLow != null and isLow != ''">isLow,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="code != null and code != ''">#{code},</if>
<if test="tradeDay != null">#{tradeDay},</if>
<if test="isHigh != null and isHigh != ''">#{isHigh},</if>
<if test="isLow != null and isLow != ''">#{isLow},</if>
</trim>
</insert>
<update id="updateStocksNewRecord" parameterType="StocksNewRecord">
update stocks_new_record
<trim prefix="SET" suffixOverrides=",">
<if test="code != null and code != ''">code = #{code},</if>
<if test="tradeDay != null">trade_day = #{tradeDay},</if>
<if test="isHigh != null and isHigh != ''">isHigh = #{isHigh},</if>
<if test="isLow != null and isLow != ''">isLow = #{isLow},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteStocksNewRecordById" parameterType="Long">
delete from stocks_new_record where id = #{id}
</delete>
<delete id="deleteStocksNewRecordByIds" parameterType="String">
delete from stocks_new_record where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="selectGroupStocksNewRecord" parameterType="StocksNewRecord" resultMap="StocksNewRecordResult"> <select id="selectGroupStocksNewRecord" parameterType="StocksNewRecord" resultMap="StocksNewRecordResult">
select sb.blemind2 as blemind2 ,COUNT(blemind2) as blemindsCount from stocks_new_record sl,stock_basis sb select blemind2 ,COUNT(blemind2) as blemindsCount from stocks
where sl.`code` = sb.`code` and sl.trade_day = #{tradeDay} and sl.isHigh=#{isHigh} and sl.isLow=#{isLow} GROUP BY blemind2 ORDER BY blemindsCount DESC limit 10; where trade_day = #{tradeDay} and isHigh=#{isHigh} and isLow=#{isLow} GROUP BY blemind2 ORDER BY blemindsCount DESC limit 10;
</select> </select>
<select id="selectGroupStocksNewRecordAll" parameterType="StocksNewRecord" resultMap="StocksNewRecordResult"> <select id="selectGroupStocksNewRecordAll" parameterType="StocksNewRecord" resultMap="StocksNewRecordResult">
select sb.blemind2 as blemind2 ,COUNT(blemind2) as blemindsCount,sl.isHigh as isHigh,sl.isLow as isLow from stocks_new_record sl,stock_basis sb select blemind2 ,COUNT(blemind2) as blemindsCount, isHigh as isHigh, isLow as isLow from stocks
where sl.`code` = sb.`code` and sl.trade_day = #{tradeDay} GROUP BY blemind2 ORDER BY blemindsCount DESC ; where trade_day = #{tradeDay} GROUP BY blemind2 ORDER BY blemindsCount DESC ;
</select> </select>
</mapper> </mapper>
Loading…
Cancel
Save