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
fa41d7e0
Commit
fa41d7e0
authored
Oct 17, 2020
by
keita.onoguchi
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '一覧画面一覧表示処理' into 'master'
一覧表示処理追加 See merge request
!15
parents
2472048b
836ff546
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 @
fa41d7e0
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 @
fa41d7e0
...
...
@@ -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 @
fa41d7e0
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 @
fa41d7e0
...
...
@@ -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 @
fa41d7e0
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 @
fa41d7e0
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 @
fa41d7e0
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 @
fa41d7e0
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 @
fa41d7e0
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 @
fa41d7e0
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 @
fa41d7e0
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