记得上下班打卡 | git大法好,push需谨慎

Commit 8f7611c5 authored by jiangxiulong's avatar jiangxiulong

Merge remote-tracking branch 'origin/jxl_0223_msg' into pre

parents 3b2e7c55 a1c483a3
...@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel; ...@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable;
/** /**
* <p> * <p>
* upush 系统消息 * upush 系统消息
...@@ -14,7 +16,9 @@ import lombok.Data; ...@@ -14,7 +16,9 @@ import lombok.Data;
*/ */
@ApiModel @ApiModel
@Data @Data
public class AdminUpushVo { public class AdminUpushVo implements Serializable, Cloneable {
private static final long serialVersionUID = 8635450456535735379L;
@ApiModelProperty(value = "upush_id") @ApiModelProperty(value = "upush_id")
private String upushId; private String upushId;
...@@ -79,4 +83,14 @@ public class AdminUpushVo { ...@@ -79,4 +83,14 @@ public class AdminUpushVo {
private String createdAt; private String createdAt;
private String updatedAt; private String updatedAt;
private static final AdminUpushVo obj = new AdminUpushVo();
public static AdminUpushVo getNew() {
try {
return (AdminUpushVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new AdminUpushVo();
}
}
} }
...@@ -82,4 +82,5 @@ public class KylinRedisConst { ...@@ -82,4 +82,5 @@ public class KylinRedisConst {
public static final String KYLIN_EXPRESS_MODULES = "kylin:express:modules"; public static final String KYLIN_EXPRESS_MODULES = "kylin:express:modules";
public static final String REDIS_KEY_KYLIN_PERFORM_SUBSCRIBE = "kylin:performSubscribe:uid:";
} }
package com.liquidnet.service.kylin.service; package com.liquidnet.service.kylin.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dao.PerformanceOrderStatisticalDao;
import com.liquidnet.service.kylin.entity.KylinPerformances;
import java.util.List;
/** /**
* <p> * <p>
...@@ -15,13 +10,18 @@ import java.util.List; ...@@ -15,13 +10,18 @@ import java.util.List;
* @author liquidnet * @author liquidnet
* @since 2021-05-05 * @since 2021-05-05
*/ */
public interface IKylinPerformancesService { public interface IKylinPerformancesService {
/** /**
* 根据 券适用范围查询演出id * 根据 券适用范围查询演出id
*
* @param useScope * @param useScope
* @param busiId * @param busiId
* @return * @return
*/ */
ResponseDto<String> getPerformanceIdByInfo(Integer useScope,String busiId); ResponseDto<String> getPerformanceIdByInfo(Integer useScope, String busiId);
ResponseDto<String> subscribe(String performancesId, Integer sourceType);
ResponseDto<Integer> isSubscribe(String performancesId);
} }
package com.liquidnet.service.sweet.service; package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetAppletSubMsg; import com.liquidnet.service.sweet.entity.SweetAppletSubMsg;
import com.baomidou.mybatisplus.extension.service.IService;
/** /**
* <p> * <p>
...@@ -14,9 +14,12 @@ import com.baomidou.mybatisplus.extension.service.IService; ...@@ -14,9 +14,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/ */
public interface ISweetAppletSubMsgService extends IService<SweetAppletSubMsg> { public interface ISweetAppletSubMsgService extends IService<SweetAppletSubMsg> {
ResponseDto sendMsg(Integer type, String targetId); ResponseDto sendMsg(Integer type);
ResponseDto sendOfActivityType(Integer activityType, String targetId, Integer timeType);
ResponseDto sendOfMid(String midList, String targetId, Integer timeType);
ResponseDto<Boolean> create(String openId, String templateId, String targetId, Integer appletType, Integer activityType); ResponseDto<Boolean> create(String openId, String unionId, String templateId, String targetId, Integer appletType, Integer activityType);
ResponseDto sendOfMid(Integer type, String midList, String targetId);
} }
...@@ -80,6 +80,11 @@ public class SweetWechatUsersVo implements Serializable, Cloneable { ...@@ -80,6 +80,11 @@ public class SweetWechatUsersVo implements Serializable, Cloneable {
*/ */
private String subscribeScene; private String subscribeScene;
/**
* 是否取消 1正常 2已取消
*/
private Integer isCancel;
/** /**
* 创建时间 * 创建时间
*/ */
......
...@@ -29,6 +29,7 @@ import org.springframework.data.mongodb.core.MongoTemplate; ...@@ -29,6 +29,7 @@ import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* <p> * <p>
...@@ -85,7 +86,42 @@ public class AdminUpushServiceImpl extends ServiceImpl<AdminUpushMapper, AdminUp ...@@ -85,7 +86,42 @@ public class AdminUpushServiceImpl extends ServiceImpl<AdminUpushMapper, AdminUp
adminUpushMapper.insert(adminUpush); adminUpushMapper.insert(adminUpush);
// 处理缓存数据 // 处理缓存数据
AdminUpushVo adminUpushVo = new AdminUpushVo(); List<AdminUpush> pushListIos = adminUpushMapper.selectList(
Wrappers.lambdaQuery(AdminUpush.class)
.in(AdminUpush::getPushRange, 1, 2)
.orderByDesc(AdminUpush::getPushTime)
.last("LIMIT 20")
);
LinkedList<AdminUpushVo> pushLinkedIos = new LinkedList<>();
for (AdminUpush upush : pushListIos) {
AdminUpushVo adminUpushVo = AdminUpushVo.getNew();
BeanUtils.copyProperties(upush, adminUpushVo);
pushLinkedIos.add(adminUpushVo);
}
List<AdminUpush> pushListAndroid = adminUpushMapper.selectList(
Wrappers.lambdaQuery(AdminUpush.class)
.in(AdminUpush::getPushRange, 1, 3)
.orderByDesc(AdminUpush::getPushTime)
.last("LIMIT 20")
);
LinkedList<AdminUpushVo> pushLinkedAndroid = new LinkedList<>();
for (AdminUpush upush : pushListAndroid) {
AdminUpushVo adminUpushVo = AdminUpushVo.getNew();
BeanUtils.copyProperties(upush, adminUpushVo);
pushLinkedAndroid.add(adminUpushVo);
}
String redisKeyIos = KylinRedisConst.ADMIN_UPUSH_LIST_IOS;
String redisKeyAndroid = KylinRedisConst.ADMIN_UPUSH_LIST_ANDROID;
if (upushParam.getPushRange() == 1) { // all
redisDataSourceUtil.getRedisKylinUtil().set(redisKeyIos, pushLinkedIos);
redisDataSourceUtil.getRedisKylinUtil().set(redisKeyAndroid, pushLinkedAndroid);
} else if (upushParam.getPushRange() == 2) { // ios
redisDataSourceUtil.getRedisKylinUtil().set(redisKeyIos, pushLinkedIos);
} else if (upushParam.getPushRange() == 3) { // android
redisDataSourceUtil.getRedisKylinUtil().set(redisKeyAndroid, pushLinkedAndroid);
}
/*AdminUpushVo adminUpushVo = new AdminUpushVo();
BeanUtils.copyProperties(adminUpush, adminUpushVo); BeanUtils.copyProperties(adminUpush, adminUpushVo);
adminUpushVo.setMessageType(2); adminUpushVo.setMessageType(2);
adminUpushVo.setSpecifyType(2); // 这里暂时写死就行 如果以后改需求再处理 adminUpushVo.setSpecifyType(2); // 这里暂时写死就行 如果以后改需求再处理
...@@ -136,7 +172,7 @@ public class AdminUpushServiceImpl extends ServiceImpl<AdminUpushMapper, AdminUp ...@@ -136,7 +172,7 @@ public class AdminUpushServiceImpl extends ServiceImpl<AdminUpushMapper, AdminUp
redisDataSourceUtil.getRedisKylinUtil().set(redisKeyIos, pushList); redisDataSourceUtil.getRedisKylinUtil().set(redisKeyIos, pushList);
} else if(upushParam.getPushRange() == 3) { // android } else if(upushParam.getPushRange() == 3) { // android
redisDataSourceUtil.getRedisKylinUtil().set(redisKeyAndroid, pushList); redisDataSourceUtil.getRedisKylinUtil().set(redisKeyAndroid, pushList);
} }*/
// 推送 // 推送
if (adminUpush.getIsPush() == 1) { if (adminUpush.getIsPush() == 1) {
......
package com.liquidnet.service.sweet.dto;
import lombok.Data;
@Data
public class SweetAppletSubMsgOfTypeDto {
private String targetId;
}
package com.liquidnet.service.sweet.dto;
import lombok.Data;
@Data
public class SweetWechatUsersDoTaskDto {
private String unionId;
private String userId;
private String purePhoneNumber;
}
\ No newline at end of file
...@@ -2,11 +2,12 @@ package com.liquidnet.service.sweet.entity; ...@@ -2,11 +2,12 @@ package com.liquidnet.service.sweet.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/** /**
* <p> * <p>
* 小程序订阅消息记录表 * 小程序订阅消息记录表
...@@ -17,7 +18,7 @@ import lombok.EqualsAndHashCode; ...@@ -17,7 +18,7 @@ import lombok.EqualsAndHashCode;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class SweetAppletSubMsg implements Serializable { public class SweetAppletSubMsg implements Serializable, Cloneable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -69,5 +70,14 @@ public class SweetAppletSubMsg implements Serializable { ...@@ -69,5 +70,14 @@ public class SweetAppletSubMsg implements Serializable {
*/ */
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
private static final SweetAppletSubMsg obj = new SweetAppletSubMsg();
public static SweetAppletSubMsg getNew() {
try {
return (SweetAppletSubMsg) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetAppletSubMsg();
}
}
} }
...@@ -94,6 +94,11 @@ public class SweetWechatUsers implements Serializable { ...@@ -94,6 +94,11 @@ public class SweetWechatUsers implements Serializable {
*/ */
private String subscribeScene; private String subscribeScene;
/**
* 是否取消 1正常 2已取消
*/
private Integer isCancel;
/** /**
* 创建时间 * 创建时间
*/ */
......
package com.liquidnet.service.sweet.mapper; package com.liquidnet.service.sweet.mapper;
import com.liquidnet.service.sweet.dto.SweetAppletSubMsgOfTypeDto;
import com.liquidnet.service.sweet.entity.SweetAppletSubMsg; import com.liquidnet.service.sweet.entity.SweetAppletSubMsg;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/** /**
* <p> * <p>
...@@ -13,4 +18,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -13,4 +18,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface SweetAppletSubMsgMapper extends BaseMapper<SweetAppletSubMsg> { public interface SweetAppletSubMsgMapper extends BaseMapper<SweetAppletSubMsg> {
@Select({
"select target_id as targetId " +
"from sweet_applet_sub_msg " +
"where is_push = 1 " +
"and activity_type = #{type} " +
"group by target_id"
})
List<SweetAppletSubMsgOfTypeDto> selectListOfType(@Param("type") Integer type);
} }
package com.liquidnet.service.sweet.mapper; package com.liquidnet.service.sweet.mapper;
import com.liquidnet.service.sweet.dto.SweetWechatUsersDoTaskDto;
import com.liquidnet.service.sweet.entity.SweetWechatUsers; import com.liquidnet.service.sweet.entity.SweetWechatUsers;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/** /**
* <p> * <p>
...@@ -13,4 +18,25 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -13,4 +18,25 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface SweetWechatUsersMapper extends BaseMapper<SweetWechatUsers> { public interface SweetWechatUsersMapper extends BaseMapper<SweetWechatUsers> {
@Select({
"select a.union_id as unionId, b.user_id as userId, b.pure_phone_number as purePhoneNumber " +
"from sweet_wechat_users as a" +
" inner join sweet_applet_users as b on a.union_id = b.union_id" +
" left join (select * from stone_score_logs where content = '关注摩登天空服务号') as ssu on ssu.uid = b.user_id " +
"where a.type = 2 " +
"and ssu.content is null " +
"order by a.created_at desc " +
"limit #{offset}"
})
List<SweetWechatUsersDoTaskDto> selectListDo(@Param("offset") int offset);
@Select({
"select count(*) " +
"from sweet_wechat_users as a" +
" inner join sweet_applet_users as b on a.union_id = b.union_id" +
" left join (select * from stone_score_logs where content = '关注摩登天空服务号') as ssu on ssu.uid = b.user_id " +
"where a.type = 2 " +
"and ssu.content is null "
})
int selectListDoCount();
} }
...@@ -18,6 +18,6 @@ public interface FeignSweetWechatClient { ...@@ -18,6 +18,6 @@ public interface FeignSweetWechatClient {
ResponseDto send(); ResponseDto send();
@GetMapping("sweet/appletSubMsg/send") @GetMapping("sweet/appletSubMsg/send")
ResponseDto sendSubMsg(@RequestParam("type") Integer type, @RequestParam("targetId") String targetId); ResponseDto sendSubMsg(@RequestParam("type") Integer type);
} }
...@@ -40,15 +40,12 @@ public class SweetWechatTaskHandler { ...@@ -40,15 +40,12 @@ public class SweetWechatTaskHandler {
try { try {
String jobParam = XxlJobHelper.getJobParam();//执行参数 String jobParam = XxlJobHelper.getJobParam();//执行参数
log.info("jobParam = " + jobParam); log.info("jobParam = " + jobParam);
String[] paramArray = jobParam.split(":"); String[] paramArray = jobParam.split(",");
ReturnT<String> success = ReturnT.SUCCESS; ReturnT<String> success = ReturnT.SUCCESS;
for (String typeAndTargetId : paramArray) { for (String type : paramArray) {
String[] typeAndTargetIdArray = typeAndTargetId.split(","); Object data = feignSweetWechatClient.sendSubMsg(Integer.parseInt(type)).getData();
Integer type = Integer.parseInt(typeAndTargetIdArray[0]);
String targetId = typeAndTargetIdArray[1];
Object data = feignSweetWechatClient.sendSubMsg(type, targetId).getData();
log.info("sendSubMsgHandler:结果:{}", data); log.info("sendSubMsgHandler:结果:{}", data);
success.setMsg(String.valueOf(data)); success.setMsg(String.valueOf(data));
} }
......
drop TABLE if exists `kylin_perform_sub`;
CREATE TABLE `kylin_perform_sub`
(
`mid` int(11) NOT NULL AUTO_INCREMENT,
`perform_sub_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'perform_sub_id',
`performance_id` varchar(255) NOT NULL DEFAULT '' COMMENT '演出id',
`user_id` varchar(255) NOT NULL DEFAULT '' COMMENT '用户id',
`user_name` varchar(255) NOT NULL DEFAULT '' COMMENT '用户昵称',
`user_mobile` varchar(255) NOT NULL DEFAULT '' COMMENT '用户手机号',
`source_type` tinyint NOT NULL DEFAULT 0 COMMENT '来源 1小程序 2h5',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
KEY `idx_perform_sub_id` (`perform_sub_id`),
KEY `idx_perform_sub_performance_id` (`performance_id`),
KEY `idx_perform_sub_user_id` (`user_id`),
PRIMARY KEY (`mid`)
) ENGINE = InnoDB
DEFAULT CHARSET utf8mb4
COLLATE utf8mb4_unicode_ci COMMENT '演出预约表';
\ No newline at end of file
...@@ -261,4 +261,5 @@ public class KylinPerformancesController { ...@@ -261,4 +261,5 @@ public class KylinPerformancesController {
public ResponseDto<String> addLackRegister(@RequestParam("useScope") Integer useScope, @RequestParam("busiId") String busiId) { public ResponseDto<String> addLackRegister(@RequestParam("useScope") Integer useScope, @RequestParam("busiId") String busiId) {
return iKylinPerformancesService.getPerformanceIdByInfo(useScope, busiId); return iKylinPerformancesService.getPerformanceIdByInfo(useScope, busiId);
} }
} }
package com.liquidnet.service.kylin.controller;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.service.IKylinPerformancesService;
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.*;
/**
* <p>
* 演出 前端控制器
* </p>
*
* @author jiangxiulong
* @since 2022-02-25
*/
@Api(tags = "前端-演出其他接口")
@RestController
@RequestMapping("performanceOther")
@Slf4j
public class KylinPerformancesOtherController {
@Autowired
private IKylinPerformancesService iKylinPerformancesService;
@PostMapping("subscribe")
@ApiOperation("演出预约")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "performancesId", value = "演出id", required = true),
@ApiImplicitParam(type = "form", dataType = "Integer", name = "sourceType", value = "来源 1小程序 2h5", required = true)
})
public ResponseDto<String> subscribe(
@RequestParam() String performancesId,
@RequestParam() Integer sourceType
) {
return iKylinPerformancesService.subscribe(performancesId, sourceType);
}
@GetMapping("isSubscribe")
@ApiOperation("是否预约演出")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "performancesId", value = "演出id", required = true)
})
public ResponseDto<Integer> isSubscribe(@RequestParam() String performancesId) {
return iKylinPerformancesService.isSubscribe(performancesId);
}
}
package com.liquidnet.service.kylin.service.impl; package com.liquidnet.service.kylin.service.impl;
import com.liquidnet.commons.lang.CommonConst; import com.liquidnet.commons.lang.CommonConst;
import com.liquidnet.commons.lang.util.CollectionUtil; import com.liquidnet.commons.lang.util.*;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.DistanceUtil;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.UserPathDto; import com.liquidnet.service.base.UserPathDto;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.constant.KylinPerformanceStatusEnum; import com.liquidnet.service.kylin.constant.KylinPerformanceStatusEnum;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst; import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.param.PerformanceMemberAuditParam;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo; import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo; import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo; import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.partner.ExpressModuleVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketExpressModuleVo; import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketExpressModuleVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketPartnerVo; import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketPartnerVo;
import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo; import com.liquidnet.service.kylin.dto.vo.partner.KylinTicketTimesPartnerVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo;
import com.liquidnet.service.kylin.dto.vo.returns.PayDetailVo; import com.liquidnet.service.kylin.dto.vo.returns.PayDetailVo;
import com.liquidnet.service.kylin.service.IKylinPerformancesService; import com.liquidnet.service.kylin.service.IKylinPerformancesService;
import com.liquidnet.service.kylin.utils.DataUtils; import com.liquidnet.service.kylin.utils.DataUtils;
import com.liquidnet.service.kylin.utils.ObjectUtil; import com.liquidnet.service.kylin.utils.ObjectUtil;
import com.liquidnet.service.kylin.utils.QueueUtils; import com.liquidnet.service.kylin.utils.QueueUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.bson.Document; import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
...@@ -685,4 +681,34 @@ public class KylinPerformancesServiceImpl implements IKylinPerformancesService { ...@@ -685,4 +681,34 @@ public class KylinPerformancesServiceImpl implements IKylinPerformancesService {
return ResponseDto.failure(); return ResponseDto.failure();
} }
} }
@Override
public ResponseDto<String> subscribe(String performancesId, Integer sourceType) {
try {
Map claims = CurrentUtil.getTokenClaims();
String uid = StringUtils.defaultString(((String) claims.get(CurrentUtil.TOKEN_SUB)), "");
String nickname = StringUtils.defaultString(((String) claims.get(CurrentUtil.TOKEN_NICKNAME)), "");
String mobile = StringUtils.defaultString(((String) claims.get(CurrentUtil.TOKEN_MOBILE)), "");
queueUtils.sendMsgByRedis(
MQConst.KylinQueue.SQL_PERFORMANCE_LACK.getKey(),
SqlMapping.get(
"kylin_perform_sub.insert",
new Object[]{
IDGenerator.nextSnowId(), performancesId, uid, nickname, mobile, sourceType
}
));
dataUtils.setSubscribe(uid, performancesId);
return ResponseDto.success("预约成功");
} catch (Exception e) {
log.error("演出预约 [performancesId:{}, uid:{}, e:{}]", performancesId, CurrentUtil.getCurrentUid(), e);
return ResponseDto.success("预约失败");
}
}
@Override
public ResponseDto<Integer> isSubscribe(String performancesId) {
String uid = CurrentUtil.getCurrentUid();
Integer subscribe = dataUtils.getSubscribe(uid, performancesId);
return ResponseDto.success(subscribe);
}
} }
...@@ -11,6 +11,9 @@ import org.springframework.data.mongodb.core.MongoTemplate; ...@@ -11,6 +11,9 @@ import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Iterator;
import java.util.LinkedList; import java.util.LinkedList;
/** /**
...@@ -50,7 +53,15 @@ public class KylinUpushServiceImpl { ...@@ -50,7 +53,15 @@ public class KylinUpushServiceImpl {
} else { } else {
LinkedList<AdminUpushVo> pushList = (LinkedList<AdminUpushVo>) adminUpushVo; LinkedList<AdminUpushVo> pushList = (LinkedList<AdminUpushVo>) adminUpushVo;
Integer num = 0; Integer num = 0;
for (AdminUpushVo info : pushList) { for (Iterator<AdminUpushVo> it = pushList.iterator(); it.hasNext(); ) {
AdminUpushVo info = it.next();
String pushTime = info.getPushTime();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime pushTimeL = LocalDateTime.parse(pushTime, formatter);
if (pushTimeL.isAfter(LocalDateTime.now())) {
it.remove();
continue;
}
if (num == 0) { if (num == 0) {
redisUtil.set(KylinRedisConst.ADMIN_UPUSH_LIST_READ_UID.concat(uid), info.getUpushId()); redisUtil.set(KylinRedisConst.ADMIN_UPUSH_LIST_READ_UID.concat(uid), info.getUpushId());
} }
...@@ -92,11 +103,17 @@ public class KylinUpushServiceImpl { ...@@ -92,11 +103,17 @@ public class KylinUpushServiceImpl {
Integer num = 0; Integer num = 0;
String pushId = (String) obj; String pushId = (String) obj;
for (AdminUpushVo info : pushList) { for (Iterator<AdminUpushVo> it = pushList.iterator(); it.hasNext(); ) {
AdminUpushVo info = it.next();
if (info.getUpushId().equals(pushId)) { if (info.getUpushId().equals(pushId)) {
break; break;
} else { } else {
num++; String pushTime = info.getPushTime();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime pushTimeL = LocalDateTime.parse(pushTime, formatter);
if (pushTimeL.isBefore(LocalDateTime.now())) {
num++;
}
} }
} }
return num; return num;
......
...@@ -3,8 +3,6 @@ package com.liquidnet.service.kylin.utils; ...@@ -3,8 +3,6 @@ package com.liquidnet.service.kylin.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil; import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IPUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.kylin.constant.KylinRedisConst; import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst; import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo; import com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo;
...@@ -32,7 +30,6 @@ import org.springframework.util.CollectionUtils; ...@@ -32,7 +30,6 @@ import org.springframework.util.CollectionUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Component @Component
...@@ -871,4 +868,24 @@ public class DataUtils { ...@@ -871,4 +868,24 @@ public class DataUtils {
return (int) obj; return (int) obj;
} }
} }
public void setSubscribe(String uid, String performancesId) {
String redisKey = KylinRedisConst.REDIS_KEY_KYLIN_PERFORM_SUBSCRIBE
.concat(uid)
.concat(":")
.concat(performancesId);
redisUtil.set(redisKey, 1);
}
public Integer getSubscribe(String uid, String performancesId) {
String redisKey = KylinRedisConst.REDIS_KEY_KYLIN_PERFORM_SUBSCRIBE
.concat(uid)
.concat(":")
.concat(performancesId);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return 0;
} else {
return (Integer) obj;
}
}
} }
...@@ -31,3 +31,5 @@ kylin_order_ticket_status.transfer.update=UPDATE kylin_order_ticket_status SET t ...@@ -31,3 +31,5 @@ kylin_order_ticket_status.transfer.update=UPDATE kylin_order_ticket_status SET t
kylin_order_ticket_relation.transfer.update=UPDATE kylin_order_ticket_relations SET transfer_uid = ?, transfer_id = ? ,updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null) kylin_order_ticket_relation.transfer.update=UPDATE kylin_order_ticket_relations SET transfer_uid = ?, transfer_id = ? ,updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ? or updated_at is null)
# ------------------------ 订单补充入场人 ---------------------------- # ------------------------ 订单补充入场人 ----------------------------
kylin_order_refund_entities.supplementEnter=UPDATE kylin_order_ticket_entities SET enter_type = ?,enter_name = ?,enter_mobile = ?,enter_id_code = ?,updated_at = ? WHERE order_ticket_entities_id = ? kylin_order_refund_entities.supplementEnter=UPDATE kylin_order_ticket_entities SET enter_type = ?,enter_name = ?,enter_mobile = ?,enter_id_code = ?,updated_at = ? WHERE order_ticket_entities_id = ?
# ------------------------ 演出预约 ----------------------------
kylin_perform_sub.insert=INSERT INTO kylin_perform_sub (perform_sub_id,performance_id,user_id,user_name,user_mobile,source_type) VALUES (?,?,?,?,?,?)
package com.liquidnet.service.platform.controller.sweet; package com.liquidnet.service.platform.controller.sweet;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.feign.stone.api.FeignStoneIntegralClient; import com.liquidnet.service.feign.stone.api.FeignStoneIntegralClient;
import com.liquidnet.service.platform.utils.DataUtils; import com.liquidnet.service.sweet.dto.SweetWechatUsersDoTaskDto;
import com.liquidnet.service.sweet.entity.SweetWechatUsers;
import com.liquidnet.service.sweet.mapper.SweetWechatUsersMapper; import com.liquidnet.service.sweet.mapper.SweetWechatUsersMapper;
import com.liquidnet.service.sweet.vo.SweetAppletUsersVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -15,7 +12,6 @@ import org.springframework.web.bind.annotation.GetMapping; ...@@ -15,7 +12,6 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -27,7 +23,7 @@ import java.util.List; ...@@ -27,7 +23,7 @@ import java.util.List;
* @author jiangxiulong * @author jiangxiulong
* @since 2021-12-28 * @since 2021-12-28
*/ */
@Api(tags = "关注任务加积分脚本") @Api(tags = "关注任务加积分")
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("followDoTask") @RequestMapping("followDoTask")
...@@ -39,50 +35,30 @@ public class TaskController { ...@@ -39,50 +35,30 @@ public class TaskController {
@Autowired @Autowired
private FeignStoneIntegralClient feignStoneIntegralClient; private FeignStoneIntegralClient feignStoneIntegralClient;
@Autowired
private DataUtils dataUtils;
@GetMapping("doTask") @GetMapping("doTask")
@ApiOperation("退款回调") @ApiOperation("关注任务加积分")
public ResponseDto doTask() { public ResponseDto doTask() {
int size = 1000; int size = 1000;
LocalDateTime localDateTime = LocalDateTime.now(); int doCount = usersMapper.selectListDoCount();
LocalDateTime newTime = localDateTime.minusMinutes(10);
// String timeStr = "2021-12-28 00:00:00";
// DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// LocalDateTime dateTime = LocalDateTime.parse(timeStr, df);
// 获取总记录数
Integer count = usersMapper.selectCount(
Wrappers.lambdaQuery(SweetWechatUsers.class)
.gt(SweetWechatUsers::getCreatedAt, newTime)
.eq(SweetWechatUsers::getType, 2)
);
// 总page // 总page
int countPage = (int) Math.ceil(count / size); int countPage = (int) Math.ceil(doCount / size);
countPage = countPage + 1; countPage = countPage + 1;
for (int page = 0; page < countPage; page++) { for (int page = 0; page < countPage; page++) {
List<SweetWechatUsers> sweetWechatUsers = usersMapper.selectList( List<SweetWechatUsersDoTaskDto> users = usersMapper.selectListDo(size);
Wrappers.lambdaQuery(SweetWechatUsers.class) for (SweetWechatUsersDoTaskDto user : users) {
.gt(SweetWechatUsers::getCreatedAt, newTime)
.last("limit " + (page * size) + "," + ((page + 1) * size))
);
for (SweetWechatUsers info : sweetWechatUsers) {
try { try {
SweetAppletUsersVo sweetAppletUsers = dataUtils.getSweetAppletUsersOfUnionId(info.getUnionId()); log.info("批量处理领取关注公众号积分params:[uid={}]", user.getUserId());
if (sweetAppletUsers != null) { ResponseDto<HashMap<String, Object>> hashMapResponseDto = feignStoneIntegralClient.doTask(4, user.getUserId());
if (sweetAppletUsers.getUserId() != null && !sweetAppletUsers.getUserId().isEmpty()) { log.info("批量处理领取关注公众号积分处理结果:[{}] ", hashMapResponseDto.getData());
log.info("followDoTask userId:{}", sweetAppletUsers.getUserId());
ResponseDto<HashMap<String, Object>> hashMapResponseDto = feignStoneIntegralClient.doTask(4, sweetAppletUsers.getUserId());
//log.info("followDoTask res:{}", hashMapResponseDto);
}
}
} catch (Exception e) { } catch (Exception e) {
log.info("批量处理领取关注公众号积分失败:[errorMsg=[{}], [uid=[{}]", e.getMessage(), user.getUserId());
} }
} }
} }
return ResponseDto.success(); return ResponseDto.success();
} }
} }
\ No newline at end of file
...@@ -3,18 +3,25 @@ drop TABLE if exists `sweet_applet_sub_msg`; ...@@ -3,18 +3,25 @@ drop TABLE if exists `sweet_applet_sub_msg`;
CREATE TABLE `sweet_applet_sub_msg` CREATE TABLE `sweet_applet_sub_msg`
( (
`mid` bigint unsigned NOT NULL AUTO_INCREMENT, `mid` bigint unsigned NOT NULL AUTO_INCREMENT,
`msg_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'msg_id', `msg_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'msg_id',
`open_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'open_id', `open_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'open_id',
`template_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'template_id', `template_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'template_id',
`target_id` varchar(255) NOT NULL DEFAULT '' COMMENT '目标id 显示是演出id', `target_id` varchar(255) NOT NULL DEFAULT '' COMMENT '目标id 显示是演出id',
`applet_type` tinyint NOT NULL DEFAULT 0 COMMENT '1草莓 2五百里 3mdsk 4正在 5跳飞船音乐节', `applet_type` tinyint NOT NULL DEFAULT 0 COMMENT '1草莓 2五百里 3mdsk 4正在 5跳飞船音乐节',
`activity_type` tinyint NOT NULL DEFAULT 0 COMMENT '活动类型', `activity_type` tinyint NOT NULL DEFAULT 0 COMMENT '活动类型',
`is_push` tinyint NOT NULL DEFAULT 1 COMMENT '是否推送 1未推送 2已推送', `is_push` tinyint NOT NULL DEFAULT 1 COMMENT '是否推送 1未推送 2已推送',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间', `updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`mid`), PRIMARY KEY (`mid`),
KEY `sweet_applet_sub_msg_id` (`msg_id`) KEY `sweet_applet_sub_msg_id` (`msg_id`)
) ENGINE = InnoDB ) ENGINE = InnoDB
DEFAULT CHARSET utf8mb4 DEFAULT CHARSET utf8mb4
COLLATE utf8mb4_unicode_ci COLLATE utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT '小程序订阅消息记录表'; ROW_FORMAT = DYNAMIC COMMENT '小程序订阅消息记录表';
\ No newline at end of file
alter table sweet_applet_sub_msg
add union_id varchar(255) NOT NULL DEFAULT '' COMMENT 'union_id' after open_id;
alter table sweet_applet_sub_msg
add user_id varchar(255) NOT NULL DEFAULT '' COMMENT 'user_id' after union_id;
ALTER TABLE sweet_applet_sub_msg
MODIFY activity_type smallint NOT NULL DEFAULT 0 COMMENT '活动类型';
\ No newline at end of file
...@@ -441,6 +441,7 @@ CREATE TABLE `sweet_wechat_users` ...@@ -441,6 +441,7 @@ CREATE TABLE `sweet_wechat_users`
ROW_FORMAT = DYNAMIC COMMENT '正在现场服务号关注事件储存用户信息表'; ROW_FORMAT = DYNAMIC COMMENT '正在现场服务号关注事件储存用户信息表';
ALTER TABLE `sweet_wechat_users` ADD INDEX idx_wechat_open_id (`open_id`); ALTER TABLE `sweet_wechat_users` ADD INDEX idx_wechat_open_id (`open_id`);
ALTER TABLE `sweet_wechat_users` ADD INDEX idx_wechat_union_id (`union_id`); ALTER TABLE `sweet_wechat_users` ADD INDEX idx_wechat_union_id (`union_id`);
alter table sweet_wechat_users add is_cancel tinyint NOT NULL DEFAULT 1 COMMENT '是否取消 1正常 2已取消' after subscribe_scene;
-- 小程序登录记录用户解密后信息表 -- 小程序登录记录用户解密后信息表
drop TABLE if exists `sweet_applet_users`; drop TABLE if exists `sweet_applet_users`;
......
...@@ -31,22 +31,44 @@ public class SweetAppletSubMsgController { ...@@ -31,22 +31,44 @@ public class SweetAppletSubMsgController {
private SweetAppletSubMsgServiceImpl subMsgService; private SweetAppletSubMsgServiceImpl subMsgService;
@GetMapping("send") @GetMapping("send")
@ApiOperation("发送模版消息") @ApiOperation("发送订阅消息,定时任务使用")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "Integer", name = "type", value = "活动类型", required = true)
})
public ResponseDto send( public ResponseDto send(
@RequestParam Integer type, @RequestParam Integer type
@RequestParam String targetId
) { ) {
return subMsgService.sendMsg(type, targetId); return subMsgService.sendMsg(type);
}
@GetMapping("sendOfActivityType")
@ApiOperation("发送订阅消息OfActivityType,特殊情况手动调用使用")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "Integer", name = "activityType", value = "活动类型", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "targetId", value = "演出ID 作为查询条件", required = true),
@ApiImplicitParam(type = "form", dataType = "Integer", name = "timeType", value = "是否判断演出时间 1判断 2不判断"),
})
public ResponseDto sendOfActivityType(
@RequestParam Integer activityType,
@RequestParam String targetId,
@RequestParam(defaultValue = "1") Integer timeType
) {
return subMsgService.sendOfActivityType(activityType, targetId, timeType);
} }
@PostMapping("sendOfMid") @PostMapping("sendOfMid")
@ApiOperation("发送模版消息OfMid") @ApiOperation("发送订阅消息OfMid,特殊情况手动调用使用")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "midList", value = "mid列表逗号分割", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "targetId", value = "演出ID 不作为查询条件", required = true),
@ApiImplicitParam(type = "form", dataType = "Integer", name = "timeType", value = "是否判断演出时间 1判断 2不判断"),
})
public ResponseDto sendOfMid( public ResponseDto sendOfMid(
@RequestParam Integer type,
@RequestParam String midList, @RequestParam String midList,
@RequestParam String targetId @RequestParam() String targetId,
@RequestParam(defaultValue = "1") Integer timeType
) { ) {
return subMsgService.sendOfMid(type, midList, targetId); return subMsgService.sendOfMid(midList, targetId, timeType);
} }
// 一次订阅 可以多次发 直到用户取消订阅 所以正规做法应该是记录订阅模版 不关联任何推送数据 等推送的时候查是否订阅某模版 // 一次订阅 可以多次发 直到用户取消订阅 所以正规做法应该是记录订阅模版 不关联任何推送数据 等推送的时候查是否订阅某模版
...@@ -56,21 +78,22 @@ public class SweetAppletSubMsgController { ...@@ -56,21 +78,22 @@ public class SweetAppletSubMsgController {
@PostMapping("create") @PostMapping("create")
@ApiOperation("添加订阅记录") @ApiOperation("添加订阅记录")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "openId", value = "openId", required = true), @ApiImplicitParam(type = "form", dataType = "String", name = "openId", value = "对应小程序的openId", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "templateId", value = "templateId 多个用英文逗号分割", required = true), @ApiImplicitParam(type = "form", dataType = "String", name = "unionId", value = "对应小程序的unionId"),
@ApiImplicitParam(type = "form", dataType = "String", name = "templateId", value = "模版消息ID,多个用英文逗号分割", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "targetId", value = "演出id", required = true), @ApiImplicitParam(type = "form", dataType = "String", name = "targetId", value = "演出id", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "appletType", value = "1草莓 2五百里 3mdsk 4正在 5跳飞船音乐节", required = true), @ApiImplicitParam(type = "form", dataType = "Integer", name = "appletType", value = "小程序类型 1草莓 2五百里 3mdsk 4正在 5跳飞船音乐节", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "activityType", value = "活动类型", required = true), @ApiImplicitParam(type = "form", dataType = "Integer", name = "activityType", value = "活动类型", required = true),
}) })
public ResponseDto<Boolean> create( public ResponseDto<Boolean> create(
@RequestParam() String openId, @RequestParam() String openId,
@RequestParam(defaultValue = "") String unionId,
@RequestParam() String templateId, @RequestParam() String templateId,
@RequestParam() String targetId, @RequestParam() String targetId,
@RequestParam() Integer appletType, @RequestParam() Integer appletType,
@RequestParam() Integer activityType @RequestParam() Integer activityType
) { ) {
return subMsgService.create(openId, templateId, targetId, appletType, activityType); return subMsgService.create(openId, unionId, templateId, targetId, appletType, activityType);
} }
} }
...@@ -14,10 +14,10 @@ import me.chanjar.weixin.mp.api.WxMpMessageHandler; ...@@ -14,10 +14,10 @@ import me.chanjar.weixin.mp.api.WxMpMessageHandler;
import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
import me.chanjar.weixin.mp.bean.result.WxMpUser;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.Map; import java.util.Map;
...@@ -68,9 +68,9 @@ public class UnsubscribeHandler implements WxMpMessageHandler { ...@@ -68,9 +68,9 @@ public class UnsubscribeHandler implements WxMpMessageHandler {
redisUtils.delSweetWechatUsers(sweetWechatUsers.getUnionId(), openId, type); redisUtils.delSweetWechatUsers(sweetWechatUsers.getUnionId(), openId, type);
LinkedList<String> sqls = CollectionUtil.linkedListString(); LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("sweet_wechat_users.delete")); sqls.add(SqlMapping.get("sweet_wechat_users.update"));
sqlsDataA.add(new Object[]{ sqlsDataA.add(new Object[]{
sweetWechatUsers.getUnionId(), type 2, LocalDateTime.now(), sweetWechatUsers.getUnionId(), type
}); });
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_WECHAT_USER_INSERT.getKey(), queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_WECHAT_USER_INSERT.getKey(),
SqlMapping.gets(sqls, sqlsDataA)); SqlMapping.gets(sqls, sqlsDataA));
......
...@@ -180,7 +180,10 @@ public class SweetWechatLoginServiceImpl { ...@@ -180,7 +180,10 @@ public class SweetWechatLoginServiceImpl {
String purePhone = sweetAppletUsersVo.getPurePhoneNumber(); String purePhone = sweetAppletUsersVo.getPurePhoneNumber();
String otp = DESUtils.DES().encrypt(purePhone + LocalDateTime.now().toEpochSecond(ZoneOffset.UTC)); String otp = DESUtils.DES().encrypt(purePhone + LocalDateTime.now().toEpochSecond(ZoneOffset.UTC));
ResponseDto<AdamLoginInfoVo> adamUserInfoVoResponseDto = feignAdamBaseClient.loginBySilentMobile(purePhone, otp); ResponseDto<AdamLoginInfoVo> adamUserInfoVoResponseDto = feignAdamBaseClient.loginBySilentMobile(purePhone, otp);
return adamUserInfoVoResponseDto; AdamLoginInfoVo adamLoginInfoVo = adamUserInfoVoResponseDto.getData();
adamLoginInfoVo.setWechatOpenid(sweetAppletUsersVo.getOpenId());
adamLoginInfoVo.setWechatUnionid(sweetAppletUsersVo.getUnionId());
return ResponseDto.success(adamLoginInfoVo);
} catch (Exception e) { } catch (Exception e) {
log.error("userInfoMaError Exception:{}", e); log.error("userInfoMaError Exception:{}", e);
return ResponseDto.failure("获取用户信息失败~"); return ResponseDto.failure("获取用户信息失败~");
......
...@@ -35,6 +35,7 @@ public class RedisActivityUtils { ...@@ -35,6 +35,7 @@ public class RedisActivityUtils {
String redisKey = SweetConstant.REDIS_KEY_SWEET_ACTIVITY_END_TIME.concat(type); String redisKey = SweetConstant.REDIS_KEY_SWEET_ACTIVITY_END_TIME.concat(type);
redisUtil.set(redisKey, endTime); redisUtil.set(redisKey, endTime);
} }
public LocalDateTime getEndTime(String type) { public LocalDateTime getEndTime(String type) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_ACTIVITY_END_TIME.concat(type); String redisKey = SweetConstant.REDIS_KEY_SWEET_ACTIVITY_END_TIME.concat(type);
Object obj = redisUtil.get(redisKey); Object obj = redisUtil.get(redisKey);
......
...@@ -30,7 +30,7 @@ sweet_luck_draw.insert=INSERT INTO sweet_luck_draw (mobile,union_id,luck_draw_nu ...@@ -30,7 +30,7 @@ sweet_luck_draw.insert=INSERT INTO sweet_luck_draw (mobile,union_id,luck_draw_nu
sweet_answer.insert=INSERT INTO sweet_answer (answer_id,phone,answer_json,img_url) VALUES (?,?,?,?) sweet_answer.insert=INSERT INTO sweet_answer (answer_id,phone,answer_json,img_url) VALUES (?,?,?,?)
# --------------------------提醒记录-------------------------- # --------------------------提醒记录--------------------------
sweet_remind.insert=INSERT INTO sweet_remind (remind_id,openId,unionId,performancesId) VALUES (?,?,?,?) sweet_remind.insert=INSERT INTO sweet_remind (remind_id,openId,unionId,performancesId) VALUES (?,?,?,?)
sweet_applet_sub_msg.insert=INSERT INTO sweet_applet_sub_msg (msg_id,open_id,template_id,target_id,applet_type,activity_type) VALUES (?,?,?,?,?,?) sweet_applet_sub_msg.insert=INSERT INTO sweet_applet_sub_msg (msg_id,open_id,union_id,user_id,template_id,target_id,applet_type,activity_type) VALUES (?,?,?,?,?,?,?,?)
# --------------------------用户投票记录-------------------------- # --------------------------用户投票记录--------------------------
sweet_city_vote.insert=INSERT INTO sweet_city_vote (vote_id,phone,openId,unionId,type,city_code,city_name,day_time) VALUES (?,?,?,?,?,?,?,?) sweet_city_vote.insert=INSERT INTO sweet_city_vote (vote_id,phone,openId,unionId,type,city_code,city_name,day_time) VALUES (?,?,?,?,?,?,?,?)
sweet_city_vote_stat.insert=INSERT INTO sweet_city_vote_stat (stat_id,city_code,city_name,vote_num,type) VALUES (?,?,?,?,?) sweet_city_vote_stat.insert=INSERT INTO sweet_city_vote_stat (stat_id,city_code,city_name,vote_num,type) VALUES (?,?,?,?,?)
...@@ -48,6 +48,7 @@ sweet_applet_users.insert=INSERT INTO sweet_applet_users (applet_user_id,user_id ...@@ -48,6 +48,7 @@ sweet_applet_users.insert=INSERT INTO sweet_applet_users (applet_user_id,user_id
# --------------------------微信用户信息表公众号-------------------------- # --------------------------微信用户信息表公众号--------------------------
sweet_wechat_users.insert=INSERT INTO sweet_wechat_users (wechat_user_id,type,open_id,union_id,nickname,sex_desc,sex,head_img_url,language,country,province,city,subscribe_time,subscribe_scene) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?) sweet_wechat_users.insert=INSERT INTO sweet_wechat_users (wechat_user_id,type,open_id,union_id,nickname,sex_desc,sex,head_img_url,language,country,province,city,subscribe_time,subscribe_scene) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)
sweet_wechat_users.delete=DELETE FROM sweet_wechat_users WHERE union_id = ? and type = ? sweet_wechat_users.delete=DELETE FROM sweet_wechat_users WHERE union_id = ? and type = ?
sweet_wechat_users.update=UPDATE sweet_wechat_users SET is_cancel = ?, updated_at = ? WHERE union_id = ? AND type = ? AND is_cancel = 1
#---------------------------音乐节活动海报-------------------------------- #---------------------------音乐节活动海报--------------------------------
sweet_strawberry_poster_user=INSERT INTO sweet_strawberry_poster(open_id,poster_id,union_id,nickname,city_name,city_code,custom_text,created_at,updated_at) VALUES (?,?,?,?,?,?,?,?,?) sweet_strawberry_poster_user=INSERT INTO sweet_strawberry_poster(open_id,poster_id,union_id,nickname,city_name,city_code,custom_text,created_at,updated_at) VALUES (?,?,?,?,?,?,?,?,?)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment