package com.hollywood.applet.controller; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hollywood.applet.query.TPopularActivityQuery; import com.hollywood.applet.service.TPopularActivityService; import com.hollywood.applet.service.TPopularActivityUserService; import com.hollywood.applet.utils.LoginInfoUtil; import com.hollywood.applet.vo.TPopularActivityVO; import com.hollywood.common.basic.ApiResult; import com.hollywood.common.basic.PageInfo; import com.hollywood.common.model.TOrder; import com.hollywood.common.model.TPopularActivity; import com.hollywood.common.model.TPopularActivityUser; import com.hollywood.common.security.JwtTokenUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.token.TokenService; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** *

* 热门活动 前端控制器 *

* * @author xiaochen * @since 2024-02-29 */ @RestController @RequestMapping("/tPopularActivity") @Api(tags = "热门活动") public class TPopularActivityController { @Autowired private TPopularActivityService popularActivityService; @Autowired private TPopularActivityUserService activityUserService; @Autowired private LoginInfoUtil loginInfoUtil; // @ApiOperation(value = "查询") // @GetMapping("/list") // public ApiResult> getConfigById(@RequestParam int pageNum, // @RequestParam int pageSize, String name,String cityCode) // { // PageInfo pageInfo = new PageInfo<>(pageNum, pageSize); //// List popularActivityList = popularActivityService.searchByName(name,pageInfo); // QueryWrapper tPopularActivityQueryWrapper = new QueryWrapper<>(); // tPopularActivityQueryWrapper.eq("activityStatus",2); // tPopularActivityQueryWrapper.eq("status",1); // if (name!=null){ // tPopularActivityQueryWrapper.like("activityName",name); // } // if (cityCode!=null){ // tPopularActivityQueryWrapper.eq("cityCode",cityCode); // } // PageInfo popularActivityList = popularActivityService.page(pageInfo,tPopularActivityQueryWrapper); // return ApiResult.success(popularActivityList); // } @ApiOperation(value = "获取热门活动分页列表") @PostMapping(value = "/pageList") public ApiResult> pageList(@RequestBody TPopularActivityQuery query) { Long userId = loginInfoUtil.getUserId(); List ids = new ArrayList<>(); if (query.getMine()!=null&&query.getMine()==1){ List list = activityUserService.list(Wrappers.lambdaQuery(TPopularActivityUser.class) .eq(TPopularActivityUser::getUserId, userId)); ids = list.stream() .map(TPopularActivityUser::getActivityId) .collect(Collectors.toList()); if (ids.size()==0){ return ApiResult.success(new PageInfo<>()); } } return ApiResult.success(popularActivityService.pageList(query,ids)); } @ApiOperation("获取排序最高的两个活动") @GetMapping("/hottwo") public ApiResult> getConfigById() { List list = popularActivityService.list(Wrappers.lambdaQuery(TPopularActivity.class) .eq(TPopularActivity::getActivityStatus, 2) .eq(TPopularActivity::getStatus, 1) .orderByDesc(TPopularActivity::getSortBy)); return ApiResult.success(list); } @ApiOperation(value = "查看热门活动详情") @GetMapping(value = "/geTPopularActivityDetailById") public ApiResult geTPopularActivityDetailById(@RequestParam Long id) { Long userId = loginInfoUtil.getUserId(); TPopularActivity byId = popularActivityService.getById(id); long count = activityUserService.count(Wrappers.lambdaQuery(TPopularActivityUser.class).eq(TPopularActivityUser::getActivityId, byId.getId())); byId.setPeopleCounts(count); long count1 = activityUserService.count(Wrappers.lambdaQuery(TPopularActivityUser.class).eq(TPopularActivityUser::getActivityId, byId.getId()).eq(TPopularActivityUser::getUserId,userId)); if (count1>0){ byId.setIsJoin(1); }else { byId.setIsJoin(0); } return ApiResult.success(byId); } @ApiOperation(value = "参加活动") @PostMapping("/join") public ApiResult join(Long activityId) { Long userId = loginInfoUtil.getUserId(); // LoginUser loginUser = tokenService.getLoginUser(); activityUserService.join(activityId, userId); return ApiResult.success(); } @ApiOperation(value = "取消活动") @PostMapping("/cancel/{activityId}") public ApiResult cancel(@PathVariable Long activityId) { Long userId = loginInfoUtil.getUserId(); activityUserService.remove(Wrappers.lambdaQuery(TPopularActivityUser.class).eq(TPopularActivityUser::getUserId,userId).eq(TPopularActivityUser::getActivityId,activityId)); return ApiResult.success(); } }