service-store/src/main/java/com/java110/store/api/ContractFileApi.java
New file @@ -0,0 +1,103 @@ package com.java110.store.api; import com.alibaba.fastjson.JSONObject; import com.java110.dto.contractFile.ContractFileDto; import com.java110.po.contractFile.ContractFilePo; import com.java110.store.bmo.contractFile.IDeleteContractFileBMO; import com.java110.store.bmo.contractFile.IGetContractFileBMO; import com.java110.store.bmo.contractFile.ISaveContractFileBMO; import com.java110.store.bmo.contractFile.IUpdateContractFileBMO; import com.java110.utils.util.Assert; import com.java110.utils.util.BeanConvertUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping(value = "/contractFile") public class ContractFileApi { @Autowired private ISaveContractFileBMO saveContractFileBMOImpl; @Autowired private IUpdateContractFileBMO updateContractFileBMOImpl; @Autowired private IDeleteContractFileBMO deleteContractFileBMOImpl; @Autowired private IGetContractFileBMO getContractFileBMOImpl; /** * 微信保存消息模板 * @serviceCode /contractFile/saveContractFile * @path /app/contractFile/saveContractFile * @param reqJson * @return */ @RequestMapping(value = "/saveContractFile", method = RequestMethod.POST) public ResponseEntity<String> saveContractFile(@RequestBody JSONObject reqJson) { Assert.hasKeyAndValue(reqJson, "contractId", "请求报文中未包含contractId"); Assert.hasKeyAndValue(reqJson, "fileRealName", "请求报文中未包含fileRealName"); Assert.hasKeyAndValue(reqJson, "fileSaveName", "请求报文中未包含fileSaveName"); ContractFilePo contractFilePo = BeanConvertUtil.covertBean(reqJson, ContractFilePo.class); return saveContractFileBMOImpl.save(contractFilePo); } /** * 微信修改消息模板 * @serviceCode /contractFile/updateContractFile * @path /app/contractFile/updateContractFile * @param reqJson * @return */ @RequestMapping(value = "/updateContractFile", method = RequestMethod.POST) public ResponseEntity<String> updateContractFile(@RequestBody JSONObject reqJson) { Assert.hasKeyAndValue(reqJson, "contractId", "请求报文中未包含contractId"); Assert.hasKeyAndValue(reqJson, "fileRealName", "请求报文中未包含fileRealName"); Assert.hasKeyAndValue(reqJson, "fileSaveName", "请求报文中未包含fileSaveName"); Assert.hasKeyAndValue(reqJson, "contractFileId", "contractFileId不能为空"); ContractFilePo contractFilePo = BeanConvertUtil.covertBean(reqJson, ContractFilePo.class); return updateContractFileBMOImpl.update(contractFilePo); } /** * 微信删除消息模板 * @serviceCode /contractFile/deleteContractFile * @path /app/contractFile/deleteContractFile * @param reqJson * @return */ @RequestMapping(value = "/deleteContractFile", method = RequestMethod.POST) public ResponseEntity<String> deleteContractFile(@RequestBody JSONObject reqJson) { Assert.hasKeyAndValue(reqJson, "communityId", "小区ID不能为空"); Assert.hasKeyAndValue(reqJson, "contractFileId", "contractFileId不能为空"); ContractFilePo contractFilePo = BeanConvertUtil.covertBean(reqJson, ContractFilePo.class); return deleteContractFileBMOImpl.delete(contractFilePo); } /** * 微信删除消息模板 * @serviceCode /contractFile/queryContractFile * @path /app/contractFile/queryContractFile * @param storeId 商户ID * @return */ @RequestMapping(value = "/queryContractFile", method = RequestMethod.GET) public ResponseEntity<String> queryContractFile(@RequestHeader(value = "store-id") String storeId, @RequestParam(value = "contractId", required = false) String contractId, @RequestParam(value = "page") int page, @RequestParam(value = "row") int row) { ContractFileDto contractFileDto = new ContractFileDto(); contractFileDto.setPage(page); contractFileDto.setRow(row); contractFileDto.setContractId(contractId); return getContractFileBMOImpl.get(contractFileDto); } } service-store/src/main/java/com/java110/store/bmo/contract/impl/SaveContractBMOImpl.java
@@ -7,16 +7,17 @@ import com.java110.dto.contract.ContractDto; import com.java110.dto.contractType.ContractTypeDto; import com.java110.dto.fee.FeeDto; import com.java110.dto.purchaseApply.PurchaseApplyDto; import com.java110.dto.rentingPool.RentingPoolDto; import com.java110.dto.store.StoreDto; import com.java110.intf.common.IContractApplyUserInnerServiceSMO; import com.java110.intf.store.IContractAttrInnerServiceSMO; import com.java110.intf.store.IContractFileInnerServiceSMO; import com.java110.intf.store.IContractInnerServiceSMO; import com.java110.intf.store.IContractTypeInnerServiceSMO; import com.java110.intf.user.IRentingPoolInnerServiceSMO; import com.java110.po.contract.ContractPo; import com.java110.po.contractAttr.ContractAttrPo; import com.java110.po.contractFile.ContractFilePo; import com.java110.po.rentingPool.RentingPoolPo; import com.java110.store.bmo.contract.ISaveContractBMO; import com.java110.utils.util.Assert; @@ -46,6 +47,9 @@ @Autowired private IContractApplyUserInnerServiceSMO contractApplyUserInnerServiceSMOImpl; @Autowired private IContractFileInnerServiceSMO contractFileInnerServiceSMOImpl; /** * 添加小区信息 @@ -81,11 +85,18 @@ throw new IllegalArgumentException("合同" + "[" + contractPo.getContractCode() + "]已存在"); } contractPo.setContractId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_contractId)); //附件保存 List<ContractFilePo> filePos = contractPo.getContractFilePo(); int flag = contractInnerServiceSMOImpl.saveContract(contractPo); for (ContractFilePo file: filePos) { if (file.getFileRealName().length() > 0 && file.getFileSaveName().length() > 0){ file.setContractId(contractPo.getContractId()); contractFileInnerServiceSMOImpl.saveContractFile(file); } } contractPo.setContractId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_contractId)); int flag = contractInnerServiceSMOImpl.saveContract(contractPo); if (flag < 0) { return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败"); } service-store/src/main/java/com/java110/store/bmo/contract/impl/UpdateContractBMOImpl.java
@@ -12,16 +12,15 @@ import com.java110.dto.store.StoreDto; import com.java110.intf.common.IContractApplyUserInnerServiceSMO; import com.java110.intf.common.IContractChangeUserInnerServiceSMO; import com.java110.intf.store.IContractAttrInnerServiceSMO; import com.java110.intf.store.IContractChangePlanDetailInnerServiceSMO; import com.java110.intf.store.IContractChangePlanInnerServiceSMO; import com.java110.intf.store.IContractInnerServiceSMO; import com.java110.intf.store.*; import com.java110.intf.user.IRentingPoolInnerServiceSMO; import com.java110.po.contract.ContractPo; import com.java110.po.contractAttr.ContractAttrPo; import com.java110.po.contractChangePlan.ContractChangePlanPo; import com.java110.po.contractFile.ContractFilePo; import com.java110.po.rentingPool.RentingPoolPo; import com.java110.store.bmo.contract.IUpdateContractBMO; import com.java110.store.bmo.contractFile.IDeleteContractFileBMO; import com.java110.utils.constant.StatusConstant; import com.java110.utils.util.Assert; import com.java110.utils.util.BeanConvertUtil; @@ -57,6 +56,13 @@ @Autowired private IContractChangePlanDetailInnerServiceSMO contractChangePlanDetailInnerServiceSMOImpl; @Autowired private IContractFileInnerServiceSMO contractFileInnerServiceSMOImpl; @Autowired private IDeleteContractFileBMO deleteContractFileBMOImpl; /** * @param contractPo * @return 订单服务能够接受的报文 @@ -71,6 +77,20 @@ } //附件保存--先删除原来所有的附件再进行保存 ContractFilePo contractFilePo = new ContractFilePo(); contractFilePo.setContractId(contractPo.getContractId()); deleteContractFileBMOImpl.delete(contractFilePo); List<ContractFilePo> filePos = contractPo.getContractFilePo(); for (ContractFilePo file: filePos) { if (file.getFileRealName().length() > 0 && file.getFileSaveName().length() > 0){ file.setContractId(contractPo.getContractId()); contractFileInnerServiceSMOImpl.saveContractFile(file); } } noticeRentUpdateState(contractPo); if (!reqJson.containsKey("contractTypeSpecs")) { service-store/src/main/java/com/java110/store/bmo/contractFile/IDeleteContractFileBMO.java
New file @@ -0,0 +1,17 @@ package com.java110.store.bmo.contractFile; import com.java110.po.contractFile.ContractFilePo; import org.springframework.http.ResponseEntity; public interface IDeleteContractFileBMO { /** * 修改合同附件 * add by wuxw * @param contractFilePo * @return */ ResponseEntity<String> delete(ContractFilePo contractFilePo); } service-store/src/main/java/com/java110/store/bmo/contractFile/IGetContractFileBMO.java
New file @@ -0,0 +1,16 @@ package com.java110.store.bmo.contractFile; import com.java110.dto.contractFile.ContractFileDto; import org.springframework.http.ResponseEntity; public interface IGetContractFileBMO { /** * 查询合同附件 * add by wuxw * @param contractFileDto * @return */ ResponseEntity<String> get(ContractFileDto contractFileDto); } service-store/src/main/java/com/java110/store/bmo/contractFile/ISaveContractFileBMO.java
New file @@ -0,0 +1,17 @@ package com.java110.store.bmo.contractFile; import com.java110.po.contractFile.ContractFilePo; import org.springframework.http.ResponseEntity; public interface ISaveContractFileBMO { /** * 添加合同附件 * add by wuxw * @param contractFilePo * @return */ ResponseEntity<String> save(ContractFilePo contractFilePo); } service-store/src/main/java/com/java110/store/bmo/contractFile/IUpdateContractFileBMO.java
New file @@ -0,0 +1,17 @@ package com.java110.store.bmo.contractFile; import com.java110.po.contractFile.ContractFilePo; import org.springframework.http.ResponseEntity; public interface IUpdateContractFileBMO { /** * 修改合同附件 * add by wuxw * @param contractFilePo * @return */ ResponseEntity<String> update(ContractFilePo contractFilePo); } service-store/src/main/java/com/java110/store/bmo/contractFile/impl/DeleteContractFileBMOImpl.java
New file @@ -0,0 +1,34 @@ package com.java110.store.bmo.contractFile.impl; import com.java110.core.annotation.Java110Transactional; import com.java110.intf.store.IContractFileInnerServiceSMO; import com.java110.po.contractFile.ContractFilePo; import com.java110.store.bmo.contractFile.IDeleteContractFileBMO; import com.java110.vo.ResultVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; @Service("deleteContractFileBMOImpl") public class DeleteContractFileBMOImpl implements IDeleteContractFileBMO { @Autowired private IContractFileInnerServiceSMO contractFileInnerServiceSMOImpl; /** * @param contractFilePo 数据 * @return 订单服务能够接受的报文 */ @Java110Transactional public ResponseEntity<String> delete(ContractFilePo contractFilePo) { int flag = contractFileInnerServiceSMOImpl.deleteContractFile(contractFilePo); if (flag > 0) { return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功"); } return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败"); } } service-store/src/main/java/com/java110/store/bmo/contractFile/impl/GetContractFileBMOImpl.java
New file @@ -0,0 +1,46 @@ package com.java110.store.bmo.contractFile.impl; import com.java110.dto.contractFile.ContractFileDto; import com.java110.intf.store.IContractFileInnerServiceSMO; import com.java110.store.bmo.contractFile.IGetContractFileBMO; import com.java110.vo.ResultVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service("getContractFileBMOImpl") public class GetContractFileBMOImpl implements IGetContractFileBMO { @Autowired private IContractFileInnerServiceSMO contractFileInnerServiceSMOImpl; /** * * * @param contractFileDto * @return 订单服务能够接受的报文 */ public ResponseEntity<String> get(ContractFileDto contractFileDto) { int count = contractFileInnerServiceSMOImpl.queryContractFilesCount(contractFileDto); List<ContractFileDto> contractFileDtos = null; if (count > 0) { contractFileDtos = contractFileInnerServiceSMOImpl.queryContractFiles(contractFileDto); } else { contractFileDtos = new ArrayList<>(); } ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) contractFileDto.getRow()), count, contractFileDtos); ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK); return responseEntity; } } service-store/src/main/java/com/java110/store/bmo/contractFile/impl/SaveContractFileBMOImpl.java
New file @@ -0,0 +1,38 @@ package com.java110.store.bmo.contractFile.impl; import com.java110.core.annotation.Java110Transactional; import com.java110.core.factory.GenerateCodeFactory; import com.java110.intf.store.IContractFileInnerServiceSMO; import com.java110.po.contractFile.ContractFilePo; import com.java110.store.bmo.contractFile.ISaveContractFileBMO; import com.java110.vo.ResultVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; @Service("saveContractFileBMOImpl") public class SaveContractFileBMOImpl implements ISaveContractFileBMO { @Autowired private IContractFileInnerServiceSMO contractFileInnerServiceSMOImpl; /** * 添加小区信息 * * @param contractFilePo * @return 订单服务能够接受的报文 */ @Java110Transactional public ResponseEntity<String> save(ContractFilePo contractFilePo) { contractFilePo.setContractFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_contractFileId)); int flag = contractFileInnerServiceSMOImpl.saveContractFile(contractFilePo); if (flag > 0) { return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功"); } return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败"); } } service-store/src/main/java/com/java110/store/bmo/contractFile/impl/UpdateContractFileBMOImpl.java
New file @@ -0,0 +1,36 @@ package com.java110.store.bmo.contractFile.impl; import com.java110.core.annotation.Java110Transactional; import com.java110.intf.store.IContractFileInnerServiceSMO; import com.java110.po.contractFile.ContractFilePo; import com.java110.store.bmo.contractFile.IUpdateContractFileBMO; import com.java110.vo.ResultVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; @Service("updateContractFileBMOImpl") public class UpdateContractFileBMOImpl implements IUpdateContractFileBMO { @Autowired private IContractFileInnerServiceSMO contractFileInnerServiceSMOImpl; /** * * * @param contractFilePo * @return 订单服务能够接受的报文 */ @Java110Transactional public ResponseEntity<String> update(ContractFilePo contractFilePo) { int flag = contractFileInnerServiceSMOImpl.updateContractFile(contractFilePo); if (flag > 0) { return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功"); } return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败"); } } service-store/src/main/java/com/java110/store/dao/IContractFileServiceDao.java
New file @@ -0,0 +1,61 @@ package com.java110.store.dao; import com.java110.utils.exception.DAOException; import com.java110.entity.merchant.BoMerchant; import com.java110.entity.merchant.BoMerchantAttr; import com.java110.entity.merchant.Merchant; import com.java110.entity.merchant.MerchantAttr; import java.util.List; import java.util.Map; /** * 合同附件组件内部之间使用,没有给外围系统提供服务能力 * 合同附件服务接口类,要求全部以字符串传输,方便微服务化 * 新建客户,修改客户,删除客户,查询客户等功能 * * Created by wuxw on 2016/12/27. */ public interface IContractFileServiceDao { /** * 保存 合同附件信息 * @param info * @throws DAOException DAO异常 */ void saveContractFileInfo(Map info) throws DAOException; /** * 查询合同附件信息(instance过程) * 根据bId 查询合同附件信息 * @param info bId 信息 * @return 合同附件信息 * @throws DAOException DAO异常 */ List<Map> getContractFileInfo(Map info) throws DAOException; /** * 修改合同附件信息 * @param info 修改信息 * @throws DAOException DAO异常 */ void updateContractFileInfo(Map info) throws DAOException; /** * 查询合同附件总数 * * @param info 合同附件信息 * @return 合同附件数量 */ int queryContractFilesCount(Map info); } service-store/src/main/java/com/java110/store/dao/impl/ContractFileServiceDaoImpl.java
New file @@ -0,0 +1,98 @@ package com.java110.store.dao.impl; import com.alibaba.fastjson.JSONObject; import com.java110.utils.constant.ResponseConstant; import com.java110.utils.exception.DAOException; import com.java110.utils.util.DateUtil; import com.java110.core.base.dao.BaseServiceDao; import com.java110.store.dao.IContractFileServiceDao; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; /** * 合同附件服务 与数据库交互 * Created by wuxw on 2017/4/5. */ @Service("contractFileServiceDaoImpl") //@Transactional public class ContractFileServiceDaoImpl extends BaseServiceDao implements IContractFileServiceDao { private static Logger logger = LoggerFactory.getLogger(ContractFileServiceDaoImpl.class); /** * 保存合同附件信息 到 instance * @param info bId 信息 * @throws DAOException DAO异常 */ @Override public void saveContractFileInfo(Map info) throws DAOException { logger.debug("保存合同附件信息Instance 入参 info : {}",info); int saveFlag = sqlSessionTemplate.insert("contractFileServiceDaoImpl.saveContractFileInfo",info); if(saveFlag < 1){ throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存合同附件信息Instance数据失败:"+ JSONObject.toJSONString(info)); } } /** * 查询合同附件信息(instance) * @param info bId 信息 * @return List<Map> * @throws DAOException DAO异常 */ @Override public List<Map> getContractFileInfo(Map info) throws DAOException { logger.debug("查询合同附件信息 入参 info : {}",info); List<Map> businessContractFileInfos = sqlSessionTemplate.selectList("contractFileServiceDaoImpl.getContractFileInfo",info); return businessContractFileInfos; } /** * 修改合同附件信息 * @param info 修改信息 * @throws DAOException DAO异常 */ @Override public void updateContractFileInfo(Map info) throws DAOException { logger.debug("修改合同附件信息Instance 入参 info : {}",info); int saveFlag = sqlSessionTemplate.update("contractFileServiceDaoImpl.updateContractFileInfo",info); /* if(saveFlag < 1){ throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"修改合同附件信息Instance数据失败:"+ JSONObject.toJSONString(info)); }*/ } /** * 查询合同附件数量 * @param info 合同附件信息 * @return 合同附件数量 */ @Override public int queryContractFilesCount(Map info) { logger.debug("查询合同附件数据 入参 info : {}",info); List<Map> businessContractFileInfos = sqlSessionTemplate.selectList("contractFileServiceDaoImpl.queryContractFilesCount", info); if (businessContractFileInfos.size() < 1) { return 0; } return Integer.parseInt(businessContractFileInfos.get(0).get("count").toString()); } } service-store/src/main/java/com/java110/store/smo/impl/ContractFileInnerServiceSMOImpl.java
New file @@ -0,0 +1,84 @@ package com.java110.store.smo.impl; import com.java110.intf.store.IContractFileInnerServiceSMO; import com.java110.po.contractFile.ContractFilePo; import com.java110.store.dao.IContractFileServiceDao; import com.java110.dto.contractFile.ContractFileDto; import com.java110.utils.util.BeanConvertUtil; import com.java110.core.base.smo.BaseServiceSMO; import com.java110.dto.user.UserDto; import com.java110.dto.PageDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; /** * @ClassName FloorInnerServiceSMOImpl * @Description 合同附件内部服务实现类 * @Author wuxw * @Date 2019/4/24 9:20 * @Version 1.0 * add by wuxw 2019/4/24 **/ @RestController public class ContractFileInnerServiceSMOImpl extends BaseServiceSMO implements IContractFileInnerServiceSMO { @Autowired private IContractFileServiceDao contractFileServiceDaoImpl; @Override public int saveContractFile(@RequestBody ContractFilePo contractFilePo) { int saveFlag = 1; contractFileServiceDaoImpl.saveContractFileInfo(BeanConvertUtil.beanCovertMap(contractFilePo)); return saveFlag; } @Override public int updateContractFile(@RequestBody ContractFilePo contractFilePo) { int saveFlag = 1; contractFileServiceDaoImpl.updateContractFileInfo(BeanConvertUtil.beanCovertMap(contractFilePo)); return saveFlag; } @Override public int deleteContractFile(@RequestBody ContractFilePo contractFilePo) { int saveFlag = 1; contractFilePo.setStatusCd("1"); contractFileServiceDaoImpl.updateContractFileInfo(BeanConvertUtil.beanCovertMap(contractFilePo)); return saveFlag; } @Override public List<ContractFileDto> queryContractFiles(@RequestBody ContractFileDto contractFileDto) { //校验是否传了 分页信息 int page = contractFileDto.getPage(); if (page != PageDto.DEFAULT_PAGE) { contractFileDto.setPage((page - 1) * contractFileDto.getRow()); } List<ContractFileDto> contractFiles = BeanConvertUtil.covertBeanList(contractFileServiceDaoImpl.getContractFileInfo(BeanConvertUtil.beanCovertMap(contractFileDto)), ContractFileDto.class); return contractFiles; } @Override public int queryContractFilesCount(@RequestBody ContractFileDto contractFileDto) { return contractFileServiceDaoImpl.queryContractFilesCount(BeanConvertUtil.beanCovertMap(contractFileDto)); } public IContractFileServiceDao getContractFileServiceDaoImpl() { return contractFileServiceDaoImpl; } public void setContractFileServiceDaoImpl(IContractFileServiceDao contractFileServiceDaoImpl) { this.contractFileServiceDaoImpl = contractFileServiceDaoImpl; } }