Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
E
Ecsite
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
shoei.kanno
Ecsite
Commits
836ff546
Commit
836ff546
authored
Oct 17, 2020
by
DESKTOP-FI5PFC1\tevir
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
一覧表示処理追加
parent
ecd78aef
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
281 additions
and
68 deletions
+281
-68
ShoesForm.java
src/main/java/ShoesForm.java
+17
-0
Shoes.java
src/main/java/com/example/domain/Shoes.java
+1
-1
Wallets.java
src/main/java/com/example/domain/Wallets.java
+22
-0
ShoesRepository.java
src/main/java/com/example/repository/ShoesRepository.java
+1
-1
WalletsRepository.java
src/main/java/com/example/repository/WalletsRepository.java
+11
-0
LoginUserDetailsService.java
...ain/java/com/example/service/LoginUserDetailsService.java
+6
-0
ShoesService.java
src/main/java/com/example/service/ShoesService.java
+7
-1
WalletsService.java
src/main/java/com/example/service/WalletsService.java
+32
-0
EcsiteController.java
src/main/java/com/example/web/EcsiteController.java
+57
-65
ManagementController.java
src/main/java/com/example/web/ManagementController.java
+111
-0
ShoesForm.java
src/main/java/com/example/web/ShoesForm.java
+16
-0
No files found.
src/main/java/ShoesForm.java
0 → 100644
View file @
836ff546
import
org.springframework.web.multipart.MultipartFile
;
import
lombok.Getter
;
import
lombok.Setter
;
//靴新規登録用フォーム
@Getter
@Setter
public
class
ShoesForm
{
private
String
name
;
private
Integer
price
;
private
Integer
stock
;
private
Integer
size
;
private
Integer
product_status
;
//画像を受け取る変数
private
MultipartFile
multipartFile
;
}
src/main/java/com/example/domain/Shoes.java
View file @
836ff546
...
...
@@ -29,5 +29,5 @@ public class Shoes {
@Column
(
nullable
=
false
)
private
Integer
productStatus
;
@Column
(
nullable
=
false
)
private
String
p
ath
;
private
String
p
hoto
;
}
src/main/java/com/example/domain/Wallets.java
0 → 100644
View file @
836ff546
package
com
.
example
.
domain
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
lombok.Getter
;
import
lombok.Setter
;
//ユーザーウォレットのエンティティ
@Getter
@Setter
@Table
(
name
=
"user_wallets"
)
@Entity
public
class
Wallets
{
@Id
@GeneratedValue
private
Integer
Id
;
private
Integer
userId
;
private
Integer
amount
;
}
src/main/java/com/example/repository/ShoesRepository.java
View file @
836ff546
...
...
@@ -4,6 +4,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
import
com.example.domain.Shoes
;
//靴データ取得用
public
interface
ShoesRepository
extends
JpaRepository
<
Shoes
,
Integer
>{
}
src/main/java/com/example/repository/WalletsRepository.java
0 → 100644
View file @
836ff546
package
com
.
example
.
repository
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.stereotype.Repository
;
import
com.example.domain.Wallets
;
//ウォレット情報をDBから取得
@Repository
public
interface
WalletsRepository
extends
JpaRepository
<
Wallets
,
Integer
>
{
}
src/main/java/com/example/service/LoginUserDetailsService.java
View file @
836ff546
package
com
.
example
.
service
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.core.userdetails.UserDetails
;
import
org.springframework.security.core.userdetails.UserDetailsService
;
...
...
@@ -33,4 +35,8 @@ public class LoginUserDetailsService implements UserDetailsService {
public
User
create
(
User
user
)
{
return
userRepository
.
save
(
user
);
}
public
List
<
User
>
findAll
(){
return
userRepository
.
findAll
();
}
}
src/main/java/com/example/service/ShoesService.java
View file @
836ff546
package
com
.
example
.
service
;
import
java.util.Collections
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -8,13 +9,18 @@ import org.springframework.stereotype.Service;
import
com.example.domain.Shoes
;
import
com.example.repository.ShoesRepository
;
//靴用サービス
@Service
public
class
ShoesService
{
@Autowired
ShoesRepository
shoesRepository
;
public
List
<
Shoes
>
findAll
(){
return
shoesRepository
.
findAll
();
List
<
Shoes
>
list
=
shoesRepository
.
findAll
();
//並べ替え処理
Collections
.
sort
(
list
,
Collections
.
reverseOrder
());
//並べ替えたものを返す。
return
list
;
}
public
Shoes
findOne
(
Integer
id
){
...
...
src/main/java/com/example/service/WalletsService.java
0 → 100644
View file @
836ff546
package
com
.
example
.
service
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.example.domain.Wallets
;
import
com.example.repository.WalletsRepository
;
//ユーザウォレットのサービス
@Service
public
class
WalletsService
{
@Autowired
WalletsRepository
walletsRepository
;
public
List
<
Wallets
>
findAll
(){
return
walletsRepository
.
findAll
();
}
public
Wallets
findOne
(
Integer
id
){
return
walletsRepository
.
findOne
(
id
);
}
public
Wallets
create
(
Wallets
wallet
){
return
walletsRepository
.
save
(
wallet
);
}
public
Wallets
update
(
Wallets
wallet
){
return
walletsRepository
.
save
(
wallet
);
}
}
src/main/java/com/example/web/EcsiteController.java
View file @
836ff546
package
com
.
example
.
web
;
import
java.awt.image.BufferedImage
;
import
java.io.BufferedOutputStream
;
import
java.io.File
;
import
java.io.FileOutputStream
;
import
java.io.OutputStream
;
import
java.util.Iterator
;
import
javax.imageio.IIOImage
;
import
javax.imageio.ImageIO
;
import
javax.imageio.ImageWriteParam
;
import
javax.imageio.ImageWriter
;
import
javax.imageio.plugins.jpeg.JPEGImageWriteParam
;
import
javax.imageio.stream.ImageOutputStream
;
import
java.io.ByteArrayOutputStream
;
import
java.io.FileInputStream
;
import
java.util.ArrayList
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.core.annotation.AuthenticationPrincipal
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.multipart.MultipartFile
;
import
com.example.domain.Shoes
;
import
com.example.domain.User
;
import
com.example.service.LoginUser
;
import
com.example.service.ShoesService
;
@Controller
@RequestMapping
(
"limited"
)
public
class
EcsiteController
{
@Autowired
ShoesService
shoesService
;
//写真の表示用メソッド
public
String
photoView
(
String
Photo
)
{
// 画像を検索してbyteとしてViewへ受け渡す
String
uploadPath
=
"src/main/resources/static/upload/"
+
Photo
;
// 画像データストリームを取得する
try
(
FileInputStream
fis
=
new
FileInputStream
(
uploadPath
);)
{
StringBuffer
data
=
new
StringBuffer
();
ByteArrayOutputStream
os
=
new
ByteArrayOutputStream
();
byte
[]
buffer
=
new
byte
[
1024
];
// バイト配列に変換
while
(
true
)
{
int
len
=
fis
.
read
(
buffer
);
if
(
len
<
0
)
{
break
;
}
os
.
write
(
buffer
,
0
,
len
);
}
// 画像データをbaseにエンコード
String
base64
=
new
String
(
org
.
apache
.
tomcat
.
util
.
codec
.
binary
.
Base64
.
encodeBase64
(
os
.
toByteArray
()),
"ASCII"
);
// 画像タイプはJPEG
// Viewへの受け渡し。
data
.
append
(
"data:image/jpeg;base64,"
);
data
.
append
(
base64
);
return
data
.
toString
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
}
}
//トップ画面遷移(現在のログインユーザーデータもmodelに格納済み)
@GetMapping
(
"top"
)
public
String
top
(
Model
model
,
@AuthenticationPrincipal
LoginUser
userDetails
)
{
User
user
=
userDetails
.
getUser
();
model
.
addAttribute
(
"user"
,
user
);
//遷移先 設定済み
return
"index"
;
}
//一覧画面遷移(靴の情報と画像を一緒にmodelにあげることが出来ない為、分けてある)
@GetMapping
(
"list"
)
public
String
list
()
{
public
String
list
(
Model
model
)
{
//靴の情報をすべて取得
List
<
Shoes
>
shoes
=
shoesService
.
findAll
();
//靴の情報を一括で取得するmodel(Idでの降順表示設定済み)
model
.
addAttribute
(
"shoes"
,
shoes
);
//靴を表示するための処理を全画像にかける
List
<
String
>
shoesPhoto
=
new
ArrayList
<
String
>
();
for
(
int
i
=
0
;
i
<
shoes
.
size
();
i
++)
{
shoesPhoto
.
add
((
shoes
.
get
(
i
)).
getPhoto
());
}
//靴の処理した画像を一括で取得する
model
.
addAttribute
(
"shoesPhoto"
,
shoesPhoto
);
//遷移先 未設定
return
"Hello world"
;
}
//画像登録用
// @PostMapping("admin/management/shoes")
// public String CreateShoes(@Validated,
// MultipartFile multipartFile) throws Exception {
//
// if (!multipartFile.isEmpty()) {
// try {
// // ファイル名をリネイム
// File oldFileName = new File(multipartFile.getOriginalFilename());
// File newFileName = new File(oldFileName + ".jpg");
// oldFileName.renameTo(newFileName);
//
// // 保存先を定義
// String uploadPath = "src/main/resources/static/upload/";
// byte[] bytes = multipartFile.getBytes();
//
// // 指定ファイルへ読み込みファイルを書き込み
// BufferedOutputStream stream = new BufferedOutputStream(
// new FileOutputStream(new File(uploadPath + newFileName)));
// stream.write(bytes);
// stream.close();
//
// // 圧縮
// File input = new File(uploadPath + newFileName);
// BufferedImage image = ImageIO.read(input);
// OutputStream os = new FileOutputStream(input);
// Iterator<ImageWriter> writers = ImageIO
// .getImageWritersByFormatName("jpg");
// ImageWriter writer = (ImageWriter) writers.next();
// ImageOutputStream ios = ImageIO.createImageOutputStream(os);
// writer.setOutput(ios);
// ImageWriteParam param = new JPEGImageWriteParam(null);
// param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
// param.setCompressionQuality(0.30f);
// writer.write(null, new IIOImage(image, null, null), param);
// os.close();
// ios.close();
// writer.dispose();
//
// // DBに写真の名前を格納する
// service.updatePhoto(account.getUsername(), newFileName.toString());
//
// } catch (Exception e) {
// System.out.println(e);
// }
// }
// return "forward:/top";
// }
}
src/main/java/com/example/web/ManagementController.java
0 → 100644
View file @
836ff546
package
com
.
example
.
web
;
import
java.awt.image.BufferedImage
;
import
java.io.BufferedOutputStream
;
import
java.io.File
;
import
java.io.FileOutputStream
;
import
java.io.OutputStream
;
import
java.util.Iterator
;
import
java.util.List
;
import
javax.imageio.IIOImage
;
import
javax.imageio.ImageIO
;
import
javax.imageio.ImageWriteParam
;
import
javax.imageio.ImageWriter
;
import
javax.imageio.plugins.jpeg.JPEGImageWriteParam
;
import
javax.imageio.stream.ImageOutputStream
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.multipart.MultipartFile
;
import
com.example.domain.Shoes
;
import
com.example.domain.User
;
import
com.example.service.LoginUserDetailsService
;
import
com.example.service.ShoesService
;
//管理画面用
@Controller
@RequestMapping
(
"limited/admin/management/"
)
public
class
ManagementController
{
@Autowired
ShoesService
shoesService
;
@Autowired
LoginUserDetailsService
loginUserDetailsService
;
//管理画面表示(靴もユーザ情報も一覧で取得できるようになっている)
@GetMapping
()
public
String
management
(
Model
model
)
{
List
<
Shoes
>
shoes
=
shoesService
.
findAll
();
model
.
addAttribute
(
"shoes"
,
shoes
);
List
<
User
>
user
=
loginUserDetailsService
.
findAll
();
model
.
addAttribute
(
"user"
,
user
);
//遷移先 未設定
return
"Hello World"
;
}
//靴の登録処理
@PostMapping
(
"addShoes"
)
public
String
CreateShoes
(
@Validated
ShoesForm
form
,
BindingResult
result
,
MultipartFile
multipartFile
)
throws
Exception
{
if
(
result
.
hasErrors
())
{
return
"management"
;
}
multipartFile
=
form
.
getMultipartFile
();
Shoes
shoes
=
new
Shoes
();
if
(!
multipartFile
.
isEmpty
())
{
try
{
// ファイル名をリネイム
File
oldFileName
=
new
File
(
multipartFile
.
getOriginalFilename
());
File
newFileName
=
new
File
(
oldFileName
+
".jpg"
);
oldFileName
.
renameTo
(
newFileName
);
// 保存先を定義
String
uploadPath
=
"src/main/resources/static/upload/"
;
byte
[]
bytes
=
multipartFile
.
getBytes
();
// 指定ファイルへ読み込みファイルを書き込み
BufferedOutputStream
stream
=
new
BufferedOutputStream
(
new
FileOutputStream
(
new
File
(
uploadPath
+
newFileName
)));
stream
.
write
(
bytes
);
stream
.
close
();
// 圧縮
File
input
=
new
File
(
uploadPath
+
newFileName
);
BufferedImage
image
=
ImageIO
.
read
(
input
);
OutputStream
os
=
new
FileOutputStream
(
input
);
Iterator
<
ImageWriter
>
writers
=
ImageIO
.
getImageWritersByFormatName
(
"jpg"
);
ImageWriter
writer
=
(
ImageWriter
)
writers
.
next
();
ImageOutputStream
ios
=
ImageIO
.
createImageOutputStream
(
os
);
writer
.
setOutput
(
ios
);
ImageWriteParam
param
=
new
JPEGImageWriteParam
(
null
);
param
.
setCompressionMode
(
ImageWriteParam
.
MODE_EXPLICIT
);
param
.
setCompressionQuality
(
0.30f
);
writer
.
write
(
null
,
new
IIOImage
(
image
,
null
,
null
),
param
);
os
.
close
();
ios
.
close
();
writer
.
dispose
();
// shoes entity に写真の名前を格納する
shoes
.
setPhoto
(
newFileName
.
toString
());
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
e
);
}
}
shoes
.
setName
(
form
.
getName
());
shoes
.
setPrice
(
form
.
getPrice
());
shoes
.
setStock
(
form
.
getStock
());
shoes
.
setSize
(
form
.
getSize
());
shoes
.
setProductStatus
(
form
.
getProduct_status
());
shoesService
.
update
(
shoes
);
//遷移先 未設定
return
"Hello World"
;
}
}
src/main/java/com/example/web/ShoesForm.java
0 → 100644
View file @
836ff546
package
com
.
example
.
web
;
import
org.springframework.web.multipart.MultipartFile
;
import
lombok.Getter
;
import
lombok.Setter
;
@Getter
@Setter
public
class
ShoesForm
{
private
String
name
;
private
Integer
price
;
private
Integer
stock
;
private
Integer
size
;
private
Integer
product_status
;
private
MultipartFile
multipartFile
;
}
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