Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
lcj-btp-java-app
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
郭智朋
lcj-btp-java-app
Commits
5d0d1b2d
You need to sign in or sign up before continuing.
Commit
5d0d1b2d
authored
Feb 16, 2025
by
guozhipeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
代码合并
parent
e5822190
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
150 additions
and
57 deletions
+150
-57
CustomerController.js
app/router/controller/CustomerController.js
+6
-3
Login.controller.js
app/router/controller/Login.controller.js
+2
-2
mtaReadme.md
mtaReadme.md
+16
-0
LoginController.java
...omer/lianchuangjie/master/controller/LoginController.java
+13
-3
LoginService.java
...a/customer/lianchuangjie/master/service/LoginService.java
+7
-2
AttachmentServiceImpl.java
...nchuangjie/master/service/impl/AttachmentServiceImpl.java
+27
-42
LoginServiceImpl.java
...r/lianchuangjie/master/service/impl/LoginServiceImpl.java
+11
-4
PartyServiceImpl.java
...r/lianchuangjie/master/service/impl/PartyServiceImpl.java
+68
-1
No files found.
app/router/controller/CustomerController.js
View file @
5d0d1b2d
...
...
@@ -248,7 +248,8 @@ sap.ui.define(
var
headers
=
{};
//headers: headers,
if
(
that
.
getStorage
().
get
(
"csrfToken"
)
!=
null
&&
that
.
getStorage
().
get
(
"csrfToken"
)
!==
undefined
)
{
headers
=
{
'x-csrf-token'
:
that
.
getStorage
().
get
(
"csrfToken"
)
'x-csrf-token'
:
that
.
getStorage
().
get
(
"csrfToken"
),
'Content-Type'
:
'application/json'
};
}
headers
.
language
=
that
.
language
;
...
...
@@ -407,7 +408,8 @@ sap.ui.define(
var
headers
=
{};
//headers: headers,
if
(
that
.
getStorage
().
get
(
"csrfToken"
)
!=
null
&&
that
.
getStorage
().
get
(
"csrfToken"
)
!==
undefined
)
{
headers
=
{
'x-csrf-token'
:
that
.
getStorage
().
get
(
"csrfToken"
)
'x-csrf-token'
:
that
.
getStorage
().
get
(
"csrfToken"
),
'Content-Type'
:
'application/json'
};
}
headers
.
language
=
that
.
language
;
...
...
@@ -550,7 +552,8 @@ sap.ui.define(
var
headers
=
{};
//headers: headers,
if
(
that
.
getStorage
().
get
(
"csrfToken"
)
!=
null
&&
that
.
getStorage
().
get
(
"csrfToken"
)
!==
undefined
)
{
headers
=
{
'x-csrf-token'
:
that
.
getStorage
().
get
(
"csrfToken"
)
'x-csrf-token'
:
that
.
getStorage
().
get
(
"csrfToken"
),
'Content-Type'
:
'application/json'
};
}
headers
.
language
=
that
.
language
;
...
...
app/router/controller/Login.controller.js
View file @
5d0d1b2d
...
...
@@ -171,7 +171,7 @@ sap.ui.define([
MessageBox.warning(this.i18n("Msg_input_username_password"));
return;
}*/
console
.
log
(
"onLoginUrl="
,
that
.
baseUrl
+
"login/
l
ogin"
);
console
.
log
(
"onLoginUrl="
,
that
.
baseUrl
+
"login/
oauth2L
ogin"
);
that
.
getCsrfToken
(
csrfToken
=>
{
console
.
log
(
'【获取到的 CSRF Token】 '
,
csrfToken
);
var
csrfTokenStorage
=
that
.
getStorage
().
get
(
"csrfToken"
)
...
...
@@ -191,7 +191,7 @@ sap.ui.define([
method
:
"POST"
,
headers
:
headers
,
data
:
JSON
.
stringify
(
param
),
url
:
that
.
baseUrl
+
"login/
l
ogin"
,
url
:
that
.
baseUrl
+
"login/
oauth2L
ogin"
,
contentType
:
'application/json'
,
dataType
:
'json'
,
success
:
function
(
data
){
...
...
mtaReadme.md
View file @
5d0d1b2d
...
...
@@ -164,6 +164,22 @@ cf login -a https://api.cf.cn40.platform.sapcloud.cn -o "Shenzhen-Lianchuangjie-
输入密码: Gzp@123456 后回车。
## 代码合并差异文件
前端代码app差异文件
后端代码srv差异文件
lcj-btp-java
\s
rv
\s
rc
\m
ain
\j
ava
\c
ustomer
\l
ianchuangjie
\c
ommon
\c
onfig
\C
orsConfig.java
lcj-btp-java
\s
rv
\s
rc
\m
ain
\j
ava
\c
ustomer
\l
ianchuangjie
\c
ommon
\f
ilter
\O
perateAuthFilter.java
lcj-btp-java
\s
rv
\s
rc
\m
ain
\j
ava
\c
ustomer
\l
ianchuangjie
\A
pplication.java
## 部署到云服务器
### 使用mtaDeploy批处理部署
...
...
srv/src/main/java/customer/lianchuangjie/master/controller/LoginController.java
View file @
5d0d1b2d
...
...
@@ -50,7 +50,7 @@ public class LoginController {
@PostMapping
(
value
=
"/login"
)
public
Result
login
(
@RequestBody
JSONObject
jsonObject
,
HttpServletRequest
req
)
{
/*
String language = req.getHeader("language");
String
language
=
req
.
getHeader
(
"language"
);
// return loginService.login(UserLogin);
if
(
StringUtils
.
isEmpty
(
jsonObject
.
getString
(
"userLoginId"
)))
{
return
Result
.
error
(
"用户名不能为空"
);
...
...
@@ -63,8 +63,18 @@ public class LoginController {
return
Result
.
error
(
MessageUtil
.
get
(
"user_login_passwordWeak"
,
language
));
}
return loginService.login(jsonObject, req);*/
return
loginService
.
oauthLogin
(
jsonObject
,
req
);
return
loginService
.
login
(
jsonObject
,
req
);
}
/**
* BTP oauth2 鉴权登录
* @param jsonObject
* @param req
* @return
*/
@PostMapping
(
value
=
"/oauth2Login"
)
public
Result
oauth2Login
(
@RequestBody
JSONObject
jsonObject
,
HttpServletRequest
req
)
{
return
loginService
.
oauth2Login
(
jsonObject
,
req
);
}
@PostMapping
(
value
=
"/updatePasswordAll"
)
...
...
srv/src/main/java/customer/lianchuangjie/master/service/LoginService.java
View file @
5d0d1b2d
...
...
@@ -9,6 +9,11 @@ import jakarta.servlet.http.HttpServletRequest;
public
interface
LoginService
{
public
Result
login
(
JSONObject
jsonObject
,
HttpServletRequest
req
);
//新的鉴权方式
public
Result
oauthLogin
(
JSONObject
jsonObject
,
HttpServletRequest
req
);
/**
* BTP oauth2 鉴权登录
* @param jsonObject
* @param req
* @return
*/
public
Result
oauth2Login
(
JSONObject
jsonObject
,
HttpServletRequest
req
);
}
srv/src/main/java/customer/lianchuangjie/master/service/impl/AttachmentServiceImpl.java
View file @
5d0d1b2d
...
...
@@ -36,7 +36,6 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartHttpServletRequest
;
import
org.springframework.web.multipart.MultipartResolver
;
import
static
customer
.
lianchuangjie
.
common
.
util
.
ConvertUtils
.
getSuffix
;
...
...
@@ -55,8 +54,6 @@ public class AttachmentServiceImpl extends ServiceImpl<AttachmentDao, Attachment
private
AttachmentProductBatchDao
attachmentProductBatchDao
;
@Autowired
private
GoldSampleDao
goldSampleDao
;
@Autowired
private
MultipartResolver
multipartResolver
;
/**
* 批量上传
...
...
@@ -68,51 +65,39 @@ public class AttachmentServiceImpl extends ServiceImpl<AttachmentDao, Attachment
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
<?>
batchUpload
(
HttpServletRequest
request
,
String
language
)
{
String
message
=
""
;
MultipartHttpServletRequest
multipartRequest
=
(
MultipartHttpServletRequest
)
request
;
Map
<
String
,
MultipartFile
>
fileMap
=
multipartRequest
.
getFileMap
();
List
<
JSONObject
>
results
=
new
ArrayList
<>();
// 获取原始请求对象
HttpServletRequest
originalRequest
=
request
;
while
(
originalRequest
instanceof
javax
.
servlet
.
http
.
HttpServletRequestWrapper
)
{
originalRequest
=
(
HttpServletRequest
)
((
javax
.
servlet
.
http
.
HttpServletRequestWrapper
)
originalRequest
).
getRequest
();
log
.
info
(
"[originalRequest instanceof javax.servlet.http.HttpServletRequestWrapper]true"
);
}
if
(
multipartResolver
.
isMultipart
(
originalRequest
))
{
log
.
info
(
"[multipartResolver.isMultipart(originalRequest)]true"
);
MultipartHttpServletRequest
multipartRequest
=
multipartResolver
.
resolveMultipart
(
originalRequest
);
Map
<
String
,
MultipartFile
>
fileMap
=
multipartRequest
.
getFileMap
();
for
(
Map
.
Entry
<
String
,
MultipartFile
>
entity
:
fileMap
.
entrySet
())
{
log
.
info
(
"[fileMap.entrySet()]for"
);
JSONObject
item
=
new
JSONObject
();
MultipartFile
file
=
entity
.
getValue
();
// 获取上传文件对象
for
(
Map
.
Entry
<
String
,
MultipartFile
>
entity
:
fileMap
.
entrySet
())
{
JSONObject
item
=
new
JSONObject
();
MultipartFile
file
=
entity
.
getValue
();
// 获取上传文件对象
try
{
if
(
file
!=
null
)
{
// 文件不为空
String
originalFilename
=
file
.
getOriginalFilename
();
long
size
=
file
.
getSize
();
String
contentType
=
file
.
getContentType
();
String
fileId
=
FileServerUtil
.
upload
(
file
.
getInputStream
(),
file
.
getOriginalFilename
(),
FileServerUtil
.
Timeout
.
BEST
);
item
.
put
(
"fileId"
,
fileId
);
//文件服务器生成的文件ID
item
.
put
(
"fileName"
,
originalFilename
);
//原始文件名
item
.
put
(
"fileSize"
,
size
);
//文件大小 字节 byte
item
.
put
(
"contentType"
,
contentType
);
//文件类型
item
.
put
(
"fileSuffix"
,
getSuffix
(
originalFilename
));
//文件后缀名
results
.
add
(
item
);
}
else
{
throw
new
BtpException
(
MessageUtil
.
get
(
"paramNotEmpty"
,
new
Object
[]
{
""
},
language
));
}
}
catch
(
Exception
e
)
{
message
=
""
+
(
e
.
getMessage
()
!=
null
?
e
.
getMessage
()
:
e
);
log
.
error
(
message
);
throw
new
BtpException
(
MessageUtil
.
get
(
"error"
,
new
Object
[]
{
message
},
language
));
}
finally
{
try
{
if
(
file
!=
null
)
{
// 文件不为空
String
originalFilename
=
file
.
getOriginalFilename
();
long
size
=
file
.
getSize
();
String
contentType
=
file
.
getContentType
();
String
fileId
=
FileServerUtil
.
upload
(
file
.
getInputStream
(),
file
.
getOriginalFilename
(),
FileServerUtil
.
Timeout
.
BEST
);
item
.
put
(
"fileId"
,
fileId
);
//文件服务器生成的文件ID
item
.
put
(
"fileName"
,
originalFilename
);
//原始文件名
item
.
put
(
"fileSize"
,
size
);
//文件大小 字节 byte
item
.
put
(
"contentType"
,
contentType
);
//文件类型
item
.
put
(
"fileSuffix"
,
getSuffix
(
originalFilename
));
//文件后缀名
results
.
add
(
item
);
}
else
{
throw
new
BtpException
(
MessageUtil
.
get
(
"paramNotEmpty"
,
new
Object
[]
{
""
},
language
));
}
}
catch
(
Exception
e
)
{
file
.
getInputStream
().
close
();
}
catch
(
IOException
e
)
{
message
=
""
+
(
e
.
getMessage
()
!=
null
?
e
.
getMessage
()
:
e
);
log
.
error
(
message
);
throw
new
BtpException
(
MessageUtil
.
get
(
"error"
,
new
Object
[]
{
message
},
language
));
}
finally
{
try
{
file
.
getInputStream
().
close
();
}
catch
(
IOException
e
)
{
message
=
""
+
(
e
.
getMessage
()
!=
null
?
e
.
getMessage
()
:
e
);
log
.
error
(
message
);
}
}
}
}
else
{
log
.
info
(
"[multipartResolver.isMultipart(originalRequest)]false"
);
}
if
(
results
.
size
()
>
0
)
{
Result
<
Object
>
ok
=
Result
.
ok
(
MessageUtil
.
get
(
"success"
,
new
Object
[]
{
message
},
language
));
...
...
srv/src/main/java/customer/lianchuangjie/master/service/impl/LoginServiceImpl.java
View file @
5d0d1b2d
...
...
@@ -69,8 +69,6 @@ public class LoginServiceImpl implements LoginService {
try
{
// 打印日志
log
.
info
(
"【用户ID:{},尝试登录】"
,
userLoginId
);
log
.
info
(
"authorization {}"
,
req
.
getHeader
(
"authorization"
));
log
.
info
(
"cookie {}"
,
req
.
getHeader
(
"cookie"
));
String
finalUserLoginId
=
userLoginId
;
CqnSelect
cqnselect
=
Select
.
from
(
UserLogin_
.
class
)
...
...
@@ -100,7 +98,10 @@ public class LoginServiceImpl implements LoginService {
// 创建Get请求
HttpGet
httpGet
=
new
HttpGet
(
uri
);
//添加鉴权 authorization Basic c2FiaW5lOnBhc3Nfc2FiaW5l
httpGet
.
setHeader
(
"authorization"
,
req
.
getHeader
(
"authorization"
));
String
authorization
=
req
.
getHeader
(
"authorization"
);
if
(
authorization
!=
null
&&
!
""
.
equals
(
authorization
))
{
httpGet
.
setHeader
(
"authorization"
,
req
.
getHeader
(
"authorization"
));
}
JSONObject
jsonObject1
=
null
;
HttpResponse
res
=
client
.
execute
(
httpGet
);
// 返回json格式:
...
...
@@ -130,8 +131,14 @@ public class LoginServiceImpl implements LoginService {
return
result
;
}
/**
* BTP oauth2 鉴权登录
* @param jsonObject
* @param req
* @return
*/
@Override
public
Result
oauthLogin
(
JSONObject
jsonObject
,
HttpServletRequest
req
)
{
public
Result
oauth
2
Login
(
JSONObject
jsonObject
,
HttpServletRequest
req
)
{
Result
result
=
new
Result
<>();
String
userLoginId
=
null
;
String
username
=
null
;
//用户名 邮箱
...
...
srv/src/main/java/customer/lianchuangjie/master/service/impl/PartyServiceImpl.java
View file @
5d0d1b2d
...
...
@@ -4229,6 +4229,25 @@ public class PartyServiceImpl implements PartyService {
return
Result
.
error
((
MessageUtil
.
get
(
"party_partyIsNull"
,
language
)));
}
List
<
PartyRole
>
partyRoleList
=
partyRoleDao
.
selectListByPartyId
(
partyId
);
List
<
PartyRole
>
customer
=
StreamApiUtil
.
filter
(
partyRoleList
,
item
->
"CUSTOMER"
.
equals
(
item
.
getRoleTypeId
()));
List
<
PartyRole
>
supplier
=
StreamApiUtil
.
filter
(
partyRoleList
,
item
->
"SUPPLIER"
.
equals
(
item
.
getRoleTypeId
()));
//更新客户角色
if
(
CollectionUtils
.
isNotEmpty
(
customer
))
{
JSONObject
objectCustomer
=
new
JSONObject
();
objectCustomer
.
put
(
"partyId"
,
partyId
);
objectCustomer
.
put
(
"ruleCode"
,
"customer"
);
Result
resultCustomer
=
updatePartyCompanyByRoleToSap
(
objectCustomer
,
language
);
}
//更新供应商角色
if
(
CollectionUtils
.
isNotEmpty
(
supplier
))
{
JSONObject
objectSupplier
=
new
JSONObject
();
objectSupplier
.
put
(
"partyId"
,
partyId
);
objectSupplier
.
put
(
"ruleCode"
,
"supplier"
);
Result
resultSupplier
=
updatePartyCompanyByRoleToSap
(
objectSupplier
,
language
);
}
JSONObject
json
=
new
JSONObject
();
JSONObject
object
=
new
JSONObject
();
String
groupName
=
partyGroup
.
getGroupName
();
...
...
@@ -4357,7 +4376,7 @@ public class PartyServiceImpl implements PartyService {
Result
roleResult
=
updateBpRoleToSap
(
object
,
language
);
if
(
roleResult
.
isSuccess
())
{
}
else
{
return
Result
.
error
(
roleResult
.
getMessage
());
/*return Result.error(roleResult.getMessage());*/
}
}
for
(
Party
party
:
companyList
)
{
...
...
@@ -4373,6 +4392,41 @@ public class PartyServiceImpl implements PartyService {
return
Result
.
ok
(
MessageUtil
.
get
(
"success"
,
language
));
}
public
Result
syncCompanyToPartySap
(
JSONObject
jsonObject
,
String
language
)
{
String
companyCode
=
jsonObject
.
getString
(
"companyCode"
);
List
<
CompanyParty
>
companyPartyList
=
companyPartyDao
.
selectListByCompanyCode
(
companyCode
);
List
<
CompanyParty
>
list
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isEmpty
(
companyPartyList
))
{
List
<
PartyGroup
>
partyGroupList
=
partyGroupDao
.
selectListByIsSyncSapIsY
();
List
<
CompanyParty
>
companyPartyListNew
=
new
ArrayList
<>();
partyGroupList
.
forEach
(
party
->
{
CompanyParty
companyParty
=
CompanyParty
.
create
();
companyParty
.
setCompanyCode
(
companyCode
);
companyParty
.
setPartyId
(
party
.
getPartyId
());
companyParty
.
setIsSync
(
"N"
);
companyPartyListNew
.
add
(
companyParty
);
}
);
companyPartyDao
.
insertBatch
(
companyPartyListNew
,
companyPartyListNew
.
size
());
list
=
companyPartyListNew
;
}
else
{
list
=
companyPartyDao
.
selectListByCompanyCodeAndIsSync
(
companyCode
);
}
for
(
CompanyParty
companyParty
:
list
)
{
JSONObject
jsonObjectParty
=
new
JSONObject
();
jsonObjectParty
.
put
(
"partyId"
,
companyParty
.
getPartyId
());
jsonObjectParty
.
put
(
"companyCode"
,
companyCode
);
Result
result
=
syncPartyToSap
(
jsonObject
,
language
);
if
(!
result
.
isSuccess
())
{
}
companyParty
.
setIsSync
(
"Y"
);
companyPartyDao
.
updateById
(
companyParty
);
}
return
Result
.
ok
(
MessageUtil
.
get
(
"success"
,
language
));
}
@Override
public
Result
updateCustomerCompanyPayment
(
JSONObject
jsonObject
,
String
language
)
{
String
partyId
=
jsonObject
.
getString
(
"partyId"
);
...
...
@@ -5309,6 +5363,19 @@ public class PartyServiceImpl implements PartyService {
}
};
Future
<
String
>
future1
=
executor
.
submit
(
task
);
//客户同步公司
ExecutorService
executorParty
=
Executors
.
newFixedThreadPool
(
2
);
Callable
<
String
>
taskParty
=
new
Callable
<
String
>()
{
@Override
public
String
call
()
throws
Exception
{
// 调用接口的逻辑
JSONObject
jsonObjectParty
=
new
JSONObject
();
jsonObjectParty
.
put
(
"companyCode"
,
jsonObject
.
getString
(
"partyId"
));
Result
resultCompany
=
syncPartyCompanyToSap
(
jsonObjectParty
,
language
);
return
""
;
}
};
Future
<
String
>
futureParty
=
executorParty
.
submit
(
taskParty
);
return
response
;
}
catch
(
Exception
e
)
{
throw
new
BtpException
(
MessageUtil
.
get
(
"exception"
,
new
Object
[]{
StringUtils
.
isEmpty
(
e
.
getMessage
())
?
e
:
e
.
getMessage
()},
language
));
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment