Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
promotion-service
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
promotion
promotion-service
Commits
8b5f9c8c
提交
8b5f9c8c
authored
6月 21, 2024
作者:
李秋林
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加/删除 - 今日活动 - (出售列表中添加)出售单元
上级
5ea6e123
显示空白字符变更
内嵌
并排
正在显示
30 个修改的文件
包含
1081 行增加
和
17 行删除
+1081
-17
pom.xml
pom.xml
+6
-0
TemporaryActivityCoreController.java
...r/activity/temporary/TemporaryActivityCoreController.java
+25
-2
TemporaryActivityQueryController.java
.../activity/temporary/TemporaryActivityQueryController.java
+13
-0
QinCeDataTaskController.java
...motion/controller/user/qince/QinCeDataTaskController.java
+18
-0
QinCeProductQueryController.java
...on/controller/user/qince/QinCeProductQueryController.java
+41
-0
QinceProductInfoDao.java
...xiaolu/promotion/domain/user/dao/QinceProductInfoDao.java
+18
-0
QinceProductTypeDao.java
...xiaolu/promotion/domain/user/dao/QinceProductTypeDao.java
+18
-0
QinceProductInfoDaoImpl.java
...omotion/domain/user/dao/impl/QinceProductInfoDaoImpl.java
+97
-0
QinceProductTypeDaoImpl.java
...omotion/domain/user/dao/impl/QinceProductTypeDaoImpl.java
+97
-0
QinceProductInfoMapper.java
.../promotion/domain/user/mapper/QinceProductInfoMapper.java
+22
-0
QinceProductTypeMapper.java
.../promotion/domain/user/mapper/QinceProductTypeMapper.java
+22
-0
QinceProductInfoDO.java
...omotion/domain/user/mapper/entity/QinceProductInfoDO.java
+117
-0
QinceProductTypeDO.java
...omotion/domain/user/mapper/entity/QinceProductTypeDO.java
+63
-0
CascadeVo.java
src/main/java/com/wangxiaolu/promotion/pojo/CascadeVo.java
+29
-0
TemporaryActivityMarketCellVo.java
.../activity/temporary/vo/TemporaryActivityMarketCellVo.java
+84
-0
QinceProductInfoDto.java
...ngxiaolu/promotion/pojo/user/dto/QinceProductInfoDto.java
+96
-0
QinceProductTypeDto.java
...ngxiaolu/promotion/pojo/user/dto/QinceProductTypeDto.java
+51
-0
TemporaryActivityCoreService.java
...vice/activity/temporary/TemporaryActivityCoreService.java
+5
-0
TemporaryActivityQueryService.java
...ice/activity/temporary/TemporaryActivityQueryService.java
+3
-0
TemporaryActivityCoreServiceImpl.java
...vity/temporary/impl/TemporaryActivityCoreServiceImpl.java
+44
-11
TemporaryActivityQueryServiceImpl.java
...ity/temporary/impl/TemporaryActivityQueryServiceImpl.java
+16
-1
QinCeDataTaskService.java
...ngxiaolu/promotion/service/user/QinCeDataTaskService.java
+4
-0
QinCeProductQueryService.java
...aolu/promotion/service/user/QinCeProductQueryService.java
+19
-0
QinCeDataTaskServiceImpl.java
...promotion/service/user/impl/QinCeDataTaskServiceImpl.java
+27
-3
QinCeProductQueryServiceImpl.java
...otion/service/user/impl/QinCeProductQueryServiceImpl.java
+63
-0
QinCeUtils.java
src/main/java/com/wangxiaolu/promotion/utils/QinCeUtils.java
+19
-0
QinceProductInfoMapper.xml
src/main/resources/mapper/QinceProductInfoMapper.xml
+34
-0
QinceProductTypeMapper.xml
src/main/resources/mapper/QinceProductTypeMapper.xml
+22
-0
QinCeDataTaskControllerTest.java
...romotion/controller/user/QinCeDataTaskControllerTest.java
+6
-0
TemporaryActivityCoreServiceImplTest.java
.../temporary/impl/TemporaryActivityCoreServiceImplTest.java
+2
-0
没有找到文件。
pom.xml
浏览文件 @
8b5f9c8c
...
...
@@ -234,6 +234,12 @@
</exclusions>
</dependency>
<dependency>
<groupId>
com.fasterxml.uuid
</groupId>
<artifactId>
java-uuid-generator
</artifactId>
<version>
${java-uuid-generator.version}
</version>
</dependency>
</dependencies>
<build>
...
...
src/main/java/com/wangxiaolu/promotion/controller/activity/temporary/TemporaryActivityCoreController.java
浏览文件 @
8b5f9c8c
...
...
@@ -2,15 +2,14 @@ package com.wangxiaolu.promotion.controller.activity.temporary;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityDataVo
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityMarketCellVo
;
import
com.wangxiaolu.promotion.result.basedata.R
;
import
com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityCoreService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.constraints.NotNull
;
import
java.util.Objects
;
/**
...
...
@@ -44,6 +43,30 @@ public class TemporaryActivityCoreController {
return
R
.
success
(
tempActivityCoreService
.
activityDataReportedSave
(
temActDto
));
}
/**
* 促销员[今日活动 - (出售列表中添加)出售单元]数据
* 数据暂存到redis中,当调用保存接口时再添加到数据库中
* 返回保存成功信息
*/
@PostMapping
(
"/today/reported/market_cell"
)
public
R
todayActivityMarketCellReported
(
@RequestBody
TemporaryActivityMarketCellVo
marketcellVo
)
{
marketcellVo
.
saveDataVerify
();
tempActivityCoreService
.
todayActivityMarketCellReported
(
marketcellVo
);
return
R
.
success
();
}
/**
* 删除促销员[今日活动 - (出售列表中添加)出售单元]数据
* 当促销员取消保存活动记录时,数据进行删除
*/
@DeleteMapping
(
"/today/reported/del_market_cell"
)
public
R
todayActivityMarketCellReported
(
Integer
temporaryId
)
{
tempActivityCoreService
.
todayActivityDeleteMarketCellReported
(
temporaryId
);
return
R
.
success
();
}
/**
* 促销员[今日活动]数据提交审批
* 修改审批状态
...
...
src/main/java/com/wangxiaolu/promotion/controller/activity/temporary/TemporaryActivityQueryController.java
浏览文件 @
8b5f9c8c
...
...
@@ -2,6 +2,7 @@ package com.wangxiaolu.promotion.controller.activity.temporary;
import
com.wangxiaolu.promotion.pojo.PageInfo
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityMarketCellVo
;
import
com.wangxiaolu.promotion.result.basedata.R
;
import
com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityQueryService
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -51,4 +52,16 @@ public class TemporaryActivityQueryController {
TemporaryActivityReportedDto
dto
=
temporaryActivityQueryService
.
findTemporaryActivityById
(
activityId
);
return
R
.
success
(
dto
);
}
/**
* 促销员[今日活动 - (出售列表中添加)出售单元]数据
* 数据暂存到redis中,当调用保存接口时再添加到数据库中
* 返回已保存的数据
*/
@GetMapping
(
"/today/reported/market_cell"
)
public
R
todayActivityMarketCell
(
Integer
temporaryId
)
{
return
R
.
success
(
temporaryActivityQueryService
.
findActivityMarketCell
(
temporaryId
));
}
}
src/main/java/com/wangxiaolu/promotion/controller/user/qince/QinCeDataTaskController.java
浏览文件 @
8b5f9c8c
...
...
@@ -46,5 +46,23 @@ public class QinCeDataTaskController {
return
R
.
success
();
}
/**
* 同步商品类型
*/
@GetMapping
(
"/product/type"
)
public
R
productQueryPdTypeAllTask
(){
qinCeDataTaskService
.
productQueryPdTypeAllTask
();
return
R
.
success
();
}
/**
* 同步商品数据
*/
@GetMapping
(
"/product"
)
public
R
productAllTask
(){
qinCeDataTaskService
.
productAllTask
();
return
R
.
success
();
}
}
src/main/java/com/wangxiaolu/promotion/controller/user/qince/QinCeProductQueryController.java
0 → 100644
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
controller
.
user
.
qince
;
import
com.wangxiaolu.promotion.pojo.CascadeVo
;
import
com.wangxiaolu.promotion.pojo.user.dto.QinceProductTypeDto
;
import
com.wangxiaolu.promotion.result.basedata.R
;
import
com.wangxiaolu.promotion.service.user.QinCeProductQueryService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
/**
* @author : liqiulin
* @date : 2024-06-19 17
* @describe :
*/
@RestController
@RequestMapping
(
"/user/qince/query"
)
public
class
QinCeProductQueryController
{
@Autowired
QinCeProductQueryService
qinCeProductQueryService
;
@PostMapping
(
"/product/type/list"
)
public
R
findProductTypeList
(){
List
<
QinceProductTypeDto
>
dtos
=
qinCeProductQueryService
.
findProductTypeList
();
return
R
.
success
(
dtos
);
}
/**
* 级联选择
* @return
*/
@PostMapping
(
"/product/cascade"
)
public
R
findProductCascade
(){
List
<
CascadeVo
>
dtos
=
qinCeProductQueryService
.
findProductCascade
();
return
R
.
success
(
dtos
);
}
}
src/main/java/com/wangxiaolu/promotion/domain/user/dao/QinceProductInfoDao.java
0 → 100644
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
domain
.
user
.
dao
;
import
com.alibaba.fastjson.JSONArray
;
import
com.wangxiaolu.promotion.pojo.user.dto.QinceProductInfoDto
;
import
java.util.List
;
/**
* @author : liqiulin
* @date : 2024-06-19 17
* @describe :
*/
public
interface
QinceProductInfoDao
{
void
productSyncTask
(
JSONArray
responseDatas
);
List
<
QinceProductInfoDto
>
selectList
();
}
src/main/java/com/wangxiaolu/promotion/domain/user/dao/QinceProductTypeDao.java
0 → 100644
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
domain
.
user
.
dao
;
import
com.alibaba.fastjson.JSONArray
;
import
com.wangxiaolu.promotion.pojo.user.dto.QinceProductTypeDto
;
import
java.util.List
;
/**
* @author : liqiulin
* @date : 2024-06-19 15
* @describe :
*/
public
interface
QinceProductTypeDao
{
void
productPdTypeSyncTask
(
JSONArray
responseDatas
);
List
<
QinceProductTypeDto
>
findAll
();
}
src/main/java/com/wangxiaolu/promotion/domain/user/dao/impl/QinceProductInfoDaoImpl.java
0 → 100644
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
domain
.
user
.
dao
.
impl
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.wangxiaolu.promotion.domain.user.dao.QinceProductInfoDao
;
import
com.wangxiaolu.promotion.domain.user.mapper.QinceProductInfoMapper
;
import
com.wangxiaolu.promotion.domain.user.mapper.entity.QinceProductInfoDO
;
import
com.wangxiaolu.promotion.pojo.user.dto.QinceProductInfoDto
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
/**
* @author : liqiulin
* @date : 2024-06-19 17
* @describe :
*/
@Slf4j
@Service
public
class
QinceProductInfoDaoImpl
implements
QinceProductInfoDao
{
@Autowired
QinceProductInfoMapper
qinceProductInfoMapper
;
@Override
public
void
productSyncTask
(
JSONArray
responseDatas
)
{
log
.
info
(
"勤策-同步商品信息,共「{}」条数据"
,
responseDatas
.
size
());
LambdaQueryWrapper
<
QinceProductInfoDO
>
qw
=
new
LambdaQueryWrapper
<>();
for
(
Object
responseData
:
responseDatas
)
{
qw
.
clear
();
// 查询人员是否存在
QinceProductInfoDO
qcDo
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
responseData
),
QinceProductInfoDO
.
class
);
qw
.
eq
(
QinceProductInfoDO:
:
getPrdWaiqin365Id
,
qcDo
.
getPrdWaiqin365Id
());
QinceProductInfoDO
doExist
=
qinceProductInfoMapper
.
selectOne
(
qw
);
// 存在则修改,不存在则添加
if
(
Objects
.
isNull
(
doExist
))
{
qinceProductInfoMapper
.
insert
(
qcDo
);
log
.
info
(
"勤策-[{}]商品信息不存在,已添加,qc_id:{}"
,
qcDo
.
getPrdName
(),
qcDo
.
getPrdWaiqin365Id
());
}
else
{
qcDo
.
setId
(
doExist
.
getId
());
qinceProductInfoMapper
.
updateById
(
qcDo
);
log
.
info
(
"勤策--[{}]商品信息已存在,现已修改,qc_id:{}"
,
qcDo
.
getPrdName
(),
qcDo
.
getPrdWaiqin365Id
());
}
}
}
@Override
public
List
<
QinceProductInfoDto
>
selectList
()
{
LambdaQueryWrapper
<
QinceProductInfoDO
>
qw
=
new
LambdaQueryWrapper
<>();
qw
.
eq
(
QinceProductInfoDO:
:
getSaleStatus
,
1
).
eq
(
QinceProductInfoDO:
:
getStatus
,
1
).
ne
(
QinceProductInfoDO:
:
getClassName
,
""
)
.
select
(
QinceProductInfoDO:
:
getClassId
,
QinceProductInfoDO:
:
getClassName
,
QinceProductInfoDO:
:
getPrdId
,
QinceProductInfoDO:
:
getPrdName
);
List
<
QinceProductInfoDO
>
qinceProductInfoDOS
=
qinceProductInfoMapper
.
selectList
(
qw
);
return
transitionDtos
(
qinceProductInfoDOS
);
}
/**
* DO to DTO (单个对象)
*
* @param productInfoDOS DO对象List
* @return DTO对象
*/
private
List
<
QinceProductInfoDto
>
transitionDtos
(
List
<
QinceProductInfoDO
>
productInfoDOS
)
{
if
(
CollectionUtils
.
isEmpty
(
productInfoDOS
))
{
return
new
ArrayList
<>();
}
List
<
QinceProductInfoDto
>
dtos
=
new
ArrayList
<>(
productInfoDOS
.
size
()
*
2
);
for
(
QinceProductInfoDO
productInfoDO
:
productInfoDOS
)
{
dtos
.
add
(
transitionDto
(
productInfoDO
));
}
return
dtos
;
}
private
QinceProductInfoDto
transitionDto
(
QinceProductInfoDO
productInfoDO
)
{
QinceProductInfoDto
dto
=
null
;
if
(
Objects
.
isNull
(
productInfoDO
))
{
return
dto
;
}
dto
=
new
QinceProductInfoDto
();
BeanUtils
.
copyProperties
(
productInfoDO
,
dto
);
return
dto
;
}
}
src/main/java/com/wangxiaolu/promotion/domain/user/dao/impl/QinceProductTypeDaoImpl.java
0 → 100644
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
domain
.
user
.
dao
.
impl
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.wangxiaolu.promotion.domain.user.dao.QinceProductTypeDao
;
import
com.wangxiaolu.promotion.domain.user.mapper.QinceProductTypeMapper
;
import
com.wangxiaolu.promotion.domain.user.mapper.entity.QinceProductTypeDO
;
import
com.wangxiaolu.promotion.pojo.user.dto.QinceProductTypeDto
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
/**
* @author : liqiulin
* @date : 2024-06-19 15
* @describe :
*/
@Slf4j
@Service
public
class
QinceProductTypeDaoImpl
implements
QinceProductTypeDao
{
@Autowired
QinceProductTypeMapper
qinceProductTypeMapper
;
@Override
public
void
productPdTypeSyncTask
(
JSONArray
responseDatas
)
{
log
.
info
(
"勤策-同步商品类型数据,共「{}」条数据"
,
responseDatas
.
size
());
LambdaQueryWrapper
<
QinceProductTypeDO
>
qw
=
new
LambdaQueryWrapper
<>();
for
(
Object
responseData
:
responseDatas
)
{
qw
.
clear
();
// 查询人员是否存在
QinceProductTypeDO
qcDo
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
responseData
),
QinceProductTypeDO
.
class
);
qw
.
eq
(
QinceProductTypeDO:
:
getPrdWaiqin365Id
,
qcDo
.
getPrdWaiqin365Id
());
QinceProductTypeDO
doExist
=
qinceProductTypeMapper
.
selectOne
(
qw
);
// 存在则修改,不存在则添加
if
(
Objects
.
isNull
(
doExist
))
{
qinceProductTypeMapper
.
insert
(
qcDo
);
log
.
info
(
"勤策-[{}]商品类型不存在,已添加,qc_id:{}"
,
qcDo
.
getName
(),
qcDo
.
getPrdWaiqin365Id
());
}
else
{
qcDo
.
setId
(
doExist
.
getId
());
qinceProductTypeMapper
.
updateById
(
qcDo
);
log
.
info
(
"勤策--[{}]商品类型已存在,现已修改,qc_id:{}"
,
qcDo
.
getName
(),
qcDo
.
getPrdWaiqin365Id
());
}
}
}
@Override
public
List
<
QinceProductTypeDto
>
findAll
()
{
LambdaQueryWrapper
<
QinceProductTypeDO
>
qw
=
new
LambdaQueryWrapper
<>();
qw
.
eq
(
QinceProductTypeDO:
:
getStatus
,
1
).
select
(
QinceProductTypeDO:
:
getPrdWaiqin365Id
,
QinceProductTypeDO:
:
getName
);
List
<
QinceProductTypeDO
>
qinceProductTypeDOS
=
qinceProductTypeMapper
.
selectList
(
qw
);
return
transitionDtos
(
qinceProductTypeDOS
);
}
/**
* DO to DTO (单个对象)
*
* @param productTypeDos DO对象List
* @return DTO对象
*/
private
List
<
QinceProductTypeDto
>
transitionDtos
(
List
<
QinceProductTypeDO
>
productTypeDos
)
{
if
(
CollectionUtils
.
isEmpty
(
productTypeDos
))
{
return
new
ArrayList
<>();
}
List
<
QinceProductTypeDto
>
dtos
=
new
ArrayList
<>(
productTypeDos
.
size
()
*
2
);
for
(
QinceProductTypeDO
productTypeDo
:
productTypeDos
)
{
dtos
.
add
(
transitionDto
(
productTypeDo
));
}
return
dtos
;
}
private
QinceProductTypeDto
transitionDto
(
QinceProductTypeDO
productTypeDo
)
{
QinceProductTypeDto
dto
=
null
;
if
(
Objects
.
isNull
(
productTypeDo
))
{
return
dto
;
}
dto
=
new
QinceProductTypeDto
();
BeanUtils
.
copyProperties
(
productTypeDo
,
dto
);
return
dto
;
}
}
src/main/java/com/wangxiaolu/promotion/domain/user/mapper/QinceProductInfoMapper.java
0 → 100644
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
domain
.
user
.
mapper
;
import
com.wangxiaolu.promotion.domain.user.mapper.entity.QinceProductInfoDO
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.springframework.stereotype.Repository
;
/**
* @author a02200059
* @description 针对表【qince_product_info】的数据库操作Mapper
* @createDate 2024-06-19 16:55:53
* @Entity generator.domain.QinceProductInfoDto
*/
@Mapper
@Repository
public
interface
QinceProductInfoMapper
extends
BaseMapper
<
QinceProductInfoDO
>
{
}
src/main/java/com/wangxiaolu/promotion/domain/user/mapper/QinceProductTypeMapper.java
0 → 100644
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
domain
.
user
.
mapper
;
import
com.wangxiaolu.promotion.domain.user.mapper.entity.QinceProductTypeDO
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.springframework.stereotype.Repository
;
/**
* @author a02200059
* @description 针对表【qince_product_type】的数据库操作Mapper
* @createDate 2024-06-19 15:40:15
* @Entity com.wangxiaolu.promotion.domain.user.mapper.entity.QinceProductTypeDO
*/
@Mapper
@Repository
public
interface
QinceProductTypeMapper
extends
BaseMapper
<
QinceProductTypeDO
>
{
}
src/main/java/com/wangxiaolu/promotion/domain/user/mapper/entity/QinceProductInfoDO.java
0 → 100644
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
domain
.
user
.
mapper
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.util.Date
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
/**
*
* @TableName qince_product_info
*/
@TableName
(
value
=
"qince_product_info"
)
@Data
public
class
QinceProductInfoDO
implements
Serializable
{
/**
* 主键id
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
/**
* 商品唯一标识,来源第三方系统的唯一ID(ERP)
*/
@JsonProperty
(
"prd_id"
)
private
String
prdId
;
/**
* 勤策商品id
*/
@JsonProperty
(
"prd_waiqin365_id"
)
private
String
prdWaiqin365Id
;
/**
* 商品名称
*/
@JsonProperty
(
"prd_name"
)
private
String
prdName
;
/**
* 商品类型唯一ID,所属类型
*/
@JsonProperty
(
"class_id"
)
private
String
classId
;
/**
* 商品类型名称
*/
@JsonProperty
(
"class_name"
)
private
String
className
;
/**
* 商品类型全路径
*/
@JsonProperty
(
"class_full_path"
)
private
String
classFullPath
;
/**
* 单位
*/
@JsonProperty
(
"prd_unit"
)
private
String
prdUnit
;
/**
* 商品规格
*/
@JsonProperty
(
"prd_spec"
)
private
String
prdSpec
;
/**
* 商品分类,0:普通商品,1:助销物料,2:包装物,3:兑换物料
*/
@JsonProperty
(
"classification"
)
private
String
classification
;
/**
* 商品编码
*/
@JsonProperty
(
"prd_code"
)
private
String
prdCode
;
/**
* 销售状态。0:停售,1:在售
*/
@JsonProperty
(
"prd_sale_status"
)
private
String
prdSaleStatus
;
/**
* 销售状态。0:停售,1:在售
*/
@JsonProperty
(
"sale_status"
)
private
String
saleStatus
;
/**
* 删除标志。1:正常,0:删除
*/
@JsonProperty
(
"status"
)
private
String
status
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 修改时间
*/
private
Date
modifyTime
;
@TableField
(
exist
=
false
)
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
src/main/java/com/wangxiaolu/promotion/domain/user/mapper/entity/QinceProductTypeDO.java
0 → 100644
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
domain
.
user
.
mapper
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.util.Date
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
/**
*
* @TableName qince_product_type
*/
@TableName
(
value
=
"qince_product_type"
)
@Data
public
class
QinceProductTypeDO
implements
Serializable
{
/**
* 主键id
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
/**
* 勤策ID
*/
@JsonProperty
(
"prd_waiqin365_id"
)
private
String
prdWaiqin365Id
;
/**
* 父id - 勤策ID
*/
@JsonProperty
(
"parent_id"
)
private
String
parentId
;
/**
* 商品类型名称
*/
@JsonProperty
(
"name"
)
private
String
name
;
/**
* 删除标志。1:正常,0:删除
*/
@JsonProperty
(
"status"
)
private
Integer
status
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 修改时间
*/
private
Date
modifyTime
;
@TableField
(
exist
=
false
)
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
src/main/java/com/wangxiaolu/promotion/pojo/CascadeVo.java
0 → 100644
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
pojo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @author : liqiulin
* @date : 2024-06-20 11
* @describe : 级联对象
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
CascadeVo
{
private
String
label
;
private
String
value
;
private
List
<
CascadeVo
>
children
;
public
CascadeVo
(
String
label
,
String
value
)
{
this
.
label
=
label
;
this
.
value
=
value
;
}
}
src/main/java/com/wangxiaolu/promotion/pojo/activity/temporary/vo/TemporaryActivityMarketCellVo.java
0 → 100644
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
pojo
.
activity
.
temporary
.
vo
;
import
com.wangxiaolu.promotion.exception.ParamException
;
import
com.wangxiaolu.promotion.result.basedata.RCode
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
import
org.apache.commons.lang3.StringUtils
;
import
java.util.Objects
;
/**
* @author : liqiulin
* @date : 2024-06-20 17
* @describe :今日活动 - (出售列表中添加)出售单元
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors
(
chain
=
true
)
public
class
TemporaryActivityMarketCellVo
{
/**
* 促销员id
* temporaryInfo表id
*/
private
Integer
temporaryId
;
/**
* market_cell 表id
* 影响保存逻辑:有则修改,无则新增
*/
private
Long
marketCellId
;
/**
* 保存到redis中的 uuid
* 未保存到数据且保存到redis中的数据:根据这个id进行缓存数据的修改
*/
private
String
uuid
;
/**
* 类型名称
*/
private
String
prdClassName
;
/**
* 商品品类名称
*/
private
String
prdName
;
/**
* 商品品类编码
*/
private
String
prdId
;
/**
* 卖出数据 - 袋
*/
private
Integer
bag
;
/**
* 卖出数据 - 箱
*/
private
Integer
box
;
public
void
saveDataVerify
()
{
// if (Objects.isNull(this.marketCellId) && StringUtils.isBlank(this.uuid)){
// throw new ParamException(RCode.DATA_NOT_HAVE_ERROR, null);
// }
if
(
StringUtils
.
isBlank
(
this
.
prdClassName
)
||
StringUtils
.
isBlank
(
this
.
prdId
)){
throw
new
ParamException
(
RCode
.
PRODUCT_CLASS_NOT_ERROR
,
null
);
}
if
((
Objects
.
isNull
(
this
.
bag
)
&&
Objects
.
isNull
(
this
.
box
))
||
(
this
.
bag
+
this
.
box
<=
0
))
{
throw
new
ParamException
(
RCode
.
MARKET_NUMBER_NOT_ERROR
,
null
);
}
}
}
src/main/java/com/wangxiaolu/promotion/pojo/user/dto/QinceProductInfoDto.java
0 → 100644
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
pojo
.
user
.
dto
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
*
* @TableName qince_product_info
*/
@Data
public
class
QinceProductInfoDto
implements
Serializable
{
/**
* 主键id
*/
private
Integer
id
;
/**
* 商品唯一标识,来源第三方系统的唯一ID(ERP)
*/
private
String
prdId
;
/**
* 勤策商品id
*/
private
String
prdWaiqin365Id
;
/**
* 商品名称
*/
private
String
prdName
;
/**
* 商品类型唯一ID,所属类型
*/
private
String
classId
;
/**
* 商品类型名称
*/
private
String
className
;
/**
* 商品类型全路径
*/
private
String
classFullPath
;
/**
* 单位
*/
private
String
prdUnit
;
/**
* 商品规格
*/
private
String
prdSpec
;
/**
* 商品分类,0:普通商品,1:助销物料,2:包装物,3:兑换物料
*/
private
String
classification
;
/**
* 商品编码
*/
private
String
prdCode
;
/**
* 销售状态。0:停售,1:在售
*/
private
String
prdSaleStatus
;
/**
* 销售状态。0:停售,1:在售
*/
private
String
saleStatus
;
/**
* 删除标志。1:正常,0:删除
*/
private
String
status
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 修改时间
*/
private
Date
modifyTime
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
src/main/java/com/wangxiaolu/promotion/pojo/user/dto/QinceProductTypeDto.java
0 → 100644
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
pojo
.
user
.
dto
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
*
* @TableName qince_product_type
*/
@Data
public
class
QinceProductTypeDto
implements
Serializable
{
/**
* 主键id
*/
private
Integer
id
;
/**
* 勤策ID
*/
private
String
prdWaiqin365Id
;
/**
* 父id - 勤策ID
*/
private
String
parentId
;
/**
* 商品类型名称
*/
private
String
name
;
/**
* 删除标志。1:正常,0:删除
*/
private
Integer
status
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 修改时间
*/
private
Date
modifyTime
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
src/main/java/com/wangxiaolu/promotion/service/activity/temporary/TemporaryActivityCoreService.java
浏览文件 @
8b5f9c8c
...
...
@@ -2,6 +2,7 @@ package com.wangxiaolu.promotion.service.activity.temporary;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityMarketCellVo
;
/**
* @author : liqiulin
...
...
@@ -38,4 +39,8 @@ public interface TemporaryActivityCoreService {
* @param clockCoordinates 打卡经纬度
*/
void
clockStoreCalDistance
(
String
storeQcId
,
Long
id
,
String
clockCoordinates
);
void
todayActivityMarketCellReported
(
TemporaryActivityMarketCellVo
marketcellVo
);
void
todayActivityDeleteMarketCellReported
(
Integer
temporaryId
);
}
src/main/java/com/wangxiaolu/promotion/service/activity/temporary/TemporaryActivityQueryService.java
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
service
.
activity
.
temporary
;
import
com.alibaba.fastjson.JSONArray
;
import
com.wangxiaolu.promotion.pojo.PageInfo
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto
;
...
...
@@ -23,4 +24,6 @@ public interface TemporaryActivityQueryService {
TemporaryActivityReportedDto
findtemporaryIdTodayActivityData
(
Integer
temporaryId
);
TemporaryActivityReportedDto
findTemporaryActivityById
(
Long
activityId
);
JSONArray
findActivityMarketCell
(
Integer
temporaryId
);
}
src/main/java/com/wangxiaolu/promotion/service/activity/temporary/impl/TemporaryActivityCoreServiceImpl.java
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
service
.
activity
.
temporary
.
impl
;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.fasterxml.uuid.Generators
;
import
com.wangxiaolu.promotion.common.redis.RedisKeys
;
import
com.wangxiaolu.promotion.common.redis.service.RedisCache
;
import
com.wangxiaolu.promotion.domain.activity.dao.*
;
import
com.wangxiaolu.promotion.domain.user.dao.QinCeClienteleStoreDao
;
import
com.wangxiaolu.promotion.domain.user.dao.TemporaryInfoDao
;
...
...
@@ -9,11 +14,13 @@ import com.wangxiaolu.promotion.enums.activity.ActivityPhotoType;
import
com.wangxiaolu.promotion.enums.activity.ClockType
;
import
com.wangxiaolu.promotion.enums.activity.LogType
;
import
com.wangxiaolu.promotion.enums.activity.TemActApproveStatus
;
import
com.wangxiaolu.promotion.exception.DataException
;
import
com.wangxiaolu.promotion.exception.FlowException
;
import
com.wangxiaolu.promotion.exception.ParamException
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.PromotionStoreDto
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityMarketCellVo
;
import
com.wangxiaolu.promotion.pojo.user.dto.QinCeClienteleStoreDto
;
import
com.wangxiaolu.promotion.pojo.user.dto.WxTemporaryInfoDto
;
import
com.wangxiaolu.promotion.result.basedata.RCode
;
...
...
@@ -27,10 +34,8 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* @author : liqiulin
...
...
@@ -43,6 +48,8 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
@Autowired
QinCeUtils
qinCeUtils
;
@Autowired
RedisCache
redisCache
;
@Autowired
private
TemporaryActivityReportedDao
temporaryActivityReportedDao
;
@Autowired
...
...
@@ -148,13 +155,10 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
if
(
Objects
.
isNull
(
reportedDto
))
{
throw
new
ParamException
(
RCode
.
DATA_NOT_HAVE_ERROR
,
null
);
}
TemActApproveStatus
approveStatus
=
reportedDto
.
getApproveStatus
();
if
(!
TemActApproveStatus
.
SUBMITTED
.
name
().
equals
(
approveStatus
.
name
())
&&
!
TemActApproveStatus
.
SEND_BACK
.
name
().
equals
(
approveStatus
.
name
()))
{
throw
new
FlowException
(
RCode
.
STATUS_UPDATE_ERROR
,
null
);
}
// todo 判断数据是否符合提交审批规则
// TemActApproveStatus approveStatus = reportedDto.getApproveStatus();
// if (!TemActApproveStatus.SUBMITTED.name().equals(approveStatus.name()) && !TemActApproveStatus.SEND_BACK.name().equals(approveStatus.name())) {
// throw new FlowException(RCode.STATUS_UPDATE_ERROR, null);
// }
// 查询促销员负责人,将人员补充到审批中
WxTemporaryInfoDto
wxTemporaryInfoDto
=
temporaryInfoDao
.
selectOneById
(
reportedDto
.
getTemporaryId
());
...
...
@@ -170,6 +174,31 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
tempActivityLogDao
.
save
(
reportedDto
.
getTemporaryId
(),
reportedDto
.
getTemporaryName
(),
LogType
.
t_3
,
updateDto
.
getId
(),
updateDto
);
}
@Override
public
void
todayActivityMarketCellReported
(
TemporaryActivityMarketCellVo
marketcellVo
)
{
String
key
=
temMarketCellRedisKey
(
marketcellVo
.
getTemporaryId
());
JSONArray
marketCells
=
redisCache
.
getToJsonArray
(
key
);
if
(
Objects
.
isNull
(
marketCells
)){
marketCells
=
new
JSONArray
();
}
else
{
// 判断prdId是否已存在
List
<
String
>
prdIdList
=
marketCells
.
stream
().
map
(
o
->
((
JSONObject
)
o
).
getString
(
"prdId"
)).
collect
(
Collectors
.
toList
());
if
(
prdIdList
.
contains
(
marketcellVo
.
getPrdId
())){
throw
new
ParamException
(
RCode
.
PRODUCT_CLASS_HAS_ERROR
,
null
);
}
}
marketcellVo
.
setUuid
(
Generators
.
randomBasedGenerator
().
generate
().
toString
());
marketCells
.
add
(
marketcellVo
);
redisCache
.
addToJsonToMinute
(
key
,
marketCells
,
30
);
}
@Override
public
void
todayActivityDeleteMarketCellReported
(
Integer
temporaryId
)
{
String
key
=
temMarketCellRedisKey
(
temporaryId
);
redisCache
.
removeKey
(
key
);
}
/**
* 根据店铺或打卡记录中的店铺,判断打卡距离
* 经度,范围为 -180~180,负数表示西经;纬度,范围为 -90~90,负数表示南纬
...
...
@@ -207,6 +236,10 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
// }
}
private
String
temMarketCellRedisKey
(
Integer
temporaryId
){
return
RedisKeys
.
TemporaryKeys
.
TEMPORARY_ACTIVITY_MARKET_CELL
.
getKey
()
+
temporaryId
+
"_"
+
DateUtil
.
today
();
}
/**
* 推广活动照片保存
*
...
...
src/main/java/com/wangxiaolu/promotion/service/activity/temporary/impl/TemporaryActivityQueryServiceImpl.java
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
service
.
activity
.
temporary
.
impl
;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.fastjson.JSONArray
;
import
com.fasterxml.uuid.Generators
;
import
com.wangxiaolu.promotion.common.redis.RedisKeys
;
import
com.wangxiaolu.promotion.common.redis.service.RedisCache
;
import
com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityPhotoDao
;
import
com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityReportedDao
;
import
com.wangxiaolu.promotion.enums.activity.ActivityPhotoType
;
...
...
@@ -24,9 +29,10 @@ import java.util.Objects;
@Slf4j
public
class
TemporaryActivityQueryServiceImpl
implements
TemporaryActivityQueryService
{
@Autowired
RedisCache
redisCache
;
@Autowired
TemporaryActivityReportedDao
temporaryActivityReportedDao
;
@Autowired
TemporaryActivityPhotoDao
temporaryActivityPhotoDao
;
...
...
@@ -56,6 +62,15 @@ public class TemporaryActivityQueryServiceImpl implements TemporaryActivityQuery
return
dto
;
}
@Override
public
JSONArray
findActivityMarketCell
(
Integer
temporaryId
)
{
/**
* 将数据保存到redis中Generators
*/
String
key
=
RedisKeys
.
TemporaryKeys
.
TEMPORARY_ACTIVITY_MARKET_CELL
.
getKey
()
+
temporaryId
+
"_"
+
DateUtil
.
today
();;
return
redisCache
.
getToJsonArray
(
key
);
}
private
void
findActivityReportedPhoto
(
TemporaryActivityReportedDto
dto
)
{
if
(
Objects
.
isNull
(
dto
))
{
return
;
...
...
src/main/java/com/wangxiaolu/promotion/service/user/QinCeDataTaskService.java
浏览文件 @
8b5f9c8c
...
...
@@ -12,4 +12,8 @@ public interface QinCeDataTaskService {
void
shopDetailAllTask
();
void
productQueryPdTypeAllTask
();
void
productAllTask
();
}
src/main/java/com/wangxiaolu/promotion/service/user/QinCeProductQueryService.java
0 → 100644
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
service
.
user
;
import
com.wangxiaolu.promotion.pojo.CascadeVo
;
import
com.wangxiaolu.promotion.pojo.user.dto.QinceProductTypeDto
;
import
java.util.List
;
/**
* @author : liqiulin
* @date : 2024-06-19 17
* @describe :
*/
public
interface
QinCeProductQueryService
{
List
<
QinceProductTypeDto
>
findProductTypeList
();
List
<
CascadeVo
>
findProductCascade
();
}
src/main/java/com/wangxiaolu/promotion/service/user/impl/QinCeDataTaskServiceImpl.java
浏览文件 @
8b5f9c8c
...
...
@@ -2,9 +2,7 @@ package com.wangxiaolu.promotion.service.user.impl;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.wangxiaolu.promotion.domain.user.dao.QinCeClienteleStoreDao
;
import
com.wangxiaolu.promotion.domain.user.dao.QinCeDepartmentDao
;
import
com.wangxiaolu.promotion.domain.user.dao.QinCeEmployeeDao
;
import
com.wangxiaolu.promotion.domain.user.dao.*
;
import
com.wangxiaolu.promotion.service.user.QinCeDataTaskService
;
import
com.wangxiaolu.promotion.utils.OkHttp
;
import
com.wangxiaolu.promotion.utils.QinCeUtils
;
...
...
@@ -31,6 +29,10 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService {
QinCeEmployeeDao
qinCeEmployeeDao
;
@Autowired
QinCeClienteleStoreDao
qinCeClienteleShopDao
;
@Autowired
QinceProductTypeDao
qinceProductTypeDao
;
@Autowired
QinceProductInfoDao
qinceProductInfoDao
;
@Override
public
void
departmentSyncTask
()
{
...
...
@@ -81,6 +83,28 @@ public class QinCeDataTaskServiceImpl implements QinCeDataTaskService {
}
}
@Override
public
void
productQueryPdTypeAllTask
()
{
Map
<
String
,
Object
>
params
=
qinCeUtils
.
productQueryPdTypeParam
();
String
url
=
qinCeUtils
.
builderUrl
(
QinCeUtils
.
QUERY_PRODUCT_PD_TYPE
,
params
);
// 发起请求、接收结果
JSONObject
resultJson
=
OkHttp
.
postQC
(
url
,
params
);
JSONArray
responseDatas
=
resultJson
.
getJSONArray
(
"response_data"
);
qinceProductTypeDao
.
productPdTypeSyncTask
(
responseDatas
);
}
@Override
public
void
productAllTask
()
{
Map
<
String
,
Object
>
params
=
qinCeUtils
.
queryProductParam
();
String
url
=
qinCeUtils
.
builderUrl
(
QinCeUtils
.
QUERY_PRODUCT
,
params
);
// 发起请求、接收结果
JSONObject
resultJson
=
OkHttp
.
postQC
(
url
,
params
);
JSONArray
responseDatas
=
resultJson
.
getJSONArray
(
"response_data"
);
qinceProductInfoDao
.
productSyncTask
(
responseDatas
);
}
private
boolean
booleanshopDetailPage
(
Integer
pageNum
)
{
Map
<
String
,
Object
>
params
=
qinCeUtils
.
queryShopParam
(
pageNum
);
String
url
=
qinCeUtils
.
builderUrl
(
QinCeUtils
.
QUERY_SHORE
,
params
);
...
...
src/main/java/com/wangxiaolu/promotion/service/user/impl/QinCeProductQueryServiceImpl.java
0 → 100644
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
service
.
user
.
impl
;
import
com.wangxiaolu.promotion.domain.user.dao.QinceProductInfoDao
;
import
com.wangxiaolu.promotion.domain.user.dao.QinceProductTypeDao
;
import
com.wangxiaolu.promotion.pojo.CascadeVo
;
import
com.wangxiaolu.promotion.pojo.user.dto.QinceProductInfoDto
;
import
com.wangxiaolu.promotion.pojo.user.dto.QinceProductTypeDto
;
import
com.wangxiaolu.promotion.service.user.QinCeProductQueryService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author : liqiulin
* @date : 2024-06-19 17
* @describe :
*/
@Slf4j
@Service
public
class
QinCeProductQueryServiceImpl
implements
QinCeProductQueryService
{
@Autowired
QinceProductTypeDao
qinceProductTypeDao
;
@Autowired
QinceProductInfoDao
qinceProductInfoDao
;
@Override
public
List
<
QinceProductTypeDto
>
findProductTypeList
()
{
return
qinceProductTypeDao
.
findAll
();
}
@Override
public
List
<
CascadeVo
>
findProductCascade
()
{
List
<
QinceProductInfoDto
>
qinceProductInfoDtos
=
qinceProductInfoDao
.
selectList
();
Map
<
String
,
List
<
CascadeVo
>>
casadeMap
=
new
HashMap
<>();
// 组装商品
for
(
QinceProductInfoDto
infoDto
:
qinceProductInfoDtos
)
{
String
className
=
infoDto
.
getClassName
();
List
<
CascadeVo
>
cascades
=
null
;
if
(
casadeMap
.
containsKey
(
className
))
{
cascades
=
casadeMap
.
get
(
className
);
}
else
{
cascades
=
new
ArrayList
<>();
}
cascades
.
add
(
new
CascadeVo
(
infoDto
.
getPrdName
(),
infoDto
.
getPrdId
()));
casadeMap
.
put
(
className
,
cascades
);
}
List
<
CascadeVo
>
cascades
=
new
ArrayList
<>();
for
(
Map
.
Entry
<
String
,
List
<
CascadeVo
>>
entry
:
casadeMap
.
entrySet
())
{
cascades
.
add
(
new
CascadeVo
(
entry
.
getKey
(),
entry
.
getKey
(),
entry
.
getValue
()));
}
return
cascades
;
}
}
src/main/java/com/wangxiaolu/promotion/utils/QinCeUtils.java
浏览文件 @
8b5f9c8c
...
...
@@ -40,6 +40,10 @@ public class QinCeUtils {
public
static
final
String
QUERY_SHORE
=
"/api/store/v1/queryStore/"
;
// 客户位置偏差查询
public
static
final
String
CAL_DISTANCE
=
"/api/cmLocation/v1/calDistance/"
;
// 商品类型查询
public
static
final
String
QUERY_PRODUCT_PD_TYPE
=
"/api/product/v1/queryPdType/"
;
// 商品列表
public
static
final
String
QUERY_PRODUCT
=
"/api/product/v1/queryProduct/"
;
public
String
builderUrl
(
String
sidepath
,
Map
<
String
,
Object
>
params
)
{
String
msgId
=
UUID
.
randomUUID
().
toString
();
...
...
@@ -59,6 +63,16 @@ public class QinCeUtils {
return
builder
.
toString
();
}
/**
* 查询[部门]参数
*/
public
Map
<
String
,
Object
>
productQueryPdTypeParam
()
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"type_name"
,
""
);
params
.
put
(
"type_id"
,
""
);
return
params
;
}
/**
* 查询[部门]参数
*/
...
...
@@ -163,4 +177,9 @@ public class QinCeUtils {
return
digest
;
}
public
Map
<
String
,
Object
>
queryProductParam
()
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"prd_id"
,
""
);
return
params
;
}
}
src/main/resources/mapper/QinceProductInfoMapper.xml
0 → 100644
浏览文件 @
8b5f9c8c
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.wangxiaolu.promotion.domain.user.mapper.QinceProductInfoMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.wangxiaolu.promotion.domain.user.mapper.entity.QinceProductInfoDO"
>
<id
property=
"id"
column=
"id"
jdbcType=
"INTEGER"
/>
<result
property=
"prdId"
column=
"prd_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"prdWaiqin365Id"
column=
"prd_waiqin365_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"prdName"
column=
"prd_name"
jdbcType=
"VARCHAR"
/>
<result
property=
"classId"
column=
"class_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"className"
column=
"class_name"
jdbcType=
"VARCHAR"
/>
<result
property=
"classFullPath"
column=
"class_full_path"
jdbcType=
"VARCHAR"
/>
<result
property=
"prdUnit"
column=
"prd_unit"
jdbcType=
"VARCHAR"
/>
<result
property=
"prdSpec"
column=
"prd_spec"
jdbcType=
"VARCHAR"
/>
<result
property=
"classification"
column=
"classification"
jdbcType=
"VARCHAR"
/>
<result
property=
"prdCode"
column=
"prd_code"
jdbcType=
"VARCHAR"
/>
<result
property=
"prdSaleStatus"
column=
"prd_sale_status"
jdbcType=
"VARCHAR"
/>
<result
property=
"saleStatus"
column=
"sale_status"
jdbcType=
"VARCHAR"
/>
<result
property=
"status"
column=
"status"
jdbcType=
"VARCHAR"
/>
<result
property=
"createTime"
column=
"create_time"
jdbcType=
"TIMESTAMP"
/>
<result
property=
"modifyTime"
column=
"modify_time"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id,prd_id,prd_waiqin365_id,
prd_name,class_id,class_name,
class_full_path,prd_unit,prd_spec,
classification,prd_code,prd_sale_status,
sale_status,status,create_time,
modify_time
</sql>
</mapper>
src/main/resources/mapper/QinceProductTypeMapper.xml
0 → 100644
浏览文件 @
8b5f9c8c
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.wangxiaolu.promotion.domain.user.mapper.QinceProductTypeMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.wangxiaolu.promotion.domain.user.mapper.entity.QinceProductTypeDO"
>
<id
property=
"id"
column=
"id"
jdbcType=
"INTEGER"
/>
<result
property=
"prdWaiqin365Id"
column=
"prd_waiqin365_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"parentId"
column=
"parent_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"name"
column=
"name"
jdbcType=
"VARCHAR"
/>
<result
property=
"status"
column=
"status"
jdbcType=
"INTEGER"
/>
<result
property=
"createTime"
column=
"create_time"
jdbcType=
"TIMESTAMP"
/>
<result
property=
"modifyTime"
column=
"modify_time"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id,prd_waiqin365_id,parent_id,
name,status,create_time,
modify_time
</sql>
</mapper>
src/test/java/com/wangxiaolu/promotion/controller/user/QinCeDataTaskControllerTest.java
浏览文件 @
8b5f9c8c
...
...
@@ -33,4 +33,9 @@ class QinCeDataTaskControllerTest {
void
shopDetailAllTask
()
{
qinCeDataTaskController
.
shopDetailAllTask
();
}
@Test
void
productAllTask
()
{
qinCeDataTaskController
.
productAllTask
();
}
}
\ No newline at end of file
src/test/java/com/wangxiaolu/promotion/service/activity/temporary/impl/TemporaryActivityCoreServiceImplTest.java
浏览文件 @
8b5f9c8c
package
com
.
wangxiaolu
.
promotion
.
service
.
activity
.
temporary
.
impl
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
org.junit.jupiter.api.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论