【客户下单】后台系统匹配分区关键字实现自动分单

【客户下单】后台系统基于分区关键字匹配实现自动分单

通过前端传递过来的”省市区”,找到区域,在通过区域找到分区,将客户发货地址与分区的关键字进行匹配,如果包含分区的关键字或辅助关键字,就通过分区找到定区,基于定区找到快递员,实现自动分单。

@Service
@Transactional
public class OrderServiceImpl implements OrderService{@Autowiredprivate FixedAreaRepository fixedAreaRepository;@Autowiredprivate OrderRepository orderRepository;@Autowiredprivate AreaRepository areaRepository;@Overridepublic void saveOrder(Order order){//基于分区关键字匹配实现自动分单逻辑:通过省市区查询分区关键字,匹配地址,基于分区实现自动分单//寄件人省市区Area area = order.getSendArea();Area persistArea = areaRepository.findByProvinceAndCityAndDistrict(area.getProvince(),area.getCity(),area.getDistrict());for(SubArea subArea : persistArea.getSubareas()){//当前客户的下单地址是否包含分区关键字if(order.getSendAddress().contains(subArea.getKeyWords())){//找到分区,找到定区,找到快递员Iterator iterator = subArea.getFixedArea().getCouriers().iterator();if(iterator.hasNext()){Courier courier = iterator.next();if(courier!=null){//自动分单成功System.out.println("自动分单成功...");saveOrder(order,courier);return;}}}}for(SubArea subArea : persistArea.getSubareas()){//当前客户的下单地址是否包含分区辅助关键字if(order.getSendAddress().contains(subArea.getAssistKeyWords())){//找到分区,找到定区,找到快递员Iterator iterator = subArea.getFixedArea().getCouriers().iterator();if(iterator.hasNext()){Courier courier = iterator.next();if(courier!=null){//自动分单成功System.out.println("自动分单成功...");//将快递员关联到订单上order.setCourier(courier);//保存订单order.setOrderNum(UUID.randomUUID().toString());//生成订单号orderRepository.save(order);return;}}}}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部