| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457 |
- package platform.modules.sys.service;
- import com.aliyuncs.exceptions.ClientException;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import platform.common.Constant;
- import platform.common.base.service.BaseService;
- import platform.common.util.AlibabaSMSUtil;
- import platform.common.util.ShiroUtils;
- import platform.modules.build.entity.Tenancy;
- import platform.modules.carrier.dto.ActivityStatistic;
- import platform.modules.government.entity.Attachment;
- import platform.modules.government.entity.FileDown;
- import platform.modules.government.entity.User;
- import platform.modules.government.service.AttachmentService;
- import platform.modules.government.service.UserService;
- import platform.modules.home.service.HomeRefactorService;
- import platform.modules.sys.dao.ActivityRegistrationDao;
- import platform.modules.sys.entity.ActivityDetail;
- import platform.modules.sys.entity.ActivityFeedback;
- import platform.modules.sys.entity.ActivityRegistration;
- import platform.modules.sys.entity.ActivityReview;
- import platform.modules.sys.report.ActivityRegistrationExports;
- import tk.mybatis.mapper.entity.Example;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.Objects;
- @Service
- @Transactional
- public class ActivityRegistrationService extends BaseService<ActivityRegistration> {
- @Autowired
- private ActivityRegistrationDao activityRegistrationDao;
- @Autowired
- private ActivityService activityService;
- @Autowired
- private UserService userService;
- @Autowired
- private AttachmentService attachmentService;
- @Autowired
- private HomeRefactorService homeRefactorService;
- @Autowired
- private ActivityReviewService activityReviewService;
- /**
- * 获取指定活动的已审核报名人数
- *
- * @param activityId
- * @return
- */
- public Integer getActivityRegistrationNumber(Integer activityId) {
- return activityRegistrationDao.getRegistrationNumber(activityId);
- }
- /**
- * 保存报名信息
- *
- * @param activityRegistration
- * @return
- */
- public Integer saveActivityRegistration(ActivityRegistration activityRegistration) {
- ActivityDetail activityDetail = activityService.findById(activityRegistration.getActivity_id());
- String quota = activityDetail.getActivity_quota();
- String isReview = activityDetail.getIs_review();
- //已报名人数
- int registrationNumber = getActivityRegistrationNumber(activityRegistration.getActivity_id());
- User currUser = new User();
- if (activityRegistration.getUser_id() != null && !activityRegistration.getUser_id().equals("")) {
- currUser = userService.findById(activityRegistration.getUser_id());
- } else {
- currUser = ShiroUtils.getUserEntity();
- }
- activityRegistration.setUser_id(currUser.getId());
- activityRegistration.setUser_type(currUser.getUser_type().toString());
- if (Objects.equals(Constant.UserType.GOVERNMENT, currUser.getUser_type())) {
- activityRegistration.setRelation_id("0");
- } else if (Objects.equals(Constant.UserType.BUILD, currUser.getUser_type())) {
- activityRegistration.setRelation_id(currUser.getBuild_id() + "");
- } else if (Objects.equals(Constant.UserType.STREET, currUser.getUser_type())) {
- activityRegistration.setRelation_id(currUser.getStreet_id() + "");
- } else if (Objects.equals(Constant.UserType.COMPANY, currUser.getUser_type())) {
- activityRegistration.setRelation_id(currUser.getCompany_id() + "");
- } else if (Objects.equals(Constant.UserType.PERSONAL, currUser.getUser_type())) {
- activityRegistration.setRelation_id(currUser.getId() + "");
- } else if (Objects.equals(Constant.UserType.WECHAT, currUser.getUser_type())) {
- activityRegistration.setRelation_id(currUser.getId() + "");
- activityRegistration.setUser_type(currUser.getUser_type() + "");
- }
- activityRegistration.setRegistration_time(new Date());
- //签到状态 0已签到 1未签到
- activityRegistration.setSign_state(null);
- if (Objects.equals(quota, null) || Objects.equals(quota, "")) {
- //如果不限人数
- if (Objects.equals(isReview, "0")) {
- //需要审核
- //由政府用户进行报名确认,如在活动结束时间还未被审核的报名者,则活动状态为取消
- //审核状态(0待审核,1通过,2退回)
- activityRegistration.setReview_state("0");
- } else {
- //不需要审核
- //所有报名的用户会在点击报名的同一时刻被确认参与活动
- //审核状态(0待审核,1通过,2退回)
- activityRegistration.setReview_state("1");
- }
- } else {
- //限制人数
- /*if (registrationNumber < Integer.parseInt(quota)) {*/
- if (Objects.equals(isReview, "0")) {
- //需要审核
- //由政府用户进行报名确认,如在活动结束时间还未被审核的报名者,则活动状态为取消
- //审核状态(0待审核,1通过,2退回)
- activityRegistration.setReview_state("0");
- } else {
- //不需要审核
- //则所有报名的,且在名额数目内的用户会在点击报名的同一时刻被确认参与活动。名额满后则报名通道关闭,除非已被确认的用户取消参加,报名通道重新打开
- //审核状态(0待审核,1通过,2退回)
- activityRegistration.setReview_state("1");
- }
- /* } else {
- //报名人数已满
- return -1;
- }*/
- }
- return this.saveSelective(activityRegistration);
- }
- /**
- * 政府活动管理-报名信息
- *
- * @param pageNum
- * @param pageSize
- * @param id
- * @return
- * @throws Exception
- */
- @Transactional(readOnly = true)
- public PageInfo<ActivityRegistration> findRegistrationPage(Integer pageNum, Integer pageSize, Integer id) throws Exception {
- PageHelper.startPage(pageNum, pageSize);
- List<ActivityRegistration> list = activityRegistrationDao.findRegistrationPage(id, null);
- return new PageInfo<ActivityRegistration>(list);
- }
- @Transactional(readOnly = true)
- public List<ActivityRegistration> findRegistrationList(Integer id) throws Exception {
- List<ActivityRegistration> list = activityRegistrationDao.findRegistrationPage(id, null);
- return list;
- }
- @Transactional(readOnly = true)
- public List<ActivityRegistrationExports> findRegistrationListExports(Integer id) throws Exception {
- List<ActivityRegistrationExports> list = activityRegistrationDao.findRegistrationExport(id, null);
- return list;
- }
- @Transactional(readOnly = true)
- public Integer getRegistrationNumber(Integer pageNum, Integer pageSize, Integer id) throws Exception {
- List<ActivityRegistration> list = activityRegistrationDao.findRegistrationPage(id, null);
- return list.size();
- }
- /**
- * 政府活动管理-签到信息
- *
- * @param pageNum
- * @param pageSize
- * @param id
- * @return
- * @throws Exception
- */
- @Transactional(readOnly = true)
- public PageInfo<ActivityRegistration> findSginPage(Integer pageNum, Integer pageSize, Integer id) throws Exception {
- PageHelper.startPage(pageNum, pageSize);
- List<ActivityRegistration> list = activityRegistrationDao.findSginPage(id, null);
- return new PageInfo<ActivityRegistration>(list);
- }
- @Transactional(readOnly = true)
- public List<ActivityRegistration> findSginList(Integer id) throws Exception {
- List<ActivityRegistration> list = activityRegistrationDao.findSginPage(id, null);
- return list;
- }
- @Transactional(readOnly = true)
- public Integer getSginNumber(Integer pageNum, Integer pageSize, Integer id) throws Exception {
- List<ActivityRegistration> list = activityRegistrationDao.findSginPage(id, null);
- return list.size();
- }
- /**
- * 园区街道企业-我的活动
- *
- * @param pageNum
- * @param pageSize
- * @param activityRegistration
- * @return
- * @throws Exception
- */
- @Transactional(readOnly = true)
- public PageInfo<ActivityRegistration> findMyActivityPage(Integer pageNum, Integer pageSize, ActivityRegistration activityRegistration) throws Exception {
- PageHelper.startPage(pageNum, pageSize);
- List<ActivityRegistration> list = activityRegistrationDao.findMyActivityPage(activityRegistration);
- return new PageInfo<ActivityRegistration>(list);
- }
- /**
- * 修改状态
- *
- * @param activityRegistration
- * @return
- */
- public Boolean updateState(ActivityRegistration activityRegistration) {
- if (Objects.equals(activityRegistrationDao.updateState(activityRegistration), 1))
- return true;
- return false;
- }
- /**
- * 批量修改状态
- *
- * @param idList
- */
- public void updateStateBatch(List<String> idList, ActivityRegistration activityRegistration) {
- activityRegistrationDao.updateStateBatch(idList, activityRegistration);
- }
- /**
- * 获取当前账户所在单位已报名的
- *
- * @return
- */
- public List<ActivityRegistration> getCurrRegUsers(String activity_id) {
- Integer userType = ShiroUtils.getUserType();
- String relationId = "";
- if (Objects.equals(Constant.UserType.GOVERNMENT, userType)) {
- relationId = "0";
- } else if (Objects.equals(Constant.UserType.BUILD, userType)) {
- relationId = ShiroUtils.getBuildId().toString();
- } else if (Objects.equals(Constant.UserType.STREET, userType)) {
- relationId = ShiroUtils.getStreetId().toString();
- } else if (Objects.equals(Constant.UserType.COMPANY, userType)) {
- relationId = ShiroUtils.getCompanyId().toString();
- } else if (Objects.equals(Constant.UserType.PERSONAL, userType)) {
- relationId = ShiroUtils.getUserId().toString();
- }
- return activityRegistrationDao.findByRelationIdAndType(userType.toString(), relationId, activity_id);
- }
- /**
- * 获取当前账户所在单位已报名的
- *
- * @return
- */
- public List<ActivityRegistration> getCurrRegUsers(String activity_id, String phone) {
- User user = userService.findByMobile(phone);
- Integer userType = user.getUser_type();
- String relationId = "";
- if (Objects.equals(Constant.UserType.GOVERNMENT, userType)) {
- relationId = "0";
- } else if (Objects.equals(Constant.UserType.BUILD, userType)) {
- relationId = user.getBuild_id().toString();
- } else if (Objects.equals(Constant.UserType.STREET, userType)) {
- relationId = user.getStreet_id().toString();
- } else if (Objects.equals(Constant.UserType.COMPANY, userType)) {
- relationId = user.getCompany_id().toString();
- } else if (Objects.equals(Constant.UserType.PERSONAL, userType)) {
- relationId = user.getId().toString();
- }else if (Objects.equals(Constant.UserType.WECHAT, userType)) {
- relationId = user.getId().toString();
- }
- return activityRegistrationDao.findByRelationIdAndType(userType.toString(), relationId, activity_id);
- }
- /**
- * 获取当前账户所在单位已报名的
- *
- * @return
- */
- public List<ActivityRegistration> getWechatCurrRegUsers(String activity_id, Integer user_id) {
- User user = userService.findById(user_id);
- Integer userType = user.getUser_type();
- String relationId = "";
- if (Objects.equals(Constant.UserType.GOVERNMENT, userType)) {
- relationId = "0";
- } else if (Objects.equals(Constant.UserType.BUILD, userType)) {
- relationId = user.getBuild_id().toString();
- } else if (Objects.equals(Constant.UserType.STREET, userType)) {
- relationId = user.getStreet_id().toString();
- } else if (Objects.equals(Constant.UserType.COMPANY, userType)) {
- relationId = user.getCompany_id().toString();
- } else if (Objects.equals(Constant.UserType.PERSONAL, userType)) {
- relationId = user.getId().toString();
- } else if (Objects.equals(Constant.UserType.WECHAT, userType)) {
- relationId = user.getId().toString();
- }
- return activityRegistrationDao.findByRelationIdAndType(userType.toString(), relationId, activity_id);
- }
- public Boolean sendActivityAbortSMS(ActivityDetail activity, List<ActivityRegistration> registrations) {
- //您报名的活动:${activity_title} 已取消。具体信息请登录PC端查看。感谢您的支持。
- try {
- if (null != registrations && registrations.size() > 0) {
- for (ActivityRegistration registration : registrations) {
- String phone = registration.getPhone();
- if (StringUtils.isNotBlank(phone)) {
- String activity_title = activity.getActivity_title();
- String templateParam = "{\"activity_title\":\"" + activity_title + "\"}";
- AlibabaSMSUtil.sendSMS(phone, Constant.SMS_TemplateCode.ACTIVITY_ABORT, "企业提升发展服务平台", templateParam);
- }
- }
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
- public Boolean sendActivityUpdateSMS(ActivityDetail activity, List<ActivityRegistration> registrations) {
- //您报名的活动:${activity_title} 活动内容有变更。具体信息请登录PC端查看。感谢您的支持。
- try {
- if (null != registrations && registrations.size() > 0) {
- for (ActivityRegistration registration : registrations) {
- String phone = registration.getPhone();
- String activity_title = activity.getActivity_title();
- String templateParam = "{\"activity_title\":\"" + activity_title + "\"}";
- AlibabaSMSUtil.sendSMS(phone, Constant.SMS_TemplateCode.ACTIVITY_UPDATE, "企业提升发展服务平台", templateParam);
- }
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
- /**
- * 取消报名
- *
- * @param ids
- */
- public void adortRegister(List<String> ids) {
- activityRegistrationDao.adortRegister(ids);
- }
- /**
- * 获取用户报名活动的报名信息
- *
- * @param activityId
- * @param userId
- * @return
- */
- public List<ActivityRegistration> getActivityRegistration(Integer activityId, int userId) {
- return activityRegistrationDao.getActivityRegistration(activityId, userId);
- }
- /**
- * 活动统计
- *
- * @param userId
- * @return
- */
- public ActivityStatistic findActivityStatistic(Integer userId) {
- ActivityStatistic statistic = new ActivityStatistic();
- statistic.setPending(activityRegistrationDao.findPendingActivity(userId).size());
- statistic.setComment(activityRegistrationDao.findCommentActivity(userId).size());
- statistic.setExpired(activityRegistrationDao.findExpiredActivity(userId).size());
- statistic.setCompleted(activityRegistrationDao.findCompletedActivity(userId).size());
- statistic.setPush(activityRegistrationDao.findPushActivity(userId).size());
- statistic.setCollection(activityRegistrationDao.findCollectionActivity(userId).size());
- return statistic;
- }
- /**
- * 获取各类活动
- *
- * @param type
- * @return
- */
- public List<ActivityDetail> findTypesActivitys(String type, Integer userId) {
- List<ActivityDetail> statistics = new ArrayList<>();
- switch (type) {
- case "pending"://待参加
- statistics = activityRegistrationDao.findPendingActivity(userId);
- break;
- case "comment":
- statistics = activityRegistrationDao.findCommentActivity(userId);
- break;
- case "expired":
- statistics = activityRegistrationDao.findExpiredActivity(userId);
- break;
- case "completed":
- statistics = activityRegistrationDao.findCompletedActivity(userId);
- break;
- case "push":
- statistics = activityRegistrationDao.findPushActivity(userId);
- break;
- case "collection":
- statistics = activityRegistrationDao.findCollectionActivity(userId);
- break;
- }
- for (ActivityDetail activity : statistics) {
- //活动图片
- List<Attachment> attachments = attachmentService.selectByIdAndBusinessId(Constant.Attachment.ACTIVITY, activity.getId(), null);
- if (null != attachments && attachments.size() > 0) {
- FileDown fileDown = new FileDown(attachments.get(0).getId(), attachments.get(0).getFile_name(), attachments.get(0).getFile_url(), attachments.get(0).getDownload_uri());
- activity.setFileDown(fileDown);
- }
- //是否收藏
- if (homeRefactorService.isFavourited(activity.getId(), userId)) {
- activity.setIs_favourited("1");
- } else {
- activity.setIs_favourited("0");
- }
- //活动回顾
- ActivityReview activityReview = activityReviewService.findByActivityId(activity.getId());
- if (activityReview != null) {
- activity.setActivityReviewId(activityReview.getId());
- }
- }
- return statistics;
- }
- }
|