/* * Copyright 2017-2020 吴学文 and java110 team. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.java110.api.bmo.advert.impl; import com.alibaba.fastjson.JSONObject; import com.java110.api.bmo.ApiBaseBMO; import com.java110.api.bmo.advert.IAdvertBMO; import com.java110.core.context.DataFlowContext; import com.java110.core.factory.GenerateCodeFactory; import com.java110.intf.common.IAdvertInnerServiceSMO; import com.java110.intf.common.IAdvertItemInnerServiceSMO; import com.java110.intf.common.IFileInnerServiceSMO; import com.java110.intf.common.IFileRelInnerServiceSMO; import com.java110.dto.advert.AdvertDto; import com.java110.dto.advert.AdvertItemDto; import com.java110.dto.file.FileDto; import com.java110.dto.file.FileRelDto; import com.java110.utils.constant.BusinessTypeConstant; import com.java110.utils.constant.CommonConstant; import com.java110.utils.util.Assert; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service("advertBMOImpl") public class AdvertBMOImpl extends ApiBaseBMO implements IAdvertBMO { @Autowired private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl; @Autowired private IFileInnerServiceSMO fileInnerServiceSMOImpl; @Autowired private IAdvertInnerServiceSMO advertInnerServiceSMOImpl; @Autowired private IAdvertItemInnerServiceSMO advertItemInnerServiceSMOImpl; /** * 添加小区信息 * * @param paramInJson 接口调用放传入入参 * @param dataFlowContext 数据上下文 * @return 订单服务能够接受的报文 */ public JSONObject deleteAdvert(JSONObject paramInJson, DataFlowContext dataFlowContext) { JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_DELETE_ADVERT); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONObject businessAdvert = new JSONObject(); businessAdvert.putAll(paramInJson); //计算 应收金额 business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessAdvert", businessAdvert); return business; } public JSONObject addAdvertItemPhoto(JSONObject paramInJson, DataFlowContext dataFlowContext, String photo) { String itemTypeCd = ""; String url = ""; 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")); String fileName = fileInnerServiceSMOImpl.saveFile(fileDto); paramInJson.put("fileSaveName", fileName); paramInJson.put("advertPhotoId", fileDto.getFileId()); itemTypeCd = "8888"; url = fileDto.getFileId(); JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ADVERT_ITEM); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONObject businessAdvertItem = new JSONObject(); businessAdvertItem.put("advertId", paramInJson.getString("advertId")); businessAdvertItem.put("itemTypeCd", itemTypeCd); businessAdvertItem.put("url", url); businessAdvertItem.put("seq", 1); businessAdvertItem.put("advertItemId", "-1"); businessAdvertItem.put("communityId", paramInJson.getString("communityId")); //计算 应收金额 business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessAdvertItem", businessAdvertItem); return business; } /** * 添加小区信息 * * @param paramInJson 接口调用放传入入参 * @param dataFlowContext 数据上下文 * @return 订单服务能够接受的报文 */ public JSONObject addAdvertItemVedio(JSONObject paramInJson, DataFlowContext dataFlowContext) { String itemTypeCd = ""; String url = ""; itemTypeCd = "9999"; url = paramInJson.getString("vedioName"); paramInJson.put("advertPhotoId", url); JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ADVERT_ITEM); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONObject businessAdvertItem = new JSONObject(); businessAdvertItem.put("advertId", paramInJson.getString("advertId")); businessAdvertItem.put("itemTypeCd", itemTypeCd); businessAdvertItem.put("url", url); businessAdvertItem.put("seq", 1); businessAdvertItem.put("advertItemId", "-1"); businessAdvertItem.put("communityId", paramInJson.getString("communityId")); //计算 应收金额 business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessAdvertItem", businessAdvertItem); return business; } /** * 添加物业费用 * * @param paramInJson 接口调用放传入入参 * @param dataFlowContext 数据上下文 * @return 订单服务能够接受的报文 */ public JSONObject addAdvertFileRel(JSONObject paramInJson, DataFlowContext dataFlowContext, String relTypeCd) { 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", relTypeCd); businessUnit.put("saveWay", "40000".equals(relTypeCd) ? "table" : "ftp"); businessUnit.put("objId", paramInJson.getString("advertId")); businessUnit.put("fileRealName", paramInJson.getString("advertPhotoId")); businessUnit.put("fileSaveName", paramInJson.getString("fileSaveName")); business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFileRel", businessUnit); return business; } /** * 添加小区信息 * * @param paramInJson 接口调用放传入入参 * @param dataFlowContext 数据上下文 * @return 订单服务能够接受的报文 */ public JSONObject addAdvert(JSONObject paramInJson, DataFlowContext dataFlowContext) { String advertId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_advertId); paramInJson.put("advertId", advertId); JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ADVERT); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONObject businessAdvert = new JSONObject(); businessAdvert.putAll(paramInJson); businessAdvert.put("advertId", advertId); businessAdvert.put("state", "1000"); //计算 应收金额 business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessAdvert", businessAdvert); return business; } /** * 删除所有的照片或视频信息 * * @param advertItemDto * @param context * @return */ public JSONObject delAdvertItemPhotoOrVideo(AdvertItemDto advertItemDto, DataFlowContext context) { JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_DELETE_ADVERT_ITEM); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONObject businessAdvertItem = new JSONObject(); businessAdvertItem.put("advertItemId", advertItemDto.getAdvertItemId()); businessAdvertItem.put("communityId", advertItemDto.getCommunityId()); //计算 应收金额 business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessAdvertItem", businessAdvertItem); return business; } /** * 删除广告文件关系 * * @param fileRelDto 接口调用放传入入参 * @param dataFlowContext 数据上下文 * @return 订单服务能够接受的报文 */ public JSONObject delAdvertFileRel(FileRelDto fileRelDto, DataFlowContext dataFlowContext) { JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_DELETE_FILE_REL); 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("fileRelId", fileRelDto.getFileRelId()); business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFileRel", businessUnit); return business; } /** * 添加发布广告信息 * * @param paramInJson 接口调用放传入入参 * @param dataFlowContext 数据上下文 * @return 订单服务能够接受的报文 */ public JSONObject updateAdvert(JSONObject paramInJson, DataFlowContext dataFlowContext) { AdvertDto advertDto = new AdvertDto(); advertDto.setAdvertId(paramInJson.getString("advertId")); advertDto.setCommunityId(paramInJson.getString("communityId")); List advertDtos = advertInnerServiceSMOImpl.queryAdverts(advertDto); Assert.listOnlyOne(advertDtos, "不存在该条广告 或存在多条数据"); JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_ADVERT); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONObject businessAdvert = new JSONObject(); businessAdvert.putAll(paramInJson); businessAdvert.put("state", advertDtos.get(0).getState()); //计算 应收金额 business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessAdvert", businessAdvert); return business; } }