Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
向汉
/
uc-engine
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit
77f8eaa1
...
77f8eaa1031c01b9d167a9b4f0aeab280ecab19c
authored
2022-02-09 16:03:30 +0800
by
鲁二龙
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
微信模板消息
1 parent
b8c77c5e
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
446 additions
and
0 deletions
member-service-impl/src/main/java/com/topdraw/business/module/weixin/domain/UserWeixinWeixinMessageTemplate.java
member-service-impl/src/main/java/com/topdraw/business/module/weixin/domain/WeixinMessageTemplate.java
member-service-impl/src/main/java/com/topdraw/business/module/weixin/repository/UserWeixinWeixinMessageTemplateRepository.java
member-service-impl/src/main/java/com/topdraw/business/module/weixin/repository/WeixinMessageTemplateRepository.java
member-service-impl/src/main/java/com/topdraw/business/module/weixin/rest/UserWeixinWeixinMessageTemplateController.java
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/UserWeixinWeixinMessageTemplateService.java
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/dto/UpdateUserWeixinWeixinMessageTemplateQueryCriteria.java
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/dto/UserWeixinWeixinMessageTemplateDTO.java
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/dto/UserWeixinWeixinMessageTemplateQueryCriteria.java
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/dto/WeixinMessageTemplateDTO.java
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/dto/WeixinMessageTemplateQueryCriteria.java
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/impl/UserWeixinWeixinMessageTemplateServiceImpl.java
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/mapper/UserWeixinWeixinMessageTemplateMapper.java
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/mapper/WeixinMessageTemplateMapper.java
member-service-impl/src/main/java/com/topdraw/business/module/weixin/domain/UserWeixinWeixinMessageTemplate.java
0 → 100644
View file @
77f8eaa
package
com
.
topdraw
.
business
.
module
.
weixin
.
domain
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.copier.CopyOptions
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
org.springframework.data.annotation.CreatedDate
;
import
org.springframework.data.annotation.LastModifiedDate
;
import
org.springframework.data.jpa.domain.support.AuditingEntityListener
;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Entity
@Data
@EntityListeners
(
AuditingEntityListener
.
class
)
@Accessors
(
chain
=
true
)
@Table
(
name
=
"uc_user_weixin__weixin_message_template"
)
public
class
UserWeixinWeixinMessageTemplate
implements
Serializable
{
// ID
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@Column
(
name
=
"id"
)
private
Long
id
;
// 用户id
@Column
(
name
=
"user_weixin_id"
,
nullable
=
false
)
private
Long
userWeixinId
;
// 微信消息模板id
@Column
(
name
=
"weixin_message_template_id"
,
nullable
=
false
)
private
Long
weixinMessageTemplateId
;
// 用户是否订阅: 0-否, 1-是
@Column
(
name
=
"status"
,
nullable
=
false
)
private
Integer
status
;
// 创建时间
@CreatedDate
@Column
(
name
=
"create_time"
)
private
Timestamp
createTime
;
// 更新时间
@LastModifiedDate
@Column
(
name
=
"update_time"
)
private
Timestamp
updateTime
;
public
void
copy
(
UserWeixinWeixinMessageTemplate
source
){
BeanUtil
.
copyProperties
(
source
,
this
,
CopyOptions
.
create
().
setIgnoreNullValue
(
true
));
}
}
member-service-impl/src/main/java/com/topdraw/business/module/weixin/domain/WeixinMessageTemplate.java
0 → 100644
View file @
77f8eaa
package
com
.
topdraw
.
business
.
module
.
weixin
.
domain
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.copier.CopyOptions
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
org.springframework.data.annotation.CreatedDate
;
import
org.springframework.data.annotation.LastModifiedDate
;
import
org.springframework.data.jpa.domain.support.AuditingEntityListener
;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Entity
@Data
@EntityListeners
(
AuditingEntityListener
.
class
)
@Accessors
(
chain
=
true
)
@Table
(
name
=
"uc_weixin_message_template"
)
public
class
WeixinMessageTemplate
implements
Serializable
{
// ID
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@Column
(
name
=
"id"
)
private
Long
id
;
// 标识 order-下单成功通知,cancellation-核销成功通知
@Column
(
name
=
"code"
,
nullable
=
false
)
private
String
code
;
// 微信appid
@Column
(
name
=
"appid"
,
nullable
=
false
)
private
String
appid
;
// 微信模板id
@Column
(
name
=
"template_id"
,
nullable
=
false
)
private
String
templateId
;
// 状态:0-无效,1-有效
@Column
(
name
=
"status"
,
nullable
=
false
)
private
Integer
status
;
// 描述
@Column
(
name
=
"description"
)
private
String
description
;
// 创建时间
@CreatedDate
@Column
(
name
=
"create_time"
)
private
Timestamp
createTime
;
// 更新时间
@LastModifiedDate
@Column
(
name
=
"update_time"
)
private
Timestamp
updateTime
;
public
void
copy
(
WeixinMessageTemplate
source
){
BeanUtil
.
copyProperties
(
source
,
this
,
CopyOptions
.
create
().
setIgnoreNullValue
(
true
));
}
}
member-service-impl/src/main/java/com/topdraw/business/module/weixin/repository/UserWeixinWeixinMessageTemplateRepository.java
0 → 100644
View file @
77f8eaa
package
com
.
topdraw
.
business
.
module
.
weixin
.
repository
;
import
com.topdraw.business.module.weixin.domain.UserWeixinWeixinMessageTemplate
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
/**
* @author pengmengqing
* @date 2021-01-28
*/
public
interface
UserWeixinWeixinMessageTemplateRepository
extends
JpaRepository
<
UserWeixinWeixinMessageTemplate
,
Long
>,
JpaSpecificationExecutor
<
UserWeixinWeixinMessageTemplate
>
{
}
member-service-impl/src/main/java/com/topdraw/business/module/weixin/repository/WeixinMessageTemplateRepository.java
0 → 100644
View file @
77f8eaa
package
com
.
topdraw
.
business
.
module
.
weixin
.
repository
;
import
com.topdraw.business.module.weixin.domain.WeixinMessageTemplate
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
java.util.Optional
;
/**
* @author pengmengqing
* @date 2021-01-28
*/
public
interface
WeixinMessageTemplateRepository
extends
JpaRepository
<
WeixinMessageTemplate
,
Long
>,
JpaSpecificationExecutor
<
WeixinMessageTemplate
>
{
Optional
<
WeixinMessageTemplate
>
findFirstByCode
(
String
code
);
Optional
<
WeixinMessageTemplate
>
findFirstByCodeAndAppid
(
String
code
,
String
appid
);
Optional
<
WeixinMessageTemplate
>
findFirstByTemplateId
(
String
templateId
);
}
member-service-impl/src/main/java/com/topdraw/business/module/weixin/rest/UserWeixinWeixinMessageTemplateController.java
0 → 100644
View file @
77f8eaa
package
com
.
topdraw
.
business
.
module
.
weixin
.
rest
;
import
com.topdraw.business.module.weixin.service.UserWeixinWeixinMessageTemplateService
;
import
com.topdraw.business.module.weixin.service.dto.UpdateUserWeixinWeixinMessageTemplateQueryCriteria
;
import
com.topdraw.common.ResultInfo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
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
;
import
java.util.ArrayList
;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Api
(
tags
=
"UserWeixinWeixinMessageTemplate管理"
)
@RestController
@RequestMapping
(
"/ucEngine/api/UserWeixinWeixinMessageTemplate"
)
public
class
UserWeixinWeixinMessageTemplateController
{
@Autowired
private
UserWeixinWeixinMessageTemplateService
userWeixinWeixinMessageTemplateService
;
@PostMapping
@ApiOperation
(
"新增或修改MemberWeixinMessageTemplate"
)
public
ResultInfo
createOrUpdate
(
@RequestBody
UpdateUserWeixinWeixinMessageTemplateQueryCriteria
criteria
)
{
userWeixinWeixinMessageTemplateService
.
createOrUpdate
(
criteria
);
return
ResultInfo
.
success
(
new
ArrayList
<>());
}
}
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/UserWeixinWeixinMessageTemplateService.java
0 → 100644
View file @
77f8eaa
package
com
.
topdraw
.
business
.
module
.
weixin
.
service
;
import
com.topdraw.business.module.weixin.domain.UserWeixinWeixinMessageTemplate
;
import
com.topdraw.business.module.weixin.service.dto.UpdateUserWeixinWeixinMessageTemplateQueryCriteria
;
import
com.topdraw.business.module.weixin.service.dto.UserWeixinWeixinMessageTemplateDTO
;
import
com.topdraw.business.module.weixin.service.dto.UserWeixinWeixinMessageTemplateQueryCriteria
;
import
org.springframework.data.domain.Pageable
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author pengmengqing
* @date 2021-01-28
*/
public
interface
UserWeixinWeixinMessageTemplateService
{
void
createOrUpdate
(
UpdateUserWeixinWeixinMessageTemplateQueryCriteria
criteria
);
}
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/dto/UpdateUserWeixinWeixinMessageTemplateQueryCriteria.java
0 → 100644
View file @
77f8eaa
package
com
.
topdraw
.
business
.
module
.
weixin
.
service
.
dto
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
UpdateUserWeixinWeixinMessageTemplateQueryCriteria
{
private
Long
memberId
;
private
List
<
UserWeixinWeixinMessageTemplateQueryCriteria
>
templateList
;
}
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/dto/UserWeixinWeixinMessageTemplateDTO.java
0 → 100644
View file @
77f8eaa
package
com
.
topdraw
.
business
.
module
.
weixin
.
service
.
dto
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Data
public
class
UserWeixinWeixinMessageTemplateDTO
implements
Serializable
{
// ID
private
Long
id
;
// 用户id
private
Long
userWeixinId
;
// 微信消息模板id
private
Long
weixinMessageTemplateId
;
// 用户是否订阅: 0-否, 1-是
private
Integer
status
;
// 创建时间
private
Timestamp
createTime
;
// 更新时间
private
Timestamp
updateTime
;
}
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/dto/UserWeixinWeixinMessageTemplateQueryCriteria.java
0 → 100644
View file @
77f8eaa
package
com
.
topdraw
.
business
.
module
.
weixin
.
service
.
dto
;
import
com.topdraw.annotation.Query
;
import
lombok.Data
;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Data
public
class
UserWeixinWeixinMessageTemplateQueryCriteria
{
// 用户id
@Query
(
propName
=
"userWeixinId"
)
private
Long
memberId
;
// 微信消息模板id
@Query
private
Long
weixinMessageTemplateId
;
// 用户是否订阅: 0-否, 1-是
@Query
private
Integer
status
=
1
;
private
String
templateId
;
}
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/dto/WeixinMessageTemplateDTO.java
0 → 100644
View file @
77f8eaa
package
com
.
topdraw
.
business
.
module
.
weixin
.
service
.
dto
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Data
public
class
WeixinMessageTemplateDTO
implements
Serializable
{
// ID
private
Long
id
;
// 标识 order-下单成功通知,cancellation-核销成功通知
private
String
code
;
// 微信模板id
private
String
templateId
;
// 描述
private
String
description
;
}
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/dto/WeixinMessageTemplateQueryCriteria.java
0 → 100644
View file @
77f8eaa
package
com
.
topdraw
.
business
.
module
.
weixin
.
service
.
dto
;
import
com.topdraw.annotation.Query
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Data
public
class
WeixinMessageTemplateQueryCriteria
{
private
String
codes
;
@Query
(
propName
=
"code"
,
type
=
Query
.
Type
.
IN
)
private
List
<
String
>
codeList
;
@Query
private
String
appid
;
@Query
private
Integer
status
=
1
;
}
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/impl/UserWeixinWeixinMessageTemplateServiceImpl.java
0 → 100644
View file @
77f8eaa
package
com
.
topdraw
.
business
.
module
.
weixin
.
service
.
impl
;
import
com.topdraw.business.module.weixin.domain.UserWeixinWeixinMessageTemplate
;
import
com.topdraw.business.module.weixin.domain.WeixinMessageTemplate
;
import
com.topdraw.business.module.weixin.repository.UserWeixinWeixinMessageTemplateRepository
;
import
com.topdraw.business.module.weixin.repository.WeixinMessageTemplateRepository
;
import
com.topdraw.business.module.weixin.service.UserWeixinWeixinMessageTemplateService
;
import
com.topdraw.business.module.weixin.service.dto.UpdateUserWeixinWeixinMessageTemplateQueryCriteria
;
import
com.topdraw.business.module.weixin.service.dto.UserWeixinWeixinMessageTemplateDTO
;
import
com.topdraw.business.module.weixin.service.dto.UserWeixinWeixinMessageTemplateQueryCriteria
;
import
com.topdraw.business.module.weixin.service.mapper.UserWeixinWeixinMessageTemplateMapper
;
import
com.topdraw.utils.FileUtil
;
import
com.topdraw.utils.PageUtil
;
import
com.topdraw.utils.QueryHelp
;
import
com.topdraw.utils.ValidationUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.dao.EmptyResultDataAccessException
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.Assert
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.*
;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Service
@Slf4j
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
UserWeixinWeixinMessageTemplateServiceImpl
implements
UserWeixinWeixinMessageTemplateService
{
@Autowired
private
UserWeixinWeixinMessageTemplateRepository
userWeixinWeixinMessageTemplateRepository
;
@Autowired
private
WeixinMessageTemplateRepository
weixinMessageTemplateRepository
;
@Override
@Transactional
(
propagation
=
Propagation
.
REQUIRED
,
readOnly
=
false
,
rollbackFor
=
Exception
.
class
)
public
void
createOrUpdate
(
UpdateUserWeixinWeixinMessageTemplateQueryCriteria
criteria
)
{
for
(
UserWeixinWeixinMessageTemplateQueryCriteria
queryCriteria
:
criteria
.
getTemplateList
())
{
queryCriteria
.
setMemberId
(
criteria
.
getMemberId
());
Integer
status
=
queryCriteria
.
getStatus
();
queryCriteria
.
setStatus
(
null
);
String
templateId
=
queryCriteria
.
getTemplateId
();
Optional
<
WeixinMessageTemplate
>
templateOptional
=
weixinMessageTemplateRepository
.
findFirstByTemplateId
(
templateId
);
if
(!
templateOptional
.
isPresent
())
{
log
.
info
(
"template "
+
templateId
+
" not exist"
);
continue
;
}
Long
id
=
templateOptional
.
get
().
getId
();
queryCriteria
.
setWeixinMessageTemplateId
(
id
);
Optional
<
UserWeixinWeixinMessageTemplate
>
optional
=
userWeixinWeixinMessageTemplateRepository
.
findOne
(((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
queryCriteria
,
criteriaBuilder
)));
if
(!
optional
.
isPresent
())
{
UserWeixinWeixinMessageTemplate
userWeixinWeixinMessageTemplate
=
new
UserWeixinWeixinMessageTemplate
();
userWeixinWeixinMessageTemplate
.
setUserWeixinId
(
queryCriteria
.
getMemberId
())
.
setWeixinMessageTemplateId
(
queryCriteria
.
getWeixinMessageTemplateId
())
.
setStatus
(
status
);
userWeixinWeixinMessageTemplateRepository
.
save
(
userWeixinWeixinMessageTemplate
);
}
else
{
UserWeixinWeixinMessageTemplate
UserWeixinWeixinMessageTemplate
=
optional
.
get
();
if
(!
status
.
equals
(
UserWeixinWeixinMessageTemplate
.
getStatus
()))
{
UserWeixinWeixinMessageTemplate
.
setStatus
(
status
);
userWeixinWeixinMessageTemplateRepository
.
save
(
UserWeixinWeixinMessageTemplate
);
}
}
}
}
}
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/mapper/UserWeixinWeixinMessageTemplateMapper.java
0 → 100644
View file @
77f8eaa
package
com
.
topdraw
.
business
.
module
.
weixin
.
service
.
mapper
;
import
com.topdraw.base.BaseMapper
;
import
com.topdraw.business.module.weixin.domain.UserWeixinWeixinMessageTemplate
;
import
com.topdraw.business.module.weixin.service.dto.UserWeixinWeixinMessageTemplateDTO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.ReportingPolicy
;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Mapper
(
componentModel
=
"spring"
,
unmappedTargetPolicy
=
ReportingPolicy
.
IGNORE
)
public
interface
UserWeixinWeixinMessageTemplateMapper
extends
BaseMapper
<
UserWeixinWeixinMessageTemplateDTO
,
UserWeixinWeixinMessageTemplate
>
{
}
member-service-impl/src/main/java/com/topdraw/business/module/weixin/service/mapper/WeixinMessageTemplateMapper.java
0 → 100644
View file @
77f8eaa
package
com
.
topdraw
.
business
.
module
.
weixin
.
service
.
mapper
;
import
com.topdraw.base.BaseMapper
;
import
com.topdraw.business.module.weixin.domain.WeixinMessageTemplate
;
import
com.topdraw.business.module.weixin.service.dto.WeixinMessageTemplateDTO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.ReportingPolicy
;
/**
* @author pengmengqing
* @date 2021-01-28
*/
@Mapper
(
componentModel
=
"spring"
,
unmappedTargetPolicy
=
ReportingPolicy
.
IGNORE
)
public
interface
WeixinMessageTemplateMapper
extends
BaseMapper
<
WeixinMessageTemplateDTO
,
WeixinMessageTemplate
>
{
}
Please
register
or
sign in
to post a comment