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

Commit 06efa5a8 authored by 胡佳晨's avatar 胡佳晨

Merge remote-tracking branch 'origin/dev' into dev

parents 2d26a7b4 3b3eac50
......@@ -18,7 +18,7 @@ public class AdamRedisConst {
public static final String INFO_TAGS_MUSIC = INFO.concat("tags:music");
public static final String INFO_USER = INFO.concat("user:");
public static final String INFO_USER_MEMBER = INFO_USER.concat("member:");
public static final String INFO_USER_MEMBER = INFO.concat("umember:");
public static final String INFO_REAL_NAME = INFO.concat("real_name:");
public static final String INFO_THIRD_PARTY = INFO.concat("third_party:");
public static final String INFO_ENTERS = INFO.concat("enters:");
......@@ -32,6 +32,8 @@ public class AdamRedisConst {
public static final String INFO_MEMBER_AGREEMENT = INFO.concat("member:agreement");
public static final String INFO_MEMBER_CODE = INFO.concat("member:code:");
public static final String INFO_LIBRARY_NKNAME = INFO.concat("library:nkname");
public static final String BLACK_LIST = ADAM.concat("blacklist:");
public static final String BLK_LIST_MEMBER_UID = BLACK_LIST.concat("member:uid");
......
......@@ -6,6 +6,7 @@ import feign.hystrix.FallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
......@@ -19,4 +20,8 @@ public interface FeignKylinPerformanceClient {
// 演出列表
@GetMapping(value = "kylin/performance/list")
ResponseDto<List<KylinPerformanceVo>> performanceList(@RequestParam("performancesIds") String... performancesIds);
// 演出详情
@GetMapping("kylin/performance/{performancesId}")
ResponseDto<KylinPerformanceVo> detail(@PathVariable("performancesId") String performancesId);
}
......@@ -4,6 +4,7 @@ import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.SensitizeUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.util.NknameUtil;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import lombok.extern.slf4j.Slf4j;
......@@ -17,6 +18,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
......@@ -30,11 +32,25 @@ public class AdamRdmService {
@Autowired
RedisUtil redisUtil;
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | Switch config */
public Integer getSwitch(String rk) {
Integer i = (Integer) redisUtil.get(rk);
return null == i ? 1 : i;
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | Loader meta-fil */
public List<String> getNknameList() {
ArrayList<String> list = (ArrayList<String>) redisUtil.get(AdamRedisConst.INFO_LIBRARY_NKNAME);
if (CollectionUtils.isEmpty(list)) {
list = NknameUtil.readForStringList();
if (!CollectionUtils.isEmpty(list)) redisUtil.set(AdamRedisConst.INFO_LIBRARY_NKNAME, list);
}
return list;
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <Mobile, SMS CODE> */
public boolean setSmsCodeByMobile(String mobile, String smsCode) {
......
......@@ -22,6 +22,7 @@ import com.mongodb.client.model.ReturnDocument;
import com.mongodb.client.result.DeleteResult;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.RandomUtils;
import org.apache.commons.lang3.StringUtils;
import org.bson.Document;
import org.springframework.beans.BeanUtils;
......@@ -81,7 +82,8 @@ public class AdamUserServiceImpl implements IAdamUserService {
userInfoVo = AdamUserInfoVo.getNew();
userInfoVo.setUid(IDGenerator.nextSnowId() + "");
userInfoVo.setMobile(mobile);
userInfoVo.setNickname("Now_".concat(RandomStringUtils.randomAlphanumeric(3)).concat(mobile.substring(6)));
List<String> nknameList = adamRdmService.getNknameList();
userInfoVo.setNickname("宇航员".concat(nknameList.get(RandomUtils.nextInt(0, nknameList.size()))));
userInfoVo.setIsComplete(0);
userInfoVo.setState(1);
userInfoVo.setQrCode("lN".concat(userInfoVo.getUid()).concat(RandomStringUtils.randomAlphanumeric(5).toUpperCase()));
......
package com.liquidnet.service.adam.util;
import com.liquidnet.commons.lang.util.CollectionUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
public class NknameUtil {
private static final Logger log = LoggerFactory.getLogger(NknameUtil.class);
public static ArrayList<String> readForStringList() {
ArrayList<String> nknameList = CollectionUtil.arrayListString();
InputStream inputStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader bufferedReader = null;
try {
inputStream = NknameUtil.class.getClassLoader().getResourceAsStream("META-FIL/library_nickname.csv");
inputStreamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);
bufferedReader = new BufferedReader(inputStreamReader);
String line;
while ((line = bufferedReader.readLine()) != null) {
int l = StringUtils.length(line);
if (l == 0) {
break;
}
if (l > 11) {
line = line.substring(0, 11);
}
nknameList.add(line);
}
} catch (IOException e) {
log.error("Read CSV[library_nickname.csv] failure.", e);
} finally {
try {
if (null != bufferedReader) bufferedReader.close();
if (null != inputStreamReader) inputStreamReader.close();
if (null != inputStream) inputStream.close();
} catch (IOException e) {
log.error("Close stream failure.", e);
}
}
return nknameList;
}
}
\ No newline at end of file
......@@ -13,6 +13,8 @@ public class SweetConstant {
public final static String REDIS_KEY_SWEET_ARTISTS_RELATION = "sweet:artists:relation:uid:";
public final static String REDIS_KEY_SWEET_REMIND="sweet:remind:unionId:";
public enum ManualPosition {
POSITION_1("艺人"),
POSITION_2("签售时间"),
......
......@@ -34,8 +34,7 @@ public class SweetLoginController {
@RequestParam() String iv,
@RequestParam(defaultValue = "1") Integer type
) {
sweetLoginService.userInfo(code, encryptedData, iv, type);
return ResponseDto.success();
return sweetLoginService.userInfo(code, encryptedData, iv, type);
}
}
......@@ -7,10 +7,7 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
@Api(tags = "公众号模版消息")
@RestController
......@@ -21,7 +18,7 @@ public class SweetTemplateController {
private SweetTemplateServiceImpl sweetTemplateService;
@GetMapping("send")
@ApiOperation("code获取用户信息")
@ApiOperation("发送模版消息")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "code", value = "微信code", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "encryptedData", value = "encryptedData", required = true),
......@@ -38,22 +35,17 @@ public class SweetTemplateController {
return ResponseDto.success();
}
@GetMapping("remind")
@PostMapping("remind")
@ApiOperation("提醒记录")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "code", value = "微信code", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "encryptedData", value = "encryptedData", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "iv", value = "iv", required = true),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "type", value = "1草莓 2五百里 3mdsk"),
@ApiImplicitParam(type = "form", dataType = "String", name = "unionId", value = "微信unionId", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "performancesId", value = "演出ID", required = true),
})
public ResponseDto remind(
@RequestParam() String code,
@RequestParam() String encryptedData,
@RequestParam() String iv,
@RequestParam(defaultValue = "1") Integer type
@RequestParam() String unionId,
@RequestParam() String performancesId
) {
sweetTemplateService.sendMsg();
return ResponseDto.success();
return sweetTemplateService.remind(unionId, performancesId);
}
}
......@@ -12,6 +12,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Objects;
/**
......@@ -82,7 +83,11 @@ public class SweetLoginServiceImpl {
String unionId = sessionInfo.getUnionid();
String openId = sessionInfo.getOpenid();
return ResponseDto.success();
HashMap userInfo = new HashMap();
userInfo.put("unionId", unionId);
userInfo.put("openId", openId);
return ResponseDto.success(userInfo);
} catch (Exception e) {
return ResponseDto.failure();
}
......
package com.liquidnet.service.sweet.service.impl;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.feign.kylin.api.FeignKylinPerformanceClient;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.sweet.utils.RedisDataUtils;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
......@@ -8,6 +11,7 @@ import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
import me.chanjar.weixin.mp.config.WxMpConfigStorage;
import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
......@@ -27,6 +31,12 @@ public class SweetTemplateServiceImpl {
@Value("${liquidnet.wechat.zhengzai.service.secret}")
private String secret;
@Autowired
private RedisDataUtils redisDataUtils;
@Autowired
private FeignKylinPerformanceClient feignKylinPerformanceClient;
public ResponseDto send(String openId, String templateId) {
// 发送模板消息接口
WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
......@@ -74,4 +84,10 @@ public class SweetTemplateServiceImpl {
service.setWxMpConfigStorage(mpConfig);
return service;
}
public ResponseDto remind(String unionId, String performancesId) {
ResponseDto<KylinPerformanceVo> performanceVo = feignKylinPerformanceClient.detail(performancesId);
redisDataUtils.setSweetRemind(unionId, performancesId);
return ResponseDto.success();
}
}
......@@ -9,6 +9,7 @@ import com.liquidnet.service.sweet.dto.SweetManualAppletDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistList2Dto;
import com.liquidnet.service.sweet.dto.SweetManualArtistListDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistStageListDto;
import com.liquidnet.service.sweet.vo.SweetRemindVo;
import com.liquidnet.service.sweet.entity.SweetManualNotify;
import com.liquidnet.service.sweet.entity.SweetManualSort;
import com.liquidnet.service.sweet.entity.SweetRichtext;
......@@ -226,4 +227,23 @@ public class RedisDataUtils {
return (SweetArtistsRelationVo) obj;
}
}
// 小程序演出提醒
public void setSweetRemind(String unionId, String performancesId) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_REMIND.concat(unionId);
SweetRemindVo sweetRemindVo = SweetRemindVo.getNew();
sweetRemindVo.setCreatedAt(DateUtil.getNowTime());
sweetRemindVo.setPerformancesId(performancesId);
sweetRemindVo.setUnionId(unionId);
/*String redisKeyPer = KylinRedisConst.PERFORMANCES.concat(performancesId);
KylinPerformanceVo perInfo = (KylinPerformanceVo) redisUtil.get(redisKeyPer);
if (null != perInfo) {
sweetRemindVo.setFieldName(perInfo.getFieldName());
sweetRemindVo.setTitle(perInfo.getTitle());
sweetRemindVo.setTimeStart(perInfo.getTimeStart());
sweetRemindVo.setSellTime(perInfo.getSellTime());
}*/
redisUtil.set(redisKey, sweetRemindVo);
}
}
package com.liquidnet.service.sweet.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class SweetRemindVo implements Serializable, Cloneable {
private String performancesId;
private String unionId;
private String title;
private String timeStart;
private String sellTime;
private String fieldName;
private String createdAt;
private String updatedAt;
private static final SweetRemindVo obj = new SweetRemindVo();
public static SweetRemindVo getNew() {
try {
return (SweetRemindVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetRemindVo();
}
}
}
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