|
|
@@ -4,6 +4,7 @@ import static com.uas.sso.sso.backend.AuthenticationUtils.getEncryPassword;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.uas.sso.core.Const;
|
|
|
+import com.uas.sso.core.ICallable;
|
|
|
import com.uas.sso.dao.AppealDao;
|
|
|
import com.uas.sso.dao.UserDao;
|
|
|
import com.uas.sso.dao.UserspaceDao;
|
|
|
@@ -16,12 +17,15 @@ import com.uas.sso.sso.backend.entity.AdminChangeRecord;
|
|
|
import com.uas.sso.sso.backend.entity.AdminChangeType;
|
|
|
import com.uas.sso.sso.backend.exceptions.ValidationFailedException;
|
|
|
import com.uas.sso.sso.backend.service.AppealService;
|
|
|
+import com.uas.sso.sso.backend.service.MailService;
|
|
|
import com.uas.sso.sso.backend.service.UserBackendService;
|
|
|
import com.uas.sso.sso.backend.util.JacksonUtils;
|
|
|
+import com.uas.sso.util.ExecuteUtils;
|
|
|
import java.sql.Timestamp;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import javax.persistence.criteria.CriteriaBuilder;
|
|
|
@@ -67,14 +71,17 @@ public class AppealServiceImpl implements AppealService {
|
|
|
|
|
|
private final UserBackendService userService;
|
|
|
|
|
|
+ private final MailService mailService;
|
|
|
+
|
|
|
@Autowired
|
|
|
public AppealServiceImpl(AppealDao appealDao, UserDao userDao,
|
|
|
- UserspaceDao spaceDao, AdminChangeRecordDao recordDao, UserBackendService userService) {
|
|
|
+ UserspaceDao spaceDao, AdminChangeRecordDao recordDao, UserBackendService userService, MailService mailService) {
|
|
|
this.appealDao = appealDao;
|
|
|
this.userDao = userDao;
|
|
|
this.spaceDao = spaceDao;
|
|
|
this.recordDao = recordDao;
|
|
|
this.userService = userService;
|
|
|
+ this.mailService = mailService;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -137,6 +144,18 @@ public class AppealServiceImpl implements AppealService {
|
|
|
appealDao.save(appeal);
|
|
|
|
|
|
if (!isPass) {
|
|
|
+ String spaceName = null;
|
|
|
+ if (CHANGE_ADMIN.equals(appeal.getType())) {
|
|
|
+ JSONObject jsonObject = JacksonUtils.fromJson(appeal.getSubmitInfo(), JSONObject.class);
|
|
|
+ Assert.notNull(jsonObject, "更换管理员提交信息不能为空");
|
|
|
+
|
|
|
+ Userspace userSpace = jsonObject.getObject("userspace", Userspace.class);
|
|
|
+ Assert.notNull(userSpace, "更换管理员的企业信息不能为空");
|
|
|
+ Assert.notNull(userSpace.getSpaceUU(), "更换管理员申诉企业UU不能为空");
|
|
|
+
|
|
|
+ spaceName = userSpace.getSpaceName();
|
|
|
+ }
|
|
|
+ synSendMail(appeal.getContactEmail(), appeal.getType(), appeal.getContactName(), spaceName, isPass);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -157,6 +176,8 @@ public class AppealServiceImpl implements AppealService {
|
|
|
user.setPassword(getEncryPassword(Const.ENCRY_FORMAT, password, user.getSalt()));
|
|
|
}
|
|
|
userDao.save(user);
|
|
|
+
|
|
|
+ synSendMail(appeal.getContactEmail(), appeal.getType(), appeal.getContactName(), null, isPass);
|
|
|
} else if (CHANGE_ADMIN.equals(appeal.getType())) {
|
|
|
JSONObject jsonObject = JacksonUtils.fromJson(appeal.getSubmitInfo(), JSONObject.class);
|
|
|
Assert.notNull(jsonObject, "更换管理员提交信息不能为空");
|
|
|
@@ -216,11 +237,41 @@ public class AppealServiceImpl implements AppealService {
|
|
|
// 更新企业认证状态
|
|
|
space.setValidCode((short) 2);
|
|
|
spaceDao.save(space);
|
|
|
+
|
|
|
+ synSendMail(appeal.getContactEmail(), appeal.getType(), appeal.getContactName(), space.getSpaceName(), isPass);
|
|
|
} else {
|
|
|
logger.info("暂无支持申诉类型");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void synSendMail(String receipt, String appealType, String appealName, String spaceName, Boolean isPass) {
|
|
|
+ HashMap<String, String> params = new HashMap<>();
|
|
|
+ params.put("appealName", appealName);
|
|
|
+ String subject;
|
|
|
+ String templateName = isPass ? "appealPass" : "appealUnPass";
|
|
|
+
|
|
|
+ if (RESET_PASS.equals(appealType)) {
|
|
|
+ subject = "找回密码申诉";
|
|
|
+ params.put("appealMessage", "找回密码申诉");
|
|
|
+ } else if (VALID_MOBILE.equals(appealType)) {
|
|
|
+ subject = "绑定手机申诉";
|
|
|
+ params.put("appealMessage", "修改验证手机申诉");
|
|
|
+ } else if (CHANGE_ADMIN.equals(appealType)) {
|
|
|
+ subject = "更换管理员";
|
|
|
+ params.put("appealMessage", String.format("提交的%s更换管理员申诉", spaceName));
|
|
|
+ } else {
|
|
|
+ subject = "测试";
|
|
|
+ params.put("appealMessage", "测试");
|
|
|
+ }
|
|
|
+
|
|
|
+ ExecuteUtils.asyncExecute(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ mailService.sendTemplateMail(receipt, subject, params, templateName);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public Long countUnHandleAppeals() {
|
|
|
|