package com.java110.api.bmo.store.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.java110.api.bmo.ApiBaseBMO; import com.java110.api.bmo.store.IStoreBMO; import com.java110.core.factory.GenerateCodeFactory; import com.java110.dto.store.StoreDto; import com.java110.dto.workflow.WorkflowDto; import com.java110.intf.store.IStoreInnerServiceSMO; import com.java110.po.org.OrgPo; import com.java110.po.org.OrgStaffRelPo; import com.java110.po.store.StoreAttrPo; import com.java110.po.store.StoreCerdentialPo; import com.java110.po.store.StorePhotoPo; import com.java110.po.store.StorePo; import com.java110.po.store.StoreUserPo; import com.java110.po.workflow.WorkflowPo; import com.java110.utils.cache.MappingCache; import com.java110.utils.constant.BusinessTypeConstant; import com.java110.utils.constant.CommonConstant; import com.java110.utils.constant.MappingConstant; import com.java110.utils.constant.StoreUserRelConstant; import com.java110.utils.util.Assert; import com.java110.utils.util.BeanConvertUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * @ClassName StoreBMOImpl * @Description TODO * @Author wuxw * @Date 2020/3/9 23:48 * @Version 1.0 * add by wuxw 2020/3/9 **/ @Service("storeBMOImpl") public class StoreBMOImpl extends ApiBaseBMO implements IStoreBMO { @Autowired private IStoreInnerServiceSMO storeInnerServiceSMOImpl; /** * 添加商户 * * @param paramInJson * @return */ public JSONObject addStore(JSONObject paramInJson) { JSONObject business = JSONObject.parseObject("{}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_STORE_INFO); business.put(CommonConstant.HTTP_SEQ, 1); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); business.put(CommonConstant.HTTP_BUSINESS_DATAS, refreshParamIn(paramInJson)); return business; } @Override public JSONObject updateStore(JSONObject paramInJson) { StoreDto storeDto = new StoreDto(); storeDto.setStoreId(paramInJson.getString("storeId")); List storeDtos = storeInnerServiceSMOImpl.getStores(storeDto); Assert.listOnlyOne(storeDtos, "未找到需要修改的商户或多条数据"); JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_STORE_INFO); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONObject businessStore = new JSONObject(); businessStore.putAll(BeanConvertUtil.beanCovertMap(storeDtos.get(0))); businessStore.putAll(paramInJson); //计算 应收金额 business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(StorePo.class.getSimpleName(), businessStore); return business; } /** * 添加员工 * * @param paramInJson * @return */ public JSONObject addStaff(JSONObject paramInJson) { JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_STORE_USER); business.put(CommonConstant.HTTP_SEQ, 2); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONArray businessStoreUsers = new JSONArray(); JSONObject businessStoreUser = new JSONObject(); businessStoreUser.put("storeId", paramInJson.getString("storeId")); businessStoreUser.put("storeUserId", "-1"); businessStoreUser.put("userId", paramInJson.getJSONObject(StorePo.class.getSimpleName()).getString("userId")); businessStoreUser.put("relCd", StoreUserRelConstant.REL_ADMIN); businessStoreUsers.add(businessStoreUser); business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(StoreUserPo.class.getSimpleName(), businessStoreUsers); return business; } /** * 对请求报文处理 * * @param paramObj * @return */ private JSONObject refreshParamIn(JSONObject paramObj) { String storeId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_storeId); paramObj.put("storeId", storeId); if (paramObj.containsKey(StorePo.class.getSimpleName())) { JSONObject businessStoreObj = paramObj.getJSONObject(StorePo.class.getSimpleName()); businessStoreObj.put("storeId", storeId); if (!businessStoreObj.containsKey("password")) { String staffDefaultPassword = MappingCache.getValue(MappingConstant.KEY_STAFF_DEFAULT_PASSWORD); Assert.hasLength(staffDefaultPassword, "映射表中未设置员工默认密码,请检查" + MappingConstant.KEY_STAFF_DEFAULT_PASSWORD); businessStoreObj.put("password", staffDefaultPassword); } if (!businessStoreObj.containsKey("mapX")) { businessStoreObj.put("mapX", ""); } if (!businessStoreObj.containsKey("mapY")) { businessStoreObj.put("mapY", ""); } } if (paramObj.containsKey(StoreAttrPo.class.getSimpleName())) { JSONArray attrs = paramObj.getJSONArray(StoreAttrPo.class.getSimpleName()); for (int businessStoreAttrIndex = 0; businessStoreAttrIndex < attrs.size(); businessStoreAttrIndex++) { JSONObject attr = attrs.getJSONObject(businessStoreAttrIndex); attr.put("storeId", storeId); attr.put("attrId", "-" + (businessStoreAttrIndex + 1)); } } if (paramObj.containsKey(StorePhotoPo.class.getSimpleName())) { JSONArray photos = paramObj.getJSONArray(StorePhotoPo.class.getSimpleName()); for (int businessStorePhotoIndex = 0; businessStorePhotoIndex < photos.size(); businessStorePhotoIndex++) { JSONObject attr = photos.getJSONObject(businessStorePhotoIndex); attr.put("storeId", storeId); attr.put("storePhotoId", "-" + (businessStorePhotoIndex + 1)); } } if (paramObj.containsKey(StoreCerdentialPo.class.getSimpleName())) { JSONArray cerdentials = paramObj.getJSONArray(StoreCerdentialPo.class.getSimpleName()); for (int businessStoreCerdentialsIndex = 0; businessStoreCerdentialsIndex < cerdentials.size(); businessStoreCerdentialsIndex++) { JSONObject attr = cerdentials.getJSONObject(businessStoreCerdentialsIndex); attr.put("storeId", storeId); attr.put("storeCerdentialsId", "-" + (businessStoreCerdentialsIndex + 1)); } } return paramObj; } /** * 添加一级组织信息 * * @param paramInJson 接口调用放传入入参 * @return 订单服务能够接受的报文 */ public JSONObject addOrg(JSONObject paramInJson) { String orgId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orgId); paramInJson.put("levelOneOrgId", orgId); JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ORG); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 3); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONObject businessOrg = new JSONObject(); businessOrg.put("orgName", paramInJson.getJSONObject(StorePo.class.getSimpleName()).getString("name")); businessOrg.put("orgLevel", "1"); businessOrg.put("parentOrgId", orgId); businessOrg.put("belongCommunityId", "9999"); businessOrg.put("orgId", orgId); businessOrg.put("allowOperation", "F"); businessOrg.put("storeId", paramInJson.getString("storeId")); //计算 应收金额 business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(OrgPo.class.getSimpleName(), businessOrg); return business; } /** * 添加公司总部 * * @param paramInJson 接口调用放传入入参 * @return 订单服务能够接受的报文 */ public JSONObject addOrgHeadCompany(JSONObject paramInJson) { String orgId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orgId); paramInJson.put("levelTwoOrgId", orgId); JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ORG); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 4); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONObject businessOrg = new JSONObject(); businessOrg.put("orgName", "公司总部"); businessOrg.put("orgLevel", "2"); businessOrg.put("parentOrgId", paramInJson.getString("levelOneOrgId")); businessOrg.put("belongCommunityId", "9999"); businessOrg.put("orgId", orgId); businessOrg.put("allowOperation", "F"); businessOrg.put("storeId", paramInJson.getString("storeId")); //计算 应收金额 business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(OrgPo.class.getSimpleName(), businessOrg); return business; } /** * 添加总部办公室 * * @param paramInJson 接口调用放传入入参 * @return 订单服务能够接受的报文 */ public JSONObject addOrgHeadPart(JSONObject paramInJson) { String orgId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orgId); paramInJson.put("levelThreeOrgId", orgId); JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ORG); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 5); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONObject businessOrg = new JSONObject(); businessOrg.put("orgName", "总部办公室"); businessOrg.put("orgLevel", "3"); businessOrg.put("parentOrgId", paramInJson.getString("levelTwoOrgId")); businessOrg.put("belongCommunityId", "9999"); businessOrg.put("orgId", orgId); businessOrg.put("storeId", paramInJson.getString("storeId")); businessOrg.put("allowOperation", "F"); //计算 应收金额 business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(OrgPo.class.getSimpleName(), businessOrg); return business; } public JSONObject addStaffOrg(JSONObject paramInJson) { JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ORG_STAFF_REL); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 6); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONArray businessOrgStaffRels = new JSONArray(); JSONObject businessOrgStaffRel = new JSONObject(); businessOrgStaffRel.put("relId", "-1"); businessOrgStaffRel.put("storeId", paramInJson.getString("storeId")); businessOrgStaffRel.put("staffId", paramInJson.getJSONObject(StorePo.class.getSimpleName()).getString("userId")); businessOrgStaffRel.put("orgId", paramInJson.getString("levelThreeOrgId")); businessOrgStaffRel.put("relCd", StoreUserRelConstant.REL_ADMIN); businessOrgStaffRels.add(businessOrgStaffRel); business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(OrgStaffRelPo.class.getSimpleName(), businessOrgStaffRels); return business; } public JSONObject addPurchase(JSONObject paramInJson) { JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_WORKFLOW); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 7); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONArray businessOrgStaffRels = new JSONArray(); WorkflowPo workflowPo = new WorkflowPo(); workflowPo.setCommunityId("9999"); //所有小区 workflowPo.setFlowId("-1"); workflowPo.setFlowName("采购流程"); workflowPo.setFlowType(WorkflowDto.FLOW_TYPE_PURCHASE); workflowPo.setSkipLevel(WorkflowDto.DEFAULT_SKIP_LEVEL); workflowPo.setStoreId(paramInJson.getString("storeId")); businessOrgStaffRels.add(JSONObject.parseObject(JSONObject.toJSONString(workflowPo))); business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(WorkflowPo.class.getSimpleName(), businessOrgStaffRels); return business; } public JSONObject addCollection(JSONObject paramInJson) { JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_WORKFLOW); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 8); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONArray businessOrgStaffRels = new JSONArray(); WorkflowPo workflowPo = new WorkflowPo(); workflowPo.setCommunityId("9999"); //所有小区 workflowPo.setFlowId("-2"); workflowPo.setFlowName("物品领用"); workflowPo.setFlowType(WorkflowDto.FLOW_TYPE_COLLECTION); workflowPo.setSkipLevel(WorkflowDto.DEFAULT_SKIP_LEVEL); workflowPo.setStoreId(paramInJson.getString("storeId")); businessOrgStaffRels.add(JSONObject.parseObject(JSONObject.toJSONString(workflowPo))); business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(WorkflowPo.class.getSimpleName(), businessOrgStaffRels); return business; } /** * 合同申请续签 * * @param paramInJson * @return */ public JSONObject contractApply(JSONObject paramInJson) { JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_WORKFLOW); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 9); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONArray businessOrgStaffRels = new JSONArray(); WorkflowPo workflowPo = new WorkflowPo(); workflowPo.setCommunityId("9999"); //所有小区 workflowPo.setFlowId("-3"); workflowPo.setFlowName("合同申请续签"); workflowPo.setFlowType(WorkflowDto.FLOW_TYPE_CONTRACT_APPLY); workflowPo.setSkipLevel(WorkflowDto.DEFAULT_SKIP_LEVEL); workflowPo.setStoreId(paramInJson.getString("storeId")); businessOrgStaffRels.add(JSONObject.parseObject(JSONObject.toJSONString(workflowPo))); business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(WorkflowPo.class.getSimpleName(), businessOrgStaffRels); return business; } /** * 合同变更 * * @param paramInJson * @return */ public JSONObject contractChange(JSONObject paramInJson) { JSONObject business = JSONObject.parseObject("{\"datas\":{}}"); business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_WORKFLOW); business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 10); business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S); JSONArray businessOrgStaffRels = new JSONArray(); WorkflowPo workflowPo = new WorkflowPo(); workflowPo.setCommunityId("9999"); //所有小区 workflowPo.setFlowId("-4"); workflowPo.setFlowName("合同变更"); workflowPo.setFlowType(WorkflowDto.FLOW_TYPE_CONTRACT_CHANGE); workflowPo.setSkipLevel(WorkflowDto.DEFAULT_SKIP_LEVEL); workflowPo.setStoreId(paramInJson.getString("storeId")); businessOrgStaffRels.add(JSONObject.parseObject(JSONObject.toJSONString(workflowPo))); business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(WorkflowPo.class.getSimpleName(), businessOrgStaffRels); return business; } }