Commit 53b5616e authored by hanfeng's avatar hanfeng

Merge branch 'base-modify' of http://10.5.52.3/youjj/cloud-platform into base-modify

# Conflicts:
#	xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/entity/VehicleModel.java
parents 23c23de2 42b20f5a
...@@ -42,10 +42,10 @@ ALIPAY_PID=2088531634846583 ...@@ -42,10 +42,10 @@ ALIPAY_PID=2088531634846583
#支付宝公钥 #支付宝公钥
ALIPAY_PUBLIC_KEY=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj/EMaAD2iJP3I5M0g6pssDDe3RxF5I3ECM/Kz/btM0RiW2g5oRrHSjtGuos9l1QhQAY0SrVqa2eZdPKUB3ZqJdimQiXr3dbiMvG9UCs8vVUcrtCHCBjDllKQLiYzboxE6JLXyfII5tIXbFKiGyiEyXQnffUhQ9uGyT2EGWGecz6PLIjDdbwpxuzF2gIUzV3bPxb+0axejBxJ/3zKnWrsbyq2nvs8XrzrR2CEggNqgqsKzaacCL1yZjXzQRseSnCMtgSxR5W5afbdY0zqbUlLHUrUZ8ycCRC0ECuI9HyTbuqtdWHEZH7vIH44wEQWZPDRhMfMZvzmPUgpTWZLv5BtaQIDAQAB ALIPAY_PUBLIC_KEY=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj/EMaAD2iJP3I5M0g6pssDDe3RxF5I3ECM/Kz/btM0RiW2g5oRrHSjtGuos9l1QhQAY0SrVqa2eZdPKUB3ZqJdimQiXr3dbiMvG9UCs8vVUcrtCHCBjDllKQLiYzboxE6JLXyfII5tIXbFKiGyiEyXQnffUhQ9uGyT2EGWGecz6PLIjDdbwpxuzF2gIUzV3bPxb+0axejBxJ/3zKnWrsbyq2nvs8XrzrR2CEggNqgqsKzaacCL1yZjXzQRseSnCMtgSxR5W5afbdY0zqbUlLHUrUZ8ycCRC0ECuI9HyTbuqtdWHEZH7vIH44wEQWZPDRhMfMZvzmPUgpTWZLv5BtaQIDAQAB
ALIPAY_ACOUNT=xxfc810@163.com ALIPAY_ACOUNT=xxfc810@163.com
ALIPAY_PRIVATE_KEY=MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC3bANag6my6pjHWqwnSCffRonvOXE6uQgNNb+V23PV55zfcuC+jIgl9BRrIf4tax5f2itfDmlOdAX6mK8WJ620SHg777Q2KlgNTa25ta3xiEfgkb01SX9VyiaLPpP2TEo5LhhRcT+cUomIufQbVbm/jS8mRQ0qBoofbMfr7n9fBSiVDx/QX07qcJTc/MGCy79H5gUiy2fTOEMhTuNtPkoU3az7jXMQ5U/33ILFAJzPCMNJvQnCYxs/y5loxxHdVqV8FnuCWGEWNViuuBtFRVRNXkrs/x99nF0V5/FHnOZzdM3SWrKCpA/52G5QQrbhZXUhMyCs9stXvH+iVUC1JJ9DAgMBAAECggEAOGRf/5MdOGHCCQCKjyUzBQVV4RPDCS/cFtughH1M9sXXyCc0i8D/FtQc9vcjg2k8lHGqBfaTT8iCEhKhOemHETd6p8rBmCmamrR4JfGCghDJMHT+PATVvlWBViwuJ3o7E6tlVJzB1tjVahDpyQGpMwhAJ77xFiueiZzTNmlEBb02ByCG95vkBV7NQT8yO9/1i3eq/tMoY7FfJP5O4LQ41RmqU9TVaAnTfuE6gs5hJboNGbmSMs2w2M0tldibmWcsQsFFPLwbUz042czSVb9J7lsGJjCtsaBeUiJ15y66W9D3587JJar9p+EyA2LNbolgrrNi2AA9KU5wEW2w8XyoOQKBgQDZamXDQZK3N5E46Hp/79o0Q99jqj9sL/HCYB4+Z8dG/Mgs43HHpgd+gHVeSOgxXS7RxsLyjCsM97ysWk7sbafvqtsnYmPU2MzumykVVpgWO6dpBcwmf2Ygk2i2W77oEqIi2IUmzkvDhw9C8A8/oh+IuoyRouPGRHpykAF+uXKVhwKBgQDX+TfQDDPniSnA9kTlW5I44glRgogA4xJtAYLtEr2fH9Pys+lkOyRqQH5wbJVj27jzJ0lffNyyMxgbZ8KRiH+3qRa8wNazwwXlXmj4DQWZedkULOpgMdU4EbbkTQRU3onEpMAZhAmVvAV1KTozs4RKi+1fFZ9V6ZOtmvapNJuXZQKBgQC7Xb0rQ3SMHwAxGfCQFwVma2O2AX883iisCaemwkrze1+Lh8uDcisdMtlzEsO/3v09XdydqHxlZY6cvgssJ+hFXGoXi+xa/yfFLcR/FixlZK2Gja99MeeyhTcFiRWB7KT8ALrnUXvrmpZlanrJrQ8eBx6jV8ySDmu0FTSkoG8GOwKBgE5toxX7CHJBPhdjlvtPOJdNhiLCaw8fZpaNIPVkg9WgIkCVkuCiFYQ8LW44EDv2E4DBOITje+V+Zne1Q1PEJNUWIzqiMJWQ8bgsg6PoXqswM2N/OBF8pzg4PplDWppTQeZWCah6aVylrbmxIgCaZSUJEUchO/5f1xAJIR+rCgF9AoGBAKJVVbrKPWshQ4cTL6VzanowjpWCRUDR22Oz3nKIdRl1FX+DTXYE4Dwl38iiNHOJptS7VjU553BUZl7HxCmSBWUmtnV78NNnRKrFVUhQhIRYBjMn1W6MD0jlBkky6yXmXkPtlqU6vU19RzGrvv6fDdBf6v4AkD8kWXiH5j4XEiQS ALIPAY_PRIVATE_KEY=MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC0wXVGAameVSLlLrq7edrMuoabN16/bYJNosLmPlHltEhehKO1ak/oIFvlKGyKwsW+xXd8t27p5hpsHqzNisU/jLbwEi6t0U/RBMbx3ult9zNhsZqSdJxe4QINChudVM6FdE8ssaq19ABwiLisMxxck0IiXDmesGI6vUSNzLEvKyYWTUsVsW1HgYXVjXmi8mOiwuFsJtdALS/psWci3UlX80rYG9KGqSBWT0B0Nr8UcM1L7UEkOHUEf1uq4Ipl5rTzgqoRQN5uHbBu50b7welAL2MFA9D/Ecv+FOfMIiLBtm1/6zNtjo/mvwORtS64mJXCaAbY1Pxa1bqs274fAwWtAgMBAAECggEAOObZ2zL0yZI1jP477H68wUxKyZwRqKN5rKT7Q+4EbBJn4dFRk++mvgVJyIcEPF56T8bsCYfZU6qLUNQLRB1WYN4UTNj8dt14ie0+D7BDvclfFHcLmOU6wKeGtMIk1U94QAzQS9qWSfdJGCQCNrtUR1RYMmbkAK+4DJO+fAEfGiCr1oMQpsz0h6Jhwp/DDBXZEjPdrECOjx2w5ZVULyPxFui2NQ8IS3rTT5SQvOBAgn9dbgZ/FVVbs2x6SpnWyOCUREK0uaLXJgf0JoX1WW4bswZlYmd7qURPscwFVKdYRautimcmO0FOUue62aPSYfvJwx8tTZanQbbwfrr0XrisBQKBgQDyKPYDYZzgGL/G5H8CQZajKnqg7a5AAZXJQLKkF7kiEgOlB3b6OqK6CeKVGawfuNIshECmmKcZmqrsPV42xrZl458kiDyqJNHq2lgFs9kj9BFUDi11EZfDGah4piJo5tgc09Hj6eAmeKdmG7aTS0/954xOK7eBFdG1T6R1Rd9Y4wKBgQC/Fhd5Nw6XYAg4qBmzOnvc9YwEL+wdy0aontFAFzaQlgkYm+efhYyjMcjyj4aloJZzpTd6eKbZI57IzihJI+F8+b1qToQDu8A2BTPkiOyXRcNY3y0LTNx7/gae6a9oGFc+8ILGa41va7WKjuPd08aXpSSBI34u10wWRMP+70m8LwKBgQCLerRYtjyZhyfO84WEUyrkyG7hioU3MLKJvM4oXdGwohefUnFhJ6za4x6zKppNmzLTmUlzq7FzufaBI8fEXShp/3WGoUHv7k1KrIDOqAyF/OqOM6xTJdL3+StkcqyXJ3+K+yaF1AvbnNsuoP/ETzi/0kKqM9v6agrkF/9t3NUMaQKBgCpafS1y1Jscv/W+3KNrLRUWn8g1zwHzkl/Bg+POwVtexflcZQRol3l8iWuqAFApve84CYntwB2U1ZbwiuFbQJlwyVkMuhoRvVK76HqZFseYwOmr3dIJYT1iWplSdnx+GKhsqq/MGvc9SmnBriP20qe+BM9SzJ8ZPVYaO87/vrolAoGARD8/IeEzMCPfYr9zBkE5rBtiT7t6nZXmMc6GH2Vao9meDofN8vj/XEfTGovusUYTWyA2Enac0YKdK6f6f+NYBqGYqn5Ludgxeotzo9UoXd3Hnv1gMCRs4ehloVODkHj2qhkvqL2iuZLsNp/wMq/ZHpRUzT4bO5H2FQhH4SUElKI=
#
#ALIPAY_APPID=2016100100641990 #ALIPAY_APPID=2016100100641990
#ALIPAY_PID=2088102178153042 #ALIPAY_PID=2088102178153042
#ALIPAY_PUBLIC_KEY=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA47AID6hZLPRBUZ9sZT6PYuif6ii+W6OptEMhDCWaDNZsknK8eW2w3I3b57+/vtV8WMulBopvjIpOgIVooDLxZCiiDtymauNvGu7WkqTu1TSJ/brPphMjU0sWl5XyE4NcMpLZoQALCXd3b7AQP3K4vco8wcxBwdjj9Es6LB19iLnUPXK5LPPTvPR+nVihtnP6Bw2gFQZWCAALti6q9HT7c77agsPO6CGyx6dLoO9IFLFME+E2BvVVKbrdzHBl2yhLLTeT7wWFs35tAlFfX9vj7cFH/cozMJUdw0PyxtpDuBJGwu4XhYWD5O5YcuNGxbuPRMTAPwqCjvQ0q474gi9R6QIDAQAB #ALIPAY_PUBLIC_KEY=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA47AID6hZLPRBUZ9sZT6PYuif6ii+W6OptEMhDCWaDNZsknK8eW2w3I3b57+/vtV8WMulBopvjIpOgIVooDLxZCiiDtymauNvGu7WkqTu1TSJ/brPphMjU0sWl5XyE4NcMpLZoQALCXd3b7AQP3K4vco8wcxBwdjj9Es6LB19iLnUPXK5LPPTvPR+nVihtnP6Bw2gFQZWCAALti6q9HT7c77agsPO6CGyx6dLoO9IFLFME+E2BvVVKbrdzHBl2yhLLTeT7wWFs35tAlFfX9vj7cFH/cozMJUdw0PyxtpDuBJGwu4XhYWD5O5YcuNGxbuPRMTAPwqCjvQ0q474gi9R6QIDAQAB
#ALIPAY_ACOUNT=xxfc810@163.com #ALIPAY_ACOUNT=xxfc810@163.com
#ALIPAY_PRIVATE_KEY=MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDZ9eBiJ+VeXuNrp1fxN7GX3qM7ZVFjlvaHu1wtkdXsXk7ICM6XgbnyCQA/QZg5pRiwUeGQyRed2dC8wA3xW1tE8qm7kvoBXaU6Laios9NvKkuVBgEEwEGuIm/yoPTVOsmEe6CPSTxrQLT6dGF45COk07QkyqzISjB4Zye73sfYiUVQxNi5izpjpYszapnM7gQ4cO5HoVWrXehLs+gAIo4q402RhC8BNSOogaUiDHysaqzysBGrdzSuEznisFJhdPyqlIAFcw+2oljtA02vs91Xt/Yb/odcVo+5lBMckDlCI8/ThKfW5J+pcpdehT7V664vwe+rXKsOl2jHbt9agRvtAgMBAAECggEBAKvHZ6+UZ+ZnfG9E9T9sOHBMDHPsVyfZO7Ufyfc0P9hJP2fR4RhxKl6CD4rLJLER2BJmhhL5Gb7Tgvqvlo2JBbaiVXk6zgSzjFv8zjcfetzbBbSOhdD7wQf/piEgD7XZ3iam1JT5EEArQDc/7+46R4lJPGneviwgpHDQQ/WCEBksKa1Y0CQO7IexUlgrIbT4D9SciQtljrCXyoQtSm1GatHNoXHHiZnLdVoIfUUpjpyODl/+ryhPV/r1Wzi0DU/GQNMQde1MQ0eI/ttVA9Xbq/gMs9YSFeLP+BWfGSppa/dbXihNF6nU9tPD10lUsJeUkn/GTcxMcWzH+NsqKVpPNxUCgYEA/DBJ/Quhi9OAqYChW7DsGi3lNndf9hKsEOYImFTueIo4QAo015Q5Xx2tDulXdOKo1J9Jh3BJsPvIsrQ295r12GtoVzwus/ed7/c1s/onYmOinEDkPwJtrK1xEyu1KSLSQyp/IJLYaDmqvM3vMgvH/DU2c1NORbwm8uu9opjojp8CgYEA3UEo26UxvT2d4/nSr2BNU3HCgI46nM++DaO2sB8PB8iQgqopuxxobgqzKij9z3qDDGvwaOZY9xp2O3A9BqMrhSqct8chQTS5WWaM9YBR8RlhqhNMTV9bgf1JX3Eq41Aqpkf9dGW7nP5RGX1Zxrm1VkFCCjEE1hzFIuXzrfJjZfMCgYEA+2RfvSJFDY/u6AlT0IVTNt2damghfrkqUUYeN0wi1IJkhGIoPuaBMnHwu7ab+eagiiOnNp4Wt5imfo3rZXRRskWPo7ZYkAo8pKN4I0swy4Gq7bw6Sx1umv3ihEvDsZgGpfHM/HmlxHAH5WIcGXVpC983wkq+8gEXiny5c0aePN0CgYBNzOzWF4ee+Ly9fop0OtPWBMmVNO4tV+uHlkrWMYWygfc2yykzb3DVSRPpPlLJk1Xjl00JRf6AnaB3lCcRX20dPXewM+hgqm6GnkXwyfeGZRtvl6ucBW0DD5KuafffyL/Gisf4FxHayZ6w7OAVvhWix/214bjGpYU4mU2PnA0RuwKBgQCCwSyfEysQKsAUJvw2d9uXNRvIs5uMeVOWIeRueZ+UqdmUd5jiOU0HhetPywys9ojBYJmR3zXDX/KTH+WNsVLm4esUge7LTVvgGPVDRvC9Xe2Ec7HhJb+xR0+lK+xZZXWmPdXPT1u8YE3V+SsyLl/xUu6jXXbl255ynWUMATuySA== #ALIPAY_PRIVATE_KEY=MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCdbAo5X1ZjE4EcbUAYfv09u1MLOjOxoYcIfmwgpXtwMW7p5rkGPrRo/MZa/UQRN37iKwUXisHcU+Xb84JJgqgy7PFAqZHsnXTEMXgW5+0ji951kDSoFh0gD412CHpUQPBdhQzLet12N93CkpiMAdDzhh7UxzNDeW0EJsYbUWbdVhuQlYmpxu6P6TL18fjYW3h6SoffB9yqLuyHY5bacYCat1Uuy4LRQMBOjMar3OaNKh/lAu6ol9GZgDgRAddCv8O4FmC0F5s9R7r+tSuscG5CDN7GLo6dR+hfOnLq5x5VxPQVG1xd89Fb01QWyVWje/t+cURPJA8Jar87cxvn5KVBAgMBAAECggEAYx/r1DKPH/XhH7g/Wu1jouJ4qSIt+NUART3t8iShdIT8FTaeHSuQyGcas6K0oK60K8/w9eD+rzD5FSXhTU6DgQWn6BKee0Kuivenaa0CqpZhLt/t+EVsc4q3hbJS7QizEgA8jUhBeTY2YlWSzt455431jgAc7IjiN3H+3qbEQewAI1EsbmuOXTZej84l3vBpFFLufIkVAEb+ZtSj3feu5cpgBZft1i4P1qeYvays9tJhK8R6LyvMu+hqPfYvvDFG4UQhXeB14LjPX7HVIt3z6mhOoeaeB+lhT0v8adYhV6pCx9w/RGQ1UNEorIq+ERwQM/LkdJNXuMV4JbOU565xEQKBgQDXOo4zRQL/RkW5cEG9RvGAZFqDK2qYdmN79IfTurAYIcSqXA2PLNyJUSwYB/Da/8DBPB89Bfb2Wx/XRgkK8mc9qtTC9VNJ/7J+Mqg32sdtIEtDpkVvjDvbb6DzcUihPKI0HQXadBhfCmtT8jfxv3GlcRkZTUGvNnGSM71lrDz6NQKBgQC7PisFhvpPTPvh2gbfcgjtdFxs/4xCYFLO8tt/UOPZzSPjFT5uCV9rXIr81XRWni8Jy30R0qGTnRWeZcPnF48QfF4BddO/OkDs0YCP3SFBJlhxo/m47DCDay2CV5oW2nISQf+jq0Rhcb3/JvKO4DMY8Ps8rAqbv889n5kcJH7AXQKBgQC0qe5bkv5lEbPNaTGFlFt8DsD7giJEQHxZvHWXgQn398CB0CuBl4K3sW917JR9AFno2nLOYodfXDZqGdvVWIzY8uENlaiIYR6PWC5kVD06mPUUoCmA7RIBrL5KGzmAPslZPVOAgBtFDBXzrUrQnobi/QC4gGU2kljbBJtjESVOUQKBgAWCJrHa7rI2iZJzX5BjQm/55F4whmfNfaIo8twj/RADQPMFRPjnva7i4hPeE7YYoTmgiuVjVO2KyYAHbmP2BXdusTVJyhjuFcrhvu58iuXnwuJU+JvAFw1GsegLu7TAaGqxFlwyRai4N+axtqENZ3NsY3e9d/JtCiO99jslt7ThAoGAA1cgO8divDd1KgCGyIdZKC45cymj1Iuwt5fU/f1GZfNxcLwXfACw5Du9orwyr5fHTuqRVvYzBciJKh881zsiI8+3IQiKnv1xO5xKWG6A503++NwyvLZM9ojoURtW/e6oWZWFbWcm320TFeihVaizGHGaoaouJpznC9Iqysj1XIo=
\ No newline at end of file \ No newline at end of file
...@@ -93,6 +93,12 @@ ...@@ -93,6 +93,12 @@
<artifactId>ace-interface</artifactId> <artifactId>ace-interface</artifactId>
<version>2.0-SNAPSHOT</version> <version>2.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency>
<groupId>com.github.wxiaoqi</groupId>
<artifactId>ace-admin-api</artifactId>
<version>2.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency> <dependency>
<groupId>com.github.wxiaoqi</groupId> <groupId>com.github.wxiaoqi</groupId>
<artifactId>ace-auth-client</artifactId> <artifactId>ace-auth-client</artifactId>
......
...@@ -4,7 +4,6 @@ import com.github.wxiaoqi.security.api.vo.config.HeaderConfig; ...@@ -4,7 +4,6 @@ import com.github.wxiaoqi.security.api.vo.config.HeaderConfig;
import com.github.wxiaoqi.security.auth.client.EnableAceAuthClient; import com.github.wxiaoqi.security.auth.client.EnableAceAuthClient;
import com.github.wxiaoqi.security.gate.utils.DBLog; import com.github.wxiaoqi.security.gate.utils.DBLog;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.SpringCloudApplication; import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
...@@ -17,7 +16,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; ...@@ -17,7 +16,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringCloudApplication @SpringCloudApplication
@EnableDiscoveryClient @EnableDiscoveryClient
@EnableAceAuthClient @EnableAceAuthClient
@EnableFeignClients(value = {"com.github.wxiaoqi.security.auth.client.feign","com.github.wxiaoqi.security.gate.feign"},defaultConfiguration = HeaderConfig.class) @EnableFeignClients(value = {"com.github.wxiaoqi.security.auth.client.feign","com.github.wxiaoqi.security.gate.feign","com.github.wxiaoqi.security.admin.feign"},defaultConfiguration = HeaderConfig.class)
public class GatewayServerBootstrap { public class GatewayServerBootstrap {
public static void main(String[] args) { public static void main(String[] args) {
DBLog.getInstance().start(); DBLog.getInstance().start();
......
package com.github.wxiaoqi.security.gate.filter; package com.github.wxiaoqi.security.gate.filter;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.api.vo.authority.PermissionInfo; import com.github.wxiaoqi.security.api.vo.authority.PermissionInfo;
import com.github.wxiaoqi.security.api.vo.log.LogInfo; import com.github.wxiaoqi.security.api.vo.log.LogInfo;
import com.github.wxiaoqi.security.auth.client.config.ServiceAuthConfig; import com.github.wxiaoqi.security.auth.client.config.ServiceAuthConfig;
...@@ -54,7 +57,7 @@ import java.util.stream.Stream; ...@@ -54,7 +57,7 @@ import java.util.stream.Stream;
*/ */
@Configuration @Configuration
@Slf4j @Slf4j
public class AccessGatewayFilter implements GlobalFilter{ public class AccessGatewayFilter implements GlobalFilter {
@Autowired @Autowired
@Lazy @Lazy
private IUserService userService; private IUserService userService;
...@@ -67,6 +70,9 @@ public class AccessGatewayFilter implements GlobalFilter{ ...@@ -67,6 +70,9 @@ public class AccessGatewayFilter implements GlobalFilter{
@Lazy @Lazy
private ILogService logService; private ILogService logService;
@Autowired
UserFeign userFeign;
@Value("${gate.ignore.startWith}") @Value("${gate.ignore.startWith}")
private String startWith; private String startWith;
...@@ -109,6 +115,16 @@ public class AccessGatewayFilter implements GlobalFilter{ ...@@ -109,6 +115,16 @@ public class AccessGatewayFilter implements GlobalFilter{
ServerHttpRequest.Builder mutate = request.mutate(); ServerHttpRequest.Builder mutate = request.mutate();
// 不进行拦截的地址 // 不进行拦截的地址
if (isStartWith(requestUri)) { if (isStartWith(requestUri)) {
//zjw20190806添加 start :避免已带token 却拿不到服务client/用户信息
// IJWTInfo user = null;
// try {
// user = getJWTUser(request, mutate);
// 申请客户端密钥头
mutate.header(serviceAuthConfig.getTokenHeader(), serviceAuthUtil.getClientToken());
// } catch (Exception e) {
// log.info("调用免登陆接口的用户Token过期异常", e);
// }
//zjw20190806添加 end
ServerHttpRequest build = mutate.build(); ServerHttpRequest build = mutate.build();
return gatewayFilterChain.filter(serverWebExchange.mutate().request(build).build()); return gatewayFilterChain.filter(serverWebExchange.mutate().request(build).build());
} }
...@@ -247,7 +263,7 @@ public class AccessGatewayFilter implements GlobalFilter{ ...@@ -247,7 +263,7 @@ public class AccessGatewayFilter implements GlobalFilter{
private boolean isStartWith(String requestUri) { private boolean isStartWith(String requestUri) {
boolean flag = false; boolean flag = false;
for (String s : GATE_WAY_UNAUTH.split(",")) { for (String s : GATE_WAY_UNAUTH.split(",")) {
if(requestUri.contains(s)) { if (requestUri.contains(s)) {
return true; return true;
} }
} }
...@@ -271,12 +287,12 @@ public class AccessGatewayFilter implements GlobalFilter{ ...@@ -271,12 +287,12 @@ public class AccessGatewayFilter implements GlobalFilter{
} }
public void setLogService(ServerWebExchange exchange, GatewayFilterChain chain) { public void setLogService(ServerWebExchange exchange, GatewayFilterChain chain) {
MediaType mediaType = exchange.getRequest().getHeaders().getContentType(); MediaType mediaType = exchange.getRequest().getHeaders().getContentType();
ServerRequest serverRequest = new DefaultServerRequest(exchange); ServerRequest serverRequest = new DefaultServerRequest(exchange);
// 如果是json格式,将body内容转化为object or map 都可 // 如果是json格式,将body内容转化为object or map 都可
if (MediaType.APPLICATION_JSON.isCompatibleWith(mediaType)){ if (MediaType.APPLICATION_JSON.isCompatibleWith(mediaType)) {
Mono<Object> modifiedBody = serverRequest.bodyToMono(Object.class) Mono<Object> modifiedBody = serverRequest.bodyToMono(Object.class)
.flatMap(body -> { .flatMap(body -> {
recordLog(exchange.getRequest(), body); recordLog(exchange.getRequest(), body);
...@@ -285,7 +301,7 @@ public class AccessGatewayFilter implements GlobalFilter{ ...@@ -285,7 +301,7 @@ public class AccessGatewayFilter implements GlobalFilter{
} }
// 如果是表单请求 // 如果是表单请求
else if(MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(mediaType)){ else if (MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(mediaType)) {
Mono<String> modifiedBody = serverRequest.bodyToMono(String.class) Mono<String> modifiedBody = serverRequest.bodyToMono(String.class)
// .log("modify_request_mono", Level.INFO) // .log("modify_request_mono", Level.INFO)
.flatMap(body -> { .flatMap(body -> {
...@@ -300,36 +316,70 @@ public class AccessGatewayFilter implements GlobalFilter{ ...@@ -300,36 +316,70 @@ public class AccessGatewayFilter implements GlobalFilter{
// 无法兼容的请求,则不读取body,像Get请求这种 // 无法兼容的请求,则不读取body,像Get请求这种
recordLog(exchange.getRequest(), ""); recordLog(exchange.getRequest(), "");
} }
private void recordLog(ServerHttpRequest request, Object body) { private void recordLog(ServerHttpRequest request, Object body) {
// 记录要访问的url // 记录要访问的url
StringBuilder builder = new StringBuilder(); if (!getNotLogUri().contains(request.getURI().getRawPath())) {
log.info("=================请求uri:" + request.getURI().getRawPath());
// 记录访问的方法
HttpMethod method = request.getMethod(); StringBuilder builder = new StringBuilder();
if (null != method){ log.info("=================请求uri:" + request.getURI().getRawPath());
log.info("=================请求方法:" + method.name()); // 记录访问的方法
} HttpMethod method = request.getMethod();
// 记录头部信息 if (null != method) {
builder.append(", header { "); log.info("=================请求方法:" + method.name());
for (Map.Entry<String, List<String>> entry : request.getHeaders().entrySet()) { }
builder.append(entry.getKey()).append(":").append(StringUtils.join(entry.getValue(), ",")).append(","); // 记录头部信息
} builder.append(", header { ");
log.info("=================请求头header:" + builder.toString()); for (Map.Entry<String, List<String>> entry : request.getHeaders().entrySet()) {
// 记录参数 builder.append(entry.getKey()).append(":").append(StringUtils.join(entry.getValue(), ",")).append(",");
builder = new StringBuilder(); if("Authorization".equals(entry.getKey())) {
// 处理get的请求 if(entry.getValue() != null && entry.getValue().size() > 0) {
if (null != method && HttpMethod.GET.matches(method.name())) { getAdminUserInfo(entry.getValue().get(0));
// 记录请求的参数信息 针对GET 请求 }
MultiValueMap<String, String> queryParams = request.getQueryParams();
for (Map.Entry<String, List<String>> entry : queryParams.entrySet()) { }
builder.append(entry.getKey()).append("=").append(StringUtils.join(entry.getValue(), ",")).append(",");
} }
log.info("=================请求头header:" + builder.toString());
// 记录参数
builder = new StringBuilder();
// 处理get的请求
if (null != method && HttpMethod.GET.matches(method.name())) {
// 记录请求的参数信息 针对GET 请求
MultiValueMap<String, String> queryParams = request.getQueryParams();
for (Map.Entry<String, List<String>> entry : queryParams.entrySet()) {
builder.append(entry.getKey()).append("=").append(StringUtils.join(entry.getValue(), ",")).append(",");
}
} else {
// 从body中读取参数
builder.append(body);
}
log.info("=================请求参数:" + builder.toString());
} }
else { }
// 从body中读取参数
builder.append(body); private void getAdminUserInfo(String token) {
if(token !=null) {
UserDTO userDTO = userFeign.userinfoByToken(token).getData();
if(userDTO != null) {
log.info("=================后台用户名:username = {}", userDTO.getUsername());
log.info("=================后台姓名: name = {}", userDTO.getName());
} else {
AppUserDTO appUserDTO = userFeign.userDetailByToken(token).getData();
if(appUserDTO != null) {
log.info("=================APP用户名:userId = {}", appUserDTO.getUserid());
log.info("=================APP姓名: name = {}", appUserDTO.getRealname());
log.info("=================APP手机号: phone = {}", appUserDTO.getUsername());
}
}
} }
log.info("=================请求参数:" + builder.toString());
} }
@Value("${logback.ignore-log-path}")
String[] path;
public List<String> getNotLogUri() {
return Arrays.asList(path);
}
} }
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<filter class="com.github.wxiaoqi.security.common.filter.DenyFilter"></filter> <filter class="com.github.wxiaoqi.security.common.filter.DenyFilter"></filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/sys.%d{yyyy-MM-dd}.log</FileNamePattern><!--日志文件输出的文件名 --> <FileNamePattern>${LOG_HOME}/sys.%d{yyyy-MM-dd}.log</FileNamePattern><!--日志文件输出的文件名 -->
<MaxHistory>30</MaxHistory><!--日志文件保留天数 --> <MaxHistory>15</MaxHistory><!--日志文件保留天数 -->
</rollingPolicy> </rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> <Pattern>${CONSOLE_LOG_PATTERN}</Pattern><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
<filter class="com.github.wxiaoqi.security.common.filter.AcceptFilter"></filter> <filter class="com.github.wxiaoqi.security.common.filter.AcceptFilter"></filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/log.%d{yyyy-MM-dd}.log</FileNamePattern><!--日志文件输出的文件名 --> <FileNamePattern>${LOG_HOME}/log.%d{yyyy-MM-dd}.log</FileNamePattern><!--日志文件输出的文件名 -->
<MaxHistory>30</MaxHistory><!--日志文件保留天数 --> <MaxHistory>15</MaxHistory><!--日志文件保留天数 -->
</rollingPolicy> </rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> <Pattern>${CONSOLE_LOG_PATTERN}</Pattern><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
......
...@@ -7,15 +7,17 @@ import com.github.wxiaoqi.security.admin.mapper.AppUserDetailMapper; ...@@ -7,15 +7,17 @@ import com.github.wxiaoqi.security.admin.mapper.AppUserDetailMapper;
import com.github.wxiaoqi.security.admin.rpc.service.AppPermissionService; import com.github.wxiaoqi.security.admin.rpc.service.AppPermissionService;
import com.github.wxiaoqi.security.admin.vo.AppUserVo; import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.util.ReferralCodeUtil;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.time.Instant; import java.time.Instant;
import java.util.*; import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -29,10 +31,6 @@ import java.util.stream.Collectors; ...@@ -29,10 +31,6 @@ import java.util.stream.Collectors;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail> { public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail> {
@Autowired
private AppUserLoginBiz appUserLoginBiz;
@Override @Override
@CacheClear(pre = "user{1.userid}") @CacheClear(pre = "user{1.userid}")
public void updateSelectiveById(AppUserDetail entity) { public void updateSelectiveById(AppUserDetail entity) {
...@@ -105,9 +103,6 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail ...@@ -105,9 +103,6 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
} }
//更新用户信息 //更新用户信息
public Map<Integer, AppUserDetail> findUserIdAndUserDetailMapByMemberIds(List<Integer> memberIds) { public Map<Integer, AppUserDetail> findUserIdAndUserDetailMapByMemberIds(List<Integer> memberIds) {
Map<Integer, AppUserDetail> userIdAndAppUserDetailMap = new HashMap<>(); Map<Integer, AppUserDetail> userIdAndAppUserDetailMap = new HashMap<>();
......
...@@ -52,8 +52,12 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel ...@@ -52,8 +52,12 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
@Autowired @Autowired
private AppUserDetailBiz appUserDetailBiz; private AppUserDetailBiz appUserDetailBiz;
@Value("${admin.validTime}")
private Long validTime;
/** /**
* 关系绑定 * 关系绑定
* 规则A->B (B无有效上线+无有效下线)
* @param userId * @param userId
* @param parentId * @param parentId
*/ */
...@@ -63,30 +67,36 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel ...@@ -63,30 +67,36 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
return; return;
} }
AppUserRelation relation=getMyBiz().getRelationByUserId(parentId); AppUserRelation relation=getMyBiz().getRelationByUserId(parentId);
if(relation==null){
relation=new AppUserRelation();
relation.setUserId(parentId);
insertSelective(relation);
}
relation=getMyBiz().getRelationByUserId(userId);
Long time=System.currentTimeMillis(); Long time=System.currentTimeMillis();
if(relation==null){ if(relation==null){
relation=new AppUserRelation(); relation=new AppUserRelation();
relation.setUserId(userId); relation.setUserId(parentId);
relation.setParentId(parentId);
relation.setBindType(type); relation.setBindType(type);
relation.setBindTime(time);
insertSelective(relation); insertSelective(relation);
}else {
if(relation.getParentId()==null||relation.getParentId()==0||(relation.getIsForever()!=1&&(time-relation.getBindTime())>3600)){
relation.setParentId(parentId);
relation.setBindType(type);
relation.setBindTime(time);
getMyBiz().updRelation(relation);
}
} }
Long bindTime=time-validTime;
//判断用户是否有有效的下线
if (getCountByParentId(userId,bindTime)==0L){
relation=getMyBiz().getRelationByUserId(userId);
if(relation==null){
relation=new AppUserRelation();
relation.setUserId(userId);
relation.setParentId(parentId);
relation.setBindType(type);
relation.setBindTime(time);
insertSelective(relation);
}else {
//判断用户是否有有效的上线
log.info("----userId==="+userId+"----bindTime===="+bindTime+"----relation.getBindTime()==="+relation.getBindTime());
if(relation.getParentId()==null||relation.getParentId()==0||(relation.getIsForever()!=1&&relation.getBindTime()<bindTime)){
relation.setParentId(parentId);
relation.setBindType(type);
relation.setBindTime(time);
getMyBiz().updRelation(relation);
}
}
}
} }
//首页关系绑定 //首页关系绑定
public ObjectRestResponse appBindRelation(Integer userId,String code){ public ObjectRestResponse appBindRelation(Integer userId,String code){
Integer parentId=0; Integer parentId=0;
...@@ -191,6 +201,28 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel ...@@ -191,6 +201,28 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
return selectOne(relation); return selectOne(relation);
} }
//获取有效的上线
public AppUserRelation getRelationByIdUserIdAndTime(Integer userId){
AppUserRelation userRelation= getMyBiz().getRelationByUserId(userId);
if (userRelation==null){
return null;
}
log.info("---userId==="+userId+"-----isForever==="+userRelation.getIsForever());
Long time=System.currentTimeMillis()-validTime;
if (userRelation.getIsForever()==1||userRelation.getBindTime()>time){
return userRelation;
}
log.info("---userId==="+userId+"-----time==="+time+"----userRelation.getBindTime()==="+userRelation.getBindTime());
return null;
}
//获取用户的下线总数
public int getCountByParentId(Integer parentId,Long time){
Example example=new Example(AppUserRelation.class);
example.createCriteria().andEqualTo("parentId",parentId).andNotEqualTo("isForever",1).andGreaterThan("bindTime",time);
return mapper.selectCountByExample(example);
}
@CacheClear(key="user:relation{1.userId}") @CacheClear(key="user:relation{1.userId}")
public int updRelation(AppUserRelation appUserRelation){ public int updRelation(AppUserRelation appUserRelation){
return super.updateSelectiveByIdRe(appUserRelation); return super.updateSelectiveByIdRe(appUserRelation);
......
...@@ -95,9 +95,9 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A ...@@ -95,9 +95,9 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A
log.info("购买计算用户拥金----payOrderWater----参数不能为空----orderId===" + orderId); log.info("购买计算用户拥金----payOrderWater----参数不能为空----orderId===" + orderId);
return; return;
} }
AppUserRelation relation = relationBiz.getRelationByUserId(userId); AppUserRelation relation = relationBiz.getRelationByIdUserIdAndTime(userId);
if (relation == null || relation.getParentId() == null || relation.getParentId() == 0) { if (relation == null || relation.getParentId() == null || relation.getParentId() == 0) {
log.info("购买计算用户拥金----payOrderWater--------userId===" + userId + "---无上线"); log.info("购买计算用户拥金----payOrderWater--------userId===" + userId + "---无有效上线");
return; return;
} }
......
...@@ -43,9 +43,10 @@ public class AppUserRelationController extends BaseController<AppUserRelationBiz ...@@ -43,9 +43,10 @@ public class AppUserRelationController extends BaseController<AppUserRelationBiz
@ApiModelProperty("app分享绑定") @ApiModelProperty("app分享绑定")
public ObjectRestResponse bind( public ObjectRestResponse bind(
@RequestParam(value = "code",defaultValue = "")String code, @RequestParam(value = "code",defaultValue = "")String code,
@RequestParam(value = "userid",defaultValue = "0")Integer userid,
HttpServletRequest request){ HttpServletRequest request){
try { try {
Integer userid = Integer.parseInt(userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)).getId()); //Integer userid = Integer.parseInt(userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)).getId());
return baseBiz.appBindRelation(userid,code); return baseBiz.appBindRelation(userid,code);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
......
...@@ -3,17 +3,16 @@ package com.github.wxiaoqi.security.admin.rpc.service; ...@@ -3,17 +3,16 @@ package com.github.wxiaoqi.security.admin.rpc.service;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.biz.*; import com.github.wxiaoqi.security.admin.biz.*;
import com.github.wxiaoqi.security.admin.biz.AppUserBiz;
import com.github.wxiaoqi.security.admin.biz.AppUserDetailBiz;
import com.github.wxiaoqi.security.admin.biz.AppUserLoginBiz;
import com.github.wxiaoqi.security.admin.biz.ElementBiz;
import com.github.wxiaoqi.security.admin.constant.RedisKey; import com.github.wxiaoqi.security.admin.constant.RedisKey;
import com.github.wxiaoqi.security.admin.constant.enumerate.UserSourceEnum; import com.github.wxiaoqi.security.admin.constant.enumerate.UserSourceEnum;
import com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO; import com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO;
import com.github.wxiaoqi.security.admin.dto.RegisterParamDTO; import com.github.wxiaoqi.security.admin.dto.RegisterParamDTO;
import com.github.wxiaoqi.security.admin.dto.RegisterQueueDTO; import com.github.wxiaoqi.security.admin.dto.RegisterQueueDTO;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO; import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.*; import com.github.wxiaoqi.security.admin.entity.AppUser;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.entity.Element;
import com.github.wxiaoqi.security.admin.vo.AppUserVo; import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.admin.vo.ImiVo; import com.github.wxiaoqi.security.admin.vo.ImiVo;
import com.github.wxiaoqi.security.api.vo.authority.PermissionInfo; import com.github.wxiaoqi.security.api.vo.authority.PermissionInfo;
...@@ -51,7 +50,8 @@ import javax.annotation.Resource; ...@@ -51,7 +50,8 @@ import javax.annotation.Resource;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant.*; import static com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant.KEY_APPUSER_AUTH;
import static com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant.KEY_APPUSER_REGISTER;
/** /**
* @author keliii * @author keliii
......
...@@ -138,6 +138,6 @@ public class IntegralRule{ ...@@ -138,6 +138,6 @@ public class IntegralRule{
private String btnWord; private String btnWord;
@Transient @Transient
private Boolean integralStatus = false; private Boolean integralStatus;
} }
\ No newline at end of file
...@@ -167,11 +167,13 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> { ...@@ -167,11 +167,13 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> {
} }
campsiteShopDetailVo.setTypeNames(shopTagDTOS == null ? Collections.EMPTY_LIST : shopTagDTOS.stream().map(CampsiteShopTagDTO::getName).collect(Collectors.toList())); campsiteShopDetailVo.setTypeNames(shopTagDTOS == null ? Collections.EMPTY_LIST : shopTagDTOS.stream().map(CampsiteShopTagDTO::getName).collect(Collectors.toList()));
//根据经纬度算距离 //根据经纬度算距离
double distance = getDistance(campsiteShopDetailDTO.getLongitude(), campsiteShopDetailDTO.getLatitude(), longitude, latitude); if (campsiteShopDetailDTO.getLongitude()!=null && campsiteShopDetailDTO.getLatitude()!=null) {
if (log.isDebugEnabled()) { double distance = getDistance(campsiteShopDetailDTO.getLongitude(), campsiteShopDetailDTO.getLatitude(), longitude, latitude);
log.debug("根据店铺经度=【{}】,纬度=【{}】和自己所在位置的经度=【{}】,纬度=【{}】计算出的距离:【{}km】", campsiteShopDetailDTO.getLongitude(), campsiteShopDetailDTO.getLatitude(), longitude, latitude, distance); if (log.isDebugEnabled()) {
log.debug("根据店铺经度=【{}】,纬度=【{}】和自己所在位置的经度=【{}】,纬度=【{}】计算出的距离:【{}km】", campsiteShopDetailDTO.getLongitude(), campsiteShopDetailDTO.getLatitude(), longitude, latitude, distance);
}
campsiteShopDetailVo.setDistance(String.format("%.1f", distance));
} }
campsiteShopDetailVo.setDistance(String.format("%.1f", distance));
campsiteValueOperations.set(String.format("%s%d", CAMSITE_DETAIL_CACHE_PREKEY, id), JSONObject.toJSONString(campsiteShopDetailVo)); campsiteValueOperations.set(String.format("%s%d", CAMSITE_DETAIL_CACHE_PREKEY, id), JSONObject.toJSONString(campsiteShopDetailVo));
return campsiteShopDetailVo; return campsiteShopDetailVo;
} }
......
...@@ -223,7 +223,7 @@ public class OrderMsgBiz { ...@@ -223,7 +223,7 @@ public class OrderMsgBiz {
}else { }else {
smstype = SmsTemplateDTO.PAY_A; smstype = SmsTemplateDTO.PAY_A;
} }
sms2AppUser(orvd, otd, omd, baseOrder, appUserDTO, smstype, smsParams); sms2AppUser(startCompanyDetail, endCompanyDetail, orvd, otd, omd, baseOrder, appUserDTO, smstype, smsParams);
//后台发送消息(客服) //后台发送消息(客服)
Cofig cofig = configFeign.getAllByType(ConfigFeign.TYPE_CUS_SER+ "").getData().get(0); Cofig cofig = configFeign.getAllByType(ConfigFeign.TYPE_CUS_SER+ "").getData().get(0);
...@@ -243,10 +243,11 @@ public class OrderMsgBiz { ...@@ -243,10 +243,11 @@ public class OrderMsgBiz {
} }
break; break;
case TOUR: case TOUR:
sms2AppUser(orvd, otd, omd, baseOrder, appUserDTO, SmsTemplateDTO.PAY_F, smsParams); CompanyDetail startCompanyDetailTour = vehicleFeign.getCompanyDetail(orvd.getStartCompanyId()).getData();
sms2AppUser(startCompanyDetailTour, null, orvd, otd, omd, baseOrder, appUserDTO, SmsTemplateDTO.PAY_F, smsParams);
break; break;
case MEMBER: case MEMBER:
sms2AppUser(orvd, otd, omd, baseOrder, appUserDTO, SmsTemplateDTO.PAY_G, smsParams); sms2AppUser(null, null, orvd, otd, omd, baseOrder, appUserDTO, SmsTemplateDTO.PAY_G, smsParams);
break; break;
default: default:
break; break;
...@@ -371,8 +372,8 @@ public class OrderMsgBiz { ...@@ -371,8 +372,8 @@ public class OrderMsgBiz {
} }
private void sms2AppUser(OrderRentVehicleDetail orvd, OrderTourDetail otd, OrderMemberDetail omd, BaseOrder baseOrder, AppUserDTO appUserDTO, Integer smstype, List<String> smsParams) { private void sms2AppUser(CompanyDetail startCompanyDetail, CompanyDetail endCompanyDetail, OrderRentVehicleDetail orvd, OrderTourDetail otd, OrderMemberDetail omd, BaseOrder baseOrder, AppUserDTO appUserDTO, Integer smstype, List<String> smsParams) {
handelSmsParamApp(orvd, otd, omd, baseOrder, smsParams, appUserDTO, smstype); handelSmsParamApp(startCompanyDetail, endCompanyDetail, orvd, otd, omd, baseOrder, smsParams, appUserDTO, smstype);
SmsTemplateDTO smsTemplateDTO = new SmsTemplateDTO(){{ SmsTemplateDTO smsTemplateDTO = new SmsTemplateDTO(){{
setPhoneNumbers(appUserDTO.getUsername()); setPhoneNumbers(appUserDTO.getUsername());
setType(smstype); setType(smstype);
...@@ -420,7 +421,7 @@ public class OrderMsgBiz { ...@@ -420,7 +421,7 @@ public class OrderMsgBiz {
} }
} }
private void handelSmsParamApp(OrderRentVehicleDetail orvd, OrderTourDetail otd, OrderMemberDetail omd, BaseOrder baseOrder, List<String> smsParams, AppUserDTO appUserDTO, int paramHandelType) { private void handelSmsParamApp(CompanyDetail startCompanyDetail, CompanyDetail endCompanyDetail, OrderRentVehicleDetail orvd, OrderTourDetail otd, OrderMemberDetail omd, BaseOrder baseOrder, List<String> smsParams, AppUserDTO appUserDTO, int paramHandelType) {
switch (paramHandelType) { switch (paramHandelType) {
case SmsTemplateDTO.PAY_A : case SmsTemplateDTO.PAY_A :
if(0 < baseOrder.getMemberLevel() ) { if(0 < baseOrder.getMemberLevel() ) {
...@@ -430,19 +431,20 @@ public class OrderMsgBiz { ...@@ -430,19 +431,20 @@ public class OrderMsgBiz {
} }
smsParams.add(baseOrder.getRealAmount().toString()); smsParams.add(baseOrder.getRealAmount().toString());
smsParams.add(DateUtil.formatDateTime(DateUtil.date(orvd.getStartTime()))); smsParams.add(DateUtil.formatDateTime(DateUtil.date(orvd.getStartTime())));
smsParams.add(orvd.getStartAddr()); smsParams.add(startCompanyDetail.detailAddr());
break; break;
case SmsTemplateDTO.PAY_B : case SmsTemplateDTO.PAY_B :
smsParams.add(orvd.getFreeDays().toString()); smsParams.add(orvd.getFreeDays().toString());
smsParams.add(appUserDTO.getRentFreeDays().toString()); smsParams.add(appUserDTO.getRentFreeDays().toString());
smsParams.add(baseOrder.getRealAmount().toString()); smsParams.add(baseOrder.getRealAmount().toString());
smsParams.add(DateUtil.formatDateTime(DateUtil.date(orvd.getStartTime()))); smsParams.add(DateUtil.formatDateTime(DateUtil.date(orvd.getStartTime())));
smsParams.add(orvd.getStartAddr()); smsParams.add(startCompanyDetail.detailAddr());
break; break;
case SmsTemplateDTO.PAY_F : case SmsTemplateDTO.PAY_F :
smsParams.add(baseOrder.getName()); smsParams.add(baseOrder.getName());
smsParams.add(baseOrder.getRealAmount().toString());
smsParams.add(DateUtil.formatDateTime(DateUtil.date(otd.getStartTime()))); smsParams.add(DateUtil.formatDateTime(DateUtil.date(otd.getStartTime())));
smsParams.add(otd.getStartAddr()); smsParams.add(startCompanyDetail.detailAddr());
break; break;
case SmsTemplateDTO.PAY_G : case SmsTemplateDTO.PAY_G :
smsParams.add(baseOrder.getName()); smsParams.add(baseOrder.getName());
......
...@@ -84,9 +84,12 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -84,9 +84,12 @@ public class BackStageOrderController extends CommonBaseController implements Us
if (userDTO == null) { if (userDTO == null) {
return ObjectRestResponse.succ(new PageDataVO<>()); return ObjectRestResponse.succ(new PageDataVO<>());
} }
List<BranchCompany> branchCompanies = vehicleFeign.companyAll(userDTO.getDataAll(), userDTO.getDataCompany(), userDTO.getDataZone()); if(dto.getType() != 3) {
List<Integer> companyIds = branchCompanies.stream().map(BranchCompany::getId).collect(Collectors.toList()); List<BranchCompany> branchCompanies = vehicleFeign.companyAll(userDTO.getDataAll(), userDTO.getDataCompany(), userDTO.getDataZone());
dto.setCompanyIds(companyIds); List<Integer> companyIds = branchCompanies.stream().map(BranchCompany::getId).collect(Collectors.toList());
dto.setCompanyIds(companyIds);
}
Query query = new Query(dto); Query query = new Query(dto);
PageDataVO pageDataVO = PageDataVO.pageInfo(query, () -> baseOrderBiz.listOrder(query.getSuper())); PageDataVO pageDataVO = PageDataVO.pageInfo(query, () -> baseOrderBiz.listOrder(query.getSuper()));
List<OrderListVo> list = pageDataVO.getData(); List<OrderListVo> list = pageDataVO.getData();
......
...@@ -301,7 +301,10 @@ public class BaseOrderController extends CommonBaseController implements UserRes ...@@ -301,7 +301,10 @@ public class BaseOrderController extends CommonBaseController implements UserRes
Integer page; Integer page;
@ApiModelProperty("每页限制") @ApiModelProperty("每页限制")
Integer limit; Integer limit;
/**
* 会员等级
*/
Integer memberLevel;
List<Integer> companyIds; List<Integer> companyIds;
} }
......
package com.xxfc.platform.order.rest; package com.xxfc.platform.order.rest;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.activity.user.UserInfoBiz;
import com.xxfc.platform.order.biz.BaseOrderBiz; import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.biz.OrderUserLicenseBiz; import com.xxfc.platform.order.biz.OrderUserLicenseBiz;
import com.xxfc.platform.order.biz.OrderVehicleCrosstownBiz; import com.xxfc.platform.order.biz.OrderVehicleCrosstownBiz;
...@@ -28,7 +30,8 @@ public class OrderVehicleCrosstownController { ...@@ -28,7 +30,8 @@ public class OrderVehicleCrosstownController {
@Autowired @Autowired
BaseOrderBiz baseOrderBiz; BaseOrderBiz baseOrderBiz;
@Autowired
UserInfoBiz userInfoBiz;
@PostMapping(value = "/add") @PostMapping(value = "/add")
@ApiOperation(value = "添加交还车记录") @ApiOperation(value = "添加交还车记录")
public ObjectRestResponse<OrderVehicleCrosstownDto> add(@RequestBody OrderVehicleCrosstownDto orderVehicleCrosstownDto) { public ObjectRestResponse<OrderVehicleCrosstownDto> add(@RequestBody OrderVehicleCrosstownDto orderVehicleCrosstownDto) {
...@@ -45,6 +48,10 @@ public class OrderVehicleCrosstownController { ...@@ -45,6 +48,10 @@ public class OrderVehicleCrosstownController {
@GetMapping(value = "/getByOrderId") @GetMapping(value = "/getByOrderId")
@ApiOperation(value = "根据订单Id获取所有记录信息") @ApiOperation(value = "根据订单Id获取所有记录信息")
public ObjectRestResponse<List<OrderVehicleCrosstownDto>> getByOrderId(OrderVehicleCrosstownDto orderVehicleCrosstownDto) { public ObjectRestResponse<List<OrderVehicleCrosstownDto>> getByOrderId(OrderVehicleCrosstownDto orderVehicleCrosstownDto) {
UserDTO userDTO = userInfoBiz.getAdminUserInfo();
if (userDTO == null) {
return ObjectRestResponse.createFailedResult(508, "token is null or invalid");
}
if (orderVehicleCrosstownDto == null) { if (orderVehicleCrosstownDto == null) {
return ObjectRestResponse.createFailedResult(500, "参数orderId为空"); return ObjectRestResponse.createFailedResult(500, "参数orderId为空");
} }
......
...@@ -268,15 +268,15 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -268,15 +268,15 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
HandleDiscountDTO handleDiscountDTO = new HandleDiscountDTO(); HandleDiscountDTO handleDiscountDTO = new HandleDiscountDTO();
switch (MemberEnum.getByCode(dto.getMemberLevel())) { switch (MemberEnum.getByCode(dto.getMemberLevel())) {
case NORMAL: case NORMAL:
handleDiscountDTO = handleDiscount(vehicleModel, prices, NORMAL); handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, NORMAL);
detail.getOrder().setHasMemberRight(SYS_TRUE); detail.getOrder().setHasMemberRight(SYS_TRUE);
break; break;
case GOLD: case GOLD:
handleDiscountDTO = handleDiscount(vehicleModel, prices, GOLD); handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, GOLD);
detail.getOrder().setHasMemberRight(SYS_TRUE); detail.getOrder().setHasMemberRight(SYS_TRUE);
break; break;
case DIAMOND: case DIAMOND:
handleDiscountDTO = handleDiscount(vehicleModel, prices, DIAMOND); handleDiscountDTO = handleDiscount(dto, vehicleModel, prices, DIAMOND);
detail.getOrder().setHasMemberRight(SYS_TRUE); detail.getOrder().setHasMemberRight(SYS_TRUE);
break; break;
} }
...@@ -352,12 +352,12 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -352,12 +352,12 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
* @param memberEnum * @param memberEnum
* @return * @return
*/ */
private HandleDiscountDTO handleDiscount(VehicleModel vehicleModel, String[] prices, MemberEnum memberEnum) { private HandleDiscountDTO handleDiscount(AppUserDTO dto, VehicleModel vehicleModel, String[] prices, MemberEnum memberEnum) {
BigDecimal modelAmount;//会员比例 BigDecimal modelAmount;//会员比例
BigDecimal hundred = BigDecimal.TEN; BigDecimal hundred = BigDecimal.TEN;
Integer rebate = new Integer(0); Integer rebate = new Integer(0);
if(DISCOUNT_STATUS_MEMBER.equals(vehicleModel.getRentDiscountStatus())) { if(DISCOUNT_STATUS_MEMBER.equals(vehicleModel.getRentDiscountStatus())) {
rebate = memberEnum.getPercent(); rebate = dto.getDiscount();
BigDecimal rebatePercent = new BigDecimal(String.valueOf((rebate/100d))); BigDecimal rebatePercent = new BigDecimal(String.valueOf((rebate/100d)));
modelAmount = rebatePercent.multiply(vehicleModel.getPrice()).setScale(2, BigDecimal.ROUND_HALF_UP); modelAmount = rebatePercent.multiply(vehicleModel.getPrice()).setScale(2, BigDecimal.ROUND_HALF_UP);
}else { }else {
......
...@@ -115,6 +115,7 @@ ...@@ -115,6 +115,7 @@
from base_order b from base_order b
LEFT JOIN order_rent_vehicle_detail r on r.order_id = b.id LEFT JOIN order_rent_vehicle_detail r on r.order_id = b.id
LEFT JOIN order_tour_detail t on t.order_id = b.id LEFT JOIN order_tour_detail t on t.order_id = b.id
LEFT JOIN order_member_detail m on m.order_id = b.id
<where> <where>
<if test="crtUser != null"> <if test="crtUser != null">
and b.crt_user = #{crtUser} and b.crt_user = #{crtUser}
...@@ -128,7 +129,10 @@ ...@@ -128,7 +129,10 @@
<if test="type != null"> <if test="type != null">
and b.type = #{type} and b.type = #{type}
</if> </if>
<if test="no != null"> <if test="memberLevel != null and memberLevel != ''">
and m.member_level = #{memberLevel}
</if>
<if test="no != null and no != '' ">
and no like CONCAT ("%", #{no}, "%") and no like CONCAT ("%", #{no}, "%")
</if> </if>
<if test="name != null"> <if test="name != null">
...@@ -179,7 +183,7 @@ ...@@ -179,7 +183,7 @@
<if test="status != null and status != -1"> <if test="status != null and status != -1">
and b.status = #{status} and b.status = #{status}
</if> </if>
<if test="no != null"> <if test="no != null and no != ''">
and no like CONCAT ("%", #{no}, "%") and no like CONCAT ("%", #{no}, "%")
</if> </if>
<if test="startTime != null and status == 4"> <if test="startTime != null and status == 4">
......
...@@ -86,9 +86,9 @@ ...@@ -86,9 +86,9 @@
SELECT g.id as `id`,g.name as `name`,g.cover as `imgUrl`,g.price, SELECT g.id as `id`,g.name as `name`,g.cover as `imgUrl`,g.price,
REPLACE(GROUP_CONCAT( DISTINCT t.`name`),',','|')as name1 REPLACE(GROUP_CONCAT( DISTINCT t.`name`),',','|')as name1
from tour_good g from tour_good g
LEFT JOIN tour_good_tag tag ON g.id=tag.good_id LEFT JOIN (SELECT * FROM tour_good_tag WHERE is_del=0) tag ON g.id=tag.good_id
LEFT JOIN tour_tag t ON tag.tag_id=t.id LEFT JOIN (SELECT * FROM tour_tag WHERE is_del=0) t ON tag.tag_id=t.id
where g.recommend=1 and g.status=1 and g.is_del=0 and t.is_del=0 where g.recommend=1 and g.status=1 and g.is_del=0
GROUP BY g.id GROUP BY g.id
ORDER BY g.rank DESC ,g.id DESC ORDER BY g.rank DESC ,g.id DESC
limit #{start,jdbcType=INTEGER},#{size,jdbcType=INTEGER} limit #{start,jdbcType=INTEGER},#{size,jdbcType=INTEGER}
...@@ -101,16 +101,16 @@ ...@@ -101,16 +101,16 @@
<!--后台查询旅游路线列表--> <!--后台查询旅游路线列表-->
<select id="findGoodList" resultMap="tourGoodVoMap"> <select id="findGoodList" resultMap="tourGoodVoMap">
SELECT g.*,REPLACE(GROUP_CONCAT( DISTINCT t.`name`),',','|')as tagNames from tour_good g SELECT g.*,REPLACE(GROUP_CONCAT( DISTINCT t.`name`),',','|')as tagNames from tour_good g
LEFT JOIN tour_good_tag tag ON g.id=tag.good_id LEFT JOIN (SELECT * FROM tour_good_tag WHERE is_del=0) tag ON g.id=tag.good_id
LEFT JOIN tour_tag t ON tag.tag_id=t.id LEFT JOIN (SELECT * FROM tour_tag WHERE is_del=0) t ON tag.tag_id=t.id
<where> <where>
g.is_del=0 and t.is_del=0 g.is_del=0
<if test="params.name != null and params.name != ''"> <if test="params.name != null and params.name != ''">
and (g.`name` like CONCAT('%',#{params.name},'%') or g.introduce like CONCAT('%',#{params.name},'%')) and (g.`name` like CONCAT('%',#{params.name},'%') or g.introduce like CONCAT('%',#{params.name},'%'))
</if> </if>
<if test="params.tagId != null and params.tagId != '' "> <if test="params.tagId != null and params.tagId != '' ">
and g.id in (SELECT good_id from tour_good_tag and g.id in (SELECT good_id from tour_good_tag
where tag_id = #{params.tagId}) where tag_id = #{params.tagId} and is_del=0 )
</if> </if>
</where> </where>
......
...@@ -2,13 +2,12 @@ package com.xxfc.platform.universal.feign; ...@@ -2,13 +2,12 @@ package com.xxfc.platform.universal.feign;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.universal.dto.RegionDTO;
import com.xxfc.platform.universal.dto.SmsTemplateDTO; import com.xxfc.platform.universal.dto.SmsTemplateDTO;
import com.xxfc.platform.universal.entity.Dictionary; import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.entity.OrderRefund; import com.xxfc.platform.universal.vo.OrderPayVo;
import com.xxfc.platform.universal.vo.*; import com.xxfc.platform.universal.vo.OrderRefundVo;
import feign.Param; import com.xxfc.platform.universal.vo.TrafficViolations;
import io.swagger.annotations.ApiOperation; import com.xxfc.platform.universal.vo.ViolationVO;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -37,7 +36,7 @@ public interface ThirdFeign { ...@@ -37,7 +36,7 @@ public interface ThirdFeign {
public JSONObject uploadFiles(@RequestParam(value = "files") MultipartFile[] files); public JSONObject uploadFiles(@RequestParam(value = "files") MultipartFile[] files);
@RequestMapping(value = "/pay/app/wx", method = RequestMethod.POST) @RequestMapping(value = "/pay/app/wx", method = RequestMethod.POST)
public JSONObject wx(@RequestBody OrderPayVo orderPayVo); public JSONObject wx(@RequestBody OrderPayVo orderPayVo);
@RequestMapping(value = "/refund/app/wx", method = RequestMethod.POST) @RequestMapping(value = "/refund/app/pay/refund", method = RequestMethod.POST)
public ObjectRestResponse<String> refund(@RequestBody OrderRefundVo orderRefundVo); public ObjectRestResponse<String> refund(@RequestBody OrderRefundVo orderRefundVo);
/** /**
......
...@@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -34,65 +35,72 @@ import static com.xxfc.platform.universal.constant.DictionaryKey.UNIVERSAL_PAY; ...@@ -34,65 +35,72 @@ import static com.xxfc.platform.universal.constant.DictionaryKey.UNIVERSAL_PAY;
*/ */
@Service @Service
@Slf4j @Slf4j
public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> { public class OrderRefundBiz extends BaseBiz<OrderRefundMapper, OrderRefund> {
@Autowired @Autowired
private OrderPayBiz payBiz; private OrderPayBiz payBiz;
@Value("${universal.cert}") @Value("${universal.cert}")
private String APICLIENT_CERT ; private String APICLIENT_CERT;
@Autowired @Autowired
DictionaryBiz dictionaryBiz; DictionaryBiz dictionaryBiz;
//申请退款 //申请退款
public JSONObject refund(OrderRefundVo orderRefundVo)throws Exception{ public JSONObject refund(OrderRefundVo orderRefundVo) throws Exception {
if(orderRefundVo==null){ if (orderRefundVo == null) {
log.error("-----参数为空-----------"); log.error("-----参数为空-----------");
return JsonResultUtil.createFailedResult(ResultCode.NULL_CODE, "参数为空"); return JsonResultUtil.createFailedResult(ResultCode.NULL_CODE, "参数为空");
} }
String order_no=orderRefundVo.getOrderNo(); String order_no = orderRefundVo.getOrderNo();
String appid= SystemConfig.APP_ID; String appid = SystemConfig.APP_ID;
String mchId=SystemConfig.APP_PARTNER; String mchId = SystemConfig.APP_PARTNER;
String partnerKey=SystemConfig.APP_PARTNER_KEY; String partnerKey = SystemConfig.APP_PARTNER_KEY;
Integer payAmount=orderRefundVo.getAmount(); Integer payAmount = orderRefundVo.getAmount();
Integer refundAmount=orderRefundVo.getRefundAmount(); Integer refundAmount = orderRefundVo.getRefundAmount();
//临时处理 //临时处理
Map<String, Dictionary> dictionaryMap = dictionaryBiz.getAll4Map(); Map<String, Dictionary> dictionaryMap = dictionaryBiz.getAll4Map();
Integer demotion = Integer.valueOf(dictionaryMap.get(UNIVERSAL_PAY+ "_"+ PAY_DEMOTION).getDetail()); Integer demotion = Integer.valueOf(dictionaryMap.get(UNIVERSAL_PAY + "_" + PAY_DEMOTION).getDetail());
payAmount = payAmount/demotion; payAmount = payAmount / demotion;
if(payAmount <= 0) { if (payAmount <= 0) {
payAmount = 1; payAmount = 1;
} }
refundAmount = refundAmount/demotion; refundAmount = refundAmount / demotion;
if(refundAmount <= 0) { if (refundAmount <= 0) {
refundAmount = 1; refundAmount = 1;
} }
String refundDesc =StringUtils.isNotBlank(orderRefundVo.getRefundDesc())?orderRefundVo.getRefundDesc(): "审核通过,退款"; String refundDesc = StringUtils.isNotBlank(orderRefundVo.getRefundDesc()) ? orderRefundVo.getRefundDesc() : "审核通过,退款";
String out_refund_no = Snowflake.build() + ""; String out_refund_no = Snowflake.build() + "";
if(StringUtils.isBlank(order_no)||StringUtils.isBlank(appid)||StringUtils.isBlank(mchId)||StringUtils.isBlank(partnerKey) if (StringUtils.isBlank(order_no) || StringUtils.isBlank(appid) || StringUtils.isBlank(mchId) || StringUtils.isBlank(partnerKey)
||payAmount==null||payAmount==0||refundAmount==null||refundAmount==0){ || payAmount == null || payAmount == 0 || refundAmount == null || refundAmount == 0) {
log.error("-----参数为空-----------"); log.error("-----参数为空-----------");
return JsonResultUtil.createFailedResult(ResultCode.NULL_CODE, "参数为空"); return JsonResultUtil.createFailedResult(ResultCode.NULL_CODE, "参数为空");
} }
log.error("-----payAmoun======="+payAmount+"------refundAmount======"+refundAmount); log.error("-----payAmoun=======" + payAmount + "------refundAmount======" + refundAmount);
Example example =new Example(OrderPay.class); Example example = new Example(OrderPay.class);
example.createCriteria().andEqualTo("orderNo", order_no).andEqualTo("isDel",0).andEqualTo("status",1); example.createCriteria().andEqualTo("orderNo", order_no).andEqualTo("isDel", 0).andEqualTo("status", 1);
List<OrderPay> list=payBiz.selectByExample(example); List<OrderPay> list = payBiz.selectByExample(example);
if(list.size()==0){ if (list.size() == 0) {
log.error("---支付回调---trade_no====="+order_no+"----订单不存在或未支付"); log.error("---支付回调---trade_no=====" + order_no + "----订单不存在或未支付");
return JsonResultUtil.createFailedResult(ResultCode.FAILED_CODE, order_no+"订单不存在或未支付"); return JsonResultUtil.createFailedResult(ResultCode.FAILED_CODE, order_no + "订单不存在或未支付");
}
OrderPay orderPay = list.get(0);
String out_trade_no = orderPay.getTradeNo();
boolean flag = false;
if (orderPay.getPayWay() == 2) {
log.info("======支付宝退款中===========");
flag = payBiz.alipayOrderRefund(out_trade_no, orderPay.getSerialNumber(), refundAmount, refundDesc, out_trade_no + System.currentTimeMillis());
} else if(orderPay.getPayWay() == 1){
log.info("======微信退款中===========");
flag = WxPayRefundUtils.refund(appid, mchId, partnerKey, out_trade_no, out_refund_no, payAmount + "",
refundAmount + "", refundDesc, APICLIENT_CERT);
} }
OrderPay orderPay=list.get(0); if (flag) {
String out_trade_no=orderPay.getTradeNo(); OrderRefund orderRefund = new OrderRefund();
boolean flag=WxPayRefundUtils.refund(appid,mchId,partnerKey,out_trade_no,out_refund_no,payAmount+"", BeanUtils.copyProperties(orderRefund, orderRefundVo);
refundAmount+"",refundDesc,APICLIENT_CERT); if (StringUtils.isNotBlank(orderRefund.getRefundDesc())) {
if(flag){
OrderRefund orderRefund= new OrderRefund();
BeanUtils.copyProperties(orderRefund,orderRefundVo);
if(StringUtils.isNotBlank(orderRefund.getRefundDesc())){
orderRefund.setRefundDesc(refundDesc); orderRefund.setRefundDesc(refundDesc);
} }
orderRefund.setUserId(orderPay.getUserId()); orderRefund.setUserId(orderPay.getUserId());
...@@ -104,6 +112,6 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> { ...@@ -104,6 +112,6 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
insertSelective(orderRefund); insertSelective(orderRefund);
return JsonResultUtil.createSuccessResultWithObj(out_refund_no); return JsonResultUtil.createSuccessResultWithObj(out_refund_no);
} }
return JsonResultUtil.createDefaultFail(); return JsonResultUtil.createFailedResult(40004, "退款失败!");
} }
} }
\ No newline at end of file
package com.xxfc.platform.universal.controller; package com.xxfc.platform.universal.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.util.result.JsonResultUtil; import com.github.wxiaoqi.security.common.util.result.JsonResultUtil;
...@@ -17,7 +16,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -17,7 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("refund") @RequestMapping("refund")
public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRefund> { public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRefund> {
@RequestMapping(value = "/app/wx", method = RequestMethod.POST) //匹配的是href中的download请求 @RequestMapping(value = "/app/pay/refund", method = RequestMethod.POST) //匹配的是href中的download请求
public JSONObject refund(@RequestBody OrderRefundVo orderRefundVo) { public JSONObject refund(@RequestBody OrderRefundVo orderRefundVo) {
try { try {
return baseBiz.refund(orderRefundVo); return baseBiz.refund(orderRefundVo);
......
...@@ -149,8 +149,7 @@ public class VehicleModel implements Serializable { ...@@ -149,8 +149,7 @@ public class VehicleModel implements Serializable {
@ApiModelProperty(value = "状态 0--下架;1--上架") @ApiModelProperty(value = "状态 0--下架;1--上架")
private Integer status; private Integer status;
@Column(name = "cover_pic") @Column(name = "cover_pic")
@ApiModelProperty(value = "封面图") @ApiModelProperty(value = "封面图")
private String coverPic; private String coverPic;
} }
...@@ -9,4 +9,19 @@ import java.util.List; ...@@ -9,4 +9,19 @@ import java.util.List;
@Data @Data
public class CompanyDetail extends BranchCompany { public class CompanyDetail extends BranchCompany {
List<SysRegion> sysRegions; List<SysRegion> sysRegions;
public String detailAddr() {
StringBuilder detailAddrStr = new StringBuilder("");
if(null != this.getSysRegions() && this.getSysRegions().size() > 0) {
for(SysRegion sysRegion : this.getSysRegions()) {
// if(0 != detailAddrStr.length()) {
//
// }
detailAddrStr.append(sysRegion.getName());
}
}
detailAddrStr.append(this.getAddrDetail());
return detailAddrStr.toString();
}
} }
\ No newline at end of file
...@@ -72,6 +72,7 @@ public class WebConfiguration implements WebMvcConfigurer { ...@@ -72,6 +72,7 @@ public class WebConfiguration implements WebMvcConfigurer {
String[] urls = { String[] urls = {
"/vehicleInfo/**", "/vehicleInfo/**",
"/branchCompany/**", "/branchCompany/**",
"/vehicleModel/**",
"/departure/**" "/departure/**"
}; };
Collections.addAll(list, urls); Collections.addAll(list, urls);
......
...@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; ...@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface; import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
...@@ -84,6 +85,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi ...@@ -84,6 +85,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
*/ */
@ApiOperation("车型详情") @ApiOperation("车型详情")
@RequestMapping(value = "/app/unauth/detail/{id}", method = RequestMethod.GET) @RequestMapping(value = "/app/unauth/detail/{id}", method = RequestMethod.GET)
@IgnoreUserToken
public ObjectRestResponse<VModelDetailVO> detail(@PathVariable("id") @ApiParam("车型id") Integer id) { public ObjectRestResponse<VModelDetailVO> detail(@PathVariable("id") @ApiParam("车型id") Integer id) {
//查询车型信息,车型类型关系 //查询车型信息,车型类型关系
//公司信息,系统信息(购车须知,预定须知) //公司信息,系统信息(购车须知,预定须知)
...@@ -105,6 +107,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi ...@@ -105,6 +107,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
*/ */
@ApiOperation("车型列表") @ApiOperation("车型列表")
@PostMapping(value = "/app/unauth/findVehicleModelPage") @PostMapping(value = "/app/unauth/findVehicleModelPage")
@IgnoreUserToken
public ObjectRestResponse<VehicleModelVo> findVehicleModelPageUnauthfind( public ObjectRestResponse<VehicleModelVo> findVehicleModelPageUnauthfind(
@RequestBody @ApiParam("查询条件") VehicleModelQueryCondition vmqc, HttpServletRequest request) { @RequestBody @ApiParam("查询条件") VehicleModelQueryCondition vmqc, HttpServletRequest request) {
if (vmqc.getIsDel() == null) { if (vmqc.getIsDel() == null) {
......
...@@ -377,22 +377,22 @@ ...@@ -377,22 +377,22 @@
select v1.* from vehicle_book_record v1 select v1.* from vehicle_book_record v1
left join vehicle v2 on v2.id = v1.vehicle_id left join vehicle v2 on v2.id = v1.vehicle_id
<where> <where>
<if test="startTime != null"> <if test="startTime != null">
and v1.create_time between #{startTime} and #{endTime} and v1.create_time between #{startTime} and #{endTime}
</if> </if>
<if test="numberPlate != null"> <if test="numberPlate != null || numberPlate != ''">
and v2.number_plate = #{numberPlate} and v2.number_plate = #{numberPlate}
</if> </if>
<if test="status != null"> <if test="status != null">
and v2.status = #{status} and v2.status = #{status}
</if> </if>
<if test="subordinateBranch != null"> <if test="subordinateBranch != null">
and v2.subordinate_branch = #{subordinateBranch} and v2.subordinate_branch = #{subordinateBranch}
</if> </if>
<if test="parkBranchCompanyId != null"> <if test="parkBranchCompanyId != null">
and v2.park_branch_company_id = #{parkBranchCompanyId} and v2.park_branch_company_id = #{parkBranchCompanyId}
</if> </if>
</where> </where>
order By v1.create_time DESC order By v1.create_time DESC
</select> </select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment