Commit 19706490 authored by honghy's avatar honghy

新增短信发送订单操作日志、客户操作日志

parent 7bb03a6b
...@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.member.api.user; ...@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.member.api.user;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.member.api.user.dto.UserRespDTO; import cn.iocoder.yudao.module.member.api.user.dto.UserRespDTO;
import cn.iocoder.yudao.module.member.api.user.dto.UserSelectReqVO; import cn.iocoder.yudao.module.member.api.user.dto.UserSelectReqVO;
import cn.iocoder.yudao.module.member.enums.UserOperationLogTypeEnum;
/** /**
* 会员用户的 API 接口 * 会员用户的 API 接口
...@@ -27,4 +28,6 @@ public interface MemberUserApi { ...@@ -27,4 +28,6 @@ public interface MemberUserApi {
UserRespDTO getUserByMobile(String mobile); UserRespDTO getUserByMobile(String mobile);
void createUserOperationLog(String mobile, UserOperationLogTypeEnum typeEnum, String content);
} }
...@@ -13,7 +13,10 @@ public enum UserOperationLogTypeEnum { ...@@ -13,7 +13,10 @@ public enum UserOperationLogTypeEnum {
LOGIN(1, "登录"), LOGIN(1, "登录"),
AUTHENTIFICATION(2, "实名认证"), AUTHENTIFICATION(2, "实名认证"),
AUDIT(3, "认证审核"), AUDIT(3, "认证审核"),
REGIST(4, "注册"); REGIST(4, "注册"),
RELEASE(5, "修改放货密码"),
EXCHANGE(6, "兑换礼品"),
SEND_CODE(7, "发送验证码");
private final Integer value; private final Integer value;
private final String desc; private final String desc;
......
...@@ -5,12 +5,18 @@ import cn.iocoder.yudao.module.member.api.user.dto.UserRespDTO; ...@@ -5,12 +5,18 @@ import cn.iocoder.yudao.module.member.api.user.dto.UserRespDTO;
import cn.iocoder.yudao.module.member.api.user.dto.UserSelectReqVO; import cn.iocoder.yudao.module.member.api.user.dto.UserSelectReqVO;
import cn.iocoder.yudao.module.member.convert.user.UserConvert; import cn.iocoder.yudao.module.member.convert.user.UserConvert;
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
import cn.iocoder.yudao.module.member.enums.UserOperationLogTypeEnum;
import cn.iocoder.yudao.module.member.service.auth.MemberAuthService;
import cn.iocoder.yudao.module.member.service.user.MemberUserService; import cn.iocoder.yudao.module.member.service.user.MemberUserService;
import cn.iocoder.yudao.module.member.service.userOperationLog.UserOperationLogService;
import cn.iocoder.yudao.module.member.vo.userOperationLog.UserOperationLogCreateReqVO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
/** /**
* 会员用户的 API 实现类 * 会员用户的 API 实现类
* *
...@@ -23,6 +29,12 @@ public class MemberUserApiImpl implements MemberUserApi { ...@@ -23,6 +29,12 @@ public class MemberUserApiImpl implements MemberUserApi {
@Resource @Resource
private MemberUserService userService; private MemberUserService userService;
@Resource
private MemberAuthService memberAuthService;
@Resource
private UserOperationLogService userOperationLogService;
@Override @Override
public UserRespDTO getUser(Long id) { public UserRespDTO getUser(Long id) {
MemberUserDO user = userService.info(id); MemberUserDO user = userService.info(id);
...@@ -35,6 +47,21 @@ public class MemberUserApiImpl implements MemberUserApi { ...@@ -35,6 +47,21 @@ public class MemberUserApiImpl implements MemberUserApi {
return UserConvert.INSTANCE.convert2(user); return UserConvert.INSTANCE.convert2(user);
} }
@Override
public void createUserOperationLog(String mobile, UserOperationLogTypeEnum typeEnum, String content) {
// 检验用户是否存在
MemberUserDO userDO = memberAuthService.checkUserIfExists(mobile);
//记录日志
UserOperationLogCreateReqVO userOperationLogCreateReqVO = new UserOperationLogCreateReqVO();
userOperationLogCreateReqVO
.setUserId(userDO.getId())
.setType(typeEnum.getValue())
.setTitle(typeEnum.getDesc())
.setIp(getClientIP())
.setContent(content);
userOperationLogService.createUserOperationLog(userOperationLogCreateReqVO);
}
@Override @Override
public PageResult<UserRespDTO> getUserList(UserSelectReqVO userSelectReqVO) { public PageResult<UserRespDTO> getUserList(UserSelectReqVO userSelectReqVO) {
PageResult<MemberUserDO> memberUserDOS = userService.selectList(userSelectReqVO); PageResult<MemberUserDO> memberUserDOS = userService.selectList(userSelectReqVO);
......
...@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.member.service.auth; ...@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.member.service.auth;
import cn.iocoder.yudao.framework.security.core.service.SecurityAuthFrameworkService; import cn.iocoder.yudao.framework.security.core.service.SecurityAuthFrameworkService;
import cn.iocoder.yudao.module.member.controller.app.auth.vo.*; import cn.iocoder.yudao.module.member.controller.app.auth.vo.*;
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
import javax.validation.Valid; import javax.validation.Valid;
...@@ -138,6 +139,7 @@ public interface MemberAuthService extends SecurityAuthFrameworkService { ...@@ -138,6 +139,7 @@ public interface MemberAuthService extends SecurityAuthFrameworkService {
*/ */
void sendEmailCode(Long loginUserId, AppEmailReqVO reqVO); void sendEmailCode(Long loginUserId, AppEmailReqVO reqVO);
public MemberUserDO checkUserIfExists(String mobile);
void memberCancellation(Long userId); void memberCancellation(Long userId);
} }
...@@ -446,6 +446,16 @@ public class MemberAuthServiceImpl implements MemberAuthService { ...@@ -446,6 +446,16 @@ public class MemberAuthServiceImpl implements MemberAuthService {
.content(I18nMessage.getMessage("app.message.update.control.password.content")) .content(I18nMessage.getMessage("app.message.update.control.password.content"))
.type(3).build(); .type(3).build();
clientInternalMessageApi.createInternalMessage(dto); clientInternalMessageApi.createInternalMessage(dto);
//记录日志
UserOperationLogCreateReqVO userOperationLogCreateReqVO = new UserOperationLogCreateReqVO();
userOperationLogCreateReqVO
.setUserId(userDO.getId())
.setType(UserOperationLogTypeEnum.RELEASE.getValue())
.setTitle(UserOperationLogTypeEnum.RELEASE.getDesc())
.setIp(getClientIP())
.setContent("修改放货密码成功");
userOperationLogService.createUserOperationLog(userOperationLogCreateReqVO);
} }
@Override @Override
...@@ -456,6 +466,32 @@ public class MemberAuthServiceImpl implements MemberAuthService { ...@@ -456,6 +466,32 @@ public class MemberAuthServiceImpl implements MemberAuthService {
if (StringUtils.isNotBlank(mobile)) { if (StringUtils.isNotBlank(mobile)) {
reqVO.setMobile(mobile); reqVO.setMobile(mobile);
} }
if (reqVO.getNodeValue().equals(SmsNodeEnum.MEMBER_FORGET_PASSWORD.getNodeValue())) {
// 检验用户是否存在
MemberUserDO userDO = checkUserIfExists(reqVO.getMobile());
//记录日志
UserOperationLogCreateReqVO userOperationLogCreateReqVO = new UserOperationLogCreateReqVO();
userOperationLogCreateReqVO
.setUserId(userDO.getId())
.setType(UserOperationLogTypeEnum.SEND_CODE.getValue())
.setTitle(UserOperationLogTypeEnum.SEND_CODE.getDesc())
.setIp(getClientIP())
.setContent("修改密码验证码");
userOperationLogService.createUserOperationLog(userOperationLogCreateReqVO);
} else if (reqVO.getNodeValue().equals(SmsNodeEnum.MEMBER_LOGIN.getNodeValue())) {
// 检验用户是否存在
MemberUserDO userDO = checkUserIfExists(reqVO.getMobile());
//记录日志
UserOperationLogCreateReqVO userOperationLogCreateReqVO = new UserOperationLogCreateReqVO();
userOperationLogCreateReqVO
.setUserId(userDO.getId())
.setType(UserOperationLogTypeEnum.SEND_CODE.getValue())
.setTitle(UserOperationLogTypeEnum.SEND_CODE.getDesc())
.setIp(getClientIP())
.setContent("登录验证码");
userOperationLogService.createUserOperationLog(userOperationLogCreateReqVO);
}
// TODO 要根据不同的场景,校验是否有用户 // TODO 要根据不同的场景,校验是否有用户
smsCodeApi.sendSmsCode(AuthConvert.INSTANCE.convert(reqVO).setCreateIp(getClientIP())); smsCodeApi.sendSmsCode(AuthConvert.INSTANCE.convert(reqVO).setCreateIp(getClientIP()));
} }
...@@ -533,6 +569,7 @@ public class MemberAuthServiceImpl implements MemberAuthService { ...@@ -533,6 +569,7 @@ public class MemberAuthServiceImpl implements MemberAuthService {
return user; return user;
} }
@Override
public MemberUserDO checkUserIfExists(String mobile) { public MemberUserDO checkUserIfExists(String mobile) {
MemberUserDO user = userMapper.selectByMobile(mobile); MemberUserDO user = userMapper.selectByMobile(mobile);
if (user == null) { if (user == null) {
......
...@@ -189,6 +189,8 @@ public class OrderCargoControlServiceImpl extends AbstractService<OrderCargoCont ...@@ -189,6 +189,8 @@ public class OrderCargoControlServiceImpl extends AbstractService<OrderCargoCont
orderCargoControl.getName() + "/" + (StringUtils.isNotBlank(orderCargoControl.getNameEn()) ? orderCargoControl.getNameEn() : "空"), orderCargoControl.getDialCode() + orderCargoControl.getPhone(), orderCargoControl.getName() + "/" + (StringUtils.isNotBlank(orderCargoControl.getNameEn()) ? orderCargoControl.getNameEn() : "空"), orderCargoControl.getDialCode() + orderCargoControl.getPhone(),
isPasswordPick ? "密码校验" : "验证码校验"); isPasswordPick ? "密码校验" : "验证码校验");
orderBusinessService.createOrderControlLog(orderCargoControl.getOrderId(), 3, "控货人信息转移", msg, 0L); orderBusinessService.createOrderControlLog(orderCargoControl.getOrderId(), 3, "控货人信息转移", msg, 0L);
// 订单操作日志
orderBusinessService.addOrderOperateLog(orderCargoControl.getOrderId(), "控货人信息转移", msg, "");
// 返回 // 返回
return orderCargoControl.getId(); return orderCargoControl.getId();
} }
......
...@@ -28,7 +28,6 @@ import cn.iocoder.yudao.module.order.dal.dataobject.approval.OrderApprovalDO; ...@@ -28,7 +28,6 @@ import cn.iocoder.yudao.module.order.dal.dataobject.approval.OrderApprovalDO;
import cn.iocoder.yudao.module.order.dal.dataobject.order.OrderDO; import cn.iocoder.yudao.module.order.dal.dataobject.order.OrderDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderCargoControl.OrderCargoControlDO; import cn.iocoder.yudao.module.order.dal.dataobject.orderCargoControl.OrderCargoControlDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderCargoControlPick.OrderCargoControlPickDO; import cn.iocoder.yudao.module.order.dal.dataobject.orderCargoControlPick.OrderCargoControlPickDO;
import cn.iocoder.yudao.module.order.dal.dataobject.orderObjective.OrderObjectiveDO;
import cn.iocoder.yudao.module.order.dal.mysql.approval.OrderApprovalMapper; import cn.iocoder.yudao.module.order.dal.mysql.approval.OrderApprovalMapper;
import cn.iocoder.yudao.module.order.dal.mysql.orderCargoControl.OrderCargoControlMapper; import cn.iocoder.yudao.module.order.dal.mysql.orderCargoControl.OrderCargoControlMapper;
import cn.iocoder.yudao.module.order.dal.mysql.orderCargoControlPick.OrderCargoControlPickMapper; import cn.iocoder.yudao.module.order.dal.mysql.orderCargoControlPick.OrderCargoControlPickMapper;
...@@ -140,9 +139,9 @@ public class OrderCargoControlPickServiceImpl extends AbstractService<OrderCargo ...@@ -140,9 +139,9 @@ public class OrderCargoControlPickServiceImpl extends AbstractService<OrderCargo
throw exception(CONSIGNEE_PHONE_NOT_NULL); throw exception(CONSIGNEE_PHONE_NOT_NULL);
} }
// 控货订单放货收货人电话号码不允许填写国内号码 // 控货订单放货收货人电话号码不允许填写国内号码
if (StringUtils.equals(createReqVO.getConsigneeCountryCode(), "86")) { // if (StringUtils.equals(createReqVO.getConsigneeCountryCode(), "86")) {
throw exception(CONSIGNEE_PHONE_IS_NOT_CHINA); // throw exception(CONSIGNEE_PHONE_IS_NOT_CHINA);
} // }
String mobileCode = createReqVO.getConsigneeCountryCode() + String mobileCode = createReqVO.getConsigneeCountryCode() +
StrUtil.COLON + createReqVO.getConsigneePhone(); StrUtil.COLON + createReqVO.getConsigneePhone();
paramValidatorApi.validatorMobile(mobileCode); paramValidatorApi.validatorMobile(mobileCode);
...@@ -341,6 +340,7 @@ public class OrderCargoControlPickServiceImpl extends AbstractService<OrderCargo ...@@ -341,6 +340,7 @@ public class OrderCargoControlPickServiceImpl extends AbstractService<OrderCargo
orderService.updateById(orderDO); orderService.updateById(orderDO);
// 订单控货信息日志补充 // 订单控货信息日志补充
orderBusinessService.createOrderControlLog(orderCargoControlPick.getOrderId(), 4, "订单放货", msg, 0L); orderBusinessService.createOrderControlLog(orderCargoControlPick.getOrderId(), 4, "订单放货", msg, 0L);
orderBusinessService.addOrderOperateLog(orderCargoControlPick.getOrderId(),"订单放货", msg, "");
//控货收货人自动创建客户 //控货收货人自动创建客户
customerApiImpl.associateCargoCustomerAuto(orderCargoControlPick.getConsigneeCountryCode(), orderCargoControlPick.getConsigneePhone(), orderCargoControlPick.getConsigneeName(), orderCargoControlPick.getConsigneeEmail()); customerApiImpl.associateCargoCustomerAuto(orderCargoControlPick.getConsigneeCountryCode(), orderCargoControlPick.getConsigneePhone(), orderCargoControlPick.getConsigneeName(), orderCargoControlPick.getConsigneeEmail());
// 返回 // 返回
...@@ -735,6 +735,10 @@ public class OrderCargoControlPickServiceImpl extends AbstractService<OrderCargo ...@@ -735,6 +735,10 @@ public class OrderCargoControlPickServiceImpl extends AbstractService<OrderCargo
// TODO 订单控货信息日志补充 // TODO 订单控货信息日志补充
if (CollectionUtil.isNotEmpty(controlLogParams)) { if (CollectionUtil.isNotEmpty(controlLogParams)) {
orderBusinessService.createOrderControlLogs(controlLogParams); orderBusinessService.createOrderControlLogs(controlLogParams);
// 订单操作日志
for (OrderControlLogParam controlLogParam : controlLogParams) {
orderBusinessService.addOrderOperateLog(controlLogParam.getOrderId(),controlLogParam.getType(), controlLogParam.getMsg(), "");
}
} }
} }
...@@ -1185,6 +1189,10 @@ public class OrderCargoControlPickServiceImpl extends AbstractService<OrderCargo ...@@ -1185,6 +1189,10 @@ public class OrderCargoControlPickServiceImpl extends AbstractService<OrderCargo
} }
orderApprovalMapper.updateById(orderApprovalDO); orderApprovalMapper.updateById(orderApprovalDO);
orderBusinessService.createOrderControlLogs(controlLogParams); orderBusinessService.createOrderControlLogs(controlLogParams);
// 订单操作日志
for (OrderControlLogParam controlLogParam : controlLogParams) {
orderBusinessService.addOrderOperateLog(controlLogParam.getOrderId(),controlLogParam.getType(), controlLogParam.getMsg(), "");
}
} }
private Integer addPickQuantity(Integer releaseNum, Integer controlNum, Integer sumNum, Integer sumQuantity, Integer controlQuantity) { private Integer addPickQuantity(Integer releaseNum, Integer controlNum, Integer sumNum, Integer sumQuantity, Integer controlQuantity) {
......
...@@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.member.api.user.MemberUserApi; ...@@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
import cn.iocoder.yudao.module.member.api.user.dto.UserRespDTO; import cn.iocoder.yudao.module.member.api.user.dto.UserRespDTO;
import cn.iocoder.yudao.module.member.enums.PlatformTypeEnum; import cn.iocoder.yudao.module.member.enums.PlatformTypeEnum;
import cn.iocoder.yudao.module.member.enums.ScoreSourceTypeEnum; import cn.iocoder.yudao.module.member.enums.ScoreSourceTypeEnum;
import cn.iocoder.yudao.module.member.enums.UserOperationLogTypeEnum;
import cn.iocoder.yudao.module.reward.api.reward.dto.RedeemDetailForUserDTO; import cn.iocoder.yudao.module.reward.api.reward.dto.RedeemDetailForUserDTO;
import cn.iocoder.yudao.module.reward.api.reward.dto.RedeemRewardReqVO; import cn.iocoder.yudao.module.reward.api.reward.dto.RedeemRewardReqVO;
import cn.iocoder.yudao.module.reward.api.reward.dto.RedeemRewardRespDTO; import cn.iocoder.yudao.module.reward.api.reward.dto.RedeemRewardRespDTO;
...@@ -108,6 +109,8 @@ public class RedeemRewardApiImpl implements RedeemRewardApi { ...@@ -108,6 +109,8 @@ public class RedeemRewardApiImpl implements RedeemRewardApi {
} finally { } finally {
lock.unlock(); lock.unlock();
} }
memberUserApi.createUserOperationLog(memberUser.getMobile(), UserOperationLogTypeEnum.EXCHANGE,
"兑换礼品:" + rewardDO.getTitleZh() + ",数量:" + redeemRewardReqVO.getRewardCount() + ",共消耗积分:" + redeemRewardReqVO.getRewardCount() * rewardDO.getPointsRequire());
return true; return true;
} }
...@@ -298,6 +301,7 @@ public class RedeemRewardApiImpl implements RedeemRewardApi { ...@@ -298,6 +301,7 @@ public class RedeemRewardApiImpl implements RedeemRewardApi {
smsCodeSendReqDTO.setTransportId(reqVO.getTransportId()); smsCodeSendReqDTO.setTransportId(reqVO.getTransportId());
smsCodeSendReqDTO.setIsOrders(reqVO.getIsOrders()); smsCodeSendReqDTO.setIsOrders(reqVO.getIsOrders());
smsCodeSendReqDTO.setMessageType(reqVO.getMessageType()); smsCodeSendReqDTO.setMessageType(reqVO.getMessageType());
memberUserApi.createUserOperationLog(memberUserApiUser.getMobile(), UserOperationLogTypeEnum.SEND_CODE, "兑换礼品节点验证码");
smsCodeApi.sendSmsCode(smsCodeSendReqDTO); smsCodeApi.sendSmsCode(smsCodeSendReqDTO);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment