|
|
|
|
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<String, Object> myPromotions(long userId) {
|
|
|
|
|
// TODO 查询当前小程序用户,在活动有效期间的有效活动,包含活动名称,活动二维码
|
|
|
|
|
// TODO 从 promotion_src 获取当前导购的推广关系,并关联 activity_instance等表获取活动详情(注意活动有效性)
|
|
|
|
|
// TODO 需要附加这个活动已经推广的客户列表 promotion_friends_src
|
|
|
|
|
try {
|
|
|
|
|
List<PromotionSrcVO> 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<String, Object> pushPromotion(long userId, List<PoiStoreStaff> list, long promotionSrcId) {
|
|
|
|
|
// TODO 将活动推广给单个或多个用户 promotion_friends_src
|
|
|
|
|
// TODO 如果已经推广过了,则忽略
|
|
|
|
|
List<PmnPromotionFriendsSrc> adds = new ArrayList<>();
|
|
|
|
|
List<Long> friendIds = new ArrayList<>();
|
|
|
|
|
for (PoiStoreStaff store : list) {
|
|
|
|
|
PmnPromotionFriendsSrc friends = pmnPromotionFriendsSrcService.getOne(Wrappers.<PmnPromotionFriendsSrc>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.<PmnPromotionFriendsSrc>lambdaQuery().notIn(PmnPromotionFriendsSrc::getFriendId, friendIds).eq(PmnPromotionFriendsSrc::getPromotionSrcId, promotionSrcId));
|
|
|
|
|
}
|
|
|
|
|
return data(null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ApiOperation(value = "好友添加回调通知")
|
|
|
|
|
@PostMapping("/cb")
|
|
|
|
|
public Map<String, Object> turnBack(@RequestBody List<TurnBackDTO> turnBackDTOS) {
|
|
|
|
|
// TODO 待调查
|
|
|
|
|
return data(null);
|
|
|
|
|
}
|
|
|
|
|
}
|