diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/constant/HeartNoticeConstant.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/constant/HeartNoticeConstant.java
new file mode 100644
index 000000000..77eb60973
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-client/src/main/java/com/elink/esua/epdc/constant/HeartNoticeConstant.java
@@ -0,0 +1,38 @@
+package com.elink.esua.epdc.constant;
+
+/**
+ * @Description 爱心互助模块发送消息常量
+ * @Author yinzuomei
+ * @Date 2020/2/7 20:14
+ */
+public interface HeartNoticeConstant {
+ /**
+ * 活动报名审核未通过
+ */
+ String NOTICE_SIGN_UP_NOT_PASSED = "您报名的活动【审核未通过】";
+
+ /**
+ * 活动报名审核通过
+ */
+ String NOTICE_SIGN_UP_PASSED = "您报名的活动【审核通过】";
+
+ /**
+ * 活动取消
+ */
+ String NOTICE_CANCEL_ACT = "您报名的活动【已经取消】";
+
+ /**
+ * 消息所属业务类型:activity活动
+ */
+ String NOTICE__BUSINESS_TYPE_ACTIVITY = "activity";
+
+ /**
+ * 我的消息类型:0审核通知
+ */
+ String NOTICE_TYPE_AUDIT_NOTICE = "0";
+
+ /**
+ * 我的消息类型:1互动通知
+ */
+ String NOTICE_TYPE_INTERACTIVE_NOTICE = "1";
+}
diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/pom.xml b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/pom.xml
index 3d6d089ee..99594d0db 100644
--- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/pom.xml
+++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/pom.xml
@@ -72,6 +72,12 @@
1.0.0
compile
+
+ com.esua.epdc
+ epdc-news-client
+ 1.0.0
+ compile
+
diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActUserRelationDao.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActUserRelationDao.java
index b9cfa10c1..a6fb4cad3 100644
--- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActUserRelationDao.java
+++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActUserRelationDao.java
@@ -107,4 +107,13 @@ public interface ActUserRelationDao extends BaseDao {
* @Date 2020/2/6 0:10
**/
ActUserRelationEntity selectOneByUserIdAndActId(@Param("userId") String userId, @Param("actId") String actId);
+
+ /**
+ * @param actId
+ * @return java.util.List
+ * @Author yinzuomei
+ * @Description 根据活动id查询所有已经报名的用户
+ * @Date 2020/2/7 20:53
+ **/
+ List selectAllSignUpUsers(String actId);
}
diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActInfoServiceImpl.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActInfoServiceImpl.java
index 310b91ec8..2fb72330b 100644
--- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActInfoServiceImpl.java
+++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActInfoServiceImpl.java
@@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.activity.ActBannerDTO;
import com.elink.esua.epdc.activity.ActInfoDTO;
+import com.elink.esua.epdc.activity.ActUserRelationDTO;
import com.elink.esua.epdc.activity.form.ActInfoAppFormDTO;
import com.elink.esua.epdc.activity.form.ActInfoFormDTO;
import com.elink.esua.epdc.activity.result.ActInfoAppResultDTO;
@@ -40,7 +41,9 @@ import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.constant.ActStateConstant;
import com.elink.esua.epdc.constant.ActUserRelationStatusConstant;
import com.elink.esua.epdc.constant.ActUserStatusConstant;
+import com.elink.esua.epdc.constant.HeartNoticeConstant;
import com.elink.esua.epdc.dto.ScheduleJobDTO;
+import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
import com.elink.esua.epdc.modules.activity.dao.ActInfoDao;
import com.elink.esua.epdc.modules.activity.dao.ActUserClockLogDao;
import com.elink.esua.epdc.modules.activity.dao.ActUserRelationDao;
@@ -51,6 +54,7 @@ import com.elink.esua.epdc.modules.activity.entity.ActUserRelationEntity;
import com.elink.esua.epdc.modules.activity.redis.ActInfoRedis;
import com.elink.esua.epdc.modules.activity.service.ActBannerService;
import com.elink.esua.epdc.modules.activity.service.ActInfoService;
+import com.elink.esua.epdc.modules.async.NewsTask;
import com.elink.esua.epdc.modules.feign.JobFeignClient;
import com.elink.esua.epdc.modules.feign.UserInfoFeignClient;
import org.apache.commons.lang3.StringUtils;
@@ -82,6 +86,8 @@ public class ActInfoServiceImpl extends BaseServiceImpl page(Map params) {
@@ -183,15 +189,45 @@ public class ActInfoServiceImpl extends BaseServiceImpl userList = actUserRelationDao.selectAllSignUpUsers(actInfoEntity.getId());
+ if (null == userList || userList.size() == 0) {
+ return;
+ }
+ List epdcInformationFormDTOList = new ArrayList<>();
+ for (ActUserRelationDTO user : userList) {
+ EpdcInformationFormDTO informationFormDTO = new EpdcInformationFormDTO();
+ informationFormDTO.setTitle(HeartNoticeConstant.NOTICE_CANCEL_ACT);
+ informationFormDTO.setUserId(user.getUserId());
+ informationFormDTO.setType(HeartNoticeConstant.NOTICE_TYPE_INTERACTIVE_NOTICE);
+ informationFormDTO.setBusinessType(HeartNoticeConstant.NOTICE__BUSINESS_TYPE_ACTIVITY);
+ informationFormDTO.setBusinessId(actInfoEntity.getId());
+ informationFormDTO.setContent(actInfoEntity.getCancelReason());
+ informationFormDTO.setRelBusinessContent(actInfoEntity.getTitle());
+ epdcInformationFormDTOList.add(informationFormDTO);
+ }
+ newsTask.insertBatchUserInformation(epdcInformationFormDTOList);
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserRelationServiceImpl.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserRelationServiceImpl.java
index 2c8aa8374..aa74b03a0 100644
--- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserRelationServiceImpl.java
+++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserRelationServiceImpl.java
@@ -38,8 +38,10 @@ import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.constant.ActStateConstant;
import com.elink.esua.epdc.constant.ActUserPointsOperationTypeConstant;
import com.elink.esua.epdc.constant.ActUserRelationStatusConstant;
+import com.elink.esua.epdc.constant.HeartNoticeConstant;
import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.VolunteerInfoDTO;
+import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserPointsFormDTO;
import com.elink.esua.epdc.dto.logs.PointsLogsDTO;
import com.elink.esua.epdc.modules.activity.dao.ActInfoDao;
@@ -52,6 +54,7 @@ import com.elink.esua.epdc.modules.activity.service.ActInfoService;
import com.elink.esua.epdc.modules.activity.service.ActUserLogService;
import com.elink.esua.epdc.modules.activity.service.ActUserPointsLogService;
import com.elink.esua.epdc.modules.activity.service.ActUserRelationService;
+import com.elink.esua.epdc.modules.async.NewsTask;
import com.elink.esua.epdc.modules.feign.PointsFeignClient;
import com.elink.esua.epdc.modules.feign.UserInfoFeignClient;
import org.apache.commons.lang3.StringUtils;
@@ -94,6 +97,9 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl page(Map params) {
IPage page = baseDao.selectPage(
@@ -164,6 +170,8 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl epdcInformationFormDTOList) {
+ newsFeignClient.saveInformationList(epdcInformationFormDTOList);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/feign/NewsFeignClient.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/feign/NewsFeignClient.java
new file mode 100644
index 000000000..662dc2192
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/feign/NewsFeignClient.java
@@ -0,0 +1,43 @@
+package com.elink.esua.epdc.modules.feign;
+
+import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
+import com.elink.esua.epdc.modules.feign.fallback.NewsFeignClientFallback;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+/**
+ * 消息模块
+ *
+ * @author work@yujt.net.cn
+ * @date 2019/9/18 15:37
+ */
+@FeignClient(name = ServiceConstant.EPDC_NEWS_SERVER, fallback = NewsFeignClientFallback.class)
+public interface NewsFeignClient {
+
+ /**
+ * 给用户发消息
+ *
+ * @param formDto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/9/18 15:40
+ */
+ @PostMapping(value = "news/epdc-app/information/save", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
+ Result saveInformation(@RequestBody EpdcInformationFormDTO formDto);
+
+ /**
+ * @param epdcInformationFormDTOList
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @Author yinzuomei
+ * @Description 批量给用户发消息
+ * @Date 2020/2/7 21:00
+ **/
+ @PostMapping(value = "news/epdc-app/information/saveList", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
+ Result saveInformationList(List epdcInformationFormDTOList);
+}
diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/NewsFeignClientFallback.java b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/NewsFeignClientFallback.java
new file mode 100644
index 000000000..9d91e8372
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/NewsFeignClientFallback.java
@@ -0,0 +1,28 @@
+package com.elink.esua.epdc.modules.feign.fallback;
+
+import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
+import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
+import com.elink.esua.epdc.modules.feign.NewsFeignClient;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author work@yujt.net.cn
+ * @date 2019/9/18 15:38
+ */
+@Component
+public class NewsFeignClientFallback implements NewsFeignClient {
+
+ @Override
+ public Result saveInformation(EpdcInformationFormDTO formDto) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_NEWS_SERVER, "saveInformation", formDto);
+ }
+
+ @Override
+ public Result saveInformationList(List epdcInformationFormDTOList) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_NEWS_SERVER, "saveInformationList", epdcInformationFormDTOList);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActUserRelationDao.xml b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActUserRelationDao.xml
index 14f4608eb..bd004480c 100644
--- a/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActUserRelationDao.xml
+++ b/esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActUserRelationDao.xml
@@ -255,4 +255,17 @@
and eaur.ACT_ID=#{actId}
and eaur.USER_ID=#{userId}
+
+
+
diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcInformationFormDTO.java b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcInformationFormDTO.java
index 95351d979..6ad274a6a 100644
--- a/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcInformationFormDTO.java
+++ b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcInformationFormDTO.java
@@ -62,9 +62,9 @@ public class EpdcInformationFormDTO implements Serializable {
/**
* AppInformationBusinessEnum
* 消息所属业务类型:event事件审核;issueComment议题评论;issueReply议题评论回复;itemComment项目评论;itemReply项目评论回复;
- * issueApprove支持议题;itemApprove支持项目;issueCommentApprove议题评论支持;issueCommentOppose议题评论反对;
- * itemCommentApprove项目评论支持;itemCommentOppose项目评论反对;issue议题处理;
- * item项目处理;groupInvited社群邀请等; volunteerCheck志愿者审核
+ * issueApprove支持议题;itemApprove支持项目;issueCommentApprove议题评论支持;issueCommentOppose议题评论反对;
+ * itemCommentApprove项目评论支持;itemCommentOppose项目评论反对;issue议题处理;
+ * item项目处理;groupInvited社群邀请等; volunteer志愿者审核;activity爱心互助活动;points积分商城
*/
@NotBlank(message = "消息所属业务类型不能为空")
private String businessType;
diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppInformationController.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppInformationController.java
index ff65dd5cd..2e561ce91 100644
--- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppInformationController.java
+++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppInformationController.java
@@ -59,6 +59,19 @@ public class EpdcAppInformationController {
return this.informationService.saveInformation(formDto);
}
+ /**
+ * @param epdcInformationFormDTOList
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @Author yinzuomei
+ * @Description 批量发送消息
+ * @Date 2020/2/7 21:04
+ **/
+ @PostMapping("saveList")
+ public Result saveInformation(@RequestBody List epdcInformationFormDTOList) {
+ ValidatorUtils.validateEntity(epdcInformationFormDTOList);
+ return this.informationService.saveInformationList(epdcInformationFormDTOList);
+ }
+
/**
* 消息已读
*
@@ -99,4 +112,4 @@ public class EpdcAppInformationController {
public Result selectOneFristByUserId(@PathVariable("userId") String userId) {
return informationService.selectOneFristByUserId(userId);
}
-}
\ No newline at end of file
+}
diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/InformationService.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/InformationService.java
index 889972dc5..76b296d18 100644
--- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/InformationService.java
+++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/InformationService.java
@@ -137,4 +137,13 @@ public interface InformationService extends BaseService {
* @date 2019/9/11 19:05
*/
Result selectOneFristByUserId(String userId);
-}
\ No newline at end of file
+
+ /**
+ * @param epdcInformationFormDTOList
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @Author yinzuomei 批量给用户发消息
+ * @Description saveInformationList
+ * @Date 2020/2/7 21:04
+ **/
+ Result saveInformationList(List epdcInformationFormDTOList);
+}
diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/InformationServiceImpl.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/InformationServiceImpl.java
index c9f7d5fe7..3f1d2309b 100644
--- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/InformationServiceImpl.java
+++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/InformationServiceImpl.java
@@ -20,11 +20,11 @@ package com.elink.esua.epdc.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
+import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
-import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dao.InformationDao;
import com.elink.esua.epdc.dto.InformationDTO;
@@ -132,4 +132,14 @@ public class InformationServiceImpl extends BaseServiceImpl selectOneFristByUserId(String userId) {
return new Result().ok(baseDao.selectOneFristByUserId(userId));
}
-}
\ No newline at end of file
+
+ @Override
+ public Result saveInformationList(List epdcInformationFormDTOList) {
+ List entityList = ConvertUtils.sourceToTarget(epdcInformationFormDTOList, InformationEntity.class);
+ for (InformationEntity entity : entityList) {
+ entity.setReadFlag(YesOrNoEnum.NO.value());
+ }
+ this.insertBatch(entityList);
+ return new Result();
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-client/src/main/java/com/elink/esua/epdc/constant/PointsNoticeConstant.java b/esua-epdc/epdc-module/epdc-points/epdc-points-client/src/main/java/com/elink/esua/epdc/constant/PointsNoticeConstant.java
new file mode 100644
index 000000000..7ae4c0ce6
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-points/epdc-points-client/src/main/java/com/elink/esua/epdc/constant/PointsNoticeConstant.java
@@ -0,0 +1,28 @@
+package com.elink.esua.epdc.constant;
+
+/**
+ * @Description 积分商城模块发送消息常量
+ * @Author yinzuomei
+ * @Date 2020/2/7 20:14
+ */
+public interface PointsNoticeConstant {
+ /**
+ * 减积分
+ */
+ String SUBTRACT_POINTS_NOTICE = "积分变更【扣减积分】-";
+
+ /**
+ * 加积分
+ */
+ String ADD_POINTS_NOTICE = "积分变更【增加积分】+";
+
+ /**
+ * 消息所属业务类型:points积分商城
+ */
+ String NOTICE__BUSINESS_TYPE_ACTIVITY = "points";
+
+ /**
+ * 我的消息类型:1互动通知
+ */
+ String NOTICE_TYPE_INTERACTIVE_NOTICE = "1";
+}
diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/pom.xml b/esua-epdc/epdc-module/epdc-points/epdc-points-server/pom.xml
index b50a3ddb2..1424dd42b 100644
--- a/esua-epdc/epdc-module/epdc-points/epdc-points-server/pom.xml
+++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/pom.xml
@@ -56,6 +56,12 @@
1.0.0
compile
+
+ com.esua.epdc
+ epdc-news-client
+ 1.0.0
+ compile
+
diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/async/NewsTask.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/async/NewsTask.java
new file mode 100644
index 000000000..d0dddb513
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/async/NewsTask.java
@@ -0,0 +1,34 @@
+package com.elink.esua.epdc.modules.async;
+
+import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
+import com.elink.esua.epdc.modules.feign.NewsFeignClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+/**
+ * 新闻通知消息模块 线程任务
+ *
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/10 10:02
+ */
+@Component
+public class NewsTask {
+
+ @Autowired
+ private NewsFeignClient newsFeignClient;
+
+ /**
+ * 给用户发送消息
+ *
+ * @param informationDto
+ * @return void
+ * @author yujintao
+ * @date 2019/9/10 10:33
+ */
+ @Async
+ public void insertUserInformation(EpdcInformationFormDTO informationDto) {
+ newsFeignClient.saveInformation(informationDto);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/feign/NewsFeignClient.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/feign/NewsFeignClient.java
new file mode 100644
index 000000000..e780327c5
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/feign/NewsFeignClient.java
@@ -0,0 +1,31 @@
+package com.elink.esua.epdc.modules.feign;
+
+import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
+import com.elink.esua.epdc.modules.feign.fallback.NewsFeignClientFallback;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * 消息模块
+ *
+ * @author work@yujt.net.cn
+ * @date 2019/9/18 15:37
+ */
+@FeignClient(name = ServiceConstant.EPDC_NEWS_SERVER, fallback = NewsFeignClientFallback.class)
+public interface NewsFeignClient {
+
+ /**
+ * 给用户发消息
+ *
+ * @param formDto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author work@yujt.net.cn
+ * @date 2019/9/18 15:40
+ */
+ @PostMapping(value = "news/epdc-app/information/save", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
+ Result saveInformation(@RequestBody EpdcInformationFormDTO formDto);
+}
diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/NewsFeignClientFallback.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/NewsFeignClientFallback.java
new file mode 100644
index 000000000..0a2c9f20a
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/NewsFeignClientFallback.java
@@ -0,0 +1,21 @@
+package com.elink.esua.epdc.modules.feign.fallback;
+
+import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
+import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
+import com.elink.esua.epdc.modules.feign.NewsFeignClient;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author work@yujt.net.cn
+ * @date 2019/9/18 15:38
+ */
+@Component
+public class NewsFeignClientFallback implements NewsFeignClient {
+
+ @Override
+ public Result saveInformation(EpdcInformationFormDTO formDto) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_NEWS_SERVER, "saveInformation", formDto);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/logs/service/impl/PointsLogsServiceImpl.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/logs/service/impl/PointsLogsServiceImpl.java
index fd451559f..74babf04d 100644
--- a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/logs/service/impl/PointsLogsServiceImpl.java
+++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/modules/logs/service/impl/PointsLogsServiceImpl.java
@@ -24,14 +24,18 @@ import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.constant.PointsConstant;
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
+import com.elink.esua.epdc.commons.tools.enums.pointsenum.PointsOperationEnum;
import com.elink.esua.epdc.commons.tools.enums.pointsenum.PointsOperationModeEnum;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.constant.PointsNoticeConstant;
import com.elink.esua.epdc.dto.UserDTO;
+import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserPointsFormDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcAdjustVolunteerPointsDTO;
import com.elink.esua.epdc.dto.logs.PointsLogsDTO;
+import com.elink.esua.epdc.modules.async.NewsTask;
import com.elink.esua.epdc.modules.feign.UserFeignClient;
import com.elink.esua.epdc.modules.logs.dao.PointsLogsDao;
import com.elink.esua.epdc.modules.logs.entity.PointsLogsEntity;
@@ -62,17 +66,20 @@ public class PointsLogsServiceImpl extends BaseServiceImpl page(Map params) {
String volunteerId = (String) params.get("volunteerId");
- String behaviorCode=(String) params.get("behaviorCode");
+ String behaviorCode = (String) params.get("behaviorCode");
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(volunteerId), "VOLUNTEER_ID", volunteerId)
- .eq(StringUtils.isNotBlank(behaviorCode),"BEHAVIOR_CODE",behaviorCode);
+ .eq(StringUtils.isNotBlank(behaviorCode), "BEHAVIOR_CODE", behaviorCode);
IPage page = baseDao.selectPage(
- getPage(params, FieldConstant.CREATED_TIME, false),
- wrapper
+ getPage(params, FieldConstant.CREATED_TIME, false),
+ wrapper
);
return getPageData(page, PointsLogsDTO.class);
}
@@ -157,6 +164,35 @@ public class PointsLogsServiceImpl extends BaseServiceImpl {
**/
UserTagEntity selectByTagCode(String tagCode);
- UserTagInfo selectByUserId(String userId);
+ /**
+ * @param userId
+ * @return java.util.List
+ * @Author yinzuomei
+ * @Description 根据用户id查询用户标签id用户标签编码
+ * @Date 2020/2/7 14:17
+ **/
+ List selectByUserId(String userId);
}
diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserTagRelationDao.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserTagRelationDao.java
index 6ddec02ae..e5a9ad8ac 100644
--- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserTagRelationDao.java
+++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserTagRelationDao.java
@@ -20,6 +20,7 @@ package com.elink.esua.epdc.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.entity.UserTagRelationEntity;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
/**
* 用户标签关系表
@@ -39,5 +40,5 @@ public interface UserTagRelationDao extends BaseDao {
* @author zy
* @date 2019-12-16
*/
- void deleteUserTagRelation(String userId);
-}
\ No newline at end of file
+ void deleteUserTagRelation(@Param("userId") String userId, @Param("tagCode") String tagCode);
+}
diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserTagRelationService.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserTagRelationService.java
index 3c069a590..1d10769ff 100644
--- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserTagRelationService.java
+++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserTagRelationService.java
@@ -94,13 +94,12 @@ public interface UserTagRelationService extends BaseService {
*/
PageData page(Map params);
- /**
- * 自定义 志愿者表修改方法
- * @param dto
- */
- void updateVolunteerInfo(VolunteerInfoDTO dto);
-
/**
* 默认查询
*
@@ -191,6 +185,15 @@ public interface VolunteerInfoService extends BaseService {
**/
Result getVolunteerInfoDTOByUserId(String userId);
+ /**
+ * @param dto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @Author yinzuomei
+ * @Description 志愿者审批
+ * @Date 2020/2/7 10:36
+ **/
+ Result volunteerInfoCheck(VolunteerInfoDTO dto);
+
/**
*
* 增加志愿者爱心时长
diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserTagRelationServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserTagRelationServiceImpl.java
index 540016aa9..4626d9346 100644
--- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserTagRelationServiceImpl.java
+++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserTagRelationServiceImpl.java
@@ -17,14 +17,20 @@
package com.elink.esua.epdc.service.impl;
+import cn.hutool.core.map.MapUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
+import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.redis.RedisKeys;
+import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
-import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
+import com.elink.esua.epdc.dao.UserTagDao;
import com.elink.esua.epdc.dao.UserTagRelationDao;
+import com.elink.esua.epdc.dto.UserTagInfo;
import com.elink.esua.epdc.dto.UserTagRelationDTO;
+import com.elink.esua.epdc.entity.UserTagEntity;
import com.elink.esua.epdc.entity.UserTagRelationEntity;
import com.elink.esua.epdc.redis.UserTagRelationRedis;
import com.elink.esua.epdc.service.UserTagRelationService;
@@ -46,10 +52,12 @@ import java.util.Map;
@Service
public class UserTagRelationServiceImpl extends BaseServiceImpl implements UserTagRelationService {
+ @Autowired
+ private UserTagDao userTagDao;
@Autowired
private UserTagRelationRedis userTagRelationRedis;
@Autowired
- private UserTagRelationDao userTagRelationDao;
+ private RedisUtils redisUtils;
@Override
public PageData page(Map params) {
@@ -104,17 +112,42 @@ public class UserTagRelationServiceImpl extends BaseServiceImpl userTagInfos = userTagDao.selectByUserId(userId);
+ String key = RedisKeys.getCpUserKey(userId);
+ Map map = redisUtils.hGetAll(key);
+ if (MapUtil.isEmpty(map)) {
+ return;
+ }
+ map.put("userTagInfos", userTagInfos);
+ redisUtils.hMSet(key, map);
}
-}
\ No newline at end of file
+}
diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/VolunteerInfoServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/VolunteerInfoServiceImpl.java
index 538f47d96..cca8d62c7 100644
--- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/VolunteerInfoServiceImpl.java
+++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/VolunteerInfoServiceImpl.java
@@ -22,10 +22,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.async.NewsTask;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
+import com.elink.esua.epdc.commons.tools.constant.NumConstant;
+import com.elink.esua.epdc.commons.tools.enums.UserTagEnum;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
-import com.elink.esua.epdc.constant.VolunteerInfoConsant;
+import com.elink.esua.epdc.constant.VolunteerInfoNoticeConstant;
import com.elink.esua.epdc.dao.VolunteerInfoDao;
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
import com.elink.esua.epdc.dto.UserTagDTO;
@@ -38,7 +40,7 @@ import com.elink.esua.epdc.dto.epdc.result.EpdcGetVolunteerRankDTO;
import com.elink.esua.epdc.entity.VolunteerInfoEntity;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.redis.VolunteerInfoRedis;
-import com.elink.esua.epdc.service.UserService;
+import com.elink.esua.epdc.service.UserTagRelationService;
import com.elink.esua.epdc.service.VolunteerInfoService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -65,17 +67,18 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl page(Map params) {
IPage page = baseDao.selectPage(
@@ -123,31 +125,6 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl list(Map params) {
List entityList = baseDao.selectList(getWrapper(params));
@@ -318,6 +295,43 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl().ok(baseDao.selectOneVolunteerInfoDTO(userId));
}
+ /**
+ * @param dto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @Author yinzuomei
+ * @Description 志愿者审批
+ * @Date 2020/2/7 10:37
+ **/
+ @Override
+ public Result volunteerInfoCheck(VolunteerInfoDTO dto) {
+ if (StringUtils.isBlank(dto.getAuditStatus())) {
+ return new Result().error("审核状态不能为空");
+ }
+ VolunteerInfoDTO volunteerInfoDTO = this.get(dto.getId());
+ volunteerInfoDTO.setAuditStatus(dto.getAuditStatus());
+ volunteerInfoDTO.setFailureReason(dto.getFailureReason());
+ if (NumConstant.TWO_STR.equals(volunteerInfoDTO.getAuditStatus())) {
+ if (StringUtils.isBlank(volunteerInfoDTO.getFailureReason())) {
+ return new Result().error("请填写原因");
+ }
+ // 1、未通过审核时发送消息-用户可修改信息重新提交
+ EpdcInformationFormDTO informationFormDTO = new EpdcInformationFormDTO();
+ informationFormDTO.setUserId(volunteerInfoDTO.getUserId());
+ informationFormDTO.setContent(dto.getFailureReason());
+ informationFormDTO.setType(VolunteerInfoNoticeConstant.NOTICE_TYPE_AUDIT_NOTICE);
+ informationFormDTO.setBusinessType(VolunteerInfoNoticeConstant.NOTICE__BUSINESS_TYPE_VOLUNTEER);
+ informationFormDTO.setBusinessId(volunteerInfoDTO.getId());
+ informationFormDTO.setTitle(VolunteerInfoNoticeConstant.NOTICE_CERTIFICATION_NOT_PASSED);
+ newsTask.insertUserInformation(informationFormDTO);
+ } else {
+ //2、审核通过-新增用户标签关系表(此方法里面实现了更新redis里的userTagInfos)
+ userTagRelationService.addUserTagRelation(volunteerInfoDTO.getUserId(), UserTagEnum.VOLUNTEER.value());
+ }
+ //3、更新志愿者信息表
+ this.update(volunteerInfoDTO);
+ return new Result();
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public Result modifyVolunteerKindnessTime(EpdcVolunteerKindnessTimeFormDTO formDto) {
diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserTagRelationDao.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserTagRelationDao.xml
index 1e328b2eb..dcde4d493 100644
--- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserTagRelationDao.xml
+++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserTagRelationDao.xml
@@ -15,8 +15,16 @@
-
- UPDATE epdc_user_tag_relation
- SET del_flag='1' WHERE USER_ID = #{userId} AND del_flag='0'
+
+ UPDATE epdc_user_tag_relation r
+ SET r.del_flag='1'
+ WHERE r.del_flag='0'
+ AND r.USER_ID = #{userId}
+ and r.TAG_ID in(
+ select eut.id
+ from epdc_user_tag eut
+ where eut.DEL_FLAG='0'
+ and eut.TAG_CODE=#{tagCode}
+ )
-
\ No newline at end of file
+