| | |
| | | import com.java110.core.event.cmd.CmdEvent; |
| | | import com.java110.core.factory.GenerateCodeFactory; |
| | | import com.java110.doc.annotation.*; |
| | | import com.java110.dto.account.AccountDto; |
| | | import com.java110.dto.file.FileDto; |
| | | import com.java110.dto.file.FileRelDto; |
| | | import com.java110.dto.owner.OwnerAppUserDto; |
| | | import com.java110.dto.owner.OwnerDto; |
| | | import com.java110.intf.acct.IAccountInnerServiceSMO; |
| | | import com.java110.intf.common.IFileInnerServiceSMO; |
| | | import com.java110.intf.common.IFileRelInnerServiceSMO; |
| | | import com.java110.intf.user.IOwnerV1InnerServiceSMO; |
| | | import com.java110.intf.user.IOwnerAppUserInnerServiceSMO; |
| | | import com.java110.intf.user.IOwnerAppUserV1InnerServiceSMO; |
| | | import com.java110.intf.user.IOwnerAttrInnerServiceSMO; |
| | | import com.java110.intf.user.IOwnerInnerServiceSMO; |
| | | import com.java110.intf.user.*; |
| | | import com.java110.po.account.AccountPo; |
| | | import com.java110.po.file.FileRelPo; |
| | | import com.java110.po.owner.OwnerAppUserPo; |
| | | import com.java110.po.owner.OwnerAttrPo; |
| | | import com.java110.po.owner.OwnerPo; |
| | | import com.java110.po.user.UserPo; |
| | | import com.java110.utils.cache.MappingCache; |
| | | import com.java110.utils.exception.CmdException; |
| | | import com.java110.utils.util.Assert; |
| | | import com.java110.utils.util.BeanConvertUtil; |
| | | import com.java110.utils.util.ListUtil; |
| | | import com.java110.utils.util.StringUtil; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | resource = "userDoc", |
| | | author = "吴学文", |
| | | serviceCode = "owner.editOwner", |
| | | seq = 10 |
| | | ) |
| | | seq = 10) |
| | | |
| | | @Java110ParamsDoc(params = { |
| | | @Java110ParamDoc(name = "communityId", length = 30, remark = "小区ID"), |
| | |
| | | params = { |
| | | @Java110ParamDoc(name = "code", type = "int", length = 11, defaultValue = "0", remark = "返回编号,0 成功 其他失败"), |
| | | @Java110ParamDoc(name = "msg", type = "String", length = 250, defaultValue = "成功", remark = "描述"), |
| | | } |
| | | ) |
| | | }) |
| | | |
| | | @Java110ExampleDoc( |
| | | reqBody="{\n" + |
| | | reqBody = "{\n" + |
| | | "\t\"name\": \"王王\",\n" + |
| | | "\t\"age\": \"\",\n" + |
| | | "\t\"link\": \"18909718888\",\n" + |
| | |
| | | "\t\"idCard\": \"\",\n" + |
| | | "\t\"communityId\": \"2022121921870161\"\n" + |
| | | "}", |
| | | resBody="{\"code\":0,\"msg\":\"成功\"}" |
| | | resBody = "{\"code\":0,\"msg\":\"成功\"}" |
| | | ) |
| | | @Java110Cmd(serviceCode = "owner.editOwner") |
| | | public class EditOwnerCmd extends Cmd { |
| | |
| | | @Autowired |
| | | private IFileInnerServiceSMO fileInnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IAccountInnerServiceSMO accountInnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl; |
| | | |
| | | @Override |
| | | public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException { |
| | | Assert.jsonObjectHaveKey(reqJson, "memberId", "请求报文中未包含ownerId"); |
| | | Assert.jsonObjectHaveKey(reqJson, "name", "请求报文中未包含name"); |
| | | // Assert.jsonObjectHaveKey(reqJson, "age", "请求报文中未包含age"); |
| | | Assert.jsonObjectHaveKey(reqJson, "link", "请求报文中未包含link"); |
| | | Assert.jsonObjectHaveKey(reqJson, "sex", "请求报文中未包含sex"); |
| | | Assert.jsonObjectHaveKey(reqJson, "ownerTypeCd", "请求报文中未包含ownerTypeCd"); |
| | | Assert.jsonObjectHaveKey(reqJson, "communityId", "请求报文中未包含communityId"); |
| | | // Assert.jsonObjectHaveKey(paramIn, "idCard", "请求报文中未包含身份证号"); |
| | | Assert.judgeAttrValue(reqJson); |
| | | |
| | | //获取手机号(判断手机号是否重复) |
| | | String link = reqJson.getString("link"); |
| | | if (!StringUtil.isEmpty(link) && link.contains("*")) { |
| | | OwnerDto ownerDto = new OwnerDto(); |
| | | ownerDto.setOwnerId(reqJson.getString("ownerId")); |
| | | //业主 |
| | | ownerDto.setOwnerTypeCd("1001"); |
| | | List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto); |
| | | Assert.listOnlyOne(ownerDtos, "查询业主信息错误!"); |
| | | link = ownerDtos.get(0).getLink(); |
| | | reqJson.put("link", link); |
| | | reqJson.put("link", ""); |
| | | } |
| | | //获取身份证号(判断身份证号是否重复) |
| | | String idCard = reqJson.getString("idCard"); |
| | | |
| | | if (!StringUtil.isEmpty(idCard) && idCard.contains("*")) { |
| | | OwnerDto owner = new OwnerDto(); |
| | | owner.setOwnerId(reqJson.getString("ownerId")); |
| | | //业主 |
| | | owner.setOwnerTypeCd("1001"); |
| | | List<OwnerDto> owners = ownerInnerServiceSMOImpl.queryOwners(owner); |
| | | Assert.listOnlyOne(owners, "查询业主信息错误!"); |
| | | idCard = owners.get(0).getIdCard(); |
| | | reqJson.put("idCard", idCard); |
| | | reqJson.put("idCard", ""); |
| | | } |
| | | |
| | | String userValidate = MappingCache.getValue("USER_VALIDATE"); |
| | | if (reqJson.containsKey("ownerPhotoUrl")) { |
| | | String ownerPhotoUrl = reqJson.getString("ownerPhotoUrl"); |
| | | if (!StringUtil.isEmpty(ownerPhotoUrl) && ownerPhotoUrl.length() > 500) { |
| | | throw new CmdException("图片地址太长"); |
| | | } |
| | | if (!StringUtil.isEmpty(ownerPhotoUrl)) { |
| | | reqJson.put("faceUrl", ownerPhotoUrl); |
| | | } |
| | | } |
| | | |
| | | |
| | | String userValidate = MappingCache.getValue("USER_VALIDATE"); |
| | | if (!"ON".equals(userValidate)) { |
| | | return; |
| | | } |
| | | |
| | | OwnerDto ownerDto = new OwnerDto(); |
| | | ownerDto.setLink(link); |
| | | ownerDto.setCommunityId(reqJson.getString("communityId")); |
| | | List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryAllOwners(ownerDto); |
| | | if (ownerDtos != null && ownerDtos.size() > 1) { |
| | | throw new IllegalArgumentException("手机号重复,请重新输入"); |
| | | } else if (ownerDtos != null && ownerDtos.size() == 1) { |
| | | for (OwnerDto owner : ownerDtos) { |
| | | if ((!StringUtil.isEmpty(reqJson.getString("ownerId")) && !owner.getOwnerId().equals(reqJson.getString("ownerId"))) || (!StringUtil.isEmpty(reqJson.getString("memberId")) && !owner.getMemberId().equals(reqJson.getString("memberId")))) { |
| | | throw new IllegalArgumentException("手机号重复,请重新输入"); |
| | | } |
| | | } |
| | | } |
| | | if (!StringUtil.isEmpty(idCard)) { |
| | | OwnerDto owner = new OwnerDto(); |
| | | owner.setIdCard(idCard); |
| | | owner.setCommunityId(reqJson.getString("communityId")); |
| | | List<OwnerDto> owners = ownerInnerServiceSMOImpl.queryAllOwners(owner); |
| | | if (owners != null && owners.size() > 1) { |
| | | throw new IllegalArgumentException("身份证号重复,请重新输入"); |
| | | } else if (owners != null && owners.size() == 1) { |
| | | for (OwnerDto ownerDto1 : owners) { |
| | | if ((!StringUtil.isEmpty(reqJson.getString("ownerId")) && !ownerDto1.getOwnerId().equals(reqJson.getString("ownerId"))) || (!StringUtil.isEmpty(reqJson.getString("memberId")) && !ownerDto1.getMemberId().equals(reqJson.getString("memberId")))) { |
| | | throw new IllegalArgumentException("身份证号重复,请重新输入"); |
| | | OwnerDto curOwner = new OwnerDto(); |
| | | curOwner.setMemberId(reqJson.getString("memberId")); |
| | | |
| | | List<OwnerDto> curOwners = ownerInnerServiceSMOImpl.queryOwners(curOwner); |
| | | Assert.listOnlyOne(curOwners, "未查询到业主信息或查询到多条"); |
| | | if(StringUtils.isNotEmpty(link)){ |
| | | OwnerDto ownerDto = new OwnerDto(); |
| | | ownerDto.setLink(link); |
| | | ownerDto.setCommunityId(reqJson.getString("communityId")); |
| | | List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryAllOwners(ownerDto); |
| | | if (ownerDtos != null && ownerDtos.size() > 1) { |
| | | throw new IllegalArgumentException("手机号重复,请重新输入"); |
| | | } else if (ownerDtos != null && ownerDtos.size() == 1) { |
| | | for (OwnerDto owner : ownerDtos) { |
| | | if (!reqJson.getString("memberId").equals(owner.getMemberId())) { |
| | | throw new IllegalArgumentException("手机号重复,请重新输入"); |
| | | } |
| | | } |
| | | } |
| | |
| | | @Override |
| | | @Java110Transactional |
| | | public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException { |
| | | if (!reqJson.containsKey("ownerId") || OwnerDto.OWNER_TYPE_CD_OWNER.equals(reqJson.getString("ownerTypeCd"))) { |
| | | reqJson.put("ownerId", reqJson.getString("memberId")); |
| | | |
| | | |
| | | //todo 修改 业主信息 |
| | | OwnerPo ownerPo = BeanConvertUtil.covertBean(reqJson, OwnerPo.class); |
| | | if(StringUtils.isEmpty(reqJson.getString("link"))){ |
| | | ownerPo.setLink(""); |
| | | } |
| | | int flag = ownerV1InnerServiceSMOImpl.updateOwner(ownerPo); |
| | | if (flag < 1) { |
| | | throw new CmdException("修改业主失败"); |
| | | } |
| | | |
| | | //这里注释 因为 有国外的手机号 不是11位 |
| | | // if (link.length() != 11) { |
| | | // throw new IllegalArgumentException("手机号输入不正确!"); |
| | | // } |
| | | if (reqJson.containsKey("ownerPhoto") && !StringUtils.isEmpty(reqJson.getString("ownerPhoto"))) { |
| | | editOwnerPhoto(reqJson); |
| | | } |
| | | editOwner(reqJson); |
| | | //todo 修改账户 |
| | | updateAccount(reqJson); |
| | | |
| | | JSONArray attrs = reqJson.getJSONArray("attrs"); |
| | | if (attrs == null || attrs.size() < 1) { |
| | | if (ListUtil.isNull(attrs)) { |
| | | return; |
| | | } |
| | | JSONObject attr = null; |
| | | int flag = 0; |
| | | for (int attrIndex = 0; attrIndex < attrs.size(); attrIndex++) { |
| | | attr = attrs.getJSONObject(attrIndex); |
| | | attr.put("memberId", reqJson.getString("memberId")); |
| | |
| | | throw new CmdException("修改业主属性失败"); |
| | | } |
| | | } |
| | | //todo 如果 业主做了绑定则修改绑定的手机号 |
| | | updateOwnerAppUser(reqJson); |
| | | } |
| | | |
| | | public void editOwner(JSONObject paramInJson) { |
| | | public void updateAccount(JSONObject paramInJson) { |
| | | |
| | | OwnerDto ownerDto = new OwnerDto(); |
| | | ownerDto.setMemberId(paramInJson.getString("memberId")); |
| | | List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto); |
| | | |
| | | Assert.listOnlyOne(ownerDtos, "未查询到业主信息或查询到多条"); |
| | | |
| | | JSONObject businessOwner = new JSONObject(); |
| | | businessOwner.putAll(BeanConvertUtil.beanCovertMap(ownerDtos.get(0))); |
| | | businessOwner.putAll(paramInJson); |
| | | |
| | | if (paramInJson.containsKey("wxPhoto")) { |
| | | businessOwner.put("link", paramInJson.getString("wxPhoto")); |
| | | } |
| | | businessOwner.put("state", ownerDtos.get(0).getState()); |
| | | OwnerPo ownerPo = BeanConvertUtil.covertBean(businessOwner, OwnerPo.class); |
| | | if (StringUtil.isEmpty(ownerPo.getIdCard())) { |
| | | ownerPo.setAge(null); |
| | | } |
| | | int flag = ownerV1InnerServiceSMOImpl.updateOwner(ownerPo); |
| | | if (flag < 1) { |
| | | throw new CmdException("修改业主失败"); |
| | | } |
| | | OwnerAppUserDto ownerAppUserDto = new OwnerAppUserDto(); |
| | | ownerAppUserDto.setMemberId(paramInJson.getString("ownerId")); |
| | | |
| | | //查询app用户表 |
| | | List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserInnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto); |
| | | if (ownerAppUserDtos != null && ownerAppUserDtos.size() > 0) { |
| | | for (OwnerAppUserDto ownerAppUser : ownerAppUserDtos) { |
| | | OwnerAppUserPo ownerAppUserPo = BeanConvertUtil.covertBean(ownerAppUser, OwnerAppUserPo.class); |
| | | ownerAppUserPo.setLink(paramInJson.getString("link")); |
| | | ownerAppUserPo.setIdCard(paramInJson.getString("idCard")); |
| | | flag = ownerAppUserV1InnerServiceSMOImpl.updateOwnerAppUser(ownerAppUserPo); |
| | | if (flag < 1) { |
| | | throw new CmdException("修改业主失败"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void editOwnerPhoto(JSONObject paramInJson) { |
| | | |
| | | String _photo = paramInJson.getString("ownerPhoto"); |
| | | if(_photo.length()> 512){ |
| | | FileDto fileDto = new FileDto(); |
| | | fileDto.setFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id)); |
| | | fileDto.setFileName(fileDto.getFileId()); |
| | | fileDto.setContext(_photo); |
| | | fileDto.setSuffix("jpeg"); |
| | | fileDto.setCommunityId(paramInJson.getString("communityId")); |
| | | _photo = fileInnerServiceSMOImpl.saveFile(fileDto); |
| | | } |
| | | |
| | | FileRelDto fileRelDto = new FileRelDto(); |
| | | fileRelDto.setRelTypeCd("10000"); |
| | | fileRelDto.setObjId(paramInJson.getString("memberId")); |
| | | int flag = 0; |
| | | List<FileRelDto> fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto); |
| | | if (fileRelDtos == null || fileRelDtos.size() == 0) { |
| | | JSONObject businessUnit = new JSONObject(); |
| | | businessUnit.put("fileRelId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_fileRelId)); |
| | | businessUnit.put("relTypeCd", "10000"); |
| | | businessUnit.put("saveWay", "table"); |
| | | businessUnit.put("objId", paramInJson.getString("memberId")); |
| | | businessUnit.put("fileRealName", _photo); |
| | | businessUnit.put("fileSaveName", _photo); |
| | | FileRelPo fileRelPo = BeanConvertUtil.covertBean(businessUnit, FileRelPo.class); |
| | | flag = fileRelInnerServiceSMOImpl.saveFileRel(fileRelPo); |
| | | if (flag < 1) { |
| | | throw new CmdException("保存文件失败"); |
| | | } |
| | | //todo 判断业主手机号和账户手机号是否相同,不相同修改账户手机号 |
| | | AccountDto accountDto = new AccountDto(); |
| | | accountDto.setObjId(paramInJson.getString("memberId")); |
| | | accountDto.setPartId(paramInJson.getString("communityId")); |
| | | List<AccountDto> accountDtos = accountInnerServiceSMOImpl.queryAccounts(accountDto); |
| | | if (ListUtil.isNull(accountDtos)) { |
| | | return; |
| | | } |
| | | //查询更新后的业主信息 |
| | | OwnerDto owner = new OwnerDto(); |
| | | owner.setMemberId(paramInJson.getString("memberId")); |
| | | List<OwnerDto> owners = ownerInnerServiceSMOImpl.queryOwnerMembers(owner); |
| | | Assert.listOnlyOne(owners, "未查询到业主信息或查询到多条"); |
| | | if (!accountDtos.get(0).getLink().equals(owners.get(0).getLink()) || !accountDtos.get(0).getAcctName().equals(owners.get(0).getName())) { |
| | | AccountPo accountPo = new AccountPo(); |
| | | accountPo.setAcctName(owners.get(0).getName()); |
| | | accountPo.setoLink(owners.get(0).getLink()); |
| | | accountPo.setAcctId(accountDtos.get(0).getAcctId()); |
| | | accountInnerServiceSMOImpl.updateAccount(accountPo); |
| | | } |
| | | } |
| | | |
| | | JSONObject businessUnit = new JSONObject(); |
| | | businessUnit.putAll(BeanConvertUtil.beanCovertMap(fileRelDtos.get(0))); |
| | | businessUnit.put("fileRealName", _photo); |
| | | businessUnit.put("fileSaveName", _photo); |
| | | FileRelPo fileRelPo = BeanConvertUtil.covertBean(businessUnit, FileRelPo.class); |
| | | flag = fileRelInnerServiceSMOImpl.updateFileRel(fileRelPo); |
| | | if (flag < 1) { |
| | | throw new CmdException("保存文件失败"); |
| | | /** |
| | | * 如果 业主做了绑定则修改绑定的手机号 |
| | | * |
| | | * @param reqJson |
| | | */ |
| | | private void updateOwnerAppUser(JSONObject reqJson) { |
| | | OwnerAppUserDto ownerAppUserDto = new OwnerAppUserDto(); |
| | | ownerAppUserDto.setMemberId(reqJson.getString("memberId")); |
| | | //todo 查询app用户表 |
| | | List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserInnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto); |
| | | if (ListUtil.isNull(ownerAppUserDtos)) { |
| | | return; |
| | | } |
| | | for (OwnerAppUserDto ownerAppUser : ownerAppUserDtos) { |
| | | OwnerAppUserPo ownerAppUserPo = BeanConvertUtil.covertBean(ownerAppUser, OwnerAppUserPo.class); |
| | | ownerAppUserPo.setLink(reqJson.getString("link")); |
| | | if(StringUtils.isEmpty(reqJson.getString("link"))){ |
| | | ownerAppUserPo.setLink(""); |
| | | } |
| | | if(!ownerAppUser.getState().equals(OwnerAppUserDto.STATE_NOT_AUDIT) && StringUtils.isNotEmpty(ownerAppUser.getLink()) && |
| | | !ownerAppUser.getLink().equals(reqJson.getString("link"))){ |
| | | ownerAppUserPo.setState(OwnerAppUserDto.STATE_NOT_AUDIT); |
| | | } |
| | | ownerAppUserV1InnerServiceSMOImpl.updateOwnerAppUser(ownerAppUserPo); |
| | | if (StringUtil.isEmpty(ownerAppUser.getUserId())) { |
| | | continue; |
| | | } |
| | | if (ownerAppUser.getUserId().startsWith("-")) { |
| | | continue; |
| | | } |
| | | // todo 修改用户信息 |
| | | UserPo userPo = new UserPo(); |
| | | userPo.setUserId(ownerAppUserDtos.get(0).getUserId()); |
| | | userPo.setTel(reqJson.getString("link")); |
| | | if(StringUtils.isEmpty(reqJson.getString("link"))){ |
| | | userPo.setTel(""); |
| | | } |
| | | userV1InnerServiceSMOImpl.updateUser(userPo); |
| | | } |
| | | } |
| | | } |