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

Commit dc78ab4d authored by sunyuntian's avatar sunyuntian

划卡计数调任务积分接口

parent 502ce7e8
......@@ -23,8 +23,14 @@ public class AdamChimeUinfoDto implements Serializable, Cloneable {
private String birthday;
@ApiModelProperty(position = 6, value = "签名")
private String signature;
@ApiModelProperty(position = 7, value = "常住地/区域")
@ApiModelProperty(position = 7, value = "常住地/区域~ 已废除,参见[province、city、county]")
private String area;
@ApiModelProperty(position = 8, value = "常住地/省 ~ 替换原字段[area]")
private String province;
@ApiModelProperty(position = 9, value = "常住地/市 ~ 替换原字段[area]")
private String city;
@ApiModelProperty(position = 10, value = "常住地/区县 ~ 替换原字段[area]")
private String county;
private static final AdamChimeUinfoDto obj = new AdamChimeUinfoDto();
......@@ -46,6 +52,10 @@ public class AdamChimeUinfoDto implements Serializable, Cloneable {
this.setBirthday(source.getBirthday());
this.setSignature(source.getSignature());
this.setArea(source.getArea());
//
this.setProvince(source.getProvince());
this.setCity(source.getCity());
this.setCounty(source.getCounty());
return this;
}
}
......@@ -94,6 +94,11 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable {
this.setSex(JsonUtils.fromJson(source.getSex(), AdamTagVo.class));
this.setBirthday(source.getBirthday());
this.setArea(source.getArea());
this.setProvince(source.getProvince());
this.setCity(source.getCity());
this.setCounty(source.getCounty());
//
this.setSignature(source.getSignature());
this.setAvatar(source.getAvatar());
......
......@@ -20,6 +20,9 @@ public class ChimeConstant {
public static final String REDIS_CITY_NAME_NOT_ALLOW = PREFIX.concat("per:cityName:notAllow");
public static final String REDIS_PERFORMANCE_IDS_ALLOW = PREFIX.concat("per:performanceIds:allow");
public static final String REDIS_PERFORMANCE_IDS_NOT_ALLOW = PREFIX.concat("per:performanceIds:notAllow");
public static final String REDIS_USER_OPEN_NUM = PREFIX.concat("per:openNum:Allow");
public static final String REDIS_USER_TO_DOTASK = PREFIX.concat("per:toDotask:Allow");
public static String getNewUserId(){
return USER_ID_PREFIX + IDGenerator.nextTimeId();
}
......
package com.liquidnet.service.chime.dto;
import lombok.Data;
@Data
public class ChimeUserDoTask {
private String code;
private Object object;
private String message;
private Boolean success;
}
\ No newline at end of file
......@@ -33,12 +33,18 @@ public class ChimeUserInfoDto {
private String birthday;
@ApiModelProperty(position = 7, value = "签名")
private String signature;
@ApiModelProperty(position = 8, value = "常住地/区域")
@ApiModelProperty(position = 8, value = "常住地/区域 ~ 已废除,参见[province、city、county]")
private String area;
@ApiModelProperty(position = 9, value = "在场ID")
private String joinPerformanceId;
@ApiModelProperty(position = 10, value = "用户标签")
private List<ChimeUserTagDto> userTags;
@ApiModelProperty(position = 11, value = "常住地/省 ~ 替换原字段[area]")
private String province;
@ApiModelProperty(position = 12, value = "常住地/市 ~ 替换原字段[area]")
private String city;
@ApiModelProperty(position = 13, value = "常住地/区县 ~ 替换原字段[area]")
private String county;
private static final ChimeUserInfoDto obj = new ChimeUserInfoDto();
public static ChimeUserInfoDto getNew() {
......
......@@ -15,6 +15,11 @@ public class AdamUserInfoDto {
private String sex;
private String birthday;
private String area;
private String province;
private String city;
private String county;
private String signature;
private String avatar;
private String background;
......
......@@ -135,7 +135,10 @@ public class ChimePerformanceServiceImpl implements IChimePerformanceService {
dto.setUserCover(adamUserDto.getUserCover());
dto.setBirthday(adamUserDto.getBirthday());
dto.setSignature(adamUserDto.getSignature());
dto.setArea(adamUserDto.getArea());
dto.setProvince(adamUserDto.getProvince());
dto.setCity(adamUserDto.getCity());
dto.setCounty(adamUserDto.getCounty());
}
});
}
......
package com.liquidnet.service.chime.service.impl;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.dto.rsc.AdamChimeUinfoDto;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.chime.biz.ChimeUserBiz;
import com.liquidnet.service.chime.constant.ChimeConstant;
import com.liquidnet.service.chime.dto.ChimeUserInfoDto;
import com.liquidnet.service.chime.dto.ChimeUserRegisterReqDto;
import com.liquidnet.service.chime.dto.ChimeUserTagDto;
import com.liquidnet.service.chime.dto.ChimeUserUpdateReqDto;
import com.liquidnet.service.chime.dto.*;
import com.liquidnet.service.chime.service.IChimeUserService;
import com.liquidnet.service.chime.utils.DataUtils;
import com.liquidnet.service.chime.utils.DoTaskUtils;
import com.liquidnet.service.chime.utils.QueueUtils;
import com.liquidnet.service.chime.vo.mongo.ChimeUserInfoVo;
import com.liquidnet.service.chime.vo.mongo.ChimeUserOperLogVo;
import com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.MultiValueMap;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;
/**
......@@ -47,6 +46,9 @@ public class ChimeUserServiceImpl implements IChimeUserService {
@Autowired
private ChimeUserBiz chimeUserBiz;
@Autowired
private DoTaskUtils doTaskUtils;
@Override
public ChimeUserInfoVo createChimeUserInfo(ChimeUserRegisterReqDto reqDto) {
......@@ -118,6 +120,9 @@ public class ChimeUserServiceImpl implements IChimeUserService {
chimeUserInfoDto.setBirthday(adamChimeUinfoDto.getBirthday());
chimeUserInfoDto.setSignature(adamChimeUinfoDto.getSignature());
chimeUserInfoDto.setArea(adamChimeUinfoDto.getArea());
chimeUserInfoDto.setProvince(adamChimeUinfoDto.getProvince());
chimeUserInfoDto.setCity(adamChimeUinfoDto.getCity());
chimeUserInfoDto.setCounty(adamChimeUinfoDto.getCounty());
}
//获取标签
List<ChimeUserTagDto> userTagDtoList = chimeUserBiz.buildUserTagDtoListFromVo(chimeUserInfoVo.getUserTagsVoList());
......@@ -153,6 +158,16 @@ public class ChimeUserServiceImpl implements IChimeUserService {
queueUtils.sendMsgByRedis(MQConst.ChimeQueue.USER_OPERATION_LIKE.getKey(), JsonUtils.toJson(chimeUserOperLogVo));
chimeUserOperLogVo.setOpType(ChimeConstant.LOG_USER_OPERATION_LIKE_MYSELF_CLICK);
queueUtils.sendMsgByRedis(MQConst.ChimeQueue.USER_OPERATION_LIKE.getKey(), JsonUtils.toJson(chimeUserOperLogVo));
/* Integer i;
//判断redis是否有喜欢的记录
if (!redisUtil.hasKey(ChimeConstant.REDIS_USER_LIKE_NUM+currentUserId)){
i=1;
}else {
i = (Integer) redisUtil.get(ChimeConstant.REDIS_USER_LIKE_NUM+currentUserId)+1;
}
redisUtil.set(ChimeConstant.REDIS_USER_LIKE_NUM + currentUserId,i);*/
doTaskUtils.userAddNum(currentUserId);
return true;
}
......@@ -167,6 +182,11 @@ public class ChimeUserServiceImpl implements IChimeUserService {
queueUtils.sendMsgByRedis(MQConst.ChimeQueue.USER_OPERATION_DISLIKE.getKey(), JsonUtils.toJson(chimeUserOperLogVo));
chimeUserOperLogVo.setOpType(ChimeConstant.LOG_USER_OPERATION_DISLIKE_MYSELF_CLICK);
queueUtils.sendMsgByRedis(MQConst.ChimeQueue.USER_OPERATION_DISLIKE.getKey(), JsonUtils.toJson(chimeUserOperLogVo));
doTaskUtils.userAddNum(currentUserId);
return true;
}
}
package com.liquidnet.service.chime.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.chime.constant.ChimeConstant;
import com.liquidnet.service.chime.dto.ChimeUserDoTask;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.util.MultiValueMap;
import java.util.Calendar;
@Slf4j
@Component
public class DoTaskUtils {
@Autowired
private RedisUtil redisUtil;
@Value("${liquidnet.service.stone.url}")
private String stoneUrl;
/**
* 划卡调任务
* @param currentUserId
*/
public void userAddNum(String currentUserId) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR,1);
cal.set(Calendar.HOUR_OF_DAY,0);
cal.set(Calendar.SECOND,0);
cal.set(Calendar.MINUTE,0);
cal.set(Calendar.MILLISECOND,0);
Long timeout=(cal.getTimeInMillis()-System.currentTimeMillis())/1000;
Integer i;
//判断当天是否有划卡
if (!redisUtil.hasKey(ChimeConstant.REDIS_USER_OPEN_NUM+currentUserId)){
i=1;
redisUtil.set(ChimeConstant.REDIS_USER_OPEN_NUM+currentUserId, i, timeout);
}else {
i = (Integer) redisUtil.get(ChimeConstant.REDIS_USER_OPEN_NUM+currentUserId)+1;
}
redisUtil.set(ChimeConstant.REDIS_USER_OPEN_NUM+currentUserId, i, timeout);
//获取用户是否调用过任务接口
boolean hasKey = redisUtil.hasKey(ChimeConstant.REDIS_USER_TO_DOTASK + currentUserId);
if(!hasKey){
//满足10次调用接口,每天最多调用一次
if(i >= 10){
MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
params.add("uid", currentUserId);
params.add("taskId", 3 + "");
String resultData = HttpUtil.post(stoneUrl + "/user/inner/doTask", params);
ChimeUserDoTask chimeUserDoTask = JsonUtils.fromJson(resultData, ChimeUserDoTask.class);
Boolean success = chimeUserDoTask.getSuccess();
//接口调用失败,重试
if (!success) {
this.userAddNum(currentUserId);
}else {
//调用接口成功,记录
redisUtil.set(ChimeConstant.REDIS_USER_TO_DOTASK +currentUserId,1,timeout);
}
}
}
}
}
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