新增会员房屋管理
parent
ed76761769
commit
325d782450
|
|
@ -6,6 +6,7 @@ import com.fjrcloud.community.framework.common.pojo.PageParam;
|
|||
import com.fjrcloud.community.framework.common.pojo.PageResult;
|
||||
import com.fjrcloud.community.framework.common.util.object.BeanUtils;
|
||||
import com.fjrcloud.community.framework.excel.core.util.ExcelUtils;
|
||||
import com.fjrcloud.community.module.community.controller.admin.memberhouse.vo.MemberHouseAuditReqVO;
|
||||
import com.fjrcloud.community.module.community.controller.admin.memberhouse.vo.MemberHousePageReqVO;
|
||||
import com.fjrcloud.community.module.community.controller.admin.memberhouse.vo.MemberHouseRespVO;
|
||||
import com.fjrcloud.community.module.community.controller.admin.memberhouse.vo.MemberHouseSaveReqVO;
|
||||
|
|
@ -99,4 +100,12 @@ public class MemberHouseController {
|
|||
BeanUtils.toBean(list, MemberHouseRespVO.class));
|
||||
}
|
||||
|
||||
@PutMapping("/audit")
|
||||
@Operation(summary = "审核业主认证")
|
||||
@PreAuthorize("@ss.hasPermission('community:member-house:audit')")
|
||||
public CommonResult<Boolean> auditMemberHouse(@Valid @RequestBody MemberHouseAuditReqVO auditReqVO) {
|
||||
memberHouseService.auditMemberHouse(auditReqVO.getId(), auditReqVO.getStatus(), auditReqVO.getRejectReason());
|
||||
return success(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.fjrcloud.community.module.community.controller.admin.memberhouse.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Schema(description = "管理后台 - 业主认证审核 Request VO")
|
||||
@Data
|
||||
public class MemberHouseAuditReqVO {
|
||||
|
||||
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "20067")
|
||||
@NotNull(message = "主键ID不能为空")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "审核状态(1-通过,2-驳回)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@NotNull(message = "审核状态不能为空")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "驳回原因", example = "证件信息不清晰")
|
||||
private String rejectReason;
|
||||
|
||||
}
|
||||
|
|
@ -81,6 +81,10 @@ public class MemberHouseRespVO {
|
|||
@ExcelProperty("附件URL")
|
||||
private String attachmentUrl;
|
||||
|
||||
@Schema(description = "人脸照片URL", example = "https://www.fjrcloud.cn/face.jpg")
|
||||
@ExcelProperty("人脸照片URL")
|
||||
private String facePhotoUrl;
|
||||
|
||||
@Schema(description = "认证状态(0-待审核,1-已认证,2-驳回)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@ExcelProperty("认证状态(0-待审核,1-已认证,2-驳回)")
|
||||
private Integer status;
|
||||
|
|
|
|||
|
|
@ -13,8 +13,7 @@ public class MemberHouseSaveReqVO {
|
|||
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "20067")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "会员ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24858")
|
||||
@NotNull(message = "会员ID不能为空")
|
||||
@Schema(description = "会员ID", example = "24858")
|
||||
private Long memberId;
|
||||
|
||||
@Schema(description = "小区ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15661")
|
||||
|
|
@ -65,6 +64,9 @@ public class MemberHouseSaveReqVO {
|
|||
@Schema(description = "附件URL", example = "https://www.fjrcloud.cn")
|
||||
private String attachmentUrl;
|
||||
|
||||
@Schema(description = "人脸照片URL", example = "https://www.fjrcloud.cn/face.jpg")
|
||||
private String facePhotoUrl;
|
||||
|
||||
@Schema(description = "认证状态(0-待审核,1-已认证,2-驳回)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@NotNull(message = "认证状态(0-待审核,1-已认证,2-驳回)不能为空")
|
||||
private Integer status;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.fjrcloud.community.module.community.dal.dataobject.memberhouse;
|
|||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fjrcloud.community.framework.mybatis.core.dataobject.BaseDO;
|
||||
import com.fjrcloud.community.framework.tenant.core.db.TenantBaseDO;
|
||||
import lombok.*;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
|
@ -22,7 +22,7 @@ import java.time.LocalDateTime;
|
|||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class MemberHouseDO extends BaseDO {
|
||||
public class MemberHouseDO extends TenantBaseDO {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
|
|
@ -93,6 +93,10 @@ public class MemberHouseDO extends BaseDO {
|
|||
* 附件URL
|
||||
*/
|
||||
private String attachmentUrl;
|
||||
/**
|
||||
* 人脸照片URL
|
||||
*/
|
||||
private String facePhotoUrl;
|
||||
/**
|
||||
* 认证状态(0-待审核,1-已认证,2-驳回)
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -28,4 +28,7 @@ public interface ErrorCodeConstants {
|
|||
ErrorCode MEMBER_HOUSE_AUDIT_STATUS_ERROR = new ErrorCode(2_002_001_005, "该记录状态不允许进行审核操作");
|
||||
|
||||
ErrorCode MEMBER_HOUSE_REJECT_REASON_REQUIRED = new ErrorCode(2_002_001_006, "驳回时必须填写驳回原因");
|
||||
|
||||
ErrorCode MEMBER_HOUSE_MOBILE_REQUIRED = new ErrorCode(2_002_001_007,"手机号不能为空");
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ import com.fjrcloud.community.module.community.controller.admin.memberhouse.vo.M
|
|||
import com.fjrcloud.community.module.community.dal.dataobject.memberhouse.MemberHouseDO;
|
||||
import com.fjrcloud.community.module.community.dal.mysql.memberhouse.MemberHouseMapper;
|
||||
import com.fjrcloud.community.module.community.service.community.CommunityService;
|
||||
import com.fjrcloud.community.module.member.dal.dataobject.user.MemberUserDO;
|
||||
import com.fjrcloud.community.module.member.service.user.MemberUserService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
|
@ -21,6 +23,7 @@ import java.util.List;
|
|||
|
||||
import static com.fjrcloud.community.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.fjrcloud.community.module.community.enums.ErrorCodeConstants.*;
|
||||
import static com.fjrcloud.community.module.member.enums.ErrorCodeConstants.USER_MOBILE_NOT_EXISTS;
|
||||
|
||||
/**
|
||||
* 业主认证信息 Service 实现类
|
||||
|
|
@ -38,6 +41,9 @@ public class MemberHouseServiceImpl implements MemberHouseService {
|
|||
@Resource
|
||||
private CommunityService communityService;
|
||||
|
||||
@Resource
|
||||
private MemberUserService memberUserService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Long createMemberHouse(MemberHouseSaveReqVO createReqVO) {
|
||||
|
|
@ -46,7 +52,19 @@ public class MemberHouseServiceImpl implements MemberHouseService {
|
|||
throw exception(COMMUNITY_NOT_EXISTS);
|
||||
}
|
||||
|
||||
// 2. 校验重复认证:同一小区、同一房屋、同一手机号不能重复认证
|
||||
// 2. 如果 memberId 为空,通过手机号检索会员
|
||||
if (createReqVO.getMemberId() == null) {
|
||||
if (StrUtil.isBlank(createReqVO.getMobile())) {
|
||||
throw exception(MEMBER_HOUSE_MOBILE_REQUIRED);
|
||||
}
|
||||
MemberUserDO user = memberUserService.getUserByMobile(createReqVO.getMobile());
|
||||
if (user == null) {
|
||||
throw exception(USER_MOBILE_NOT_EXISTS);
|
||||
}
|
||||
createReqVO.setMemberId(user.getId());
|
||||
}
|
||||
|
||||
// 3. 校验重复认证:同一小区、同一房屋、同一手机号不能重复认证
|
||||
List<MemberHouseDO> existList = memberHouseMapper.selectListByCommunityAndRoom(
|
||||
createReqVO.getCommunityId(),
|
||||
createReqVO.getBuildingNo(),
|
||||
|
|
@ -57,9 +75,9 @@ public class MemberHouseServiceImpl implements MemberHouseService {
|
|||
throw exception(MEMBER_HOUSE_EXISTS);
|
||||
}
|
||||
|
||||
// 3. 插入数据,默认状态为待审核 (0)
|
||||
// 4. 插入数据
|
||||
MemberHouseDO memberHouse = BeanUtils.toBean(createReqVO, MemberHouseDO.class);
|
||||
memberHouse.setStatus(0);
|
||||
memberHouse.setTenantId(createReqVO.getCommunityId());
|
||||
memberHouseMapper.insert(memberHouse);
|
||||
|
||||
return memberHouse.getId();
|
||||
|
|
@ -71,11 +89,23 @@ public class MemberHouseServiceImpl implements MemberHouseService {
|
|||
// 校验存在
|
||||
MemberHouseDO existHouse = validateMemberHouseExists(updateReqVO.getId());
|
||||
|
||||
// 如果状态不是待审核或驳回,不允许修改基础信息(视业务规则而定)
|
||||
// 如果状态不是待审核或驳回,不允许修改基础信息
|
||||
if (existHouse.getStatus().equals(1)) {
|
||||
throw exception(MEMBER_HOUSE_AUDITED_NOT_UPDATE);
|
||||
}
|
||||
|
||||
// 如果 memberId 为空,通过手机号检索会员
|
||||
if (updateReqVO.getMemberId() == null) {
|
||||
if (StrUtil.isBlank(updateReqVO.getMobile())) {
|
||||
throw exception(MEMBER_HOUSE_MOBILE_REQUIRED);
|
||||
}
|
||||
MemberUserDO user = memberUserService.getUserByMobile(updateReqVO.getMobile());
|
||||
if (user == null) {
|
||||
throw exception(USER_MOBILE_NOT_EXISTS);
|
||||
}
|
||||
updateReqVO.setMemberId(user.getId());
|
||||
}
|
||||
|
||||
// 更新
|
||||
MemberHouseDO updateObj = BeanUtils.toBean(updateReqVO, MemberHouseDO.class);
|
||||
memberHouseMapper.updateById(updateObj);
|
||||
|
|
@ -102,21 +132,16 @@ public class MemberHouseServiceImpl implements MemberHouseService {
|
|||
// 1. 校验记录存在
|
||||
MemberHouseDO house = validateMemberHouseExists(id);
|
||||
|
||||
// 2. 校验状态:只有待审核 (0) 才能进行审核
|
||||
if (house.getStatus() != 0) {
|
||||
throw exception(MEMBER_HOUSE_AUDIT_STATUS_ERROR);
|
||||
}
|
||||
|
||||
// 3. 如果是驳回,必须填写驳回原因
|
||||
// 2. 如果是驳回,必须填写驳回原因
|
||||
if (status == 2 && StrUtil.isBlank(rejectReason)) {
|
||||
throw exception(MEMBER_HOUSE_REJECT_REASON_REQUIRED);
|
||||
}
|
||||
|
||||
// 4. 获取当前登录的管理员信息
|
||||
// 3. 获取当前登录的管理员信息
|
||||
Long currentUserId = SecurityFrameworkUtils.getLoginUserId();
|
||||
String currentUserName = SecurityFrameworkUtils.getLoginUserNickname();
|
||||
|
||||
// 5. 更新审核状态、审核人、审核时间及驳回原因
|
||||
// 4. 更新审核状态、审核人、审核时间及驳回原因
|
||||
MemberHouseDO updateObj = new MemberHouseDO();
|
||||
updateObj.setId(id);
|
||||
updateObj.setStatus(status);
|
||||
|
|
|
|||
Loading…
Reference in New Issue