|
@@ -1,37 +1,32 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import ch.qos.logback.core.util.StringCollectionUtil;
|
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
|
+import com.ym.mec.biz.dal.dto.ReplacementInstrumentActivityDto;
|
|
|
import com.ym.mec.biz.dal.dto.ReplacementInstrumentActivityStatDto;
|
|
|
import com.ym.mec.biz.dal.dto.ReplacementInstrumentActivityStatHead;
|
|
|
import com.ym.mec.biz.dal.dto.ReplacementPayDto;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
|
import com.ym.mec.biz.dal.page.ReplacementInstrumentActivityQueryInfo;
|
|
|
-import com.ym.mec.biz.dal.page.ReplacementInstrumentQueryInfo;
|
|
|
import com.ym.mec.biz.service.*;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
|
import com.ym.mec.common.page.PageInfo;
|
|
|
-import com.ym.mec.common.page.QueryInfo;
|
|
|
import com.ym.mec.common.service.IdGeneratorService;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
-import com.ym.mec.util.date.DateUtil;
|
|
|
-
|
|
|
import com.ym.mec.util.http.HttpUtil;
|
|
|
-import org.apache.poi.ss.formula.functions.T;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-
|
|
|
-import org.springframework.http.HttpStatus;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
-
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
|
|
@@ -64,11 +59,18 @@ public class ReplacementInstrumentActivityServiceImpl extends BaseServiceImpl<In
|
|
|
private SysUserCashAccountDetailService sysUserCashAccountDetailService;
|
|
|
@Autowired
|
|
|
private SysMessageService sysMessageService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private CooperationOrganService cooperationOrganService;
|
|
|
@Autowired
|
|
|
+ private StudentService studentService;
|
|
|
+ @Autowired
|
|
|
private ReplacementInstrumentCooperationDao replacementInstrumentCooperationDao;
|
|
|
+ @Autowired
|
|
|
+ private QuestionnaireUserResultDao questionnaireUserResultDao;
|
|
|
+ @Autowired
|
|
|
+ private QuestionnaireQuestionDao questionnaireQuestionDao;
|
|
|
+ @Autowired
|
|
|
+ private QuestionnaireQuestionItemDao questionnaireQuestionItemDao;
|
|
|
|
|
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
|
|
|
|
@@ -134,6 +136,78 @@ public class ReplacementInstrumentActivityServiceImpl extends BaseServiceImpl<In
|
|
|
return replacementInstrumentActivity;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Object apply(ReplacementInstrumentActivityDto replacementInstrumentActivity) {
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
+ if (sysUser == null) {
|
|
|
+ throw new BizException("用户信息获取失败,请重新登陆");
|
|
|
+ }
|
|
|
+ replacementInstrumentActivity.setUserId(sysUser.getId());
|
|
|
+ //如果用户是43分部,那么修改用户信息
|
|
|
+ if (sysUser.getOrganId() == 43) {
|
|
|
+ CooperationOrgan cooperationOrgan = cooperationOrganService.get(replacementInstrumentActivity.getCooperationOrganId());
|
|
|
+ if (cooperationOrgan != null) {
|
|
|
+ sysUser.setOrganId(cooperationOrgan.getOrganId());
|
|
|
+ sysUser.setUpdateTime(new Date());
|
|
|
+ sysUserFeignService.updateSysUser(sysUser);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Integer topicId = replacementInstrumentActivity.getTopicId();
|
|
|
+ ReplacementInstrumentCooperation replacementInstrumentCooperation = replacementInstrumentCooperationDao.getByCooperationId(replacementInstrumentActivity.getCooperationOrganId());
|
|
|
+ //如果提交过调查问卷,那么覆盖之前的记录
|
|
|
+ ReplacementInstrumentActivity activity = replacementInstrumentActivityDao.findByUserId(replacementInstrumentActivity.getCooperationOrganId(), sysUser.getId());
|
|
|
+ if (replacementInstrumentCooperation != null && replacementInstrumentCooperation.getOpenPay().equals(YesOrNoEnum.YES)) {
|
|
|
+ replacementInstrumentActivity.setOpenFlag(1);
|
|
|
+ }
|
|
|
+ Boolean sendPush = false;
|
|
|
+ List<QuestionnaireUserResult> questionnaireUserResultList = replacementInstrumentActivity.getQuestionnaireUserResultList();
|
|
|
+ if (activity != null) {
|
|
|
+ if (!activity.getPayStatus().equals(0)) {
|
|
|
+ throw new BizException("您已参与调查,谢谢参与!");
|
|
|
+ }
|
|
|
+ //覆盖之前的数据
|
|
|
+ replacementInstrumentActivity.setId(activity.getId());
|
|
|
+ replacementInstrumentActivityDao.update(replacementInstrumentActivity);
|
|
|
+
|
|
|
+ if(questionnaireUserResultList != null && questionnaireUserResultList.size() > 0){
|
|
|
+ //删除原来的问卷结果
|
|
|
+ questionnaireUserResultDao.delByActiveIdAndUserId(activity.getId(),sysUser.getId());
|
|
|
+ }
|
|
|
+ if (replacementInstrumentActivity.getInstrumentsId() != null && (activity.getInstrumentsId() == null || activity.getInstrumentsId() == 0)) {
|
|
|
+ sendPush = true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ replacementInstrumentActivityDao.insert(replacementInstrumentActivity);
|
|
|
+ sendPush = true;
|
|
|
+ }
|
|
|
+ if(questionnaireUserResultList != null && questionnaireUserResultList.size() > 0){
|
|
|
+ //新增问卷结果
|
|
|
+ questionnaireUserResultDao.batchInsert(questionnaireUserResultList,
|
|
|
+ QuestionnaireActiveTypeEnum.REPLACEMENT.getCode(),
|
|
|
+ topicId,activity.getId());
|
|
|
+ }
|
|
|
+ //已开启缴费推送购买链接
|
|
|
+ if (sendPush && replacementInstrumentActivity.getOpenFlag().equals(1) && replacementInstrumentActivity.getInstrumentsId() != null) {
|
|
|
+ ReplacementInstrument replacementInstrument = replacementInstrumentDao.get(replacementInstrumentActivity.getInstrumentsId());
|
|
|
+ Map<Integer, String> userMap = new HashMap<>();
|
|
|
+ Map<Integer, String> userPhoneMap = new HashMap<>();
|
|
|
+ Integer userId = replacementInstrumentActivity.getUserId();
|
|
|
+ String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
|
|
|
+ String pushUrl = baseApiUrl + "/#/questionGoodsSale?id=";
|
|
|
+ userMap.put(userId, userId.toString());
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.REPLACEMENT_PAY_PUSH,
|
|
|
+ userMap, null, 0, "5?" + pushUrl + replacementInstrumentActivity.getId(), "STUDENT", replacementInstrument.getBrand(), "");
|
|
|
+
|
|
|
+ userPhoneMap.put(replacementInstrumentActivity.getUserId(), replacementInstrumentActivity.getMobileNo());
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.REPLACEMENT_PAY_PUSH,
|
|
|
+ userPhoneMap, null, 0, null, "STUDENT", replacementInstrument.getBrand(), HttpUtil.getSortUrl(pushUrl + replacementInstrumentActivity.getId()));
|
|
|
+ }
|
|
|
+ return replacementInstrumentActivity;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public ReplacementInstrumentActivity findByUserId(Integer cooperationOrganId, Integer userId) {
|
|
|
return replacementInstrumentActivityDao.findByUserId(cooperationOrganId, userId);
|
|
@@ -390,4 +464,62 @@ public class ReplacementInstrumentActivityServiceImpl extends BaseServiceImpl<In
|
|
|
pageInfo.setRows(dataList);
|
|
|
return pageInfo;
|
|
|
}
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void resultSync(){
|
|
|
+ //获取所有问卷结果
|
|
|
+ List<ReplacementInstrumentActivity> activities = replacementInstrumentActivityDao.findAll(new HashMap<>());
|
|
|
+ //获取所有问题
|
|
|
+ List<QuestionnaireQuestion> questionList = questionnaireQuestionDao.findByTopicId(2);
|
|
|
+ List<QuestionnaireUserResult> questionnaireUserResultList = new ArrayList<>();
|
|
|
+ for (ReplacementInstrumentActivity activity : activities) {
|
|
|
+ String questionResult = activity.getQuestionResult();
|
|
|
+ if(StringUtils.isEmpty(questionResult)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ String[] split = questionResult.split("");
|
|
|
+ for (int i = 0; i < split.length; i++) {
|
|
|
+ QuestionnaireUserResult result = new QuestionnaireUserResult();
|
|
|
+ QuestionnaireQuestion question = questionList.get(i);
|
|
|
+ //获取问题答案
|
|
|
+ QuestionnaireQuestionItem item = questionnaireQuestionItemDao.findByQuestionId(question.getId());
|
|
|
+ result.setUserId(activity.getUserId());
|
|
|
+ result.setActiveId(activity.getId());
|
|
|
+ result.setActiveType(QuestionnaireActiveTypeEnum.REPLACEMENT);
|
|
|
+ result.setQuestionnaireQuestionId(question.getId());
|
|
|
+ result.setQuestionnaireQuestionItemIdList(item.getId() + (Integer.parseInt(split[i]) == 0?1:0) + "");
|
|
|
+ result.setQuestionnaireTopicId(question.getQuestionnaireTopicId());
|
|
|
+ questionnaireUserResultList.add(result);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ questionnaireUserResultDao.batchInsert1(questionnaireUserResultList);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Object queryUserInfo(Integer cooperationOrganId,SysUser user) {
|
|
|
+ ReplacementInstrumentActivity replacementInstrumentActivity = this.findByUserId(cooperationOrganId, user.getId());
|
|
|
+ if (replacementInstrumentActivity == null) {
|
|
|
+ Student student = studentService.get(user.getId());
|
|
|
+ replacementInstrumentActivity = new ReplacementInstrumentActivity();
|
|
|
+ replacementInstrumentActivity.setUserId(user.getId());
|
|
|
+ replacementInstrumentActivity.setClasses(student.getCurrentClass());
|
|
|
+ if (student.getCurrentGradeNum() != null) {
|
|
|
+ replacementInstrumentActivity.setGrade(student.getCurrentGradeNum().toString());
|
|
|
+ }
|
|
|
+ replacementInstrumentActivity.setCooperationOrganId(cooperationOrganId);
|
|
|
+ replacementInstrumentActivity.setUserName(StringUtils.isEmpty(user.getUsername()) ? user.getRealName() : user.getUsername());
|
|
|
+ String subjectIdList = student.getSubjectIdList();
|
|
|
+ if (StringUtils.isNotEmpty(subjectIdList)) {
|
|
|
+ replacementInstrumentActivity.setSubjectId(Integer.parseInt(subjectIdList.split(",")[0]));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ replacementInstrumentActivity.setMobileNo(user.getPhone());
|
|
|
+ CooperationOrgan cooperationOrgan = cooperationOrganService.get(cooperationOrganId);
|
|
|
+ if (cooperationOrgan != null) {
|
|
|
+ replacementInstrumentActivity.setCooperationOrganName(cooperationOrgan.getName());
|
|
|
+ }
|
|
|
+ ReplacementInstrumentCooperation replacementInstrumentCooperation = replacementInstrumentCooperationDao.getByCooperationId(cooperationOrganId);
|
|
|
+ replacementInstrumentActivity.setShowQuestion(replacementInstrumentCooperation.getShowQuestion());
|
|
|
+ return replacementInstrumentActivity;
|
|
|
+ }
|
|
|
}
|