增加会员增加功能
parent
9d238fe6d0
commit
e17411b470
|
|
@ -51,6 +51,14 @@ public class MemberUserController {
|
||||||
@Resource
|
@Resource
|
||||||
private MemberPointRecordService memberPointRecordService;
|
private MemberPointRecordService memberPointRecordService;
|
||||||
|
|
||||||
|
@PostMapping("/create")
|
||||||
|
@Operation(summary = "创建会员用户")
|
||||||
|
@PreAuthorize("@ss.hasPermission('member:user:create')")
|
||||||
|
public CommonResult<MemberUserCreateRespVO> createUser(@Valid @RequestBody MemberUserBaseVO createReqVO) {
|
||||||
|
MemberUserCreateRespVO respVO = memberUserService.createUser(createReqVO);
|
||||||
|
return success(respVO);
|
||||||
|
}
|
||||||
|
|
||||||
@PutMapping("/update")
|
@PutMapping("/update")
|
||||||
@Operation(summary = "更新会员用户")
|
@Operation(summary = "更新会员用户")
|
||||||
@PreAuthorize("@ss.hasPermission('member:user:update')")
|
@PreAuthorize("@ss.hasPermission('member:user:update')")
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package com.yanzhu.module.member.controller.admin.user.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员用户创建响应 VO
|
||||||
|
*
|
||||||
|
* @author 研筑科技
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class MemberUserCreateRespVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户编号
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成的密码
|
||||||
|
*/
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -3,6 +3,8 @@ package com.yanzhu.module.member.service.user;
|
||||||
import com.yanzhu.framework.common.enums.TerminalEnum;
|
import com.yanzhu.framework.common.enums.TerminalEnum;
|
||||||
import com.yanzhu.framework.common.pojo.PageResult;
|
import com.yanzhu.framework.common.pojo.PageResult;
|
||||||
import com.yanzhu.framework.common.validation.Mobile;
|
import com.yanzhu.framework.common.validation.Mobile;
|
||||||
|
import com.yanzhu.module.member.controller.admin.user.vo.MemberUserBaseVO;
|
||||||
|
import com.yanzhu.module.member.controller.admin.user.vo.MemberUserCreateRespVO;
|
||||||
import com.yanzhu.module.member.controller.admin.user.vo.MemberUserPageReqVO;
|
import com.yanzhu.module.member.controller.admin.user.vo.MemberUserPageReqVO;
|
||||||
import com.yanzhu.module.member.controller.admin.user.vo.MemberUserUpdateReqVO;
|
import com.yanzhu.module.member.controller.admin.user.vo.MemberUserUpdateReqVO;
|
||||||
import com.yanzhu.module.member.controller.app.user.vo.*;
|
import com.yanzhu.module.member.controller.app.user.vo.*;
|
||||||
|
|
@ -130,6 +132,14 @@ public interface MemberUserService {
|
||||||
*/
|
*/
|
||||||
boolean isPasswordMatch(String rawPassword, String encodedPassword);
|
boolean isPasswordMatch(String rawPassword, String encodedPassword);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 【管理员】创建会员用户
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 用户编号和生成的密码
|
||||||
|
*/
|
||||||
|
MemberUserCreateRespVO createUser(@Valid MemberUserBaseVO createReqVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 【管理员】更新会员用户
|
* 【管理员】更新会员用户
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,12 @@ import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.util.*;
|
import cn.hutool.core.util.*;
|
||||||
import com.yanzhu.framework.common.enums.CommonStatusEnum;
|
import com.yanzhu.framework.common.enums.CommonStatusEnum;
|
||||||
import com.yanzhu.framework.common.enums.UserTypeEnum;
|
import com.yanzhu.framework.common.enums.UserTypeEnum;
|
||||||
|
import com.yanzhu.framework.common.enums.TerminalEnum;
|
||||||
import com.yanzhu.framework.common.pojo.PageResult;
|
import com.yanzhu.framework.common.pojo.PageResult;
|
||||||
import com.yanzhu.framework.common.util.object.BeanUtils;
|
import com.yanzhu.framework.common.util.object.BeanUtils;
|
||||||
|
import com.yanzhu.framework.common.util.servlet.ServletUtils;
|
||||||
|
import com.yanzhu.module.member.controller.admin.user.vo.MemberUserBaseVO;
|
||||||
|
import com.yanzhu.module.member.controller.admin.user.vo.MemberUserCreateRespVO;
|
||||||
import com.yanzhu.module.member.controller.admin.user.vo.MemberUserPageReqVO;
|
import com.yanzhu.module.member.controller.admin.user.vo.MemberUserPageReqVO;
|
||||||
import com.yanzhu.module.member.controller.admin.user.vo.MemberUserUpdateReqVO;
|
import com.yanzhu.module.member.controller.admin.user.vo.MemberUserUpdateReqVO;
|
||||||
import com.yanzhu.module.member.controller.app.user.vo.*;
|
import com.yanzhu.module.member.controller.app.user.vo.*;
|
||||||
|
|
@ -231,6 +235,58 @@ public class MemberUserServiceImpl implements MemberUserService {
|
||||||
return passwordEncoder.encode(password);
|
return passwordEncoder.encode(password);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public MemberUserCreateRespVO createUser(MemberUserBaseVO createReqVO) {
|
||||||
|
// 校验手机唯一
|
||||||
|
validateMobileUnique(null, createReqVO.getMobile());
|
||||||
|
|
||||||
|
// 创建用户
|
||||||
|
MemberUserDO user = new MemberUserDO();
|
||||||
|
user.setMobile(createReqVO.getMobile());
|
||||||
|
if (createReqVO.getStatus() != null) {
|
||||||
|
user.setStatus(Integer.valueOf(createReqVO.getStatus()));
|
||||||
|
}
|
||||||
|
user.setNickname(createReqVO.getNickname());
|
||||||
|
user.setAvatar(createReqVO.getAvatar());
|
||||||
|
user.setName(createReqVO.getName());
|
||||||
|
user.setSex(createReqVO.getSex());
|
||||||
|
if (createReqVO.getAreaId() != null) {
|
||||||
|
user.setAreaId(Math.toIntExact(createReqVO.getAreaId()));
|
||||||
|
}
|
||||||
|
user.setBirthday(createReqVO.getBirthday());
|
||||||
|
user.setMark(createReqVO.getMark());
|
||||||
|
user.setTagIds(createReqVO.getTagIds());
|
||||||
|
user.setLevelId(createReqVO.getLevelId());
|
||||||
|
user.setGroupId(createReqVO.getGroupId());
|
||||||
|
|
||||||
|
// 使用手机号码的后6位作为密码
|
||||||
|
String password = createReqVO.getMobile().substring(createReqVO.getMobile().length() - 6);
|
||||||
|
user.setPassword(encodePassword(password));
|
||||||
|
|
||||||
|
// 设置注册信息
|
||||||
|
user.setRegisterIp(ServletUtils.getClientIP());
|
||||||
|
user.setRegisterTerminal(TerminalEnum.H5.getTerminal());
|
||||||
|
|
||||||
|
// 插入数据库
|
||||||
|
memberUserMapper.insert(user);
|
||||||
|
|
||||||
|
// 发送 MQ 消息:用户创建
|
||||||
|
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
|
||||||
|
@Override
|
||||||
|
public void afterCommit() {
|
||||||
|
memberUserProducer.sendUserCreateMessage(user.getId());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 构建返回结果
|
||||||
|
MemberUserCreateRespVO respVO = new MemberUserCreateRespVO();
|
||||||
|
respVO.setUserId(user.getId());
|
||||||
|
respVO.setPassword(password);
|
||||||
|
|
||||||
|
return respVO;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateUser(MemberUserUpdateReqVO updateReqVO) {
|
public void updateUser(MemberUserUpdateReqVO updateReqVO) {
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,11 @@ export const getUser = async (id: number) => {
|
||||||
return await request.get({ url: `/member/user/get?id=` + id })
|
return await request.get({ url: `/member/user/get?id=` + id })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 创建会员用户
|
||||||
|
export const createUser = async (data: UserVO) => {
|
||||||
|
return await request.post({ url: `/member/user/create`, data })
|
||||||
|
}
|
||||||
|
|
||||||
// 修改会员用户
|
// 修改会员用户
|
||||||
export const updateUser = async (data: UserVO) => {
|
export const updateUser = async (data: UserVO) => {
|
||||||
return await request.put({ url: `/member/user/update`, data })
|
return await request.put({ url: `/member/user/update`, data })
|
||||||
|
|
|
||||||
|
|
@ -138,8 +138,7 @@ const submitForm = async () => {
|
||||||
try {
|
try {
|
||||||
const data = formData.value as unknown as UserApi.UserVO
|
const data = formData.value as unknown as UserApi.UserVO
|
||||||
if (formType.value === 'create') {
|
if (formType.value === 'create') {
|
||||||
// 说明:目前暂时没有新增操作。如果自己业务需要,可以进行扩展
|
await UserApi.createUser(data)
|
||||||
// await UserApi.createUser(data)
|
|
||||||
message.success(t('common.createSuccess'))
|
message.success(t('common.createSuccess'))
|
||||||
} else {
|
} else {
|
||||||
await UserApi.updateUser(data)
|
await UserApi.updateUser(data)
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,10 @@
|
||||||
<MemberGroupSelect v-model="queryParams.groupId" />
|
<MemberGroupSelect v-model="queryParams.groupId" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
|
<el-button v-hasPermi="['member:user:create']" @click="openForm('create')">
|
||||||
|
<Icon class="mr-5px" icon="ep:plus" />
|
||||||
|
新增
|
||||||
|
</el-button>
|
||||||
<el-button @click="handleQuery">
|
<el-button @click="handleQuery">
|
||||||
<Icon class="mr-5px" icon="ep:search" />
|
<Icon class="mr-5px" icon="ep:search" />
|
||||||
搜索
|
搜索
|
||||||
|
|
|
||||||
|
|
@ -31,8 +31,8 @@ export const password = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
validateFunction: function (rule, value, data, callback) {
|
validateFunction: function (rule, value, data, callback) {
|
||||||
if (!/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]+\S{5,12}$/.test(value)) {
|
if (value.length < 6) {
|
||||||
callback('需包含字母和数字,长度在6-12之间');
|
callback('密码长度至少6位');
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue