Merge remote-tracking branch 'origin/master'
This commit is contained in:
+19
@@ -6,7 +6,9 @@ import com.jero.common.api.dto.OnlineAuthDTO;
|
||||
import com.jero.common.api.dto.message.*;
|
||||
import com.jero.common.system.vo.*;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
@@ -280,6 +282,14 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
* @param content
|
||||
*/
|
||||
void sendEmailMsg(String email,String title,String content);
|
||||
/**
|
||||
* 40发送m模板邮件消息
|
||||
* @param email 接收人 必传
|
||||
* @param title 标题 (不传取模板标题)
|
||||
* @param templateCode 模板编码 必传
|
||||
* @param map 模板替换参数 必传
|
||||
*/
|
||||
void sendEmailTemplateMsg(String email, String title, String templateCode, Map<String,String> map);
|
||||
/**
|
||||
* 41根据部门id查询部门所有的父级(不包含自己)
|
||||
* @author 马志朝
|
||||
@@ -314,4 +324,13 @@ public interface ISysBaseAPI extends CommonAPI {
|
||||
* 发送短信验证码
|
||||
*/
|
||||
void sendVerificationCode(String phone, String codeType, String codeTime,String templateParas);
|
||||
/**
|
||||
* 发送短信
|
||||
* @param phone 手机号
|
||||
* @param codeType 发送类型
|
||||
* @param codeTime 超时时间
|
||||
* @param templateCode 模板编码
|
||||
* @param map 参数集合
|
||||
*/
|
||||
void sendSMS(String phone, String codeType, String codeTime,String templateCode,HashMap<String,String> map);
|
||||
}
|
||||
|
||||
+29
-1
@@ -11,7 +11,35 @@ public enum SysAnnmentTypeEnum {
|
||||
/**
|
||||
* 工作流跳转链接我的办公
|
||||
*/
|
||||
BPM("bpm", "url", "/bpm/task/MyTaskList");
|
||||
BPM("bpm", "url", "/bpm/task/MyTaskList"),
|
||||
|
||||
// 管理端
|
||||
M_OPEN_TYPE1("M_OPEN_TYPE1","component","@comp/ProjectDetailModal"),
|
||||
M_OPEN_TYPE2("M_OPEN_TYPE2","url","/contractManagement/RevenueContractDetail"),
|
||||
M_OPEN_TYPE3("M_OPEN_TYPE3","url","/contractManagement/RevenueContractDetail"),
|
||||
M_OPEN_TYPE4("M_OPEN_TYPE4","url","/contractManagement/RevenueContractDetail"),
|
||||
M_OPEN_TYPE5("M_OPEN_TYPE5","component","@views/incomePayments/meetManage/modules/AuditModal"),
|
||||
M_OPEN_TYPE6("M_OPEN_TYPE6","component","@comp/ProjectDetailModal"),
|
||||
M_OPEN_TYPE7("M_OPEN_TYPE7","component","@comp/ProjectDetailModal"),
|
||||
M_OPEN_TYPE8("M_OPEN_TYPE8","url","/incomePayments/meetManage/SignUpInfoDetail"),
|
||||
M_OPEN_TYPE9("M_OPEN_TYPE9","url","/businessManagement/BusinessManagement"),
|
||||
// todo 待定企业端
|
||||
C_OPEN_TYPE1("C_OPEN_TYPE1","url",""),
|
||||
C_OPEN_TYPE2("C_OPEN_TYPE2","component",""),
|
||||
C_OPEN_TYPE3("C_OPEN_TYPE3","component",""),
|
||||
C_OPEN_TYPE4("C_OPEN_TYPE4","component",""),
|
||||
C_OPEN_TYPE5("C_OPEN_TYPE5","component",""),
|
||||
C_OPEN_TYPE6("C_OPEN_TYPE6","component",""),
|
||||
C_OPEN_TYPE7("C_OPEN_TYPE7","component",""),
|
||||
C_OPEN_TYPE8("C_OPEN_TYPE8","none",""),
|
||||
C_OPEN_TYPE9("C_OPEN_TYPE9","",""),
|
||||
C_OPEN_TYPE10("C_OPEN_TYPE10","",""),
|
||||
C_OPEN_TYPE11("C_OPEN_TYPE11","component",""),
|
||||
C_OPEN_TYPE12("C_OPEN_TYPE12","component","");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 业务类型(email:邮件 bpm:流程)
|
||||
|
||||
+6
-1
@@ -93,10 +93,15 @@ public class ShiroConfig {
|
||||
filterChainDefinitionMap.put("/sys/common/pdf/**", "anon");//pdf预览
|
||||
filterChainDefinitionMap.put("/generic/**", "anon");//pdf预览需要文件
|
||||
filterChainDefinitionMap.put("/paymentRecord/payPaymentRecord/standardsAddAR", "anon");//标协会员添加来款
|
||||
filterChainDefinitionMap.put("/sys/sendVerificationCode", "anon"); //发送验证码
|
||||
filterChainDefinitionMap.put("/sys/verificationChangePassword", "anon"); //短信验证码修改密码
|
||||
|
||||
|
||||
//企业端登录
|
||||
filterChainDefinitionMap.put("/company/login", "anon");//登录接口排除
|
||||
filterChainDefinitionMap.put("/company/smsLogin", "anon");//短信登录接口排除
|
||||
filterChainDefinitionMap.put("/company/logout", "anon");//登出接口排除
|
||||
filterChainDefinitionMap.put("/company/changePassword", "anon");//短信验证码修改密码
|
||||
filterChainDefinitionMap.put("/company/verificationChangePassword", "anon");//短信验证码修改密码
|
||||
filterChainDefinitionMap.put("/company/sendVerificationCode", "anon");//企业端发送验证码
|
||||
|
||||
//和会员系统交互的接口
|
||||
|
||||
@@ -94,4 +94,52 @@ public class ProjectCommon {
|
||||
* 邮寄状态(0:未邮寄,1:已邮寄)
|
||||
*/
|
||||
public final static Integer POST_STATUS1 = 1;
|
||||
/**
|
||||
* 收入合同处新增标识 flag = 1
|
||||
*/
|
||||
public final static String FLAG = "1";
|
||||
/**
|
||||
* 项目提醒
|
||||
*/
|
||||
public final static String ALERT1 = "1";
|
||||
/**
|
||||
* 合同提醒
|
||||
*/
|
||||
public final static String ALERT2 = "2";
|
||||
/**
|
||||
* 会议提醒
|
||||
*/
|
||||
public final static String ALERT3 = "3";
|
||||
/**
|
||||
* 打包提醒
|
||||
*/
|
||||
public final static String ALERT4 = "4";
|
||||
/**
|
||||
* 企业提醒
|
||||
*/
|
||||
public final static String ALERT5 = "5";
|
||||
/**
|
||||
* 文件提醒
|
||||
*/
|
||||
public final static String ALERT6 = "6";
|
||||
/**
|
||||
* 邮寄提醒
|
||||
*/
|
||||
public final static String ALERT7 = "7";
|
||||
/**
|
||||
* 催款提醒
|
||||
*/
|
||||
public final static String ALERT8 = "8";
|
||||
/**
|
||||
* 1短信 2邮件 3系统
|
||||
*/
|
||||
public final static String MESSAGE_TYPE1 = "1";
|
||||
/**
|
||||
* 1短信 2邮件 3系统
|
||||
*/
|
||||
public final static String MESSAGE_TYPE2 = "2";
|
||||
/**
|
||||
* 1短信 2邮件 3系统
|
||||
*/
|
||||
public final static String MESSAGE_TYPE3 = "3";
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.jero.common.common;
|
||||
|
||||
public class RoleCommon {
|
||||
|
||||
/**
|
||||
* 项目负责人
|
||||
*/
|
||||
public final static String XMFZR = "xmfzr";
|
||||
/**
|
||||
* 财务人员
|
||||
*/
|
||||
public final static String CWRY = "cwry";
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.jero.common.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* @Description 发送短信,消息,邮件
|
||||
* @Author lqt
|
||||
* @Date 2021/9/24
|
||||
*/
|
||||
@Data
|
||||
public class SendMessageDTO implements Serializable {
|
||||
/**
|
||||
* 发送人(用户登录账户)
|
||||
*/
|
||||
private String fromUser;
|
||||
/**
|
||||
* 发送给(用户登录账户)
|
||||
*/
|
||||
private String toUser;
|
||||
/**
|
||||
* 手机号(发送短信必传)
|
||||
*/
|
||||
private String phone;
|
||||
/**
|
||||
* 邮箱地址(发送邮箱必传)
|
||||
*/
|
||||
private String email;
|
||||
/**
|
||||
* 业务类型
|
||||
*/
|
||||
private String busType;
|
||||
/**
|
||||
* 业务id
|
||||
*/
|
||||
private String busId;
|
||||
/**
|
||||
* 模板编码
|
||||
*/
|
||||
private String templateCode;
|
||||
/**
|
||||
* 模板参数
|
||||
*/
|
||||
private HashMap<String, String> templateParam;
|
||||
}
|
||||
+13
-22
@@ -12,18 +12,18 @@ import org.apache.commons.lang3.StringUtils;
|
||||
*/
|
||||
public enum CompanyMessageEnums {
|
||||
|
||||
MSG1("HYTZ_WORK_GROUP_CREATE","会议提醒","点击跳转到报名页面"),
|
||||
MSG2("HYTZ_WORK_GROUP_SIGN_UP","会议提醒","弹窗:查看该会议详情"),
|
||||
MSG3("HYTZ_WORK_GROUP_UPLOAD","会议提醒","弹窗:查看该会议详情"),
|
||||
MSG4("HYTZ_WORK_GROUP_NOT_UPLOAD","会议提醒","弹窗:查看该会议详情"),
|
||||
MSG5("HYTZ_NOT_AUDIT","会议提醒","弹窗:上传汇款凭证"),
|
||||
MSG6("HYTZ_AUDIT","会议提醒","弹窗:查看该会议详情"),
|
||||
MSG7("WJTZ_MEETING_SEND","文件提醒","弹窗:查看该会议详情"),
|
||||
MSG8("HTTZ_PHASE","合同提醒","无"),
|
||||
MSG9("YJTZ_MAIL","邮寄提醒","查看该物流信息"),
|
||||
MSG10("YJTZ_MAIL_CONTRACT","邮寄提醒","查看该物流信息"),
|
||||
MSG11("CKTZ_PAY","催款提醒","弹窗:查看该项目详情"),
|
||||
MSG12("WJTZ_WORK_GROUP_SEND","文件提醒","弹窗:查看该项目详情");
|
||||
MSG1("HYTZ_WORK_GROUP_CREATE","会议通知"),//点击跳转到报名页面,meetingName,busId
|
||||
MSG2("HYTZ_WORK_GROUP_SIGN_UP","会议通知"),//弹窗:查看该会议详情,meetingName
|
||||
MSG3("HYTZ_WORK_GROUP_UPLOAD","会议通知"),//弹窗:查看该会议详情,meetingName
|
||||
MSG4("HYTZ_WORK_GROUP_NOT_UPLOAD","会议通知"),//弹窗:查看该会议详情,meetingName
|
||||
MSG5("HYTZ_NOT_AUDIT","会议通知"),//弹窗:上传汇款凭证,meetingName
|
||||
MSG6("HYTZ_AUDIT","会议通知"),//弹窗:查看该会议详情,meetingName
|
||||
MSG7("WJTZ_MEETING_SEND","文件通知"),//弹窗:查看该会议详情,meetingName
|
||||
MSG8("HTTZ_PHASE","合同通知"),//无,contract,num,amount
|
||||
MSG9("YJTZ_MAIL","邮寄通知"),//查看该物流信息,projectName
|
||||
MSG10("YJTZ_MAIL_CONTRACT","邮寄通知"),//查看该物流信息,contractName
|
||||
MSG11("CKTZ_PAY","催款通知"),//弹窗:查看该项目详情,projectName
|
||||
MSG12("WJTZ_WORK_GROUP_SEND","文件通知");//弹窗:查看该项目详情,workGroupName
|
||||
|
||||
|
||||
private String code;
|
||||
@@ -32,10 +32,9 @@ public enum CompanyMessageEnums {
|
||||
|
||||
private String detail;
|
||||
|
||||
CompanyMessageEnums(String code, String value, String detail){
|
||||
CompanyMessageEnums(String code, String value){
|
||||
this.code = code;
|
||||
this.value = value;
|
||||
this.detail = detail;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
@@ -54,14 +53,6 @@ public enum CompanyMessageEnums {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getDetail() {
|
||||
return detail;
|
||||
}
|
||||
|
||||
public void setDetail(String detail) {
|
||||
this.detail = detail;
|
||||
}
|
||||
|
||||
public static CompanyMessageEnums getByCode(String code) {
|
||||
if (StringUtils.isBlank(code)) {
|
||||
return null;
|
||||
|
||||
+10
-21
@@ -11,26 +11,23 @@ import org.apache.commons.lang3.StringUtils;
|
||||
*/
|
||||
public enum ManagementMessageEnums {
|
||||
|
||||
MSG1("HTTZ_CREATE_PROJECT","项目提醒","查看详情"),
|
||||
MSG2("HTTZ_SUBMIT","合同提醒","跳转到合同的详情页面"),
|
||||
MSG3("HTTZ_AUDIT","合同提醒","跳转到合同的详情页面"),
|
||||
MSG4("HTTZ_NOT_AUDIT","合同提醒","跳转到合同的详情页面"),
|
||||
MSG5("HYTZ_SIGN_UP_UPLOAD","会议提醒","审核弹窗"),
|
||||
MSG6("DBTZ_ADD","打包提醒","查看该项目详情"),
|
||||
MSG7("DBTZ_CONTRACT","打包提醒","查看项目详情"),
|
||||
MSG8("HYTZ_ON_ACCESS_UPDATE","会议提醒","查看该参会人详情"),
|
||||
MSG9("QYTZ_CREATE","企业提醒","企业列表页");
|
||||
MSG1("HTTZ_CREATE_PROJECT","项目通知"),// 查看详情,projectName
|
||||
MSG2("HTTZ_SUBMIT","合同通知"),// 跳转到合同的详情页面,contractNum,contractName
|
||||
MSG3("HTTZ_AUDIT","合同通知"),//跳转到合同的详情页面,contractNum,contractName
|
||||
MSG4("HTTZ_NOT_AUDIT","合同通知"),//跳转到合同的详情页面,contractNum,contractName
|
||||
MSG5("HYTZ_SIGN_UP_UPLOAD","会议通知"),//审核弹窗
|
||||
MSG6("DBTZ_ADD","打包通知"),//查看该项目详情,projectName
|
||||
MSG7("DBTZ_CONTRACT","打包通知"),//查看项目详情,projectName
|
||||
MSG8("HYTZ_ON_ACCESS_UPDATE","会议通知"),//查看该参会人详情,meetingName,username1,username2
|
||||
MSG9("QYTZ_CREATE","企业通知");//企业列表页
|
||||
|
||||
private String code;
|
||||
|
||||
private String value;
|
||||
|
||||
private String detail;
|
||||
|
||||
ManagementMessageEnums(String code, String value, String detail){
|
||||
ManagementMessageEnums(String code, String value){
|
||||
this.code = code;
|
||||
this.value = value;
|
||||
this.detail = detail;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
@@ -49,14 +46,6 @@ public enum ManagementMessageEnums {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getDetail() {
|
||||
return detail;
|
||||
}
|
||||
|
||||
public void setDetail(String detail) {
|
||||
this.detail = detail;
|
||||
}
|
||||
|
||||
public static ManagementMessageEnums getByCode(String code) {
|
||||
if (StringUtils.isBlank(code)) {
|
||||
return null;
|
||||
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package com.jero.common.service;
|
||||
|
||||
public interface ContractCreateProjectSendMessageService {
|
||||
/**
|
||||
* @Description 合同创建项目发送消息,通知项目负责人
|
||||
* @Author lqt
|
||||
* @Date 2021/9/24
|
||||
* @Param projectName 项目名称
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
void ContractCreateProjectSendMessageService(String projectName);
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
package com.jero.common.service;
|
||||
|
||||
import com.jero.common.dto.SendMessageDTO;
|
||||
|
||||
public interface SendMessageService {
|
||||
/**
|
||||
* @Description 发送短信,消息,邮件
|
||||
* @Author lqt
|
||||
* @Date 2021/9/24
|
||||
* @Param sendMessageDTO
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
void SendMessageService(SendMessageDTO sendMessageDTO);
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
package com.jero.common.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jero.common.common.RoleCommon;
|
||||
import com.jero.common.dto.SendMessageDTO;
|
||||
import com.jero.common.enums.CompanyMessageEnums;
|
||||
import com.jero.common.enums.ManagementMessageEnums;
|
||||
import com.jero.common.service.ContractCreateProjectSendMessageService;
|
||||
import com.jero.common.service.SendMessageService;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.PasswordUtil;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class ContractCreateProjectSendMessageServiceImpl implements ContractCreateProjectSendMessageService {
|
||||
|
||||
@Autowired
|
||||
private ISysUserService sysUserService;
|
||||
@Autowired
|
||||
private SendMessageService sendMessageService;
|
||||
|
||||
@Override
|
||||
public void ContractCreateProjectSendMessageService(String projectName) {
|
||||
// 获取项目负责人,发送消息
|
||||
List<SysUser> list = sysUserService.getRolesUser(Arrays.asList(RoleCommon.XMFZR));
|
||||
if(!CollectionUtils.isEmpty(list)){
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
list.forEach(p->{
|
||||
// 发送消息
|
||||
SendMessageDTO sendMessageDTO = new SendMessageDTO();
|
||||
if(!StringUtils.isBlank(p.getEmail())){
|
||||
sendMessageDTO.setEmail(PasswordUtil.decrypt(p.getEmail()));
|
||||
}
|
||||
HashMap<String,String> map = new HashMap<>();
|
||||
map.put("projectName",projectName);
|
||||
sendMessageDTO.setFromUser(sysUser.getId());
|
||||
sendMessageDTO.setToUser(p.getUsername());
|
||||
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG1.getCode());
|
||||
sendMessageDTO.setTemplateParam(map);
|
||||
sendMessageDTO.setBusType("M_OPEN_TYPE1");
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("id",p.getId());
|
||||
sendMessageDTO.setBusId(json.toJSONString());
|
||||
sendMessageService.SendMessageService(sendMessageDTO);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-2
@@ -124,8 +124,9 @@ public class ProjectDetailServiceImpl implements ProjectDetailService {
|
||||
if(!Objects.isNull(payCommonProject.getPack())){
|
||||
projectDetailVO.setPack_dictText(sysBaseAPI.translateDict("yn",String.valueOf(payCommonProject.getPack())));
|
||||
}
|
||||
// 标协会员,直接查询企业,联系人
|
||||
if(Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE5)){
|
||||
// 标协会员和会议,直接查询企业,联系人
|
||||
if(Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE5)
|
||||
|| Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE3)){
|
||||
PayCompanyManagement payCompanyManagement = payCompanyManagementService.getById(payCommonProject.getChargeCompanyTemporaryId());
|
||||
if(Objects.isNull(payCompanyManagement)){
|
||||
throw new JeroBootException("企业不存在!");
|
||||
|
||||
+156
@@ -0,0 +1,156 @@
|
||||
package com.jero.common.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jero.common.common.ProjectCommon;
|
||||
import com.jero.common.constant.CommonConstant;
|
||||
import com.jero.common.constant.WebsocketConst;
|
||||
import com.jero.common.dto.SendMessageDTO;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.service.SendMessageService;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.util.SysAnnmentTypeEnum;
|
||||
import com.jero.common.util.oConvertUtils;
|
||||
import com.jero.modules.message.entity.SysMessageTemplate;
|
||||
import com.jero.modules.message.handle.impl.EmailSendMsgHandle;
|
||||
import com.jero.modules.message.service.ISysMessageTemplateService;
|
||||
import com.jero.modules.message.websocket.WebSocket;
|
||||
import com.jero.modules.system.entity.SysAnnouncement;
|
||||
import com.jero.modules.system.entity.SysAnnouncementSend;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysAnnouncementSendService;
|
||||
import com.jero.modules.system.service.ISysAnnouncementService;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SendMessageServiceImpl implements SendMessageService {
|
||||
@Autowired
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
@Autowired
|
||||
private ISysMessageTemplateService sysMessageTemplateService;
|
||||
@Resource
|
||||
private ISysAnnouncementService sysAnnouncementService;
|
||||
@Resource
|
||||
private ISysUserService sysUserService;
|
||||
@Resource
|
||||
private ISysAnnouncementSendService sysAnnouncementSendService;
|
||||
@Resource
|
||||
private WebSocket webSocket;
|
||||
/**
|
||||
* 超时时间
|
||||
*/
|
||||
private String time = "60";
|
||||
/**
|
||||
* 短信类型
|
||||
*/
|
||||
private String type = "5";
|
||||
|
||||
|
||||
@Override
|
||||
public void SendMessageService(SendMessageDTO sendMessageDTO) {
|
||||
if(StringUtils.isEmpty(sendMessageDTO.getTemplateCode())){
|
||||
throw new JeroBootException("模板编码不能为空!");
|
||||
}
|
||||
List<SysMessageTemplate> sysSmsTemplates = sysMessageTemplateService.selectByCode(sendMessageDTO.getTemplateCode());
|
||||
if(CollectionUtils.isEmpty(sysSmsTemplates)){
|
||||
throw new JeroBootException("消息模板不能为空!");
|
||||
}
|
||||
SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0);
|
||||
// 没有选项,不发送消息
|
||||
String templateType = sysSmsTemplate.getTemplateType();
|
||||
if(StringUtils.isBlank(templateType)){
|
||||
return;
|
||||
}
|
||||
//模板标题
|
||||
String title = sysBaseAPI.translateDict("notice_type",sysSmsTemplate.getTemplateName());
|
||||
//模板内容
|
||||
String content = sysSmsTemplate.getTemplateContent();
|
||||
HashMap<String,String> map = sendMessageDTO.getTemplateParam();
|
||||
if(!Objects.isNull(map)) {
|
||||
for (Map.Entry<String, String> entry : map.entrySet()) {
|
||||
String str = "${" + entry.getKey() + "}";
|
||||
content = content.replace(str, entry.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
// 1短信 2邮件 3系统
|
||||
// 发送邮件 true
|
||||
if(templateType.contains(ProjectCommon.MESSAGE_TYPE2) && !StringUtils.isEmpty(sendMessageDTO.getEmail())){
|
||||
try {
|
||||
EmailSendMsgHandle emailHandle = new EmailSendMsgHandle();
|
||||
emailHandle.SendMsg(sendMessageDTO.getEmail(), title, content);
|
||||
}catch (Exception e){
|
||||
log.error("发送邮件异常",e);
|
||||
}
|
||||
}
|
||||
// 发送消息
|
||||
if(templateType.contains(ProjectCommon.MESSAGE_TYPE3) && !StringUtils.isEmpty(sendMessageDTO.getToUser())){
|
||||
try {
|
||||
String fromUser = sendMessageDTO.getFromUser();
|
||||
String toUser = sendMessageDTO.getToUser();
|
||||
String busId = sendMessageDTO.getBusId();
|
||||
String busType = sendMessageDTO.getBusType();
|
||||
|
||||
SysAnnouncement announcement = new SysAnnouncement();
|
||||
announcement.setTitile(sysSmsTemplate.getTemplateName());
|
||||
announcement.setMsgContent(content);
|
||||
announcement.setSender(fromUser);
|
||||
announcement.setPriority(CommonConstant.PRIORITY_M);
|
||||
announcement.setMsgType(CommonConstant.MSG_TYPE_UESR);
|
||||
announcement.setSendStatus(CommonConstant.HAS_SEND);
|
||||
announcement.setSendTime(new Date());
|
||||
announcement.setMsgCategory(CommonConstant.MSG_CATEGORY_2);
|
||||
announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0));
|
||||
announcement.setBusId(busId);
|
||||
announcement.setBusType(busType);
|
||||
if(!StringUtils.isEmpty(busType)){
|
||||
announcement.setOpenType(SysAnnmentTypeEnum.getByType(busType).getOpenType());
|
||||
announcement.setOpenPage(SysAnnmentTypeEnum.getByType(busType).getOpenPage());
|
||||
}
|
||||
announcement.setTemplateCode(sendMessageDTO.getTemplateCode());
|
||||
sysAnnouncementService.save(announcement);
|
||||
// 2.插入用户通告阅读标记表记录
|
||||
String userId = toUser;
|
||||
String[] userIds = userId.split(",");
|
||||
String anntId = announcement.getId();
|
||||
for(int i=0;i<userIds.length;i++) {
|
||||
if(oConvertUtils.isNotEmpty(userIds[i])) {
|
||||
SysUser sysUser = sysUserService.getUserByName(userIds[i]);
|
||||
if(Objects.isNull(sysUser)) {
|
||||
continue;
|
||||
}
|
||||
SysAnnouncementSend announcementSend = new SysAnnouncementSend();
|
||||
announcementSend.setAnntId(anntId);
|
||||
announcementSend.setUserId(sysUser.getId());
|
||||
announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG);
|
||||
sysAnnouncementSendService.save(announcementSend);
|
||||
JSONObject obj = new JSONObject();
|
||||
obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_USER);
|
||||
obj.put(WebsocketConst.MSG_USER_ID, sysUser.getId());
|
||||
obj.put(WebsocketConst.MSG_ID, announcement.getId());
|
||||
obj.put(WebsocketConst.MSG_TXT, title);
|
||||
webSocket.sendMessage(sysUser.getId(), obj.toJSONString());
|
||||
}
|
||||
}
|
||||
}catch (Exception e){
|
||||
log.error("发送消息异常",e);
|
||||
}
|
||||
}
|
||||
// todo 发送短信 待完成
|
||||
if(templateType.contains(ProjectCommon.MESSAGE_TYPE1) && !StringUtils.isEmpty(sendMessageDTO.getPhone())){
|
||||
try {
|
||||
sysBaseAPI.sendSMS(sendMessageDTO.getPhone(),type,time,sendMessageDTO.getTemplateCode(),sendMessageDTO.getTemplateParam());
|
||||
}catch (Exception e){
|
||||
log.error("发送短信异常",e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+86
-22
@@ -3,7 +3,6 @@ package com.jero.company.controller;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.constant.CacheConstant;
|
||||
import com.jero.common.constant.CommonConstant;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
@@ -23,6 +22,7 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@@ -49,6 +49,8 @@ public class CompanyLoginController {
|
||||
private ISysDictService sysDictService;
|
||||
@Resource
|
||||
private BaseCommonService baseCommonService;
|
||||
@Value("${defaultPassword}")
|
||||
private String defaultPassword;
|
||||
/**
|
||||
* 密码登录错误的次数前缀
|
||||
*/
|
||||
@@ -62,9 +64,9 @@ public class CompanyLoginController {
|
||||
@PostMapping(value = "/login")
|
||||
public Result<JSONObject> login(@RequestBody SysLoginModel sysLoginModel) {
|
||||
Result<JSONObject> result = new Result<>();
|
||||
String username = PasswordUtil.encrypt(sysLoginModel.getUsername());
|
||||
String phone = sysLoginModel.getUsername();
|
||||
String password = sysLoginModel.getPassword();
|
||||
/*String rsaPublicKey = sysLoginModel.getRsaPublicKey();
|
||||
String rsaPublicKey = sysLoginModel.getRsaPublicKey();
|
||||
String rsaPrivateKey = String.valueOf(redisUtil.get(rsaPublicKey));
|
||||
//update-begin--Author:scott Date:20190805 for:暂时注释掉密码加密逻辑,有点问题
|
||||
//前端密码加密,后端进行密码解密
|
||||
@@ -89,14 +91,14 @@ public class CompanyLoginController {
|
||||
try {
|
||||
//解密获取密码和用户名
|
||||
password = CommonUtils.decryptBtRsaPriKey(password, rsaPrivateKey);
|
||||
username = CommonUtils.decryptBtRsaPriKey(username, rsaPrivateKey);
|
||||
phone = CommonUtils.decryptBtRsaPriKey(phone, rsaPrivateKey);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}*/
|
||||
}
|
||||
//1. 校验用户是否有效
|
||||
//update-begin-author:wangshuai date:20200601 for: 登录代码验证用户是否注销bug,if条件永远为false
|
||||
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(PayContactsManagement::getPhone, username);
|
||||
queryWrapper.eq(PayContactsManagement::getPhone, PasswordUtil.encrypt(phone));
|
||||
PayContactsManagement contactsManagement = payContactsManagementService.getOne(queryWrapper);
|
||||
//update-end-author:wangshuai date:20200601 for: 登录代码验证用户是否注销bug,if条件永远为false
|
||||
if (Objects.isNull(contactsManagement)) {
|
||||
@@ -105,41 +107,95 @@ public class CompanyLoginController {
|
||||
|
||||
// 若用户名有效,则查询该账号的登陆失败次数是否符合等保要求
|
||||
int retryCount = 0;
|
||||
if (redisUtil.get(RETRY_LOGIN_PREFIX + username) != null) {
|
||||
retryCount = (int) redisUtil.get(RETRY_LOGIN_PREFIX + username);
|
||||
if (redisUtil.get(RETRY_LOGIN_PREFIX + phone) != null) {
|
||||
retryCount = (int) redisUtil.get(RETRY_LOGIN_PREFIX + phone);
|
||||
}
|
||||
if (retryCount >= RETRY_LOGIN_MAX_COUNT) {
|
||||
result.error500("密码错误次数过多,请稍后重试");
|
||||
return result;
|
||||
}
|
||||
//2. 校验用户名或密码是否正确
|
||||
String userpassword = PasswordUtil.encrypt(username, password, contactsManagement.getSalt());
|
||||
String userpassword = PasswordUtil.encrypt(phone, password, contactsManagement.getSalt());
|
||||
String syspassword = contactsManagement.getPassword();
|
||||
if (!syspassword.equals(userpassword)) {
|
||||
// 重试登录次数加一
|
||||
retryCount++;
|
||||
if (retryCount == 1) {
|
||||
redisUtil.set(RETRY_LOGIN_PREFIX + username, retryCount, 60 * 30);
|
||||
redisUtil.set(RETRY_LOGIN_PREFIX + phone, retryCount, 60 * 30);
|
||||
} else {
|
||||
redisUtil.set(RETRY_LOGIN_PREFIX + username, retryCount, redisUtil.getExpire(RETRY_LOGIN_PREFIX + username));
|
||||
redisUtil.set(RETRY_LOGIN_PREFIX + phone, retryCount, redisUtil.getExpire(RETRY_LOGIN_PREFIX + phone));
|
||||
}
|
||||
String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试" : "用户名或密码错误,剩余可登录次数:" + (RETRY_LOGIN_MAX_COUNT - retryCount);
|
||||
result.error500(msg);
|
||||
return result;
|
||||
}
|
||||
//登录成功,清除错误登录次数
|
||||
redisUtil.del(RETRY_LOGIN_PREFIX + username);
|
||||
redisUtil.del(RETRY_LOGIN_PREFIX + phone);
|
||||
|
||||
//用户登录信息
|
||||
userInfo(contactsManagement, result);
|
||||
//update-begin--Author:wangshuai Date:20200714 for:登录日志没有记录人员
|
||||
LoginUser loginUser = new LoginUser();
|
||||
BeanUtils.copyProperties(contactsManagement, loginUser);
|
||||
baseCommonService.addLog("用户名: " + username + ",登录成功!", CommonConstant.LOG_TYPE_1, null, loginUser);
|
||||
baseCommonService.addLog("用户名: " + phone + ",登录成功!", CommonConstant.LOG_TYPE_1, null, loginUser);
|
||||
//update-end--Author:wangshuai Date:20200714 for:登录日志没有记录人员
|
||||
return result;
|
||||
}
|
||||
|
||||
@ApiOperation("短信登录接口")
|
||||
@PostMapping(value = "/smsLogin")
|
||||
public Result<JSONObject> smsLogin(@RequestBody SysLoginModel sysLoginModel) {
|
||||
Result<JSONObject> result = new Result<>();
|
||||
String phone = sysLoginModel.getUsername();
|
||||
String rsaPublicKey = sysLoginModel.getRsaPublicKey();
|
||||
String rsaPrivateKey = String.valueOf(redisUtil.get(rsaPublicKey));
|
||||
//update-begin--Author:scott Date:20190805 for:暂时注释掉密码加密逻辑,有点问题
|
||||
//前端密码加密,后端进行密码解密
|
||||
//password = AesEncryptUtil.desEncrypt(sysLoginModel.getPassword().replaceAll("%2B", "\\+")).trim();//密码解密
|
||||
//update-begin--Author:scott Date:20190805 for:暂时注释掉密码加密逻辑,有点问题
|
||||
//update-begin-author:taoyan date:20190828 for:校验验证码
|
||||
try {
|
||||
//解密获取密码和用户名
|
||||
phone = CommonUtils.decryptBtRsaPriKey(phone, rsaPrivateKey);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
String captcha = sysLoginModel.getCaptcha();
|
||||
if (captcha == null) {
|
||||
result.error500("验证码无效");
|
||||
return result;
|
||||
}
|
||||
Object checkCode = redisUtil.get("_verification:_phone:" + phone);
|
||||
if (checkCode == null) {
|
||||
result.error500("验证码错误");
|
||||
return result;
|
||||
} else {
|
||||
redisUtil.del("_verification:_phone:" + phone);
|
||||
}
|
||||
|
||||
//1. 校验用户是否有效
|
||||
//update-begin-author:wangshuai date:20200601 for: 登录代码验证用户是否注销bug,if条件永远为false
|
||||
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(PayContactsManagement::getPhone, PasswordUtil.encrypt(phone));
|
||||
PayContactsManagement contactsManagement = payContactsManagementService.getOne(queryWrapper);
|
||||
//update-end-author:wangshuai date:20200601 for: 登录代码验证用户是否注销bug,if条件永远为false
|
||||
if (Objects.isNull(contactsManagement)) {
|
||||
throw new JeroBootException("手机号不存在");
|
||||
}
|
||||
|
||||
//用户登录信息
|
||||
userInfo(contactsManagement, result);
|
||||
//update-begin--Author:wangshuai Date:20200714 for:登录日志没有记录人员
|
||||
LoginUser loginUser = new LoginUser();
|
||||
BeanUtils.copyProperties(contactsManagement, loginUser);
|
||||
baseCommonService.addLog("用户名: " + phone + ",登录成功!", CommonConstant.LOG_TYPE_1, null, loginUser);
|
||||
//update-end--Author:wangshuai Date:20200714 for:登录日志没有记录人员
|
||||
if (Objects.isNull(contactsManagement.getPassword())){
|
||||
result.setMessage("updatePassword");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 退出登录
|
||||
*
|
||||
@@ -181,13 +237,15 @@ public class CompanyLoginController {
|
||||
private void userInfo(PayContactsManagement contactsManagement, Result<JSONObject> result) {
|
||||
String syspassword = contactsManagement.getPassword();
|
||||
String username = contactsManagement.getPhone();
|
||||
if (Objects.isNull(syspassword)) {
|
||||
syspassword = defaultPassword;
|
||||
}
|
||||
// 生成token
|
||||
String token = JwtUtil.sign(username, syspassword);
|
||||
// 设置token缓存有效时间
|
||||
redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
|
||||
redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME * 2 / 1000);
|
||||
|
||||
// 获取用户部门信息
|
||||
JSONObject obj = new JSONObject();
|
||||
|
||||
obj.put("token", token);
|
||||
@@ -199,25 +257,31 @@ public class CompanyLoginController {
|
||||
|
||||
@ApiOperation(value = "发送手机号验证码")
|
||||
@GetMapping(value = "/sendVerificationCode")
|
||||
public Result<?> sendVerificationCode(String mobile) {
|
||||
mobile = PasswordUtil.encrypt(mobile);
|
||||
public Result<?> sendVerificationCode(String phone) {
|
||||
phone = PasswordUtil.encrypt(phone);
|
||||
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(PayContactsManagement::getPhone, mobile);
|
||||
queryWrapper.eq(PayContactsManagement::getPhone, phone);
|
||||
PayContactsManagement contactsManagement = payContactsManagementService.getOne(queryWrapper);
|
||||
if (Objects.isNull(contactsManagement)){
|
||||
throw new JeroBootException("手机号不是企业联系人");
|
||||
}
|
||||
sysBaseAPI.sendVerificationCode(mobile,"2",null,null);
|
||||
if (StringUtils.isBlank(contactsManagement.getPassword())){
|
||||
return Result.error("updatePassword");
|
||||
}
|
||||
return Result.OK();
|
||||
sysBaseAPI.sendVerificationCode(phone,"2",null,null);
|
||||
String string = redisUtil.get("_verification:_phone:" + PasswordUtil.decrypt(phone)).toString();
|
||||
return Result.OK(string);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "短信验证码修改密码")
|
||||
@PostMapping(value = "/verificationChangePassword")
|
||||
public Result<?> verificationChangePassword(@RequestBody CompanyLoginVO companyLoginVO) {
|
||||
payContactsManagementService.verificationChangePassword(companyLoginVO);
|
||||
return Result.OK("修改密码成功");
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改密码")
|
||||
@PostMapping(value = "/changePassword")
|
||||
public Result<?> changePassword(@RequestBody CompanyLoginVO companyLoginVO) {
|
||||
payContactsManagementService.changePassword(companyLoginVO);
|
||||
|
||||
return Result.OK("修改密码成功");
|
||||
}
|
||||
|
||||
|
||||
-10
@@ -147,16 +147,6 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
|
||||
if(!StringUtils.isBlank(msg)){
|
||||
return Result.error(msg.toString());
|
||||
}
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
// 查看角色是否为财务人员
|
||||
int dataSource = PayCompanyManagementCommon.DATA_SOURCE2;
|
||||
int status = PayCompanyManagementCommon.STATUS2;
|
||||
if(Objects.equals(sysUser.getRoleCode(),PayCompanyManagementCommon.ROLE_CODE)){
|
||||
dataSource = PayCompanyManagementCommon.DATA_SOURCE1;
|
||||
status = PayCompanyManagementCommon.STATUS1;
|
||||
}
|
||||
payCompanyManagement.setDataSource(dataSource);
|
||||
payCompanyManagement.setStatus(status);
|
||||
try {
|
||||
// 新增企业前在次校验企业名称是否存在
|
||||
LambdaQueryWrapper<PayCompanyManagement> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
+2
@@ -49,5 +49,7 @@ public interface IPayContactsManagementService extends IService<PayContactsManag
|
||||
*/
|
||||
List<PayContactsManagement> listPayContactsManagement(List<String> phoneList);
|
||||
|
||||
void verificationChangePassword(CompanyLoginVO companyLoginVO);
|
||||
|
||||
void changePassword(CompanyLoginVO companyLoginVO);
|
||||
}
|
||||
|
||||
+39
-13
@@ -5,17 +5,17 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.util.CommonUtils;
|
||||
import com.jero.common.util.PasswordUtil;
|
||||
import com.jero.common.util.RedisUtil;
|
||||
import com.jero.common.util.ValidUtil;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.*;
|
||||
import com.jero.company.entity.PayContactsManagement;
|
||||
import com.jero.company.mapper.PayContactsManagementMapper;
|
||||
import com.jero.company.service.IPayContactsManagementService;
|
||||
import com.jero.company.vo.CompanyLoginVO;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -64,18 +64,21 @@ public class PayContactsManagementServiceImpl extends ServiceImpl<PayContactsMan
|
||||
}
|
||||
|
||||
@Override
|
||||
public void changePassword(CompanyLoginVO companyLoginVO) {
|
||||
ValidUtil.validate(companyLoginVO);
|
||||
public void verificationChangePassword(CompanyLoginVO companyLoginVO) {
|
||||
|
||||
//前端传入密码解密
|
||||
String phone = companyLoginVO.getPhone();
|
||||
String password = companyLoginVO.getPassword();
|
||||
String verifyPassword = companyLoginVO.getVerifyPassword();
|
||||
String RSAPublicKey = companyLoginVO.getRsapublickey();
|
||||
String RSAPublicKey = companyLoginVO.getRsaPublicKey();
|
||||
String RSAPrivateKey = String.valueOf(redisUtil.get(RSAPublicKey));
|
||||
try {
|
||||
phone = CommonUtils.decryptBtRsaPriKey(phone, RSAPrivateKey);
|
||||
password = CommonUtils.decryptBtRsaPriKey(password, RSAPrivateKey);
|
||||
verifyPassword = CommonUtils.decryptBtRsaPriKey(verifyPassword, RSAPrivateKey);
|
||||
companyLoginVO.setPhone(phone);
|
||||
ValidUtil.validate(companyLoginVO);
|
||||
|
||||
companyLoginVO.setPassword(password);
|
||||
companyLoginVO.setVerifyPassword(verifyPassword);
|
||||
} catch (Exception e) {
|
||||
@@ -83,7 +86,7 @@ public class PayContactsManagementServiceImpl extends ServiceImpl<PayContactsMan
|
||||
}
|
||||
|
||||
//处理手机获取验证码的逻辑
|
||||
Object obj = redisUtil.get("_verification:_phone:" + companyLoginVO.getPhone());
|
||||
Object obj = redisUtil.get("_verification:_phone:" + phone);
|
||||
if (obj == null) {
|
||||
throw new JeroBootException("验证码失效,请重新发送");
|
||||
}
|
||||
@@ -96,14 +99,37 @@ public class PayContactsManagementServiceImpl extends ServiceImpl<PayContactsMan
|
||||
throw new JeroBootException("新密码和确认密码不一致,请重新输入");
|
||||
}
|
||||
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(PayContactsManagement::getPhone, phone);
|
||||
queryWrapper.eq(PayContactsManagement::getPhone, PasswordUtil.encrypt(phone));
|
||||
PayContactsManagement contactsManagement = this.getOne(queryWrapper);
|
||||
if (ObjectUtils.isEmpty(contactsManagement)) {
|
||||
throw new JeroBootException("用户不存在");
|
||||
}
|
||||
String passwordEncode = PasswordUtil.encrypt(contactsManagement.getPhone(), password, contactsManagement.getSalt());
|
||||
companyLoginVO.setPassword(passwordEncode);
|
||||
payContactsManagementMapper.forgetPassword(companyLoginVO);
|
||||
redisUtil.del("_verification:_phone:" + companyLoginVO.getPhone());
|
||||
String salt = oConvertUtils.randomGen(8);
|
||||
String managementPhone = contactsManagement.getPhone();
|
||||
String passwordEncode = PasswordUtil.encrypt(PasswordUtil.decrypt(managementPhone), password, salt);
|
||||
contactsManagement.setPassword(passwordEncode);
|
||||
contactsManagement.setSalt(salt);
|
||||
this.saveOrUpdate(contactsManagement);
|
||||
redisUtil.del("_verification:_phone:" + phone);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void changePassword(CompanyLoginVO companyLoginVO) {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
String newPassword = companyLoginVO.getNewPassword();
|
||||
String verifyPassword = companyLoginVO.getVerifyPassword();
|
||||
String phone = loginUser.getPhone();
|
||||
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(PayContactsManagement::getPhone, PasswordUtil.encrypt(phone));
|
||||
PayContactsManagement contactsManagement = this.getOne(queryWrapper);
|
||||
|
||||
if (oConvertUtils.isEmpty(newPassword)) {
|
||||
throw new JeroBootException("新密码不允许为空!");
|
||||
}
|
||||
if (!newPassword.equals(verifyPassword)) {
|
||||
throw new JeroBootException("两次输入密码不一致!");
|
||||
}
|
||||
String password = PasswordUtil.encrypt(phone, newPassword, contactsManagement.getSalt());
|
||||
this.update(new PayContactsManagement().setPassword(password), new LambdaQueryWrapper<PayContactsManagement>().eq(PayContactsManagement::getPhone, phone));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,15 +25,16 @@ public class CompanyLoginVO {
|
||||
/**
|
||||
* 密码
|
||||
*/
|
||||
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
|
||||
@ApiModelProperty(value = "密码")
|
||||
@NotEmpty(message = "密码不能为空!")
|
||||
private String password;
|
||||
|
||||
@ApiModelProperty(value = "新密码")
|
||||
private String newPassword;
|
||||
|
||||
/**
|
||||
* 确认密码
|
||||
*/
|
||||
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
|
||||
@ApiModelProperty(value = "确认密码")
|
||||
@NotEmpty(message = "确认密码不能为空!")
|
||||
private String verifyPassword;
|
||||
@@ -47,6 +48,6 @@ public class CompanyLoginVO {
|
||||
|
||||
@ApiModelProperty(value = "RSA公钥")
|
||||
@NotEmpty(message = "RSA公钥不能为空!")
|
||||
private String rsapublickey;
|
||||
private String rsaPublicKey;
|
||||
|
||||
}
|
||||
|
||||
+38
@@ -5,8 +5,16 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.api.dto.message.BusTemplateMessageDTO;
|
||||
import com.jero.common.common.RoleCommon;
|
||||
import com.jero.common.dto.SendMessageDTO;
|
||||
import com.jero.common.enums.CompanyMessageEnums;
|
||||
import com.jero.common.enums.ManagementMessageEnums;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.service.SendMessageService;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.PasswordUtil;
|
||||
import com.jero.common.util.ValidUtil;
|
||||
import com.jero.contract.common.PayIncomeContractCommon;
|
||||
import com.jero.contract.entity.PayIncomeContract;
|
||||
@@ -20,6 +28,7 @@ import com.jero.contract.service.IPayIncomeContractInstallmentService;
|
||||
import com.jero.contract.service.IPayIncomeContractService;
|
||||
import com.jero.contract.vo.PayIncomeContractInput;
|
||||
import com.jero.contract.vo.ProjectOutput;
|
||||
import com.jero.meeting.common.MeetingSubitemCommon;
|
||||
import com.jero.meeting.entity.PayMeetingSituation;
|
||||
import com.jero.meeting.service.IPayMeetingSituationService;
|
||||
import com.jero.member.entity.PayMemberProject;
|
||||
@@ -32,6 +41,7 @@ import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.pack.entity.PayPackCompanyProject;
|
||||
import com.jero.pack.service.IPayPackCompanyProjectService;
|
||||
import com.jero.project.common.PayProjectCommon;
|
||||
import com.jero.project.entity.PayCommonProject;
|
||||
import com.jero.project.entity.PayWorkingGroup;
|
||||
import com.jero.project.entity.PayWorkingGroupSubItem;
|
||||
@@ -95,6 +105,8 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
private IPayMemberProjectSubitemService memberProjectSubitemService;
|
||||
@Resource
|
||||
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
|
||||
@Resource
|
||||
private SendMessageService sendMessageService;
|
||||
|
||||
@Override
|
||||
public IPage<PayIncomeContract> queryPageList(Page<PayIncomeContract> page, PayIncomeContract payIncomeContract, String chargeStatus,String projectName, String startTime, String endTime) {
|
||||
@@ -384,6 +396,11 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
if(!Objects.equals(payMeetingSituation.getCompanyId(),payIncomeContract.getSignedCompanyId())){
|
||||
throw new JeroBootException("企业不匹配!");
|
||||
}
|
||||
//验证参会人是否审核已通过
|
||||
if (Objects.nonNull(payMeetingSituation.getPaymentRecord())
|
||||
&& payMeetingSituation.getCheckResult().equals(MeetingSubitemCommon.SIGNUP_STATUS_1)) {
|
||||
throw new JeroBootException("未通过审核,不可关联。");
|
||||
}
|
||||
// 验证项目是否已被关联
|
||||
getIncomeContractAssociated(p.getContractId(),payMeetingSituation.getId());
|
||||
// 更新项目id
|
||||
@@ -651,6 +668,27 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
updatePayIncomeContract.set(PayIncomeContract::getStatus,PayIncomeContractCommon.STATUS2);
|
||||
payIncomeContractService.update(updatePayIncomeContract);
|
||||
// todo 缺少发送消息
|
||||
// 获取项目负责人,发送消息
|
||||
List<SysUser> list = sysUserService.getRolesUser(Arrays.asList(RoleCommon.CWRY));
|
||||
if(!CollectionUtils.isEmpty(list)){
|
||||
list.forEach(p->{
|
||||
// 发送消息
|
||||
SendMessageDTO sendMessageDTO = new SendMessageDTO();
|
||||
if(!StringUtils.isBlank(p.getEmail())){
|
||||
sendMessageDTO.setEmail(PasswordUtil.decrypt(p.getEmail()));
|
||||
}
|
||||
HashMap<String,String> map = new HashMap<>();
|
||||
map.put("contractNum",payIncomeContractNew.getContractNum());
|
||||
map.put("contractName",payIncomeContractNew.getContractName());
|
||||
sendMessageDTO.setFromUser(sysUser.getId());
|
||||
sendMessageDTO.setToUser(p.getUsername());
|
||||
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG2.getCode());
|
||||
sendMessageDTO.setTemplateParam(map);
|
||||
sendMessageDTO.setBusType("email");
|
||||
sendMessageDTO.setBusId(p.getId());
|
||||
sendMessageService.SendMessageService(sendMessageDTO);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.jero.home;
|
||||
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.payment.service.IPayPaymentRecordService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 首页
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2021-09-24
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Api(tags="首页")
|
||||
@RestController
|
||||
@RequestMapping("/home")
|
||||
@Slf4j
|
||||
public class HomeController {
|
||||
|
||||
@Autowired
|
||||
private IPayPaymentRecordService payPaymentRecordService;
|
||||
|
||||
/**
|
||||
* 首页-数据统计
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value="首页-数据统计", notes="首页-数据统计")
|
||||
@GetMapping(value = "/dataStatistics")
|
||||
public Result<?> dataStatistics() {
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.mail.PayMailBillVO;
|
||||
import com.jero.mail.entity.PayMailBill;
|
||||
import com.jero.mail.entity.PayMailBillSearch;
|
||||
import io.lettuce.core.dynamic.annotation.Param;
|
||||
@@ -29,6 +30,8 @@ public interface PayMailBillMapper extends BaseMapper<PayMailBill> {
|
||||
*/
|
||||
List<PayMailBill> selectCommonProjectMailBillVO(@Param("projectId") String projectId);
|
||||
|
||||
List<PayMailBill> selectInvoicingStage(@Param("projectId")String projectId);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
+12
-4
@@ -13,8 +13,9 @@
|
||||
<result property="sendMethod" column="send_method"></result>
|
||||
<result property="postNo" column="post_no"></result>
|
||||
<result property="postNo" column="post_no"></result>
|
||||
<result property="liaisonMan" column="liaison_man"></result>
|
||||
<result property="mobile" column="mobile"></result>
|
||||
<result property="contactId" column="contact_id"></result>
|
||||
<result property="contactName" column="contact_name"></result>
|
||||
<result property="contactMobile" column="contact_mobile"></result>
|
||||
<result property="billDate" column="bill_date"></result>
|
||||
<result property="sendDate" column="send_date"></result>
|
||||
<result property="remark" column="remark"></result>
|
||||
@@ -32,8 +33,8 @@
|
||||
pmb.post_status,
|
||||
pmb.send_method,
|
||||
pmb.post_no,
|
||||
pmb.liaison_man,
|
||||
pmb.mobile,
|
||||
pmb.contact_name,
|
||||
pmb.contact_mobile,
|
||||
pmb.bill_date,
|
||||
pmb.send_date,
|
||||
pmb.remark,
|
||||
@@ -42,5 +43,12 @@
|
||||
WHERE pmb.id IN (SELECT bill_id FROM pay_mail_bill_project WHERE project_id=#{projectId})
|
||||
</select>
|
||||
|
||||
<select id="selectInvoicingStage" resultType="com.jero.mail.entity.PayMailBill">
|
||||
select pmb.project_name,pmbp.invoice_amount,pmb.bill_no,pmb.bill_date,pmbp.remark
|
||||
from pay_mail_bill pmb
|
||||
inner JOIN pay_mail_bill_project pmbp on pmb.id = pmbp.bill_id
|
||||
where pmbp.project_id=#{projectId}
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
+7
@@ -30,6 +30,13 @@ public interface IPayMailBillService extends IService<PayMailBill> {
|
||||
*/
|
||||
List<PayMailBill> selectMailBillVO(String projectId);
|
||||
|
||||
/**
|
||||
* 查询开票阶段
|
||||
* @param projectId
|
||||
* @return
|
||||
*/
|
||||
List<PayMailBill> selectInvoicingStage(String projectId);
|
||||
|
||||
/**
|
||||
* 添加开票
|
||||
* @param payMailBill
|
||||
|
||||
+76
-49
@@ -82,6 +82,8 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
private TbMemberProjectMapper tbMemberProjectMapper;
|
||||
@Resource
|
||||
private PayContactsManagementMapper payContactsManagementMapper;
|
||||
@Resource
|
||||
private PayMailBillMapper payMailBillMapper;
|
||||
|
||||
@Override
|
||||
public List<PayMailBill> selectMailBillVO(String projectId) {
|
||||
@@ -101,6 +103,12 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PayMailBill> selectInvoicingStage(String projectId) {
|
||||
|
||||
return payMailBillMapper.selectInvoicingStage(projectId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加开票
|
||||
*
|
||||
@@ -135,13 +143,30 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//更新项目表开票状态,逗号拼接邮寄信息
|
||||
StringBuilder projectName = new StringBuilder();
|
||||
StringBuilder chargeCompanyName = new StringBuilder();
|
||||
StringBuilder principalName = new StringBuilder();
|
||||
StringBuilder principalId = new StringBuilder();
|
||||
|
||||
for(int i=0; i<bmpList.size();i++){
|
||||
bmpList.get(i).setBillId(payMailBill.getId());
|
||||
//更新项目表开票状态,逗号拼接邮寄信息
|
||||
getMakeInvoice(bmpList.get(i),payMailBill,i,bmpList.size());
|
||||
getMakeInvoice(bmpList.get(i),
|
||||
projectName,chargeCompanyName,principalName,principalId,
|
||||
i,bmpList.size());
|
||||
}
|
||||
payMailBill.setProjectName(projectName.toString());
|
||||
payMailBill.setChargeCompanyName(chargeCompanyName.toString());
|
||||
payMailBill.setPrincipalName(principalName.toString());
|
||||
payMailBill.setPrincipalId(principalId.toString());
|
||||
|
||||
//新增票据邮寄表
|
||||
payMailBillInsert(payMailBill);
|
||||
|
||||
//填充billId
|
||||
for(int i=0; i<bmpList.size();i++){
|
||||
bmpList.get(i).setBillId(payMailBill.getId());
|
||||
}
|
||||
//批量插入票据关联项目表
|
||||
payMailBillProjectService.saveBatch(bmpList);
|
||||
|
||||
@@ -366,7 +391,9 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
* 更新项目表开票状态,逗号拼接邮寄信息
|
||||
* @return
|
||||
*/
|
||||
private void getMakeInvoice(PayMailBillProject payMailBillProject,PayMailBillVO payMailBill,int i,int size) {
|
||||
private void getMakeInvoice(PayMailBillProject payMailBillProject,
|
||||
StringBuilder projectName,StringBuilder chargeCompanyName,StringBuilder principalName,StringBuilder principalId,
|
||||
int i,int size) {
|
||||
int makeInvoice=4;
|
||||
BigDecimal amountReceivable=new BigDecimal("0");//应收金额
|
||||
Integer needInvoice = 0;//是否需要发票
|
||||
@@ -389,16 +416,16 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
//之前开票总额+本次开票金额
|
||||
invoiceAmount = oldInvoiceAmount.add(invoiceAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
//逗号拼接邮寄信息
|
||||
if(i==size-1){
|
||||
payMailBill.setProjectName(payCommonProject.getChargeProject());
|
||||
payMailBill.setChargeCompanyName(payCommonProject.getChargeCompanyTemporaryName());
|
||||
payMailBill.setPrincipalName(payCommonProject.getPrincipalName());
|
||||
payMailBill.setPrincipalId(payCommonProject.getPrincipalId());
|
||||
if(i==0){
|
||||
projectName.append(payCommonProject.getChargeProject());
|
||||
chargeCompanyName.append(payCommonProject.getChargeCompanyTemporaryName());
|
||||
principalName.append(payCommonProject.getPrincipalId());
|
||||
principalId.append(payCommonProject.getPrincipalId());
|
||||
}else{
|
||||
payMailBill.setProjectName(payCommonProject.getChargeProject()+",");
|
||||
payMailBill.setChargeCompanyName(payCommonProject.getChargeCompanyTemporaryName()+",");
|
||||
payMailBill.setPrincipalName(payCommonProject.getPrincipalName()+",");
|
||||
payMailBill.setPrincipalId(payCommonProject.getPrincipalId()+",");
|
||||
projectName.append(",").append(payCommonProject.getChargeProject());
|
||||
chargeCompanyName.append(",").append(payCommonProject.getChargeCompanyTemporaryName());
|
||||
principalName.append(",").append(payCommonProject.getPrincipalId());
|
||||
principalId.append(",").append(payCommonProject.getPrincipalId());
|
||||
}
|
||||
break;
|
||||
// 工作组项目
|
||||
@@ -416,16 +443,16 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
//查父表
|
||||
PayWorkingGroup payWorkingGroup = payWorkingGroupMapper.selectById(workingGroup.getWorkingGroupId());
|
||||
//逗号拼接邮寄信息
|
||||
if(i==size-1){
|
||||
payMailBill.setProjectName(payWorkingGroup.getWorkingGroupProject());
|
||||
payMailBill.setChargeCompanyName(workingGroup.getChargeCompanyTemporaryName());
|
||||
payMailBill.setPrincipalName(payWorkingGroup.getPrincipalNameA());
|
||||
payMailBill.setPrincipalId(payWorkingGroup.getPrincipalIdA());
|
||||
}else {
|
||||
payMailBill.setProjectName(payWorkingGroup.getWorkingGroupProject() + ",");
|
||||
payMailBill.setChargeCompanyName(workingGroup.getChargeCompanyTemporaryName() + ",");
|
||||
payMailBill.setPrincipalName(payWorkingGroup.getPrincipalNameA() + ",");
|
||||
payMailBill.setPrincipalId(payWorkingGroup.getPrincipalIdA() + ",");
|
||||
if(i==0){
|
||||
projectName.append(payWorkingGroup.getWorkingGroupProject());
|
||||
chargeCompanyName.append(workingGroup.getChargeCompanyTemporaryName());
|
||||
principalName.append(workingGroup.getChargeCompanyTemporaryName());
|
||||
principalId.append(payWorkingGroup.getPrincipalNameA());
|
||||
}else{
|
||||
projectName.append(",").append(payWorkingGroup.getWorkingGroupProject());
|
||||
chargeCompanyName.append(",").append(workingGroup.getChargeCompanyTemporaryName());
|
||||
principalName.append(",").append(workingGroup.getChargeCompanyTemporaryName());
|
||||
principalId.append(",").append(payWorkingGroup.getPrincipalNameA());
|
||||
}
|
||||
break;
|
||||
//会议项目
|
||||
@@ -443,16 +470,16 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
//查父表
|
||||
PayMeeting payMeeting = payMeetingMapper.selectById(meeting.getMeetingId());
|
||||
//逗号拼接邮寄信息
|
||||
if(i==size-1){
|
||||
payMailBill.setProjectName(payMeeting.getMeetingName());
|
||||
payMailBill.setChargeCompanyName(meeting.getCompanyName());
|
||||
payMailBill.setPrincipalName(payMeeting.getDirectorName());
|
||||
payMailBill.setPrincipalId(payMeeting.getDirectorId());
|
||||
}else {
|
||||
payMailBill.setProjectName(payMeeting.getMeetingName() + ",");
|
||||
payMailBill.setChargeCompanyName(meeting.getCompanyName() + ",");
|
||||
payMailBill.setPrincipalName(payMeeting.getDirectorName() + ",");
|
||||
payMailBill.setPrincipalId(payMeeting.getDirectorId() + ",");
|
||||
if(i==0){
|
||||
projectName.append(payMeeting.getMeetingName());
|
||||
chargeCompanyName.append(meeting.getCompanyName());
|
||||
principalName.append(payMeeting.getDirectorName());
|
||||
principalId.append(payMeeting.getDirectorId());
|
||||
}else{
|
||||
projectName.append(",").append(payMeeting.getMeetingName());
|
||||
chargeCompanyName.append(",").append(meeting.getCompanyName());
|
||||
principalName.append(",").append(payMeeting.getDirectorName());
|
||||
principalId.append(",").append(payMeeting.getDirectorId());
|
||||
}
|
||||
break;
|
||||
//会员项目
|
||||
@@ -470,16 +497,16 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
//查父表
|
||||
PayMemberProject payMemberProject = payMemberProjectMapper.selectById(memberProject.getProjectId());
|
||||
//逗号拼接邮寄信息
|
||||
if(i==size-1){
|
||||
payMailBill.setProjectName(payMemberProject.getProjectName());
|
||||
payMailBill.setChargeCompanyName(memberProject.getCompanyName());
|
||||
payMailBill.setPrincipalName(payMemberProject.getDirectorName());
|
||||
payMailBill.setPrincipalId(payMemberProject.getDirectorId());
|
||||
}else {
|
||||
payMailBill.setProjectName(payMemberProject.getProjectName() + ",");
|
||||
payMailBill.setChargeCompanyName(memberProject.getCompanyName() + ",");
|
||||
payMailBill.setPrincipalName(payMemberProject.getDirectorName() + ",");
|
||||
payMailBill.setPrincipalId(payMemberProject.getDirectorId() + ",");
|
||||
if(i==0){
|
||||
projectName.append(payMemberProject.getProjectName());
|
||||
chargeCompanyName.append(memberProject.getCompanyName());
|
||||
principalName.append(payMemberProject.getDirectorName());
|
||||
principalId.append(payMemberProject.getDirectorId());
|
||||
}else{
|
||||
projectName.append(",").append(payMemberProject.getProjectName());
|
||||
chargeCompanyName.append(",").append(memberProject.getCompanyName());
|
||||
principalName.append(",").append(payMemberProject.getDirectorName());
|
||||
principalId.append(",").append(payMemberProject.getDirectorId());
|
||||
}
|
||||
break;
|
||||
//标协会员
|
||||
@@ -497,12 +524,12 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
//查父表
|
||||
TbMemberProject tbProject = tbMemberProjectMapper.selectById(tbMemberProject.getProjectId());
|
||||
//逗号拼接邮寄信息
|
||||
if(i==size-1){
|
||||
payMailBill.setProjectName(tbProject.getProjectName());
|
||||
payMailBill.setChargeCompanyName(tbMemberProject.getCompanyName());
|
||||
}else {
|
||||
payMailBill.setProjectName(tbProject.getProjectName() + ",");
|
||||
payMailBill.setChargeCompanyName(tbMemberProject.getCompanyName() + ",");
|
||||
if(i==0){
|
||||
projectName.append(tbProject.getProjectName());
|
||||
chargeCompanyName.append(tbMemberProject.getCompanyName());
|
||||
}else{
|
||||
projectName.append(",").append(tbProject.getProjectName());
|
||||
chargeCompanyName.append(",").append(tbMemberProject.getCompanyName());
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
+5
@@ -18,6 +18,11 @@ public class MeetingSubitemCommon {
|
||||
*/
|
||||
public final static Integer NEI_BU_QI_YE = 3;
|
||||
|
||||
/**
|
||||
* 缴费方式:线上缴费
|
||||
*/
|
||||
public final static Integer PAY_MODE_2 = 2;
|
||||
|
||||
/**
|
||||
* 缴费方式:打包
|
||||
*/
|
||||
|
||||
+13
-38
@@ -43,6 +43,7 @@ import com.jero.util.QrcodeUtil;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
@@ -79,7 +80,7 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
|
||||
/**
|
||||
* 分页列表查询
|
||||
*/
|
||||
@AutoLog(value = "会议管理-分页列表查询")
|
||||
@RequiresPermissions("meeting:search")
|
||||
@ApiOperation(value = "会议管理-分页列表查询", notes = "会议管理-分页列表查询")
|
||||
@GetMapping(value = "/page")
|
||||
public Result<?> queryPageList(PayMeeting payMeeting,
|
||||
@@ -127,7 +128,7 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
|
||||
/**
|
||||
* 列表查询
|
||||
*/
|
||||
@AutoLog(value = "会议管理-列表查询")
|
||||
@RequiresPermissions("meeting:search")
|
||||
@ApiOperation(value = "会议管理-列表查询", notes = "会议管理-列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
public Result<List<PayMeeting>> queryList() {
|
||||
@@ -138,6 +139,7 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
|
||||
/**
|
||||
* 添加
|
||||
*/
|
||||
@RequiresPermissions("meeting:add")
|
||||
@AutoLog(value = "会议管理-添加")
|
||||
@ApiOperation(value = "会议管理-添加", notes = "会议管理-添加")
|
||||
@PostMapping(value = "/add")
|
||||
@@ -150,6 +152,7 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
|
||||
/**
|
||||
* 编辑
|
||||
*/
|
||||
@RequiresPermissions("meeting:edit")
|
||||
@AutoLog(value = "会议管理-编辑")
|
||||
@ApiOperation(value = "会议管理-编辑", notes = "会议管理-编辑")
|
||||
@PostMapping(value = "/edit")
|
||||
@@ -162,6 +165,7 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
|
||||
/**
|
||||
* 通过id删除
|
||||
*/
|
||||
@RequiresPermissions("meeting:delete")
|
||||
@AutoLog(value = "会议管理-通过id删除")
|
||||
@ApiOperation(value = "会议管理-通过id删除", notes = "会议管理-通过id删除")
|
||||
@GetMapping(value = "/delete")
|
||||
@@ -173,6 +177,7 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
|
||||
/**
|
||||
* 批量删除
|
||||
*/
|
||||
@RequiresPermissions("meeting:batchDel")
|
||||
@AutoLog(value = "会议管理-批量删除")
|
||||
@ApiOperation(value = "会议管理-批量删除", notes = "会议管理-批量删除")
|
||||
@GetMapping(value = "/deleteBatch")
|
||||
@@ -184,7 +189,7 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
|
||||
/**
|
||||
* 通过id查询
|
||||
*/
|
||||
@AutoLog(value = "会议管理-通过id查询")
|
||||
@RequiresPermissions("meeting:search")
|
||||
@ApiOperation(value = "会议管理-通过id查询", notes = "会议管理-通过id查询")
|
||||
@GetMapping(value = "/queryById")
|
||||
public Result<?> queryById(@RequestParam(name = "id") String id) {
|
||||
@@ -225,6 +230,7 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
|
||||
/**
|
||||
* 导出excel
|
||||
*/
|
||||
@RequiresPermissions("meeting:export")
|
||||
@GetMapping(value = "/exportXls")
|
||||
public ModelAndView exportXls(HttpServletRequest request, PayMeeting payMeeting) {
|
||||
QueryWrapper<PayMeeting> queryWrapper = QueryGenerator.initQueryWrapper(payMeeting, request.getParameterMap());
|
||||
@@ -320,45 +326,12 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
|
||||
}
|
||||
return super.exportListXls(exportList, classToExport, "会议管理");
|
||||
}
|
||||
/**
|
||||
* 导出excel
|
||||
*/
|
||||
@GetMapping(value = "/exportWorkingGroupXls")
|
||||
public ModelAndView exportWorkingGroupXls(HttpServletRequest request, PayMeeting payMeeting) {
|
||||
QueryWrapper<PayMeeting> queryWrapper = QueryGenerator.initQueryWrapper(payMeeting, request.getParameterMap());
|
||||
List<PayMeeting> pageList = payMeetingService.list(queryWrapper);
|
||||
List<WorkingGroupMeetingExcel> exportList = new ArrayList<>();
|
||||
// 过滤选中数据
|
||||
String selections = request.getParameter("selections");
|
||||
if (oConvertUtils.isNotEmpty(selections)) {
|
||||
List<String> selectionList = Arrays.asList(selections.split(","));
|
||||
pageList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
|
||||
}
|
||||
for (PayMeeting meeting : pageList) {
|
||||
//查询会议负责人
|
||||
LoginUser user = sysBaseApi.getUserById(meeting.getDirectorId());
|
||||
meeting.setDirectorName(user.getUsername());
|
||||
meeting.setDirectorPhone(PasswordUtil.decrypt(user.getPhone()));
|
||||
WorkingGroupMeetingExcel workingGroupMeetingExcel = new WorkingGroupMeetingExcel();
|
||||
BeanUtils.copyProperties(meeting, workingGroupMeetingExcel);
|
||||
String meetingType = meeting.getMeetingType().toString();
|
||||
String meetingType1 = sysBaseApi.translateDict("meeting_type", meetingType);
|
||||
workingGroupMeetingExcel.setMeetingType(meetingType1);
|
||||
// 工作组项目查询工作组项目名
|
||||
if (meetingType.equals(MeetingCommon.WORKING_GROUP_MEETING)) {
|
||||
String workingGroupId = meeting.getWorkingGroupId();
|
||||
PayWorkingGroup workingGroup = payWorkingGroupService.getById(workingGroupId);
|
||||
workingGroupMeetingExcel.setWorkingGroupName(workingGroup.getWorkingGroupProject());
|
||||
}
|
||||
exportList.add(workingGroupMeetingExcel);
|
||||
}
|
||||
return super.exportListXls(exportList, WorkingGroupMeetingExcel.class, "会议管理");
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传资料
|
||||
*/
|
||||
@AutoLog(value = "上传资料")
|
||||
@RequiresPermissions("meeting:upload")
|
||||
@ApiOperation(value="上传资料", notes="上传资料")
|
||||
@PostMapping(value = "/uploadFile")
|
||||
public Result<?> uploadFile(@RequestBody UploadFileVO uploadFileVO) {
|
||||
@@ -390,6 +363,8 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
|
||||
/**
|
||||
* 发布提醒
|
||||
*/
|
||||
@AutoLog("发布提醒")
|
||||
@RequiresPermissions("meeting:publish")
|
||||
@ApiOperation(value="发布提醒", notes="发布提醒")
|
||||
@PostMapping(value = "/publishReminder")
|
||||
public Result<?> publishReminder(@RequestBody PublishReminderVO publishReminderVO) {
|
||||
@@ -407,7 +382,7 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
|
||||
/**
|
||||
* 新增标协会议
|
||||
*/
|
||||
@ApiOperation(value = "新增标协会议", notes = "新增标协会议")
|
||||
@ApiOperation(value = "新增标协会议")
|
||||
@PostMapping(value = "/addStandards")
|
||||
public Result<?> addStandards(@RequestBody PayMeeting payMeeting, HttpServletRequest request) {
|
||||
String publicKey = request.getParameter("publicKey");
|
||||
|
||||
+13
-8
@@ -35,6 +35,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
@@ -65,7 +66,7 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
|
||||
/**
|
||||
* 分页列表查询
|
||||
*/
|
||||
@AutoLog(value = "参会人员信息-分页列表查询")
|
||||
@RequiresPermissions("attendance:search")
|
||||
@ApiOperation(value = "参会人员信息-分页列表查询", notes = "参会人员信息-分页列表查询")
|
||||
@GetMapping(value = "/page")
|
||||
public Result<?> queryPageList(PayMeetingSituation payMeetingSituation,
|
||||
@@ -91,7 +92,6 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
|
||||
/**
|
||||
* 合同查询未关联参会人列表
|
||||
*/
|
||||
@AutoLog(value = "合同查询未关联参会人列表")
|
||||
@ApiOperation(value = "合同查询未关联参会人列表", notes = "合同查询未关联参会人列表")
|
||||
@GetMapping(value = "/contractPage")
|
||||
public Result<?> contractPage(MeetingSituationContractVO meetingSituationContractVO,
|
||||
@@ -106,7 +106,6 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
|
||||
/**
|
||||
* 分页列表查询
|
||||
*/
|
||||
@AutoLog(value = "参会人员信息-分页列表查询")
|
||||
@ApiOperation(value = "参会人员信息-分页列表查询", notes = "参会人员信息-分页列表查询")
|
||||
@GetMapping(value = "/page2")
|
||||
public Result<?> queryPageList2(PayMeetingSituation payMeetingSituation,
|
||||
@@ -125,8 +124,7 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
|
||||
/**
|
||||
* 分页列表查询
|
||||
*/
|
||||
@AutoLog(value = "报名信息-分页列表查询")
|
||||
@ApiOperation(value = "报名信息-分页列表查询", notes = "报名信息-分页列表查询")
|
||||
/*@ApiOperation(value = "报名信息-分页列表查询", notes = "报名信息-分页列表查询")
|
||||
@GetMapping(value = "/signUpPage")
|
||||
public Result<?> signUpPage(PayMeetingSituation payMeetingSituation,
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@@ -137,12 +135,11 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
|
||||
Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
|
||||
IPage<PayMeetingSituation> pageList = payMeetingSituationService.page(page, queryWrapper);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
}*/
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*/
|
||||
@AutoLog(value = "参会人员信息-列表查询")
|
||||
@ApiOperation(value = "参会人员信息-列表查询", notes = "参会人员信息-列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
public Result<List<PayMeetingSituation>> queryList() {
|
||||
@@ -153,6 +150,7 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
|
||||
/**
|
||||
* 添加参会人
|
||||
*/
|
||||
@RequiresPermissions("attendance:add")
|
||||
@AutoLog(value = "参会人员信息-添加参会人")
|
||||
@ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人")
|
||||
@PostMapping(value = "/add")
|
||||
@@ -177,6 +175,7 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
|
||||
* 编辑
|
||||
*/
|
||||
@AutoLog(value = "参会人员信息-编辑")
|
||||
@RequiresPermissions("attendance:edit")
|
||||
@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
|
||||
@PostMapping(value = "/edit")
|
||||
public Result<?> edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) {
|
||||
@@ -187,6 +186,7 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
|
||||
/**
|
||||
* 通过id删除
|
||||
*/
|
||||
@RequiresPermissions("attendance:delete")
|
||||
@AutoLog(value = "参会人员信息-通过id删除")
|
||||
@ApiOperation(value = "参会人员信息-通过id删除", notes = "参会人员信息-通过id删除")
|
||||
@GetMapping(value = "/delete")
|
||||
@@ -198,6 +198,7 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
|
||||
/**
|
||||
* 批量删除
|
||||
*/
|
||||
@RequiresPermissions("attendance:batchDel")
|
||||
@AutoLog(value = "参会人员信息-批量删除")
|
||||
@ApiOperation(value = "参会人员信息-批量删除", notes = "参会人员信息-批量删除")
|
||||
@GetMapping(value = "/deleteBatch")
|
||||
@@ -223,6 +224,7 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
|
||||
/**
|
||||
* 导出excel
|
||||
*/
|
||||
@RequiresPermissions("attendance:export")
|
||||
@GetMapping(value = "/exportXls")
|
||||
public ModelAndView exportXls(HttpServletRequest request, PayMeetingSituation payMeetingSituation) {
|
||||
QueryWrapper<PayMeetingSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, request.getParameterMap());
|
||||
@@ -309,6 +311,7 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
|
||||
/**
|
||||
* 设置对接人
|
||||
*/
|
||||
@RequiresPermissions("attendance:batchSetDocker")
|
||||
@AutoLog(value = "设置对接人")
|
||||
@ApiOperation(value = "设置对接人", notes = "设置对接人")
|
||||
@PostMapping(value = "/addDock")
|
||||
@@ -320,6 +323,7 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
|
||||
/**
|
||||
* 审核付款凭证
|
||||
*/
|
||||
@RequiresPermissions("attendance:auditCredentials")
|
||||
@AutoLog(value = "审核付款凭证")
|
||||
@ApiOperation(value = "审核付款凭证")
|
||||
@PostMapping(value = "/check")
|
||||
@@ -332,6 +336,7 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
|
||||
* 审核报名信息
|
||||
*/
|
||||
@AutoLog(value = "审核报名信息")
|
||||
@RequiresPermissions("attendance:auditSignUp")
|
||||
@ApiOperation(value = "审核报名信息")
|
||||
@PostMapping(value = "/checkRegister")
|
||||
public Result<?> checkRegister(@RequestBody CheckVO checkVO) {
|
||||
@@ -360,7 +365,7 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
|
||||
public Result<?> signIn(@RequestBody SignInVO signInVO) {
|
||||
ValidUtil.validate(signInVO);
|
||||
payMeetingSituationService.signIn(signInVO);
|
||||
return Result.OK("合并开票成功!");
|
||||
return Result.OK("签到成功!");
|
||||
}
|
||||
|
||||
|
||||
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
package com.jero.meeting.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* @Description: 会议提醒记录表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2021-09-23
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Data
|
||||
@TableName("pay_meeting_remind_record")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ApiModel(value="pay_meeting_remind_record对象", description="会议提醒记录表")
|
||||
public class PayMeetingRemindRecord implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**id*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@ApiModelProperty(value = "id")
|
||||
private String id;
|
||||
|
||||
/**创建人*/
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
/**创建日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty(value = "创建日期")
|
||||
private java.util.Date createTime;
|
||||
|
||||
/**更新人*/
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updateBy;
|
||||
|
||||
/**更新日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty(value = "更新日期")
|
||||
private java.util.Date updateTime;
|
||||
|
||||
/**会议id*/
|
||||
@Excel(name = "会议id", width = 15)
|
||||
@ApiModelProperty(value = "会议id")
|
||||
private String meetingId;
|
||||
|
||||
/**成员id*/
|
||||
@Excel(name = "成员id", width = 15)
|
||||
@ApiModelProperty(value = "成员id")
|
||||
private String subitemId;
|
||||
|
||||
}
|
||||
+7
@@ -389,4 +389,11 @@ public class PayMeetingSituation implements Serializable {
|
||||
@Dict(dicCode = "yn")
|
||||
@TableField(exist = false)
|
||||
private Integer identification;
|
||||
|
||||
/**
|
||||
* 收入合同处新增标识 flag = 1
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "收入合同处新增标识 flag = 1")
|
||||
private String flag;
|
||||
}
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.jero.meeting.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import com.jero.meeting.entity.PayMeetingRemindRecord;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* @Description: 会议提醒记录表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2021-09-23
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface PayMeetingRemindRecordMapper extends BaseMapper<PayMeetingRemindRecord> {
|
||||
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
<?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.jero.meeting.mapper.PayMeetingRemindRecordMapper">
|
||||
<resultMap id="PayMeetingRemindRecordResultMap" type="com.jero.meeting.entity.PayMeetingRemindRecord">
|
||||
<id column="id" property="id" />
|
||||
<result column="create_by" property="createBy" />
|
||||
<result column="create_time" property="createTime" />
|
||||
<result column="update_by" property="updateBy" />
|
||||
<result column="update_time" property="updateTime" />
|
||||
<result column="meeting_id" property="meetingId" />
|
||||
<result column="subitem_id" property="subitemId" />
|
||||
</resultMap>
|
||||
</mapper>
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
package com.jero.meeting.service;
|
||||
|
||||
import com.jero.meeting.entity.PayMeetingRemindRecord;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 会议提醒记录表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2021-09-23
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface IPayMeetingRemindRecordService extends IService<PayMeetingRemindRecord> {
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
void add(PayMeetingRemindRecord payMeetingRemindRecord);
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*/
|
||||
void editById(PayMeetingRemindRecord payMeetingRemindRecord);
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*/
|
||||
void deleteById(String id);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*/
|
||||
void deleteByIds(List<String> ids);
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*/
|
||||
PayMeetingRemindRecord queryById(String id);
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*/
|
||||
List<PayMeetingRemindRecord> queryList();
|
||||
|
||||
/**
|
||||
* 关联会议和工作组成员的提醒次数
|
||||
* @author lijiaro
|
||||
* @date 2021/9/23 17:54
|
||||
* @param meetingIdList 会议id
|
||||
* @param subitemIdList 成员id
|
||||
*
|
||||
*/
|
||||
void addList(List<String> meetingIdList, List<String> subitemIdList);
|
||||
}
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
package com.jero.meeting.service.impl;
|
||||
|
||||
import com.jero.meeting.entity.PayMeetingRemindRecord;
|
||||
import com.jero.meeting.mapper.PayMeetingRemindRecordMapper;
|
||||
import com.jero.meeting.service.IPayMeetingRemindRecordService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.List;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
/**
|
||||
* @Description: 会议提醒记录表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2021-09-23
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Service
|
||||
public class PayMeetingRemindRecordServiceImpl extends ServiceImpl<PayMeetingRemindRecordMapper, PayMeetingRemindRecord> implements IPayMeetingRemindRecordService {
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
@Override
|
||||
public void add(PayMeetingRemindRecord payMeetingRemindRecord) {
|
||||
save(payMeetingRemindRecord);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*/
|
||||
@Override
|
||||
public void editById(PayMeetingRemindRecord payMeetingRemindRecord) {
|
||||
saveOrUpdate(payMeetingRemindRecord);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*/
|
||||
@Override
|
||||
public void deleteById(String id) {
|
||||
removeById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*/
|
||||
@Override
|
||||
public void deleteByIds(List<String> ids) {
|
||||
removeByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*/
|
||||
@Override
|
||||
public PayMeetingRemindRecord queryById(String id) {
|
||||
return getById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*/
|
||||
@Override
|
||||
public List<PayMeetingRemindRecord> queryList() {
|
||||
return list();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addList(List<String> meetingIdList, List<String> subitemIdList) {
|
||||
for (String meetingId : meetingIdList) {
|
||||
PayMeetingRemindRecord payMeetingRemindRecord = new PayMeetingRemindRecord();
|
||||
payMeetingRemindRecord.setMeetingId(meetingId);
|
||||
for (String subitemId : subitemIdList) {
|
||||
payMeetingRemindRecord.setSubitemId(subitemId);
|
||||
this.save(payMeetingRemindRecord);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+21
-6
@@ -7,14 +7,18 @@ import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.ValidUtil;
|
||||
import com.jero.company.entity.PayContactsManagement;
|
||||
import com.jero.company.service.IPayContactsManagementService;
|
||||
import com.jero.data.entity.PayCaseCommittee;
|
||||
import com.jero.data.service.IPayCaseCommitteeService;
|
||||
import com.jero.meeting.common.MeetingCommon;
|
||||
import com.jero.meeting.entity.PayMeeting;
|
||||
import com.jero.meeting.entity.PayMeetingHotelContacts;
|
||||
import com.jero.meeting.entity.PayMeetingRemindRecord;
|
||||
import com.jero.meeting.entity.PayMeetingSituation;
|
||||
import com.jero.meeting.mapper.PayMeetingMapper;
|
||||
import com.jero.meeting.service.IPayMeetingHotelContactsService;
|
||||
import com.jero.meeting.service.IPayMeetingRemindRecordService;
|
||||
import com.jero.meeting.service.IPayMeetingService;
|
||||
import com.jero.meeting.service.IPayMeetingSituationService;
|
||||
import com.jero.meeting.valid.group.CaseCommitteeMeeting;
|
||||
@@ -66,9 +70,11 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
|
||||
@Resource
|
||||
private IPayWorkingGroupSubItemService payWorkingGroupSubItemService;
|
||||
@Resource
|
||||
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
|
||||
private IPayContactsManagementService payContactsManagementService;
|
||||
@Resource
|
||||
private IPayCaseCommitteeService payCaseCommitteeService;
|
||||
@Resource
|
||||
private IPayMeetingRemindRecordService payMeetingRemindRecordService;
|
||||
/**
|
||||
* 新增会议
|
||||
*/
|
||||
@@ -305,8 +311,12 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
|
||||
public void publishReminder(List<String> meetingIds, List<String> subitemIds) {
|
||||
List<PayWorkingGroupSubItem> payWorkingGroupSubItems = payWorkingGroupSubItemService.listByIds(subitemIds);
|
||||
List<String> userIds = new ArrayList<>();
|
||||
//用于新增关联关系
|
||||
List<String> meetingIdList = new ArrayList<>();
|
||||
List<String> subitemIdList = new ArrayList<>();
|
||||
//把单位会员中所有的联系人和有机联系人取出
|
||||
for (PayWorkingGroupSubItem payWorkingGroupSubItem : payWorkingGroupSubItems) {
|
||||
subitemIdList.add(payWorkingGroupSubItem.getId());
|
||||
String contactsTemporaryIdOne = payWorkingGroupSubItem.getContactsTemporaryIdOne();
|
||||
if (StrUtil.isNotBlank(contactsTemporaryIdOne)){
|
||||
userIds.add(contactsTemporaryIdOne);
|
||||
@@ -323,19 +333,24 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
|
||||
if (StrUtil.isNotBlank(mailContactsTemporaryId)){
|
||||
userIds.add(mailContactsTemporaryId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
//去重
|
||||
userIds = userIds.stream().distinct().collect(Collectors.toList());
|
||||
LambdaQueryWrapper<PayContactsManagementTemporary> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.in(PayContactsManagementTemporary::getId,userIds);
|
||||
List<PayContactsManagementTemporary> list = payContactsManagementTemporaryService.list(wrapper);
|
||||
List<PayMeeting> payMeetings = listByIds(meetingIds);
|
||||
for (PayContactsManagementTemporary payContactsManagementTemporary : list) {
|
||||
LambdaQueryWrapper<PayContactsManagement> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.in(PayContactsManagement::getId,userIds);
|
||||
List<PayContactsManagement> list = payContactsManagementService.list(wrapper);
|
||||
for (PayContactsManagement payContactsManagement : list) {
|
||||
//TODO 发送消息
|
||||
}
|
||||
//标记会议为已提醒
|
||||
List<PayMeeting> payMeetings = listByIds(meetingIds);
|
||||
for (PayMeeting payMeeting : payMeetings) {
|
||||
meetingIdList.add(payMeeting.getId());
|
||||
payMeeting.setRemind(MeetingCommon.REMIND_1);
|
||||
saveOrUpdate(payMeeting);
|
||||
}
|
||||
payMeetingRemindRecordService.addList(meetingIdList,subitemIdList);
|
||||
}
|
||||
}
|
||||
|
||||
+36
-4
@@ -6,9 +6,17 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.common.ProjectCommon;
|
||||
import com.jero.common.dto.SendMessageDTO;
|
||||
import com.jero.common.enums.CompanyMessageEnums;
|
||||
import com.jero.common.enums.ManagementMessageEnums;
|
||||
import com.jero.common.common.ProjectCommon;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.service.SendMessageService;
|
||||
import com.jero.common.service.ContractCreateProjectSendMessageService;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.PasswordUtil;
|
||||
import com.jero.common.util.ValidUtil;
|
||||
import com.jero.company.entity.PayCompanyManagement;
|
||||
import com.jero.company.entity.PayContactsManagement;
|
||||
@@ -93,6 +101,10 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
||||
private IPayWorkingGroupSubItemService payWorkingGroupSubItemService;
|
||||
@Resource
|
||||
private IPayCaseCommitteeSubitemService payCaseCommitteeSubitemService;
|
||||
@Resource
|
||||
private SendMessageService sendMessageService;
|
||||
@Resource
|
||||
private ContractCreateProjectSendMessageService contractCreateProjectSendMessageService;
|
||||
|
||||
/**
|
||||
* 保存
|
||||
@@ -106,6 +118,13 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
||||
|
||||
saveMeetingSituation(payMeetingSituation1);
|
||||
handlePack(payMeetingSituation1);
|
||||
|
||||
|
||||
// 收入合同创建项目发送消息到项目负责人
|
||||
if(Objects.equals(ProjectCommon.FLAG,payMeetingSituation.getFlag())){
|
||||
PayMeeting payMeeting = meetingService.getById(payMeetingSituation.getMeetingId());
|
||||
contractCreateProjectSendMessageService.ContractCreateProjectSendMessageService(payMeeting.getMeetingName() + "的" + payMeetingSituation.getCompanyName());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -398,6 +417,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
||||
String record = ObjRecordUtil.addRecord(oldObject, payMeetingSituation1);
|
||||
if (StringUtils.isNotBlank(record)){
|
||||
//TODO 给负责人发送消息
|
||||
//iSysBaseApi.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -494,11 +514,23 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
||||
|
||||
} else {
|
||||
ValidUtil.validate(commonPeopleVO, NotPack.class);
|
||||
|
||||
payMeetingSituation1.setNeedInvoice(payMeetingSituation.getNeedInvoice());
|
||||
//缴费方式为线上缴费时,判断是否为会议期间
|
||||
String paymentRecord = payMeetingSituation.getPaymentRecord();
|
||||
payMeetingSituation1.setPaymentRecord(paymentRecord);
|
||||
payMeetingSituation1.setOrderCode(payMeetingSituation.getOrderCode());
|
||||
if (payMode.equals(MeetingSubitemCommon.PAY_MODE_2)){
|
||||
Date startTime = payMeeting.getStartTime();
|
||||
Date endTime = payMeeting.getEndTime();
|
||||
//如果不在会议期间,不允许上传缴费凭证
|
||||
if (!belongCalendar(new Date(),startTime,endTime)) {
|
||||
throw new JeroBootException("线上缴费时,付款凭证和订单后四位编码只能在会议期间上传");
|
||||
}
|
||||
payMeetingSituation1.setPaymentRecord(paymentRecord);
|
||||
payMeetingSituation1.setOrderCode(payMeetingSituation.getOrderCode());
|
||||
}else {
|
||||
payMeetingSituation1.setPaymentRecord(paymentRecord);
|
||||
|
||||
}
|
||||
payMeetingSituation1.setNeedInvoice(payMeetingSituation.getNeedInvoice());
|
||||
|
||||
//如果是标协会议判断会员类型
|
||||
if (meetingType.equals(Integer.parseInt(MeetingCommon.STANDARD_MEETING))) {
|
||||
//根据企业名称和会员类型不为null判断是否为标协会员
|
||||
|
||||
+7
@@ -5,6 +5,7 @@ import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
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 com.jero.common.aspect.annotation.Dict;
|
||||
@@ -246,5 +247,11 @@ public class PayMemberProjectSubitem implements Serializable {
|
||||
@DecimalMax(value = "9999999999.99",message = "开票金额格式错误")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
private BigDecimal invoiceAmount;
|
||||
/**
|
||||
* 收入合同处新增标识 flag = 1
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "收入合同处新增标识 flag = 1")
|
||||
private String flag;
|
||||
|
||||
}
|
||||
|
||||
+7
-2
@@ -2,14 +2,15 @@ package com.jero.member.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.jero.common.common.ProjectCommon;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.service.ContractCreateProjectSendMessageService;
|
||||
import com.jero.common.service.ProjectDetailService;
|
||||
import com.jero.common.util.ValidUtil;
|
||||
import com.jero.common.vo.ProjectStatusVO;
|
||||
import com.jero.company.entity.PayContactsManagement;
|
||||
import com.jero.company.service.IPayContactsManagementService;
|
||||
import com.jero.contract.entity.PayIncomeContract;
|
||||
import com.jero.contract.service.IPayIncomeContractAssociatedService;
|
||||
import com.jero.contract.service.IPayIncomeContractService;
|
||||
import com.jero.pack.entity.PayPackCompanyProject;
|
||||
import com.jero.pack.service.IPayPackCompanyProjectService;
|
||||
@@ -64,7 +65,7 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
|
||||
@Autowired
|
||||
private ProjectDetailService projectDetailService;
|
||||
@Autowired
|
||||
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
|
||||
private ContractCreateProjectSendMessageService contractCreateProjectSendMessageService;
|
||||
@Resource
|
||||
private IPayMemberProjectSubitemService memberProjectSubitemService;
|
||||
/**
|
||||
@@ -114,6 +115,10 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
|
||||
}
|
||||
}
|
||||
}
|
||||
// 收入合同创建项目发送消息到项目负责人
|
||||
if(Objects.equals(ProjectCommon.FLAG,payMemberProjectSubitem.getFlag())){
|
||||
contractCreateProjectSendMessageService.ContractCreateProjectSendMessageService(memberProject.getProjectName() + "的" + payMemberProjectSubitem.getCompanyName());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
package com.jero.message.common;
|
||||
|
||||
public class MessageCommon {
|
||||
/**
|
||||
* 阅读状态(0未读,1已读)
|
||||
*/
|
||||
public final static Integer READ_FLAG1 = 1;
|
||||
/**
|
||||
* 阅读状态(0未读,1已读)
|
||||
*/
|
||||
public final static Integer READ_FLAG0 = 0;
|
||||
}
|
||||
-179
@@ -1,179 +0,0 @@
|
||||
package com.jero.message.controller;
|
||||
|
||||
import java.util.Arrays;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.message.common.MessageCommon;
|
||||
import com.jero.message.entity.PayAnnouncementMessage;
|
||||
import com.jero.message.service.IPayAnnouncementMessageService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
||||
/**
|
||||
* @Description: 消息
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2021-09-22
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Api(tags="消息")
|
||||
@RestController
|
||||
@RequestMapping("/message/payAnnouncementMessage")
|
||||
@Slf4j
|
||||
public class PayAnnouncementMessageController extends JeroController<PayAnnouncementMessage, IPayAnnouncementMessageService> {
|
||||
@Autowired
|
||||
private IPayAnnouncementMessageService payAnnouncementMessageService;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
*
|
||||
* @param payAnnouncementMessage
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "消息-分页列表查询")
|
||||
@ApiOperation(value="消息-分页列表查询", notes="消息-分页列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
public Result<?> queryPageList(PayAnnouncementMessage payAnnouncementMessage,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
payAnnouncementMessage.setRecipient(sysUser.getId());
|
||||
QueryWrapper<PayAnnouncementMessage> queryWrapper = QueryGenerator.initQueryWrapper(payAnnouncementMessage, req.getParameterMap());
|
||||
Page<PayAnnouncementMessage> page = new Page<>(pageNo, pageSize);
|
||||
IPage<PayAnnouncementMessage> pageList = payAnnouncementMessageService.page(page, queryWrapper);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
/**
|
||||
* @Description 已读
|
||||
* @Author lqt
|
||||
* @Date 2021/9/22
|
||||
* @Param
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
@AutoLog(value = "消息-已读")
|
||||
@ApiOperation(value="消息-已读", notes="消息-已读")
|
||||
@PostMapping(value = "/add")
|
||||
public Result<?> update(@RequestBody PayAnnouncementMessage payAnnouncementMessage) {
|
||||
LambdaUpdateWrapper<PayAnnouncementMessage> update = new LambdaUpdateWrapper<>();
|
||||
update.eq(PayAnnouncementMessage::getId,payAnnouncementMessage.getId());
|
||||
update.set(PayAnnouncementMessage::getReadFlag,MessageCommon.READ_FLAG1);
|
||||
payAnnouncementMessageService.update(update);
|
||||
return Result.OK("操作成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
* @param payAnnouncementMessage
|
||||
* @return
|
||||
*/
|
||||
// @AutoLog(value = "pay_announcement_message-添加")
|
||||
// @ApiOperation(value="pay_announcement_message-添加", notes="pay_announcement_message-添加")
|
||||
// @PostMapping(value = "/add")
|
||||
public Result<?> add(@RequestBody PayAnnouncementMessage payAnnouncementMessage) {
|
||||
payAnnouncementMessageService.save(payAnnouncementMessage);
|
||||
return Result.OK("添加成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param payAnnouncementMessage
|
||||
* @return
|
||||
*/
|
||||
// @AutoLog(value = "pay_announcement_message-编辑")
|
||||
// @ApiOperation(value="pay_announcement_message-编辑", notes="pay_announcement_message-编辑")
|
||||
// @PutMapping(value = "/edit")
|
||||
public Result<?> edit(@RequestBody PayAnnouncementMessage payAnnouncementMessage) {
|
||||
payAnnouncementMessageService.updateById(payAnnouncementMessage);
|
||||
return Result.OK("编辑成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
// @AutoLog(value = "pay_announcement_message-通过id删除")
|
||||
// @ApiOperation(value="pay_announcement_message-通过id删除", notes="pay_announcement_message-通过id删除")
|
||||
// @DeleteMapping(value = "/delete")
|
||||
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
|
||||
payAnnouncementMessageService.removeById(id);
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
// @AutoLog(value = "pay_announcement_message-批量删除")
|
||||
// @ApiOperation(value="pay_announcement_message-批量删除", notes="pay_announcement_message-批量删除")
|
||||
// @DeleteMapping(value = "/deleteBatch")
|
||||
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
|
||||
this.payAnnouncementMessageService.removeByIds(Arrays.asList(ids.split(",")));
|
||||
return Result.OK("批量删除成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "pay_announcement_message-通过id查询")
|
||||
@ApiOperation(value="pay_announcement_message-通过id查询", notes="pay_announcement_message-通过id查询")
|
||||
@GetMapping(value = "/queryById")
|
||||
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
|
||||
PayAnnouncementMessage payAnnouncementMessage = payAnnouncementMessageService.getById(id);
|
||||
if(payAnnouncementMessage==null) {
|
||||
return Result.error("未找到对应数据");
|
||||
}
|
||||
return Result.OK(payAnnouncementMessage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出excel
|
||||
*
|
||||
* @param request
|
||||
* @param payAnnouncementMessage
|
||||
*/
|
||||
// @RequestMapping(value = "/exportXls")
|
||||
public ModelAndView exportXls(HttpServletRequest request, PayAnnouncementMessage payAnnouncementMessage) {
|
||||
return super.exportXls(request, payAnnouncementMessage, PayAnnouncementMessage.class, "pay_announcement_message");
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过excel导入数据
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
// @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
|
||||
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
|
||||
return super.importExcel(request, response, PayAnnouncementMessage.class);
|
||||
}
|
||||
|
||||
}
|
||||
-89
@@ -1,89 +0,0 @@
|
||||
package com.jero.message.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* @Description: pay_announcement_message
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2021-09-22
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Data
|
||||
@TableName("pay_announcement_message")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ApiModel(value="pay_announcement_message对象", description="pay_announcement_message")
|
||||
public class PayAnnouncementMessage implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**id*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@ApiModelProperty(value = "id")
|
||||
private String id;
|
||||
/**标题*/
|
||||
@Excel(name = "标题", width = 15)
|
||||
@ApiModelProperty(value = "标题")
|
||||
private String titile;
|
||||
/**内容*/
|
||||
@Excel(name = "内容", width = 15)
|
||||
@ApiModelProperty(value = "内容")
|
||||
private String msgContent;
|
||||
/**发布人*/
|
||||
@Excel(name = "发布人", width = 15)
|
||||
@ApiModelProperty(value = "发布人")
|
||||
private String sender;
|
||||
/**接收用户*/
|
||||
@Excel(name = "接收用户", width = 15)
|
||||
@ApiModelProperty(value = "接收用户")
|
||||
private String recipient;
|
||||
/**消息类型(字典表)*/
|
||||
@Excel(name = "消息类型(字典表)", width = 15)
|
||||
@ApiModelProperty(value = "消息类型(字典表)")
|
||||
private Integer msgCategory;
|
||||
/**操作*/
|
||||
@Excel(name = "操作", width = 15)
|
||||
@ApiModelProperty(value = "操作")
|
||||
private String operation;
|
||||
/**业务id*/
|
||||
@Excel(name = "业务id", width = 15)
|
||||
@ApiModelProperty(value = "业务id")
|
||||
private String busId;
|
||||
/**阅读状态(0未读,1已读)*/
|
||||
@Excel(name = "阅读状态(0未读,1已读)", width = 15)
|
||||
@ApiModelProperty(value = "阅读状态(0未读,1已读)")
|
||||
private Integer readFlag;
|
||||
/**阅读时间*/
|
||||
@Excel(name = "阅读时间", width = 15, format = "yyyy-MM-dd")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "阅读时间")
|
||||
private Date readTime;
|
||||
/**创建人*/
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
/**创建时间*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
/**更新人*/
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updateBy;
|
||||
/**更新时间*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private Date updateTime;
|
||||
}
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
package com.jero.message.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.jero.message.entity.PayAnnouncementMessage;
|
||||
|
||||
/**
|
||||
* @Description: pay_announcement_message
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2021-09-22
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface PayAnnouncementMessageMapper extends BaseMapper<PayAnnouncementMessage> {
|
||||
|
||||
}
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
<?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.jero.message.mapper.PayAnnouncementMessageMapper">
|
||||
|
||||
</mapper>
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
package com.jero.message.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.message.entity.PayAnnouncementMessage;
|
||||
|
||||
/**
|
||||
* @Description: pay_announcement_message
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2021-09-22
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface IPayAnnouncementMessageService extends IService<PayAnnouncementMessage> {
|
||||
|
||||
void sendMessage(PayAnnouncementMessage payAnnouncementMessage);
|
||||
|
||||
}
|
||||
-46
@@ -1,46 +0,0 @@
|
||||
package com.jero.message.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.constant.WebsocketConst;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.message.common.MessageCommon;
|
||||
import com.jero.message.entity.PayAnnouncementMessage;
|
||||
import com.jero.message.mapper.PayAnnouncementMessageMapper;
|
||||
import com.jero.message.service.IPayAnnouncementMessageService;
|
||||
import com.jero.modules.message.websocket.WebSocket;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @Description: pay_announcement_message
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2021-09-22
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Service
|
||||
public class PayAnnouncementMessageServiceImpl extends ServiceImpl<PayAnnouncementMessageMapper, PayAnnouncementMessage> implements IPayAnnouncementMessageService {
|
||||
@Autowired
|
||||
private IPayAnnouncementMessageService payAnnouncementMessageService;
|
||||
@Resource
|
||||
private WebSocket webSocket;
|
||||
@Override
|
||||
@Transactional
|
||||
public void sendMessage(PayAnnouncementMessage payAnnouncementMessage) {
|
||||
if(Objects.isNull(payAnnouncementMessage)){
|
||||
throw new JeroBootException("发送消息失败!");
|
||||
}
|
||||
payAnnouncementMessage.setReadFlag(MessageCommon.READ_FLAG0);
|
||||
payAnnouncementMessageService.save(payAnnouncementMessage);
|
||||
JSONObject obj = new JSONObject();
|
||||
obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_USER);
|
||||
obj.put(WebsocketConst.MSG_USER_ID, payAnnouncementMessage.getRecipient());
|
||||
obj.put(WebsocketConst.MSG_ID, payAnnouncementMessage.getId());
|
||||
obj.put(WebsocketConst.MSG_TXT, payAnnouncementMessage.getTitile());
|
||||
webSocket.sendMessage(payAnnouncementMessage.getRecipient(), obj.toJSONString());
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -156,7 +156,7 @@ public class PayPaymentRecordController extends JeroController<PayPaymentRecord,
|
||||
@PostMapping(value = "/payBillList")
|
||||
public Result<?> payBillList(String id) {
|
||||
|
||||
return Result.OK(payMailBillService.selectMailBillVO(id));
|
||||
return Result.OK(payMailBillService.selectInvoicingStage(id));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
@@ -13,6 +13,7 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.common.ProjectCommon;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.service.ProjectDetailService;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
|
||||
+24
-30
@@ -5,17 +5,19 @@ import java.util.stream.Collectors;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.api.dto.message.BusTemplateMessageDTO;
|
||||
import com.jero.common.api.dto.message.TemplateMessageDTO;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.common.ProjectCommon;
|
||||
import com.jero.common.dto.SendMessageDTO;
|
||||
import com.jero.common.enums.CompanyMessageEnums;
|
||||
import com.jero.common.enums.ManagementMessageEnums;
|
||||
import com.jero.common.service.ProjectDetailService;
|
||||
import com.jero.common.service.SendMessageService;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.PasswordUtil;
|
||||
import com.jero.common.util.ValidUtil;
|
||||
import com.jero.common.vo.ProjectDetailVO;
|
||||
import com.jero.message.service.IPayAnnouncementMessageService;
|
||||
import com.jero.project.common.PayProjectCommon;
|
||||
import com.jero.project.entity.*;
|
||||
import com.jero.project.service.IPayWorkingGroupService;
|
||||
@@ -56,7 +58,7 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
|
||||
@Autowired
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
@Autowired
|
||||
private IPayAnnouncementMessageService payAnnouncementMessageService;
|
||||
private SendMessageService sendMessageService;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
@@ -151,38 +153,30 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
|
||||
if(CollectionUtils.isEmpty(listPayContactsManagementTemporary)){
|
||||
return Result.error("联系人不存在!");
|
||||
}
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
listPayWorkingGroupSubItem.forEach(p->{
|
||||
List<PayContactsManagementTemporary> listContactsEmail = listPayContactsManagementTemporary.stream().filter(item->Objects.equals(p.getContactsTemporaryIdOne(),item.getId())).collect(Collectors.toList());
|
||||
if(CollectionUtils.isEmpty(listContactsEmail)){
|
||||
List<PayContactsManagementTemporary> listContactsInfo = listPayContactsManagementTemporary.stream().filter(item->Objects.equals(p.getContactsTemporaryIdOne(),item.getId())).collect(Collectors.toList());
|
||||
if(CollectionUtils.isEmpty(listContactsInfo)){
|
||||
return;
|
||||
}
|
||||
if(StringUtils.isBlank(listContactsEmail.get(0).getEmail())){
|
||||
return;
|
||||
// 发送消息
|
||||
SendMessageDTO sendMessageDTO = new SendMessageDTO();
|
||||
if(!StringUtils.isBlank(listContactsInfo.get(0).getEmail())){
|
||||
sendMessageDTO.setEmail(PasswordUtil.decrypt(listContactsInfo.get(0).getEmail()));
|
||||
}
|
||||
String msg = "中汽数据中心提醒您,贵公司与中汽数据签订的" + payWorkingGroup.getWorkingGroupProject()
|
||||
+ "项目款项仍未结余,请及时汇款,如已经汇款,请忽略此条通知。谢谢合作";
|
||||
|
||||
// sysBaseAPI.sendEmailMsg(PasswordUtil.decrypt(listContactsEmail.get(0).getEmail()), "", msg);
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
// PayAnnouncementMessage payAnnouncementMessage = new PayAnnouncementMessage();
|
||||
// payAnnouncementMessage.setTitile(MessageEnums.MSG14.getValue());
|
||||
// payAnnouncementMessage.setMsgContent(msg);
|
||||
// payAnnouncementMessage.setSender(sysUser.getId());
|
||||
// payAnnouncementMessage.setRecipient(sysUser.getId());
|
||||
// payAnnouncementMessage.setMsgCategory(MessageEnums.MSG14.getCode());
|
||||
// payAnnouncementMessage.setOperation(MessageEnums.MSG14.getDetail());
|
||||
// payAnnouncementMessage.setBusId(p.getId());
|
||||
// payAnnouncementMessageService.sendMessage(payAnnouncementMessage);
|
||||
BusTemplateMessageDTO busTemplateMessageDTO = new BusTemplateMessageDTO();
|
||||
busTemplateMessageDTO.setTitle(CompanyMessageEnums.MSG11.getValue());
|
||||
busTemplateMessageDTO.setFromUser(sysUser.getId());
|
||||
busTemplateMessageDTO.setToUser(sysUser.getUsername());
|
||||
busTemplateMessageDTO.setTemplateCode(CompanyMessageEnums.MSG11.getCode());
|
||||
busTemplateMessageDTO.setTemplateParam(null);
|
||||
busTemplateMessageDTO.setBusId(p.getId());
|
||||
sysBaseAPI.sendBusTemplateAnnouncement(busTemplateMessageDTO);
|
||||
if(!StringUtils.isBlank(listContactsInfo.get(0).getPhone())){
|
||||
sendMessageDTO.setToUser(PasswordUtil.decrypt(listContactsInfo.get(0).getPhone()));
|
||||
sendMessageDTO.setPhone(PasswordUtil.decrypt(listContactsInfo.get(0).getPhone()));
|
||||
}
|
||||
HashMap<String,String> map = new HashMap<>();
|
||||
map.put("projectName",payWorkingGroup.getWorkingGroupProject());
|
||||
sendMessageDTO.setFromUser(sysUser.getId());
|
||||
sendMessageDTO.setTemplateCode(CompanyMessageEnums.MSG11.getCode());
|
||||
sendMessageDTO.setTemplateParam(map);
|
||||
sendMessageDTO.setBusType("email");
|
||||
sendMessageDTO.setBusId(p.getId());
|
||||
sendMessageService.SendMessageService(sendMessageDTO);
|
||||
});
|
||||
// todo 缺少发送消息
|
||||
return Result.OK("添加成功!");
|
||||
}
|
||||
|
||||
|
||||
@@ -199,4 +199,10 @@ public class PayCommonProject implements Serializable {
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "联系人邮箱")
|
||||
private String email;
|
||||
/**
|
||||
* 收入合同处新增标识 flag = 1
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "收入合同处新增标识 flag = 1")
|
||||
private String flag;
|
||||
}
|
||||
|
||||
+16
@@ -192,4 +192,20 @@ public class PayWorkingGroupSubItem implements Serializable {
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "项目ids 多个以逗号分隔")
|
||||
private java.lang.String projectIds;
|
||||
|
||||
/**已提醒*/
|
||||
@TableField(exist = false)
|
||||
@Dict(dicCode = "yn")
|
||||
private Integer remind;
|
||||
|
||||
/**会议id*/
|
||||
@TableField(exist = false)
|
||||
private java.lang.String meetingId;
|
||||
|
||||
/**
|
||||
* 收入合同处新增标识 flag = 1
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "收入合同处新增标识 flag = 1")
|
||||
private String flag;
|
||||
}
|
||||
|
||||
+21
-4
@@ -5,15 +5,26 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.common.ProjectCommon;
|
||||
import com.jero.common.common.RoleCommon;
|
||||
import com.jero.common.dto.SendMessageDTO;
|
||||
import com.jero.common.enums.CompanyMessageEnums;
|
||||
import com.jero.common.enums.ManagementMessageEnums;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.service.ContractCreateProjectSendMessageService;
|
||||
import com.jero.common.service.ProjectDetailService;
|
||||
import com.jero.common.service.SendMessageService;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.PasswordUtil;
|
||||
import com.jero.common.vo.ProjectStatusVO;
|
||||
import com.jero.contract.common.PayIncomeContractCommon;
|
||||
import com.jero.contract.entity.PayIncomeContract;
|
||||
import com.jero.contract.entity.PayIncomeContractAssociated;
|
||||
import com.jero.contract.service.IPayIncomeContractAssociatedService;
|
||||
import com.jero.contract.service.IPayIncomeContractService;
|
||||
import com.jero.modules.system.entity.SysRole;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysRoleService;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.pack.entity.PayPackCompany;
|
||||
import com.jero.pack.entity.PayPackCompanyProject;
|
||||
@@ -34,6 +45,7 @@ import com.jero.temporary.service.IPayContactsManagementTemporaryService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -43,10 +55,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Description: pay_common_project
|
||||
@@ -74,6 +83,9 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
private IPayPackCompanyProjectService payPackCompanyProjectService;
|
||||
@Autowired
|
||||
private ProjectDetailService projectDetailService;
|
||||
@Autowired
|
||||
private ContractCreateProjectSendMessageService contractCreateProjectSendMessageService;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
@@ -120,6 +132,11 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
}
|
||||
}
|
||||
}
|
||||
// 收入合同创建项目发送消息到项目负责人
|
||||
if(Objects.equals(ProjectCommon.FLAG,payCommonProject.getFlag())){
|
||||
contractCreateProjectSendMessageService.ContractCreateProjectSendMessageService(payCommonProject.getChargeProject());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+33
-2
@@ -5,8 +5,15 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.common.ProjectCommon;
|
||||
import com.jero.common.common.RoleCommon;
|
||||
import com.jero.common.dto.SendMessageDTO;
|
||||
import com.jero.common.enums.CompanyMessageEnums;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.service.ContractCreateProjectSendMessageService;
|
||||
import com.jero.common.service.ProjectDetailService;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.PasswordUtil;
|
||||
import com.jero.common.util.ValidUtil;
|
||||
import com.jero.common.vo.ProjectStatusVO;
|
||||
import com.jero.company.entity.PayCompanyManagement;
|
||||
@@ -17,6 +24,9 @@ import com.jero.contract.entity.PayIncomeContract;
|
||||
import com.jero.contract.entity.PayIncomeContractAssociated;
|
||||
import com.jero.contract.service.IPayIncomeContractAssociatedService;
|
||||
import com.jero.contract.service.IPayIncomeContractService;
|
||||
import com.jero.meeting.entity.PayMeetingRemindRecord;
|
||||
import com.jero.meeting.service.IPayMeetingRemindRecordService;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.pack.entity.PayPackCompanyProject;
|
||||
import com.jero.pack.service.IPayPackCompanyProjectService;
|
||||
import com.jero.project.common.PayProjectCommon;
|
||||
@@ -34,6 +44,7 @@ import com.jero.temporary.service.IPayContactsManagementTemporaryService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.jeecgframework.poi.excel.ExcelImportCheckUtil;
|
||||
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
||||
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||
@@ -81,6 +92,10 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
|
||||
private IPayPackCompanyProjectService payPackCompanyProjectService;
|
||||
@Autowired
|
||||
private ProjectDetailService projectDetailService;
|
||||
@Resource
|
||||
private IPayMeetingRemindRecordService payMeetingRemindRecordService;
|
||||
@Autowired
|
||||
private ContractCreateProjectSendMessageService contractCreateProjectSendMessageService;
|
||||
|
||||
@Override
|
||||
public void updateBatchSetCharge(SetChargeInput input) {
|
||||
@@ -89,7 +104,20 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
|
||||
|
||||
@Override
|
||||
public IPage<PayWorkingGroupSubItem> queryPageList(Page<PayWorkingGroupSubItem> page, PayWorkingGroupSubItem payWorkingGroupSubitem,String paymentDate) {
|
||||
return payWorkingGroupSubItemMapper.queryPageList(page,payWorkingGroupSubitem,paymentDate);
|
||||
IPage<PayWorkingGroupSubItem> payWorkingGroupSubItemIPage = payWorkingGroupSubItemMapper.queryPageList(page, payWorkingGroupSubitem, paymentDate);
|
||||
if (StringUtils.isNotBlank(payWorkingGroupSubitem.getMeetingId())){
|
||||
List<PayWorkingGroupSubItem> records = payWorkingGroupSubItemIPage.getRecords();
|
||||
for (PayWorkingGroupSubItem workingGroupSubItem : records) {
|
||||
String workingGroupSubItemId = workingGroupSubItem.getId();
|
||||
LambdaQueryWrapper<PayMeetingRemindRecord> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(PayMeetingRemindRecord::getId,workingGroupSubItemId);
|
||||
int count = payMeetingRemindRecordService.count(wrapper);
|
||||
if (count>0){
|
||||
workingGroupSubItem.setRemind(PayProjectCommon.YES);
|
||||
}
|
||||
}
|
||||
}
|
||||
return payWorkingGroupSubItemIPage;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -156,7 +184,10 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 收入合同创建项目发送消息到项目负责人
|
||||
if(Objects.equals(ProjectCommon.FLAG,payWorkingGroupSubItem.getFlag())){
|
||||
contractCreateProjectSendMessageService.ContractCreateProjectSendMessageService(payWorkingGroup.getWorkingGroupProject() + "的" + payWorkingGroupSubItem.getChargeCompanyTemporaryName());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+3
@@ -1,5 +1,6 @@
|
||||
package com.jero.modules.message.entity;
|
||||
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import com.jero.common.system.base.entity.JeroEntity;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
|
||||
@@ -25,6 +26,7 @@ public class SysMessageTemplate extends JeroEntity {
|
||||
private java.lang.String templateCode;
|
||||
/**模板标题*/
|
||||
@Excel(name = "模板标题", width = 30)
|
||||
@Dict(dicCode = "notice_type")
|
||||
private java.lang.String templateName;
|
||||
/**模板内容*/
|
||||
@Excel(name = "模板内容", width = 50)
|
||||
@@ -34,5 +36,6 @@ public class SysMessageTemplate extends JeroEntity {
|
||||
private java.lang.String templateTestJson;
|
||||
/**模板类型*/
|
||||
@Excel(name = "模板类型", width = 15)
|
||||
@Dict(dicCode = "msgType")
|
||||
private java.lang.String templateType;
|
||||
}
|
||||
|
||||
+21
-7
@@ -5,6 +5,8 @@ import cn.hutool.crypto.asymmetric.RSA;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.aliyuncs.exceptions.ClientException;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.system.model.SysLoginVO;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -34,9 +36,6 @@ import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.security.KeyPair;
|
||||
import java.security.PrivateKey;
|
||||
import java.security.PublicKey;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
@@ -594,10 +593,25 @@ public class LoginController {
|
||||
return authenticationUtils.getPublicKey();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "忘记密码", notes = "忘记密码")
|
||||
@PostMapping(value = "/forgetPassword")
|
||||
public Result<?> forgetPassword(@RequestBody SysUser user) {
|
||||
sysUserService.forgetPassword(user);
|
||||
@ApiOperation(value = "短信验证码修改密码")
|
||||
@PostMapping(value = "/verificationChangePassword")
|
||||
public Result<?> verificationChangePassword(@RequestBody SysLoginVO loginVO) {
|
||||
sysUserService.verificationChangePassword(loginVO);
|
||||
return Result.OK("修改密码成功");
|
||||
}
|
||||
|
||||
@ApiOperation(value = "发送手机号验证码")
|
||||
@GetMapping(value = "/sendVerificationCode")
|
||||
public Result<?> sendVerificationCode(String phone) {
|
||||
phone = PasswordUtil.encrypt(phone);
|
||||
LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SysUser::getPhone, phone);
|
||||
SysUser sysUser = sysUserService.getOne(queryWrapper);
|
||||
if (Objects.isNull(sysUser)){
|
||||
throw new JeroBootException("手机号不存在");
|
||||
}
|
||||
sysBaseAPI.sendVerificationCode(phone,"2",null,null);
|
||||
String string = redisUtil.get("_verification:_phone:" + PasswordUtil.decrypt(phone)).toString();
|
||||
return Result.OK(string);
|
||||
}
|
||||
}
|
||||
+11
@@ -11,6 +11,8 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import com.jero.common.api.vo.Result;
|
||||
@@ -67,6 +69,8 @@ public class SysAnnouncementController {
|
||||
private ISysAnnouncementSendService sysAnnouncementSendService;
|
||||
@Resource
|
||||
private WebSocket webSocket;
|
||||
@Autowired
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
@@ -313,6 +317,13 @@ public class SysAnnouncementController {
|
||||
anntMsgList = sysAnnouncementService.querySysCementPageByUserId(anntMsgList,userId,"1");//通知公告消息
|
||||
Page<SysAnnouncement> sysMsgList = new Page<SysAnnouncement>(0,5);
|
||||
sysMsgList = sysAnnouncementService.querySysCementPageByUserId(sysMsgList,userId,"2");//系统消息
|
||||
if(!CollectionUtils.isEmpty(sysMsgList.getRecords())){
|
||||
List<SysAnnouncement> list = sysMsgList.getRecords();
|
||||
list.forEach(p->{
|
||||
p.setTitile(sysBaseAPI.translateDict("notice_type",p.getTitile()));
|
||||
});
|
||||
sysMsgList.setRecords(list);
|
||||
}
|
||||
Map<String,Object> sysMsgMap = new HashMap<String, Object>();
|
||||
sysMsgMap.put("sysMsgList", sysMsgList.getRecords());
|
||||
sysMsgMap.put("sysMsgTotal", sysMsgList.getTotal());
|
||||
|
||||
+5
@@ -32,6 +32,7 @@ public class SysAnnouncement implements Serializable {
|
||||
* 标题
|
||||
*/
|
||||
@Excel(name = "标题", width = 15)
|
||||
@Dict(dicCode = "notice_type")
|
||||
private java.lang.String titile;
|
||||
/**
|
||||
* 内容
|
||||
@@ -144,4 +145,8 @@ public class SysAnnouncement implements Serializable {
|
||||
* 摘要
|
||||
*/
|
||||
private java.lang.String msgAbstract;
|
||||
/**
|
||||
* 模板编码
|
||||
*/
|
||||
private String templateCode;
|
||||
}
|
||||
|
||||
+2
-1
@@ -37,7 +37,8 @@
|
||||
sa.bus_id as bus_id,
|
||||
sa.open_type as open_type,
|
||||
sa.open_page as open_page,
|
||||
sa.msg_abstract
|
||||
sa.msg_abstract,
|
||||
sa.template_code
|
||||
from sys_announcement_send sas
|
||||
left join sys_announcement sa ON sas.annt_id = sa.id
|
||||
where sa.send_status = '1'
|
||||
|
||||
+7
@@ -2,6 +2,7 @@ package com.jero.modules.system.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
@@ -29,6 +30,7 @@ public class AnnouncementSendModel implements Serializable {
|
||||
/**用户id*/
|
||||
private java.lang.String userId;
|
||||
/**标题*/
|
||||
@Dict(dicCode = "notice_type")
|
||||
private java.lang.String titile;
|
||||
/**内容*/
|
||||
private java.lang.String msgContent;
|
||||
@@ -77,4 +79,9 @@ public class AnnouncementSendModel implements Serializable {
|
||||
*/
|
||||
private java.lang.String msgAbstract;
|
||||
|
||||
/**
|
||||
* 模板编码
|
||||
*/
|
||||
private java.lang.String templateCode;
|
||||
|
||||
}
|
||||
|
||||
+6
-40
@@ -1,7 +1,12 @@
|
||||
package com.jero.modules.system.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.Pattern;
|
||||
|
||||
/**
|
||||
* 登录表单
|
||||
@@ -9,6 +14,7 @@ import io.swagger.annotations.ApiModelProperty;
|
||||
* @Author scott
|
||||
* @since 2019-01-18
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value="登录对象", description="登录对象")
|
||||
public class SysLoginModel {
|
||||
@ApiModelProperty(value = "账号")
|
||||
@@ -21,44 +27,4 @@ public class SysLoginModel {
|
||||
private String checkKey;
|
||||
@ApiModelProperty(value = "RSA公钥")
|
||||
private String rsaPublicKey;
|
||||
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
public String getCaptcha() {
|
||||
return captcha;
|
||||
}
|
||||
|
||||
public void setCaptcha(String captcha) {
|
||||
this.captcha = captcha;
|
||||
}
|
||||
|
||||
public String getCheckKey() {
|
||||
return checkKey;
|
||||
}
|
||||
|
||||
public void setCheckKey(String checkKey) {
|
||||
this.checkKey = checkKey;
|
||||
}
|
||||
|
||||
public String getRsaPublicKey() {
|
||||
return rsaPublicKey;
|
||||
}
|
||||
|
||||
public void setRsaPublicKey(String rsaPublicKey) {
|
||||
this.rsaPublicKey = rsaPublicKey;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.jero.modules.system.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.Pattern;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
* @date 2021-09-24 10:00
|
||||
*/
|
||||
@Data
|
||||
public class SysLoginVO {
|
||||
|
||||
@ApiModelProperty(value = "用户名")
|
||||
private String username;
|
||||
|
||||
/**手机号*/
|
||||
@ApiModelProperty(value = "手机号")
|
||||
@NotEmpty(message = "手机号不能为空!")
|
||||
@Pattern(regexp = "^((13[0-9])|(14[579])|(15([0-3]|[5-9]))|(17[0135678])|(18[0-9])|(19[8|9])|(16[6]))\\d{8}$",message = "手机号码格式错误")
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 密码
|
||||
*/
|
||||
@ApiModelProperty(value = "密码")
|
||||
@NotEmpty(message = "密码不能为空!")
|
||||
private String password;
|
||||
|
||||
/**
|
||||
* 确认密码
|
||||
*/
|
||||
@ApiModelProperty(value = "确认密码")
|
||||
@NotEmpty(message = "确认密码不能为空!")
|
||||
private String verifyPassword;
|
||||
|
||||
/**
|
||||
* 验证码
|
||||
*/
|
||||
@ApiModelProperty(value = "验证码")
|
||||
@NotEmpty(message = "验证码不能为空!")
|
||||
private String verifyCode;
|
||||
|
||||
@ApiModelProperty(value = "RSA公钥")
|
||||
@NotEmpty(message = "RSA公钥不能为空!")
|
||||
private String rsaPublicKey;
|
||||
|
||||
}
|
||||
+9
-1
@@ -14,6 +14,7 @@ import com.jero.common.system.vo.SysUserCacheInfo;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.modules.system.model.SysLoginVO;
|
||||
import com.jero.modules.system.model.SysUserSysDepartModel;
|
||||
import com.jero.modules.system.vo.SysUserVo;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -241,5 +242,12 @@ public interface ISysUserService extends IService<SysUser> {
|
||||
|
||||
String resetPassword(String username);
|
||||
|
||||
void forgetPassword(SysUser user);
|
||||
void verificationChangePassword(SysLoginVO loginVO);
|
||||
|
||||
/**
|
||||
* 通过角色编码,查询角色下用户
|
||||
* @param roleCode 角色集合
|
||||
* @return
|
||||
*/
|
||||
List<SysUser> getRolesUser(List<String> roleCode);
|
||||
}
|
||||
|
||||
+59
-2
@@ -13,6 +13,7 @@ import com.jero.common.util.HuaWeiSmsUtil;
|
||||
import com.jero.modules.oss.mapper.OSSFileMapper;
|
||||
import com.jero.modules.pay.company.entity.PayContactsManagement;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import com.jero.common.api.dto.OnlineAuthDTO;
|
||||
@@ -406,13 +407,13 @@ public class SysBaseApiImpl implements ISysBaseAPI {
|
||||
}
|
||||
SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0);
|
||||
//模板标题
|
||||
title = title==null?sysSmsTemplate.getTemplateName():title;
|
||||
// title = title==null?sysSmsTemplate.getTemplateName():title;
|
||||
//模板内容
|
||||
String content = sysSmsTemplate.getTemplateContent();
|
||||
if(map!=null) {
|
||||
for (Map.Entry<String, String> entry : map.entrySet()) {
|
||||
String str = "${" + entry.getKey() + "}";
|
||||
title = title.replace(str, entry.getValue());
|
||||
// title = title.replace(str, entry.getValue());
|
||||
content = content.replace(str, entry.getValue());
|
||||
}
|
||||
}
|
||||
@@ -430,6 +431,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
|
||||
announcement.setBusType(busType);
|
||||
announcement.setOpenType(SysAnnmentTypeEnum.getByType(busType).getOpenType());
|
||||
announcement.setOpenPage(SysAnnmentTypeEnum.getByType(busType).getOpenPage());
|
||||
announcement.setTemplateCode(templateCode);
|
||||
sysAnnouncementMapper.insert(announcement);
|
||||
// 2.插入用户通告阅读标记表记录
|
||||
String userId = toUser;
|
||||
@@ -1012,6 +1014,34 @@ public class SysBaseApiImpl implements ISysBaseAPI {
|
||||
emailHandle.SendMsg(email, title, content);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendEmailTemplateMsg(String email,String title,String templateCode,Map<String,String> map) {
|
||||
if(StringUtils.isBlank(email)){
|
||||
throw new JeroBootException("邮件接收人不能为空");
|
||||
}
|
||||
if(StringUtils.isBlank(templateCode)){
|
||||
throw new JeroBootException("模板编码不能为空");
|
||||
}
|
||||
List<SysMessageTemplate> sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode);
|
||||
if(CollectionUtils.isEmpty(sysSmsTemplates)){
|
||||
throw new JeroBootException("消息模板不存在,模板编码:"+templateCode);
|
||||
}
|
||||
SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0);
|
||||
//模板标题
|
||||
// title = Objects.isNull(title) ? sysSmsTemplate.getTemplateName() : title;
|
||||
//模板内容
|
||||
String content = sysSmsTemplate.getTemplateContent();
|
||||
if(!Objects.isNull(map)) {
|
||||
for (Map.Entry<String, String> entry : map.entrySet()) {
|
||||
String str = "${" + entry.getKey() + "}";
|
||||
// title = title.replace(str, entry.getValue());
|
||||
content = content.replace(str, entry.getValue());
|
||||
}
|
||||
}
|
||||
EmailSendMsgHandle emailHandle = new EmailSendMsgHandle();
|
||||
emailHandle.SendMsg(email, title, content);
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送邮件+ 附件消息
|
||||
* @param email
|
||||
@@ -1029,6 +1059,33 @@ public class SysBaseApiImpl implements ISysBaseAPI {
|
||||
huaWeiSmsUtil.sendVerificationCode(phone, codeType, codeTime, templateParas);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendSMS(String phone, String codeType, String codeTime,String templateCode,HashMap<String,String> map) {
|
||||
if(StringUtils.isBlank(phone)){
|
||||
throw new JeroBootException("手机号不能为空");
|
||||
}
|
||||
if(StringUtils.isBlank(templateCode)){
|
||||
throw new JeroBootException("模板编码不能为空");
|
||||
}
|
||||
List<SysMessageTemplate> sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode);
|
||||
if(CollectionUtils.isEmpty(sysSmsTemplates)){
|
||||
throw new JeroBootException("消息模板不存在,模板编码:"+templateCode);
|
||||
}
|
||||
SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0);
|
||||
//模板标题
|
||||
String title = sysSmsTemplate.getTemplateName();
|
||||
//模板内容
|
||||
String content = sysSmsTemplate.getTemplateContent();
|
||||
if(!Objects.isNull(map)) {
|
||||
for (Map.Entry<String, String> entry : map.entrySet()) {
|
||||
String str = "${" + entry.getKey() + "}";
|
||||
title = title.replace(str, entry.getValue());
|
||||
content = content.replace(str, entry.getValue());
|
||||
}
|
||||
}
|
||||
huaWeiSmsUtil.sendVerificationCode(phone, codeType, codeTime, content);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据部门id查询部门所有的父级(不包含自己)
|
||||
* @author 马志朝
|
||||
|
||||
+45
-17
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.util.*;
|
||||
import com.jero.modules.system.model.SysLoginVO;
|
||||
import com.jero.modules.system.vo.SysUserVo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.jero.common.api.vo.Result;
|
||||
@@ -26,7 +27,9 @@ import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.cache.annotation.CacheEvict;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
@@ -475,55 +478,80 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
}
|
||||
|
||||
@Override
|
||||
public void forgetPassword(SysUser user) {
|
||||
fPRuleCheck(user);
|
||||
public void verificationChangePassword(SysLoginVO loginVO) {
|
||||
fPRuleCheck(loginVO);
|
||||
//前端传入密码解密
|
||||
String username = user.getUsername();
|
||||
String password = user.getPassword();
|
||||
String verifyPassword = user.getVerifyPassword();
|
||||
String RSAPublicKey = user.getRsapublickey();
|
||||
String phone = loginVO.getPhone();
|
||||
String password = loginVO.getPassword();
|
||||
String verifyPassword = loginVO.getVerifyPassword();
|
||||
String RSAPublicKey = loginVO.getRsaPublicKey();
|
||||
String RSAPrivateKey = String.valueOf(redisUtil.get(RSAPublicKey));
|
||||
try {
|
||||
password = CommonUtils.decryptBtRsaPriKey(password, RSAPrivateKey);
|
||||
verifyPassword = CommonUtils.decryptBtRsaPriKey(verifyPassword, RSAPrivateKey);
|
||||
user.setPassword(password);
|
||||
user.setVerifyPassword(verifyPassword);
|
||||
loginVO.setPassword(password);
|
||||
loginVO.setVerifyPassword(verifyPassword);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
//处理手机获取验证码的逻辑
|
||||
Object obj = redisUtil.get("_verification:_phone:" + user.getPhone());
|
||||
Object obj = redisUtil.get("_verification:_phone:" + phone);
|
||||
if (obj == null) {
|
||||
throw new JeroBootException("验证码失效,请重新发送");
|
||||
}
|
||||
String code = obj.toString();
|
||||
if (!user.getVerifyCode().equals(code)) {
|
||||
if (!loginVO.getVerifyCode().equals(code)) {
|
||||
throw new JeroBootException("验证码错误!");
|
||||
}
|
||||
|
||||
if (!password.equals(verifyPassword)) {
|
||||
throw new JeroBootException("新密码和确认密码不一致,请重新输入");
|
||||
}
|
||||
LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(SysUser::getUsername, username);
|
||||
SysUser sysUser = userMapper.selectOne(wrapper);
|
||||
LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SysUser::getPhone, PasswordUtil.encrypt(phone));
|
||||
SysUser sysUser = this.getOne(queryWrapper);
|
||||
if (ObjectUtils.isEmpty(sysUser)) {
|
||||
throw new JeroBootException("用户不存在");
|
||||
}
|
||||
String passwordEncode = PasswordUtil.encrypt(sysUser.getUsername(), password, sysUser.getSalt());
|
||||
user.setPassword(passwordEncode);
|
||||
userMapper.forgetPassword(user);
|
||||
redisUtil.del("_verification:_phone:" + user.getPhone());
|
||||
sysUser.setPassword(passwordEncode);
|
||||
userMapper.forgetPassword(sysUser);
|
||||
redisUtil.del("_verification:_phone:" + phone);
|
||||
List<String> roles = sysBaseAPI.getRolesByUsername(sysUser.getUsername());
|
||||
//SysRole sysRole = sysRoleMapper.selectOne(new LambdaQueryWrapper<SysRole>().eq(SysRole::getRoleCode, roles.get(0)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysUser> getRolesUser(List<String> roleCode) {
|
||||
if(CollectionUtils.isEmpty(roleCode)){
|
||||
throw new JeroBootException("角色编码为空!");
|
||||
}
|
||||
LambdaQueryWrapper<SysRole> queryRole = new LambdaQueryWrapper<>();
|
||||
queryRole.in(SysRole::getRoleCode,roleCode);
|
||||
List<SysRole> listSysRole = sysRoleMapper.selectList(queryRole);
|
||||
if(CollectionUtils.isEmpty(listSysRole)){
|
||||
throw new JeroBootException("角色不存在!");
|
||||
}
|
||||
List<String> listRoleId = listSysRole.stream().map(SysRole::getId).collect(Collectors.toList());
|
||||
LambdaQueryWrapper<SysUserRole> querySysUserRole = new LambdaQueryWrapper<>();
|
||||
querySysUserRole.in(SysUserRole::getRoleId,listRoleId);
|
||||
List<SysUserRole> listSysUserRole = sysUserRoleMapper.selectList(querySysUserRole);
|
||||
if(StringUtils.isEmpty(listSysUserRole)){
|
||||
return null;
|
||||
}
|
||||
List<String> listUserId = listSysUserRole.stream().map(SysUserRole::getUserId).collect(Collectors.toList());
|
||||
LambdaQueryWrapper<SysUser> querySysUser = new LambdaQueryWrapper<>();
|
||||
querySysUser.in(SysUser::getId,listUserId);
|
||||
List<SysUser> listSysUser = userMapper.selectList(querySysUser);
|
||||
return listSysUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* 忘记密码校验
|
||||
* @param user
|
||||
*/
|
||||
private void fPRuleCheck(SysUser user){
|
||||
private void fPRuleCheck(SysLoginVO user){
|
||||
if(ObjectUtils.isEmpty(user.getUsername())){
|
||||
throw new JeroBootException("用户名为必填");
|
||||
}else if(user.getUsername().length()>50){
|
||||
|
||||
@@ -29,16 +29,16 @@ spring:
|
||||
username: zhangqinlin@syxysoft.com
|
||||
password: Zql0000000
|
||||
port: 25
|
||||
# host: smtp.163.com
|
||||
# username: test@163.com
|
||||
# password: ??
|
||||
# properties:
|
||||
# mail:
|
||||
# smtp:
|
||||
# auth: true
|
||||
# starttls:
|
||||
# enable: true
|
||||
# required: true
|
||||
# host: smtp.163.com
|
||||
# username: test@163.com
|
||||
# password: ??
|
||||
# properties:
|
||||
# mail:
|
||||
# smtp:
|
||||
# auth: true
|
||||
# starttls:
|
||||
# enable: true
|
||||
# required: true
|
||||
## quartz定时任务,采用数据库方式
|
||||
quartz:
|
||||
job-store-type: jdbc
|
||||
@@ -172,9 +172,9 @@ mybatis-plus:
|
||||
id-type: ASSIGN_ID
|
||||
# 默认数据库表下划线命名
|
||||
table-underline: true
|
||||
# configuration:
|
||||
# configuration:
|
||||
# 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
|
||||
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
# 返回类型为Map,显示null对应的字段
|
||||
# call-setters-on-nulls: true
|
||||
#jero专用配置
|
||||
|
||||
Reference in New Issue
Block a user