package com.xiaopeng.account.controller;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.xiaopeng.account.service.IUserSubscribeMessageService;
|
import com.xiaopeng.account.vo.UserSubscribeMessageVo;
|
import com.xiaopeng.api.feignClient.pushMessage.SubscribeMessageClient;
|
import com.xiaopeng.api.model.account.UserSubscribeMessage;
|
import com.xiaopeng.common.core.domain.R;
|
import com.xiaopeng.common.core.utils.StringUtils;
|
import com.xiaopeng.unifiedverification.interceptor.XpClientCheck;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import java.util.List;
|
|
@RestController
|
@RequestMapping("")
|
public class UserSubscribeMessageController {
|
|
@Resource
|
private IUserSubscribeMessageService userSubscribeMessageService;
|
|
@Resource
|
private SubscribeMessageClient subscribeMessageClient;
|
|
|
|
@PostMapping("/api/v1/mini-program/subscribeMessage/saveUserSubscribeMessage")
|
@ApiOperation(value = "授权消息模板", tags = {"小程序-优惠券"})
|
@XpClientCheck(checkToken = false, checkOtpToken = true)
|
public R<?> saveUserSubscribeMessage(@RequestBody UserSubscribeMessageVo vo, HttpServletRequest request){
|
String uid = request.getHeader("XP-Uid");
|
String openid = subscribeMessageClient.getOpenId(vo.getJscode()).getData();
|
if(StringUtils.isEmpty(openid)){
|
return R.fail("获取openid失败");
|
}
|
List<String> templateIds = vo.getTemplateIds();
|
userSubscribeMessageService.remove(new LambdaQueryWrapper<UserSubscribeMessage>()
|
.eq(UserSubscribeMessage::getUserId, uid).in(UserSubscribeMessage::getTemplateId, templateIds));
|
for (String templateId : templateIds) {
|
UserSubscribeMessage userSubscribeMessage = new UserSubscribeMessage();
|
userSubscribeMessage.setUserId(Long.valueOf(uid));
|
userSubscribeMessage.setTemplateId(templateId);
|
userSubscribeMessage.setStatus(1);
|
userSubscribeMessage.setOpenId(openid);
|
userSubscribeMessage.setDeleted(false);
|
userSubscribeMessageService.save(userSubscribeMessage);
|
}
|
return R.ok();
|
}
|
|
|
@GetMapping("/logan/inner/v1/subscribeMessage/getUserOpenId/{v}")
|
public R<String> getUserOpenId(@PathVariable("uid") Integer uid){
|
UserSubscribeMessage one = userSubscribeMessageService.getOne(new LambdaQueryWrapper<UserSubscribeMessage>()
|
.eq(UserSubscribeMessage::getUserId, uid).last(" limit 1"));
|
return R.ok(null != one ? one.getOpenId() : "");
|
}
|
}
|