package com.java110.community.listener; import com.alibaba.fastjson.JSONObject; import com.java110.common.constant.ResponseConstant; import com.java110.common.constant.StatusConstant; import com.java110.common.exception.ListenerExecuteException; import com.java110.entity.center.Business; import com.java110.event.service.AbstractBusinessServiceDataFlowListener; import com.java110.community.dao.ICommunityServiceDao; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.HashMap; import java.util.List; import java.util.Map; /** * * 小区 服务侦听 父类 * Created by wuxw on 2018/7/4. */ public abstract class AbstractCommunityBusinessServiceDataFlowListener extends AbstractBusinessServiceDataFlowListener{ private final static Logger logger = LoggerFactory.getLogger(AbstractCommunityBusinessServiceDataFlowListener.class); /** * 获取 DAO工具类 * @return */ public abstract ICommunityServiceDao getCommunityServiceDaoImpl(); /** * 刷新 businessCommunityInfo 数据 * 主要将 数据库 中字段和 接口传递字段建立关系 * @param businessCommunityInfo */ protected void flushBusinessCommunityInfo(Map businessCommunityInfo,String statusCd){ businessCommunityInfo.put("newBId",businessCommunityInfo.get("b_id")); businessCommunityInfo.put("communityId",businessCommunityInfo.get("community_id")); businessCommunityInfo.put("cityCode",businessCommunityInfo.get("city_code")); businessCommunityInfo.put("nearbyLandmarks",businessCommunityInfo.get("nearby_landmarks")); businessCommunityInfo.put("mapX",businessCommunityInfo.get("map_x")); businessCommunityInfo.put("mapY",businessCommunityInfo.get("map_y")); businessCommunityInfo.put("statusCd", statusCd); } /** 刷新 businessCommunityAttr 数据 * 主要将 数据库 中字段和 接口传递字段建立关系 * @param businessCommunityAttr * @param statusCd */ protected void flushBusinessCommunityAttr(Map businessCommunityAttr,String statusCd){ businessCommunityAttr.put("attrId",businessCommunityAttr.get("attr_id")); businessCommunityAttr.put("specCd",businessCommunityAttr.get("spec_cd")); businessCommunityAttr.put("communityId",businessCommunityAttr.get("community_id")); businessCommunityAttr.put("newBId",businessCommunityAttr.get("b_id")); businessCommunityAttr.put("statusCd",statusCd); } /** * 刷新 businessCommunityPhoto 数据 * @param businessCommunityPhoto * @param statusCd */ protected void flushBusinessCommunityPhoto(Map businessCommunityPhoto,String statusCd){ businessCommunityPhoto.put("communityId",businessCommunityPhoto.get("community_id")); businessCommunityPhoto.put("communityPhotoId",businessCommunityPhoto.get("community_photo_id")); businessCommunityPhoto.put("communityPhotoTypeCd",businessCommunityPhoto.get("community_photo_type_cd")); businessCommunityPhoto.put("newBId",businessCommunityPhoto.get("b_id")); businessCommunityPhoto.put("statusCd",statusCd); } /** * 刷新 businessCommunityMember 数据 * 主要将 数据库 中字段和 接口传递字段建立关系 * @param businessCommunityMember */ protected void flushBusinessCommunityMember(Map businessCommunityMember,String statusCd){ businessCommunityMember.put("newBId",businessCommunityMember.get("b_id")); businessCommunityMember.put("communityId",businessCommunityMember.get("community_id")); businessCommunityMember.put("communityMemberId",businessCommunityMember.get("community_member_id")); businessCommunityMember.put("memberId",businessCommunityMember.get("member_id")); businessCommunityMember.put("memberTypeCd",businessCommunityMember.get("member_type_cd")); businessCommunityMember.put("statusCd", statusCd); } /** * 当修改数据时,查询instance表中的数据 自动保存删除数据到business中 * @param businessCommunity 小区信息 */ protected void autoSaveDelBusinessCommunity(Business business, JSONObject businessCommunity){ //自动插入DEL Map info = new HashMap(); info.put("communityId",businessCommunity.getString("communityId")); info.put("statusCd",StatusConstant.STATUS_CD_VALID); Map currentCommunityInfo = getCommunityServiceDaoImpl().getCommunityInfo(info); if(currentCommunityInfo == null || currentCommunityInfo.isEmpty()){ throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR,"未找到需要修改数据信息,入参错误或数据有问题,请检查"+info); } currentCommunityInfo.put("bId",business.getbId()); currentCommunityInfo.put("communityId",currentCommunityInfo.get("community_id")); currentCommunityInfo.put("cityCode",currentCommunityInfo.get("city_code")); currentCommunityInfo.put("nearbyLandmarks",currentCommunityInfo.get("nearby_landmarks")); currentCommunityInfo.put("mapX",currentCommunityInfo.get("map_x")); currentCommunityInfo.put("mapY",currentCommunityInfo.get("map_y")); currentCommunityInfo.put("operate",StatusConstant.OPERATE_DEL); getCommunityServiceDaoImpl().saveBusinessCommunityInfo(currentCommunityInfo); } /** * 当修改数据时,查询instance表中的数据 自动保存删除数据到business中 * @param business 当前业务 * @param communityAttr 小区属性 */ protected void autoSaveDelBusinessCommunityAttr(Business business, JSONObject communityAttr){ Map info = new HashMap(); info.put("attrId",communityAttr.getString("attrId")); info.put("communityId",communityAttr.getString("communityId")); info.put("statusCd",StatusConstant.STATUS_CD_VALID); List currentCommunityAttrs = getCommunityServiceDaoImpl().getCommunityAttrs(info); if(currentCommunityAttrs == null || currentCommunityAttrs.size() != 1){ throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR,"未找到需要修改数据信息,入参错误或数据有问题,请检查"+info); } Map currentCommunityAttr = currentCommunityAttrs.get(0); currentCommunityAttr.put("bId",business.getbId()); currentCommunityAttr.put("attrId",currentCommunityAttr.get("attr_id")); currentCommunityAttr.put("communityId",currentCommunityAttr.get("community_id")); currentCommunityAttr.put("specCd",currentCommunityAttr.get("spec_cd")); currentCommunityAttr.put("operate",StatusConstant.OPERATE_DEL); getCommunityServiceDaoImpl().saveBusinessCommunityAttr(currentCommunityAttr); } /** * 当修改数据时,查询instance表中的数据 自动保存删除数据到business中 * @param business * @param businessCommunityPhoto 小区照片 */ protected void autoSaveDelBusinessCommunityPhoto(Business business,JSONObject businessCommunityPhoto){ Map info = new HashMap(); info.put("communityPhotoId",businessCommunityPhoto.getString("communityPhotoId")); info.put("communityId",businessCommunityPhoto.getString("communityId")); info.put("statusCd",StatusConstant.STATUS_CD_VALID); List currentCommunityPhotos = getCommunityServiceDaoImpl().getCommunityPhoto(info); if(currentCommunityPhotos == null || currentCommunityPhotos.size() != 1){ throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR,"未找到需要修改数据信息,入参错误或数据有问题,请检查"+info); } Map currentCommunityPhoto = currentCommunityPhotos.get(0); currentCommunityPhoto.put("bId",business.getbId()); currentCommunityPhoto.put("communityPhotoId",currentCommunityPhoto.get("community_photo_id")); currentCommunityPhoto.put("communityId",currentCommunityPhoto.get("community_id")); currentCommunityPhoto.put("communityPhotoTypeCd",currentCommunityPhoto.get("community_photo_type_cd")); currentCommunityPhoto.put("operate",StatusConstant.OPERATE_DEL); getCommunityServiceDaoImpl().saveBusinessCommunityPhoto(currentCommunityPhoto); } /** * 当修改数据时,查询instance表中的数据 自动保存删除数据到business中 * @param businessCommunityMember 小区信息 */ protected void autoSaveDelBusinessCommunityMember(Business business, JSONObject businessCommunityMember){ //自动插入DEL Map info = new HashMap(); info.put("communityMemberId",businessCommunityMember.getString("communityMemberId")); info.put("statusCd",StatusConstant.STATUS_CD_VALID); Map currentCommunityMember = getCommunityServiceDaoImpl().getCommunityMember(info); if(currentCommunityMember == null || currentCommunityMember.isEmpty()){ throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR,"未找到需要修改数据信息,入参错误或数据有问题,请检查"+info); } currentCommunityMember.put("bId",business.getbId()); currentCommunityMember.put("communityId",currentCommunityMember.get("community_id")); currentCommunityMember.put("communityMemberId",currentCommunityMember.get("community_member_id")); currentCommunityMember.put("memberId",currentCommunityMember.get("member_id")); currentCommunityMember.put("memberTypeCd",currentCommunityMember.get("member_type_cd")); currentCommunityMember.put("operate",StatusConstant.OPERATE_DEL); getCommunityServiceDaoImpl().saveBusinessCommunityMember(currentCommunityMember); } }