Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Litemall
Commits
c04a6ec2
Commit
c04a6ec2
authored
Dec 02, 2018
by
Junling Bu
Browse files
chore[litemall-admin-api]: 删除没有用的代码
parent
de2ef38d
Changes
3
Hide whitespace changes
Inline
Side-by-side
litemall-core/src/main/java/org/linlinjava/litemall/core/qcode/QCodeBase.java
deleted
100644 → 0
View file @
de2ef38d
package
org.linlinjava.litemall.core.qcode
;
import
cn.binarywang.wx.miniapp.api.WxMaService
;
import
me.chanjar.weixin.common.error.WxErrorException
;
import
org.linlinjava.litemall.core.storage.StorageService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
javax.imageio.ImageIO
;
import
java.awt.*
;
import
java.awt.image.BufferedImage
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.IOException
;
public
abstract
class
QCodeBase
{
@Autowired
protected
WxMaService
wxMaService
;
@Autowired
protected
StorageService
storageService
;
protected
abstract
String
getKeyName
(
String
id
);
protected
BufferedImage
getQCode
(
String
scene
,
String
page
)
{
//创建该商品的二维码
File
file
=
null
;
try
{
file
=
wxMaService
.
getQrcodeService
().
createWxaCodeUnlimit
(
scene
,
page
);
FileInputStream
inputStream
=
new
FileInputStream
(
file
);
BufferedImage
qrCodeImage
=
ImageIO
.
read
(
inputStream
);
return
qrCodeImage
;
}
catch
(
WxErrorException
|
IOException
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
protected
void
saveImage
(
String
id
,
byte
[]
imageData
)
{
// MultipartFile multipartFile = new MockMultipartFile(getKeyName(id), getKeyName(id), "image/jpeg", imageData);
// //存储分享图
// storageService.store(multipartFile, getKeyName(id));
}
/**
* 居中写文字
*
* @param baseImage
* @param textToWrite
* @param font
* @param color
* @param y
*/
protected
void
drawTextInImgCenter
(
BufferedImage
baseImage
,
String
textToWrite
,
Font
font
,
Color
color
,
int
y
)
{
Graphics2D
g2D
=
(
Graphics2D
)
baseImage
.
getGraphics
();
g2D
.
setColor
(
color
);
g2D
.
setFont
(
font
);
g2D
.
setRenderingHint
(
RenderingHints
.
KEY_ANTIALIASING
,
RenderingHints
.
VALUE_ANTIALIAS_ON
);
// 计算文字长度,计算居中的x点坐标
FontMetrics
fm
=
g2D
.
getFontMetrics
(
font
);
int
textWidth
=
fm
.
stringWidth
(
textToWrite
);
int
widthX
=
(
baseImage
.
getWidth
()
-
textWidth
)
/
2
;
// 表示这段文字在图片上的位置(x,y) .第一个是你设置的内容。
g2D
.
drawString
(
textToWrite
,
widthX
,
y
);
// 释放对象
g2D
.
dispose
();
}
/**
* 写上文字
*
* @param baseImage
* @param textToWrite
* @param font
* @param color
* @param x
* @param y
*/
protected
void
drawTextInImg
(
BufferedImage
baseImage
,
String
textToWrite
,
Font
font
,
Color
color
,
int
x
,
int
y
)
{
Graphics2D
g2D
=
(
Graphics2D
)
baseImage
.
getGraphics
();
g2D
.
setColor
(
color
);
g2D
.
setFont
(
font
);
g2D
.
setRenderingHint
(
RenderingHints
.
KEY_ANTIALIASING
,
RenderingHints
.
VALUE_ANTIALIAS_ON
);
g2D
.
drawString
(
textToWrite
,
x
,
y
);
g2D
.
dispose
();
}
/**
* 画中画
*
* @param baseImage
* @param imageToWrite
* @param x
* @param y
* @param width
* @param height
*/
protected
void
drawImgInImg
(
BufferedImage
baseImage
,
BufferedImage
imageToWrite
,
int
x
,
int
y
,
int
width
,
int
height
)
{
Graphics2D
g2D
=
(
Graphics2D
)
baseImage
.
getGraphics
();
g2D
.
drawImage
(
imageToWrite
,
x
,
y
,
width
,
height
,
null
);
g2D
.
dispose
();
}
}
litemall-core/src/main/java/org/linlinjava/litemall/core/qcode/QCodeGoodShare.java
deleted
100644 → 0
View file @
de2ef38d
package
org.linlinjava.litemall.core.qcode
;
import
org.linlinjava.litemall.core.system.SystemConfig
;
import
org.springframework.core.io.ClassPathResource
;
import
javax.imageio.ImageIO
;
import
java.awt.*
;
import
java.awt.image.BufferedImage
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.net.URL
;
public
class
QCodeGoodShare
extends
QCodeBase
{
@Override
protected
String
getKeyName
(
String
id
)
{
return
"GOOD_QCODE_"
+
id
+
".jpg"
;
}
/**
* 创建商品分享图
*
* @param goodId
* @param goodPicUrl
* @param goodName
*/
public
void
createGoodShareImage
(
String
goodId
,
String
goodPicUrl
,
String
goodName
)
{
if
(!
SystemConfig
.
isAutoCreateShareImage
())
return
;
BufferedImage
qrCodeImage
=
getQCode
(
"goods,"
+
goodId
,
"pages/index/index"
);
//将商品图片,商品名字,商城名字画到模版图中
byte
[]
imageData
=
new
byte
[
0
];
try
{
imageData
=
drawPicture
(
qrCodeImage
,
goodPicUrl
,
goodName
,
SystemConfig
.
getMallName
());
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
saveImage
(
goodId
,
imageData
);
}
/**
* 将商品图片,商品名字画到模版图中
*
* @param qrCodeImage 二维码图片
* @param goodPicUrl 商品图片地址
* @param goodName 商品名称
* @return
* @throws IOException
*/
private
byte
[]
drawPicture
(
BufferedImage
qrCodeImage
,
String
goodPicUrl
,
String
goodName
,
String
shopName
)
throws
IOException
{
//底图
ClassPathResource
redResource
=
new
ClassPathResource
(
"back.jpg"
);
BufferedImage
red
=
ImageIO
.
read
(
redResource
.
getInputStream
());
//商品图片
URL
goodPic
=
new
URL
(
goodPicUrl
);
BufferedImage
goodImage
=
ImageIO
.
read
(
goodPic
);
// --- 画图 ---
//底层空白 bufferedImage
BufferedImage
baseImage
=
new
BufferedImage
(
red
.
getWidth
(),
red
.
getHeight
(),
BufferedImage
.
TYPE_4BYTE_ABGR_PRE
);
//画上图片
drawImgInImg
(
baseImage
,
red
,
0
,
0
,
red
.
getWidth
(),
red
.
getHeight
());
//画上商品图片
drawImgInImg
(
baseImage
,
goodImage
,
56
,
135
,
720
,
720
);
//画上小程序二维码
drawImgInImg
(
baseImage
,
qrCodeImage
,
442
,
1006
,
340
,
340
);
Font
font
=
new
Font
(
"Microsoft YaHei"
,
Font
.
PLAIN
,
42
);
Color
color
=
new
Color
(
167
,
136
,
69
);
//写上商品名称
drawTextInImg
(
baseImage
,
goodName
,
font
,
color
,
112
,
955
);
//写上商城名称
drawTextInImgCenter
(
baseImage
,
shopName
,
font
,
color
,
98
);
//转jpg
BufferedImage
result
=
new
BufferedImage
(
baseImage
.
getWidth
(),
baseImage
.
getHeight
(),
BufferedImage
.
TYPE_3BYTE_BGR
);
result
.
getGraphics
().
drawImage
(
baseImage
,
0
,
0
,
null
);
ByteArrayOutputStream
bs
=
new
ByteArrayOutputStream
();
ImageIO
.
write
(
result
,
"jpg"
,
bs
);
//最终byte数组
return
bs
.
toByteArray
();
}
}
litemall-core/src/main/java/org/linlinjava/litemall/core/qcode/QCodeGroupon.java
deleted
100644 → 0
View file @
de2ef38d
package
org.linlinjava.litemall.core.qcode
;
import
org.linlinjava.litemall.core.system.SystemConfig
;
import
org.linlinjava.litemall.db.domain.LitemallGroupon
;
import
org.springframework.core.io.ClassPathResource
;
import
javax.imageio.ImageIO
;
import
java.awt.*
;
import
java.awt.image.BufferedImage
;
import
java.io.ByteArrayOutputStream
;
import
java.io.FileNotFoundException
;
import
java.io.IOException
;
import
java.net.URL
;
public
class
QCodeGroupon
extends
QCodeBase
{
@Override
protected
String
getKeyName
(
String
id
)
{
return
null
;
}
public
void
createGrouponShareImage
(
String
goodName
,
String
goodPicUrl
,
LitemallGroupon
groupon
)
{
try
{
BufferedImage
qrCodeImage
=
getQCode
(
"groupon,"
+
groupon
.
getId
(),
"pages/index/index"
);
//将商品图片,商品名字,商城名字画到模版图中
byte
[]
imageData
=
drawPicture
(
qrCodeImage
,
goodPicUrl
,
goodName
,
SystemConfig
.
getMallName
());
saveImage
(
groupon
.
getId
().
toString
(),
imageData
);
}
catch
(
FileNotFoundException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
/**
* 将商品图片,商品名字画到模版图中
*
* @param qrCodeImage 二维码图片
* @param goodPicUrl 商品图片地址
* @param goodName 商品名称
* @return
* @throws IOException
*/
private
byte
[]
drawPicture
(
BufferedImage
qrCodeImage
,
String
goodPicUrl
,
String
goodName
,
String
shopName
)
throws
IOException
{
//底图
ClassPathResource
redResource
=
new
ClassPathResource
(
"back.jpg"
);
BufferedImage
red
=
ImageIO
.
read
(
redResource
.
getInputStream
());
//商品图片
URL
goodPic
=
new
URL
(
goodPicUrl
);
BufferedImage
goodImage
=
ImageIO
.
read
(
goodPic
);
// --- 画图 ---
//底层空白 bufferedImage
BufferedImage
baseImage
=
new
BufferedImage
(
red
.
getWidth
(),
red
.
getHeight
(),
BufferedImage
.
TYPE_4BYTE_ABGR_PRE
);
//画上图片
drawImgInImg
(
baseImage
,
red
,
0
,
0
,
red
.
getWidth
(),
red
.
getHeight
());
//画上商品图片
drawImgInImg
(
baseImage
,
goodImage
,
56
,
135
,
720
,
720
);
//画上小程序二维码
drawImgInImg
(
baseImage
,
qrCodeImage
,
442
,
1006
,
340
,
340
);
Font
font
=
new
Font
(
"Microsoft YaHei"
,
Font
.
PLAIN
,
42
);
Color
color
=
new
Color
(
167
,
136
,
69
);
//写上商品名称
drawTextInImg
(
baseImage
,
goodName
,
font
,
color
,
112
,
955
);
//写上商城名称
drawTextInImgCenter
(
baseImage
,
shopName
,
font
,
color
,
98
);
//转jpg
BufferedImage
result
=
new
BufferedImage
(
baseImage
.
getWidth
(),
baseImage
.
getHeight
(),
BufferedImage
.
TYPE_3BYTE_BGR
);
result
.
getGraphics
().
drawImage
(
baseImage
,
0
,
0
,
null
);
ByteArrayOutputStream
bs
=
new
ByteArrayOutputStream
();
ImageIO
.
write
(
result
,
"jpg"
,
bs
);
//最终byte数组
return
bs
.
toByteArray
();
}
}
Write
Preview
Supports
Markdown
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