Commit 19706490 authored by honghy's avatar honghy

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

parent 7bb03a6b
......@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.member.api.user;
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.UserSelectReqVO;
import cn.iocoder.yudao.module.member.enums.UserOperationLogTypeEnum;
/**
* 会员用户的 API 接口
......@@ -27,4 +28,6 @@ public interface MemberUserApi {
UserRespDTO getUserByMobile(String mobile);
void createUserOperationLog(String mobile, UserOperationLogTypeEnum typeEnum, String content);
}
......@@ -13,9 +13,12 @@ public enum UserOperationLogTypeEnum {
LOGIN(1, "登录"),
AUTHENTIFICATION(2, "实名认证"),
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;
}
......@@ -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.convert.user.UserConvert;
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.userOperationLog.UserOperationLogService;
import cn.iocoder.yudao.module.member.vo.userOperationLog.UserOperationLogCreateReqVO;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
/**
* 会员用户的 API 实现类
*
......@@ -23,6 +29,12 @@ public class MemberUserApiImpl implements MemberUserApi {
@Resource
private MemberUserService userService;
@Resource
private MemberAuthService memberAuthService;
@Resource
private UserOperationLogService userOperationLogService;
@Override
public UserRespDTO getUser(Long id) {
MemberUserDO user = userService.info(id);
......@@ -35,6 +47,21 @@ public class MemberUserApiImpl implements MemberUserApi {
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
public PageResult<UserRespDTO> getUserList(UserSelectReqVO userSelectReqVO) {
PageResult<MemberUserDO> memberUserDOS = userService.selectList(userSelectReqVO);
......
......@@ -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.module.member.controller.app.auth.vo.*;
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
import javax.validation.Valid;
......@@ -138,6 +139,7 @@ public interface MemberAuthService extends SecurityAuthFrameworkService {
*/
void sendEmailCode(Long loginUserId, AppEmailReqVO reqVO);
public MemberUserDO checkUserIfExists(String mobile);
void memberCancellation(Long userId);
}
......@@ -446,6 +446,16 @@ public class MemberAuthServiceImpl implements MemberAuthService {
.content(I18nMessage.getMessage("app.message.update.control.password.content"))
.type(3).build();
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
......@@ -456,6 +466,32 @@ public class MemberAuthServiceImpl implements MemberAuthService {
if (StringUtils.isNotBlank(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 要根据不同的场景,校验是否有用户
smsCodeApi.sendSmsCode(AuthConvert.INSTANCE.convert(reqVO).setCreateIp(getClientIP()));
}
......@@ -533,6 +569,7 @@ public class MemberAuthServiceImpl implements MemberAuthService {
return user;
}
@Override
public MemberUserDO checkUserIfExists(String mobile) {
MemberUserDO user = userMapper.selectByMobile(mobile);
if (user == null) {
......
......@@ -189,6 +189,8 @@ public class OrderCargoControlServiceImpl extends AbstractService<OrderCargoCont
orderCargoControl.getName() + "/" + (StringUtils.isNotBlank(orderCargoControl.getNameEn()) ? orderCargoControl.getNameEn() : "空"), orderCargoControl.getDialCode() + orderCargoControl.getPhone(),
isPasswordPick ? "密码校验" : "验证码校验");
orderBusinessService.createOrderControlLog(orderCargoControl.getOrderId(), 3, "控货人信息转移", msg, 0L);
// 订单操作日志
orderBusinessService.addOrderOperateLog(orderCargoControl.getOrderId(), "控货人信息转移", msg, "");
// 返回
return orderCargoControl.getId();
}
......
......@@ -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.orderCargoControl.OrderCargoControlDO;
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.orderCargoControl.OrderCargoControlMapper;
import cn.iocoder.yudao.module.order.dal.mysql.orderCargoControlPick.OrderCargoControlPickMapper;
......@@ -140,9 +139,9 @@ public class OrderCargoControlPickServiceImpl extends AbstractService<OrderCargo
throw exception(CONSIGNEE_PHONE_NOT_NULL);
}
// 控货订单放货收货人电话号码不允许填写国内号码
if (StringUtils.equals(createReqVO.getConsigneeCountryCode(), "86")) {
throw exception(CONSIGNEE_PHONE_IS_NOT_CHINA);
}
// if (StringUtils.equals(createReqVO.getConsigneeCountryCode(), "86")) {
// throw exception(CONSIGNEE_PHONE_IS_NOT_CHINA);
// }
String mobileCode = createReqVO.getConsigneeCountryCode() +
StrUtil.COLON + createReqVO.getConsigneePhone();
paramValidatorApi.validatorMobile(mobileCode);
......@@ -341,6 +340,7 @@ public class OrderCargoControlPickServiceImpl extends AbstractService<OrderCargo
orderService.updateById(orderDO);
// 订单控货信息日志补充
orderBusinessService.createOrderControlLog(orderCargoControlPick.getOrderId(), 4, "订单放货", msg, 0L);
orderBusinessService.addOrderOperateLog(orderCargoControlPick.getOrderId(),"订单放货", msg, "");
//控货收货人自动创建客户
customerApiImpl.associateCargoCustomerAuto(orderCargoControlPick.getConsigneeCountryCode(), orderCargoControlPick.getConsigneePhone(), orderCargoControlPick.getConsigneeName(), orderCargoControlPick.getConsigneeEmail());
// 返回
......@@ -735,6 +735,10 @@ public class OrderCargoControlPickServiceImpl extends AbstractService<OrderCargo
// TODO 订单控货信息日志补充
if (CollectionUtil.isNotEmpty(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
}
orderApprovalMapper.updateById(orderApprovalDO);
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) {
......
......@@ -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.enums.PlatformTypeEnum;
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.RedeemRewardReqVO;
import cn.iocoder.yudao.module.reward.api.reward.dto.RedeemRewardRespDTO;
......@@ -108,6 +109,8 @@ public class RedeemRewardApiImpl implements RedeemRewardApi {
} finally {
lock.unlock();
}
memberUserApi.createUserOperationLog(memberUser.getMobile(), UserOperationLogTypeEnum.EXCHANGE,
"兑换礼品:" + rewardDO.getTitleZh() + ",数量:" + redeemRewardReqVO.getRewardCount() + ",共消耗积分:" + redeemRewardReqVO.getRewardCount() * rewardDO.getPointsRequire());
return true;
}
......@@ -298,6 +301,7 @@ public class RedeemRewardApiImpl implements RedeemRewardApi {
smsCodeSendReqDTO.setTransportId(reqVO.getTransportId());
smsCodeSendReqDTO.setIsOrders(reqVO.getIsOrders());
smsCodeSendReqDTO.setMessageType(reqVO.getMessageType());
memberUserApi.createUserOperationLog(memberUserApiUser.getMobile(), UserOperationLogTypeEnum.SEND_CODE, "兑换礼品节点验证码");
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