|
@@ -6,12 +6,16 @@ import cn.kdan.cloud.pdf.office.account.service.CompanyService;
|
|
|
import cn.kdan.cloud.pdf.office.account.service.UserService;
|
|
|
import cn.kdan.cloud.pdf.office.account.vo.UserDetailVO;
|
|
|
import cn.kdan.cloud.pdf.office.account.vo.UserPageVO;
|
|
|
+import cn.kdan.cloud.pdf.office.api.account.dto.PermissionGiftDTO;
|
|
|
+import cn.kdan.cloud.pdf.office.api.account.dto.PermissionTransferDTO;
|
|
|
+import cn.kdan.cloud.pdf.office.api.account.dto.UpdateUserForPaySuccessDTO;
|
|
|
+import cn.kdan.cloud.pdf.office.api.account.dto.UpdateUserForRefundDTO;
|
|
|
import cn.kdan.cloud.pdf.office.common.constant.CommonConstant;
|
|
|
import cn.kdan.cloud.pdf.office.common.dto.UserRegisterDTO;
|
|
|
import cn.kdan.cloud.pdf.office.common.enums.EmailCodeTypeEnum;
|
|
|
import cn.kdan.cloud.pdf.office.common.enums.ValidStatusEnum;
|
|
|
import cn.kdan.cloud.pdf.office.common.enums.account.AccountTypeEnum;
|
|
|
-import cn.kdan.cloud.pdf.office.common.enums.account.PDFOfficeUserStatusEnum;
|
|
|
+import cn.kdan.cloud.pdf.office.common.enums.account.PlatformTypeEnum;
|
|
|
import cn.kdan.cloud.pdf.office.common.exception.BackendRuntimeException;
|
|
|
import cn.kdan.cloud.pdf.office.common.utils.CommonUtils;
|
|
|
import cn.kdan.cloud.pdf.office.common.utils.RedisUtils;
|
|
@@ -46,6 +50,11 @@ public class UserServiceImpl implements UserService {
|
|
|
return convert(userMapper.selectByPrimaryKey(userId));
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public User getUser(String userId) {
|
|
|
+ return userMapper.selectByPrimaryKey(userId);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public PageInfo<UserPageVO> page(Integer page, Integer pageSize,
|
|
|
String selectType,
|
|
@@ -66,17 +75,18 @@ public class UserServiceImpl implements UserService {
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public UserInfoVO getByAccount(String account) {
|
|
|
- List<User> list = userMapper.getByAccount(account,null,null);
|
|
|
- return CollectionUtils.isEmpty(list) ? null : convert(list.get(0));
|
|
|
+ public User getByAccount(String account, String appId, String platformType) {
|
|
|
+ List<User> list = userMapper.getByAccount(account,appId,Integer.parseInt(platformType));
|
|
|
+ return CollectionUtils.isEmpty(list) ? null : list.get(0);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public UserInfoVO getByAppAccount(String account,String appId,String platformType) {
|
|
|
- List<User> list = userMapper.getByAccount(account,appId,platformType);
|
|
|
+ List<User> list = userMapper.getByAccount(account,appId,Integer.parseInt(platformType));
|
|
|
return CollectionUtils.isEmpty(list) ? null : convert(list.get(0));
|
|
|
}
|
|
|
|
|
|
+
|
|
|
public UserInfoVO convert(User user) {
|
|
|
if(user == null){
|
|
|
return new UserInfoVO();
|
|
@@ -86,6 +96,11 @@ public class UserServiceImpl implements UserService {
|
|
|
return userInfoVO;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public UserPageVO getUserForTransfer(String userId) {
|
|
|
+ return userMapper.getUserByIdWithApp(userId);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public UserDetailVO detail(String userId) {
|
|
|
UserDetailVO detailVO = new UserDetailVO();
|
|
@@ -100,16 +115,17 @@ public class UserServiceImpl implements UserService {
|
|
|
return detailVO;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- public void updateUserForPaySuccess(String userId,String payTpe,String memberType) {
|
|
|
+ @Override
|
|
|
+ public void updateUserForPaySuccess(UpdateUserForPaySuccessDTO updateUserForPaySuccessDTO) {
|
|
|
//支付成功之后修改用户状态
|
|
|
- User user = userMapper.selectByPrimaryKey(userId);
|
|
|
+ User user = userMapper.selectByPrimaryKey(updateUserForPaySuccessDTO.getUserId());
|
|
|
//通过用户可以查到对应的app
|
|
|
user.setUpdatedAt(new Date());
|
|
|
//账号类型 付费账号1 免费账号0 AccountTypeEnum
|
|
|
user.setAccountType(AccountTypeEnum.PAID_ACCOUNT.value());
|
|
|
//付费类型 0 试用 1单次购买 2订阅 3单次购买+订阅 4买断 PaidTypeEnum
|
|
|
user.setPayType(null);
|
|
|
+ user.setMemberType(updateUserForPaySuccessDTO.getMemberType());
|
|
|
//0已注销(1订阅中2订阅过期3试用中4试用过期)PDFOfficeUserStatusEnum
|
|
|
//用户如果在订阅中 然后给用户赠送了试用,那么状态还是订阅中(根据付费类型和当前状态来判断)
|
|
|
|
|
@@ -117,9 +133,10 @@ public class UserServiceImpl implements UserService {
|
|
|
userMapper.updateByPrimaryKey(user);
|
|
|
}
|
|
|
|
|
|
- public void updateUserForRefund(String userId,String paidType,String userStatus,String MemberType) {
|
|
|
+ @Override
|
|
|
+ public void updateUserForRefund(UpdateUserForRefundDTO updateUserForRefundDTO) {
|
|
|
//退单之后修改用户状态
|
|
|
- User user = userMapper.selectByPrimaryKey(userId);
|
|
|
+ User user = userMapper.selectByPrimaryKey(updateUserForRefundDTO.getUserId());
|
|
|
user.setUpdatedAt(new Date());
|
|
|
// 推线账号类型 付费账号1 免费账号0 AccountTypeEnum
|
|
|
// user.setAccountType(AccountTypeEnum.PAID_ACCOUNT.value());
|
|
@@ -134,14 +151,43 @@ public class UserServiceImpl implements UserService {
|
|
|
public void register(UserRegisterDTO userRegisterDTO) {
|
|
|
//参数校验
|
|
|
validRegisterParam(userRegisterDTO);
|
|
|
+ User user = initUser(userRegisterDTO.getAppId(),userRegisterDTO.getUsername());
|
|
|
+ //todo 发邮件
|
|
|
+ }
|
|
|
+
|
|
|
+ private User initUser(String appId, String email) {
|
|
|
User user = new User();
|
|
|
user.setId(CommonUtils.generateId());
|
|
|
- user.setAppId(userRegisterDTO.getAppId());
|
|
|
- user.setEmail(userRegisterDTO.getUsername());
|
|
|
+ user.setAppId(appId);
|
|
|
+ user.setEmail(email);
|
|
|
user.setCreatedAt(new Date());
|
|
|
+ user.setAccountType(AccountTypeEnum.FREE_ACCOUNT.value());
|
|
|
+ user.setPlatformType(PlatformTypeEnum.WEBSITE.value());
|
|
|
user.setValidFlag(ValidStatusEnum.VALID.value());
|
|
|
userMapper.insert(user);
|
|
|
- //todo 发邮件
|
|
|
+ return user;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void permissionGift(PermissionGiftDTO permissionGiftDTO) {
|
|
|
+ String userId = "";
|
|
|
+ User user = getByAccount(permissionGiftDTO.getAppId(),permissionGiftDTO.getEmail(), PlatformTypeEnum.WEBSITE.value().toString());
|
|
|
+ //如果用户不存在
|
|
|
+ if (ObjectUtils.isEmpty(getByAppAccount(permissionGiftDTO.getAppId(),permissionGiftDTO.getEmail(), PlatformTypeEnum.WEBSITE.value().toString()))) {
|
|
|
+ user = initUser(permissionGiftDTO.getAppId(),permissionGiftDTO.getEmail());
|
|
|
+ }
|
|
|
+ //todo 给指定用户用户创建一个订单
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void permissionTransfer(PermissionTransferDTO permissionTransferDTO) {
|
|
|
+ //修改用户的email
|
|
|
+ User user = getUser(permissionTransferDTO.getOldUserId());
|
|
|
+ user.setEmail(permissionTransferDTO.getNewEmail());
|
|
|
+ user.setUpdatedAt(new Date());
|
|
|
+ userMapper.updateByPrimaryKey(user);
|
|
|
+ //todo 修改用户的订阅(填充remark)
|
|
|
+
|
|
|
}
|
|
|
|
|
|
private void validRegisterParam(UserRegisterDTO param) {
|
|
@@ -158,6 +204,8 @@ public class UserServiceImpl implements UserService {
|
|
|
checkEmailCodeValid(EmailCodeTypeEnum.USER_REGISTER, param.getUsername(), param.getVerifyCode());
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
private void checkEmailCodeValid(EmailCodeTypeEnum type, String account, String code) {
|
|
|
//获取用户存在redis中的登录邮箱验证码
|
|
|
String captchaCode = redisUtils.hget(CommonConstant.EMAIL_VERIFY_CODE_KEY + type.value(), account);
|