adding royalcanin_operate_log logic

This commit is contained in:
Carl 2021-12-08 18:41:10 +08:00
parent 5769f3413d
commit a634183b40
4 changed files with 127 additions and 22 deletions

View File

@ -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);

View File

@ -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){
//登陆操作日志
}
} }

View File

@ -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();
} }
} }

View File

@ -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 */;