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

Commit b12c8daf authored by 张国柄's avatar 张国柄

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

parents 322f8e89 d38367bd
...@@ -6,7 +6,7 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -6,7 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
@ApiModel(value = "AdamTagParentVo", description = "父级标签库") @ApiModel(value = "AdamTagParentVo", description = "标签库")
public class AdamTagParentVo implements Serializable, Cloneable { public class AdamTagParentVo implements Serializable, Cloneable {
private static final long serialVersionUID = -7965840594354555093L; private static final long serialVersionUID = -7965840594354555093L;
@ApiModelProperty(position = 11, value = "标签Key") @ApiModelProperty(position = 11, value = "标签Key")
...@@ -14,7 +14,7 @@ public class AdamTagParentVo implements Serializable, Cloneable { ...@@ -14,7 +14,7 @@ public class AdamTagParentVo implements Serializable, Cloneable {
@ApiModelProperty(position = 12, value = "标签名称") @ApiModelProperty(position = 12, value = "标签名称")
private String desc; private String desc;
@ApiModelProperty(position = 13, value = "子标签列表") @ApiModelProperty(position = 13, value = "子标签列表")
private List<AdamTagVo> tagVos; private List<AdamTagParentVo> tagVos;
private static final AdamTagParentVo obj = new AdamTagParentVo(); private static final AdamTagParentVo obj = new AdamTagParentVo();
...@@ -22,9 +22,8 @@ public class AdamTagParentVo implements Serializable, Cloneable { ...@@ -22,9 +22,8 @@ public class AdamTagParentVo implements Serializable, Cloneable {
try { try {
return (AdamTagParentVo) obj.clone(); return (AdamTagParentVo) obj.clone();
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {
e.printStackTrace(); return new AdamTagParentVo();
} }
return new AdamTagParentVo();
} }
public String getVal() { public String getVal() {
...@@ -45,11 +44,11 @@ public class AdamTagParentVo implements Serializable, Cloneable { ...@@ -45,11 +44,11 @@ public class AdamTagParentVo implements Serializable, Cloneable {
return this; return this;
} }
public List<AdamTagVo> getTagVos() { public List<AdamTagParentVo> getTagVos() {
return tagVos; return tagVos;
} }
public AdamTagParentVo setTagVos(List<AdamTagVo> tagVos) { public AdamTagParentVo setTagVos(List<AdamTagParentVo> tagVos) {
this.tagVos = tagVos; this.tagVos = tagVos;
return this; return this;
} }
......
...@@ -54,7 +54,7 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable { ...@@ -54,7 +54,7 @@ public class AdamUserInfoVo implements java.io.Serializable, Cloneable {
@ApiModelProperty(position = 25, value = "注销时间") @ApiModelProperty(position = 25, value = "注销时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime closedAt; private LocalDateTime closedAt;
@ApiModelProperty(position = 26, value = "完善信息进度[0-未完善,1-已完善]") @ApiModelProperty(position = 26, value = "完善信息进度[0-未完善,1-已完善,11-已完善且注册IM]")
private Integer isComplete; private Integer isComplete;
@ApiModelProperty(position = 27, value = "") @ApiModelProperty(position = 27, value = "")
private String rongCloudToken; private String rongCloudToken;
......
package com.liquidnet.service.adam.service; package com.liquidnet.service.adam.service;
import com.liquidnet.service.adam.dto.AdamUserInfoParam;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo; import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.base.ResponseDto;
/** /**
* <p> * <p>
...@@ -12,7 +14,7 @@ import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo; ...@@ -12,7 +14,7 @@ import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
*/ */
public interface IAdamUserInfoService { public interface IAdamUserInfoService {
void edit(AdamUserInfoVo userInfoVo); ResponseDto<AdamUserInfoVo> edit(AdamUserInfoParam parameter);
String editMobile(String uid, String mobile); String editMobile(String uid, String mobile);
} }
...@@ -14,7 +14,5 @@ import com.liquidnet.service.chime.dto.NewPageResult; ...@@ -14,7 +14,5 @@ import com.liquidnet.service.chime.dto.NewPageResult;
* @date 2021/9/9 12:03 * @date 2021/9/9 12:03
*/ */
public interface IChimePerformanceService { public interface IChimePerformanceService {
// PageInfo<ChimeUserInfoDto> getUserListByCon(ChimeUserListQueryReqDto reqDto);
NewPageResult<ChimeUserInfoDto> getUserListByCon(ChimeUserListQueryReqDto reqDto); NewPageResult<ChimeUserInfoDto> getUserListByCon(ChimeUserListQueryReqDto reqDto);
} }
...@@ -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.util.List;
/** /**
* @author AnJiabin <anjiabin@zhengzai.tv> * @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0 * @version V1.0
...@@ -36,6 +38,8 @@ public class ChimeUserInfoVo { ...@@ -36,6 +38,8 @@ public class ChimeUserInfoVo {
private String area; private String area;
@ApiModelProperty(position = 8, value = "在场ID") @ApiModelProperty(position = 8, value = "在场ID")
private String joinPerformanceId; private String joinPerformanceId;
@ApiModelProperty(position = 9,value = "用户标签")
private List<ChimeUserTagsMappingVo> userTagsVoList;
private static final ChimeUserInfoVo obj = new ChimeUserInfoVo(); private static final ChimeUserInfoVo obj = new ChimeUserInfoVo();
public static ChimeUserInfoVo getNew() { public static ChimeUserInfoVo getNew() {
......
...@@ -49,6 +49,11 @@ liquidnet: ...@@ -49,6 +49,11 @@ liquidnet:
port: 27017 port: 27017
user: admin user: admin
pwd: S&y$6d*JwJ pwd: S&y$6d*JwJ
chime:
host: s-2ze04ffc16a54af4-pub.mongodb.rds.aliyuncs.com:3717
port: 3717
user: admin
pwd: S&y$6d*JwJ
service: service:
adam: adam:
url-pay: url-pay:
......
...@@ -49,6 +49,11 @@ liquidnet: ...@@ -49,6 +49,11 @@ liquidnet:
port: 27017 port: 27017
user: admin user: admin
pwd: S&y$6d*JwJ pwd: S&y$6d*JwJ
chime:
host: s-2ze04ffc16a54af4-pub.mongodb.rds.aliyuncs.com:3717
port: 3717
user: admin
pwd: S&y$6d*JwJ
service: service:
adam: adam:
url-pay: url-pay:
...@@ -61,6 +66,7 @@ liquidnet: ...@@ -61,6 +66,7 @@ liquidnet:
pay: http://testdragon.zhengzai.tv/dragon/pay/dragonPay pay: http://testdragon.zhengzai.tv/dragon/pay/dragonPay
check: http://testdragon.zhengzai.tv/dragon/pay/checkOrder check: http://testdragon.zhengzai.tv/dragon/pay/checkOrder
localUrl: http://testkylin.zhengzai.tv/kylin/order/syncOrder localUrl: http://testkylin.zhengzai.tv/kylin/order/syncOrder
url: http://testkylin.zhengzai.tv/kylin
candy: candy:
url: http://testcandy.zhengzai.tv/candy url: http://testcandy.zhengzai.tv/candy
order: order:
...@@ -134,6 +140,12 @@ liquidnet: ...@@ -134,6 +140,12 @@ liquidnet:
android: android:
appkey: 5c6cf6cbb465f592e4000bae appkey: 5c6cf6cbb465f592e4000bae
appMasterSecret: dmsho74wlpd1hp7vrwp9bjehzwo29pza appMasterSecret: dmsho74wlpd1hp7vrwp9bjehzwo29pza
easemob:
api-url: https://a1.easemob.com
org-name: 1106210901175651
app-name: demo
client-id: YXA6x4Xs7cYDQcOv6BPuM3hUDA
client-secret: YXA6olr2qaW65xlkFixS81kiWnplrW4
#application-test-end #application-test-end
...@@ -109,7 +109,7 @@ spring: ...@@ -109,7 +109,7 @@ spring:
transportMode: "NIO" transportMode: "NIO"
data: data:
mongodb: mongodb:
uri: mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=2000&waitQueueMultiple=100 uri: mongodb://${liquidnet.mongodb.chime.user}:${liquidnet.mongodb.chime.pwd}@${liquidnet.mongodb.chime.host}/?authSource=admin&maxPoolSize=2000&waitQueueMultiple=100
sslEnabled: ${liquidnet.mongodb.sslEnabled} sslEnabled: ${liquidnet.mongodb.sslEnabled}
database: ${liquidnet.mongodb.database} database: ${liquidnet.mongodb.database}
# ----------------------------------------------------------- # -----------------------------------------------------------
......
package com.liquidnet.service.adam.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 用户业务服务账号表
* </p>
*
* @author liquidnet
* @since 2021-09-17
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class AdamUserBusiAcct implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
private String uid;
/**
* 业务服务平台
*/
private String busi;
/**
* 业务服务ID
*/
private String uuid;
/**
* 业务服务模块
*/
private String work;
/**
* 业务服务密码
*/
private String ppwd;
/**
* 1-NORMAL,2-INVALID
*/
private Integer state;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
private String comment;
}
package com.liquidnet.service.adam.mapper;
import com.liquidnet.service.adam.entity.AdamUserBusiAcct;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 用户业务服务账号表 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2021-09-17
*/
public interface AdamUserBusiAcctMapper extends BaseMapper<AdamUserBusiAcct> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.adam.mapper.AdamUserBusiAcctMapper">
</mapper>
package com.liquidnet.service.chime.config; package com.liquidnet.service.feign.kylin.config;
import feign.RequestInterceptor; import feign.RequestInterceptor;
import feign.RequestTemplate; import feign.RequestTemplate;
......
...@@ -415,6 +415,22 @@ create unique index uidx_adam_member_rights_id on adam_member_rights (mrights_id ...@@ -415,6 +415,22 @@ create unique index uidx_adam_member_rights_id on adam_member_rights (mrights_id
-- >>------------------------------------------------------------------------------------ -- >>------------------------------------------------------------------------------------
-- >>------------------------------------------------------------------------------------ -- >>------------------------------------------------------------------------------------
-- >>------------------------------------------------------------------------------------ -- >>------------------------------------------------------------------------------------
# 用户业务服务账号表
drop table if exists adam_user_busi_acct;
create table adam_user_busi_acct
(
mid bigint unsigned auto_increment primary key,
uid varchar(64) not null,
busi varchar(20) comment '业务服务平台',
uuid varchar(64) comment '业务服务ID',
work varchar(64) comment '业务服务模块',
ppwd varchar(64) comment '业务服务密码',
state tinyint comment '1-NORMAL,2-INVALID',
created_at datetime not null,
updated_at datetime,
comment text
) engine = InnoDB comment '用户业务服务账号表';
create index idx_adam_user_busi_acct_uid on adam_user_busi_acct (uid);
-- >>------------------------------------------------------------------------------------ -- >>------------------------------------------------------------------------------------
-- >>------------------------------------------------------------------------------------ -- >>------------------------------------------------------------------------------------
-- >>------------------------------------------------------------------------------------ -- >>------------------------------------------------------------------------------------
...@@ -43,6 +43,12 @@ ...@@ -43,6 +43,12 @@
<!-- <artifactId>liquidnet-service-kylin-api</artifactId>--> <!-- <artifactId>liquidnet-service-kylin-api</artifactId>-->
<!-- <version>1.0-SNAPSHOT</version>--> <!-- <version>1.0-SNAPSHOT</version>-->
<!-- </dependency>--> <!-- </dependency>-->
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-common-third-easemob</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency> <dependency>
<groupId>com.liquidnet</groupId> <groupId>com.liquidnet</groupId>
......
...@@ -121,27 +121,29 @@ public class AdamUserController { ...@@ -121,27 +121,29 @@ public class AdamUserController {
// existParentVo.setTagVos(existTagVos); // existParentVo.setTagVos(existTagVos);
// tagMeVoList.add(existParentVo); // tagMeVoList.add(existParentVo);
// } // }
String currentUid = CurrentUtil.getCurrentUid(); // String currentUid = CurrentUtil.getCurrentUid();
//
AdamUserInfoVo editVo = adamRdmService.getUserInfoVoByUid(currentUid); // AdamUserInfoVo editVo = adamRdmService.getUserInfoVoByUid(currentUid);
// editVo.setAvatar(parameter.getAvatar()); //// editVo.setAvatar(parameter.getAvatar());
// editVo.setBackground(parameter.getBackground()); //// editVo.setBackground(parameter.getBackground());
// editVo.setNickname(parameter.getNickname()); //// editVo.setNickname(parameter.getNickname());
editVo.setAvatar(StringUtils.isEmpty(editVo.getAvatar()) ? AdamConst.DEF_URL_AVATAR : editVo.getAvatar()); // editVo.setAvatar(StringUtils.isEmpty(editVo.getAvatar()) ? AdamConst.DEF_URL_AVATAR : editVo.getAvatar());
editVo.setBackground(StringUtils.isEmpty(editVo.getBackground()) ? AdamConst.DEF_URL_BACKGROUND : editVo.getBackground()); // editVo.setBackground(StringUtils.isEmpty(editVo.getBackground()) ? AdamConst.DEF_URL_BACKGROUND : editVo.getBackground());
editVo.setNickname(editVo.getNickname()); // editVo.setNickname(editVo.getNickname());
editVo.setSex(sex); // editVo.setSex(sex);
editVo.setBirthday(parameter.getBirthday()); // editVo.setBirthday(parameter.getBirthday());
editVo.setArea(parameter.getArea()); // editVo.setArea(parameter.getArea());
// editVo.setSignature(parameter.getSignature()); //// editVo.setSignature(parameter.getSignature());
editVo.setSignature(editVo.getSignature()); // editVo.setSignature(editVo.getSignature());
// editVo.setTagMe(tagMeVoList); //// editVo.setTagMe(tagMeVoList);
editVo.setUpdatedAt(LocalDateTime.now()); // editVo.setUpdatedAt(LocalDateTime.now());
editVo.setIsComplete(1); // editVo.setIsComplete(1);
//
adamUserInfoService.edit(editVo); // adamUserInfoService.edit(editVo);
// editVo.setMobile(SensitizeUtil.custom(editVo.getMobile(), 3, 4)); //// editVo.setMobile(SensitizeUtil.custom(editVo.getMobile(), 3, 4));
return ResponseDto.success(editVo.desensitize(reviewUserInfo)); // return ResponseDto.success(editVo.desensitize(reviewUserInfo));
parameter.setSex(sex);
return adamUserInfoService.edit(parameter);
} }
@ApiOperationSupport(order = 2) @ApiOperationSupport(order = 2)
...@@ -152,16 +154,16 @@ public class AdamUserController { ...@@ -152,16 +154,16 @@ public class AdamUserController {
if (CollectionUtils.isEmpty(tagsForMusic)) { if (CollectionUtils.isEmpty(tagsForMusic)) {
tagsForMusic = ObjectUtil.getAdamTagParentVoArrayList(); tagsForMusic = ObjectUtil.getAdamTagParentVoArrayList();
tagsForMusic.add(AdamTagParentVo.getNew().setVal("MMS01").setDesc("民歌").setTagVos(Arrays.asList( tagsForMusic.add(AdamTagParentVo.getNew().setVal("MMS01").setDesc("民歌").setTagVos(Arrays.asList(
AdamTagVo.getNew().setVal("MMS0101").setDesc("A"), AdamTagParentVo.getNew().setVal("MMS0101").setDesc("A"),
AdamTagVo.getNew().setVal("MMS0102").setDesc("B") AdamTagParentVo.getNew().setVal("MMS0102").setDesc("B")
))); )));
tagsForMusic.add(AdamTagParentVo.getNew().setVal("MMS02").setDesc("house").setTagVos(Arrays.asList( tagsForMusic.add(AdamTagParentVo.getNew().setVal("MMS02").setDesc("house").setTagVos(Arrays.asList(
AdamTagVo.getNew().setVal("MMS0201").setDesc("C"), AdamTagParentVo.getNew().setVal("MMS0201").setDesc("C"),
AdamTagVo.getNew().setVal("MMS0202").setDesc("D") AdamTagParentVo.getNew().setVal("MMS0202").setDesc("D")
))); )));
tagsForMusic.add(AdamTagParentVo.getNew().setVal("MMS03").setDesc("R&B").setTagVos(Arrays.asList( tagsForMusic.add(AdamTagParentVo.getNew().setVal("MMS03").setDesc("R&B").setTagVos(Arrays.asList(
AdamTagVo.getNew().setVal("MMS0301").setDesc("E"), AdamTagParentVo.getNew().setVal("MMS0301").setDesc("E"),
AdamTagVo.getNew().setVal("MMS0302").setDesc("F") AdamTagParentVo.getNew().setVal("MMS0302").setDesc("F")
))); )));
adamRdmService.setTagsForMusic(tagsForMusic); adamRdmService.setTagsForMusic(tagsForMusic);
......
package com.liquidnet.service.adam.service.impl; package com.liquidnet.service.adam.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.third.easemob.util.EasemobUtil;
import com.liquidnet.commons.lang.core.JwtValidator; import com.liquidnet.commons.lang.core.JwtValidator;
import com.liquidnet.commons.lang.util.CollectionUtil; import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.adam.constant.AdamConst;
import com.liquidnet.service.adam.dto.AdamUserInfoParam;
import com.liquidnet.service.adam.dto.vo.AdamTagParentVo;
import com.liquidnet.service.adam.dto.vo.AdamTagVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo; import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.service.AdamRdmService; import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamUserInfoService; import com.liquidnet.service.adam.service.IAdamUserInfoService;
import com.liquidnet.service.adam.util.QueueUtils; import com.liquidnet.service.adam.util.QueueUtils;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping; import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.bson.Document; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils; import org.springframework.util.DigestUtils;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -40,14 +52,93 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -40,14 +52,93 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
RedisUtil redisUtil; RedisUtil redisUtil;
@Autowired @Autowired
JwtValidator jwtValidator; JwtValidator jwtValidator;
@Autowired
private EasemobUtil easemobUtil;
@Value("${liquidnet.reviewer.user-info}")
private Boolean reviewUserInfo;
@Override @Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void edit(AdamUserInfoVo userInfoVo) { public ResponseDto<AdamUserInfoVo> edit(AdamUserInfoParam parameter) {
String currentUid = CurrentUtil.getCurrentUid();
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(currentUid);
List<AdamTagParentVo> tagMe = parameter.getTagMe();
String ppwd = "138CEF91A62088BD3EF329FA3A6176CB18A",
uuid = null, type = null, created = null, modified = null;
boolean syncChimeFlg = false;// 标识是否需要同步`service-chime`
if (!CollectionUtil.isEmpty(tagMe)) {// 标签不为空则注册或更新IM
String nickname = parameter.getNickname();
boolean syncIMNicknameFlg = null != nickname && !nickname.equals(userInfoVo.getNickname());
Integer voIsComplete = userInfoVo.getIsComplete();
int isComplete = voIsComplete == 0 ? 1 : voIsComplete;
if (isComplete == 1) {// 注册IM
JSONObject jsonObject = null;
try {
// 138cef91a62088bd3ef329fa3a6176cb18a > 138CEF91A62088BD3EF329FA3A6176CB18A > IM@zhengzai
String result = easemobUtil.createUser(userInfoVo.getUid(), ppwd, userInfoVo.getNickname());
jsonObject = JSONObject.parseObject(result);
} catch (Exception e) {
log.error("###编辑资料:注册IM异常[uid:{},mobile:{}]", userInfoVo.getUid(), userInfoVo.getMobile());
}
if (null == jsonObject) {
return ResponseDto.failure(ErrorMapping.get("10014"));
}
if (StringUtil.isNotNull(jsonObject.get("error"))) {
return ResponseDto.failure(ErrorMapping.get("10014"));
}
if (jsonObject.getBooleanValue("activated")) {
isComplete = 11;
type = jsonObject.getString("type");
uuid = jsonObject.getString("uuid");
created = jsonObject.getString(created);
modified = jsonObject.getString("modified");
}
} else if (syncIMNicknameFlg && isComplete == 11) {// 同步IM信息
// TODO: 2021/9/17 暂未接入
}
userInfoVo.setIsComplete(isComplete);
syncChimeFlg = true;
} else {
tagMe = userInfoVo.getTagMe();
}
AdamTagVo sex = parameter.getSex();
syncChimeFlg = syncChimeFlg || !userInfoVo.getSex().getVal().equals(sex.getVal());
if (syncChimeFlg) {// 同步`service-chime`
}
// userInfoVo.setAvatar(parameter.getAvatar());
// userInfoVo.setBackground(parameter.getBackground());
// userInfoVo.setNickname(parameter.getNickname());
userInfoVo.setAvatar(StringUtils.isEmpty(userInfoVo.getAvatar()) ? AdamConst.DEF_URL_AVATAR : userInfoVo.getAvatar());
userInfoVo.setBackground(StringUtils.isEmpty(userInfoVo.getBackground()) ? AdamConst.DEF_URL_BACKGROUND : userInfoVo.getBackground());
userInfoVo.setNickname(userInfoVo.getNickname());
userInfoVo.setSex(sex);
userInfoVo.setBirthday(parameter.getBirthday());
userInfoVo.setArea(parameter.getArea());
// userInfoVo.setSignature(parameter.getSignature());
userInfoVo.setSignature(userInfoVo.getSignature());
userInfoVo.setTagMe(tagMe);
userInfoVo.setUpdatedAt(LocalDateTime.now());
// userInfoVo.setIsComplete(1);
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
adamRdmService.setUserInfoVoByUid(userInfoVo.getUid(), userInfoVo); adamRdmService.setUserInfoVoByUid(userInfoVo.getUid(), userInfoVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s); log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
LinkedList<String> toMqSqls = CollectionUtil.linkedListString(); LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
LinkedList<Object[]> updateUserObjs = CollectionUtil.linkedListObjectArr(), LinkedList<Object[]> updateUserObjs = CollectionUtil.linkedListObjectArr(),
updateUserInfoObjs = CollectionUtil.linkedListObjectArr(); updateUserInfoObjs = CollectionUtil.linkedListObjectArr();
...@@ -58,13 +149,13 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -58,13 +149,13 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
toMqSqls.add(SqlMapping.get("adam_user_info.edit")); toMqSqls.add(SqlMapping.get("adam_user_info.edit"));
updateUserInfoObjs.add(new Object[]{ updateUserInfoObjs.add(new Object[]{
userInfoVo.getNickname(), userInfoVo.getNickname(),
JsonUtils.toJson(userInfoVo.getSex()), JsonUtils.toJson(sex),
userInfoVo.getBirthday(), userInfoVo.getBirthday(),
userInfoVo.getArea(), userInfoVo.getArea(),
userInfoVo.getSignature(), userInfoVo.getSignature(),
userInfoVo.getAvatar(), userInfoVo.getAvatar(),
userInfoVo.getBackground(), userInfoVo.getBackground(),
JsonUtils.toJson(userInfoVo.getTagMe()), JsonUtils.toJson(tagMe),
userInfoVo.getUid()} userInfoVo.getUid()}
); );
log.debug("#SQL.GET耗时:{}ms", System.currentTimeMillis() - s); log.debug("#SQL.GET耗时:{}ms", System.currentTimeMillis() - s);
...@@ -74,6 +165,8 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService { ...@@ -74,6 +165,8 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
SqlMapping.gets(toMqSqls, updateUserObjs, updateUserInfoObjs) SqlMapping.gets(toMqSqls, updateUserObjs, updateUserInfoObjs)
); );
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s); log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
return ResponseDto.success(userInfoVo.desensitize(reviewUserInfo));
} }
@Override @Override
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
10011=性别标签无效 10011=性别标签无效
10012=音乐风格标签无效 10012=音乐风格标签无效
10013=账号与密码不匹配 10013=账号与密码不匹配
10014= 10014=编辑无效
10015=入场人ID不能为空 10015=入场人ID不能为空
10016=收货地址ID不能为空 10016=收货地址ID不能为空
10017=入场人不存在,请核实 10017=入场人不存在,请核实
......
use prod_ln_scene; use prod_ln_scene;
#创建集合 #创建集合
db.createCollection("KylinCheckUserVo"); db.createCollection("ChimeUserInfoVo");
db.createCollection("ChimeUserTagsMappingVo");
#创建索引 #创建索引
db.KylinCheckUserPerformanceVo.createIndex({checkUserId:"hashed"}); db.ChimeUserInfoVo.createIndex({userId:"hashed"});
db.KylinCheckUserVo.createIndex({merchantId:"hashed"}); db.ChimeUserInfoVo.createIndex({sex:"hashed"});
db.KylinCheckUserVo.createIndex({mobile:"hashed"}); db.ChimeUserInfoVo.createIndex({joinPerformanceId:"hashed"});
db.KylinOrderRefundEntitiesVo.createIndex({orderRefundsId:"hashed"});
db.KylinOrderRefundEntitiesVo.createIndex({orderTicketEntitiesId:"hashed"});
db.KylinOrderRefundPicVo.createIndex({orderRefundsId:"hashed"});
db.KylinOrderRefundsVo.createIndex({orderRefundsId:"hashed"});
db.KylinOrderRefundsVo.createIndex({orderTicketsId:"hashed"});
db.KylinOrderTicketEntitiesVo.createIndex({orderTicketEntitiesId:"hashed"});
db.KylinOrderTicketEntitiesVo.createIndex({orderId:"hashed"});
db.KylinOrderTicketVo.createIndex({orderTicketsId:"hashed"});
db.KylinOrderTicketVo.createIndex({orderCode:"hashed"});
db.KylinOrderTicketVo.createIndex({userId:"hashed"});
db.KylinPerformanceVo.createIndex({performancesId:"hashed"});
db.KylinPerformanceMisVo.createIndex({performancesId:"hashed"});
db.KylinTicketPartnerVo.createIndex({ticketsId:"hashed"});
db.KylinTicketPartnerVo.createIndex({timesId:"hashed"});
db.KylinTicketTimesPartnerVo.createIndex({performancesId:"hashed"});
db.KylinTicketTimesPartnerVo.createIndex({ticketTimesId:"hashed"});
db.PerformanceMemberAuditParam.createIndex({performancesId:"hashed"});
db.AdminUpushVo.createIndex({upushId:"hashed"});
#创建分片 #创建分片
sh.enableSharding("prod_ln_scene"); sh.enableSharding("dev_ln_scene");
sh.shardCollection("prod_ln_scene.KylinCheckUserPerformanceVo",{"checkUserId":"hashed"}); sh.shardCollection("dev_ln_scene.ChimeUserInfoVo",{"userId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinCheckUserVo",{"checkUserId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinOrderRefundEntitiesVo",{"orderRefundsEntitiesId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinOrderRefundPicVo",{"refundPicId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinOrderRefundsVo",{"orderRefundsId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinOrderTicketEntitiesVo",{"orderTicketEntitiesId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinOrderTicketVo",{"orderTicketsId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinPerformanceVo",{"performancesId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinRoadShowVo",{"roadShowsId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinPerformanceMisVo",{"performancesId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinTicketPartnerVo",{"ticketsId":"hashed"});
sh.shardCollection("prod_ln_scene.KylinTicketTimesPartnerVo",{"ticketTimesId":"hashed"});
sh.shardCollection("prod_ln_scene.PerformanceMemberAuditParam",{"performancesId":"hashed"});
sh.shardCollection("prod_ln_scene.AdminUpushVo",{"upushId":"hashed"});
...@@ -3,9 +3,11 @@ package com.liquidnet.service.chime.biz; ...@@ -3,9 +3,11 @@ package com.liquidnet.service.chime.biz;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.StringUtil; import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.chime.dto.ChimeJoinUserCountDto; import com.liquidnet.service.chime.dto.ChimeJoinUserCountDto;
import com.liquidnet.service.chime.dto.ChimeUserTagDto;
import com.liquidnet.service.chime.dto.PerformanceDto; import com.liquidnet.service.chime.dto.PerformanceDto;
import com.liquidnet.service.chime.utils.DataUtils; import com.liquidnet.service.chime.utils.DataUtils;
import com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo; import com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo;
...@@ -60,6 +62,35 @@ public class ChimeUserBiz { ...@@ -60,6 +62,35 @@ public class ChimeUserBiz {
return userTagList; return userTagList;
} }
/**
* Json转换list
* @param tags
* @return
*/
public List<ChimeUserTagDto> buildUserTagDtoList(String userId, String tags){
List<ChimeUserTagsMappingVo> userTagVoList = new ArrayList<>();
List<ChimeUserTagDto> userTagDtoList = new ArrayList<>();
if(StringUtil.isNotEmpty(tags)){
ObjectMapper mapper = new ObjectMapper();
try {
userTagVoList = mapper.readValue(tags, new TypeReference<List<ChimeUserTagsMappingVo>>() {});
} catch (JsonProcessingException e) {
e.printStackTrace();
log.error("createChimeUserInfo msg:{}",e.getMessage());
log.error("createChimeUserInfo error : ",e);
return null;
}
}
//设置用户id
userTagVoList.parallelStream().forEach(vo -> {
ChimeUserTagDto userTagDto = ChimeUserTagDto.getNew();
vo.setUserId(userId);
BeanUtil.copy(vo,userTagDto);
userTagDtoList.add(userTagDto);
});
return userTagDtoList;
}
/** /**
* 演出voList转换为DtoList * 演出voList转换为DtoList
* @param performanceVoList * @param performanceVoList
...@@ -93,16 +124,17 @@ public class ChimeUserBiz { ...@@ -93,16 +124,17 @@ public class ChimeUserBiz {
dto.setAvatarImgList(joinUserCountDto.getAvatarImgList()); dto.setAvatarImgList(joinUserCountDto.getAvatarImgList());
} }
}); });
}else{
dto.setJoinUserCount(123);
List<String> imgList = new ArrayList<>();
imgList.add("https://img.zhengzai.tv/user/2021/07/27/a4cc2a4e6dcd44d1812dc60e079086b4.png");
imgList.add("https://img.zhengzai.tv/user/2021/07/27/a4cc2a4e6dcd44d1812dc60e079086b4.png");
imgList.add("https://img.zhengzai.tv/user/2021/07/27/a4cc2a4e6dcd44d1812dc60e079086b4.png");
imgList.add("https://img.zhengzai.tv/user/2021/07/27/a4cc2a4e6dcd44d1812dc60e079086b4.png");
imgList.add("https://img.zhengzai.tv/user/2021/07/27/a4cc2a4e6dcd44d1812dc60e079086b4.png");
dto.setAvatarImgList(imgList);
} }
// else{
// dto.setJoinUserCount(123);
// List<String> imgList = new ArrayList<>();
// imgList.add("https://img.zhengzai.tv/user/2021/07/27/a4cc2a4e6dcd44d1812dc60e079086b4.png");
// imgList.add("https://img.zhengzai.tv/user/2021/07/27/a4cc2a4e6dcd44d1812dc60e079086b4.png");
// imgList.add("https://img.zhengzai.tv/user/2021/07/27/a4cc2a4e6dcd44d1812dc60e079086b4.png");
// imgList.add("https://img.zhengzai.tv/user/2021/07/27/a4cc2a4e6dcd44d1812dc60e079086b4.png");
// imgList.add("https://img.zhengzai.tv/user/2021/07/27/a4cc2a4e6dcd44d1812dc60e079086b4.png");
// dto.setAvatarImgList(imgList);
// }
performanceDtoList.add(dto); performanceDtoList.add(dto);
} }
return performanceDtoList; return performanceDtoList;
......
package com.liquidnet.service.chime.controller; package com.liquidnet.service.chime.controller;
import com.alibaba.fastjson.JSONObject;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.liquidnet.commons.lang.util.StringUtil; import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.chime.dto.ChimeUserInfoDto; import com.liquidnet.service.chime.dto.ChimeUserInfoDto;
import com.liquidnet.service.chime.dto.ChimeUserRegisterReqDto; import com.liquidnet.service.chime.dto.ChimeUserRegisterReqDto;
import com.liquidnet.service.chime.dto.ChimeUserRegisterRespDto;
import com.liquidnet.service.chime.dto.ChimeUserUpdateReqDto; import com.liquidnet.service.chime.dto.ChimeUserUpdateReqDto;
import com.liquidnet.service.chime.service.IChimeUserService; import com.liquidnet.service.chime.service.IChimeUserService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -16,7 +14,10 @@ import io.swagger.annotations.ApiOperation; ...@@ -16,7 +14,10 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/** /**
* @author AnJiabin <anjiabin@zhengzai.tv> * @author AnJiabin <anjiabin@zhengzai.tv>
...@@ -46,7 +47,7 @@ public class ChimeUserController { ...@@ -46,7 +47,7 @@ public class ChimeUserController {
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "performanceId", value = "演出id") @ApiImplicitParam(type = "form", required = false, dataType = "String", name = "performanceId", value = "演出id")
}) })
@PostMapping(value = {"register"}) @PostMapping(value = {"register"})
public ResponseDto<ChimeUserRegisterRespDto> register(@RequestParam @Validated String userId public ResponseDto<String> register(@RequestParam @Validated String userId
, @RequestParam @Validated String nickname , @RequestParam @Validated String nickname
, @RequestParam @Validated String sex , @RequestParam @Validated String sex
, @RequestParam @Validated String tags , @RequestParam @Validated String tags
...@@ -63,18 +64,11 @@ public class ChimeUserController { ...@@ -63,18 +64,11 @@ public class ChimeUserController {
//云在场 //云在场
reqDto.setPerformanceId("-1"); reqDto.setPerformanceId("-1");
} }
//获取等前登陆用户 CurrentUtil.getCurrentUid() ChimeUserInfoDto chimeUserInfoDto = chimeUserService.createChimeUserInfo(reqDto);
JSONObject jsonObject = chimeUserService.register(reqDto); if(StringUtil.isNull(chimeUserInfoDto)){
if(StringUtil.isNotNull(jsonObject.get("error"))){ return ResponseDto.failure("chime创建社交用户失败!");
return ResponseDto.failure(jsonObject.get("error").toString());
} }
ChimeUserRegisterRespDto respDto = ChimeUserRegisterRespDto.getNew(); return ResponseDto.success("创建成功!");
respDto = JSONObject.parseObject(jsonObject.toJSONString(),ChimeUserRegisterRespDto.class);
if(respDto.getActivated()){
chimeUserService.createChimeUserInfo(reqDto);
}
return ResponseDto.success(respDto);
} }
@ApiOperationSupport(order = 5) @ApiOperationSupport(order = 5)
...@@ -97,21 +91,19 @@ public class ChimeUserController { ...@@ -97,21 +91,19 @@ public class ChimeUserController {
reqDto.setSex(sex); reqDto.setSex(sex);
reqDto.setTags(tags); reqDto.setTags(tags);
//更新用户信息 //更新用户信息
chimeUserService.updateUserInfo(reqDto); Boolean rs = chimeUserService.updateUserInfo(reqDto);
//更新标签
boolean rs = chimeUserService.updateUserTags(reqDto);
return ResponseDto.success(rs); return ResponseDto.success(rs);
} }
@GetMapping("getUserByUserId") // @GetMapping("getUserByUserId")
@ApiOperation("查询单个用户信息") // @ApiOperation("查询单个用户信息")
@ApiImplicitParams({ // @ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "userId", value = "用户ID", required = true) // @ApiImplicitParam(type = "query", dataType = "String", name = "userId", value = "用户ID", required = true)
}) // })
public ResponseDto<ChimeUserInfoDto> getUserByUserId( // public ResponseDto<ChimeUserInfoDto> getUserByUserId(
@RequestParam(defaultValue = "") String userId // @RequestParam(defaultValue = "") String userId
) { // ) {
ChimeUserInfoDto userInfoDto = chimeUserService.getUserByUserId(userId); // ChimeUserInfoDto userInfoDto = chimeUserService.getUserByUserId(userId);
return ResponseDto.success(userInfoDto); // return ResponseDto.success(userInfoDto);
} // }
} }
...@@ -2,7 +2,6 @@ package com.liquidnet.service.chime.service.impl; ...@@ -2,7 +2,6 @@ package com.liquidnet.service.chime.service.impl;
import com.liquidnet.commons.lang.util.BeanUtil; import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.StringUtil; import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.chime.dto.ChimeUserInfoDto; import com.liquidnet.service.chime.dto.ChimeUserInfoDto;
import com.liquidnet.service.chime.dto.ChimeUserListQueryReqDto; import com.liquidnet.service.chime.dto.ChimeUserListQueryReqDto;
import com.liquidnet.service.chime.dto.ChimeUserTagDto; import com.liquidnet.service.chime.dto.ChimeUserTagDto;
...@@ -15,9 +14,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -15,9 +14,7 @@ import lombok.extern.slf4j.Slf4j;
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;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.*;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -37,10 +34,9 @@ import java.util.List; ...@@ -37,10 +34,9 @@ import java.util.List;
*/ */
@Slf4j @Slf4j
@Service @Service
public class ChimePerformanceServiceImpl implements IChimePerformanceService{ public class ChimePerformanceServiceImpl implements IChimePerformanceService {
@Autowired @Autowired
private MongoTemplate mongoTemplate; private MongoTemplate mongoTemplate;
/** /**
* 用户关联查询 * 用户关联查询
* @param reqDto * @param reqDto
...@@ -54,96 +50,66 @@ public class ChimePerformanceServiceImpl implements IChimePerformanceService{ ...@@ -54,96 +50,66 @@ public class ChimePerformanceServiceImpl implements IChimePerformanceService{
int pageSize = reqDto.getPageSize(); int pageSize = reqDto.getPageSize();
//初始化分页 //初始化分页
pagedResult.setPageSize(pageSize).setCurrentPage(pageNum+1); pagedResult.setPageSize(pageSize).setCurrentPage(pageNum+1);
//获取总数
// 排序 分页
Pageable pageable = PageRequest.of(pageNum, pageSize, Sort.by(Sort.Direction.DESC, "userId"));
//关联表
LookupOperation lookupToLots = LookupOperation.newLookup().
from("ChimeUserTagsMappingVo").//关联表名 lots
localField("userId").//关联字段
foreignField("userId").//主表关联字段对应的次表字段
as("userTag");//查询结果集合名
//条件
Criteria criteria = Criteria.where("joinPerformanceId").is(reqDto.getPerformanceId()); Criteria criteria = Criteria.where("joinPerformanceId").is(reqDto.getPerformanceId());
if(StringUtil.isNotEmpty(reqDto.getTags())){ if(StringUtil.isNotEmpty(reqDto.getTags())){
criteria = criteria.and("userTag.tagCode").in(Arrays.asList(reqDto.getTags().split(","))); criteria = criteria.and("userTagsVoList.tagCode").in(Arrays.asList(reqDto.getTags().split(",")));
} }
if(StringUtil.isNotEmpty(reqDto.getSex())){ if(StringUtil.isNotEmpty(reqDto.getSex())){
criteria = criteria.and("sex").is(reqDto.getSex()); criteria = criteria.and("sex").is(reqDto.getSex());
} }
AggregationOperation matchToLots = Aggregation.match(criteria);
ProjectionOperation project = Aggregation.project("mid","userId","sex","avatar","joinPerformanceId");
// if (!reqDto.getPerformanceId().isEmpty()) {
// criteria.and("title").regex(".*?\\" + reqDto.getTitle());
// }
project.andInclude("_id");
//获取总数 Pageable pageableCount = PageRequest.of(0, 1000); // get 5 profiles on a page
Aggregation newAggregation = Aggregation.newAggregation(lookupToLots,matchToLots,project); Query queryCount = Query.query(criteria);
List<ChimeUserInfoVo> tempChimeUserInfoVoList = mongoTemplate.aggregate(newAggregation,ChimeUserInfoVo.class.getSimpleName(),ChimeUserInfoVo.class).getMappedResults(); queryCount.fields().include("1");
long count = tempChimeUserInfoVoList.size(); queryCount.with(pageableCount);
// 排序
//查询分页数据 // 查询总数
SkipOperation skipOperation = Aggregation.skip(pageNum*pageSize); long startTime = System.currentTimeMillis();
LimitOperation limitOperation = Aggregation.limit(pageSize); int count = (int) mongoTemplate.count(queryCount, ChimeUserInfoVo.class, ChimeUserInfoVo.class.getSimpleName());
Aggregation aggregation = Aggregation.newAggregation(lookupToLots,matchToLots,project,skipOperation,limitOperation); long endTime = System.currentTimeMillis();
log.info("查询标签数据 count:{} 耗时:{}ms",count,endTime-startTime);
// 每页五个
Pageable pageable = PageRequest.of(pageNum, pageSize); // get 5 profiles on a page
Query query = Query.query(criteria);
query.with(pageable);
startTime = System.currentTimeMillis();
List<ChimeUserInfoVo> chimeUserInfoVoList = mongoTemplate.find(query, ChimeUserInfoVo.class, ChimeUserInfoVo.class.getSimpleName());
endTime = System.currentTimeMillis();
log.info("查询标签数据 分页数据 耗时:{}ms",endTime-startTime);
List<ChimeUserInfoVo> chimeUserInfoVoList = mongoTemplate.aggregate(aggregation,ChimeUserInfoVo.class.getSimpleName(),ChimeUserInfoVo.class).getMappedResults();
//处理Vo //处理Vo
List<ChimeUserInfoDto> dtoList = new ArrayList<>(); List<ChimeUserInfoDto> dtoList = new ArrayList<>();
startTime = System.currentTimeMillis();
for (ChimeUserInfoVo item : chimeUserInfoVoList) { for (ChimeUserInfoVo item : chimeUserInfoVoList) {
ChimeUserInfoDto voData = ChimeUserInfoDto.getNew(); ChimeUserInfoDto dto = ChimeUserInfoDto.getNew();
BeanUtil.copy(item,voData); BeanUtil.copy(item,dto);
voData.setPassWord("123456"); dto.setPassWord("123456");
//获取标签 //获取标签转换
Query query= Query.query(Criteria.where("userId").is(item.getUserId())).with(Sort.by(Sort.Order.asc("tagCode"))); List<ChimeUserTagsMappingVo> userTagsMappingVoList = item.getUserTagsVoList();
List<ChimeUserTagDto> tagVoList = mongoTemplate.find(query, ChimeUserTagDto.class,ChimeUserTagsMappingVo.class.getSimpleName()); List<ChimeUserTagDto> userTagDtoList = ObjectUtil.getChimeUserTagDtoList();
voData.setUserTags(tagVoList); userTagsMappingVoList.stream().forEach(chimeUserTagsMappingVo -> {
dtoList.add(voData); ChimeUserTagDto userTagDto = ChimeUserTagDto.getNew();
BeanUtil.copy(chimeUserTagsMappingVo,userTagDto);
userTagDtoList.add(userTagDto);
});
dto.setUserTags(userTagDtoList);
dtoList.add(dto);
} }
endTime = System.currentTimeMillis();
log.info("dto转换vo 耗时:{}ms",endTime-startTime);
pagedResult.setList(dtoList).setTotal(count, pageSize); pagedResult.setList(dtoList).setTotal(count, pageSize);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return pagedResult; return pagedResult;
} }
// @Override
// public PagedResult<ChimeUserInfoDto> getUserListByCon(ChimeUserListQueryReqDto reqDto) {
// PagedResult<ChimeUserInfoDto> pagedResult = ObjectUtil.getChimeUserInfoDtoPagedResult();
// try {
// int pageNum = reqDto.getPageNum() - 1;
// int pageSize = reqDto.getPageSize();
// //初始化分页
// pagedResult.setPageSize(pageSize).setCurrentPage(pageNum+1);
//
// // 排序 分页
// Pageable pageable = PageRequest.of(pageNum, pageSize, Sort.by(Sort.Direction.DESC, "userId"));
// //条件
// Criteria criteria = Criteria.where("joinPerformanceId").is(reqDto.getPerformanceId());
//// if (!reqDto.getPerformanceId().isEmpty()) {
//// criteria.and("title").regex(".*?\\" + reqDto.getTitle());
//// }
// Query query = Query.query(criteria);
// // 查询总数
// long count = mongoTemplate.count(query, ChimeUserInfoVo.class, ChimeUserInfoVo.class.getSimpleName());
//
// query.with(pageable);
// List<ChimeUserInfoVo> chimeUserInfoVoList = mongoTemplate.find(query, ChimeUserInfoVo.class, ChimeUserInfoVo.class.getSimpleName());
// //处理Vo
// List<ChimeUserInfoDto> dtoList = new ArrayList<>();
// for (ChimeUserInfoVo item : chimeUserInfoVoList) {
// ChimeUserInfoDto voData = ChimeUserInfoDto.getNew();
// BeanUtil.copy(item,voData);
// voData.setUserTags(null);
// dtoList.add(voData);
// }
// pagedResult.setList(dtoList).setTotal(count, pageSize);
// } catch (Exception e) {
// e.printStackTrace();
// }
// return pagedResult;
// }
} }
...@@ -11,6 +11,7 @@ import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo; ...@@ -11,6 +11,7 @@ import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.chime.biz.ChimeUserBiz; import com.liquidnet.service.chime.biz.ChimeUserBiz;
import com.liquidnet.service.chime.dto.ChimeUserInfoDto; import com.liquidnet.service.chime.dto.ChimeUserInfoDto;
import com.liquidnet.service.chime.dto.ChimeUserRegisterReqDto; 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.ChimeUserUpdateReqDto;
import com.liquidnet.service.chime.service.IChimeUserService; import com.liquidnet.service.chime.service.IChimeUserService;
import com.liquidnet.service.chime.utils.DataUtils; import com.liquidnet.service.chime.utils.DataUtils;
...@@ -56,27 +57,28 @@ public class ChimeUserServiceImpl implements IChimeUserService { ...@@ -56,27 +57,28 @@ public class ChimeUserServiceImpl implements IChimeUserService {
@Override @Override
public ChimeUserInfoDto createChimeUserInfo(ChimeUserRegisterReqDto reqDto) { public ChimeUserInfoDto createChimeUserInfo(ChimeUserRegisterReqDto reqDto) {
String rk = AdamRedisConst.INFO_USER.concat(reqDto.getUserId()); try {
AdamUserInfoVo vo = (AdamUserInfoVo) redisUtil.get(rk); String rk = AdamRedisConst.INFO_USER.concat(reqDto.getUserId());
AdamUserInfoVo vo = (AdamUserInfoVo) redisUtil.get(rk);
ChimeUserInfoDto chimeUserInfoDto = ChimeUserInfoDto.getNew();
chimeUserInfoDto.setUserId(reqDto.getUserId());
chimeUserInfoDto.setSex(reqDto.getSex());
chimeUserInfoDto.setUserName(vo.getUid());
chimeUserInfoDto.setUserMobile(vo.getMobile());
chimeUserInfoDto.setAvatar(vo.getAvatar());
chimeUserInfoDto.setJoinPerformanceId(reqDto.getPerformanceId());
chimeUserInfoDto.setBirthday(vo.getBirthday());
chimeUserInfoDto.setSignature(vo.getSignature());
chimeUserInfoDto.setArea(vo.getArea());
//插入mongo
dataUtils.createChimeUser(chimeUserInfoDto);
//插入userTagMapping
List<ChimeUserTagsMappingVo> userTagList = chimeUserBiz.buildUserTagVoList(reqDto.getUserId(),reqDto.getTags());
dataUtils.createUserTagMapping(userTagList);
ChimeUserInfoDto chimeUserInfoDto = ChimeUserInfoDto.getNew();
chimeUserInfoDto.setUserId(reqDto.getUserId());
chimeUserInfoDto.setSex(reqDto.getSex());
chimeUserInfoDto.setUserName(vo.getUid());
chimeUserInfoDto.setUserMobile(vo.getMobile());
chimeUserInfoDto.setAvatar(vo.getAvatar());
chimeUserInfoDto.setJoinPerformanceId(reqDto.getPerformanceId());
chimeUserInfoDto.setBirthday(vo.getBirthday());
chimeUserInfoDto.setSignature(vo.getSignature());
chimeUserInfoDto.setArea(vo.getArea());
List<ChimeUserTagDto> userTagList = chimeUserBiz.buildUserTagDtoList(reqDto.getUserId(), reqDto.getTags());
chimeUserInfoDto.setUserTags(userTagList);
//插入mongo
dataUtils.createChimeUser(chimeUserInfoDto);
return chimeUserInfoDto;
} catch (Exception e) {
log.error("创建社交用户异常 e:{}",e.getMessage());
}
return null; return null;
} }
...@@ -91,6 +93,8 @@ public class ChimeUserServiceImpl implements IChimeUserService { ...@@ -91,6 +93,8 @@ public class ChimeUserServiceImpl implements IChimeUserService {
chimeUserInfoVo.setUserName(vo.getUid()); chimeUserInfoVo.setUserName(vo.getUid());
chimeUserInfoVo.setUserMobile(vo.getMobile()); chimeUserInfoVo.setUserMobile(vo.getMobile());
chimeUserInfoVo.setAvatar(vo.getAvatar()); chimeUserInfoVo.setAvatar(vo.getAvatar());
List<ChimeUserTagsMappingVo> userTagList = chimeUserBiz.buildUserTagVoList(reqDto.getUserId(),reqDto.getTags());
chimeUserInfoVo.setUserTagsVoList(userTagList);
dataUtils.updateChimeUser(chimeUserInfoVo); dataUtils.updateChimeUser(chimeUserInfoVo);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
......
...@@ -45,6 +45,13 @@ public class DataUtils { ...@@ -45,6 +45,13 @@ public class DataUtils {
mongoTemplate.save(chimeUserInfoVo,ChimeUserInfoVo.class.getSimpleName()); mongoTemplate.save(chimeUserInfoVo,ChimeUserInfoVo.class.getSimpleName());
} }
/**
* 注册社交用户
*/
public void createBatchChimeUser(List<ChimeUserInfoVo> chimeUserInfoVoList){
mongoTemplate.insert(chimeUserInfoVoList,ChimeUserInfoVo.class.getSimpleName());
}
/** /**
* 修改社交用户 * 修改社交用户
* @param chimeUserInfoVo * @param chimeUserInfoVo
......
package com.liquidnet.service.chime.utils; package com.liquidnet.service.chime.utils;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.chime.dto.ChimeUserInfoDto; import com.liquidnet.service.chime.dto.ChimeUserInfoDto;
import com.liquidnet.service.chime.dto.ChimeUserTagDto;
import com.liquidnet.service.chime.dto.NewPageResult; import com.liquidnet.service.chime.dto.NewPageResult;
import java.util.ArrayList;
public class ObjectUtil { public class ObjectUtil {
private static final NewPageResult<ChimeUserInfoDto> chimeUserInfoDtoPagedResult = new NewPageResult<>(); private static final NewPageResult<ChimeUserInfoDto> chimeUserInfoDtoPagedResult = new NewPageResult<>();
private static final ArrayList<ChimeUserTagDto> chimeUserTagDtoList = new ArrayList<>();
public static NewPageResult<ChimeUserInfoDto> getChimeUserInfoDtoPagedResult() { public static NewPageResult<ChimeUserInfoDto> getChimeUserInfoDtoPagedResult() {
return chimeUserInfoDtoPagedResult.clone(); return chimeUserInfoDtoPagedResult.clone();
} }
public static ArrayList<ChimeUserTagDto> getChimeUserTagDtoList() {
return (ArrayList<ChimeUserTagDto>)chimeUserTagDtoList.clone();
}
} }
...@@ -28,7 +28,8 @@ public class TestShumei { ...@@ -28,7 +28,8 @@ public class TestShumei {
public void checkText(){ public void checkText(){
// System.out.println(shumeiUtil.checkText("user123","甜梅号的小茉莉")); // System.out.println(shumeiUtil.checkText("user123","甜梅号的小茉莉"));
System.out.println(shumeiUtil.checkText("user123","158****8858")); // System.out.println(shumeiUtil.checkText("user123","158****8858"));
System.out.println(shumeiUtil.checkText("user123","投毒"));
} }
@Test @Test
public void checkImage(){ public void checkImage(){
......
spring:
application:
name: liquidnet-support-eureka
profiles:
active: dev-server1
\ No newline at end of file
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