package com.java110.api.bmo.owner.impl;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.java110.api.bmo.ApiBaseBMO;
|
import com.java110.api.bmo.owner.IOwnerBMO;
|
import com.java110.core.context.DataFlowContext;
|
import com.java110.core.smo.community.ICommunityInnerServiceSMO;
|
import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
|
import com.java110.core.smo.file.IFileInnerServiceSMO;
|
import com.java110.core.smo.file.IFileRelInnerServiceSMO;
|
import com.java110.core.smo.owner.IOwnerAppUserInnerServiceSMO;
|
import com.java110.core.smo.owner.IOwnerInnerServiceSMO;
|
import com.java110.dto.CommunityMemberDto;
|
import com.java110.dto.community.CommunityDto;
|
import com.java110.dto.fee.FeeConfigDto;
|
import com.java110.dto.file.FileRelDto;
|
import com.java110.dto.owner.OwnerAppUserDto;
|
import com.java110.dto.owner.OwnerDto;
|
import com.java110.utils.constant.*;
|
import com.java110.utils.exception.ListenerExecuteException;
|
import com.java110.utils.util.Assert;
|
import com.java110.utils.util.BeanConvertUtil;
|
import com.java110.utils.util.DateUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @ClassName OwnerBMOImpl
|
* @Description TODO
|
* @Author wuxw
|
* @Date 2020/3/9 23:14
|
* @Version 1.0
|
* add by wuxw 2020/3/9
|
**/
|
@Service("ownerBMOImpl")
|
public class OwnerBMOImpl extends ApiBaseBMO implements IOwnerBMO {
|
@Autowired
|
private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
|
|
@Autowired
|
private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
|
|
@Autowired
|
private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
|
|
@Autowired
|
private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
|
@Autowired
|
private IOwnerAppUserInnerServiceSMO ownerAppUserInnerServiceSMOImpl;
|
|
private static final int DEFAULT_SEQ_COMMUNITY_MEMBER = 2;
|
/**
|
* 添加业主应用用户关系
|
*
|
* @param paramInJson
|
* @return
|
*/
|
public JSONObject addOwnerAppUser(JSONObject paramInJson, CommunityDto communityDto, OwnerDto ownerDto) {
|
|
|
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
|
business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_OWNER_APP_USER);
|
business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
|
business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
|
JSONObject businessOwnerAppUser = new JSONObject();
|
businessOwnerAppUser.putAll(paramInJson);
|
//状态类型,10000 审核中,12000 审核成功,13000 审核失败
|
businessOwnerAppUser.put("state", "12000");
|
businessOwnerAppUser.put("appTypeCd", "10010");
|
businessOwnerAppUser.put("appUserId", "-1");
|
businessOwnerAppUser.put("memberId", ownerDto.getMemberId());
|
businessOwnerAppUser.put("communityName", communityDto.getName());
|
businessOwnerAppUser.put("communityId", communityDto.getCommunityId());
|
businessOwnerAppUser.put("appUserName", ownerDto.getName());
|
businessOwnerAppUser.put("idCard", ownerDto.getIdCard());
|
businessOwnerAppUser.put("link", ownerDto.getLink());
|
businessOwnerAppUser.put("userId", paramInJson.getString("userId"));
|
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessOwnerAppUser", businessOwnerAppUser);
|
return business;
|
}
|
|
/**
|
* 添加小区信息
|
*
|
* @param paramInJson 接口调用放传入入参
|
* @param dataFlowContext 数据上下文
|
* @return 订单服务能够接受的报文
|
*/
|
public JSONObject deleteAuditAppUserBindingOwner(JSONObject paramInJson, DataFlowContext dataFlowContext) {
|
|
|
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
|
business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_DELETE_OWNER_APP_USER);
|
business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
|
business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
|
JSONObject businessOwnerAppUser = new JSONObject();
|
businessOwnerAppUser.putAll(paramInJson);
|
//计算 应收金额
|
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessOwnerAppUser", businessOwnerAppUser);
|
return business;
|
}
|
/**
|
* 添加小区楼信息
|
*
|
* @param paramInJson 接口调用放传入入参
|
* @return 订单服务能够接受的报文
|
*/
|
public JSONObject deleteOwner(JSONObject paramInJson) {
|
|
|
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
|
business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_DELETE_OWNER_INFO);
|
business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
|
business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
|
JSONObject businessOwner = new JSONObject();
|
businessOwner.put("memberId", paramInJson.getString("memberId"));
|
businessOwner.put("communityId", paramInJson.getString("communityId"));
|
|
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessOwner", businessOwner);
|
|
return business;
|
}
|
|
|
public JSONObject deleteOwnerRoomRel(JSONObject paramInJson) {
|
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
|
business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_DELETE_OWNER_ROOM_REL);
|
business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
|
business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
|
JSONObject businessOwner = new JSONObject();
|
businessOwner.put("ownerId", paramInJson.getString("ownerId"));
|
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessOwnerRoomRel", businessOwner);
|
|
return business;
|
}
|
|
/**
|
* 退出小区成员
|
*
|
* @param paramInJson 接口传入入参
|
* @return 订单服务能够接受的报文
|
*/
|
public JSONObject exitCommunityMember(JSONObject paramInJson) {
|
|
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
|
business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_MEMBER_QUIT_COMMUNITY);
|
business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 1);
|
business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
|
JSONObject businessCommunityMember = new JSONObject();
|
CommunityMemberDto communityMemberDto = new CommunityMemberDto();
|
communityMemberDto.setMemberId(paramInJson.getString("ownerId"));
|
communityMemberDto.setCommunityId(paramInJson.getString("communityId"));
|
communityMemberDto.setStatusCd(StatusConstant.STATUS_CD_VALID);
|
communityMemberDto.setMemberTypeCd(CommunityMemberTypeConstant.OWNER);
|
List<CommunityMemberDto> communityMemberDtoList = communityInnerServiceSMOImpl.getCommunityMembers(communityMemberDto);
|
|
if (communityMemberDtoList == null || communityMemberDtoList.size() != 1) {
|
throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "业主和小区存在关系存在异常,请检查");
|
}
|
|
|
businessCommunityMember.put("communityMemberId", communityMemberDtoList.get(0).getCommunityMemberId());
|
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessCommunityMember", businessCommunityMember);
|
|
return business;
|
}
|
|
/**
|
* 添加小区楼信息
|
*
|
* @param paramInJson 接口调用放传入入参
|
* @return 订单服务能够接受的报文
|
*/
|
public JSONObject editOwner(JSONObject paramInJson) {
|
|
OwnerDto ownerDto = new OwnerDto();
|
ownerDto.setMemberId(paramInJson.getString("memberId"));
|
List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
|
|
Assert.listOnlyOne(ownerDtos, "未查询到业主信息或查询到多条");
|
|
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
|
business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_OWNER_INFO);
|
business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
|
business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
|
JSONObject businessOwner = new JSONObject();
|
businessOwner.putAll(BeanConvertUtil.beanCovertMap(ownerDtos.get(0)));
|
businessOwner.putAll(paramInJson);
|
businessOwner.put("state", ownerDtos.get(0).getState());
|
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessOwner", businessOwner);
|
|
return business;
|
}
|
|
/**
|
* 添加物业费用
|
*
|
* @param paramInJson 接口调用放传入入参
|
* @param dataFlowContext 数据上下文
|
* @return 订单服务能够接受的报文
|
*/
|
public JSONObject editOwnerPhoto(JSONObject paramInJson, DataFlowContext dataFlowContext) {
|
|
FileRelDto fileRelDto = new FileRelDto();
|
fileRelDto.setRelTypeCd("10000");
|
fileRelDto.setObjId(paramInJson.getString("memberId"));
|
List<FileRelDto> fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto);
|
if (fileRelDtos == null || fileRelDtos.size() == 0) {
|
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
|
business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FILE_REL);
|
business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 2);
|
business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
|
JSONObject businessUnit = new JSONObject();
|
businessUnit.put("fileRelId", "-1");
|
businessUnit.put("relTypeCd", "10000");
|
businessUnit.put("saveWay", "table");
|
businessUnit.put("objId", paramInJson.getString("memberId"));
|
businessUnit.put("fileRealName", paramInJson.getString("ownerPhotoId"));
|
businessUnit.put("fileSaveName", paramInJson.getString("ownerPhotoId"));
|
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFileRel", businessUnit);
|
return business;
|
}
|
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
|
business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_FILE_REL);
|
business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 2);
|
business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
|
JSONObject businessUnit = new JSONObject();
|
businessUnit.putAll(BeanConvertUtil.beanCovertMap(fileRelDtos.get(0)));
|
businessUnit.put("fileRealName", paramInJson.getString("ownerPhotoId"));
|
businessUnit.put("fileSaveName", paramInJson.getString("fileSaveName"));
|
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFileRel", businessUnit);
|
return business;
|
|
|
}
|
|
/**
|
* 添加小区楼信息
|
* <p>
|
* * name:'',
|
* * age:'',
|
* * link:'',
|
* * sex:'',
|
* * remark:''
|
*
|
* @param paramInJson 接口调用放传入入参
|
* @return 订单服务能够接受的报文
|
*/
|
public JSONObject addOwner(JSONObject paramInJson) {
|
|
|
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
|
business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_OWNER_INFO);
|
business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
|
business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
|
JSONObject businessOwner = new JSONObject();
|
businessOwner.putAll(paramInJson);
|
businessOwner.put("state", "2000");
|
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessOwner", businessOwner);
|
|
return business;
|
}
|
|
|
/**
|
* 添加小区成员
|
*
|
* @param paramInJson 组装 楼小区关系
|
* @return 小区成员信息
|
*/
|
public JSONObject addCommunityMember(JSONObject paramInJson) {
|
|
|
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
|
business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_MEMBER_JOINED_COMMUNITY);
|
business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ_COMMUNITY_MEMBER);
|
business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
|
JSONObject businessCommunityMember = new JSONObject();
|
businessCommunityMember.put("communityMemberId", "-1");
|
businessCommunityMember.put("communityId", paramInJson.getString("communityId"));
|
businessCommunityMember.put("memberId", paramInJson.getString("ownerId"));
|
businessCommunityMember.put("memberTypeCd", CommunityMemberTypeConstant.OWNER);
|
businessCommunityMember.put("auditStatusCd", StateConstant.AGREE_AUDIT);
|
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessCommunityMember", businessCommunityMember);
|
|
return business;
|
}
|
|
|
/**
|
* 售卖房屋信息
|
*
|
* @param paramInJson 接口调用放传入入参
|
* @param dataFlowContext 数据上下文
|
* @return 订单服务能够接受的报文
|
*/
|
public JSONObject sellRoom(JSONObject paramInJson, DataFlowContext dataFlowContext) {
|
|
|
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
|
business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_OWNER_ROOM_REL);
|
business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
|
business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
|
JSONObject businessUnit = new JSONObject();
|
businessUnit.putAll(paramInJson);
|
businessUnit.put("relId", "-1");
|
businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
|
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessOwnerRoomRel", businessUnit);
|
|
return business;
|
}
|
|
/**
|
* 添加物业费用
|
*
|
* @param paramInJson 接口调用放传入入参
|
* @param dataFlowContext 数据上下文
|
* @return 订单服务能够接受的报文
|
*/
|
public JSONObject addPropertyFee(JSONObject paramInJson, DataFlowContext dataFlowContext) {
|
|
FeeConfigDto feeConfigDto = new FeeConfigDto();
|
feeConfigDto.setFeeTypeCd(FeeTypeConstant.FEE_TYPE_PROPERTY);
|
feeConfigDto.setIsDefault("T");
|
feeConfigDto.setCommunityId(paramInJson.getString("communityId"));
|
List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
|
if (feeConfigDtos == null || feeConfigDtos.size() != 1) {
|
throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "未查到费用配置信息,查询多条数据");
|
}
|
|
feeConfigDto = feeConfigDtos.get(0);
|
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
|
business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
|
business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 1);
|
business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
|
JSONObject businessUnit = new JSONObject();
|
businessUnit.put("feeId", "-1");
|
businessUnit.put("configId", feeConfigDto.getConfigId());
|
businessUnit.put("feeTypeCd", FeeTypeConstant.FEE_TYPE_PROPERTY);
|
businessUnit.put("incomeObjId", paramInJson.getString("storeId"));
|
businessUnit.put("amount", "-1.00");
|
businessUnit.put("startTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
|
businessUnit.put("endTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
|
businessUnit.put("communityId", paramInJson.getString("communityId"));
|
businessUnit.put("payerObjId", paramInJson.getString("roomId"));
|
businessUnit.put("payerObjType", "3333");
|
businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
|
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFee", businessUnit);
|
|
return business;
|
}
|
|
/**
|
* 添加物业费用
|
*
|
* @param paramInJson 接口调用放传入入参
|
* @param dataFlowContext 数据上下文
|
* @return 订单服务能够接受的报文
|
*/
|
public JSONObject addOwnerPhoto(JSONObject paramInJson, DataFlowContext dataFlowContext) {
|
|
|
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
|
business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FILE_REL);
|
business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 2);
|
business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
|
JSONObject businessUnit = new JSONObject();
|
businessUnit.put("fileRelId", "-1");
|
businessUnit.put("relTypeCd", "10000");
|
businessUnit.put("saveWay", "table");
|
businessUnit.put("objId", paramInJson.getString("memberId"));
|
businessUnit.put("fileRealName", paramInJson.getString("ownerPhotoId"));
|
businessUnit.put("fileSaveName", paramInJson.getString("fileSaveName"));
|
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFileRel", businessUnit);
|
|
return business;
|
}
|
|
/**
|
* 添加审核业主绑定信息
|
*
|
* @param paramInJson 接口调用放传入入参
|
* @param dataFlowContext 数据上下文
|
* @return 订单服务能够接受的报文
|
*/
|
public JSONObject updateAuditAppUserBindingOwner(JSONObject paramInJson, DataFlowContext dataFlowContext) {
|
|
OwnerAppUserDto ownerAppUserDto = new OwnerAppUserDto();
|
ownerAppUserDto.setAppUserId(paramInJson.getString("appUserId"));
|
List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserInnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto);
|
|
Assert.listOnlyOne(ownerAppUserDtos, "存在多条审核单或未找到审核单");
|
|
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
|
business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_OWNER_APP_USER);
|
business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
|
business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
|
JSONObject businessOwnerAppUser = new JSONObject();
|
businessOwnerAppUser.putAll(BeanConvertUtil.beanCovertMap(ownerAppUserDtos.get(0)));
|
businessOwnerAppUser.put("state", paramInJson.getString("state"));
|
businessOwnerAppUser.put("appUserId", paramInJson.getString("appUserId"));
|
//计算 应收金额
|
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessOwnerAppUser", businessOwnerAppUser);
|
return business;
|
}
|
|
/**
|
* 添加小区楼信息
|
*
|
* @param paramInJson 接口调用放传入入参
|
* @return 订单服务能够接受的报文
|
*/
|
public JSONObject editOwnerPhoto(JSONObject paramInJson) {
|
|
OwnerDto ownerDto = new OwnerDto();
|
ownerDto.setMemberId(paramInJson.getString("memberId"));
|
List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
|
|
Assert.listOnlyOne(ownerDtos, "未查询到业主信息或查询到多条");
|
|
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
|
business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_OWNER_INFO);
|
business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
|
business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
|
JSONObject businessOwner = new JSONObject();
|
Map ownerDtoMap = BeanConvertUtil.beanCovertMap(ownerDtos.get(0));
|
businessOwner.putAll(ownerDtoMap);
|
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessOwner", businessOwner);
|
|
return business;
|
}
|
|
}
|