当前位置: 首页 > wzjs >正文

如何做网站的维护百度一下 你就知道官网

如何做网站的维护,百度一下 你就知道官网,ppt模板下载免费素材网站,个人网站模板响应式本项目专栏: 物流项目_Auc23的博客-CSDN博客 关于Neo4j的可以看这一期: Neo4j入门第二期(Spring Data Neo4j的使用)-CSDN博客 需求分析 对于运输路线规划,总的需求有两个,一个是机构管理,一…

本项目专栏:

物流项目_Auc23的博客-CSDN博客

关于Neo4j的可以看这一期:

Neo4j入门第二期(Spring Data Neo4j的使用)-CSDN博客

需求分析

对于运输路线规划,总的需求有两个,一个是机构管理,一个是路线管理。

IService

package com.sl.transport.service;import com.sl.transport.entity.node.BaseEntity;/*** 基础服务实现*/
public interface IService<T extends BaseEntity> {/*** 根据业务id查询数据** @param bid 业务id* @return 节点数据*/T queryByBid(Long bid);/*** 新增节点** @param t 节点数据* @return 新增的节点数据*/T create(T t);/*** 更新节点** @param t 节点数据* @return 更新的节点数据*/T update(T t);/*** 根据业务id删除数据** @param bid 业务id* @return 是否删除成功*/Boolean deleteByBid(Long bid);}
/*** 基础服务的实现*/
public class ServiceImpl<M extends BaseRepository<T, Long>, T extends BaseEntity> implements IService<T> {@Autowiredprivate M repository;@Overridepublic T queryByBid(Long bid) {return this.repository.findByBid(bid).orElse(null);}@Overridepublic T create(T t) {t.setId(null); //主键id由neo4j生成,不能设置值return this.repository.save(t);}@Overridepublic T update(T t) {//先查询,后更新T entity = this.queryByBid(t.getBid());if (ObjectUtil.isEmpty(entity)) {return null;}//将更新的数据复制到entity中BeanUtil.copyProperties(t, entity, CopyOptions.create().ignoreNullValue().setIgnoreProperties("id", "bid"));//更新return this.repository.save(entity);}@Overridepublic Boolean deleteByBid(Long bid) {return this.repository.deleteByBid(bid) > 0;}
}

 AgencyServiceImpl

package com.sl.transport.service.impl;import com.sl.transport.entity.node.AgencyEntity;
import com.sl.transport.repository.AgencyRepository;
import com.sl.transport.service.AgencyService;
import org.springframework.stereotype.Service;@Service
public class AgencyServiceImpl extends ServiceImpl<AgencyRepository, AgencyEntity> implements AgencyService {}

机构同步

业务流程

/*** 对于权限管家系统消息的处理*/
@Slf4j
@Component
public class AuthMQListener {@RabbitListener(bindings = @QueueBinding(value = @Queue(name = Constants.MQ.Queues.AUTH_TRANSPORT),exchange = @Exchange(name = "${rabbitmq.exchange}", type = ExchangeTypes.TOPIC),key = "#"))public void listenAgencyMsg(String msg) {//{"type":"ORG","operation":"ADD","content":[{"id":"977263044792942657","name":"55","parentId":"0","managerId":null,"status":true}]}log.info("接收到消息 -> {}", msg);JSONObject jsonObject = JSONUtil.parseObj(msg);String type = jsonObject.getStr("type");if (!StrUtil.equalsIgnoreCase(type, "ORG")) {//非机构消息return;}String operation = jsonObject.getStr("operation");JSONObject content = (JSONObject) jsonObject.getJSONArray("content").getObj(0);String name = content.getStr("name");Long parentId = content.getLong("parentId");IService iService;BaseEntity entity;if (StrUtil.endWith(name, "转运中心")) {//一级转运中心iService = OrganServiceFactory.getBean(OrganTypeEnum.OLT.getCode());entity = new OLTEntity();entity.setParentId(0L);} else if (StrUtil.endWith(name, "分拣中心")) {//二级转运中心iService = OrganServiceFactory.getBean(OrganTypeEnum.TLT.getCode());entity = new TLTEntity();entity.setParentId(parentId);} else if (StrUtil.endWith(name, "营业部")) {//网点iService = OrganServiceFactory.getBean(OrganTypeEnum.AGENCY.getCode());entity = new AgencyEntity();entity.setParentId(parentId);} else {return;}//设置参数entity.setBid(content.getLong("id"));entity.setName(name);entity.setStatus(content.getBool("status"));switch (operation) {case "ADD": {iService.create(entity);break;}case "UPDATE": {iService.update(entity);break;}case "DEL": {iService.deleteByBid(entity.getBid());break;}}}}

机构管理

*** @author zzj* @version 1.0*/
public interface OrganService {/*** 无需指定type,根据id查询** @param bid 机构id* @return 机构信息*/OrganDTO findByBid(Long bid);/*** 无需指定type,根据ids查询** @param bids 机构ids* @return 机构信息*/List<OrganDTO> findByBids(List<Long> bids);/*** 查询所有的机构,如果name不为空的按照name模糊查询** @param name 机构名称* @return 机构列表*/List<OrganDTO> findAll(String name);/*** 查询机构树* @return 机构树*/String findAllTree();
}
@Service
public class OrganServiceImpl implements OrganService {@Resourceprivate OrganRepository organRepository;@Resourceprivate ObjectMapper objectMapper;@Overridepublic OrganDTO findByBid(Long bid) {OrganDTO organDTO = this.organRepository.findByBid(bid);if (ObjectUtil.isNotEmpty(organDTO)) {return organDTO;}throw new SLException(ExceptionEnum.ORGAN_NOT_FOUND);}@Overridepublic List<OrganDTO> findByBids(List<Long> bids) {List<OrganDTO> organDTOS = this.organRepository.findByBids(bids);if (ObjectUtil.isNotEmpty(organDTOS)) {return organDTOS;}throw new SLException(ExceptionEnum.ORGAN_NOT_FOUND);}@Overridepublic List<OrganDTO> findAll(String name) {return this.organRepository.findAll(name);}@Overridepublic String findAllTree() {return "";}
}
@Component
public class OrganRepositoryImpl implements OrganRepository {@Resourceprivate Neo4jClient neo4jClient;@Overridepublic OrganDTO findByBid(Long bid) {String cypherQuery = StrUtil.format("MATCH (n)\n" +"WHERE n.bid = {}\n" +"RETURN n", bid);return CollUtil.getFirst(executeQuery(cypherQuery));}@Overridepublic List<OrganDTO> findByBids(List<Long> bids) {String cypherQuery = StrUtil.format("MATCH (n)\n" +"WHERE n.bid in {}\n" +"RETURN n", bids);return executeQuery(cypherQuery);}@Overridepublic List<OrganDTO> findAll(String name) {name = StrUtil.removeAll(name, '\'', '"');String cypherQuery = StrUtil.isEmpty(name) ?"MATCH (n) RETURN n" :StrUtil.format("MATCH (n) WHERE n.name CONTAINS '{}' RETURN n", name);return executeQuery(cypherQuery);}private List<OrganDTO> executeQuery(String cypherQuery) {return ListUtil.toList(this.neo4jClient.query(cypherQuery).fetchAs(OrganDTO.class) //设置响应的类型.mappedBy((typeSystem, record) -> { //对结果进行封装处理Map<String, Object> map = record.get("n").asMap();OrganDTO organDTO = BeanUtil.toBean(map, OrganDTO.class);InternalPoint2D location = (InternalPoint2D) map.get("location");if (ObjectUtil.isNotEmpty(location)) {organDTO.setLongitude(location.x());organDTO.setLatitude(location.y());}//获取类型String type = CollUtil.getFirst(record.get("n").asNode().labels());organDTO.setType(OrganTypeEnum.valueOf(type).getCode());return organDTO;}).all());}
}

http://www.dtcms.com/wzjs/466942.html

相关文章:

  • 成品网站建设哪家好广西seo公司
  • 仿做静态网站多少钱友情链接交换平台
  • 六兄弟做网站中国时事新闻网
  • 怎么使用网站服务器广告推广宣传
  • 新手学做网站难吗江小白网络营销案例
  • b2b电子商务模式有哪些网站杭州百度优化
  • 珠海网站建设知识如何做百度竞价推广
  • java网站开发需要什么软件seo专员的工作内容
  • 盐城seo网站优化软件网络运营培训哪里有学校
  • 个人备案的网站 做企业站百度seo排名点击器
  • 高端网站制作报价网络营销活动推广方式
  • 北京网站优化公司哪家好最常用的几个关键词
  • 泰安企业网站建设电话买链接网站
  • 在北京做家教的网站廊坊自动seo
  • 网站做的好的公司有域名注册管理中心网站
  • 蘑菇丁毕业设计网站企业培训课程推荐
  • 天津招标信息网官网谷歌seo排名优化服务
  • 网站建设书籍2013年的短视频获客系统
  • 郴州市第一人民医院官网seo网站推广首页排名
  • 安徽省住房和城乡建设厅网站南宁排名seo公司
  • 个人网站一年多少钱网页设计制作网站代码
  • 长春网站建设b站在线观看人数在哪
  • 营销的网站网站seo最新优化方法
  • 太原网站优化百度指数网址是什么
  • php做的卖水果网站西安网站建设排名
  • 旅游网站建设系统营销方式方案案例
  • 我想做服装网站怎么做收录平台
  • 有没有像一起做网店做男装的网站杭州关键词推广优化方案
  • 安徽网络营销企业服务aso优化师
  • 个人网站空间申请免费的拓客平台有哪些