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
64a273d0
Commit
64a273d0
authored
Oct 17, 2024
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
盲盒
parent
326120bb
Changes
20
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
2110 additions
and
3 deletions
+2110
-3
ch-core/pom.xml
ch-core/pom.xml
+11
-1
ch-core/src/main/java/com/wwdz/ch/core/consts/DistributionEnum.java
...c/main/java/com/wwdz/ch/core/consts/DistributionEnum.java
+1
-0
ch-core/src/main/java/com/wwdz/ch/core/consts/ResultCode.java
...ore/src/main/java/com/wwdz/ch/core/consts/ResultCode.java
+2
-0
ch-core/src/main/java/com/wwdz/ch/core/util/QRCodeUtil.java
ch-core/src/main/java/com/wwdz/ch/core/util/QRCodeUtil.java
+164
-0
ch-dao/src/main/java/com/wwdz/ch/db/dao/ItemTagOperateRecordDao.java
...main/java/com/wwdz/ch/db/dao/ItemTagOperateRecordDao.java
+24
-0
ch-dao/src/main/java/com/wwdz/ch/db/domain/ItemTagOperateRecord.java
...main/java/com/wwdz/ch/db/domain/ItemTagOperateRecord.java
+284
-0
ch-dao/src/main/java/com/wwdz/ch/db/domain/ItemTagOperateRecordExample.java
...va/com/wwdz/ch/db/domain/ItemTagOperateRecordExample.java
+1105
-0
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/ItemTagOperateRecordRequestDto.java
...wdz/ch/db/dto/request/ItemTagOperateRecordRequestDto.java
+44
-0
ch-dao/src/main/java/com/wwdz/ch/db/impl/ItemTagOperateRecordDaoImpl.java
...java/com/wwdz/ch/db/impl/ItemTagOperateRecordDaoImpl.java
+37
-0
ch-dao/src/main/java/com/wwdz/ch/db/mapper/ItemTagOperateRecordMapper.java
...ava/com/wwdz/ch/db/mapper/ItemTagOperateRecordMapper.java
+84
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/config/WebMvcConfiguration.java
.../main/java/com/wwdz/ch/wx/config/WebMvcConfiguration.java
+1
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/request/ItemTagOperateRequestDto.java
...m/wwdz/ch/wx/entity/request/ItemTagOperateRequestDto.java
+36
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/ItemTagOperateRecordVo.java
...java/com/wwdz/ch/wx/entity/vo/ItemTagOperateRecordVo.java
+10
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/ItemTagPrintInfo.java
.../main/java/com/wwdz/ch/wx/entity/vo/ItemTagPrintInfo.java
+16
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/ItemTagOperateServiceImpl.java
...n/java/com/wwdz/ch/wx/impl/ItemTagOperateServiceImpl.java
+124
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/SupplierItemServiceImpl.java
...wwdz/ch/wx/impl/distribution/SupplierItemServiceImpl.java
+46
-2
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/ItemTagOperateService.java
...in/java/com/wwdz/ch/wx/service/ItemTagOperateService.java
+26
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/SupplierItemService.java
.../wwdz/ch/wx/service/distribution/SupplierItemService.java
+16
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/distribution/ItemTagOperateController.java
...wwdz/ch/wx/web/distribution/ItemTagOperateController.java
+57
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/distribution/SupplierItemController.java
...m/wwdz/ch/wx/web/distribution/SupplierItemController.java
+22
-0
No files found.
ch-core/pom.xml
View file @
64a273d0
...
@@ -43,6 +43,16 @@
...
@@ -43,6 +43,16 @@
<artifactId>
qcloudsms
</artifactId>
<artifactId>
qcloudsms
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
com.google.zxing
</groupId>
<artifactId>
javase
</artifactId>
<version>
3.2.1
</version>
</dependency>
<dependency>
<groupId>
com.google.zxing
</groupId>
<artifactId>
core
</artifactId>
<version>
3.2.1
</version>
</dependency>
<dependency>
<dependency>
<groupId>
com.qcloud
</groupId>
<groupId>
com.qcloud
</groupId>
<artifactId>
cos_api
</artifactId>
<artifactId>
cos_api
</artifactId>
...
...
ch-core/src/main/java/com/wwdz/ch/core/consts/DistributionEnum.java
View file @
64a273d0
...
@@ -58,6 +58,7 @@ public class DistributionEnum {
...
@@ -58,6 +58,7 @@ public class DistributionEnum {
AUCTION_PERFORMANCE
(
5
,
"竞拍专场"
),
AUCTION_PERFORMANCE
(
5
,
"竞拍专场"
),
GROUP_PURCHASE
(
6
,
"团购"
),
GROUP_PURCHASE
(
6
,
"团购"
),
EXCHANGE
(
7
,
"交换"
),
EXCHANGE
(
7
,
"交换"
),
BLACK
(
8
,
"盲盒"
),
;
;
private
int
code
;
private
int
code
;
...
...
ch-core/src/main/java/com/wwdz/ch/core/consts/ResultCode.java
View file @
64a273d0
...
@@ -64,6 +64,8 @@ public enum ResultCode {
...
@@ -64,6 +64,8 @@ public enum ResultCode {
NOT_CONFIRM_PRICE_FOR_SEND
(
30005
,
"请先确认是否满意货品的初步估价"
),
NOT_CONFIRM_PRICE_FOR_SEND
(
30005
,
"请先确认是否满意货品的初步估价"
),
PAY_FAILED
(
30010
,
"支付失败"
),
PAY_FAILED
(
30010
,
"支付失败"
),
ITEM_UPLOADED
(
41000
,
"商品已经上架过"
),
;
;
int
code
;
int
code
;
...
...
ch-core/src/main/java/com/wwdz/ch/core/util/QRCodeUtil.java
0 → 100644
View file @
64a273d0
package
com.wwdz.ch.core.util
;
import
com.google.zxing.BarcodeFormat
;
import
com.google.zxing.EncodeHintType
;
import
com.google.zxing.MultiFormatWriter
;
import
com.google.zxing.WriterException
;
import
com.google.zxing.common.BitMatrix
;
import
com.google.zxing.qrcode.decoder.ErrorCorrectionLevel
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
sun.misc.BASE64Encoder
;
import
javax.imageio.ImageIO
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.swing.filechooser.FileSystemView
;
import
java.awt.*
;
import
java.awt.image.BufferedImage
;
import
java.io.ByteArrayOutputStream
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.util.HashMap
;
import
java.util.Map
;
public
class
QRCodeUtil
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
QRCodeUtil
.
class
);
//CODE_WIDTH:二维码宽度,单位像素
private
static
final
int
CODE_WIDTH
=
400
;
//CODE_HEIGHT:二维码高度,单位像素
private
static
final
int
CODE_HEIGHT
=
400
;
//FRONT_COLOR:二维码前景色,0x000000 表示黑色
private
static
final
int
FRONT_COLOR
=
0x000000
;
//BACKGROUND_COLOR:二维码背景色,0xFFFFFF 表示白色
//演示用 16 进制表示,和前端页面 CSS 的取色是一样的,注意前后景颜色应该对比明显,如常见的黑白
private
static
final
int
BACKGROUND_COLOR
=
0xFFFFFF
;
// 中间图片的路径
private
static
final
String
imagePath
=
"resources/images/**.png"
;
public
static
void
createCodeToFile
(
String
content
,
File
codeImgFileSaveDir
,
String
fileName
)
{
try
{
if
(
StringUtils
.
isBlank
(
content
)
||
StringUtils
.
isBlank
(
fileName
))
{
return
;
}
content
=
content
.
trim
();
if
(
codeImgFileSaveDir
==
null
||
codeImgFileSaveDir
.
isFile
())
{
//二维码图片存在目录为空,默认放在桌面...
codeImgFileSaveDir
=
FileSystemView
.
getFileSystemView
().
getHomeDirectory
();
}
if
(!
codeImgFileSaveDir
.
exists
())
{
//二维码图片存在目录不存在,开始创建...
codeImgFileSaveDir
.
mkdirs
();
}
//核心代码-生成二维码
BufferedImage
bufferedImage
=
getBufferedImage
(
content
);
File
codeImgFile
=
new
File
(
codeImgFileSaveDir
,
fileName
);
ImageIO
.
write
(
bufferedImage
,
"png"
,
codeImgFile
);
logger
.
info
(
"二维码图片生成成功:"
+
codeImgFile
.
getPath
());
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
/**
* 生成二维码并输出到输出流, 通常用于输出到网页上进行显示,输出到网页与输出到磁盘上的文件中,区别在于最后一句 ImageIO.write
* write(RenderedImage im,String formatName,File output):写到文件中
* write(RenderedImage im,String formatName,OutputStream output):输出到输出流中
* @param content :二维码内容
* @param outputStream :输出流,比如 HttpServletResponse 的 getOutputStream
*/
public
static
void
createCodeToBase64
(
String
content
,
OutputStream
outputStream
)
{
try
{
if
(
StringUtils
.
isBlank
(
content
))
{
return
;
}
content
=
content
.
trim
();
//核心代码-生成二维码
BufferedImage
bufferedImage
=
getBufferedImage
(
content
);
//区别就是这一句,输出到输出流中,如果第三个参数是 File,则输出到文件中
ImageIO
.
write
(
bufferedImage
,
"png"
,
outputStream
);
logger
.
info
(
"二维码图片生成到输出流成功..."
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
//这里是发到前端一个base64的字符串,
//前端 this.base64Data = "data:img/jpg;base64," + get_to_url.data.fxORCode 这样接受即可
public
static
String
createCodeToBase64
(
String
content
)
{
String
encode
=
null
;
try
{
if
(
StringUtils
.
isBlank
(
content
))
{
return
null
;
}
content
=
content
.
trim
();
//核心代码-生成二维码
BufferedImage
bufferedImage
=
getBufferedImage
(
content
);
ByteArrayOutputStream
byteArrayOutputStream
=
new
ByteArrayOutputStream
();
//区别就是这一句,输出到输出流中,如果第三个参数是 File,则输出到文件中
ImageIO
.
write
(
bufferedImage
,
"png"
,
byteArrayOutputStream
);
BASE64Encoder
base64Encoder
=
new
BASE64Encoder
();
encode
=
base64Encoder
.
encode
(
byteArrayOutputStream
.
toByteArray
());
logger
.
info
(
"二维码图片生成到输出流成功."
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
encode
;
}
//核心代码-生成二维码
public
static
BufferedImage
getBufferedImage
(
String
content
)
throws
WriterException
{
//com.google.zxing.EncodeHintType:编码提示类型,枚举类型
Map
<
EncodeHintType
,
Object
>
hints
=
new
HashMap
();
//EncodeHintType.CHARACTER_SET:设置字符编码类型
hints
.
put
(
EncodeHintType
.
CHARACTER_SET
,
"UTF-8"
);
//EncodeHintType.ERROR_CORRECTION:设置误差校正
//ErrorCorrectionLevel:误差校正等级,L = ~7% correction、M = ~15% correction、Q = ~25% correction、H = ~30% correction
//不设置时,默认为 L 等级,等级不一样,生成的图案不同,但扫描的结果是一样的
hints
.
put
(
EncodeHintType
.
ERROR_CORRECTION
,
ErrorCorrectionLevel
.
M
);
//EncodeHintType.MARGIN:设置二维码边距,单位像素,值越小,二维码距离四周越近
hints
.
put
(
EncodeHintType
.
MARGIN
,
1
);
MultiFormatWriter
multiFormatWriter
=
new
MultiFormatWriter
();
BitMatrix
bitMatrix
=
multiFormatWriter
.
encode
(
content
,
BarcodeFormat
.
QR_CODE
,
CODE_WIDTH
,
CODE_HEIGHT
,
hints
);
BufferedImage
bufferedImage
=
new
BufferedImage
(
CODE_WIDTH
,
CODE_HEIGHT
,
BufferedImage
.
TYPE_INT_BGR
);
for
(
int
x
=
0
;
x
<
CODE_WIDTH
;
x
++)
{
for
(
int
y
=
0
;
y
<
CODE_HEIGHT
;
y
++)
{
bufferedImage
.
setRGB
(
x
,
y
,
bitMatrix
.
get
(
x
,
y
)
?
FRONT_COLOR
:
BACKGROUND_COLOR
);
}
}
//QRImgCenter(bufferedImage);//如果需要添加中间小图标,这里放开即可
return
bufferedImage
;
}
//创建中间图片
private
static
BufferedImage
QRImgCenter
(
BufferedImage
bufferedImage
)
throws
IOException
{
ServletRequestAttributes
attr
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
HttpServletRequest
request
=
attr
.
getRequest
();
// 得到一个Graphics2D对象,并将其设置为输出图像
Graphics2D
graphics2D
=
bufferedImage
.
createGraphics
();
graphics2D
.
drawImage
(
bufferedImage
,
0
,
0
,
null
);
// 设置中间图片
BufferedImage
watermarkImage
=
ImageIO
.
read
(
new
File
(
request
.
getServletContext
().
getRealPath
(
"/"
)
+
imagePath
));
int
watermarkWidth
=
watermarkImage
.
getWidth
();
int
watermarkHeight
=
watermarkImage
.
getHeight
();
int
x
=
(
bufferedImage
.
getWidth
()
-
watermarkWidth
)
/
2
;
int
y
=
(
bufferedImage
.
getHeight
()
-
watermarkHeight
)
/
2
;
graphics2D
.
drawImage
(
watermarkImage
,
x
,
y
,
null
);
graphics2D
.
drawString
(
""
,
x
,
y
);
return
bufferedImage
;
}
}
ch-dao/src/main/java/com/wwdz/ch/db/dao/ItemTagOperateRecordDao.java
0 → 100644
View file @
64a273d0
package
com.wwdz.ch.db.dao
;
import
com.wwdz.ch.db.domain.ItemTagOperateRecord
;
import
com.wwdz.ch.db.dto.request.ItemTagOperateRecordRequestDto
;
import
java.util.List
;
public
interface
ItemTagOperateRecordDao
{
/**
* 保存制作标签的记录
* @param itemTagOperateRecord
* @return
*/
int
insert
(
ItemTagOperateRecord
itemTagOperateRecord
);
/**
* 查询制作记录
* @param dto
* @return
*/
List
<
ItemTagOperateRecord
>
findByPage
(
ItemTagOperateRecordRequestDto
dto
);
}
ch-dao/src/main/java/com/wwdz/ch/db/domain/ItemTagOperateRecord.java
0 → 100644
View file @
64a273d0
This diff is collapsed.
Click to expand it.
ch-dao/src/main/java/com/wwdz/ch/db/domain/ItemTagOperateRecordExample.java
0 → 100644
View file @
64a273d0
This diff is collapsed.
Click to expand it.
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/ItemTagOperateRecordRequestDto.java
0 → 100644
View file @
64a273d0
package
com.wwdz.ch.db.dto.request
;
import
com.xxdxxs.entity.Entity
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
ItemTagOperateRecordRequestDto
extends
BaseRequestDto
implements
Entity
{
private
Long
id
;
/**
* 商品id
*/
private
Long
itemId
;
/**
* 类目id
*/
private
Integer
categoryId
;
/**
* 类目名称
*/
private
String
categoryName
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 操作人id
*/
private
Long
operatorId
;
/**
* 图片
*/
private
String
images
;
}
ch-dao/src/main/java/com/wwdz/ch/db/impl/ItemTagOperateRecordDaoImpl.java
0 → 100644
View file @
64a273d0
package
com.wwdz.ch.db.impl
;
import
com.github.pagehelper.PageHelper
;
import
com.wwdz.ch.db.dao.ItemTagOperateRecordDao
;
import
com.wwdz.ch.db.domain.ItemTagOperateRecord
;
import
com.wwdz.ch.db.domain.ItemTagOperateRecordExample
;
import
com.wwdz.ch.db.domain.distribution.DistributionOrderExample
;
import
com.wwdz.ch.db.dto.request.ItemTagOperateRecordRequestDto
;
import
com.wwdz.ch.db.mapper.ItemTagOperateRecordMapper
;
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
ItemTagOperateRecordDaoImpl
implements
ItemTagOperateRecordDao
{
@Autowired
ItemTagOperateRecordMapper
itemTagOperateRecordMapper
;
@Override
public
int
insert
(
ItemTagOperateRecord
itemTagOperateRecord
)
{
return
itemTagOperateRecordMapper
.
insert
(
itemTagOperateRecord
);
}
@Override
public
List
<
ItemTagOperateRecord
>
findByPage
(
ItemTagOperateRecordRequestDto
dto
)
{
ItemTagOperateRecordExample
example
=
new
ItemTagOperateRecordExample
();
ItemTagOperateRecordExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andOperatorIdEqualTo
(
dto
.
getOperatorId
());
example
.
setOrderByClause
(
"create_time desc"
);
PageHelper
.
startPage
(
dto
.
getPage
(),
dto
.
getLimit
());
return
itemTagOperateRecordMapper
.
selectByExampleWithBLOBs
(
example
);
}
}
ch-dao/src/main/java/com/wwdz/ch/db/mapper/ItemTagOperateRecordMapper.java
0 → 100644
View file @
64a273d0
package
com.wwdz.ch.db.mapper
;
import
com.wwdz.ch.db.domain.ItemTagOperateRecord
;
import
com.wwdz.ch.db.domain.ItemTagOperateRecordExample
;
import
java.util.List
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
@Mapper
public
interface
ItemTagOperateRecordMapper
{
long
countByExample
(
ItemTagOperateRecordExample
example
);
int
deleteByExample
(
ItemTagOperateRecordExample
example
);
int
deleteByPrimaryKey
(
Long
id
);
int
insert
(
ItemTagOperateRecord
record
);
int
insertSelective
(
ItemTagOperateRecord
record
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table item_tag_operate_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
ItemTagOperateRecord
selectOneByExample
(
ItemTagOperateRecordExample
example
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table item_tag_operate_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
ItemTagOperateRecord
selectOneByExampleSelective
(
@Param
(
"example"
)
ItemTagOperateRecordExample
example
,
@Param
(
"selective"
)
ItemTagOperateRecord
.
Column
...
selective
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table item_tag_operate_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
ItemTagOperateRecord
selectOneByExampleWithBLOBs
(
ItemTagOperateRecordExample
example
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table item_tag_operate_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
List
<
ItemTagOperateRecord
>
selectByExampleSelective
(
@Param
(
"example"
)
ItemTagOperateRecordExample
example
,
@Param
(
"selective"
)
ItemTagOperateRecord
.
Column
...
selective
);
List
<
ItemTagOperateRecord
>
selectByExampleWithBLOBs
(
ItemTagOperateRecordExample
example
);
List
<
ItemTagOperateRecord
>
selectByExample
(
ItemTagOperateRecordExample
example
);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table item_tag_operate_record
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
ItemTagOperateRecord
selectByPrimaryKeySelective
(
@Param
(
"id"
)
Long
id
,
@Param
(
"selective"
)
ItemTagOperateRecord
.
Column
...
selective
);
ItemTagOperateRecord
selectByPrimaryKey
(
Long
id
);
int
updateByExampleSelective
(
@Param
(
"record"
)
ItemTagOperateRecord
record
,
@Param
(
"example"
)
ItemTagOperateRecordExample
example
);
int
updateByExampleWithBLOBs
(
@Param
(
"record"
)
ItemTagOperateRecord
record
,
@Param
(
"example"
)
ItemTagOperateRecordExample
example
);
int
updateByExample
(
@Param
(
"record"
)
ItemTagOperateRecord
record
,
@Param
(
"example"
)
ItemTagOperateRecordExample
example
);
int
updateByPrimaryKeySelective
(
ItemTagOperateRecord
record
);
int
updateByPrimaryKeyWithBLOBs
(
ItemTagOperateRecord
record
);
int
updateByPrimaryKey
(
ItemTagOperateRecord
record
);
}
\ No newline at end of file
ch-wx-api/src/main/java/com/wwdz/ch/wx/config/WebMvcConfiguration.java
View file @
64a273d0
...
@@ -51,6 +51,7 @@ public class WebMvcConfiguration implements WebMvcConfigurer {
...
@@ -51,6 +51,7 @@ public class WebMvcConfiguration implements WebMvcConfigurer {
"/wx/exchange/findExchangeItem"
,
"/wx/specialPerformance/findInfos"
,
"/wx/specialPerformance/findItemList"
,
"/wx/exchange/findExchangeItem"
,
"/wx/specialPerformance/findInfos"
,
"/wx/specialPerformance/findItemList"
,
"/wx/groupPurchase/findList"
,
"/wx/groupPurchase/findItemDetail"
,
"/wx/exchangeApplyOrder/handleApplyOrder"
,
"/wx/supplierItem/findDiscountList"
"/wx/groupPurchase/findList"
,
"/wx/groupPurchase/findItemDetail"
,
"/wx/exchangeApplyOrder/handleApplyOrder"
,
"/wx/supplierItem/findDiscountList"
//下列路径上线注释
//下列路径上线注释
,
"/wx/itemTagOperate/**"
/* ,"/wx/specialPerformance/**"
/* ,"/wx/specialPerformance/**"
, "/wx/supplierItem/**", "/wx/shareRecord/**", "/wx/distributionOrder/**", "/wx/selfPage/**", "/wx/auctionRecord/**",
, "/wx/supplierItem/**", "/wx/shareRecord/**", "/wx/distributionOrder/**", "/wx/selfPage/**", "/wx/auctionRecord/**",
"/wx/shareRecord/**","/wx/collectionBook/**", "/wx/collectedRecord/**", "/wx/collectionItemsRelation/**","/wx/collectionShareRecord/**"
"/wx/shareRecord/**","/wx/collectionBook/**", "/wx/collectedRecord/**", "/wx/collectionItemsRelation/**","/wx/collectionShareRecord/**"
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/request/ItemTagOperateRequestDto.java
0 → 100644
View file @
64a273d0
package
com.wwdz.ch.wx.entity.request
;
import
com.xxdxxs.entity.Entity
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
@Data
public
class
ItemTagOperateRequestDto
implements
Entity
{
/**
* 类目id
*/
private
Integer
categoryId
;
/**
* 类目名称
*/
private
String
categoryName
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 操作人id
*/
private
Long
operatorId
;
/**
* 图片
*/
private
List
<
String
>
images
;
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/ItemTagOperateRecordVo.java
0 → 100644
View file @
64a273d0
package
com.wwdz.ch.wx.entity.vo
;
import
com.xxdxxs.entity.Entity
;
import
lombok.Data
;
@Data
public
class
ItemTagOperateRecordVo
implements
Entity
{
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/ItemTagPrintInfo.java
0 → 100644
View file @
64a273d0
package
com.wwdz.ch.wx.entity.vo
;
import
com.xxdxxs.entity.Entity
;
import
lombok.Data
;
@Data
public
class
ItemTagPrintInfo
implements
Entity
{
private
String
qrCode
;
private
String
itemName
;
private
String
tip
=
"扫描微信二维码了解钱币详情"
;
private
String
logo
=
"https://cdn.wanwudezhi.com/static/web-static/image/32cd96a80a166444b3e472a5bf2a2274_425x176.png"
;
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/ItemTagOperateServiceImpl.java
0 → 100644
View file @
64a273d0
package
com.wwdz.ch.wx.impl
;
import
com.github.pagehelper.PageInfo
;
import
com.wwdz.ch.core.api.WxAppletApi
;
import
com.wwdz.ch.core.consts.DistributionEnum
;
import
com.wwdz.ch.core.consts.SupplierItemEnum
;
import
com.wwdz.ch.core.type.PageSearchResult
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.util.QRCodeUtil
;
import
com.wwdz.ch.db.dao.CategoryDao
;
import
com.wwdz.ch.db.dao.ItemTagOperateRecordDao
;
import
com.wwdz.ch.db.dao.distribution.SupplierItemDao
;
import
com.wwdz.ch.db.domain.Category
;
import
com.wwdz.ch.db.domain.ItemTagOperateRecord
;
import
com.wwdz.ch.db.domain.distribution.SupplierItem
;
import
com.wwdz.ch.db.dto.request.ItemTagOperateRecordRequestDto
;
import
com.wwdz.ch.wx.entity.request.ItemTagOperateRequestDto
;
import
com.wwdz.ch.wx.entity.vo.ItemTagPrintInfo
;
import
com.wwdz.ch.wx.service.ItemTagOperateService
;
import
com.xxdxxs.utils.EntityMapper
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.concurrent.TimeUnit
;
@Service
public
class
ItemTagOperateServiceImpl
implements
ItemTagOperateService
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ItemTagOperateServiceImpl
.
class
);
@Autowired
SupplierItemDao
supplierItemDao
;
@Autowired
ItemTagOperateRecordDao
itemTagOperateRecordDao
;
@Autowired
RedissonClient
redissonClient
;
@Autowired
CategoryDao
categoryDao
;
@Autowired
WxAppletApi
wxAppletApi
;
@Override
public
Result
printItemTag
(
ItemTagOperateRequestDto
dto
)
{
try
{
//先上传商品
SupplierItem
supplierItem
=
new
SupplierItem
();
//查询类目信息
Category
category
=
categoryDao
.
findById
(
dto
.
getCategoryId
());
EntityMapper
.
copyAttribute
(
dto
,
supplierItem
);
supplierItem
.
setName
(
category
.
getName
());
supplierItem
.
setDescription
(
category
.
getIntroduction
());
supplierItem
.
setSupplyPrice
(
0L
);
supplierItem
.
setRebate
(
new
BigDecimal
(
"0"
));
if
(!
CollectionUtils
.
isEmpty
(
dto
.
getImages
()))
{
supplierItem
.
setImages
(
String
.
join
(
";"
,
dto
.
getImages
()));
}
supplierItem
.
setSort
(
1
);
supplierItem
.
setBuyLimitNum
(-
1
);
supplierItem
.
setIsAbleSale
(
false
);
supplierItem
.
setIsOnSale
(
false
);
supplierItem
.
setStock
(
1
);
supplierItem
.
setIsOnSale
(
false
);
Date
now
=
new
Date
();
supplierItem
.
setCreateTime
(
now
);
supplierItem
.
setUpdateTime
(
now
);
supplierItem
.
setIsDeleted
(
true
);
supplierItem
.
setType
(
DistributionEnum
.
DistributionTypeEnum
.
BLACK
.
getCode
());
supplierItem
.
setStatus
(
SupplierItemEnum
.
StatusEnum
.
COMMON
.
getCode
());
long
itemId
=
supplierItemDao
.
insert
(
supplierItem
);
//记录制作标签的记录
ItemTagOperateRecord
itemTagOperateRecord
=
new
ItemTagOperateRecord
();
itemTagOperateRecord
.
setItemId
(
itemId
);
itemTagOperateRecord
.
setImages
(
String
.
join
(
";"
,
dto
.
getImages
()));
itemTagOperateRecord
.
setCategoryId
(
dto
.
getCategoryId
());
itemTagOperateRecord
.
setCategoryName
(
category
.
getName
());
itemTagOperateRecord
.
setOperatorId
(
dto
.
getOperatorId
());
itemTagOperateRecord
.
setCreateTime
(
now
);
itemTagOperateRecordDao
.
insert
(
itemTagOperateRecord
);
//打印标签的信息
ItemTagPrintInfo
itemTagPrintInfo
=
new
ItemTagPrintInfo
();
itemTagPrintInfo
.
setItemName
(
category
.
getName
());
//获取页面短链
String
url
=
wxAppletApi
.
getUrlLink
(
"/pages/detail/index"
,
"itemId="
+
itemId
);
String
qrCode
=
QRCodeUtil
.
createCodeToBase64
(
url
);
itemTagPrintInfo
.
setQrCode
(
qrCode
);
return
Result
.
success
(
itemTagPrintInfo
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"打印标签失败"
,
e
);
}
return
Result
.
failed
(
"打印标签失败"
);
}
@Override
public
Result
findList
(
ItemTagOperateRecordRequestDto
dto
)
{
try
{
List
<
ItemTagOperateRecord
>
list
=
itemTagOperateRecordDao
.
findByPage
(
dto
);
PageInfo
pageInfo
=
new
PageInfo
<>(
list
);
for
(
ItemTagOperateRecord
itemTagOperateRecord
:
list
)
{
String
images
=
itemTagOperateRecord
.
getImages
();
itemTagOperateRecord
.
setImages
(
images
.
split
(
";"
)[
0
]);
}
return
Result
.
success
(
PageSearchResult
.
of
(
pageInfo
,
list
));
}
catch
(
Exception
e
)
{
logger
.
error
(
"查询制作标签记录失败error: {}"
,
e
);
}
return
Result
.
failed
(
"查询制作标签记录失败"
);
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/SupplierItemServiceImpl.java
View file @
64a273d0
...
@@ -22,6 +22,7 @@ import com.wwdz.ch.core.entity.SupplierItemVo;
...
@@ -22,6 +22,7 @@ import com.wwdz.ch.core.entity.SupplierItemVo;
import
com.wwdz.ch.wx.aspect.AddBrowseLog
;
import
com.wwdz.ch.wx.aspect.AddBrowseLog
;
import
com.wwdz.ch.wx.constant.CollectionBookConstants
;
import
com.wwdz.ch.wx.constant.CollectionBookConstants
;
import
com.wwdz.ch.wx.entity.GroupPurchaseInfo
;
import
com.wwdz.ch.wx.entity.GroupPurchaseInfo
;
import
com.wwdz.ch.wx.entity.request.ItemTagOperateRequestDto
;
import
com.wwdz.ch.wx.entity.vo.distribution.AuctionDetailVo
;
import
com.wwdz.ch.wx.entity.vo.distribution.AuctionDetailVo
;
import
com.wwdz.ch.wx.entity.vo.distribution.AuctionRecordRowVo
;
import
com.wwdz.ch.wx.entity.vo.distribution.AuctionRecordRowVo
;
import
com.wwdz.ch.wx.service.FollowFansRecordService
;
import
com.wwdz.ch.wx.service.FollowFansRecordService
;
...
@@ -1345,9 +1346,52 @@ public class SupplierItemServiceImpl implements SupplierItemService {
...
@@ -1345,9 +1346,52 @@ public class SupplierItemServiceImpl implements SupplierItemService {
}
}
private
String
getVideosImage
(
String
vedios
)
{
@Override
public
Result
scanCodeToFindItemDetail
(
SupplierItemRequestDto
dto
)
{
try
{
//判断是否已经上架过
SupplierItem
supplierItem
=
supplierItemDao
.
findById
(
dto
.
getItemId
());
if
(
supplierItem
.
getCreatorId
()
!=
null
&&
!
supplierItem
.
getIsDeleted
())
{
return
Result
.
failed
(
ResultCode
.
ITEM_UPLOADED
);
}
SupplierItemVo
supplierItemVo
=
new
SupplierItemVo
();
EntityMapper
.
copyAttribute
(
supplierItem
,
supplierItemVo
);
supplierItemVo
.
setItemId
(
supplierItem
.
getId
());
supplierItemVo
.
setHomePageImage
(
MediaUtil
.
getHomePageImage
(
supplierItem
.
getImages
(),
supplierItem
.
getVideos
()));
return
Result
.
success
(
supplierItemVo
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"用户扫码跳转小程序页面查询商品详情 error : {}"
,
dto
.
getType
(),
e
);
}
return
Result
.
failed
();
}
@Override
public
Result
uploadItemToSelf
(
SupplierItemRequestDto
dto
)
{
try
{
SupplierItem
sourceItem
=
supplierItemDao
.
findById
(
dto
.
getItemId
());
if
(
sourceItem
.
getCreatorId
()
!=
null
&&
!
sourceItem
.
getIsDeleted
())
{
return
Result
.
failed
(
ResultCode
.
ITEM_UPLOADED
);
}
long
itemId
=
dto
.
getItemId
();
SupplierItem
supplierItem
=
new
SupplierItem
();
supplierItem
.
setSupplyPrice
(
0L
);
supplierItem
.
setRebate
(
new
BigDecimal
(
"0"
));
supplierItem
.
setIsDeleted
(
false
);
supplierItem
.
setCreatorId
(
dto
.
getUserId
());
supplierItem
.
setType
(
dto
.
getType
()
==
null
?
DistributionEnum
.
DistributionTypeEnum
.
COLLECT
.
getCode
()
:
dto
.
getType
());
supplierItem
.
setStatus
(
SupplierItemEnum
.
StatusEnum
.
COMMON
.
getCode
());
supplierItemDao
.
update
(
supplierItem
);
return
Result
.
success
(
new
HashMap
(){{
put
(
"id"
,
itemId
);}});
}
catch
(
Exception
e
)
{
logger
.
error
(
"上架商品到藏馆 error : {}"
,
dto
.
getType
(),
e
);
}
return
Result
.
failed
();
}
private
String
getVideosImage
(
String
videos
)
{
String
video
=
""
;
String
video
=
""
;
String
[]
images
=
v
edi
os
.
split
(
";"
);
String
[]
images
=
v
ide
os
.
split
(
";"
);
StringBuffer
stringBuffer
=
new
StringBuffer
();
StringBuffer
stringBuffer
=
new
StringBuffer
();
Arrays
.
stream
(
images
).
forEach
(
image
->
{
Arrays
.
stream
(
images
).
forEach
(
image
->
{
if
(
stringBuffer
.
length
()
!=
0
)
{
if
(
stringBuffer
.
length
()
!=
0
)
{
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/ItemTagOperateService.java
0 → 100644
View file @
64a273d0
package
com.wwdz.ch.wx.service
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.dto.request.ItemTagOperateRecordRequestDto
;
import
com.wwdz.ch.wx.entity.request.ItemTagOperateRequestDto
;
public
interface
ItemTagOperateService
{
/**
* 打印标签
* @param dto
* @return
*/
Result
printItemTag
(
ItemTagOperateRequestDto
dto
);
/**
* 查询制作标签记录
* @param dto
* @return
*/
Result
findList
(
ItemTagOperateRecordRequestDto
dto
);
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/SupplierItemService.java
View file @
64a273d0
...
@@ -2,6 +2,7 @@ package com.wwdz.ch.wx.service.distribution;
...
@@ -2,6 +2,7 @@ package com.wwdz.ch.wx.service.distribution;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto
;
import
com.wwdz.ch.wx.entity.request.ItemTagOperateRequestDto
;
public
interface
SupplierItemService
{
public
interface
SupplierItemService
{
...
@@ -121,4 +122,19 @@ public interface SupplierItemService {
...
@@ -121,4 +122,19 @@ public interface SupplierItemService {
*/
*/
Result
findHomePage
(
SupplierItemRequestDto
dto
);
Result
findHomePage
(
SupplierItemRequestDto
dto
);
/**
* 用户扫码跳转小程序页面查询商品详情
* @param dto
* @return
*/
Result
scanCodeToFindItemDetail
(
SupplierItemRequestDto
dto
);
/**
* 上传商品到自己的藏馆
* @param dto
* @return
*/
Result
uploadItemToSelf
(
SupplierItemRequestDto
dto
);
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/distribution/ItemTagOperateController.java
0 → 100644
View file @
64a273d0
package
com.wwdz.ch.wx.web.distribution
;
import
com.alibaba.fastjson.JSON
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.dto.request.ItemTagOperateRecordRequestDto
;
import
com.wwdz.ch.wx.entity.request.ItemTagOperateRequestDto
;
import
com.wwdz.ch.wx.service.ItemTagOperateService
;
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
(
"/wx/itemTagOperate"
)
public
class
ItemTagOperateController
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
LogisticsController
.
class
);
@Autowired
ItemTagOperateService
itemTagOperateService
;
@ApiOperation
(
value
=
"打印标签"
)
@PostMapping
(
"/printItemTag"
)
public
Result
printItemTag
(
@RequestBody
ItemTagOperateRequestDto
dto
)
{
logger
.
info
(
"打印标签,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
Validator
validator
=
new
Validator
(
FormHandler
.
ofEntity
(
dto
));
validator
.
set
(
"categoryId"
,
"分类id"
).
must
().
number
()
.
set
(
"operatorId"
,
"操作人id"
).
must
().
number
()
.
end
();
if
(!
validator
.
isValid
())
{
return
Result
.
failed
(
validator
.
getErrorInfo
());
}
return
itemTagOperateService
.
printItemTag
(
dto
);
}
@ApiOperation
(
value
=
"查询制作标签记录"
)
@PostMapping
(
"/findList"
)
public
Result
findList
(
@RequestBody
ItemTagOperateRecordRequestDto
dto
)
{
logger
.
info
(
"查询制作标签记录,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
Validator
validator
=
new
Validator
(
FormHandler
.
ofEntity
(
dto
));
validator
.
set
(
"operatorId"
,
"操作人id"
).
must
().
number
()
.
end
();
if
(!
validator
.
isValid
())
{
return
Result
.
failed
(
validator
.
getErrorInfo
());
}
return
itemTagOperateService
.
findList
(
dto
);
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/distribution/SupplierItemController.java
View file @
64a273d0
...
@@ -195,4 +195,26 @@ public class SupplierItemController {
...
@@ -195,4 +195,26 @@ public class SupplierItemController {
}
}
return
supplierItemService
.
findItemCommission
(
dto
);
return
supplierItemService
.
findItemCommission
(
dto
);
}
}
@ApiOperation
(
value
=
"用户扫码跳转小程序页面查询商品详情"
)
@PostMapping
(
"/scanCodeToFindItemDetail"
)
public
Result
scanCodeToFindItemDetail
(
@RequestBody
SupplierItemRequestDto
dto
)
{
logger
.
info
(
"用户扫码跳转小程序页面查询商品详情,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
if
(
dto
.
getItemId
()
==
null
)
{
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
}
return
supplierItemService
.
scanCodeToFindItemDetail
(
dto
);
}
@ApiOperation
(
value
=
"上传商品到自己的藏馆"
)
@PostMapping
(
"/uploadItemToSelf"
)
public
Result
uploadItemToSelf
(
@RequestBody
SupplierItemRequestDto
dto
)
{
logger
.
info
(
"上传商品到自己的藏馆,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
if
(
dto
.
getItemId
()
==
null
||
dto
.
getUserId
()
==
null
)
{
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
}
return
supplierItemService
.
uploadItemToSelf
(
dto
);
}
}
}
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