Browse Source

用户注册发送消息

master
zhangye 4 weeks ago
parent
commit
c318d474fe
  1. 2
      research-common/src/main/java/com/research/common/constant/WeiXinConstants.java
  2. 2
      research-system/src/main/java/com/research/system/mapper/SysUserMapper.java
  3. 152
      research-system/src/main/java/com/research/system/service/impl/MemberAduitServiceImpl.java
  4. 2
      research-system/src/main/resources/mapper/system/SysUserMapper.xml

2
research-common/src/main/java/com/research/common/constant/WeiXinConstants.java

@ -49,7 +49,7 @@ public class WeiXinConstants {
public static final String GZH_MSG_TEMPLATE_MEETING_AUDIT = "Lww6lrcCUpu4oykKKT07eRlbouZIzJd7Q7pGJaiiTRM";
/*** 小程序-任务页面地址,从公众号内跳转进入 */
public static final String MINI_PAGE_TASK = "pages/task/task";
public static final String MINI_PAGE_TASK = "pages/task/index";
/**

2
research-system/src/main/java/com/research/system/mapper/SysUserMapper.java

@ -139,7 +139,7 @@ public interface SysUserMapper
/**
* 通过UnionId获取公众号OpenId
* @param unionId
* @param userId
* @return
*/
String getGzhOpenIdByUnionId(Long userId);

152
research-system/src/main/java/com/research/system/service/impl/MemberAduitServiceImpl.java

@ -2,14 +2,17 @@ package com.research.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.research.common.constant.UserConstants;
import com.research.common.constant.WeiXinConstants;
import com.research.common.core.domain.entity.SysUser;
import com.research.common.exception.base.BaseException;
import com.research.common.utils.SecurityUtils;
import com.research.common.utils.ExternalServiceUtil;
import com.research.common.utils.SendGzhMessageUtil;
import com.research.system.domain.dto.MemberAduitDto;
import com.research.system.domain.po.*;
import com.research.system.domain.vo.MemberAduitVo;
@ -20,7 +23,6 @@ import com.research.system.persist.mapper.KtsKtGroupMemberMapper;
import com.research.system.persist.mapper.SrvMessageMapper;
import com.research.system.service.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@ -51,8 +53,6 @@ public class MemberAduitServiceImpl implements MemberAduitService {
private ExternalServiceUtil externalServiceUtil;
@Resource
private KtsKtGroupMemberMapper ktsKtGroupMemberMapper;
@Value(value = "${research.smsUrl}")
private String smsUrl;
@Override
public void register(MemberAduitDto.Register dto) {
@ -70,13 +70,7 @@ public class MemberAduitServiceImpl implements MemberAduitService {
throw new RuntimeException("账号已存在,请登录");
}
}
// //验证微信小程序是否已经提交注册
// KtsKtGroupMemberAduitExample wxAduitExample = new KtsKtGroupMemberAduitExample();
// wxAduitExample.createCriteria().andOpenIdEqualTo(dto.getOpenId()).andStatusEqualTo((byte) 0).andDelFlagEqualTo((byte) 0);
// if (ktsKtGroupMemberAduitMapper.countByExample(wxAduitExample) > 0) {
// //提示已申请
// throw new RuntimeException("此微信已提交注册,正在审核中,请耐心等待");
// }
//新加审核记录
KtsKtGroupMemberAduit ktsKtGroupMemberAduit = BeanUtil.copyProperties(dto, KtsKtGroupMemberAduit.class);
ktsKtGroupMemberAduit.setId(IdUtil.getSnowflakeNextId());
@ -84,7 +78,6 @@ public class MemberAduitServiceImpl implements MemberAduitService {
ktsKtGroupMemberAduit.setStatus((byte) 0);
//密码如果是空,给个默认密码
if (StrUtil.isEmpty(dto.getPassword())) {
// ktsKtGroupMemberAduit.setPassword(RandomUtil.randomString(10));
ktsKtGroupMemberAduit.setPassword("yxky_123#");
}
//根据提交的类型判断,判断审核类型
@ -116,42 +109,28 @@ public class MemberAduitServiceImpl implements MemberAduitService {
srvMessage.setStatus((byte) 0);
srvMessage.setReceiver(reviewerList.stream().map(String::valueOf).collect(Collectors.joining(",")));
srvMessageMapper.insertSelective(srvMessage);
//给审核人发送公众号通知
try {
//根据接收者的userId获取对应的公众号openId
reviewerList.forEach(userId -> {
String openId = sysUserService.getGzhOpenIdByUnionId(userId);
if(ObjectUtil.isNotNull(openId)){
//发送公众号通知。需要信息:用户名称、联系电话、申请时间、申请岗位
SendGzhMessageUtil.sendGzhMessage(
WeiXinConstants.GzhMessageType.USER_AUDIT,
openId,
Arrays.asList(dto.getMemberName(),
dto.getMemberPhone(),
DateUtil.format(new Date(), "yyyy-MM-dd"),
dto.getType().equals("1") ? "单位负责人" : "参与人员")
);
}
});
}catch (Exception e){
log.error("发送公众号通知失败", e);
}
}
// List<Long> reviewerList = new ArrayList<>();
// //2.查询该合作单位负责人角色的人 发送审核消息
// if (dto.getKtGroupId() != null || dto.getParentKtId() != null) {
// //101 合作单位负责人
// //102 项目负责人
// reviewerList = memberAduitDao.queryMemberIdList(dto.getProjOrgId(), 101L);
// }
// KtsKtGroupMemberAduit ktsKtGroupMemberAduit = BeanUtil.copyProperties(dto, KtsKtGroupMemberAduit.class);
// ktsKtGroupMemberAduit.setId(IdUtil.getSnowflakeNextId());
// ktsKtGroupMemberAduit.setStatus((byte) 0);
// if (CollUtil.isEmpty(dto.getRoleIdList())) {
// if (dto.getType().contains("0")) {
// ktsKtGroupMemberAduit.setRoleIdList("100");
// }else {
// ktsKtGroupMemberAduit.setRoleIdList("2");
// }
// }else {
// ktsKtGroupMemberAduit.setRoleIdList(dto.getRoleIdList().stream().map(String::valueOf).collect(Collectors.joining(",")));
// }
// ktsKtGroupMemberAduit.setReviewer(reviewerList.stream().map(String::valueOf).collect(Collectors.joining(",")));
// ktsKtGroupMemberAduitMapper.insertSelective(ktsKtGroupMemberAduit);
// if (CollUtil.isNotEmpty(reviewerList)) {
// //添加消息
// SrvMessage srvMessage = new SrvMessage();
// srvMessage.setId(IdUtil.getSnowflakeNextId());
// srvMessage.setContent("成员申请审核");
// srvMessage.setBusinessId(ktsKtGroupMemberAduit.getId());
// srvMessage.setStatus((byte) 0);
// srvMessage.setReceiver(reviewerList.stream().map(String::valueOf).collect(Collectors.joining(",")));
// srvMessageMapper.insertSelective(srvMessage);
// }
//3. 审核完成之后, 由项目负责人审核 项目负责人审核完之后,审核通过。
}
@Override
@ -211,6 +190,26 @@ public class MemberAduitServiceImpl implements MemberAduitService {
srvMessage.setStatus((byte) 0);
srvMessage.setReceiver(reviewerList.stream().map(String::valueOf).collect(Collectors.joining(",")));
srvMessageMapper.insertSelective(srvMessage);
//给审核人发送公众号通知
try {
//根据接收者的userId获取对应的公众号openId
reviewerList.forEach(userId -> {
String openId = sysUserService.getGzhOpenIdByUnionId(userId);
if(ObjectUtil.isNotNull(openId)){
//发送公众号通知。需要信息:用户名称、联系电话、申请时间、申请岗位
SendGzhMessageUtil.sendGzhMessage(
WeiXinConstants.GzhMessageType.USER_AUDIT,
openId,
Arrays.asList(ktsKtGroupMemberAduit.getMemberName(),
ktsKtGroupMemberAduit.getMemberPhone(),
DateUtil.format(new Date(), "yyyy-MM-dd"),
ktsKtGroupMemberAduit.getType().equals("1") ? "单位负责人" : "参与人员")
);
}
});
}catch (Exception e){
log.error("发送公众号通知失败", e);
}
}
}
}
@ -264,50 +263,6 @@ public class MemberAduitServiceImpl implements MemberAduitService {
ktsKtGroupMemberAduit.setReviewedPersion(SecurityUtils.getUserId());
ktsKtGroupMemberAduitMapper.updateByPrimaryKeySelective(ktsKtGroupMemberAduit);
// //通过的话判断当前审核级别, step = 0 ,需要查询项目负责人,添加项目负责人审核,发送通知
// Byte step = ktsKtGroupMemberAduit.getStep();
// //山西医科大学只审核一次
// if (step == 0 && ktsKtGroupMemberAduit.getProjOrgId() != 1L) {
// ktsKtGroupMemberAduit.setId(IdUtil.getSnowflakeNextId());
// ktsKtGroupMemberAduit.setStep((byte) 1);
// List<Long> list = memberAduitDao.queryMemberIdList(null, 102L);
// if (CollUtil.isEmpty(list)) {
// throw new BaseException("未查询到项目负责人信息");
// }
// ktsKtGroupMemberAduit.setReviewedPersion(null);
// ktsKtGroupMemberAduit.setReviewedTime(null);
// ktsKtGroupMemberAduit.setStatus((byte) 0);
// ktsKtGroupMemberAduit.setReviewer(list.stream().map(String::valueOf).collect(Collectors.joining(",")));
// ktsKtGroupMemberAduitMapper.insertSelective(ktsKtGroupMemberAduit);
// //添加消息
// SrvMessage srvMessage = new SrvMessage();
// srvMessage.setId(IdUtil.getSnowflakeNextId());
// srvMessage.setContent("成员申请审核");
// srvMessage.setBusinessId(ktsKtGroupMemberAduit.getId());
// srvMessage.setStatus((byte) 0);
// srvMessage.setReceiver(list.stream().map(String::valueOf).collect(Collectors.joining(",")));
// srvMessageMapper.insertSelective(srvMessage);
//
// } else {
// //审核成功, 添加成员
// GroupDto.AddMember addMember = new GroupDto.AddMember();
// if (StrUtil.isNotEmpty(ktsKtGroupMemberAduit.getRoleIdList())) {
// String[] split = ktsKtGroupMemberAduit.getRoleIdList().split(",");
// addMember.setRoleIdList(Arrays.stream(split).map(Long::parseLong).collect(Collectors.toList()));
// }
// BeanUtil.copyProperties(ktsKtGroupMemberAduit, addMember);
// addMember.setId(null);
// ktsGroupService.addMember(addMember);
//
//// //添加主库租户用户
//// TmsTenantUser tmsTenantUser = new TmsTenantUser();
//// tmsTenantUser.setCreateBy(SecurityUtils.getUsername());
//// tmsTenantUser.setCreateTime(new Date());
//// tmsTenantUser.setDelFlag((byte) 0);
//// tmsTenantUser.setPhonenumber(ktsKtGroupMemberAduit.getMemberPhone());
//// tmsTenantUser.setUserName(ktsKtGroupMemberAduit.getUsername());
//// tmsTenantUserService.insert(tmsTenantUser);
// }
}
private void saveKtGroupMember(Long userId, KtsKtGroupMemberAduit ktsKtGroupMemberAduit) {
@ -380,28 +335,9 @@ public class MemberAduitServiceImpl implements MemberAduitService {
externalServiceUtil.sendMail(ktsKtGroupMemberAduit.getMemberEmail(),
"账号审核通过通知",
"您在“科研共享平台”注册的账号已审核通过,初始密码为:" + ktsKtGroupMemberAduit.getPassword() + "。请尽快登录并修改密码。");
// Map<String, Object> body = new HashMap<>();
// body.put("to", ktsKtGroupMemberAduit.getMemberEmail());
// body.put("subject", "账号审核通过通知");
// body.put("text", "您在“科研共享平台”注册的账号已审核通过,初始密码为:" + ktsKtGroupMemberAduit.getPassword() + "。请尽快登录并修改密码。");
// String jsonBody = JSONUtil.toJsonStr(body);
// String url = "http://127.0.0.1:7363/external/sendSimpleMail";
// HttpUtil.post(url, jsonBody);
}catch (Exception e){
log.error("发送邮件失败:{}", e.getMessage());
}
// //发送短信
// try {
// String body = HttpRequest.post(smsUrl).body(JSON.toJSONString(
// MapBuilder.create(new HashMap<String, Object>(3))
// .put("to", sysUser.getPhonenumber())
// .put("text", "您在“科研共享平台”注册的账号已审核通过,初始密码为:" + ktsKtGroupMemberAduit.getPassword() + "。请尽快登录并修改密码。")
// .build())
// ).timeout(5000).execute().body();
// System.out.println(body);
// }catch (Exception e){
// log.error("发送短信失败:{}", e.getMessage());
// }
return sysUser.getUserId();
}

2
research-system/src/main/resources/mapper/system/SysUserMapper.xml

@ -252,7 +252,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</update>
<select id="getGzhOpenIdByUnionId" resultType="java.lang.String">
select open_id from srsp_new.ums_gzh_info where union_id = (select union_id from sys_user where user_id = #{userId}) and del_status = '0'
select open_id from srsp_new.ums_gzh_info where union_id = (select union_id from sys_user where user_id = #{userId} and del_flag = '0') and del_status = '0'
</select>
</mapper>
Loading…
Cancel
Save