Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Q
qk_backend
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
quanku
qk_backend
Commits
40db8101
Commit
40db8101
authored
Nov 13, 2024
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
上传商品sku
parent
84f93740
Changes
13
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
2730 additions
and
1 deletion
+2730
-1
ch-admin-api/src/main/java/com/wwdz/ch/admin/config/ShiroConfig.java
...i/src/main/java/com/wwdz/ch/admin/config/ShiroConfig.java
+1
-1
ch-admin-api/src/main/java/com/wwdz/ch/admin/controller/SysItemSkuController.java
...va/com/wwdz/ch/admin/controller/SysItemSkuController.java
+41
-0
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysItemSkuServiceImpl.java
...in/java/com/wwdz/ch/admin/impl/SysItemSkuServiceImpl.java
+111
-0
ch-admin-api/src/main/java/com/wwdz/ch/admin/service/SysItemSkuService.java
...ain/java/com/wwdz/ch/admin/service/SysItemSkuService.java
+15
-0
ch-core/src/main/java/com/wwdz/ch/core/util/MediaUtil.java
ch-core/src/main/java/com/wwdz/ch/core/util/MediaUtil.java
+6
-0
ch-core/src/main/java/com/wwdz/ch/core/util/StringUtil.java
ch-core/src/main/java/com/wwdz/ch/core/util/StringUtil.java
+11
-0
ch-dao/src/main/java/com/wwdz/ch/db/dao/distribution/ItemSkuDao.java
...main/java/com/wwdz/ch/db/dao/distribution/ItemSkuDao.java
+14
-0
ch-dao/src/main/java/com/wwdz/ch/db/domain/distribution/ItemSku.java
...main/java/com/wwdz/ch/db/domain/distribution/ItemSku.java
+329
-0
ch-dao/src/main/java/com/wwdz/ch/db/domain/distribution/ItemSkuExample.java
...va/com/wwdz/ch/db/domain/distribution/ItemSkuExample.java
+1521
-0
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/distribution/ItemSkuRequestDto.java
...wdz/ch/db/dto/request/distribution/ItemSkuRequestDto.java
+68
-0
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/ItemSkuDaoImpl.java
...java/com/wwdz/ch/db/impl/distribution/ItemSkuDaoImpl.java
+40
-0
ch-dao/src/main/java/com/wwdz/ch/db/mapper/distribution/ItemSkuMapper.java
...ava/com/wwdz/ch/db/mapper/distribution/ItemSkuMapper.java
+84
-0
ch-dao/src/main/resources/com/wwdz/ch/db/mapper/distribution/ItemSkuMapper.xml
...rces/com/wwdz/ch/db/mapper/distribution/ItemSkuMapper.xml
+489
-0
No files found.
ch-admin-api/src/main/java/com/wwdz/ch/admin/config/ShiroConfig.java
View file @
40db8101
...
...
@@ -129,7 +129,7 @@ public class ShiroConfig {
filterChainDefinitionMap
.
put
(
"/admin/sysFinance/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/admin/groupPurchase/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/admin/invitationCode/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/admin/itemSku/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/admin/invitationCode/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/admin/**"
,
"anon"
);
...
...
ch-admin-api/src/main/java/com/wwdz/ch/admin/controller/SysItemSkuController.java
0 → 100644
View file @
40db8101
package
com.wwdz.ch.admin.controller
;
import
com.alibaba.fastjson.JSON
;
import
com.wwdz.ch.admin.service.SysItemSkuService
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.dto.request.distribution.ItemSkuRequestDto
;
import
com.xxdxxs.service.FormHandler
;
import
com.xxdxxs.validation.Validator
;
import
io.swagger.annotations.ApiOperation
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
@RequestMapping
(
"/admin/itemSku"
)
public
class
SysItemSkuController
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
SysItemSkuController
.
class
);
@Autowired
SysItemSkuService
sysItemSkuService
;
@ApiOperation
(
value
=
"上传商品sku"
)
@PostMapping
(
"/create"
)
public
Result
create
(
@RequestBody
ItemSkuRequestDto
dto
)
{
logger
.
info
(
"上传商品sku, 请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
Validator
validator
=
new
Validator
(
FormHandler
.
ofEntity
(
dto
));
validator
.
set
(
"itemId"
,
"商品id"
).
must
().
number
()
.
set
(
"name"
,
"名称"
).
must
().
string
()
.
end
();
if
(!
validator
.
isValid
())
{
return
Result
.
failed
(
validator
.
getErrorInfo
());
}
return
sysItemSkuService
.
create
(
dto
);
}
}
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysItemSkuServiceImpl.java
0 → 100644
View file @
40db8101
package
com.wwdz.ch.admin.impl
;
import
com.wwdz.ch.admin.service.SysItemSkuService
;
import
com.wwdz.ch.core.consts.CommConsts
;
import
com.wwdz.ch.core.consts.MediaTypeEnum
;
import
com.wwdz.ch.core.storage.QiniuStorage
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.util.MediaUtil
;
import
com.wwdz.ch.core.util.PriceUtil
;
import
com.wwdz.ch.core.util.UUID
;
import
com.wwdz.ch.db.dao.distribution.ItemSkuDao
;
import
com.wwdz.ch.db.domain.distribution.ItemSku
;
import
com.wwdz.ch.db.dto.request.distribution.ItemSkuRequestDto
;
import
com.xxdxxs.utils.CommonUtils
;
import
com.xxdxxs.utils.EntityMapper
;
import
com.xxdxxs.utils.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.imageio.ImageIO
;
import
java.awt.image.BufferedImage
;
import
java.io.ByteArrayInputStream
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.URL
;
import
java.util.Arrays
;
import
java.util.Date
;
@Service
public
class
SysItemSkuServiceImpl
implements
SysItemSkuService
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
SysItemSkuServiceImpl
.
class
);
@Autowired
ItemSkuDao
itemSkuDao
;
@Autowired
QiniuStorage
qiniuStorage
;
@Override
public
Result
create
(
ItemSkuRequestDto
dto
)
{
try
{
ItemSku
itemSku
=
new
ItemSku
();
EntityMapper
.
copyAttribute
(
dto
,
itemSku
);
itemSku
.
setSkuCode
(
UUID
.
fastUUID
().
toString
(
true
));
itemSku
.
setPrice
(
PriceUtil
.
convertPriceFromStr
(
StringUtils
.
isEmpty
(
dto
.
getPrice
())?
"0"
:
dto
.
getPrice
()));
itemSku
.
setImages
(
dto
.
getImages
());
if
(
StringUtils
.
hasLength
(
dto
.
getVideos
()))
{
itemSku
.
setVideos
(
getVideosImage
(
dto
.
getVideos
()));
}
Date
now
=
new
Date
();
itemSku
.
setCreateTime
(
now
);
itemSku
.
setUpdateTime
(
now
);
itemSku
.
setIsDeleted
(
false
);
itemSkuDao
.
insert
(
itemSku
);
return
Result
.
success
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"上传商品sku error : {}"
,
e
);
}
return
Result
.
failed
();
}
private
String
getVideosImage
(
String
videos
)
{
String
video
=
""
;
String
[]
images
=
videos
.
split
(
";"
);
StringBuffer
stringBuffer
=
new
StringBuffer
();
Arrays
.
stream
(
images
).
forEach
(
image
->
{
if
(
stringBuffer
.
length
()
!=
0
)
{
stringBuffer
.
append
(
";"
);
}
try
{
String
cutImage
=
MediaUtil
.
getImageByCutVedio
(
image
);
logger
.
info
(
">>>>>> 截取视频第一帧图片url = {} <<<<<<<"
,
cutImage
);
URL
url
=
new
URL
(
cutImage
);
InputStream
inputStream
=
url
.
openStream
();
BufferedImage
bufferedImage
=
ImageIO
.
read
(
inputStream
);
String
keyName
=
CommConsts
.
UPLOAD_PRE_DIRECTORY
+
CommonUtils
.
getUUID
()
+
"_"
+
bufferedImage
.
getWidth
()
+
"x"
+
bufferedImage
.
getHeight
()
+
"."
+
MediaTypeEnum
.
IMAGE_JPG
.
getExt
();
InputStream
imageStream
=
bufferedImageToInputStream
(
bufferedImage
,
MediaTypeEnum
.
IMAGE_JPG
.
getExt
());
qiniuStorage
.
store
(
imageStream
,
1
,
MediaTypeEnum
.
IMAGE_JPG
.
getMime
(),
keyName
);
String
urlOfSize
=
qiniuStorage
.
generateUrl
(
keyName
);
stringBuffer
.
append
(
image
).
append
(
","
).
append
(
urlOfSize
);
}
catch
(
Exception
e
)
{
stringBuffer
.
append
(
image
);
logger
.
error
(
"视频图片上传失败"
,
e
);
}
});
video
=
stringBuffer
.
toString
();
return
video
;
}
/**
* 将BufferedImage转换为InputStream
*
* @param image 数据源
* @param type 图片格式
* @return
*/
private
static
InputStream
bufferedImageToInputStream
(
BufferedImage
image
,
String
type
)
{
try
(
ByteArrayOutputStream
os
=
new
ByteArrayOutputStream
())
{
ImageIO
.
write
(
image
,
type
,
os
);
return
new
ByteArrayInputStream
(
os
.
toByteArray
());
}
catch
(
IOException
e
)
{
logger
.
error
(
"bufferedImageToInputStream 出错,原因: {}"
,
e
);
}
return
null
;
}
}
ch-admin-api/src/main/java/com/wwdz/ch/admin/service/SysItemSkuService.java
0 → 100644
View file @
40db8101
package
com.wwdz.ch.admin.service
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.dto.request.distribution.ItemSkuRequestDto
;
public
interface
SysItemSkuService
{
/**
* 上传商品sku
* @param dto
* @return
*/
Result
create
(
ItemSkuRequestDto
dto
);
}
ch-core/src/main/java/com/wwdz/ch/core/util/MediaUtil.java
View file @
40db8101
...
...
@@ -231,6 +231,9 @@ public class MediaUtil {
return
sb
.
toString
();
}
public
static
void
main
(
String
[]
args
)
{
String
vedioUrl
=
"https://cdn.wanwudezhi.com/quanku/video/12d8a09d5ff14ec1af6604c3814c614a.mp4"
;
String
url
=
getImageByCutVedio
(
vedioUrl
);
...
...
@@ -238,4 +241,7 @@ public class MediaUtil {
ImageInfo
imageInfo
=
getImageSize
(
url
);
System
.
out
.
println
(
imageInfo
.
formartString
());
}
}
ch-core/src/main/java/com/wwdz/ch/core/util/StringUtil.java
View file @
40db8101
...
...
@@ -52,4 +52,15 @@ public class StringUtil {
return
t
->
seen
.
putIfAbsent
(
keyExtractor
.
apply
(
t
),
Boolean
.
TRUE
)
==
null
;
}
/**
* 创建sku编码
* 商品id
* @return
*/
public
static
String
createSkuCode
(
long
itemId
)
{
/* String categoryIdStr = String.format("%03d", );
String skuCode = itemId + categoryIdStr + numStr;*/
return
null
;
}
}
ch-dao/src/main/java/com/wwdz/ch/db/dao/distribution/ItemSkuDao.java
0 → 100644
View file @
40db8101
package
com.wwdz.ch.db.dao.distribution
;
import
com.wwdz.ch.db.domain.distribution.ItemSku
;
import
java.util.List
;
public
interface
ItemSkuDao
{
boolean
insert
(
ItemSku
itemSku
);
List
<
ItemSku
>
findByItemId
(
long
itemId
);
boolean
update
(
ItemSku
itemSku
);
}
ch-dao/src/main/java/com/wwdz/ch/db/domain/distribution/ItemSku.java
0 → 100644
View file @
40db8101
This diff is collapsed.
Click to expand it.
ch-dao/src/main/java/com/wwdz/ch/db/domain/distribution/ItemSkuExample.java
0 → 100644
View file @
40db8101
This diff is collapsed.
Click to expand it.
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/distribution/ItemSkuRequestDto.java
0 → 100644
View file @
40db8101
package
com.wwdz.ch.db.dto.request.distribution
;
import
com.wwdz.ch.db.dto.request.BaseRequestDto
;
import
com.xxdxxs.entity.Entity
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
ItemSkuRequestDto
extends
BaseRequestDto
implements
Entity
{
private
Long
id
;
/**
* sku编码
*/
private
String
skuCode
;
/**
* 名称
*/
private
String
name
;
/**
* 商品id
*/
private
Long
itemId
;
/**
* 默认图
*/
private
String
defaultImage
;
/**
* 价格,单位元
*/
private
String
price
;
/**
* 删除标识
*/
private
Boolean
isDeleted
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
/**
* 图片
*/
private
String
images
;
/**
* 视频
*/
private
String
videos
;
/**
* 描述
*/
private
String
description
;
}
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/ItemSkuDaoImpl.java
0 → 100644
View file @
40db8101
package
com.wwdz.ch.db.impl.distribution
;
import
com.wwdz.ch.db.dao.distribution.ItemSkuDao
;
import
com.wwdz.ch.db.domain.distribution.ItemSku
;
import
com.wwdz.ch.db.domain.distribution.ItemSkuExample
;
import
com.wwdz.ch.db.mapper.distribution.ItemSkuMapper
;
import
com.xxdxxs.db.component.JdbcHelper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
@Repository
public
class
ItemSkuDaoImpl
implements
ItemSkuDao
{
@Autowired
ItemSkuMapper
itemSkuMapper
;
@Override
public
boolean
insert
(
ItemSku
itemSku
)
{
return
itemSkuMapper
.
insert
(
itemSku
)
>
0
;
}
@Override
public
List
<
ItemSku
>
findByItemId
(
long
itemId
)
{
ItemSkuExample
example
=
new
ItemSkuExample
();
ItemSkuExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andItemIdEqualTo
(
itemId
);
example
.
setOrderByClause
(
"create_time desc"
);
return
itemSkuMapper
.
selectByExample
(
example
);
}
@Override
public
boolean
update
(
ItemSku
itemSku
)
{
ItemSkuExample
example
=
new
ItemSkuExample
();
ItemSkuExample
.
Criteria
criteria
=
example
.
createCriteria
();
JdbcHelper
.
ifPresent
(
itemSku
.
getItemId
(),
criteria
::
andItemIdEqualTo
);
JdbcHelper
.
ifPresent
(
itemSku
.
getSkuCode
(),
criteria
::
andSkuCodeEqualTo
);
return
itemSkuMapper
.
updateByExampleSelective
(
itemSku
,
example
)
>
0
;
}
}
ch-dao/src/main/java/com/wwdz/ch/db/mapper/distribution/ItemSkuMapper.java
0 → 100644
View file @
40db8101
package
com.wwdz.ch.db.mapper.distribution
;
import
com.wwdz.ch.db.domain.distribution.ItemSku
;
import
com.wwdz.ch.db.domain.distribution.ItemSkuExample
;
import
java.util.List
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
@Mapper
public
interface
ItemSkuMapper
{
long
countByExample
(
ItemSkuExample
example
);
int
deleteByExample
(
ItemSkuExample
example
);
int
deleteByPrimaryKey
(
Long
id
);
int
insert
(
ItemSku
record
);
int
insertSelective
(
ItemSku
record
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table item_sku
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
ItemSku
selectOneByExample
(
ItemSkuExample
example
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table item_sku
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
ItemSku
selectOneByExampleSelective
(
@Param
(
"example"
)
ItemSkuExample
example
,
@Param
(
"selective"
)
ItemSku
.
Column
...
selective
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table item_sku
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
ItemSku
selectOneByExampleWithBLOBs
(
ItemSkuExample
example
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table item_sku
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
List
<
ItemSku
>
selectByExampleSelective
(
@Param
(
"example"
)
ItemSkuExample
example
,
@Param
(
"selective"
)
ItemSku
.
Column
...
selective
);
List
<
ItemSku
>
selectByExampleWithBLOBs
(
ItemSkuExample
example
);
List
<
ItemSku
>
selectByExample
(
ItemSkuExample
example
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table item_sku
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
ItemSku
selectByPrimaryKeySelective
(
@Param
(
"id"
)
Long
id
,
@Param
(
"selective"
)
ItemSku
.
Column
...
selective
);
ItemSku
selectByPrimaryKey
(
Long
id
);
int
updateByExampleSelective
(
@Param
(
"record"
)
ItemSku
record
,
@Param
(
"example"
)
ItemSkuExample
example
);
int
updateByExampleWithBLOBs
(
@Param
(
"record"
)
ItemSku
record
,
@Param
(
"example"
)
ItemSkuExample
example
);
int
updateByExample
(
@Param
(
"record"
)
ItemSku
record
,
@Param
(
"example"
)
ItemSkuExample
example
);
int
updateByPrimaryKeySelective
(
ItemSku
record
);
int
updateByPrimaryKeyWithBLOBs
(
ItemSku
record
);
int
updateByPrimaryKey
(
ItemSku
record
);
}
\ No newline at end of file
ch-dao/src/main/resources/com/wwdz/ch/db/mapper/distribution/ItemSkuMapper.xml
0 → 100644
View file @
40db8101
This diff is collapsed.
Click to expand it.
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