Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
promotion-service
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
promotion
promotion-service
Commits
0376ab51
提交
0376ab51
authored
5月 17, 2024
作者:
李秋林
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加日志
上级
8628ecf9
隐藏空白字符变更
内嵌
并排
正在显示
31 个修改的文件
包含
540 行增加
和
134 行删除
+540
-134
pom.xml
pom.xml
+9
-0
TemporaryActivityCoreController.java
...r/activity/temporary/TemporaryActivityCoreController.java
+9
-8
PromotionLoginController.java
...u/promotion/controller/user/PromotionLoginController.java
+1
-1
UserSendSms.java
...com/wangxiaolu/promotion/controller/user/UserSendSms.java
+8
-11
WeChatUserQueryController.java
...romotion/controller/wechat/WeChatUserQueryController.java
+6
-0
TemporaryActivityLogDao.java
...romotion/domain/activity/dao/TemporaryActivityLogDao.java
+14
-0
TemporaryActivityLogDaoImpl.java
...domain/activity/dao/impl/TemporaryActivityLogDaoImpl.java
+28
-0
TemporaryActivityReportedDaoImpl.java
...n/activity/dao/impl/TemporaryActivityReportedDaoImpl.java
+3
-0
TemporaryActivityLogMapper.java
...on/domain/activity/mapper/TemporaryActivityLogMapper.java
+22
-0
TemporaryActivityLogDO.java
...domain/activity/mapper/entity/TemporaryActivityLogDO.java
+79
-0
QinCeEmployeeDao.java
...angxiaolu/promotion/domain/user/dao/QinCeEmployeeDao.java
+6
-0
TemporaryInfoDao.java
...angxiaolu/promotion/domain/user/dao/TemporaryInfoDao.java
+2
-0
QinCeEmployeeDaoImpl.java
.../promotion/domain/user/dao/impl/QinCeEmployeeDaoImpl.java
+28
-0
TemporaryInfoDaoImpl.java
.../promotion/domain/user/dao/impl/TemporaryInfoDaoImpl.java
+6
-0
TemporaryInfoDO.java
.../promotion/domain/user/mapper/entity/TemporaryInfoDO.java
+8
-13
LogType.java
...java/com/wangxiaolu/promotion/enums/activity/LogType.java
+24
-0
QinCeEmployeeDto.java
...omotion/pojo/activity/temporary/dto/QinCeEmployeeDto.java
+130
-0
WxTemporaryInfoDto.java
...angxiaolu/promotion/pojo/user/dto/WxTemporaryInfoDto.java
+10
-17
WxTemporaryEnrollVo.java
...angxiaolu/promotion/pojo/user/vo/WxTemporaryEnrollVo.java
+2
-32
ControllerExceptionAdvice.java
...lu/promotion/result/advice/ControllerExceptionAdvice.java
+3
-0
RCode.java
.../java/com/wangxiaolu/promotion/result/basedata/RCode.java
+2
-0
TemporaryActivityCoreService.java
...vice/activity/temporary/TemporaryActivityCoreService.java
+4
-2
TemporaryActivityCoreServiceImpl.java
...vity/temporary/impl/TemporaryActivityCoreServiceImpl.java
+54
-8
TencentCoreServiceImpl.java
...u/promotion/service/user/impl/TencentCoreServiceImpl.java
+2
-1
WeChatUserCoreServiceImpl.java
...motion/service/wechat/impl/WeChatUserCoreServiceImpl.java
+15
-0
TencentUtils.java
...ain/java/com/wangxiaolu/promotion/utils/TencentUtils.java
+2
-2
application.yml
src/main/resources/application.yml
+3
-2
TemporaryActivityLogMapper.xml
src/main/resources/mapper/TemporaryActivityLogMapper.xml
+18
-0
TencentCoreControllerTest.java
...tion/controller/tengxunyun/TencentCoreControllerTest.java
+0
-34
WeChatUserCoreControllerTest.java
...otion/controller/wechat/WeChatUserCoreControllerTest.java
+0
-3
TencentUtilsTest.java
...java/com/wangxiaolu/promotion/utils/TencentUtilsTest.java
+42
-0
没有找到文件。
pom.xml
浏览文件 @
0376ab51
...
@@ -162,6 +162,15 @@
...
@@ -162,6 +162,15 @@
<version>
4.4.0
</version>
<version>
4.4.0
</version>
</dependency>
</dependency>
<!-- 腾讯云-短信服务SDK-->
<!-- go to https://search.maven.org/search?q=tencentcloud-sdk-java and get the latest version. -->
<!-- 请到https://search.maven.org/search?q=tencentcloud-sdk-java查询所有版本,最新版本如下 -->
<!-- <dependency>-->
<!-- <groupId>com.tencentcloudapi</groupId>-->
<!-- <artifactId>tencentcloud-sdk-java</artifactId>-->
<!-- <version>3.1.1000</version>-->
<!-- </dependency>-->
</dependencies>
</dependencies>
<build>
<build>
...
...
src/main/java/com/wangxiaolu/promotion/controller/activity/temporary/TemporaryActivityCoreController.java
浏览文件 @
0376ab51
package
com
.
wangxiaolu
.
promotion
.
controller
.
activity
.
temporary
;
package
com
.
wangxiaolu
.
promotion
.
controller
.
activity
.
temporary
;
import
com.alibaba.fastjson.JSONObject
;
import
com.wangxiaolu.promotion.enums.activity.ClockType
;
import
com.wangxiaolu.promotion.enums.activity.ClockType
;
import
com.wangxiaolu.promotion.exception.ParamException
;
import
com.wangxiaolu.promotion.exception.ParamException
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto
;
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.dto.TemporaryClockDto
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityDataVo
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryClockVo
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryClockVo
;
import
com.wangxiaolu.promotion.result.basedata.RCode
;
import
com.wangxiaolu.promotion.result.basedata.RCode
;
import
com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityCoreService
;
import
com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityCoreService
;
...
@@ -14,11 +13,9 @@ import org.apache.commons.lang3.StringUtils;
...
@@ -14,11 +13,9 @@ import org.apache.commons.lang3.StringUtils;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.Objects
;
import
java.util.Objects
;
...
@@ -84,10 +81,14 @@ public class TemporaryActivityCoreController {
...
@@ -84,10 +81,14 @@ public class TemporaryActivityCoreController {
return
tempActivityCoreService
.
activityDataReportedSave
(
temActDto
);
return
tempActivityCoreService
.
activityDataReportedSave
(
temActDto
);
}
}
/**
/**
* todo 促销员[今日活动]数据提交审批
* 促销员[今日活动]数据提交审批
* 修改审批状态
*/
*/
@PutMapping
(
"/reported/approve/{reported_id}"
)
public
void
activityReportedUpdateApproveStatus
(
@PathVariable
(
"reported_id"
)
@NotNull
Long
id
)
{
tempActivityCoreService
.
activityReportedUpdateApproveStatus
(
id
);
}
// 上班打卡
// 上班打卡
...
...
src/main/java/com/wangxiaolu/promotion/controller/user/PromotionLoginController.java
浏览文件 @
0376ab51
...
@@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.RestController;
...
@@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.RestController;
/**
/**
* @author : liqiulin
* @author : liqiulin
* @date : 2024-03-28 17
* @date : 2024-03-28 17
* @describe :用户(销售)登录
* @describe :用户(销售)登录
暂未使用
*/
*/
@RestController
@RestController
...
...
src/main/java/com/wangxiaolu/promotion/controller/
tengxunyun/TencentCoreController
.java
→
src/main/java/com/wangxiaolu/promotion/controller/
user/UserSendSms
.java
浏览文件 @
0376ab51
package
com
.
wangxiaolu
.
promotion
.
controller
.
tengxunyun
;
package
com
.
wangxiaolu
.
promotion
.
controller
.
user
;
import
com.wangxiaolu.promotion.exception.ParamException
;
import
com.wangxiaolu.promotion.exception.ParamException
;
import
com.wangxiaolu.promotion.result.basedata.RCode
;
import
com.wangxiaolu.promotion.result.basedata.RCode
;
import
com.wangxiaolu.promotion.service.user.TencentCoreService
;
import
com.wangxiaolu.promotion.service.user.TencentCoreService
;
import
com.wangxiaolu.promotion.utils.DataUtils
;
import
com.wangxiaolu.promotion.utils.DataUtils
;
import
com.wangxiaolu.promotion.utils.TencentUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.Map
;
import
java.util.Map
;
/**
/**
* @author : liqiulin
* @author : liqiulin
* @date : 2024-04-15 11
* @date : 2024-05-15 15
* @describe : 对接腾讯云接口
* @describe :调用腾讯云短信
* 如:腾讯云短信
*/
*/
@Slf4j
@Slf4j
@RestController
@RestController
@RequestMapping
(
"/
tencent
"
)
@RequestMapping
(
"/
user/tencent/sms
"
)
public
class
TencentCoreController
{
public
class
UserSendSms
{
@Autowired
@Autowired
TencentCoreService
tencentCoreService
;
TencentCoreService
tencentCoreService
;
...
@@ -31,7 +28,7 @@ public class TencentCoreController {
...
@@ -31,7 +28,7 @@ public class TencentCoreController {
/**
/**
* 腾讯云短信
* 腾讯云短信
*/
*/
@PostMapping
(
"/send/
sms/
ver_code"
)
@PostMapping
(
"/send/ver_code"
)
public
void
sendSms
(
@RequestBody
Map
<
String
,
String
>
phoneInfo
)
{
public
void
sendSms
(
@RequestBody
Map
<
String
,
String
>
phoneInfo
)
{
String
phone
=
phoneInfo
.
get
(
"phone"
);
String
phone
=
phoneInfo
.
get
(
"phone"
);
if
(
StringUtils
.
isEmpty
(
phone
)
||
!
DataUtils
.
phonePattern
(
phone
))
{
if
(
StringUtils
.
isEmpty
(
phone
)
||
!
DataUtils
.
phonePattern
(
phone
))
{
...
...
src/main/java/com/wangxiaolu/promotion/controller/wechat/WeChatUserQueryController.java
浏览文件 @
0376ab51
...
@@ -7,6 +7,7 @@ import com.wangxiaolu.promotion.result.basedata.RCode;
...
@@ -7,6 +7,7 @@ import com.wangxiaolu.promotion.result.basedata.RCode;
import
com.wangxiaolu.promotion.service.wechat.WeChatUserQueryService
;
import
com.wangxiaolu.promotion.service.wechat.WeChatUserQueryService
;
import
com.wangxiaolu.promotion.utils.DataUtils
;
import
com.wangxiaolu.promotion.utils.DataUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -43,6 +44,11 @@ public class WeChatUserQueryController {
...
@@ -43,6 +44,11 @@ public class WeChatUserQueryController {
*/
*/
@PostMapping
(
"/temporary/phone_openid"
)
@PostMapping
(
"/temporary/phone_openid"
)
public
WxTemporaryInfoDto
getTemporaryInfoByOpenIdAndPhone
(
@RequestBody
WxTemporaryLoginVo
wxTemporaryLoginVo
)
{
public
WxTemporaryInfoDto
getTemporaryInfoByOpenIdAndPhone
(
@RequestBody
WxTemporaryLoginVo
wxTemporaryLoginVo
)
{
// todo 上线开放
// if (StringUtils.isBlank(wxTemporaryLoginVo.getOpenId()) || StringUtils.isBlank(wxTemporaryLoginVo.getPhone()) ){
// throw new ParamException(RCode.LOGIN_PARAM_ERROR, null);
// }
WxTemporaryInfoDto
temporaryInfoDto
=
weChatUserQueryService
.
getTemporaryInfoByOpenIdAndPhone
(
wxTemporaryLoginVo
.
getOpenId
(),
wxTemporaryLoginVo
.
getPhone
());
WxTemporaryInfoDto
temporaryInfoDto
=
weChatUserQueryService
.
getTemporaryInfoByOpenIdAndPhone
(
wxTemporaryLoginVo
.
getOpenId
(),
wxTemporaryLoginVo
.
getPhone
());
if
(
Objects
.
isNull
(
temporaryInfoDto
))
{
if
(
Objects
.
isNull
(
temporaryInfoDto
))
{
throw
new
ParamException
(
RCode
.
LOGIN_PARAM_ERROR
,
null
);
throw
new
ParamException
(
RCode
.
LOGIN_PARAM_ERROR
,
null
);
...
...
src/main/java/com/wangxiaolu/promotion/domain/activity/dao/TemporaryActivityLogDao.java
0 → 100644
浏览文件 @
0376ab51
package
com
.
wangxiaolu
.
promotion
.
domain
.
activity
.
dao
;
import
com.wangxiaolu.promotion.enums.activity.LogType
;
/**
* @author : liqiulin
* @date : 2024-05-15 13
* @describe :
*/
public
interface
TemporaryActivityLogDao
{
void
save
(
Integer
temporaryId
,
String
temporaryName
,
LogType
typeE
,
Long
flowDataId
,
Object
logObj
);
}
src/main/java/com/wangxiaolu/promotion/domain/activity/dao/impl/TemporaryActivityLogDaoImpl.java
0 → 100644
浏览文件 @
0376ab51
package
com
.
wangxiaolu
.
promotion
.
domain
.
activity
.
dao
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
import
com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityLogDao
;
import
com.wangxiaolu.promotion.domain.activity.mapper.TemporaryActivityLogMapper
;
import
com.wangxiaolu.promotion.domain.activity.mapper.entity.TemporaryActivityLogDO
;
import
com.wangxiaolu.promotion.enums.activity.LogType
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
* @author : liqiulin
* @date : 2024-05-15 13
* @describe :
*/
@Service
public
class
TemporaryActivityLogDaoImpl
implements
TemporaryActivityLogDao
{
@Autowired
TemporaryActivityLogMapper
temporaryActivityLogMapper
;
@Override
public
void
save
(
Integer
temporaryId
,
String
temporaryName
,
LogType
typeE
,
Long
flowDataId
,
Object
logObj
)
{
TemporaryActivityLogDO
tDo
=
new
TemporaryActivityLogDO
(
temporaryId
,
temporaryName
,
typeE
,
flowDataId
,
JSONObject
.
toJSONString
(
logObj
));
temporaryActivityLogMapper
.
insert
(
tDo
);
}
}
src/main/java/com/wangxiaolu/promotion/domain/activity/dao/impl/TemporaryActivityReportedDaoImpl.java
浏览文件 @
0376ab51
...
@@ -92,6 +92,9 @@ public class TemporaryActivityReportedDaoImpl implements TemporaryActivityReport
...
@@ -92,6 +92,9 @@ public class TemporaryActivityReportedDaoImpl implements TemporaryActivityReport
public
void
updateById
(
TemporaryActivityReportedDto
temActDto
)
{
public
void
updateById
(
TemporaryActivityReportedDto
temActDto
)
{
TemporaryActivityReportedDO
rDo
=
new
TemporaryActivityReportedDO
();
TemporaryActivityReportedDO
rDo
=
new
TemporaryActivityReportedDO
();
BeanUtils
.
copyProperties
(
temActDto
,
rDo
);
BeanUtils
.
copyProperties
(
temActDto
,
rDo
);
if
(
Objects
.
nonNull
(
temActDto
.
getApproveStatus
())){
rDo
.
setApproveStatus
(
temActDto
.
getApproveStatus
().
name
());
}
rDo
.
setModifyTime
(
new
Date
());
rDo
.
setModifyTime
(
new
Date
());
temporaryActivityReportedMapper
.
updateById
(
rDo
);
temporaryActivityReportedMapper
.
updateById
(
rDo
);
}
}
...
...
src/main/java/com/wangxiaolu/promotion/domain/activity/mapper/TemporaryActivityLogMapper.java
0 → 100644
浏览文件 @
0376ab51
package
com
.
wangxiaolu
.
promotion
.
domain
.
activity
.
mapper
;
import
com.wangxiaolu.promotion.domain.activity.mapper.entity.TemporaryActivityLogDO
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.springframework.stereotype.Repository
;
/**
* @author a02200059
* @description 针对表【temporary_activity_log】的数据库操作Mapper
* @createDate 2024-05-15 13:24:13
* @Entity com.wangxiaolu.promotion.domain.activity.mapper.entity.TemporaryActivityLogDO
*/
@Mapper
@Repository
public
interface
TemporaryActivityLogMapper
extends
BaseMapper
<
TemporaryActivityLogDO
>
{
}
src/main/java/com/wangxiaolu/promotion/domain/activity/mapper/entity/TemporaryActivityLogDO.java
0 → 100644
浏览文件 @
0376ab51
package
com
.
wangxiaolu
.
promotion
.
domain
.
activity
.
mapper
.
entity
;
import
cn.hutool.json.JSON
;
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.wangxiaolu.promotion.enums.activity.LogType
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @TableName temporary_activity_log
* 【促销员活动类】信息日志
*/
@TableName
(
value
=
"temporary_activity_log"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
TemporaryActivityLogDO
implements
Serializable
{
/**
*
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* temporary_info表id
*/
private
Integer
temporaryId
;
/**
* 促销员姓名
*/
private
String
temporaryName
;
/**
* 日志所在业务类型
*/
private
Integer
type
;
/**
* 日志所在业务名称
*/
private
String
typeName
;
/**
* 当前日志所属业务数据的id
*/
private
Long
flowDataId
;
/**
* 日志内容
*/
private
Object
dataDetail
;
/**
* 创建时间
*/
private
Date
createTime
;
@TableField
(
exist
=
false
)
private
static
final
long
serialVersionUID
=
1L
;
public
TemporaryActivityLogDO
(
Integer
temporaryId
,
String
temporaryName
,
LogType
typeE
,
Long
flowDataId
,
Object
dataDetail
)
{
this
.
temporaryId
=
temporaryId
;
this
.
type
=
typeE
.
getType
();
this
.
typeName
=
typeE
.
getName
();
this
.
dataDetail
=
dataDetail
;
this
.
temporaryName
=
temporaryName
;
this
.
flowDataId
=
flowDataId
;
}
}
\ No newline at end of file
src/main/java/com/wangxiaolu/promotion/domain/user/dao/QinCeEmployeeDao.java
浏览文件 @
0376ab51
package
com
.
wangxiaolu
.
promotion
.
domain
.
user
.
dao
;
package
com
.
wangxiaolu
.
promotion
.
domain
.
user
.
dao
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.QinCeEmployeeDto
;
/**
/**
* @author : liqiulin
* @author : liqiulin
...
@@ -13,4 +14,9 @@ public interface QinCeEmployeeDao {
...
@@ -13,4 +14,9 @@ public interface QinCeEmployeeDao {
* 勤策人员数据同步
* 勤策人员数据同步
*/
*/
void
employeeSyncTask
(
JSONArray
responseDatas
);
void
employeeSyncTask
(
JSONArray
responseDatas
);
/**
* 根据勤策ID查询人员信息
*/
QinCeEmployeeDto
selectOntByQcId
(
String
qcId
);
}
}
src/main/java/com/wangxiaolu/promotion/domain/user/dao/TemporaryInfoDao.java
浏览文件 @
0376ab51
...
@@ -23,4 +23,6 @@ public interface TemporaryInfoDao {
...
@@ -23,4 +23,6 @@ public interface TemporaryInfoDao {
* 根据OpenId、phone查询人员是否存在(非保密信息)
* 根据OpenId、phone查询人员是否存在(非保密信息)
*/
*/
WxTemporaryInfoDto
getUnimportantData
(
String
openId
,
String
phone
);
WxTemporaryInfoDto
getUnimportantData
(
String
openId
,
String
phone
);
WxTemporaryInfoDto
selectOneById
(
Integer
id
);
}
}
src/main/java/com/wangxiaolu/promotion/domain/user/dao/impl/QinCeEmployeeDaoImpl.java
浏览文件 @
0376ab51
...
@@ -6,7 +6,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
...
@@ -6,7 +6,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import
com.wangxiaolu.promotion.domain.user.dao.QinCeEmployeeDao
;
import
com.wangxiaolu.promotion.domain.user.dao.QinCeEmployeeDao
;
import
com.wangxiaolu.promotion.domain.user.mapper.QinceEmployeeMapper
;
import
com.wangxiaolu.promotion.domain.user.mapper.QinceEmployeeMapper
;
import
com.wangxiaolu.promotion.domain.user.mapper.entity.QinCeEmployeeDO
;
import
com.wangxiaolu.promotion.domain.user.mapper.entity.QinCeEmployeeDO
;
import
com.wangxiaolu.promotion.domain.user.mapper.entity.TemporaryInfoDO
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.QinCeEmployeeDto
;
import
com.wangxiaolu.promotion.pojo.user.dto.WxTemporaryInfoDto
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -50,4 +54,28 @@ public class QinCeEmployeeDaoImpl implements QinCeEmployeeDao {
...
@@ -50,4 +54,28 @@ public class QinCeEmployeeDaoImpl implements QinCeEmployeeDao {
}
}
}
}
@Override
public
QinCeEmployeeDto
selectOntByQcId
(
String
qcId
)
{
LambdaQueryWrapper
<
QinCeEmployeeDO
>
qw
=
new
LambdaQueryWrapper
<>();
qw
.
eq
(
QinCeEmployeeDO:
:
getQcId
,
qcId
);
QinCeEmployeeDO
qcEmpDo
=
qinceEmployeeMapper
.
selectOne
(
qw
);
return
transitionDto
(
qcEmpDo
);
}
/**
* DO to DTO (单个对象)
*
* @param qcEmpDo DO对象
* @return DTO对象
*/
private
QinCeEmployeeDto
transitionDto
(
QinCeEmployeeDO
qcEmpDo
)
{
QinCeEmployeeDto
qcEmpDto
=
null
;
if
(!
Objects
.
isNull
(
qcEmpDo
))
{
qcEmpDto
=
new
QinCeEmployeeDto
();
BeanUtils
.
copyProperties
(
qcEmpDo
,
qcEmpDto
);
}
return
qcEmpDto
;
}
}
}
src/main/java/com/wangxiaolu/promotion/domain/user/dao/impl/TemporaryInfoDaoImpl.java
浏览文件 @
0376ab51
...
@@ -48,6 +48,12 @@ public class TemporaryInfoDaoImpl implements TemporaryInfoDao {
...
@@ -48,6 +48,12 @@ public class TemporaryInfoDaoImpl implements TemporaryInfoDao {
return
transitionDto
(
temDo
);
return
transitionDto
(
temDo
);
}
}
@Override
public
WxTemporaryInfoDto
selectOneById
(
Integer
id
)
{
TemporaryInfoDO
temDo
=
temporaryInfoMapper
.
selectById
(
id
);
return
transitionDto
(
temDo
);
}
private
LambdaQueryWrapper
<
TemporaryInfoDO
>
buildQueryList
(
TemporaryWrapper
tw
){
private
LambdaQueryWrapper
<
TemporaryInfoDO
>
buildQueryList
(
TemporaryWrapper
tw
){
LambdaQueryWrapper
<
TemporaryInfoDO
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
TemporaryInfoDO
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
if
(!
StringUtils
.
isEmpty
(
tw
.
getOpenId
())){
if
(!
StringUtils
.
isEmpty
(
tw
.
getOpenId
())){
...
...
src/main/java/com/wangxiaolu/promotion/domain/user/mapper/entity/TemporaryInfoDO.java
浏览文件 @
0376ab51
...
@@ -43,35 +43,30 @@ public class TemporaryInfoDO implements Serializable {
...
@@ -43,35 +43,30 @@ public class TemporaryInfoDO implements Serializable {
private
String
openId
;
private
String
openId
;
/**
/**
*
头像url
*
此促销员的任务人-勤策id
*/
*/
private
String
avatarUrl
;
String
chargerQcId
;
/**
/**
*
头像云存储id
*
此促销员的任务人姓名
*/
*/
private
String
avatarUrlFieldId
;
String
chargerName
;
/**
/**
*
身份证正面
url
*
头像
url
*/
*/
private
String
idenFrontPhoto
Url
;
private
String
avatar
Url
;
/**
/**
* 身份证正面
云存储id
* 身份证正面
url
*/
*/
private
String
idenFrontPhoto
FieldId
;
private
String
idenFrontPhoto
Url
;
/**
/**
* 身份证反面url
* 身份证反面url
*/
*/
private
String
idenReversePhotoUrl
;
private
String
idenReversePhotoUrl
;
/**
* 身份证反面云存储id
*/
private
String
idenReversePhotoFieldId
;
/**
/**
* 创建时间
* 创建时间
*/
*/
...
...
src/main/java/com/wangxiaolu/promotion/enums/activity/LogType.java
0 → 100644
浏览文件 @
0376ab51
package
com
.
wangxiaolu
.
promotion
.
enums
.
activity
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* @author : liqiulin
* @date : 2024-05-15 13
* @describe : 促销员日志类型分类
*/
@Getter
@AllArgsConstructor
public
enum
LogType
{
/**
* 促销员活动日志
*/
t_1
(
1
,
"打卡"
),
t_2
(
2
,
"活动数据保存"
),
t_3
(
3
,
"活动数据提交审批"
),
;
private
Integer
type
;
private
String
name
;
}
src/main/java/com/wangxiaolu/promotion/pojo/activity/temporary/dto/QinCeEmployeeDto.java
0 → 100644
浏览文件 @
0376ab51
package
com
.
wangxiaolu
.
promotion
.
pojo
.
activity
.
temporary
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
/**
* @author : liqiulin
* @date : 2024-03-29 16
* @describe :
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors
(
chain
=
true
)
public
class
QinCeEmployeeDto
{
/**
* 主键id
*/
private
Integer
id
;
/**
* 勤策的员工唯一标识
* 对应[QinCeEmployeeDTO.id]
*/
private
String
qcId
;
/**
* 来源第三方系统的员工唯一标识
*/
private
String
empId
;
/**
* 员工登录帐号
*/
private
String
empCode
;
/**
* 姓名
*/
private
String
empName
;
/**
* 员工别名
*/
private
String
aliasName
;
/**
* 人员编码
*/
private
String
employeeCode
;
/**
* 员工手机号码
*/
private
String
empMobile
;
/**
* 邮箱
*/
private
String
empEmail
;
/**
* 来源第三方系统隶属部门
*/
private
String
empOrgId
;
/**
* 隶属部门编码
*/
private
String
empOrgCode
;
/**
* 勤策部门唯一标识
* 对应QinCeDepartmentDO.qcId
*/
private
String
waiqin365OrgId
;
/**
* 来源第三方系统,员工上级唯一标识
*/
private
String
empParentId
;
/**
* 员工账号状态。0:销户,1:正常,2:停用
*/
private
String
empStatus
;
/**
* 勤策经销商唯一标识
*/
private
String
dealerId
;
/**
* 经销商中文名称
*/
private
String
dealerName
;
/**
* 勤策职务唯一标识
*/
private
String
waiqin365PositionId
;
/**
* 职务编码
*/
private
String
empPositionCode
;
/**
* 职务名称
*/
private
String
empPosition
;
/**
* 勤策岗位唯一标识
*/
private
String
waiqin365JobId
;
/**
* 岗位编码
*/
private
String
empJobCode
;
/**
* 岗位名称
*/
private
String
empJob
;
}
src/main/java/com/wangxiaolu/promotion/pojo/user/dto/WxTemporaryInfoDto.java
浏览文件 @
0376ab51
...
@@ -33,12 +33,6 @@ public class WxTemporaryInfoDto {
...
@@ -33,12 +33,6 @@ public class WxTemporaryInfoDto {
*/
*/
String
avatarUrl
;
String
avatarUrl
;
/**
* 头像云存储文件id
*/
String
avatarUrlFieldId
;
/**
/**
* 姓名
* 姓名
*/
*/
...
@@ -59,21 +53,11 @@ public class WxTemporaryInfoDto {
...
@@ -59,21 +53,11 @@ public class WxTemporaryInfoDto {
*/
*/
String
idenFrontPhotoUrl
;
String
idenFrontPhotoUrl
;
/**
* 身份证正面照
*/
String
idenFrontPhotoFieldId
;
/**
/**
* 身份证反面照
* 身份证反面照
*/
*/
String
idenReversePhotoUrl
;
String
idenReversePhotoUrl
;
/**
* 身份证反面照
*/
String
idenReversePhotoFieldId
;
/**
/**
* 详细地址
* 详细地址
*/
*/
...
@@ -82,5 +66,14 @@ public class WxTemporaryInfoDto {
...
@@ -82,5 +66,14 @@ public class WxTemporaryInfoDto {
/**
/**
* 创建时间
* 创建时间
*/
*/
private
Date
createTime
;
Date
createTime
;
/**
* 此促销员的任务人-勤策id
*/
String
chargerQcId
;
/**
* 此促销员的任务人姓名
*/
String
chargerName
;
}
}
src/main/java/com/wangxiaolu/promotion/pojo/user/vo/WxTemporaryEnrollVo.java
浏览文件 @
0376ab51
...
@@ -30,12 +30,6 @@ public class WxTemporaryEnrollVo {
...
@@ -30,12 +30,6 @@ public class WxTemporaryEnrollVo {
@NotBlank
(
message
=
"请上传头像"
)
@NotBlank
(
message
=
"请上传头像"
)
String
avatarUrl
;
String
avatarUrl
;
/**
* 头像云存储文件id
*/
String
avatarUrlFieldId
;
/**
/**
* 姓名
* 姓名
*/
*/
...
@@ -60,24 +54,12 @@ public class WxTemporaryEnrollVo {
...
@@ -60,24 +54,12 @@ public class WxTemporaryEnrollVo {
@NotBlank
(
message
=
"请上传身份证正面照"
)
@NotBlank
(
message
=
"请上传身份证正面照"
)
String
idenFrontPhotoUrl
;
String
idenFrontPhotoUrl
;
/**
* 身份证正面照
*/
@NotBlank
(
message
=
"请上传身份证正面照"
)
String
idenFrontPhotoFieldId
;
/**
/**
* 身份证反面照
* 身份证反面照
*/
*/
@NotBlank
(
message
=
"请上传身份证反面照"
)
@NotBlank
(
message
=
"请上传身份证反面照"
)
String
idenReversePhotoUrl
;
String
idenReversePhotoUrl
;
/**
* 身份证反面照
*/
@NotBlank
(
message
=
"请上传身份证反面照"
)
String
idenReversePhotoFieldId
;
/**
/**
* 详细地址
* 详细地址
*/
*/
...
@@ -90,21 +72,9 @@ public class WxTemporaryEnrollVo {
...
@@ -90,21 +72,9 @@ public class WxTemporaryEnrollVo {
String
phoneCode
;
String
phoneCode
;
// 暂时用不到的参数
/**
* js传过来的临时登录code
*/
// @NotBlank(message = "微信登录凭证错误")
// String jsCode;
/**
* 用户信息的加密文字
*/
// String encryptedData;
/**
/**
*
标识
*
此促销员的任务人-勤策id
*/
*/
// String iv
;
String
chargerQcId
=
"8453472204758793216"
;
}
}
src/main/java/com/wangxiaolu/promotion/result/advice/ControllerExceptionAdvice.java
浏览文件 @
0376ab51
...
@@ -60,6 +60,9 @@ public class ControllerExceptionAdvice {
...
@@ -60,6 +60,9 @@ public class ControllerExceptionAdvice {
@ExceptionHandler
({
DataIntegrityViolationException
.
class
})
@ExceptionHandler
({
DataIntegrityViolationException
.
class
})
public
R
dataIntegrityViolationExceptionHandler
(
DataIntegrityViolationException
e
)
{
public
R
dataIntegrityViolationExceptionHandler
(
DataIntegrityViolationException
e
)
{
String
msg
=
e
.
getMessage
();
String
msg
=
e
.
getMessage
();
if
(
msg
.
contains
(
"java.sql.SQLIntegrityConstraintViolationException"
)){
return
dbConstraintViolationExceptionHandler
(
new
SQLIntegrityConstraintViolationException
(
msg
));
}
return
new
R
(
RCode
.
API_DATA_ERROR
.
getCode
(),
RCode
.
API_DATA_ERROR
.
getMsg
(),
msg
);
return
new
R
(
RCode
.
API_DATA_ERROR
.
getCode
(),
RCode
.
API_DATA_ERROR
.
getMsg
(),
msg
);
}
}
}
}
src/main/java/com/wangxiaolu/promotion/result/basedata/RCode.java
浏览文件 @
0376ab51
...
@@ -25,6 +25,7 @@ public enum RCode implements StatusCode {
...
@@ -25,6 +25,7 @@ public enum RCode implements StatusCode {
API_ERROR
(
2000
,
"业务异常"
),
API_ERROR
(
2000
,
"业务异常"
),
API_DATA_ERROR
(
2001
,
"业务数据异常"
),
API_DATA_ERROR
(
2001
,
"业务数据异常"
),
DATA_HAVE_ERROR
(
2002
,
"数据已存在,不可新增"
),
DATA_HAVE_ERROR
(
2002
,
"数据已存在,不可新增"
),
STATUS_UPDATE_ERROR
(
2003
,
"当前状态不可修改"
),
/**
/**
* user
* user
...
@@ -37,6 +38,7 @@ public enum RCode implements StatusCode {
...
@@ -37,6 +38,7 @@ public enum RCode implements StatusCode {
LOGIN_USER_IS_NULL_ERROR
(
3004
,
"账号未注册"
),
LOGIN_USER_IS_NULL_ERROR
(
3004
,
"账号未注册"
),
CLOCK_DETAIL_ERROR
(
3005
,
"打卡信息错误"
),
CLOCK_DETAIL_ERROR
(
3005
,
"打卡信息错误"
),
CLOCK_DETAIL_TIME_ERROR
(
3006
,
"不在打卡时间范围内"
),
CLOCK_DETAIL_TIME_ERROR
(
3006
,
"不在打卡时间范围内"
),
CHARGER_ID_ERROR
(
3007
,
"未找到负责人"
),
/**
/**
* 腾讯云
* 腾讯云
...
...
src/main/java/com/wangxiaolu/promotion/service/activity/temporary/TemporaryActivityCoreService.java
浏览文件 @
0376ab51
...
@@ -12,8 +12,6 @@ public interface TemporaryActivityCoreService {
...
@@ -12,8 +12,6 @@ public interface TemporaryActivityCoreService {
/**
/**
* 活动上报保存
* 活动上报保存
*
* @return 生成id
*/
*/
long
activityDataReportedSave
(
TemporaryActivityReportedDto
temActDto
);
long
activityDataReportedSave
(
TemporaryActivityReportedDto
temActDto
);
...
@@ -27,4 +25,8 @@ public interface TemporaryActivityCoreService {
...
@@ -27,4 +25,8 @@ public interface TemporaryActivityCoreService {
*/
*/
void
clockInTodayActivity
(
TemporaryClockDto
dto
,
Integer
clockType
);
void
clockInTodayActivity
(
TemporaryClockDto
dto
,
Integer
clockType
);
/**
* 活动上报数据修改审批状态
*/
void
activityReportedUpdateApproveStatus
(
Long
id
);
}
}
src/main/java/com/wangxiaolu/promotion/service/activity/temporary/impl/TemporaryActivityCoreServiceImpl.java
浏览文件 @
0376ab51
package
com
.
wangxiaolu
.
promotion
.
service
.
activity
.
temporary
.
impl
;
package
com
.
wangxiaolu
.
promotion
.
service
.
activity
.
temporary
.
impl
;
import
com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityClockDao
;
import
com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityClockDao
;
import
com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityLogDao
;
import
com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityPhotoDao
;
import
com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityPhotoDao
;
import
com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityReportedDao
;
import
com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityReportedDao
;
import
com.wangxiaolu.promotion.domain.user.dao.QinCeClienteleStoreDao
;
import
com.wangxiaolu.promotion.domain.user.dao.QinCeClienteleStoreDao
;
import
com.wangxiaolu.promotion.domain.user.dao.TemporaryInfoDao
;
import
com.wangxiaolu.promotion.domain.user.wrapperQo.StoreWrapper
;
import
com.wangxiaolu.promotion.domain.user.wrapperQo.StoreWrapper
;
import
com.wangxiaolu.promotion.enums.activity.ActivityPhotoType
;
import
com.wangxiaolu.promotion.enums.activity.ActivityPhotoType
;
import
com.wangxiaolu.promotion.enums.activity.ClockType
;
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.enums.activity.TemActApproveStatus
;
import
com.wangxiaolu.promotion.exception.FlowException
;
import
com.wangxiaolu.promotion.exception.FlowException
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto
;
import
com.wangxiaolu.promotion.pojo.user.dto.QinCeClienteleStoreDto
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto
;
import
com.wangxiaolu.promotion.pojo.user.dto.QinCeClienteleStoreDto
;
import
com.wangxiaolu.promotion.pojo.user.dto.WxTemporaryInfoDto
;
import
com.wangxiaolu.promotion.result.basedata.RCode
;
import
com.wangxiaolu.promotion.result.basedata.RCode
;
import
com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityCoreService
;
import
com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityCoreService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -43,6 +47,12 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
...
@@ -43,6 +47,12 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
@Autowired
@Autowired
private
TemporaryActivityPhotoDao
tempActivityPhotoDao
;
private
TemporaryActivityPhotoDao
tempActivityPhotoDao
;
@Autowired
private
TemporaryActivityLogDao
tempActivityLogDao
;
@Autowired
private
TemporaryInfoDao
temporaryInfoDao
;
/**
/**
* 活动上报保存
* 活动上报保存
...
@@ -52,27 +62,28 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
...
@@ -52,27 +62,28 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
@Override
public
long
activityDataReportedSave
(
TemporaryActivityReportedDto
temActDto
)
{
public
long
activityDataReportedSave
(
TemporaryActivityReportedDto
temActDto
)
{
/**
// 判断是否已存在上报数据
* 判断是否已存在上报数据
*/
TemporaryActivityReportedDto
haveDate
=
temporaryActivityReportedDao
.
findOneByCurrentDate
(
temActDto
.
getTemporaryId
());
TemporaryActivityReportedDto
haveDate
=
temporaryActivityReportedDao
.
findOneByCurrentDate
(
temActDto
.
getTemporaryId
());
if
(
Objects
.
nonNull
(
haveDate
))
{
if
(
Objects
.
nonNull
(
haveDate
))
{
throw
new
FlowException
(
RCode
.
DATA_HAVE_ERROR
,
null
);
throw
new
FlowException
(
RCode
.
DATA_HAVE_ERROR
,
null
);
}
}
// 初始化任务状态:已保存
temActDto
.
setApproveStatus
(
TemActApproveStatus
.
SUBMITTED
);
temActDto
.
setApproveStatus
(
TemActApproveStatus
.
SUBMITTED
);
// 根据storeQcId查询店铺信息
// 根据storeQcId查询店铺信息
,进行店铺信息补充
QinCeClienteleStoreDto
storeDto
=
qinCeClienteleStoreDao
.
getOneStore
(
new
StoreWrapper
().
setQcId
(
temActDto
.
getStoreQcId
()));
QinCeClienteleStoreDto
storeDto
=
qinCeClienteleStoreDao
.
getOneStore
(
new
StoreWrapper
().
setQcId
(
temActDto
.
getStoreQcId
()));
temActDto
.
setStoreName
(
storeDto
.
getStoreName
()).
setStoreAddr
(
storeDto
.
getStoreAddr
());
temActDto
.
setStoreName
(
storeDto
.
getStoreName
()).
setStoreAddr
(
storeDto
.
getStoreAddr
());
// 保存活动数据 temporary_activity_reported
// 保存活动数据 temporary_activity_reported
long
reportedId
=
temporaryActivityReportedDao
.
activityDataSave
(
temActDto
);
long
reportedId
=
temporaryActivityReportedDao
.
activityDataSave
(
temActDto
);
temActDto
.
setId
(
reportedId
);
temActDto
.
setId
(
reportedId
);
/**
* 保存图片
// 保存图片
*/
saveActivityPhoto
(
temActDto
);
saveActivityPhoto
(
temActDto
);
// 日志保存
tempActivityLogDao
.
save
(
temActDto
.
getTemporaryId
(),
temActDto
.
getTemporaryName
(),
LogType
.
t_2
,
temActDto
.
getId
(),
temActDto
);
return
reportedId
;
return
reportedId
;
}
}
...
@@ -80,16 +91,20 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
...
@@ -80,16 +91,20 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
* 活动信息修改
* 活动信息修改
* 1、判断活动是否可以修改
* 1、判断活动是否可以修改
*/
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
@Override
public
void
activityDataReportedUpdate
(
TemporaryActivityReportedDto
temActDto
)
{
public
void
activityDataReportedUpdate
(
TemporaryActivityReportedDto
temActDto
)
{
// 图片增量保存
// 图片增量保存
saveActivityPhoto
(
temActDto
);
saveActivityPhoto
(
temActDto
);
temporaryActivityReportedDao
.
updateById
(
temActDto
);
temporaryActivityReportedDao
.
updateById
(
temActDto
);
// 日志保存
tempActivityLogDao
.
save
(
temActDto
.
getTemporaryId
(),
temActDto
.
getTemporaryName
(),
LogType
.
t_2
,
temActDto
.
getId
(),
temActDto
);
}
}
/**
/**
* 促销员当日打卡信息保存
* 促销员当日打卡信息保存
*/
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
@Override
public
void
clockInTodayActivity
(
TemporaryClockDto
dto
,
Integer
clockType
)
{
public
void
clockInTodayActivity
(
TemporaryClockDto
dto
,
Integer
clockType
)
{
log
.
info
(
"促销员当日打卡[type-{}]信息保存:{}"
,
clockType
,
dto
.
toString
());
log
.
info
(
"促销员当日打卡[type-{}]信息保存:{}"
,
clockType
,
dto
.
toString
());
...
@@ -100,6 +115,37 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
...
@@ -100,6 +115,37 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
}
}
// 根据ID保存图片
// 根据ID保存图片
saveClockPhoto
(
dto
,
clockType
);
saveClockPhoto
(
dto
,
clockType
);
// 日志保存
tempActivityLogDao
.
save
(
dto
.
getTemporaryId
(),
dto
.
getTemporaryName
(),
LogType
.
t_1
,
dto
.
getId
(),
dto
);
}
/**
* 修改审批状态
*
* @param id 上报记录id
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
activityReportedUpdateApproveStatus
(
Long
id
)
{
// 判断此id任务是否存在,并且是否满足提交审批条件
TemporaryActivityReportedDto
reportedDto
=
temporaryActivityReportedDao
.
findOneById
(
id
);
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
());
TemporaryActivityReportedDto
updateDto
=
new
TemporaryActivityReportedDto
()
.
setId
(
id
)
.
setApproveName
(
wxTemporaryInfoDto
.
getChargerName
())
.
setApproveStatus
(
TemActApproveStatus
.
IN_APPROVAL
);
// 修改审批
temporaryActivityReportedDao
.
updateById
(
updateDto
);
// 日志保存
tempActivityLogDao
.
save
(
reportedDto
.
getTemporaryId
(),
reportedDto
.
getTemporaryName
(),
LogType
.
t_3
,
updateDto
.
getId
(),
updateDto
);
}
}
/**
/**
...
...
src/main/java/com/wangxiaolu/promotion/service/user/impl/TencentCoreServiceImpl.java
浏览文件 @
0376ab51
...
@@ -44,7 +44,8 @@ public class TencentCoreServiceImpl implements TencentCoreService {
...
@@ -44,7 +44,8 @@ public class TencentCoreServiceImpl implements TencentCoreService {
log
.
info
(
"腾讯云短信,发送验证码:{}-{}"
,
phone
,
phoneVerCode
);
log
.
info
(
"腾讯云短信,发送验证码:{}-{}"
,
phone
,
phoneVerCode
);
redisCache
.
addToMinute
(
redisKey
,
phoneVerCode
,
overdueLong
);
redisCache
.
addToMinute
(
redisKey
,
phoneVerCode
,
overdueLong
);
// todo boolean succss = tencentUtils.sendSmsPhoneVerCOde(phone, phoneVerCode);
// todo 上线开放
// boolean succss = tencentUtils.sendSmsPhoneVerCode(phone, phoneVerCode);
boolean
succss
=
true
;
boolean
succss
=
true
;
if
(!
succss
)
{
if
(!
succss
)
{
redisCache
.
removeKey
(
redisKey
);
redisCache
.
removeKey
(
redisKey
);
...
...
src/main/java/com/wangxiaolu/promotion/service/wechat/impl/WeChatUserCoreServiceImpl.java
浏览文件 @
0376ab51
package
com
.
wangxiaolu
.
promotion
.
service
.
wechat
.
impl
;
package
com
.
wangxiaolu
.
promotion
.
service
.
wechat
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.wangxiaolu.promotion.domain.user.dao.QinCeEmployeeDao
;
import
com.wangxiaolu.promotion.domain.user.dao.TemporaryInfoDao
;
import
com.wangxiaolu.promotion.domain.user.dao.TemporaryInfoDao
;
import
com.wangxiaolu.promotion.exception.ParamException
;
import
com.wangxiaolu.promotion.pojo.activity.temporary.dto.QinCeEmployeeDto
;
import
com.wangxiaolu.promotion.pojo.user.dto.WxTemporaryInfoDto
;
import
com.wangxiaolu.promotion.pojo.user.dto.WxTemporaryInfoDto
;
import
com.wangxiaolu.promotion.result.basedata.RCode
;
import
com.wangxiaolu.promotion.service.wechat.WeChatUserCoreService
;
import
com.wangxiaolu.promotion.service.wechat.WeChatUserCoreService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Objects
;
/**
/**
* @author : liqiulin
* @author : liqiulin
* @date : 2024-04-08 16
* @date : 2024-04-08 16
...
@@ -20,11 +26,20 @@ public class WeChatUserCoreServiceImpl implements WeChatUserCoreService {
...
@@ -20,11 +26,20 @@ public class WeChatUserCoreServiceImpl implements WeChatUserCoreService {
@Autowired
@Autowired
TemporaryInfoDao
temporaryInfoDao
;
TemporaryInfoDao
temporaryInfoDao
;
@Autowired
QinCeEmployeeDao
qinCeEmployeeDao
;
/**
/**
* 保存促销员用户信息
* 保存促销员用户信息
*/
*/
@Override
@Override
public
boolean
saveWxUserInfoTemporary
(
WxTemporaryInfoDto
temporaryDto
)
{
public
boolean
saveWxUserInfoTemporary
(
WxTemporaryInfoDto
temporaryDto
)
{
// 根据chargerQcId查询人员详情
QinCeEmployeeDto
qcEmpDto
=
qinCeEmployeeDao
.
selectOntByQcId
(
temporaryDto
.
getChargerQcId
());
if
(
Objects
.
isNull
(
qcEmpDto
)){
throw
new
ParamException
(
RCode
.
CHARGER_ID_ERROR
,
null
);
}
temporaryDto
.
setChargerName
(
qcEmpDto
.
getEmpName
());
int
saveId
=
temporaryInfoDao
.
saveWxTemporaryInfo
(
temporaryDto
);
int
saveId
=
temporaryInfoDao
.
saveWxTemporaryInfo
(
temporaryDto
);
log
.
info
(
"微信-促销员[{}]:[{}]注册成功:{}"
,
saveId
,
temporaryDto
.
getName
(),
JSONObject
.
toJSONString
(
temporaryDto
));
log
.
info
(
"微信-促销员[{}]:[{}]注册成功:{}"
,
saveId
,
temporaryDto
.
getName
(),
JSONObject
.
toJSONString
(
temporaryDto
));
return
saveId
>
0
;
return
saveId
>
0
;
...
...
src/main/java/com/wangxiaolu/promotion/utils/TencentUtils.java
浏览文件 @
0376ab51
...
@@ -53,7 +53,7 @@ public class TencentUtils {
...
@@ -53,7 +53,7 @@ public class TencentUtils {
*
*
* @param phone 手机号(1个)
* @param phone 手机号(1个)
*/
*/
public
boolean
sendSmsPhoneVerC
O
de
(
String
phone
,
String
phoneVerCode
)
{
public
boolean
sendSmsPhoneVerC
o
de
(
String
phone
,
String
phoneVerCode
)
{
String
signName
=
signNameA
;
String
signName
=
signNameA
;
String
templateId
=
templateIdA
;
String
templateId
=
templateIdA
;
...
@@ -62,7 +62,7 @@ public class TencentUtils {
...
@@ -62,7 +62,7 @@ public class TencentUtils {
SendSmsResponse
res
=
sendSms
(
templateParamSet
,
phoneNumberSet
,
signName
,
templateId
);
SendSmsResponse
res
=
sendSms
(
templateParamSet
,
phoneNumberSet
,
signName
,
templateId
);
SendStatus
sendStatus
=
res
.
getSendStatusSet
()[
0
];
SendStatus
sendStatus
=
res
.
getSendStatusSet
()[
0
];
if
(
StringUtils
.
isBlank
(
sendStatus
.
getCode
())
||
!
sendStatus
.
getCode
().
contains
(
"O
K
"
))
{
if
(
StringUtils
.
isBlank
(
sendStatus
.
getCode
())
||
!
sendStatus
.
getCode
().
contains
(
"O
k
"
))
{
return
false
;
return
false
;
}
}
return
true
;
return
true
;
...
...
src/main/resources/application.yml
浏览文件 @
0376ab51
...
@@ -38,6 +38,7 @@ wx:
...
@@ -38,6 +38,7 @@ wx:
token_secret
:
sXwHPj#U#xmim^ts
token_secret
:
sXwHPj#U#xmim^ts
tengxunyun
:
tengxunyun
:
# 腾讯云个人账号信息
secret_d
:
AKIDVt353sWyY0GXn0ANa0YyGdwDIBtjQwGS
secret_d
:
AKIDVt353sWyY0GXn0ANa0YyGdwDIBtjQwGS
secret_key
:
SBqJcrxypSxeGOPF81mLgsANXo3ALhz7
secret_key
:
SBqJcrxypSxeGOPF81mLgsANXo3ALhz7
sms
:
sms
:
...
@@ -47,9 +48,9 @@ tengxunyun:
...
@@ -47,9 +48,9 @@ tengxunyun:
ap_beijing
:
ap-beijing
ap_beijing
:
ap-beijing
#应用ID(默认应用)
#应用ID(默认应用)
sdk_app_id_defult
:
1400903035
sdk_app_id_defult
:
1400903035
#
模板名称-手机验证码
#
签名内容
sign_name_a
:
北京王小卤
sign_name_a
:
北京王小卤
#模板ID
-手机验证码
#模板ID
template_id_a
:
2127434
template_id_a
:
2127434
#验证码过期时间(分钟)
#验证码过期时间(分钟)
overdue_long
:
5
overdue_long
:
5
...
...
src/main/resources/mapper/TemporaryActivityLogMapper.xml
0 → 100644
浏览文件 @
0376ab51
<?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.activity.mapper.TemporaryActivityLogMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.wangxiaolu.promotion.domain.activity.mapper.entity.TemporaryActivityLogDO"
>
<id
property=
"id"
column=
"id"
jdbcType=
"BIGINT"
/>
<result
property=
"temporaryId"
column=
"temporary_id"
jdbcType=
"INTEGER"
/>
<result
property=
"dataDetail"
column=
"data_detail"
jdbcType=
"OTHER"
/>
<result
property=
"createTime"
column=
"create_time"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id,temporary_id,data_detail,
create_time
</sql>
</mapper>
src/test/java/com/wangxiaolu/promotion/controller/tengxunyun/TencentCoreControllerTest.java
deleted
100644 → 0
浏览文件 @
8628ecf9
package
com
.
wangxiaolu
.
promotion
.
controller
.
tengxunyun
;
import
org.junit.jupiter.api.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
java.util.HashMap
;
import
java.util.Map
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.*;
/**
* @author : liqiulin
* @date : 2024-04-15 14
* @describe :
*/
@SpringBootTest
@RunWith
(
SpringRunner
.
class
)
class
TencentCoreControllerTest
{
@Autowired
TencentCoreController
tencentCoreController
;
@Test
void
sendSms
()
{
Map
<
String
,
String
>
phoneInfo
=
new
HashMap
<>();
phoneInfo
.
put
(
"phone"
,
"15701654502"
);
tencentCoreController
.
sendSms
(
phoneInfo
);
}
}
\ No newline at end of file
src/test/java/com/wangxiaolu/promotion/controller/wechat/WeChatUserCoreControllerTest.java
浏览文件 @
0376ab51
...
@@ -29,12 +29,9 @@ class WeChatUserCoreControllerTest {
...
@@ -29,12 +29,9 @@ class WeChatUserCoreControllerTest {
.
setAvatarUrl
(
"头像Url"
)
.
setAvatarUrl
(
"头像Url"
)
.
setName
(
"姓名"
)
.
setName
(
"姓名"
)
.
setPhone
(
"手机号"
)
.
setPhone
(
"手机号"
)
.
setAvatarUrlFieldId
(
"avatarUrlFieldId"
)
.
setIdenNumber
(
"身份证号"
)
.
setIdenNumber
(
"身份证号"
)
.
setIdenFrontPhotoUrl
(
"身份证正面照"
)
.
setIdenFrontPhotoUrl
(
"身份证正面照"
)
.
setIdenFrontPhotoFieldId
(
"身份证正面照Id"
)
.
setIdenReversePhotoUrl
(
"身份证反面照"
)
.
setIdenReversePhotoUrl
(
"身份证反面照"
)
.
setIdenReversePhotoFieldId
(
"身份证反面照Id"
)
.
setPhoneCode
(
"手机验证码"
)
.
setPhoneCode
(
"手机验证码"
)
;
;
System
.
out
.
println
(
JSONObject
.
toJSONString
(
vo
));
System
.
out
.
println
(
JSONObject
.
toJSONString
(
vo
));
...
...
src/test/java/com/wangxiaolu/promotion/utils/TencentUtilsTest.java
0 → 100644
浏览文件 @
0376ab51
package
com
.
wangxiaolu
.
promotion
.
utils
;
import
com.alibaba.fastjson.JSONObject
;
import
com.tencentcloudapi.sms.v20210111.models.SendSmsResponse
;
import
com.tencentcloudapi.sms.v20210111.models.SendStatus
;
import
org.apache.commons.lang3.StringUtils
;
import
org.junit.jupiter.api.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.*;
/**
* @author : liqiulin
* @date : 2024-05-15 15
* @describe :
*/
@SpringBootTest
@RunWith
(
SpringRunner
.
class
)
class
TencentUtilsTest
{
@Autowired
TencentUtils
tencentUtils
;
@Test
void
sendSmsPhoneVerCOde
()
{
// boolean b = tencentUtils.sendSmsPhoneVerCOde("15701654502", "345123");
// System.out.println("短信发送结果:" + b);
}
public
static
void
main
(
String
[]
args
)
{
SendSmsResponse
res
=
JSONObject
.
parseObject
(
"{\"SendStatusSet\":[{\"SerialNo\":\"9319:154810136917157576005565450\",\"PhoneNumber\":\"+8615701654502\",\"Fee\":1,\"SessionContext\":\"\",\"Code\":\"Ok\",\"Message\":\"send success\",\"IsoCode\":\"CN\"}],\"RequestId\":\"d962f019-1228-4cb3-aa35-6d7b8c7a716b\"}\n"
,
SendSmsResponse
.
class
);
SendStatus
sendStatus
=
res
.
getSendStatusSet
()[
0
];
if
(
StringUtils
.
isBlank
(
sendStatus
.
getCode
())
||
!
sendStatus
.
getCode
().
contains
(
"Ok"
))
{
System
.
out
.
println
(
false
);
}
System
.
out
.
println
(
true
);
}
}
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论