Commit f92e0646 by 墨竹

Merge remote-tracking branch 'origin/developer' into developer

parents 8f43fa79 61f424fc
......@@ -39,6 +39,14 @@ public class WelcomeMediaDTO implements Serializable {
* 媒体文件路径,保存上传路径
*/
private String mediaUrl;
/**
* 媒体资源大小
*/
private String mediaSize;
/**
* 小程序id,仅类型为5小程序时需要传
*/
private String miniProgramId;
public Long getWelcomeMediaId() {
return welcomeMediaId;
......@@ -96,6 +104,22 @@ public class WelcomeMediaDTO implements Serializable {
this.miniProgramName = miniProgramName;
}
public String getMediaSize() {
return mediaSize;
}
public void setMediaSize(String mediaSize) {
this.mediaSize = mediaSize;
}
public String getMiniProgramId() {
return miniProgramId;
}
public void setMiniProgramId(String miniProgramId) {
this.miniProgramId = miniProgramId;
}
@Override
public String toString() {
return "WelcomeMediaDTO{" +
......
......@@ -27,6 +27,10 @@ public class SaveWelcomeMediaQDTO implements Serializable {
* 媒体资源大小
*/
private String mediaSize;
/**
* 小程序id,仅类型为5小程序时需要传
*/
private String miniProgramId;
public String getMediaTitle() {
return mediaTitle;
......@@ -60,6 +64,14 @@ public class SaveWelcomeMediaQDTO implements Serializable {
this.mediaSize = mediaSize;
}
public String getMiniProgramId() {
return miniProgramId;
}
public void setMiniProgramId(String miniProgramId) {
this.miniProgramId = miniProgramId;
}
@Override
public String toString() {
return "SaveWelcomeMediaQDTO{" +
......
......@@ -39,6 +39,10 @@ public class SaveWelcomeQDTO implements Serializable {
*/
private String operatorName;
/**
* 默认欢迎语标记 1是 0否 1 全体成员 0 部分成员
*/
private Integer defaultWelcomeFlag;
/**
* 欢迎语媒体列表
*/
private List<SaveWelcomeMediaQDTO> welcomeMediaList;
......@@ -107,6 +111,14 @@ public class SaveWelcomeQDTO implements Serializable {
this.operatorName = operatorName;
}
public Integer getDefaultWelcomeFlag() {
return defaultWelcomeFlag;
}
public void setDefaultWelcomeFlag(Integer defaultWelcomeFlag) {
this.defaultWelcomeFlag = defaultWelcomeFlag;
}
public List<SaveWelcomeMediaQDTO> getWelcomeMediaList() {
return welcomeMediaList;
}
......
......@@ -17,6 +17,8 @@ public enum WelcomeMediaTypeEnum implements Serializable {
FILE(3, "文件"),
LINK(4, "链接"),
PROGRAM(5, "小程序"),
PARAM_PROGRAM(6, "带参小程序"),
PARAM_QRCODE(7, "带参公众号二维码"),
;
private final Integer code;
......
......@@ -17,6 +17,17 @@ import java.util.List;
**/
public interface WelcomeApiService {
/**
* desc: 校验微信企业是否存在默认欢迎语
*
* @param wxEnterpriseId 微信企业id
* @return : {@link ServiceResponse< Boolean>}
* @author : YongEn
* @date : 2022/3/9
*/
ServiceResponse<Boolean> existDefaultWelcome(String wxEnterpriseId);
/**
* desc: 保存欢迎语
*
......@@ -51,7 +62,7 @@ public interface WelcomeApiService {
/**
* desc: 获取欢迎语详情
*
* @param welcomeId 欢迎语id
* @param welcomeId 欢迎语id
* @param enterpriseId 企业id
* @return : {@link ServiceResponse< WelcomeDetailDTO>}
* @author : YongEn
......
......@@ -28,7 +28,8 @@ public class TabHaobanWelcomeMedia implements Serializable {
*/
private String mediaTitle;
/**
* 媒体类型 1图片 2视频 3文件 4链接
* 媒体类型 1图片 2视频 3文件 4链接 5小程序 6带参小程序 7带参公众号二维码
* {@link com.gic.haoban.manage.api.enums.WelcomeMediaTypeEnum}
*/
private Integer mediaType;
/**
......@@ -40,6 +41,10 @@ public class TabHaobanWelcomeMedia implements Serializable {
*/
private String mediaSize;
/**
* 小程序id,仅类型为5小程序时需要传
*/
private String miniProgramId;
/**
* 创建时间
*/
private Date createTime;
......@@ -109,6 +114,14 @@ public class TabHaobanWelcomeMedia implements Serializable {
this.mediaSize = mediaSize;
}
public String getMiniProgramId() {
return miniProgramId;
}
public void setMiniProgramId(String miniProgramId) {
this.miniProgramId = miniProgramId;
}
public Date getCreateTime() {
return createTime;
}
......
......@@ -34,6 +34,10 @@ public class SaveWelcomeBO {
*/
private String operatorName;
/**
* 默认欢迎语标记 1是 0否 1 全体成员 0 部分成员
*/
private Integer defaultWelcomeFlag;
/**
* 欢迎语媒体列表
*/
private List<SaveWelcomeMediaBO> welcomeMediaList;
......@@ -86,6 +90,14 @@ public class SaveWelcomeBO {
this.welcomeContent = welcomeContent;
}
public Integer getDefaultWelcomeFlag() {
return defaultWelcomeFlag;
}
public void setDefaultWelcomeFlag(Integer defaultWelcomeFlag) {
this.defaultWelcomeFlag = defaultWelcomeFlag;
}
public List<SaveWelcomeMediaBO> getWelcomeMediaList() {
return welcomeMediaList;
}
......
......@@ -24,6 +24,10 @@ public class SaveWelcomeMediaBO {
* 媒体大小
*/
private String mediaSize;
/**
* 小程序id,仅类型为5小程序时需要传
*/
private String miniProgramId;
public String getMediaTitle() {
return mediaTitle;
......@@ -57,6 +61,14 @@ public class SaveWelcomeMediaBO {
this.mediaSize = mediaSize;
}
public String getMiniProgramId() {
return miniProgramId;
}
public void setMiniProgramId(String miniProgramId) {
this.miniProgramId = miniProgramId;
}
@Override
public String toString() {
return "SaveWelcomeMediaBO{" +
......
......@@ -29,12 +29,21 @@ public class WelcomeMediaBO {
private String miniProgramName;
/**
* 媒体类型 1图片 2视频 3文件 4链接 5小程序
* {@link com.gic.haoban.manage.api.enums.WelcomeMediaTypeEnum}
*/
private Integer mediaType;
/**
* 媒体文件路径,保存上传路径
*/
private String mediaUrl;
/**
* 媒体资源大小
*/
private String mediaSize;
/**
* 小程序id,仅类型为5小程序时需要传
*/
private String miniProgramId;
public Long getWelcomeMediaId() {
return welcomeMediaId;
......@@ -92,6 +101,22 @@ public class WelcomeMediaBO {
this.mediaUrl = mediaUrl;
}
public String getMediaSize() {
return mediaSize;
}
public void setMediaSize(String mediaSize) {
this.mediaSize = mediaSize;
}
public String getMiniProgramId() {
return miniProgramId;
}
public void setMiniProgramId(String miniProgramId) {
this.miniProgramId = miniProgramId;
}
@Override
public String toString() {
return "WelcomeMediaBO{" +
......
......@@ -95,4 +95,14 @@ public interface WelcomeService {
*/
Boolean saveDefaultWelcome(String wxEnterpriseId);
/**
* desc: 校验是否存在默认欢迎语
*
* @param wxEnterpriseId 微信企业id
* @return : {@link Boolean}
* @author : YongEn
* @date : 2022/3/9
*/
Boolean existDefaultWelcome(String wxEnterpriseId);
}
......@@ -49,6 +49,7 @@ public class WelcomeServiceImpl implements WelcomeService {
private static final int WELCOME_LIMIT = 50;
private static final int DEPARTMENT_NUM_LIMIT = 10000;
private static final int STAFF_NUM_LIMIT = 2000;
private static final int MEDIA_NUM_LIMIT = 9;
@Override
public Boolean saveWelcome(SaveWelcomeBO bo) {
......@@ -105,6 +106,10 @@ public class WelcomeServiceImpl implements WelcomeService {
return "适用员工数量超过限制";
}
}
List<SaveWelcomeMediaBO> welcomeMediaList = bo.getWelcomeMediaList();
if (CollectionUtils.isNotEmpty(welcomeMediaList) && welcomeMediaList.size() > MEDIA_NUM_LIMIT) {
return "欢迎语附件数目超过限制";
}
return "";
}
......@@ -117,6 +122,9 @@ public class WelcomeServiceImpl implements WelcomeService {
}
private TabWelcome addWelcome(SaveWelcomeBO bo) {
if (bo.getDefaultWelcomeFlag() == 1 && this.existDefaultWelcome(bo.getWxEnterpriseId())) {
throw new RuntimeException("已存在全体成员欢迎语, 无法新增多条");
}
TabWelcome welcome = new TabWelcome();
welcome.setWelcomeId(StringUtil.randomUUID());
welcome.setWxEnterpriseId(bo.getWxEnterpriseId());
......@@ -129,7 +137,7 @@ public class WelcomeServiceImpl implements WelcomeService {
welcome.setOperatorId(bo.getOperatorId());
welcome.setOperatorName(bo.getOperatorName());
// 通过外部新增的统一走非默认
welcome.setDefaultWelcomeFlag(0);
welcome.setDefaultWelcomeFlag(bo.getDefaultWelcomeFlag());
welcomeMapper.insert(welcome);
return welcome;
}
......@@ -140,6 +148,7 @@ public class WelcomeServiceImpl implements WelcomeService {
welcome.setUpdateTime(new Date());
welcome.setOperatorId(bo.getOperatorId());
welcome.setOperatorName(bo.getOperatorName());
welcome.setDefaultWelcomeFlag(bo.getDefaultWelcomeFlag());
welcomeMapper.updateByPrimaryKeySelective(welcome);
return welcome;
}
......@@ -153,10 +162,11 @@ public class WelcomeServiceImpl implements WelcomeService {
media.setWelcomeMediaId(UniqueIdUtils.uniqueLong());
media.setWxEnterpriseId(bo.getWxEnterpriseId());
media.setWelcomeId(welComeId);
media.setMediaTitle(one.getMediaTitle());
media.setMediaTitle(StringUtils.isEmpty(one.getMediaTitle()) ? "-1" : one.getMediaTitle());
media.setMediaType(one.getMediaType());
media.setMediaUrl(one.getMediaUrl());
media.setMediaUrl(StringUtils.isEmpty(one.getMediaUrl()) ? "-1" : one.getMediaUrl());
media.setMediaSize(one.getMediaSize());
media.setMiniProgramId(one.getMiniProgramId());
media.setCreateTime(new Date());
media.setDeleteFlag(0);
return media;
......@@ -241,7 +251,6 @@ public class WelcomeServiceImpl implements WelcomeService {
);
// 为媒体列表添加小程序
assemblyMiniProgram(welcome, welcomeDetail, enterpriseId);
// 适用部门列表
TabHaobanWelcomeSuitRang deptRangQuery = new TabHaobanWelcomeSuitRang();
deptRangQuery.setWxEnterpriseId(welcome.getWxEnterpriseId());
......@@ -264,34 +273,42 @@ public class WelcomeServiceImpl implements WelcomeService {
}
private void assemblyMiniProgram(TabWelcome welcome, WelcomeDetailBO welcomeDetail, String enterpriseId) {
TabHaobanFriendSetting friendSetting = friendSettingMapper.getByWxEnterpriseId(welcome.getWxEnterpriseId());
if (Objects.nonNull(friendSetting) && !FriendSettingTypeEnum.TEXT_AND_MINI_PROGRAM.getCode().equals(friendSetting.getFriendSettingType())) {
List<WelcomeMediaBO> welcomeMediaList = welcomeDetail.getWelcomeMediaList();
if (CollectionUtils.isEmpty(welcomeMediaList)) {
return;
}
TabMiniprogramSetting matchMiniProgram = null;
if (StringUtils.isNotEmpty(enterpriseId)) {
matchMiniProgram = miniprogramSettingMapper.getMiniprogramSetting(welcome.getWxEnterpriseId(), enterpriseId);
}
if (Objects.isNull(matchMiniProgram)) {
List<TabMiniprogramSetting> miniProgramSettings = miniprogramSettingMapper.listMiniprogramSetting(welcome.getWxEnterpriseId());
if (CollectionUtils.isNotEmpty(miniProgramSettings)) {
matchMiniProgram = miniProgramSettings.get(0);
welcomeMediaList.forEach(one -> {
// 小程序
if (Objects.equals(WelcomeMediaTypeEnum.PROGRAM.getCode(), one.getMediaType())) {
// 小程序查询,直接根据id查询
TabMiniprogramSetting miniprogram = miniprogramSettingMapper.selectByPrimaryKey(one.getMiniProgramId());
if (Objects.nonNull(miniprogram)) {
one.setMediaTitle(miniprogram.getTitle());
one.setMiniProgramName(miniprogram.getMiniprogramName());
one.setMediaUrl(miniprogram.getImageUrl());
}
}
}
if (Objects.isNull(matchMiniProgram)) {
logger.info("无小程序配置, {}", welcome.getWxEnterpriseId());
return;
}
WelcomeMediaBO welcomeMediaBO = new WelcomeMediaBO();
welcomeMediaBO.setWxEnterpriseId(welcome.getWxEnterpriseId());
welcomeMediaBO.setMediaTitle(matchMiniProgram.getTitle());
welcomeMediaBO.setMediaType(WelcomeMediaTypeEnum.PROGRAM.getCode());
welcomeMediaBO.setMiniProgramName(matchMiniProgram.getMiniprogramName());
welcomeMediaBO.setMediaUrl(matchMiniProgram.getImageUrl());
if (CollectionUtils.isEmpty(welcomeDetail.getWelcomeMediaList())) {
welcomeDetail.setWelcomeMediaList(new ArrayList<>());
}
welcomeDetail.getWelcomeMediaList().add(welcomeMediaBO);
// 带参小程序
if (Objects.equals(WelcomeMediaTypeEnum.PARAM_PROGRAM.getCode(), one.getMediaType())) {
TabMiniprogramSetting matchMiniProgram = null;
if (StringUtils.isNotEmpty(enterpriseId)) {
matchMiniProgram = miniprogramSettingMapper.getMiniprogramSetting(welcome.getWxEnterpriseId(), enterpriseId);
}
if (Objects.isNull(matchMiniProgram)) {
List<TabMiniprogramSetting> miniProgramSettings = miniprogramSettingMapper.listMiniprogramSetting(welcome.getWxEnterpriseId());
if (CollectionUtils.isNotEmpty(miniProgramSettings)) {
matchMiniProgram = miniProgramSettings.get(0);
}
}
if (Objects.isNull(matchMiniProgram)) {
logger.info("无小程序配置, {}", welcome.getWxEnterpriseId());
} else {
one.setMediaTitle(matchMiniProgram.getTitle());
one.setMiniProgramName(matchMiniProgram.getMiniprogramName());
one.setMediaUrl(matchMiniProgram.getImageUrl());
}
}
});
}
@Override
......@@ -424,6 +441,12 @@ public class WelcomeServiceImpl implements WelcomeService {
return Boolean.TRUE;
}
@Override
public Boolean existDefaultWelcome(String wxEnterpriseId) {
List<TabWelcome> welcomeList = welcomeMapper.listByWxEnterpriseId(wxEnterpriseId, null, 1);
return CollectionUtils.isNotEmpty(welcomeList);
}
private WelcomeDetailBO convertWelcomeToBo(TabWelcome welcome) {
WelcomeDetailBO matchWelcome = new WelcomeDetailBO();
matchWelcome.setWelcomeId(welcome.getWelcomeId());
......@@ -451,6 +474,8 @@ public class WelcomeServiceImpl implements WelcomeService {
bo.setMediaTitle(one.getMediaTitle());
bo.setMediaType(one.getMediaType());
bo.setMediaUrl(one.getMediaUrl());
bo.setMediaSize(one.getMediaSize());
bo.setMiniProgramId(one.getMiniProgramId());
return bo;
}).collect(Collectors.toList());
}
......
......@@ -29,6 +29,11 @@ public class WelcomeApiServiceImpl implements WelcomeApiService {
private WelcomeService welcomeService;
@Override
public ServiceResponse<Boolean> existDefaultWelcome(String wxEnterpriseId) {
return ServiceResponse.success(welcomeService.existDefaultWelcome(wxEnterpriseId));
}
@Override
public ServiceResponse<Boolean> saveWelcome(SaveWelcomeQDTO qdto) {
SaveWelcomeBO saveWelcomeBO = new SaveWelcomeBO();
saveWelcomeBO.setWelcomeId(qdto.getWelcomeId());
......@@ -37,6 +42,7 @@ public class WelcomeApiServiceImpl implements WelcomeApiService {
saveWelcomeBO.setWelcomeContent(qdto.getWelcomeContent());
saveWelcomeBO.setOperatorId(qdto.getOperatorId());
saveWelcomeBO.setOperatorName(qdto.getOperatorName());
saveWelcomeBO.setDefaultWelcomeFlag(qdto.getDefaultWelcomeFlag());
// 媒体列表
saveWelcomeBO.setWelcomeMediaList(EntityUtil.changeEntityListNew(SaveWelcomeMediaBO.class, qdto.getWelcomeMediaList()));
// 适用部门新增列表
......@@ -103,7 +109,6 @@ public class WelcomeApiServiceImpl implements WelcomeApiService {
: EntityUtil.changeEntityListNew(WelcomeMediaDTO.class, welcome.getWelcomeMediaList())
);
// 适用部门列表
dto.setSuitDepartmentList(
CollectionUtils.isEmpty(welcome.getSuitDepartmentList()) ? Collections.emptyList()
: EntityUtil.changeEntityListNew(WelcomeSuitDepartmentDTO.class, welcome.getSuitDepartmentList())
......
......@@ -10,6 +10,7 @@
<result property="mediaType" column="media_type" jdbcType="INTEGER"/>
<result property="mediaUrl" column="media_url" jdbcType="VARCHAR"/>
<result property="mediaSize" column="media_size" jdbcType="VARCHAR"/>
<result property="miniProgramId" column="mini_program_id" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="deleteFlag" column="delete_flag" jdbcType="INTEGER"/>
......@@ -24,6 +25,7 @@
media_type,
media_url,
media_size,
mini_program_id,
create_time,
update_time,
delete_flag
......@@ -39,6 +41,7 @@
media_type,
media_url,
media_size,
mini_program_id,
create_time,
update_time,
delete_flag
......@@ -49,10 +52,10 @@
<!--新增所有列-->
<insert id="insert" keyProperty="welcomeSuitRangId" useGeneratedKeys="false">
insert into tab_haoban_welcome_media(welcome_media_id, wx_enterprise_id, welcome_id,
media_title, media_type, media_url,media_size,
media_title, media_type, media_url,media_size, mini_program_id,
create_time, update_time, delete_flag)
values (#{welcomeMediaId}, #{wxEnterpriseId}, #{welcomeId},
#{mediaTitle}, #{mediaType}, #{mediaUrl},#{mediaSize},
#{mediaTitle}, #{mediaType}, #{mediaUrl},#{mediaSize},#{miniProgramId}
#{createTime}, #{updateTime},#{deleteFlag})
</insert>
......
......@@ -36,6 +36,21 @@ public class WelcomeController extends WebBaseController {
@Autowired
private WelcomeApiService welcomeApiService;
/**
* desc: 校验企业是否存在全员欢迎语
*
* @param wxEnterpriseId 微信企业id
* @return : {@link RestResponse< Boolean>}
* @author : YongEn
* @date : 2022/3/9
*/
@RequestMapping(value = "/exist-default-welcome")
public RestResponse<Boolean> existDefaultWelcome(@RequestParam("wxEnterpriseId") String wxEnterpriseId) {
ServiceResponse<Boolean> response = welcomeApiService.existDefaultWelcome(wxEnterpriseId);
return RestResponse.successResult(response.getResult());
}
/**
* desc: 保存欢迎语
*
......@@ -52,9 +67,10 @@ public class WelcomeController extends WebBaseController {
qdto.setWxEnterpriseId(qo.getWxEnterpriseId());
qdto.setTitle(qo.getTitle());
qdto.setWelcomeContent(qo.getWelcomeContent());
qdto.setWelcomeMediaList(EntityUtil.changeEntityListNew(SaveWelcomeMediaQDTO.class, qo.getWelcomeMediaList()));
qdto.setOperatorId(login.getStaffDTO().getStaffId());
qdto.setOperatorName(login.getStaffDTO().getStaffName());
qdto.setDefaultWelcomeFlag(qo.getDefaultWelcomeFlag());
qdto.setWelcomeMediaList(EntityUtil.changeEntityListNew(SaveWelcomeMediaQDTO.class, qo.getWelcomeMediaList()));
qdto.setSuitDepartmentAddList(qo.getSuitDepartmentAddList());
qdto.setSuitDepartmentDeleteList(qo.getSuitDepartmentDeleteList());
// 员工暂时不传
......@@ -118,6 +134,7 @@ public class WelcomeController extends WebBaseController {
* @return : {@link RestResponse< Boolean>}
* @author : YongEn
* @date : 2022/2/11
* @deprecated 本次迭代即将删除
*/
@RequestMapping(value = "/save/friend-setting", method = RequestMethod.POST)
public RestResponse<Boolean> saveFriendSetting(@RequestBody @Valid SaveFriendSettingQO qo) {
......@@ -136,6 +153,7 @@ public class WelcomeController extends WebBaseController {
* @return : {@link RestResponse< FriendSettingDetailDTO>}
* @author : YongEn
* @date : 2022/2/11
* @deprecated 本次迭代即将删除
*/
@RequestMapping(value = "/get/friend-setting", method = RequestMethod.GET)
public RestResponse<FriendSettingDetailDTO> getFriendSetting(@RequestParam("wxEnterpriseId") String wxEnterpriseId) {
......
......@@ -27,6 +27,10 @@ public class SaveWelcomeMediaQO implements Serializable {
* 资源大小
*/
private String mediaSize;
/**
* 小程序id,仅类型为5小程序时需要传
*/
private String miniProgramId;
public String getMediaTitle() {
return mediaTitle;
......@@ -60,6 +64,14 @@ public class SaveWelcomeMediaQO implements Serializable {
this.mediaSize = mediaSize;
}
public String getMiniProgramId() {
return miniProgramId;
}
public void setMiniProgramId(String miniProgramId) {
this.miniProgramId = miniProgramId;
}
@Override
public String toString() {
return "SaveWelcomeMediaQO{" +
......
......@@ -35,6 +35,10 @@ public class SaveWelcomeQO implements Serializable {
@NotEmpty(message = "内容不能为空")
private String welcomeContent;
/**
* 默认欢迎语标记 1是 0否 1 全体成员 0 部分成员
*/
private Integer defaultWelcomeFlag;
/**
* 媒体列表
*/
private List<SaveWelcomeMediaQO> welcomeMediaList;
......@@ -87,6 +91,14 @@ public class SaveWelcomeQO implements Serializable {
this.welcomeContent = welcomeContent;
}
public Integer getDefaultWelcomeFlag() {
return defaultWelcomeFlag;
}
public void setDefaultWelcomeFlag(Integer defaultWelcomeFlag) {
this.defaultWelcomeFlag = defaultWelcomeFlag;
}
public List<SaveWelcomeMediaQO> getWelcomeMediaList() {
return welcomeMediaList;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment