| | |
| | | package com.ruoyi.goods.service.impl.activity; |
| | | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.utils.bean.BeanUtils; |
| | | import com.ruoyi.common.core.utils.uuid.IdUtils; |
| | | import com.ruoyi.goods.domain.dto.MgtActivityEditDto; |
| | | import com.ruoyi.goods.domain.dto.MgtActivityGoodsEditDto; |
| | | import com.ruoyi.goods.domain.dto.MgtActivityPageDto; |
| | | import com.ruoyi.goods.domain.dto.MgtActivityRecordPageDto; |
| | | import com.ruoyi.goods.domain.pojo.activity.Activity; |
| | | import com.ruoyi.goods.domain.pojo.activity.ActivityTotal; |
| | | import com.ruoyi.goods.domain.vo.MgtActivityGetVo; |
| | | import com.ruoyi.goods.domain.vo.MgtActivityGoodsListVo; |
| | | import com.ruoyi.goods.domain.vo.MgtActivityPageVo; |
| | | import com.ruoyi.goods.domain.vo.MgtActivityRecordPageVo; |
| | | import com.ruoyi.goods.mapper.activity.ActivityMapper; |
| | | import com.ruoyi.goods.service.activity.ActivityGoodsService; |
| | | import com.ruoyi.goods.service.activity.ActivityService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.goods.service.activity.ActivityTotalService; |
| | | import com.ruoyi.system.api.constant.AppErrorConstant; |
| | | import com.ruoyi.system.api.domain.dto.MgtBaseBathDto; |
| | | import com.ruoyi.system.api.domain.dto.MgtUserIdByKeywordDto; |
| | | import com.ruoyi.system.api.domain.poji.activity.ActivityGoods; |
| | | import com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo; |
| | | import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo; |
| | | import com.ruoyi.system.api.domain.vo.MgtUserIdByKeywordVo; |
| | | import com.ruoyi.system.api.service.RemoteMemberService; |
| | | import com.ruoyi.system.api.service.RemoteShopService; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.HashSet; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | public class ActivityServiceImpl extends ServiceImpl<ActivityMapper, Activity> implements ActivityService { |
| | | |
| | | @Resource |
| | | private ActivityMapper activityMapper; |
| | | |
| | | @Resource |
| | | private ActivityGoodsService activityGoodsService; |
| | | |
| | | @Resource |
| | | private ActivityTotalService activityTotalService; |
| | | |
| | | @Resource |
| | | private RemoteShopService remoteShopService; |
| | | |
| | | @Resource |
| | | private RemoteMemberService remoteMemberService; |
| | | |
| | | /** |
| | | * @param mgtActivityEditDto |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @description 分页获取活动列表 |
| | | * @author jqs |
| | | * @date 2023/6/14 16:39 |
| | | * @param mgtActivityPageDto |
| | | * @return List<MgtActivityPageVo> |
| | | */ |
| | | @Override |
| | | public List<MgtActivityPageVo> pageMgtActivity(Page page, MgtActivityPageDto mgtActivityPageDto){ |
| | | List<MgtActivityPageVo> mgtActivityPageVoList = activityMapper.pageMgtActivity(page, mgtActivityPageDto); |
| | | return mgtActivityPageVoList; |
| | | } |
| | | |
| | | /** |
| | | * @description 获取活动编辑信息 |
| | | * @author jqs |
| | | * @date 2023/6/14 17:30 |
| | | * @param activityId |
| | | * @return MgtActivityGetVo |
| | | */ |
| | | @Override |
| | | public MgtActivityGetVo getMgtActivity(String activityId){ |
| | | MgtActivityGetVo mgtActivityGetVo = new MgtActivityGetVo(); |
| | | Activity activity = this.getById(activityId); |
| | | BeanUtils.copyProperties(activity, mgtActivityGetVo); |
| | | //活动关联商户 |
| | | if(activity.getShopFlag()==2&&StringUtils.isNotBlank(activity.getApplicableShop())){ |
| | | String applicableShop = activity.getApplicableShop(); |
| | | MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); |
| | | mgtBaseBathDto.setIds(applicableShop); |
| | | List<MgtSimpleShopVo> mgtSimpleShopVoList= remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData(); |
| | | mgtActivityGetVo.setMgtSimpleShopVosList(mgtSimpleShopVoList); |
| | | } |
| | | //活动关联商品 |
| | | List<MgtActivityGoodsListVo> mgtActivityGoodsVoList = activityGoodsService.listVoByActivityId(activityId); |
| | | mgtActivityGetVo.setMgtActivityGoodsVoList(mgtActivityGoodsVoList); |
| | | return mgtActivityGetVo; |
| | | } |
| | | |
| | | /** |
| | | * @description 平台删除活动 |
| | | * @author jqs |
| | | * @date 2023/6/14 18:12 |
| | | * @param activityId |
| | | * @return void |
| | | */ |
| | | @Override |
| | | public void deleteMgtActivity(String activityId){ |
| | | Activity activity = this.getById(activityId); |
| | | if (activity.getActivityStatus() != 0) { |
| | | throw new ServiceException(AppErrorConstant.ACTIVITY_ING_DELETE); |
| | | } |
| | | activity.setDelFlag(1); |
| | | activity.setActivityStatus(-1); |
| | | this.saveOrUpdate(activity); |
| | | } |
| | | |
| | | /** |
| | | * @description 分页获取活动参与记录列表 |
| | | * @param mgtActivityRecordPageDto |
| | | * @return MgtActivityRecordPageVo |
| | | * @author jqs34 |
| | | * @date 2023/6/24 16:58 |
| | | */ |
| | | @Override |
| | | public List<MgtActivityRecordPageVo> pageMgtActivityRecord(Page page, MgtActivityRecordPageDto mgtActivityRecordPageDto){ |
| | | if(StringUtils.isNotBlank(mgtActivityRecordPageDto.getKeyword())){ |
| | | MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto(); |
| | | mgtUserIdByKeywordDto.setKeyword(mgtActivityRecordPageDto.getKeyword()); |
| | | MgtUserIdByKeywordVo mgtUserIdByKeywordVo = remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); |
| | | if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){ |
| | | mgtActivityRecordPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); |
| | | } |
| | | } |
| | | List<MgtActivityRecordPageVo> activityRecordPageVoList = activityMapper.pageMgtActivityRecord(page, mgtActivityRecordPageDto); |
| | | if(!activityRecordPageVoList.isEmpty()){ |
| | | // 定义变量 |
| | | HashSet<Long> userIdSet = new HashSet<>(); |
| | | // 遍历列表,用户 ID |
| | | for (MgtActivityRecordPageVo mgtActivityRecordPageVo : activityRecordPageVoList) { |
| | | userIdSet.add(mgtActivityRecordPageVo.getUserId()); |
| | | } |
| | | // 将店铺 ID 和用户 ID 转换为逗号分隔的字符串 |
| | | String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList())); |
| | | // 从远程服务获取店铺和用户信息 |
| | | MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); |
| | | mgtBaseBathDto = new MgtBaseBathDto(); |
| | | mgtBaseBathDto.setIds(userJoinedString); |
| | | List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData(); |
| | | Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); |
| | | for (MgtActivityRecordPageVo mgtActivityRecordPageVo : activityRecordPageVoList) { |
| | | mgtActivityRecordPageVo.setNickName(userMap.get(mgtActivityRecordPageVo.getUserId()).getNickName()+"/"+(userMap.get(mgtActivityRecordPageVo.getUserId()).getRealName())); |
| | | mgtActivityRecordPageVo.setMobile(userMap.get(mgtActivityRecordPageVo.getUserId()).getUserMobile()); |
| | | } |
| | | } |
| | | return activityRecordPageVoList; |
| | | } |
| | | } |