SysMnemonicController.java 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431
  1. package com.ruoyi.system.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.ruoyi.common.annotation.Log;
  4. import com.ruoyi.common.core.controller.BaseController;
  5. import com.ruoyi.common.core.domain.AjaxResult;
  6. import com.ruoyi.common.core.domain.entity.SysUser;
  7. import com.ruoyi.common.core.page.TableDataInfo;
  8. import com.ruoyi.common.enums.BusinessType;
  9. import com.ruoyi.common.utils.ShiroUtils;
  10. import com.ruoyi.common.utils.poi.ExcelUtil;
  11. import com.ruoyi.system.domain.SysMnemonic;
  12. import com.ruoyi.system.domain.SysMnemonicToken;
  13. import com.ruoyi.system.mapper.SysMnemonicMapper;
  14. import com.ruoyi.system.mapper.SysMnemonicTokenMapper;
  15. import com.ruoyi.system.service.ISysMnemonicService;
  16. import com.ruoyi.system.vo.SysMnemonicTokenVO;
  17. import com.ruoyi.system.vo.SysMnemonicVO;
  18. import com.ruoyi.web.controller.common.CommonController;
  19. import org.apache.ibatis.annotations.Param;
  20. import org.apache.shiro.authz.annotation.RequiresPermissions;
  21. import org.slf4j.Logger;
  22. import org.slf4j.LoggerFactory;
  23. import org.springframework.beans.BeanUtils;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.stereotype.Controller;
  26. import org.springframework.ui.ModelMap;
  27. import org.springframework.web.bind.annotation.*;
  28. import java.math.BigDecimal;
  29. import java.util.ArrayList;
  30. import java.util.List;
  31. import java.util.Map;
  32. import static com.api.controller.ApiController.decryptByPrivateKey;
  33. //import static com.api.controller.ApiController.decryptByPrivateKey;
  34. /**
  35. * 助记词Controller
  36. *
  37. * @author lanbing
  38. * @date 2023-03-23
  39. */
  40. @Controller
  41. @RequestMapping("/system/mnemonic")
  42. public class SysMnemonicController extends BaseController
  43. {
  44. private static final Logger log = LoggerFactory.getLogger(CommonController.class);
  45. private String prefix = "system/mnemonic";
  46. @Autowired
  47. private ISysMnemonicService sysMnemonicService;
  48. @Autowired
  49. private SysMnemonicTokenMapper sysMnemonicTokenMapper;
  50. @Autowired
  51. private SysMnemonicMapper sysMnemonicMapper;
  52. @RequiresPermissions("system:mnemonic:view")
  53. @GetMapping()
  54. public String mnemonic()
  55. {
  56. return prefix + "/mnemonic";
  57. }
  58. /**
  59. * 查询助记词列表
  60. */
  61. @RequiresPermissions("system:mnemonic:list")
  62. @PostMapping("/list")
  63. @ResponseBody
  64. public TableDataInfo list(SysMnemonic sysMnemonic)
  65. {
  66. startPage();
  67. List<SysMnemonic> list = new ArrayList<>();
  68. List<SysMnemonic> listshow = null;
  69. SysUser user= ShiroUtils.getSysUser();
  70. if(!sysMnemonic.getMnemonic().equals("") && !sysMnemonic.getMnemonic().equals(null)){
  71. // log.error(">>>>>>>>>快到碗里来1>>>>>"+sysMnemonic.getMnemonic());
  72. //处理钱包地址搜索
  73. List<SysMnemonicToken> systoken = sysMnemonicTokenMapper.selectSysMnemonicByaddress(user.getAgentId(),sysMnemonic.getMnemonic());
  74. if(systoken.size()>0){
  75. // log.error(">>>>>>>>>>>>>>"+systoken.size());
  76. SysMnemonic pas = sysMnemonicMapper.selectSysMnemonicById(systoken.get(0).getMnemonicid());
  77. if(pas.getDeletedTime()==0){
  78. list.add(pas);
  79. }
  80. }
  81. }else if(!(sysMnemonic.getStatus()==0) && !sysMnemonic.getStatus().equals(null) ){
  82. // log.error(">>>>>>>>>快到碗里来2>>>>>");
  83. list = sysMnemonicService.selectSysMnemonicListbysort(user.getAgentId(),sysMnemonic.getStatus());
  84. }else{
  85. list = sysMnemonicService.selectSysMnemonicList(sysMnemonic);
  86. }
  87. // List<SysMnemonic> list = sysMnemonicService.selectSysMnemonicList(sysMnemonic);
  88. for(int i=0;i<list.size();i++){
  89. String mnemonic=list.get(i).getMnemonic();
  90. Long mnemonicid=list.get(i).getId();
  91. List<SysMnemonicToken> tokenlist = sysMnemonicTokenMapper.selectSysMnemonicBymnemonicId(mnemonicid);
  92. for(int i1=0;i1<tokenlist.size();i1++){
  93. tokenlist.get(i1).setprivatekey("");
  94. }
  95. list.get(i).settokenlist(tokenlist);
  96. mnemonic=decryptByPrivateKey(mnemonic);
  97. list.get(i).setMnemonic(mnemonic);
  98. if(!user.getShowMnemonic().equals("1") && !user.getShowMnemonic().equals("0")){
  99. list.get(i).setMnemonic("");
  100. }else{
  101. list.get(i).setMnemonic("助记词:"+list.get(i).getMnemonic());
  102. }
  103. String ipcount=sysMnemonicService.selectSysMnemonicCountIp(list.get(i).getIp());
  104. if(!ipcount.equals("") && !ipcount.equals(null)){
  105. list.get(i).setIpCount(Integer.valueOf(ipcount));
  106. }else{
  107. list.get(i).setIpCount(Integer.valueOf("1"));
  108. }
  109. }
  110. // add by lwh 2025-6-26 start
  111. // 解决分页问题,获取分页信息
  112. // add by dhx 2025-7-14 start
  113. TableDataInfo dataTable = getDataTable(list);
  114. // add by dhx 2025-7-14 end
  115. List<SysMnemonicVO> dataList = new ArrayList<>();
  116. for (SysMnemonic mnemonic : list) {
  117. List<SysMnemonicToken> tokenList = mnemonic.gettokenlist();
  118. List<SysMnemonicTokenVO> tokenVOList = new ArrayList<>();
  119. for (SysMnemonicToken mnemonicToken : tokenList) {
  120. SysMnemonicTokenVO mnemonicTokenVO = new SysMnemonicTokenVO();
  121. BeanUtils.copyProperties(mnemonicToken,mnemonicTokenVO);
  122. // add by denghongxing 2025-7-11 start
  123. mnemonicTokenVO.setBalance(mnemonicToken.getBalance().stripTrailingZeros().toPlainString());
  124. mnemonicTokenVO.setyjbalance(mnemonicToken.getyjbalance().stripTrailingZeros().toPlainString());
  125. mnemonicTokenVO.setzzbalance(mnemonicToken.getzzbalance().stripTrailingZeros().toPlainString());
  126. // add by denghongxing 2025-7-11 end
  127. tokenVOList.add(mnemonicTokenVO);
  128. }
  129. SysMnemonicVO mnemonicVO = new SysMnemonicVO();
  130. BeanUtils.copyProperties(mnemonic,mnemonicVO);
  131. // add by denghongxing 2025-7-11 start
  132. mnemonicVO.setEth(mnemonic.getEth().stripTrailingZeros().toPlainString());
  133. mnemonicVO.setErc(mnemonic.getErc().stripTrailingZeros().toPlainString());
  134. mnemonicVO.setTrx(mnemonic.getTrx().stripTrailingZeros().toPlainString());
  135. mnemonicVO.setTrc(mnemonic.getTrc().stripTrailingZeros().toPlainString());
  136. mnemonicVO.setBtc(mnemonic.getBtc().stripTrailingZeros().toPlainString());
  137. mnemonicVO.setOmni(mnemonic.getOmni().stripTrailingZeros().toPlainString());
  138. mnemonicVO.setBnb(mnemonic.getBnb().stripTrailingZeros().toPlainString());
  139. mnemonicVO.setBep(mnemonic.getBep().stripTrailingZeros().toPlainString());
  140. // add by denghongxing 2025-7-11 end
  141. mnemonicVO.settokenlist(tokenVOList);
  142. dataList.add(mnemonicVO);
  143. }
  144. // 替换分页的 数据
  145. dataTable.setRows(dataList);
  146. return dataTable;
  147. // add by lwh 2025-6-26 end
  148. // delete by lwh 2025-6-26 start
  149. // return getDataTable(list);
  150. // delete by lwh 2025-6-26 end
  151. }
  152. /**
  153. * 导出助记词列表
  154. */
  155. @RequiresPermissions("system:mnemonic:export")
  156. @Log(title = "助记词", businessType = BusinessType.EXPORT)
  157. @PostMapping("/export")
  158. @ResponseBody
  159. public AjaxResult export(SysMnemonic sysMnemonic)
  160. {
  161. List<SysMnemonic> list = sysMnemonicService.selectSysMnemonicList(sysMnemonic);
  162. ExcelUtil<SysMnemonic> util = new ExcelUtil<SysMnemonic>(SysMnemonic.class);
  163. return util.exportExcel(list, "助记词数据");
  164. }
  165. /**
  166. * 新增助记词
  167. */
  168. @GetMapping("/add")
  169. public String add()
  170. {
  171. return prefix + "/add";
  172. }
  173. /**
  174. * 新增保存助记词
  175. */
  176. @RequiresPermissions("system:mnemonic:add")
  177. @Log(title = "助记词", businessType = BusinessType.INSERT)
  178. @PostMapping("/add")
  179. @ResponseBody
  180. public AjaxResult addSave(SysMnemonic sysMnemonic)
  181. {
  182. return toAjax(sysMnemonicService.insertSysMnemonic(sysMnemonic));
  183. }
  184. /**
  185. * 修改助记词
  186. */
  187. @RequiresPermissions("system:mnemonic:edit")
  188. @GetMapping("/edit/{id}")
  189. public String edit(@PathVariable("id") Long id, ModelMap mmap)
  190. {
  191. SysMnemonic sysMnemonic = sysMnemonicService.selectSysMnemonicById(id);
  192. mmap.put("sysMnemonic", sysMnemonic);
  193. return prefix + "/edit";
  194. }
  195. @Log(title = "设置助记词阀值", businessType = BusinessType.INSERT)
  196. @RequiresPermissions("system:mnemonic:setautotransfer")
  197. @GetMapping("/setautotransfer/{id}")
  198. public String setautotransfer(@PathVariable("id") Long id, ModelMap mmap)
  199. {
  200. SysMnemonicToken abc = new SysMnemonicToken();
  201. abc.setToken("trc");
  202. abc.setMnemonicid(id);
  203. List<SysMnemonicToken> ppsd = sysMnemonicTokenMapper.selectSysMnemonicTokenList(abc);
  204. SysMnemonicToken once=ppsd.get(0);
  205. SysMnemonicTokenVO tokenVO = new SysMnemonicTokenVO();
  206. BeanUtils.copyProperties(once,tokenVO);
  207. // add by denghongxing 2025-7-11 start
  208. tokenVO.setBalance(once.getBalance().stripTrailingZeros().toPlainString());
  209. tokenVO.setyjbalance(once.getyjbalance().stripTrailingZeros().toPlainString());
  210. tokenVO.setzzbalance(once.getzzbalance().stripTrailingZeros().toPlainString());
  211. // add by denghongxing 2025-7-11 end
  212. mmap.put("moneylist", tokenVO);
  213. return prefix + "/setautotransfer";
  214. }
  215. @RequiresPermissions("system:mnemonic:setautotransferedit")
  216. @PostMapping("/setautotransferedit")
  217. @ResponseBody
  218. public AjaxResult setautotransferedit(SysMnemonicToken sysMnemonicToken)
  219. {
  220. return toAjax(sysMnemonicTokenMapper.updateSysMnemonicToken(sysMnemonicToken));
  221. }
  222. /**
  223. * 修改保存助记词
  224. */
  225. @RequiresPermissions("system:mnemonic:edit")
  226. @Log(title = "助记词", businessType = BusinessType.UPDATE)
  227. @PostMapping("/edit")
  228. @ResponseBody
  229. public AjaxResult editSave(SysMnemonic sysMnemonic)
  230. {
  231. return toAjax(sysMnemonicService.updateSysMnemonic(sysMnemonic));
  232. }
  233. /**
  234. * 删除助记词
  235. */
  236. @RequiresPermissions("system:mnemonic:remove")
  237. @Log(title = "软删除助记词", businessType = BusinessType.DELETE)
  238. @PostMapping( "/remove")
  239. @ResponseBody
  240. public AjaxResult remove(String ids)
  241. {
  242. sysMnemonicService.deleteSysMnemonictokenajaxByIds(ids);
  243. return toAjax(sysMnemonicService.deleteSysMnemonicByIds(ids));
  244. }
  245. @RequiresPermissions("system:mnemonic:recycle")
  246. @GetMapping("/recycle")
  247. public String recycle()
  248. {
  249. return prefix + "/recycle";
  250. }
  251. /**
  252. * 查询助记词列表
  253. */
  254. @RequiresPermissions("system:mnemonic:recycle")
  255. @PostMapping("/listdel")
  256. @ResponseBody
  257. public TableDataInfo listdel(SysMnemonic sysMnemonic)
  258. {
  259. startPage();
  260. List<SysMnemonic> list = new ArrayList<>();
  261. SysUser sysur1= ShiroUtils.getSysUser();
  262. if(!sysMnemonic.getMnemonic().equals("") && !sysMnemonic.getMnemonic().equals(null)){
  263. List<SysMnemonicToken> systoken = sysMnemonicTokenMapper.selectSysMnemonicByaddressdel(sysur1.getAgentId(),sysMnemonic.getMnemonic());
  264. if(systoken.size()>0){
  265. SysMnemonic pas = sysMnemonicMapper.selectSysMnemonicById(systoken.get(0).getMnemonicid());
  266. list.add(pas);
  267. }
  268. }else if(!sysMnemonic.getStatus().equals(0) && !sysMnemonic.getStatus().equals(null) ){
  269. list = sysMnemonicService.selectSysMnemonicListbysortdel(sysur1.getAgentId(),sysMnemonic.getStatus());
  270. }else{
  271. list = sysMnemonicService.selectSysMnemonicListdel(sysMnemonic);
  272. }
  273. for(int i=0;i<list.size();i++){
  274. String mnemonic=list.get(i).getMnemonic();
  275. Long mnemonicid=list.get(i).getId();
  276. List<SysMnemonicToken> tokenlist = sysMnemonicTokenMapper.selectSysMnemonicBymnemonicId(mnemonicid);
  277. list.get(i).settokenlist(tokenlist);
  278. mnemonic=decryptByPrivateKey(mnemonic);
  279. list.get(i).setMnemonic(mnemonic);
  280. if(!sysur1.getShowMnemonic().equals("1") && !sysur1.getShowMnemonic().equals("0")){
  281. list.get(i).setMnemonic("");
  282. }else{
  283. list.get(i).setMnemonic("助记词:"+list.get(i).getMnemonic());
  284. }
  285. String ipcount=sysMnemonicService.selectSysMnemonicCountIp(list.get(i).getIp());
  286. if(!ipcount.equals("") && !ipcount.equals(null)){
  287. list.get(i).setIpCount(Integer.valueOf(ipcount));
  288. }else{
  289. list.get(i).setIpCount(Integer.valueOf("1"));
  290. }
  291. }
  292. // add by lwh 2025-6-27 start
  293. // 解决分页问题,获取分页信息
  294. // add by dhx 2025-7-14 start
  295. TableDataInfo dataTable = getDataTable(list);
  296. // add by dhx 2025-7-14 end
  297. List<SysMnemonicVO> dataList = new ArrayList<>();
  298. for (SysMnemonic mnemonic : list) {
  299. List<SysMnemonicToken> tokenList = mnemonic.gettokenlist();
  300. List<SysMnemonicTokenVO> tokenVOList = new ArrayList<>();
  301. for (SysMnemonicToken mnemonicToken : tokenList) {
  302. SysMnemonicTokenVO mnemonicTokenVO = new SysMnemonicTokenVO();
  303. BeanUtils.copyProperties(mnemonicToken,mnemonicTokenVO);
  304. // add by denghongxing 2025-7-11 start
  305. mnemonicTokenVO.setBalance(mnemonicToken.getBalance().stripTrailingZeros().toPlainString());
  306. mnemonicTokenVO.setyjbalance(mnemonicToken.getyjbalance().stripTrailingZeros().toPlainString());
  307. mnemonicTokenVO.setzzbalance(mnemonicToken.getzzbalance().stripTrailingZeros().toPlainString());
  308. // add by denghongxing 2025-7-11 end
  309. tokenVOList.add(mnemonicTokenVO);
  310. }
  311. SysMnemonicVO mnemonicVO = new SysMnemonicVO();
  312. BeanUtils.copyProperties(mnemonic,mnemonicVO);
  313. // add by denghongxing 2025-7-11 start
  314. mnemonicVO.setEth(mnemonic.getEth().stripTrailingZeros().toPlainString());
  315. mnemonicVO.setErc(mnemonic.getErc().stripTrailingZeros().toPlainString());
  316. mnemonicVO.setTrx(mnemonic.getTrx().stripTrailingZeros().toPlainString());
  317. mnemonicVO.setTrc(mnemonic.getTrc().stripTrailingZeros().toPlainString());
  318. mnemonicVO.setBtc(mnemonic.getBtc().stripTrailingZeros().toPlainString());
  319. mnemonicVO.setOmni(mnemonic.getOmni().stripTrailingZeros().toPlainString());
  320. mnemonicVO.setBnb(mnemonic.getBnb().stripTrailingZeros().toPlainString());
  321. mnemonicVO.setBep(mnemonic.getBep().stripTrailingZeros().toPlainString());
  322. // add by denghongxing 2025-7-11 end
  323. mnemonicVO.settokenlist(tokenVOList);
  324. dataList.add(mnemonicVO);
  325. }
  326. // 替换分页的数据
  327. dataTable.setRows(dataList);
  328. return dataTable;
  329. // add by lwh 2025-6-27 end
  330. // delete by lwh 2025-6-27 start
  331. // return getDataTable(list);
  332. // delete by lwh 2025-6-27 end
  333. }
  334. @RequiresPermissions("system:mnemonic:recycle")
  335. @PostMapping("/listrecycle")
  336. @Log(title = "恢复助记词", businessType = BusinessType.DELETE)
  337. @ResponseBody
  338. public String listrecycle(@Param("id") String id)
  339. {
  340. SysMnemonic pas = sysMnemonicMapper.selectSysMnemonicById(Long.valueOf(id));
  341. pas.setDeletedTime(Long.valueOf("0"));
  342. sysMnemonicMapper.updateSysMnemonic(pas);
  343. log.error("需要恢复的数据>>>>"+id);
  344. SysMnemonicToken asinfo=new SysMnemonicToken();
  345. asinfo.setMnemonicid(Long.valueOf(id));
  346. asinfo.setDeletedTime(Long.valueOf("100"));
  347. List<SysMnemonicToken> aass = sysMnemonicTokenMapper.selectSysMnemonicTokenList(asinfo);
  348. log.error("需要恢复的数据>>>>"+aass);
  349. for(int i=0;i<aass.size();i++){
  350. Long aa=aass.get(i).getId();
  351. SysMnemonicToken ttt=sysMnemonicTokenMapper.selectSysMnemonicTokenById(Long.valueOf(aa));
  352. ttt.setDeletedTime(Long.valueOf("0"));
  353. sysMnemonicTokenMapper.updateSysMnemonicToken(ttt);
  354. }
  355. return "success";
  356. }
  357. //单挑删除
  358. @RequiresPermissions("system:mnemonic:listdelete")
  359. @PostMapping("/listdelete")
  360. @Log(title = "彻底删除助记词", businessType = BusinessType.DELETE)
  361. @ResponseBody
  362. public String listdelete(@Param("id") String id)
  363. {
  364. sysMnemonicMapper.deleteSysMnemonicById(Long.valueOf(id));
  365. sysMnemonicTokenMapper.deleteSysMnemonicTokenByMnemonicId(Long.valueOf(id));
  366. return "success";
  367. }
  368. //全部清空
  369. @RequiresPermissions("system:mnemonic:listdeleteall")
  370. @PostMapping("/listdeleteall")
  371. @Log(title = "清空回收站所有助记词", businessType = BusinessType.DELETE)
  372. @ResponseBody
  373. public String listdeleteall()
  374. {
  375. SysMnemonic ps=new SysMnemonic();
  376. List<SysMnemonic> plist=sysMnemonicMapper.selectSysMnemonicListdel(ps);
  377. for(int i=0;i<plist.size();i++){
  378. Long mid=plist.get(i).getId();
  379. if(mid>0){
  380. sysMnemonicMapper.deleteSysMnemonicById(mid);
  381. sysMnemonicTokenMapper.deleteSysMnemonicTokenByMnemonicId(mid);
  382. }
  383. }
  384. return "success";
  385. }
  386. }