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 templateIds = vo.getTemplateIds(); userSubscribeMessageService.remove(new LambdaQueryWrapper() .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 getUserOpenId(@PathVariable("uid") Integer uid){ UserSubscribeMessage one = userSubscribeMessageService.getOne(new LambdaQueryWrapper() .eq(UserSubscribeMessage::getUserId, uid).last(" limit 1")); return R.ok(null != one ? one.getOpenId() : ""); } }