package com.kiisoo.ic.activity.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.kiisoo.ic.activity.bean.ActivityInstanceVO; import com.kiisoo.ic.activity.bean.PromotionSrcVO; import com.kiisoo.ic.activity.entity.PmnPromotionFriendsSrc; import com.kiisoo.ic.activity.service.IPmnActivityInstanceService; import com.kiisoo.ic.activity.service.IPmnPromotionFriendsSrcService; import com.kiisoo.ic.activity.service.IPmnPromotionSrcService; import com.kiisoo.ic.common.BaseController; import com.kiisoo.ic.employee.mapper.PrivilageCpUserDOMapper; import com.kiisoo.ic.store.entity.PoiStoreStaff; import com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper; import com.kiisoo.ic.store.mapper.PrivilageCpUserStoreDOMapper; import com.kiisoo.ic.store.service.StoreEmployeeService; import com.kiisoo.ic.synchronous.entity.TurnBackDTO; import com.kiisoo.ic.system.entity.PrivilageAccountDO; import com.kiisoo.ic.system.entity.PrivilageRoleDO; import com.kiisoo.ic.system.entity.PrivilageUserDO; import com.kiisoo.ic.system.mapper.PrivilageRoleDOMapper; import com.kiisoo.ic.system.mapper.PrivilageUserDOMapper; import com.kiisoo.ic.system.service.PrivilageAccountService; import com.kiisoo.ic.webappmy.service.WebAppService; import com.kiisoo.ic.webappmy.vo.StafferInfoVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @Api(value = "小程序-我的活动推广", tags = {"小程序-我的活动推广"}) @RestController @RequestMapping("/webapp/my") @Slf4j public class WebAppActivityController extends BaseController { @Autowired private IPmnPromotionSrcService pmnPromotionSrcService; @Autowired private IPmnPromotionFriendsSrcService pmnPromotionFriendsSrcService; @ApiOperation(value = "我的活动推广列表") @GetMapping("/get/promotions") @ApiImplicitParams({ @ApiImplicitParam(name = "userId", value = "用户ID", dataType = "int", paramType = "form"), }) public Map myPromotions(long userId) { // TODO 查询当前小程序用户,在活动有效期间的有效活动,包含活动名称,活动二维码 // TODO 从 promotion_src 获取当前导购的推广关系,并关联 activity_instance等表获取活动详情(注意活动有效性) // TODO 需要附加这个活动已经推广的客户列表 promotion_friends_src try { List codes = pmnPromotionSrcService.listUserCodes(userId); return data(codes); } catch (Exception e) { log.error("获取用户信息异常", e); return fail(); } } @ApiOperation(value = "执行推广") @PostMapping("/post/promotions") @ApiImplicitParams({ @ApiImplicitParam(name = "userId", value = "用户ID", dataType = "int", paramType = "form"), @ApiImplicitParam(name = "list", value = "选中导购列表", dataType = "array", paramType = "form"), @ApiImplicitParam(name = "promotionSrcId", value = "推广源关系ID", dataType = "array", paramType = "form"), }) public Map pushPromotion(long userId, List list, long promotionSrcId) { // TODO 将活动推广给单个或多个用户 promotion_friends_src // TODO 如果已经推广过了,则忽略 List adds = new ArrayList<>(); List friendIds = new ArrayList<>(); for (PoiStoreStaff store : list) { PmnPromotionFriendsSrc friends = pmnPromotionFriendsSrcService.getOne(Wrappers.lambdaQuery().eq(PmnPromotionFriendsSrc::getFriendId, store.getUserId()).eq(PmnPromotionFriendsSrc::getPromotionSrcId, promotionSrcId)); friendIds.add(store.getUserId()); if(friends == null) { PmnPromotionFriendsSrc friend = new PmnPromotionFriendsSrc(); friend.setPromotionSrcId(promotionSrcId); friend.setFriendId(store.getUserId()); friend.setCreateTime(new Date()); adds.add(friend); } } pmnPromotionFriendsSrcService.saveBatch(adds); if(friendIds.size() > 0) { //不在列表里的执行删除 pmnPromotionFriendsSrcService.remove(Wrappers.lambdaQuery().notIn(PmnPromotionFriendsSrc::getFriendId, friendIds).eq(PmnPromotionFriendsSrc::getPromotionSrcId, promotionSrcId)); } return data(null); } @ApiOperation(value = "好友添加回调通知") @PostMapping("/cb") public Map turnBack(@RequestBody List turnBackDTOS) { // TODO 待调查 return data(null); } }