mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-10-04 03:06:39 +08:00
adding royalcanin_operate_log logic
This commit is contained in:
parent
5769f3413d
commit
a634183b40
@ -70,7 +70,7 @@ public class SmartAuthenticationInterceptor extends HandlerInterceptorAdapter {
|
|||||||
if (isNoNeedLogin) {
|
if (isNoNeedLogin) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
Boolean noNeedLogin = request.getServletPath().startsWith("/royalcanin")&&request.getParameter("type").equals("get");
|
Boolean noNeedLogin = request.getServletPath().startsWith("/royalcanin/member");
|
||||||
if (noNeedLogin) {
|
if (noNeedLogin) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -119,7 +119,7 @@ public class SmartAuthenticationInterceptor extends HandlerInterceptorAdapter {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//需要验证权限
|
//需要验证权限
|
||||||
if(!request.getServletPath().startsWith("/royalcanin")&&request.getParameter("type").equals("get")) {
|
if(!request.getServletPath().startsWith("/royalcanin")) {
|
||||||
Boolean privilegeValidPass = privilegeEmployeeService.checkEmployeeHavePrivilege(requestToken, controllerName, methodName);
|
Boolean privilegeValidPass = privilegeEmployeeService.checkEmployeeHavePrivilege(requestToken, controllerName, methodName);
|
||||||
if (!privilegeValidPass) {
|
if (!privilegeValidPass) {
|
||||||
this.outputResult(response, LoginResponseCodeConst.NOT_HAVE_PRIVILEGES);
|
this.outputResult(response, LoginResponseCodeConst.NOT_HAVE_PRIVILEGES);
|
||||||
|
@ -1,20 +1,26 @@
|
|||||||
package net.lab1024.smartadmin.module.system.royalcanin;
|
package net.lab1024.smartadmin.module.system.royalcanin;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import eu.bitwalker.useragentutils.UserAgent;
|
||||||
import io.jsonwebtoken.Claims;
|
import io.jsonwebtoken.Claims;
|
||||||
import io.jsonwebtoken.Jwts;
|
import io.jsonwebtoken.Jwts;
|
||||||
import io.jsonwebtoken.SignatureAlgorithm;
|
import io.jsonwebtoken.SignatureAlgorithm;
|
||||||
|
import net.lab1024.smartadmin.common.constant.JudgeEnum;
|
||||||
import net.lab1024.smartadmin.common.heartbeat.StringUtil;
|
import net.lab1024.smartadmin.common.heartbeat.StringUtil;
|
||||||
|
import net.lab1024.smartadmin.module.business.log.LogService;
|
||||||
|
import net.lab1024.smartadmin.module.business.log.userloginlog.domain.UserLoginLogEntity;
|
||||||
import net.lab1024.smartadmin.module.system.login.LoginTokenService;
|
import net.lab1024.smartadmin.module.system.login.LoginTokenService;
|
||||||
import net.lab1024.smartadmin.module.system.royalcanin.member.MemberAddEntity;
|
import net.lab1024.smartadmin.module.system.royalcanin.member.MemberAddEntity;
|
||||||
import net.lab1024.smartadmin.module.system.royalcanin.member.MemberCheckEntity;
|
import net.lab1024.smartadmin.module.system.royalcanin.member.MemberCheckEntity;
|
||||||
import net.lab1024.smartadmin.module.system.royalcanin.member.MemberGetEntity;
|
import net.lab1024.smartadmin.module.system.royalcanin.member.MemberGetEntity;
|
||||||
import net.lab1024.smartadmin.module.system.royalcanin.member.MemberUpdateMemberLevelEntity;
|
import net.lab1024.smartadmin.module.system.royalcanin.member.MemberUpdateMemberLevelEntity;
|
||||||
import net.lab1024.smartadmin.util.SmartHttpUtil;
|
import net.lab1024.smartadmin.util.SmartHttpUtil;
|
||||||
|
import net.lab1024.smartadmin.util.SmartIPUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@ -27,7 +33,7 @@ public class MemberService {
|
|||||||
private String url = "http://miniapp-test.royalcanin.com.cn:7080/crm/member/";
|
private String url = "http://miniapp-test.royalcanin.com.cn:7080/crm/member/";
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private LoginTokenService loginTokenService;
|
private LogService logService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 过期时间一天
|
* 过期时间一天
|
||||||
@ -41,7 +47,7 @@ public class MemberService {
|
|||||||
@Value("${jwt.key}")
|
@Value("${jwt.key}")
|
||||||
private String jwtKey;
|
private String jwtKey;
|
||||||
|
|
||||||
public String memberGet(MemberGetEntity memberGetEntity)throws Exception {
|
public String memberGet(MemberGetEntity memberGetEntity, HttpServletRequest request)throws Exception {
|
||||||
Map<String, String> paramMap = new HashMap<>();
|
Map<String, String> paramMap = new HashMap<>();
|
||||||
paramMap.put("channelId", StringUtil.toString(memberGetEntity.getChannelId()));
|
paramMap.put("channelId", StringUtil.toString(memberGetEntity.getChannelId()));
|
||||||
paramMap.put("id",StringUtil.toString(memberGetEntity.getId()));
|
paramMap.put("id",StringUtil.toString(memberGetEntity.getId()));
|
||||||
@ -52,6 +58,17 @@ public class MemberService {
|
|||||||
JSONObject json = JSONObject.parseObject(jsonObject.getString("data"));
|
JSONObject json = JSONObject.parseObject(jsonObject.getString("data"));
|
||||||
String id = json.getString("id");
|
String id = json.getString("id");
|
||||||
jsonObject.put("xaccessToken",generateToken(id));
|
jsonObject.put("xaccessToken",generateToken(id));
|
||||||
|
UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent"));
|
||||||
|
UserLoginLogEntity logEntity =
|
||||||
|
UserLoginLogEntity.builder()
|
||||||
|
.userId(Long.parseLong(id))
|
||||||
|
.userName(json.getString("memberName"))
|
||||||
|
.remoteIp(SmartIPUtil.getRemoteIp(request))
|
||||||
|
.remotePort(request.getRemotePort())
|
||||||
|
.remoteBrowser(userAgent.getBrowser().getName())
|
||||||
|
.remoteOs(userAgent.getOperatingSystem().getName())
|
||||||
|
.loginStatus(JudgeEnum.YES.getValue()).build();
|
||||||
|
logService.addLog(logEntity);
|
||||||
return jsonObject.toJSONString();
|
return jsonObject.toJSONString();
|
||||||
}
|
}
|
||||||
public String memberCheck(MemberCheckEntity memberCheckEntity)throws Exception {
|
public String memberCheck(MemberCheckEntity memberCheckEntity)throws Exception {
|
||||||
@ -121,4 +138,9 @@ public class MemberService {
|
|||||||
|
|
||||||
return compactJws;
|
return compactJws;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void useLog(HttpServletRequest request){
|
||||||
|
//登陆操作日志
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,19 @@
|
|||||||
package net.lab1024.smartadmin.module.system.royalcanin;
|
package net.lab1024.smartadmin.module.system.royalcanin;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import net.lab1024.smartadmin.common.anno.OperateLog;
|
import net.lab1024.smartadmin.common.anno.OperateLog;
|
||||||
|
import net.lab1024.smartadmin.common.domain.ResponseDTO;
|
||||||
|
import net.lab1024.smartadmin.common.heartbeat.StringUtil;
|
||||||
import net.lab1024.smartadmin.constant.SwaggerTagConst;
|
import net.lab1024.smartadmin.constant.SwaggerTagConst;
|
||||||
|
import net.lab1024.smartadmin.module.business.log.LogService;
|
||||||
|
import net.lab1024.smartadmin.module.business.log.useroperatelog.domain.UserOperateLogEntity;
|
||||||
import net.lab1024.smartadmin.module.system.royalcanin.couponConfig.CouponConfigFindAllEntity;
|
import net.lab1024.smartadmin.module.system.royalcanin.couponConfig.CouponConfigFindAllEntity;
|
||||||
import net.lab1024.smartadmin.module.system.royalcanin.couponConfig.CouponConfigGetEntity;
|
import net.lab1024.smartadmin.module.system.royalcanin.couponConfig.CouponConfigGetEntity;
|
||||||
|
import net.lab1024.smartadmin.module.system.royalcanin.domain.RoyalcaninOperateLogEntity;
|
||||||
|
import net.lab1024.smartadmin.module.system.royalcanin.domain.RoyalcaninOperateLogService;
|
||||||
import net.lab1024.smartadmin.module.system.royalcanin.member.MemberAddEntity;
|
import net.lab1024.smartadmin.module.system.royalcanin.member.MemberAddEntity;
|
||||||
import net.lab1024.smartadmin.module.system.royalcanin.member.MemberCheckEntity;
|
import net.lab1024.smartadmin.module.system.royalcanin.member.MemberCheckEntity;
|
||||||
import net.lab1024.smartadmin.module.system.royalcanin.member.MemberGetEntity;
|
import net.lab1024.smartadmin.module.system.royalcanin.member.MemberGetEntity;
|
||||||
@ -22,6 +29,9 @@ import org.springframework.web.bind.annotation.PostMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
|
||||||
@Api(tags = {SwaggerTagConst.Admin.MANAGER_MALL_API})
|
@Api(tags = {SwaggerTagConst.Admin.MANAGER_MALL_API})
|
||||||
@OperateLog
|
@OperateLog
|
||||||
@ -31,6 +41,9 @@ public class TransitionController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private MemberService memberService;
|
private MemberService memberService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RoyalcaninOperateLogService royalcaninOperateLogService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MemberAddressService memberAddressService;
|
private MemberAddressService memberAddressService;
|
||||||
|
|
||||||
@ -42,59 +55,89 @@ public class TransitionController {
|
|||||||
|
|
||||||
@ApiOperation(value = "会员信息", notes = "会员查询,验证会员信息,会员注册")
|
@ApiOperation(value = "会员信息", notes = "会员查询,验证会员信息,会员注册")
|
||||||
@PostMapping("royalcanin/member")
|
@PostMapping("royalcanin/member")
|
||||||
public String transferMember(String type ,@RequestBody Object object) throws Exception {
|
public String transferMember(String type , @RequestBody Object object, HttpServletRequest request) throws Exception {
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
String result = "null";
|
||||||
|
long startTime = System.currentTimeMillis();
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case "get":
|
case "get":
|
||||||
return memberService.memberGet(objectMapper.convertValue(object,MemberGetEntity.class));
|
result = memberService.memberGet(objectMapper.convertValue(object,MemberGetEntity.class),request);
|
||||||
|
break;
|
||||||
case "check":
|
case "check":
|
||||||
return memberService.memberCheck(objectMapper.convertValue(object,MemberCheckEntity.class));
|
result = memberService.memberCheck(objectMapper.convertValue(object,MemberCheckEntity.class));
|
||||||
|
break;
|
||||||
case "add":
|
case "add":
|
||||||
return memberService.memberAdd(objectMapper.convertValue(object,MemberAddEntity.class));
|
result = memberService.memberAdd(objectMapper.convertValue(object,MemberAddEntity.class));
|
||||||
|
break;
|
||||||
case "updateMemberLevel":
|
case "updateMemberLevel":
|
||||||
return memberService.memberUpdateMemberLevel(objectMapper.convertValue(object, MemberUpdateMemberLevelEntity.class));
|
result = memberService.memberUpdateMemberLevel(objectMapper.convertValue(object, MemberUpdateMemberLevelEntity.class));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return "null";
|
long acceptTime = System.currentTimeMillis() ;
|
||||||
|
long elapsedTime = acceptTime - startTime;
|
||||||
|
//记录服务响应时间
|
||||||
|
addOperatreFullData(type,object.toString(),result, startTime,elapsedTime,acceptTime,request);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "会员地址", notes = "查询会员地址,添加会员地址,更新会员地址,删除会员地址")
|
@ApiOperation(value = "会员地址", notes = "查询会员地址,添加会员地址,更新会员地址,删除会员地址")
|
||||||
@PostMapping("royalcanin/memberAddress")
|
@PostMapping("royalcanin/memberAddress")
|
||||||
public String transferMemberAddress(String type ,@RequestBody Object object) throws Exception {
|
public String transferMemberAddress(String type ,@RequestBody Object object, HttpServletRequest request) throws Exception {
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
String result = "null";
|
||||||
|
long startTime = System.currentTimeMillis();
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case "getAll":
|
case "getAll":
|
||||||
return memberAddressService.membberAddressGetAll(objectMapper.convertValue(object, MemberAddressGetAllEntity.class));
|
result = memberAddressService.membberAddressGetAll(objectMapper.convertValue(object, MemberAddressGetAllEntity.class));
|
||||||
|
break;
|
||||||
case "add":
|
case "add":
|
||||||
return memberAddressService.memberAddressAdd(objectMapper.convertValue(object,MemberAddressAddEntity.class));
|
result = memberAddressService.memberAddressAdd(objectMapper.convertValue(object,MemberAddressAddEntity.class));
|
||||||
|
break;
|
||||||
case "update":
|
case "update":
|
||||||
return memberAddressService.memberAddressUpdate(objectMapper.convertValue(object, MemberAddressUpdateEntity.class));
|
result = memberAddressService.memberAddressUpdate(objectMapper.convertValue(object, MemberAddressUpdateEntity.class));
|
||||||
|
break;
|
||||||
case "delete":
|
case "delete":
|
||||||
return memberAddressService.memberAddressDelete(objectMapper.convertValue(object, MemberAddressDeleteEntity.class));
|
result = memberAddressService.memberAddressDelete(objectMapper.convertValue(object, MemberAddressDeleteEntity.class));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return "null";
|
long acceptTime = System.currentTimeMillis() ;
|
||||||
|
long elapsedTime = acceptTime - startTime;
|
||||||
|
//记录服务响应时间
|
||||||
|
addOperatreFullData(type,object.toString(),result, startTime,elapsedTime,acceptTime,request);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "会员积分", notes = "会员积分明细,会员积分变更")
|
@ApiOperation(value = "会员积分", notes = "会员积分明细,会员积分变更")
|
||||||
@PostMapping("royalcanin/memberAccount")
|
@PostMapping("royalcanin/memberAccount")
|
||||||
public String transferMemberAccount(String type ,@RequestBody Object object) throws Exception {
|
public String transferMemberAccount(String type ,@RequestBody Object object, HttpServletRequest request) throws Exception {
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
String result = "null";
|
||||||
|
long startTime = System.currentTimeMillis();
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case "change":
|
case "change":
|
||||||
return memberAccountService.memberAccountChange(objectMapper.convertValue(object, MemberAccountChangeEntity.class));
|
result = memberAccountService.memberAccountChange(objectMapper.convertValue(object, MemberAccountChangeEntity.class));
|
||||||
|
break;
|
||||||
case "history":
|
case "history":
|
||||||
return memberAccountService.memberAccountHistory(objectMapper.convertValue(object, MemberAccountHistoryEntity.class));
|
result = memberAccountService.memberAccountHistory(objectMapper.convertValue(object, MemberAccountHistoryEntity.class));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return "null";
|
long acceptTime = System.currentTimeMillis() ;
|
||||||
|
long elapsedTime = acceptTime - startTime;
|
||||||
|
//记录服务响应时间
|
||||||
|
addOperatreFullData(type,object.toString(),result, startTime,elapsedTime,acceptTime,request);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation(value = "优惠券种类", notes = "查询所有优惠券种类,查询单条优惠券种类")
|
@ApiOperation(value = "优惠券种类", notes = "查询所有优惠券种类,查询单条优惠券种类")
|
||||||
@PostMapping("royalcanin/couponConfig")
|
@PostMapping("royalcanin/couponConfig")
|
||||||
public String transferCouponConfig(String type ,@RequestBody Object object) throws Exception {
|
public String transferCouponConfig(String type ,@RequestBody Object object, HttpServletRequest request) throws Exception {
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
String result = "null";
|
||||||
|
long startTime = System.currentTimeMillis();
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case "change":
|
case "change":
|
||||||
@ -102,6 +145,25 @@ public class TransitionController {
|
|||||||
case "history":
|
case "history":
|
||||||
return couponConfigService.couponConfigGet(objectMapper.convertValue(object, CouponConfigGetEntity.class));
|
return couponConfigService.couponConfigGet(objectMapper.convertValue(object, CouponConfigGetEntity.class));
|
||||||
}
|
}
|
||||||
return "null";
|
long acceptTime = System.currentTimeMillis() ;
|
||||||
|
long elapsedTime = acceptTime - startTime;
|
||||||
|
//记录服务响应时间
|
||||||
|
addOperatreFullData(type,object.toString(),result, startTime,elapsedTime,acceptTime,request);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ResponseDTO<String> addOperatreFullData(String type,String params,String result,Long startTime,Long elapsedTime,Long acceptTime,HttpServletRequest request){
|
||||||
|
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(result);
|
||||||
|
RoyalcaninOperateLogEntity royalcaninOperateLogEntity = new RoyalcaninOperateLogEntity();
|
||||||
|
royalcaninOperateLogEntity.setElapsedTime(StringUtil.toString(elapsedTime));
|
||||||
|
royalcaninOperateLogEntity.setStartTime(dateformat.format(startTime));
|
||||||
|
royalcaninOperateLogEntity.setMethod(request.getServletPath()+"?"+type);
|
||||||
|
royalcaninOperateLogEntity.setCode(jsonObject.getString("code"));
|
||||||
|
royalcaninOperateLogEntity.setMsg(jsonObject.getString("msg"));
|
||||||
|
royalcaninOperateLogEntity.setParams(params);
|
||||||
|
royalcaninOperateLogEntity.setAcceptTime(dateformat.format(acceptTime));
|
||||||
|
royalcaninOperateLogService.add(royalcaninOperateLogEntity);
|
||||||
|
return ResponseDTO.succ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1586,3 +1586,24 @@ INSERT INTO `t_user_operate_log` (`id`, `user_id`, `user_name`, `module`, `conte
|
|||||||
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
|
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
|
||||||
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
|
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
|
||||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- 表的结构 `t_royalcanin_operate_log`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `t_royalcanin_operate_log`;
|
||||||
|
CREATE TABLE IF NOT EXISTS `t_royalcanin_operate_log` (
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`method` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`params` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`start_time` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`elapsed_time` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`code` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
`msg` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
|
Loading…
Reference in New Issue
Block a user