From b58aa9e68a30029423c57886a0a30896d833cb44 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期四, 10 八月 2023 10:13:47 +0800 Subject: [PATCH] 合并代码 --- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java | 68 +++-- management/.idea/modules.xml | 8 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java | 2 management/.idea/management.iml | 9 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IBranchOfficeService.java | 10 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java | 2 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IDriverService.java | 12 + user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/warpper/DriverRegisterWarpper.java | 41 +++ user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java | 2 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java | 1 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverRegisterWarpper.java | 2 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java | 5 driver/guns-admin/src/main/resources/logback-spring.xml | 2 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/RedisUtil.java | 1 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/DriverServiceImpl.java | 163 +++++++++++++ user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Driver.java | 5 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java | 32 ++ user/guns-admin/src/main/resources/logback-spring.xml | 2 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderInfoWarpper.java | 2 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/BranchOfficeMapper.java | 5 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/BranchOfficeServiceImpl.java | 15 - driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderPositionServiceImpl.java | 8 management/.idea/vcs.xml | 6 management/.idea/misc.xml | 7 driver/guns-admin/guns-admin.iml | 260 +++++++++++++++++++++ user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java | 23 + 26 files changed, 635 insertions(+), 58 deletions(-) diff --git a/driver/guns-admin/guns-admin.iml b/driver/guns-admin/guns-admin.iml new file mode 100644 index 0000000..9172026 --- /dev/null +++ b/driver/guns-admin/guns-admin.iml @@ -0,0 +1,260 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> + <component name="FacetManager"> + <facet type="Spring" name="Spring"> + <configuration /> + </facet> + <facet type="web" name="Web"> + <configuration> + <webroots /> + <sourceRoots> + <root url="file://$MODULE_DIR$/src/main/java" /> + <root url="file://$MODULE_DIR$/src/main/resources" /> + <root url="file://$MODULE_DIR$/src/main/webapp" /> + </sourceRoots> + </configuration> + </facet> + </component> + <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8"> + <output url="file://$MODULE_DIR$/target/classes" /> + <output-test url="file://$MODULE_DIR$/target/test-classes" /> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> + <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> + <sourceFolder url="file://$MODULE_DIR$/src/main/webapp" type="java-resource" /> + <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> + <excludeFolder url="file://$MODULE_DIR$/target" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:2.0.1.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.0.1.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-context:2.0.1.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:5.0.4.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-commons:2.0.1.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.5.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.56" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-core:2.0.1.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-eureka-client:2.0.1.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: com.netflix.eureka:eureka-client:1.9.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.jettison:jettison:1.3.7" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: stax:stax-api:1.0.1" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-eventbus:0.3.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-infix:0.3.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: commons-jxpath:commons-jxpath:1.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: joda-time:joda-time:2.9.9" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.antlr:antlr-runtime:3.4" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.antlr:stringtemplate:3.2.1" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: antlr:antlr:2.7.7" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.commons:commons-math:2.2" level="project" /> + <orderEntry type="library" name="Maven: com.netflix.archaius:archaius-core:0.7.6" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: javax.ws.rs:jsr311-api:1.1.1" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.servo:servo-core:0.12.21" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-core:1.19.1" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-client:1.19.1" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey.contribs:jersey-apache-client4:1.19.1" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.google.inject:guice:4.1.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: javax.inject:javax.inject:1" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: aopalliance:aopalliance:1.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.github.vlsi.compactmap:compactmap:1.2.1" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.github.andrewoma.dexx:dexx-collections:0.2" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" /> + <orderEntry type="library" name="Maven: com.netflix.eureka:eureka-core:1.9.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.woodstox:woodstox-core-asl:4.4.1" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: javax.xml.stream:stax-api:1.0-2" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.woodstox:stax2-api:3.1.4" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-archaius:2.0.1.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.0.1.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.8" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-ribbon:2.0.1.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon:2.2.5" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.ribbon:ribbon-transport:2.2.5" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-contexts:0.4.9" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-servo:0.4.9" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-codec-http:4.1.23.Final" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-codec:4.1.23.Final" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-transport-native-epoll:4.1.23.Final" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-common:4.1.23.Final" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-buffer:4.1.23.Final" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-transport-native-unix-common:4.1.23.Final" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-transport:4.1.23.Final" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-resolver:4.1.23.Final" level="project" /> + <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.2.5" level="project" /> + <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-httpclient:2.2.5" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-commons-util:0.3.0" level="project" /> + <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-loadbalancer:2.2.5" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-statistics:0.1.1" level="project" /> + <orderEntry type="library" name="Maven: io.reactivex:rxjava:1.3.8" level="project" /> + <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-eureka:2.2.5" level="project" /> + <orderEntry type="library" name="Maven: com.thoughtworks.xstream:xstream:1.4.10" level="project" /> + <orderEntry type="library" name="Maven: xmlpull:xmlpull:1.1.3.1" level="project" /> + <orderEntry type="library" name="Maven: xpp3:xpp3_min:1.1.4c" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-hystrix:2.0.1.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.0.1.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: com.netflix.hystrix:hystrix-core:1.5.12" level="project" /> + <orderEntry type="library" name="Maven: org.hdrhistogram:HdrHistogram:2.1.9" level="project" /> + <orderEntry type="library" name="Maven: com.netflix.hystrix:hystrix-serialization:1.5.12" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.fasterxml.jackson.module:jackson-module-afterburner:2.9.5" level="project" /> + <orderEntry type="library" name="Maven: com.netflix.hystrix:hystrix-metrics-event-stream:1.5.12" level="project" /> + <orderEntry type="library" name="Maven: com.netflix.hystrix:hystrix-javanica:1.5.12" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.ow2.asm:asm:5.0.4" level="project" /> + <orderEntry type="library" name="Maven: io.reactivex:rxjava-reactive-streams:1.2.1" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.reactivestreams:reactive-streams:1.0.2" level="project" /> + <orderEntry type="module" module-name="guns-core" /> + <orderEntry type="library" name="Maven: com.baomidou:mybatisplus-spring-boot-starter:1.0.5" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-configuration-processor:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:2.3" level="project" /> + <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-support:2.3" level="project" /> + <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:2.3" level="project" /> + <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:1.1" level="project" /> + <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.3.2" level="project" /> + <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.6" level="project" /> + <orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.7" level="project" /> + <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" /> + <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.4" level="project" /> + <orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.11" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.google.protobuf:protobuf-java:2.6.0" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:2.7.9" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.0.5.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: com.alibaba:druid:1.1.10" level="project" /> + <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.47" level="project" /> + <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.7" level="project" /> + <orderEntry type="module" module-name="guns-generator" /> + <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-generate:2.3" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" /> + <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.10.0" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.25" level="project" /> + <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.19" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.0.5.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.0.5.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.13" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.5" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.5" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.5" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.32" level="project" /> + <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.32" level="project" /> + <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.0.11.Final" level="project" /> + <orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" /> + <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-web:5.0.5.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.0.5.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.0.5.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-cache:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-context:5.0.5.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.0.5.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.32" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.9.1" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:2.15.0" level="project" /> + <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.7.11" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.7.11" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-core:5.0.8.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.0.5.RELEASE" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.0.5.RELEASE" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.5.1" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-devtools:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.7.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shiro:shiro-lang:1.7.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shiro:shiro-cache:1.7.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-hash:1.7.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-core:1.7.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-cipher:1.7.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-core:1.7.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-ogdl:1.7.0" level="project" /> + <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.4" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shiro:shiro-event:1.7.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring:1.7.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.7.0" level="project" /> + <orderEntry type="library" name="Maven: org.owasp.encoder:encoder:1.2.2" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shiro:shiro-ehcache:1.7.0" level="project" /> + <orderEntry type="library" name="Maven: net.sf.ehcache:ehcache-core:2.6.11" level="project" /> + <orderEntry type="library" name="Maven: org.ehcache:ehcache:3.3.1" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" /> + <orderEntry type="library" name="Maven: com.github.penggle:kaptcha:2.3.2" level="project" /> + <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" /> + <orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235-1" level="project" /> + <orderEntry type="library" name="Maven: com.google.zxing:core:3.2.1" level="project" /> + <orderEntry type="library" name="Maven: com.ibeetl:beetl:2.8.5" level="project" /> + <orderEntry type="library" name="Maven: org.antlr:antlr4-runtime:4.2" level="project" /> + <orderEntry type="library" name="Maven: org.abego.treelayout:org.abego.treelayout.core:1.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.antlr:antlr4-annotations:4.2" level="project" /> + <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" /> + <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" /> + <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" /> + <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" /> + <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" /> + <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" /> + <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" /> + <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" /> + <orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.4" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" /> + <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" /> + <orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt:0.9.0" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.5" level="project" /> + <orderEntry type="library" name="Maven: redis.clients:jedis:2.9.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.5.0" level="project" /> + <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" /> + <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" /> + <orderEntry type="library" name="Maven: com.alipay.sdk:alipay-sdk-java:4.8.10.ALL" level="project" /> + <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" /> + <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.62" level="project" /> + <orderEntry type="library" name="Maven: com.huaweicloud:esdk-obs-java-bundle:3.23.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.10.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.10.0" level="project" /> + <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:4.4.3" level="project" /> + <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project" /> + <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.6" level="project" /> + <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.11" level="project" /> + <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.10" level="project" /> + <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.0" level="project" /> + <orderEntry type="library" name="Maven: org.jacoco:org.jacoco.agent:runtime:0.8.3" level="project" /> + <orderEntry type="library" name="Maven: org.ini4j:ini4j:0.5.4" level="project" /> + <orderEntry type="library" name="Maven: org.gavaghan:geodesy:1.1.3" level="project" /> + <orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.18.20" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:2.0.4.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.6.4" level="project" /> + <orderEntry type="library" name="Maven: org.mongodb:bson:3.6.4" level="project" /> + <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.6.4" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:2.0.6.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.0.5.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.0.6.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: com.github.wechatpay-apiv3:wechatpay-java:0.2.7" level="project" /> + <orderEntry type="library" name="Maven: com.github.wechatpay-apiv3:wechatpay-java-core:0.2.7" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.squareup.okhttp3:okhttp:3.8.1" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.squareup.okio:okio:1.13.0" level="project" /> + <orderEntry type="library" name="Maven: com.github.wechatpay-apiv3:wechatpay-java-shangmi:0.2.1" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.tencent.kona:kona-crypto:1.0.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.bouncycastle:bcprov-jdk18on:1.72" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.tencent.kona:kona-pkix:1.0.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.tencent.kona:kona-provider:1.0.3" level="project" /> + <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.7.7" level="project" /> + </component> +</module> \ No newline at end of file diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java index 3b150f5..011d18c 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java @@ -927,6 +927,7 @@ } ResultUtil resultUtil = ResultUtil.success(); phone = phone.indexOf("+86") < 0 ? "+86" + phone : phone; + phone = phone.indexOf("+") < 0 ? "+" + phone : phone; String value = redisUtil.getValue(phone); if(ToolUtil.isEmpty(value) || !value.equals(code)){ resultUtil = ResultUtil.error("验证码无效"); diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java index 82fc9b8..2455f25 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java @@ -268,4 +268,9 @@ */ @TableField("carAge") private Integer carAge; + /** + * 司机推荐二维码 + */ + @TableField("referralCode") + private String referralCode; } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java index d4be5c0..6b4be09 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java @@ -38,7 +38,7 @@ */ ResultUtil driverAddOrder(Integer uid, AddOrderWarpper addOrderWarpper) throws Exception; - Order getOrderPrice(Integer type, Double distance, Integer waitTime, Order order, String city); + Order getOrderPrice(Integer type, Double distance, Integer waitTime, Order order, String city) throws Exception; /** * 获取大厅订单列表 * @param uid diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java index fb9e6ad..3bdb703 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java @@ -15,6 +15,7 @@ import com.supersavedriving.driver.modular.system.util.MallBook.model.*; import com.supersavedriving.driver.modular.system.util.MallBook.util.TrhRequest; import com.supersavedriving.driver.modular.system.util.*; +import com.supersavedriving.driver.modular.system.util.huawei.OBSUtil; import com.supersavedriving.driver.modular.system.util.mongodb.model.Location; import com.supersavedriving.driver.modular.system.util.rongyun.RongYunUtil; import com.supersavedriving.driver.modular.system.util.weChat.WeChatUtil; @@ -41,6 +42,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; +import java.io.InputStream; import java.math.BigDecimal; import java.math.BigInteger; import java.math.RoundingMode; @@ -162,6 +164,10 @@ } driver.setCreateTime(new Date()); this.insert(driver); + String s = wechatMiniProgramORCode(driver.getId()); + driver.setReferralCode(s); + this.updateById(driver); + //司机邀请注册奖励 if(null != driver.getInviterId()){ @@ -190,6 +196,16 @@ } + + //生成小程序二维码 + public String wechatMiniProgramORCode(Integer driverId) throws Exception{ + InputStream release = weChatUtil.getwxacodeunlimit("pages/index/index", "driverId=" + driverId, "release"); + String s = OBSUtil.putObjectToBucket(release, "driver_" + driverId + "_" + UUIDUtil.getNumberRandom(5) + ".jpg"); + return s; + } + + + /** * 组装个人信息 * @param driver @@ -198,6 +214,7 @@ */ public Driver setDriverParamete(Driver driver, DriverRegisterWarpper driverRegisterWarpper) throws Exception{ driver.setAvatar(driverRegisterWarpper.getAvatar()); + driver.setName(driverRegisterWarpper.getName()); driver.setPhone(driverRegisterWarpper.getPhone()); driver.setEmergencyContact(driverRegisterWarpper.getEmergencyContact()); driver.setEmergencyPhone(driverRegisterWarpper.getEmergencyPhone()); @@ -293,6 +310,11 @@ } } + if(ToolUtil.isEmpty(driver.getReferralCode())){ + String s = wechatMiniProgramORCode(driver.getId()); + driver.setReferralCode(s); + this.updateById(driver); + } return ResultUtil.success(tokenWarpper); } @@ -561,13 +583,19 @@ @Override public PromotionWarpper queryPromotionQRCode(Integer uid) throws Exception { PromotionWarpper promotionWarpper = new PromotionWarpper(); - promotionWarpper.setUrl("https://chaoshengdaijia.com/share/driverShare/index.html?inviterId=" + uid); + Driver driver1 = this.selectById(uid); + if(ToolUtil.isEmpty(driver1.getReferralCode())){ + String s = wechatMiniProgramORCode(driver1.getId()); + driver1.setReferralCode(s); + this.updateById(driver1); + } +// promotionWarpper.setUrl("https://chaoshengdaijia.com/share/driverShare/index.html?inviterId=" + uid); + promotionWarpper.setUrl(driver1.getReferralCode()); int user = appUserService.selectCount(new EntityWrapper<AppUser>().eq("inviterType", 2).eq("inviterId", uid).eq("status", 1)); int driver = this.selectCount(new EntityWrapper<Driver>().eq("inviterType", 2).eq("inviterId", uid).eq("approvalStatus", 2).eq("status", 1)); promotionWarpper.setTotal(user + driver); promotionWarpper.setUser(user); promotionWarpper.setDriver(driver); - Driver driver1 = this.selectById(uid); promotionWarpper.setAvatar(driver1.getAvatar()); promotionWarpper.setName(driver1.getName()); return promotionWarpper; diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderPositionServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderPositionServiceImpl.java index 8c6a2bd..00b1cd2 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderPositionServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderPositionServiceImpl.java @@ -48,7 +48,11 @@ @Override public void saveOrderPosition(DriverPositionWarpper driverPositionWarpper) throws Exception { Integer orderId = driverPositionWarpper.getOrderId(); + Integer driverId = driverPositionWarpper.getDriverId(); Order order = orderService.selectById(orderId); + if(null == order.getDriverId() || order.getDriverId().compareTo(driverId) != 0){ + return; + } if(order.getState() != 105 && order.getState() != 401){ return; } @@ -136,7 +140,7 @@ } } - if(50 >= wgs84 && 3 <= (null == num ? 0 : num)){//20秒(5秒上传一次数据) + if(50 >= wgs84 && 6 <= (null == num ? 0 : num)){//30秒(5秒上传一次数据) Integer integer = map.get(order.getId().toString()); map.put(order.getId().toString(), null == integer ? 0 : integer + 1); //进入等待状态 @@ -152,7 +156,7 @@ e.printStackTrace(); } } - if(50 >= wgs84 && 3 > (null == num ? 0 : num)){ + if(50 >= wgs84 && 6 > (null == num ? 0 : num)){ Integer integer = map.get(order.getId().toString()); map.put(order.getId().toString(), null == integer ? 0 : integer + 1); } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java index 0ca4eb3..0e2ab36 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java @@ -363,6 +363,9 @@ BigDecimal multiply = new BigDecimal(w).divide(new BigDecimal(60), 0, RoundingMode.UP).multiply(new BigDecimal(num4)); order.setOutWaitTime(w);//等待时长超出分钟 order.setOutWaitTimePrice(multiply.doubleValue());//等待时长超出费用 + }else{ + order.setWaitTime(waitTime);//等待时长 + order.setWaitTimePrice(num2);//等待费用 } //恶劣天气 @@ -461,12 +464,12 @@ * 合适司:积分 > 评分 > 距离 * 3.司机没有接单直接将订单置入大厅 */ - boolean lock = redisUtil.lock(5); + boolean lock = redisUtil.lock(orderId.toString(), 5); if(!lock){ int num1 = 1; while (num1 <= 10){ Thread.sleep(3000);//等待3秒 - lock = redisUtil.lock(5); + lock = redisUtil.lock(orderId.toString(),5); if(lock){ break; }else{ @@ -478,11 +481,12 @@ order.setHallOrder(1); this.updateById(order); ExtraPushOrder(order); - redisUtil.unlock(); + redisUtil.unlock(orderId.toString()); + return; } SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 1)); if(null == systemConfig){ - redisUtil.unlock(); + redisUtil.unlock(orderId.toString()); return; } JSONObject jsonObject = JSON.parseObject(systemConfig.getContent()); @@ -645,10 +649,10 @@ this.updateById(order); ExtraPushOrder(order); } - redisUtil.unlock(); + redisUtil.unlock(orderId.toString()); }catch (Exception e){ e.printStackTrace(); - redisUtil.unlock(); + redisUtil.unlock(orderId.toString()); } } @@ -801,12 +805,12 @@ if(count > 0){ return ResultUtil.error("还有未完成的订单"); } - boolean lock = redisUtil.lock(5); + boolean lock = redisUtil.lock(orderId.toString(), 5); if(!lock){ int num1 = 1; while (num1 <= 10){ Thread.sleep(3000);//等待3秒 - lock = redisUtil.lock(5); + lock = redisUtil.lock(orderId.toString(),5); if(lock){ break; }else{ @@ -815,17 +819,18 @@ } } if(!lock){ + redisUtil.unlock(orderId.toString()); return ResultUtil.error("请重试"); } Order order = this.selectById(orderId); Integer state = order.getState(); Integer oldDriverId = order.getDriverId(); if(state == 301){ - redisUtil.unlock(); + redisUtil.unlock(orderId.toString()); return ResultUtil.error("订单已被取消"); } if(state != 101 && state != 201){ - redisUtil.unlock(); + redisUtil.unlock(orderId.toString()); return ResultUtil.error("手速慢了哦"); } order.setDriverId(uid); @@ -834,7 +839,7 @@ order.setState(102); order.setOrderTakingTime(new Date()); this.updateById(order); - redisUtil.unlock(); + redisUtil.unlock(orderId.toString()); if(null != order.getUserId()){ AppUser appUser = appUserService.selectById(order.getUserId()); @@ -874,9 +879,10 @@ orderTransfer.setSuccessTime(new Date()); orderTransferService.insert(orderTransfer); } - - pushUtil.pushTransferSuccessful(order.getUserId(), 1, order.getId()); pushUtil.pushTransferSuccessful(oldDriverId, 2, order.getId()); + if(null != order.getUserId()){ + pushUtil.pushTransferSuccessful(order.getUserId(), 1, order.getId()); + } } //推动订单数据 @@ -889,7 +895,7 @@ pushUtil.pushOrderStatus(order.getUserId(), 1, order.getId(), order.getState()); } }catch (Exception e){ - redisUtil.unlock(); + redisUtil.unlock(orderId.toString()); e.printStackTrace(); throw e; } @@ -938,6 +944,7 @@ Map<String, String> distance1 = MapUtil.getDistance(orderInfoWarpper.getStartLng() + "," + orderInfoWarpper.getStartLat(), value, 0); orderInfoWarpper.setPickUpTime(Integer.valueOf(distance1.get("duration")) / 60); } + orderInfoWarpper.setDriverId(order.getDriverId()); return orderInfoWarpper; } @@ -1005,7 +1012,12 @@ .where("'" + geocode.getCity() + "' like CONCAT('%', city, '%') and '" + geocode.getDistrict() + "' like CONCAT('%', district, '%') ")); city = null != weatherCity ? weatherCity.getId().toString() : ""; } - order = getOrderPrice(2, Double.valueOf(order.getActualMileage()) / 1000, order.getWaitTime(), order, city); + try { + order = getOrderPrice(2, Double.valueOf(order.getActualMileage()) / 1000, order.getWaitTime(), order, city); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.error("计算费用异常"); + } Coupon coupon = userToCouponService.queryCoupon(order.getUserId(), order.getOrderMoney()); if(null != coupon){ order.setCouponId(coupon.getId()); @@ -1018,10 +1030,6 @@ order.setPayMoney(order.getOrderMoney()); } - //修改司机状态和积分 - Driver driver = driverService.selectById(order.getDriverId()); - driver.setServerStatus(1); - driverService.updateById(driver); saveIntegral(order); redisUtil.delSetValue("orderService", order.getId().toString()); break; @@ -1282,6 +1290,9 @@ @Override public ResultUtil driverCancelOrder(Integer uid, Long orderId, String cause) throws Exception { Order order = this.selectById(orderId); + if(null == order){ + return ResultUtil.error("订单数据异常"); + } if(uid.compareTo(order.getDriverId()) != 0){ return ResultUtil.error("无法取消订单"); } @@ -1335,11 +1346,13 @@ orderPriceWarpper.setOverDriveDistance(order.getOverDriveDistance()); orderPriceWarpper.setMileageFee(order.getOverDrivePrice()); }else{ - String[] split = order.getLongDistance().split("-"); - orderPriceWarpper.setStartPrice(order.getLongDistancePrice()); - orderPriceWarpper.setStartDistance(Double.valueOf(split[1])); - orderPriceWarpper.setOverDriveDistance(order.getOverLongDistance()); - orderPriceWarpper.setMileageFee(order.getOverLongDistancePrice()); + if(order.getLongDistance().indexOf("-") >= 0){ + String[] split = order.getLongDistance().split("-"); + orderPriceWarpper.setStartPrice(order.getLongDistancePrice()); + orderPriceWarpper.setStartDistance(Double.valueOf(split[1])); + orderPriceWarpper.setOverDriveDistance(order.getOverLongDistance()); + orderPriceWarpper.setMileageFee(order.getOverLongDistancePrice()); + } } Integer waitTime = order.getWaitTime() + order.getOutWaitTime(); Integer s = waitTime % 60; @@ -1465,6 +1478,13 @@ } this.updateById(order); + if((payType == 1 && state == 107) || (payType == 2 && state == 108)){ + //修改司机状态和积分 + Driver driver = driverService.selectById(order.getDriverId()); + driver.setServerStatus(1); + driverService.updateById(driver); + } + if(payType == 2 && state == 108){//计算抽成 saveRevenue(order); } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/RedisUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/RedisUtil.java index f8d1e38..fd3d1f1 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/RedisUtil.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/RedisUtil.java @@ -188,7 +188,6 @@ timer.schedule(new TimerTask() { @Override public void run() { - System.err.println("定时任务启动"); Jedis resource = jedisPool.getResource(); resource.setex(finalKey, time, value); resource.close(); diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverRegisterWarpper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverRegisterWarpper.java index fbc8bb1..f640960 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverRegisterWarpper.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverRegisterWarpper.java @@ -16,6 +16,8 @@ private String code; @ApiModelProperty(value = "头像", required = false, dataType = "string") private String avatar; + @ApiModelProperty(value = "姓名", required = false, dataType = "string") + private String name; @ApiModelProperty(value = "手机号码", required = true, dataType = "string") private String phone; @ApiModelProperty(value = "紧急联系人", required = false, dataType = "string") diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderInfoWarpper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderInfoWarpper.java index d59cc34..13c7880 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderInfoWarpper.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/OrderInfoWarpper.java @@ -17,6 +17,8 @@ private String userName; @ApiModelProperty("用户电话") private String userPhone; + @ApiModelProperty("司机id") + private Integer driverId; @ApiModelProperty("用户余额") private Double balance; @ApiModelProperty("下单次数") diff --git a/driver/guns-admin/src/main/resources/logback-spring.xml b/driver/guns-admin/src/main/resources/logback-spring.xml index 4a0d41a..23a96ac 100644 --- a/driver/guns-admin/src/main/resources/logback-spring.xml +++ b/driver/guns-admin/src/main/resources/logback-spring.xml @@ -154,7 +154,7 @@ <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <!--日志文档保留天数--> - <maxHistory>15</maxHistory> + <maxHistory>200</maxHistory> </rollingPolicy> <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> diff --git a/management/.idea/management.iml b/management/.idea/management.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/management/.idea/management.iml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="JAVA_MODULE" version="4"> + <component name="NewModuleRootManager" inherit-compiler-output="true"> + <exclude-output /> + <content url="file://$MODULE_DIR$" /> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + </component> +</module> \ No newline at end of file diff --git a/management/.idea/misc.xml b/management/.idea/misc.xml new file mode 100644 index 0000000..f091b54 --- /dev/null +++ b/management/.idea/misc.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="JavaScriptSettings"> + <option name="languageLevel" value="ES6" /> + </component> + <component name="ProjectRootManager" version="2" project-jdk-name="1.8" project-jdk-type="JavaSDK" /> +</project> \ No newline at end of file diff --git a/management/.idea/modules.xml b/management/.idea/modules.xml new file mode 100644 index 0000000..fcdfbe8 --- /dev/null +++ b/management/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/management.iml" filepath="$PROJECT_DIR$/.idea/management.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/management/.idea/vcs.xml b/management/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/management/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$/.." vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java index dd68d6a..9f72853 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java @@ -94,7 +94,7 @@ } model.addAttribute("startPrice",tOrder.getStartPrice());//起步价 model.addAttribute("overDrivePrice",tOrder.getOverDrivePrice());//里程费 - model.addAttribute("waitTimePrice",tOrder.getWaitTimePrice());//等待费 + model.addAttribute("waitTimePrice",tOrder.getWaitTimePrice().add(tOrder.getOutWaitTimePrice()));//等待费 model.addAttribute("badWeatherPrice",tOrder.getBadWeatherPrice());//恶劣天气费用 model.addAttribute("orderMoney",tOrder.getOrderMoney());//实际费用 model.addAttribute("payMoney",tOrder.getPayMoney());//实际支付费用 diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java index d4c3aae..f22e50a 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java @@ -561,4 +561,27 @@ } } + + + @ResponseBody + @PostMapping("/api/user/driverRegister") +// @ServiceLog(name = "注册司机", url = "/api/user/driverRegister") + @ApiOperation(value = "注册司机", tags = {"用户端-登录注册"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper driverRegister(DriverRegisterWarpper driverRegisterWarpper){ + try { + Integer uid = appUserService.getUserByRequest(); + if(null == uid){ + return ResponseWarpper.success(ResultUtil.tokenErr()); + } + ResultUtil resultUtil = driverService.driverRegister(uid, driverRegisterWarpper); + return ResponseWarpper.success(resultUtil); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } + } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/BranchOfficeMapper.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/BranchOfficeMapper.java index abf3e44..e0772e2 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/BranchOfficeMapper.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/BranchOfficeMapper.java @@ -1,8 +1,11 @@ package com.supersavedriving.user.modular.system.dao; - import com.baomidou.mybatisplus.mapper.BaseMapper; import com.supersavedriving.user.modular.system.model.BranchOffice; +/** + * @author zhibing.pu + * @date 2023/8/3 14:20 + */ public interface BranchOfficeMapper extends BaseMapper<BranchOffice> { } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Driver.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Driver.java index 0c010ce..953eb6f 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Driver.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Driver.java @@ -252,4 +252,9 @@ */ @TableField("openOrderQRCode") private Integer openOrderQRCode; + /** + * 司机推荐二维码 + */ + @TableField("referralCode") + private String referralCode; } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IBranchOfficeService.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IBranchOfficeService.java index 2db85de..92cb558 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IBranchOfficeService.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IBranchOfficeService.java @@ -3,13 +3,9 @@ import com.baomidou.mybatisplus.service.IService; import com.supersavedriving.user.modular.system.model.BranchOffice; -import java.util.List; - /** -* 分公司接口逻辑类 -* @author pzb -* @Date 2023/2/3 14:49 -*/ + * @author zhibing.pu + * @date 2023/8/3 14:22 + */ public interface IBranchOfficeService extends IService<BranchOffice> { - } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IDriverService.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IDriverService.java index 7c80c1e..389feeb 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IDriverService.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IDriverService.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.service.IService; import com.supersavedriving.user.modular.system.model.Driver; +import com.supersavedriving.user.modular.system.util.ResultUtil; +import com.supersavedriving.user.modular.system.warpper.DriverRegisterWarpper; import com.supersavedriving.user.modular.system.warpper.NearbyDriverWarpper; import java.util.List; @@ -20,4 +22,14 @@ * @throws Exception */ List<NearbyDriverWarpper> queryDriverPosition(String lon, String lat, Double scope) throws Exception; + + + + /** + * 司机注册 + * @param driverRegisterWarpper + * @return + * @throws Exception + */ + ResultUtil driverRegister(Integer uid, DriverRegisterWarpper driverRegisterWarpper) throws Exception; } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/BranchOfficeServiceImpl.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/BranchOfficeServiceImpl.java index e949dc3..76871a7 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/BranchOfficeServiceImpl.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/BranchOfficeServiceImpl.java @@ -1,24 +1,15 @@ package com.supersavedriving.user.modular.system.service.impl; - import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.supersavedriving.user.modular.system.dao.BranchOfficeMapper; import com.supersavedriving.user.modular.system.model.BranchOffice; import com.supersavedriving.user.modular.system.service.IBranchOfficeService; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.List; - - /** -* 分公司逻辑类 -* @author pzb -* @Date 2023/2/3 14:48 -*/ + * @author zhibing.pu + * @date 2023/8/3 14:22 + */ @Service public class BranchOfficeServiceImpl extends ServiceImpl<BranchOfficeMapper, BranchOffice> implements IBranchOfficeService { - - - } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/DriverServiceImpl.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/DriverServiceImpl.java index f9c8c63..4fde3d3 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/DriverServiceImpl.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/DriverServiceImpl.java @@ -5,13 +5,16 @@ import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.supersavedriving.user.core.util.ToolUtil; import com.supersavedriving.user.modular.system.dao.DriverMapper; -import com.supersavedriving.user.modular.system.model.Driver; -import com.supersavedriving.user.modular.system.model.DriverWork; -import com.supersavedriving.user.modular.system.service.IDriverService; -import com.supersavedriving.user.modular.system.service.IDriverWorkService; +import com.supersavedriving.user.modular.system.model.*; +import com.supersavedriving.user.modular.system.service.*; import com.supersavedriving.user.modular.system.util.GeodesyUtil; import com.supersavedriving.user.modular.system.util.RedisUtil; +import com.supersavedriving.user.modular.system.util.ResultUtil; +import com.supersavedriving.user.modular.system.util.UUIDUtil; +import com.supersavedriving.user.modular.system.util.huawei.OBSUtil; import com.supersavedriving.user.modular.system.util.mongodb.model.Location; +import com.supersavedriving.user.modular.system.util.weChat.WeChatUtil; +import com.supersavedriving.user.modular.system.warpper.DriverRegisterWarpper; import com.supersavedriving.user.modular.system.warpper.NearbyDriverWarpper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.geo.Circle; @@ -23,7 +26,10 @@ import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; +import java.io.InputStream; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -44,6 +50,25 @@ @Autowired private RedisUtil redisUtil; + + @Autowired + private IAppUserService appUserService; + + @Autowired + private WeChatUtil weChatUtil; + + @Autowired + private IBranchOfficeService branchOfficeService; + + @Autowired + private ISystemConfigService systemConfigService; + + @Autowired + private IAccountChangeDetailService accountChangeDetailService; + + + + /** @@ -91,9 +116,139 @@ } + /** + * 注册司机 + * @param uid + * @param driverRegisterWarpper + * @return + * @throws Exception + */ + @Override + public ResultUtil driverRegister(Integer uid, DriverRegisterWarpper driverRegisterWarpper) throws Exception { + Driver driver = this.selectOne(new EntityWrapper<Driver>().eq("phone", driverRegisterWarpper.getPhone()).ne("status", 3)); + if(null != driver && driver.getStatus() == 2){ + return ResultUtil.error("该手机账号已被冻结,请联系管理员。"); + } + if(null != driver && driver.getApprovalStatus() == 1){ + return ResultUtil.error("该手机账号正在审核中。"); + } + if(null != driver && driver.getApprovalStatus() == 2){ + return ResultUtil.error("该手机账号已审核通过,请直接登录。"); + } + + //账号审核拒绝后的处理 + if(null != driver && driver.getApprovalStatus() == 3){ + try { + driver = setDriverParamete(driver, driverRegisterWarpper); + }catch (Exception e){ + return ResultUtil.error(e.getMessage()); + } + this.updateAllColumnById(driver); + } + + AppUser appUser = appUserService.selectById(uid); + //新账号 + if(null == driver){ + driver = new Driver(); + driver.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(5)); + try { + driver = setDriverParamete(driver, driverRegisterWarpper); + }catch (Exception e){ + return ResultUtil.error(e.getMessage()); + } + + driver.setCreateTime(new Date()); + driver.setInviterId(appUser.getInviterId()); + driver.setInviterType(appUser.getInviterType()); + this.insert(driver); + String s = wechatMiniProgramORCode(driver.getId()); + driver.setReferralCode(s); + this.updateById(driver); + + + //司机邀请注册奖励 + if(null != driver.getInviterId()){ + Driver driver1 = this.selectById(driver.getInviterId()); + SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 4)); + if(null != systemConfig){ + Integer num7 = JSON.parseObject(systemConfig.getContent()).getInteger("num7"); + if(num7 > 0){ + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(5)); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(driver1.getId()); + accountChangeDetail.setType(2); + accountChangeDetail.setChangeType(5); + accountChangeDetail.setOldData(driver1.getIntegral().doubleValue()); + driver1.setIntegral(driver1.getIntegral() + num7); + accountChangeDetail.setNewData(driver1.getIntegral().doubleValue()); + accountChangeDetail.setExplain("邀请司机注册奖励"); + accountChangeDetailService.saveData(accountChangeDetail); + this.updateById(driver1); + } + } + } + } + return ResultUtil.success(); + } + /** + * 组装个人信息 + * @param driver + * @param driverRegisterWarpper + * @return + */ + public Driver setDriverParamete(Driver driver, DriverRegisterWarpper driverRegisterWarpper) throws Exception{ + driver.setAvatar(driverRegisterWarpper.getAvatar()); + driver.setName(driverRegisterWarpper.getName()); + driver.setPhone(driverRegisterWarpper.getPhone()); + driver.setEmergencyContact(driverRegisterWarpper.getEmergencyContact()); + driver.setEmergencyPhone(driverRegisterWarpper.getEmergencyPhone()); + driver.setIdcardBack(driverRegisterWarpper.getIdcardBack()); + driver.setIdcardFront(driverRegisterWarpper.getIdcardFront()); + driver.setDriverLicense(driverRegisterWarpper.getDriverLicense()); + if(ToolUtil.isNotEmpty(driverRegisterWarpper.getFirstCertificateTime())){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + driver.setFirstCertificateTime(sdf.parse(driverRegisterWarpper.getFirstCertificateTime())); + } + //注册地 + String code = driverRegisterWarpper.getCode(); + BranchOffice branchOffice = branchOfficeService.selectOne(new EntityWrapper<BranchOffice>().eq("districtCode", code).eq("status", 1)); + if(null == branchOffice){ + branchOffice = branchOfficeService.selectOne(new EntityWrapper<BranchOffice>().eq("cityCode", code).eq("status", 1)); + if(null == branchOffice){ + throw new Exception("该区域无服务商"); + } + } + driver.setBranchOfficeId(branchOffice.getId()); + driver.setAgentId(branchOffice.getAgentId()); + driver.setProvinceCode(branchOffice.getProvinceCode()); + driver.setProvinceName(branchOffice.getProvinceName()); + driver.setCityName(branchOffice.getCityName()); + driver.setCityCode(branchOffice.getCityCode()); + driver.setAreaCode(branchOffice.getDistrictCode()); + driver.setAreaName(branchOffice.getDistrictName()); + if(null != driverRegisterWarpper.getInviterId()){ + driver.setInviterType(driverRegisterWarpper.getInviterType()); + driver.setInviterId(driverRegisterWarpper.getInviterId()); + } + driver.setApprovalStatus(1); + driver.setApprovalNotes(""); + driver.setApprovalTime(null); + driver.setApprovalUserId(null); + driver.setStatus(1); + driver.setSource(driverRegisterWarpper.getSource()); + return driver; + } + + //生成小程序二维码 + public String wechatMiniProgramORCode(Integer driverId) throws Exception{ + InputStream release = weChatUtil.getwxacodeunlimit("pages/index/index", "driverId=" + driverId, "release"); + String s = OBSUtil.putObjectToBucket(release, "driver_" + driverId); + return s; + } } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java index d3c9c7a..30e5b1c 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java @@ -174,7 +174,7 @@ int i = 0; Double scope = 5D; while (true){ - List<NearbyDriverWarpper> nearbyDriverWarppers = driverService.queryDriverPosition(estimatedCosts.getLng().toString(), estimatedCosts.getLat().toString(), scope); + List<NearbyDriverWarpper> nearbyDriverWarppers = driverService.queryDriverPosition(estimatedCosts.getStartLng().toString(), estimatedCosts.getStartLat().toString(), scope); if(nearbyDriverWarppers.size() == 0){ scope += 5; i++; diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/warpper/DriverRegisterWarpper.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/warpper/DriverRegisterWarpper.java new file mode 100644 index 0000000..4f3c501 --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/warpper/DriverRegisterWarpper.java @@ -0,0 +1,41 @@ +package com.supersavedriving.user.modular.system.warpper; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** +* 司机注册 +* @author pzb +* @Date 2023/2/6 9:15 +*/ +@Data +@ApiModel +public class DriverRegisterWarpper { + @ApiModelProperty(value = "注册区域code", required = true, dataType = "string") + private String code; + @ApiModelProperty(value = "头像", required = false, dataType = "string") + private String avatar; + @ApiModelProperty(value = "姓名", required = false, dataType = "string") + private String name; + @ApiModelProperty(value = "手机号码", required = true, dataType = "string") + private String phone; + @ApiModelProperty(value = "紧急联系人", required = true, dataType = "string") + private String emergencyContact; + @ApiModelProperty(value = "紧急联系人电话", required = true, dataType = "string") + private String emergencyPhone; + @ApiModelProperty(value = "身份证正面照", required = true, dataType = "string") + private String idcardFront; + @ApiModelProperty(value = "身份证背面照", required = true, dataType = "string") + private String idcardBack; + @ApiModelProperty(value = "驾驶证领证时间(2023-01-01)", required = true, dataType = "string") + private String firstCertificateTime; + @ApiModelProperty(value = "驾驶证照片", required = true, dataType = "string") + private String driverLicense; + @ApiModelProperty(value = "邀约人类型(1=用户,2=司机)", required = false, dataType = "int") + private Integer inviterType; + @ApiModelProperty(value = "邀约人Id", required = false, dataType = "int") + private Integer inviterId; + @ApiModelProperty(value = "注册来源(1=司机端注册,2=其他端注册)", required = true, dataType = "int") + private Integer source; +} diff --git a/user/guns-admin/src/main/resources/logback-spring.xml b/user/guns-admin/src/main/resources/logback-spring.xml index d739f72..26c8fee 100644 --- a/user/guns-admin/src/main/resources/logback-spring.xml +++ b/user/guns-admin/src/main/resources/logback-spring.xml @@ -154,7 +154,7 @@ <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <!--日志文档保留天数--> - <maxHistory>15</maxHistory> + <maxHistory>200</maxHistory> </rollingPolicy> <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> -- Gitblit v1.7.1