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

Commit 765c3245 authored by 张国柄's avatar 张国柄

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

# Conflicts:
#	liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/vo/mongo/KylinPerformanceVo.java
#	liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/kylin/KylinPerformancesController.java
#	liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/service/impl/KylinPerformancesAdminServiceImpl.java
#	liquidnet-bus-config/liquidnet-config/application-dev.yml
#	liquidnet-bus-config/liquidnet-config/application-test.yml
#	liquidnet-bus-config/liquidnet-config/liquidnet-service-order-dev.yml
#	liquidnet-bus-config/liquidnet-config/liquidnet-service-order-test.yml
#	liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/entity/KylinPerformanceStatus.java
#	liquidnet-bus-do/liquidnet-service-kylin-do/src/main/resources/com.liquidnet.service.kylin.mapper/KylinPerformancesMapper.xml
#	liquidnet-bus-feign/liquidnet-api-feign-kylin/src/main/java/com/liquidnet/service/feign/kylin/api/FeignKylinForChimeClient.java
#	liquidnet-bus-feign/liquidnet-api-feign-kylin/src/main/java/com/liquidnet/service/feign/kylin/config/SecuringRequestInterceptor.java
#	liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinOrderTicketsServiceImpl.java
#	liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinPerformancesServiceImpl.java
#	liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/utils/DataUtils.java
parents b895564a b12c8daf
...@@ -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);
} }
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>liquidnet-bus-api</artifactId>
<groupId>com.liquidnet</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>liquidnet-service-chime-api</artifactId>
<dependencies>
<!-- <dependency>-->
<!-- <groupId>com.liquidnet</groupId>-->
<!-- <artifactId>liquidnet-service-chime-do</artifactId>-->
<!-- <version>1.0-SNAPSHOT</version>-->
<!-- <scope>compile</scope>-->
<!-- </dependency>-->
</dependencies>
</project>
package com.liquidnet.service.chime.constant;
import com.liquidnet.commons.lang.util.IDGenerator;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeConstant
* @Package com.liquidnet.service.chime.constant
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/9 10:59
*/
public class ChimeConstant {
public static String USER_ID_PREFIX = "CHE";
public static String getNewUserId(){
return USER_ID_PREFIX + IDGenerator.nextTimeId();
}
}
package com.liquidnet.service.chime.dto;
import lombok.Data;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeJoinUserCountDto
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/12 15:49
*/
@Data
public class ChimeJoinUserCountDto{
private String performancesId;
private Integer count;
private List<String> avatarImgList;
private static final ChimeJoinUserCountDto obj = new ChimeJoinUserCountDto();
public static ChimeJoinUserCountDto getNew() {
try {
return (ChimeJoinUserCountDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeJoinUserCountDto();
}
}
}
package com.liquidnet.service.chime.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserInfoDto
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/8 15:17
*/
@Data
public class ChimeUserInfoDto {
private static final long serialVersionUID = 5325511589667456213L;
@ApiModelProperty(position = 0, value = "用户ID[64]")
private String userId;
@ApiModelProperty(position = 1, value = "用户社交密码")
private String passWord;
@ApiModelProperty(position = 2, value = "性别")
private String sex;
@ApiModelProperty(position = 2, value = "用户昵称")
private String userName;
@ApiModelProperty(position = 3, value = "用户手机号")
private String userMobile;
@ApiModelProperty(position = 4, value = "头像")
private String avatar;
@ApiModelProperty(position = 4, value = "封面")
private String userCover;
@ApiModelProperty(position = 6, value = "生日")
private String birthday;
@ApiModelProperty(position = 7, value = "签名")
private String signature;
@ApiModelProperty(position = 8, value = "常住地/区域")
private String area;
@ApiModelProperty(position = 9, value = "在场ID")
private String joinPerformanceId;
@ApiModelProperty(position = 10, value = "用户标签")
private List<ChimeUserTagDto> userTags;
private static final ChimeUserInfoDto obj = new ChimeUserInfoDto();
public static ChimeUserInfoDto getNew() {
try {
return (ChimeUserInfoDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserInfoDto();
}
}
}
package com.liquidnet.service.chime.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserListQueryReqDto
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/9 12:05
*/
@Data
public class ChimeUserListQueryReqDto {
@ApiModelProperty(position = 0, value = "演出ID", example = "")
private String performanceId;
@ApiModelProperty(position = 1, value = "性别", example = "")
private String sex;
@ApiModelProperty(value = "兴趣标签", example = "")
private String tags;
@ApiModelProperty(value = "每页记录数", example = "20")
@NotNull(message = "每页记录数不能为空")
private Integer pageSize;
@ApiModelProperty(value = "当前页", example = "0")
@NotNull(message = "当前页不能为空")
private Integer pageNum;
@ApiModelProperty(value = "排序字段", hidden = true)
private String orderItem;
@ApiModelProperty(value = "排序方式", hidden = true)
private String orderSc;
private static final ChimeUserListQueryReqDto obj = new ChimeUserListQueryReqDto();
public static ChimeUserListQueryReqDto getNew() {
try {
return (ChimeUserListQueryReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserListQueryReqDto();
}
}
}
package com.liquidnet.service.chime.dto;
import com.liquidnet.commons.lang.util.JsonUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserRegisterReqDto
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/8 16:11
*/
@Data
public class ChimeUserRegisterReqDto {
@ApiModelProperty(position = 0, value = "用户id", example = "")
private String userId;
private String nickName;
private String sex;
private String tags;
private String performanceId;
@Override
public String toString(){
return JsonUtils.toJson(this);
}
private static final ChimeUserRegisterReqDto obj = new ChimeUserRegisterReqDto();
public static ChimeUserRegisterReqDto getNew() {
try {
return (ChimeUserRegisterReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserRegisterReqDto();
}
}
}
package com.liquidnet.service.chime.dto;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.JsonUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserRegisterRespDto
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/8 16:11
*/
@Data
public class ChimeUserRegisterRespDto {
private String uuid;
private String type;
@ApiModelProperty(value = "创建时间")
// @JsonDeserialize(using = LocalDateTimeDeserializer.class)
// @JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS", timezone = "GMT+8")
private LocalDateTime created; //1630929604985
@ApiModelProperty(value = "修改时间")
// @JsonDeserialize(using = LocalDateTimeDeserializer.class)
// @JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS", timezone = "GMT+8")
private LocalDateTime modified;
private String username;
private Boolean activated;
private String nickname;
@Override
public String toString(){
return JsonUtils.toJson(this);
}
private static final ChimeUserRegisterRespDto obj = new ChimeUserRegisterRespDto();
public static ChimeUserRegisterRespDto getNew() {
try {
return (ChimeUserRegisterRespDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserRegisterRespDto();
}
}
public static void main(String[] args) {
String ss = "{\"uuid\":\"3f6a2b20-1085-11ec-9941-bd3851758eda\",\"type\":\"user\",\"created\":1631092502233,\"modified\":1631092502233,\"username\":\"anjiabin5\",\"activated\":true,\"nickname\":\"anjiabin5-nickname\"}";
// ChimeUserRegisterRespDto respDto = JsonUtils.fromJson(ss,ChimeUserRegisterRespDto.class);
ChimeUserRegisterRespDto respDto = JSONObject.parseObject(ss,ChimeUserRegisterRespDto.class);
System.out.println("ChimeUserRegisterRespDto==="+respDto.toString());
}
}
package com.liquidnet.service.chime.dto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserTagsMappingVo
* @Package com.liquidnet.service.chime.vo.mongo
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/3 16:50
*/
@ApiModel(value = "ChimeUserTagDto", description = "社交用户标签")
@Data
public class ChimeUserTagDto {
private static final long serialVersionUID = 5325511589667456214L;
@ApiModelProperty(position = 0, value = "用户ID[64]")
@JsonIgnore
private String userId;
@ApiModelProperty(position = 1, value = "标签code")
private String tagCode;
@ApiModelProperty(position = 2, value = "标签描述")
private String tagDesc;
private static final ChimeUserTagDto obj = new ChimeUserTagDto();
public static ChimeUserTagDto getNew() {
try {
return (ChimeUserTagDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserTagDto();
}
}
}
package com.liquidnet.service.chime.dto;
import com.liquidnet.commons.lang.util.JsonUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserRegisterReqDto
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/8 16:11
*/
@Data
public class ChimeUserUpdateReqDto {
@ApiModelProperty(position = 0, value = "用户id", example = "")
private String userId;
private String nickName;
private String sex;
private String tags;
@Override
public String toString(){
return JsonUtils.toJson(this);
}
private static final ChimeUserUpdateReqDto obj = new ChimeUserUpdateReqDto();
public static ChimeUserUpdateReqDto getNew() {
try {
return (ChimeUserUpdateReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserUpdateReqDto();
}
}
}
package com.liquidnet.service.chime.dto;
import java.io.Serializable;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: NewPageResult
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/13 10:49
*/
public class NewPageResult<T> implements Serializable, Cloneable {
private static final long serialVersionUID = 8141034447809038759L;
/**
* 当前页数
*/
private int currentPage = 1;
/**
* 每页记录数
*/
private int pageSize = 10;
/**
* 总页数
*/
private int pages;
/**
* 总记录数
*/
private long total;
private boolean isOnline;
/**
* 分页数据
*/
private List<T> list;
public NewPageResult() {
}
public int getPages() {
return pages;
}
// public NewPageResult<T> setTotalPages(int totalPages) {
// this.totalPages = totalPages;
// return this;
// }
public long getTotal() {
return total;
}
public NewPageResult<T> setTotal(long total, int pageSize) {
this.total = total;
if (total == -1L) {
this.pages = 1;
} else {
if (pageSize > 0) {
this.pages = (int) (total / pageSize + (total % pageSize == 0L ? 0 : 1));
} else {
this.pages = 0;
}
}
return this;
}
public List<T> getList() {
return list;
}
public NewPageResult<T> setList(List<T> list) {
this.list = list;
return this;
}
@Override
public NewPageResult<T> clone() {
try {
return (NewPageResult<T>) super.clone();
} catch (CloneNotSupportedException e) {
return new NewPageResult<>();
}
}
public static long getSerialVersionUID() {
return serialVersionUID;
}
public int getCurrentPage() {
return currentPage;
}
public NewPageResult<T> setCurrentPage(int currentPage) {
this.currentPage = currentPage;
return this;
}
public int getPageSize() {
return pageSize;
}
public NewPageResult<T> setPageSize(int pageSize) {
this.pageSize = pageSize;
return this;
}
public boolean isFirst()
{
return (this.currentPage == 1) || (this.total == 0);
}
public boolean isLast() {
return (this.total == 0) || (this.currentPage >= this.pages);
}
public boolean isHasNext()
{
return this.currentPage < this.pages;
}
public boolean isHasPrev() {
return this.currentPage > 1;
}
public Integer getNextPage()
{
if (this.currentPage >= this.pages) {
return Integer.valueOf(this.pages);
}
return Integer.valueOf(this.currentPage + 1);
}
public Integer getPrevPage() {
if (this.currentPage <= 1) {
return Integer.valueOf(1);
}
return Integer.valueOf(this.currentPage - 1);
}
public void setPages(int pages) {
this.pages = pages;
}
public void setTotal(long total) {
this.total = total;
}
public boolean getIsOnline() {
return isOnline;
}
public void setIsOnline(boolean online) {
isOnline = online;
}
}
package com.liquidnet.service.chime.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: PerformanceDto
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/3 18:26
*/
@Data
public class PerformanceDto {
@ApiModelProperty(value = "演出id")
private String performancesId;
@ApiModelProperty(value = "演出名称")
private String title;
@ApiModelProperty(value = "演出海报")
private String imgPoster;
@ApiModelProperty(value = "演出开始时间")
private String timeStart;
@ApiModelProperty(value = "演出结束时间")
private String timeEnd;
@ApiModelProperty(value = "演出地点")
private String cityName;
@ApiModelProperty(value = "场地名称")
private String fieldName;
@ApiModelProperty(value = "在场人数")
private Integer joinUserCount;
@ApiModelProperty(value = "小头像")
private List<String> avatarImgList;
private static final PerformanceDto obj = new PerformanceDto();
public static PerformanceDto getNew() {
try {
return (PerformanceDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new PerformanceDto();
}
}
}
package com.liquidnet.service.chime.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserListQueryReqDto
* @Package com.liquidnet.service.chime.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/9 12:05
*/
@Data
public class PerformanceQueryReqDto {
@ApiModelProperty(position = 0,value = "演出ID", example = "")
private String performanceId;
@ApiModelProperty(position = 1,value = "排序类型 1创建时间倒序 2创建时间正序 3演出时间倒序 4演出时间正序", example = "0")
@NotNull(message = "排序类型不能为空")
private Integer orderType;
@ApiModelProperty(value = "每页记录数", example = "20")
@NotNull(message = "每页记录数不能为空")
private Integer pageSize;
@ApiModelProperty(value = "当前页", example = "0")
@NotNull(message = "当前页不能为空")
private Integer pageNum;
@ApiModelProperty(value = "排序字段", hidden = true)
private String orderItem;
@ApiModelProperty(value = "排序方式", hidden = true)
private String orderSc;
public void setOrderType(Integer orderType) {
this.orderType = orderType;
switch (orderType) {
case 1: {
orderItem = "created_at";
orderSc = "desc";
break;
}
case 2: {
orderItem = "created_at";
orderSc = "asc";
break;
}
case 3: {
orderItem = "time_start";
orderSc = "desc";
break;
}
case 4: {
orderItem = "time_start";
orderSc = "asc";
break;
}
}
}
private static final PerformanceQueryReqDto obj = new PerformanceQueryReqDto();
public static PerformanceQueryReqDto getNew() {
try {
return (PerformanceQueryReqDto) obj.clone();
} catch (CloneNotSupportedException e) {
return new PerformanceQueryReqDto();
}
}
}
package com.liquidnet.service.chime.service;
import com.liquidnet.service.chime.dto.ChimeUserInfoDto;
import com.liquidnet.service.chime.dto.ChimeUserListQueryReqDto;
import com.liquidnet.service.chime.dto.NewPageResult;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: IChimePerformanceService
* @Package com.liquidnet.service.chime.service
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/9 12:03
*/
public interface IChimePerformanceService {
NewPageResult<ChimeUserInfoDto> getUserListByCon(ChimeUserListQueryReqDto reqDto);
}
package com.liquidnet.service.chime.service;
import com.alibaba.fastjson.JSONObject;
import com.liquidnet.service.chime.dto.ChimeUserInfoDto;
import com.liquidnet.service.chime.dto.ChimeUserRegisterReqDto;
import com.liquidnet.service.chime.dto.ChimeUserUpdateReqDto;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: IChimeUserService
* @Package com.liquidnet.service.chime.service
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/8 16:14
*/
public interface IChimeUserService {
/**
* 社交用户注册
* @param reqDto
* @return
*/
JSONObject register(ChimeUserRegisterReqDto reqDto);
ChimeUserInfoDto createChimeUserInfo(ChimeUserRegisterReqDto reqDto);
boolean updateUserInfo(ChimeUserUpdateReqDto reqDto);
boolean updateUserTags(ChimeUserUpdateReqDto reqDto);
ChimeUserInfoDto getUserByUserId(String userId);
boolean switchPerformanceId(String performanceId);
}
package com.liquidnet.service.chime.vo.mongo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserTagsMappingVo
* @Package com.liquidnet.service.chime.vo.mongo
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/3 16:50
*/
@ApiModel(value = "ChimeUserInfoVo", description = "社交用户信息")
@Data
public class ChimeUserInfoVo {
private String mid;
private static final long serialVersionUID = 5325511589667456213L;
@ApiModelProperty(position = 0, value = "用户ID[64]")
private String userId;
@ApiModelProperty(position = 1, value = "性别")
private String sex;
@ApiModelProperty(position = 2, value = "用户昵称")
private String userName;
@ApiModelProperty(position = 3, value = "用户手机号")
private String userMobile;
@ApiModelProperty(position = 4, value = "头像")
private String avatar;
@ApiModelProperty(position = 5, value = "生日")
private String birthday;
@ApiModelProperty(position = 6, value = "签名")
private String signature;
@ApiModelProperty(position = 7, value = "常住地/区域")
private String area;
@ApiModelProperty(position = 8, value = "在场ID")
private String joinPerformanceId;
@ApiModelProperty(position = 9,value = "用户标签")
private List<ChimeUserTagsMappingVo> userTagsVoList;
private static final ChimeUserInfoVo obj = new ChimeUserInfoVo();
public static ChimeUserInfoVo getNew() {
try {
return (ChimeUserInfoVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserInfoVo();
}
}
}
package com.liquidnet.service.chime.vo.mongo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserTagsMappingVo
* @Package com.liquidnet.service.chime.vo.mongo
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/3 16:50
*/
@ApiModel(value = "ChimeUserTagsMappingVo", description = "社交用户标签映射表")
@Data
public class ChimeUserTagsMappingVo {
private static final long serialVersionUID = 5325511589667456214L;
@ApiModelProperty(position = 0, value = "用户ID[64]")
private String userId;
@ApiModelProperty(position = 1, value = "标签code")
private String tagCode;
@ApiModelProperty(position = 2, value = "标签描述")
private String tagDesc;
private static final ChimeUserTagsMappingVo obj = new ChimeUserTagsMappingVo();
public static ChimeUserTagsMappingVo getNew() {
try {
return (ChimeUserTagsMappingVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new ChimeUserTagsMappingVo();
}
}
}
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
<module>liquidnet-service-adam-api</module> <module>liquidnet-service-adam-api</module>
<module>liquidnet-service-kylin-api</module> <module>liquidnet-service-kylin-api</module>
<module>liquidnet-service-dragon-api</module> <module>liquidnet-service-dragon-api</module>
<module>liquidnet-service-chime-api</module>
<module>liquidnet-service-candy-api</module> <module>liquidnet-service-candy-api</module>
</modules> </modules>
<dependencies> <dependencies>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -601,9 +601,9 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma ...@@ -601,9 +601,9 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
@Override @Override
public String changeTransferConfig(String performancesId, public String changeTransferConfig(String performancesId,
Integer isCanTransfer, Integer isCanTransfer,
String transferStartTime, String transferStartTime,
String transferEndTime) { String transferEndTime) {
KylinPerformanceStatus kylinPerformanceStatusData = performanceStatusMapper.selectOne(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId)); KylinPerformanceStatus kylinPerformanceStatusData = performanceStatusMapper.selectOne(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId));
if(kylinPerformanceStatusData.getIsCanRefund().equals(1) && isCanTransfer.equals(1)){ if(kylinPerformanceStatusData.getIsCanRefund().equals(1) && isCanTransfer.equals(1)){
return "修改失败,演出已开启退款"; return "修改失败,演出已开启退款";
...@@ -630,12 +630,12 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma ...@@ -630,12 +630,12 @@ public class KylinPerformancesAdminServiceImpl extends ServiceImpl<KylinPerforma
@Override @Override
public String changeRefundConfig(String performancesId, public String changeRefundConfig(String performancesId,
Integer isCanRefund, Integer isCanRefund,
String refundOpenTime, String refundOpenTime,
String refundCloseTime, String refundCloseTime,
Integer isRefundPoundage, Integer isRefundPoundage,
Integer isRefundVoucher, Integer isRefundVoucher,
Integer isRefundExpress) { Integer isRefundExpress) {
KylinPerformanceStatus kylinPerformanceStatusData = performanceStatusMapper.selectOne(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId)); KylinPerformanceStatus kylinPerformanceStatusData = performanceStatusMapper.selectOne(new UpdateWrapper<KylinPerformanceStatus>().eq("performance_id", performancesId));
if(kylinPerformanceStatusData.getIsTransfer().equals(1) && isCanRefund.equals(1)){ if(kylinPerformanceStatusData.getIsTransfer().equals(1) && isCanRefund.equals(1)){
return "修改失败,演出已开启转赠"; return "修改失败,演出已开启转赠";
......
package com.liquidnet.commons.lang.util; package com.liquidnet.commons.lang.util;
import com.alibaba.fastjson.JSONObject;
import com.liquidnet.commons.lang.util.spring.RestTemplateConfig; import com.liquidnet.commons.lang.util.spring.RestTemplateConfig;
import org.springframework.http.*; import org.springframework.http.*;
import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.LinkedMultiValueMap;
...@@ -64,6 +65,91 @@ public class HttpUtil { ...@@ -64,6 +65,91 @@ public class HttpUtil {
return request(url, params, headers, HttpMethod.POST); return request(url, params, headers, HttpMethod.POST);
} }
public static String postJson(String url,String jsonStr) {
MultiValueMap<String, String> headers = new LinkedMultiValueMap();
headers.add("Content-Type", "application/json;charset=UTF-8");
headers.add("Accept", "application/json;charset=UTF-8");
if (url == null || url.trim().isEmpty()) {
return null;
}
// header
HttpHeaders httpHeaders = new HttpHeaders();
if (headers != null) {
httpHeaders.addAll(headers);
}
HttpEntity<Object> httpEntity = new HttpEntity(jsonStr, httpHeaders);
// 提交方式:表单、json
Object respObj = restTemplate.postForEntity(url,httpEntity,Object.class).getBody();;
return JsonUtils.toJson(respObj);
}
public static String postJson(String url,String jsonStr,MultiValueMap<String, String> headers) {
MultiValueMap<String, String> commonHeader = new LinkedMultiValueMap();
commonHeader.add("Content-Type", "application/json;charset=UTF-8");
commonHeader.add("Accept", "application/json;charset=UTF-8");
if (url == null || url.trim().isEmpty()) {
return null;
}
// header
HttpHeaders httpHeaders = new HttpHeaders();
if (commonHeader != null) {
httpHeaders.addAll(commonHeader);
}
if (headers != null) {
httpHeaders.addAll(headers);
}
HttpEntity<Object> httpEntity = new HttpEntity(jsonStr, httpHeaders);
// 提交方式:表单、json
// ResponseEntity<String> response = restTemplate.exchange(url, method, httpEntity, String.class);
Object respObj = restTemplate.postForEntity(url,httpEntity,Object.class).getBody();;
return JsonUtils.toJson(respObj);
}
/**
* josn post提交
* @param url
* @param jsonParam
* @return
*/
public static JSONObject httpPost(String url, JSONObject jsonParam) {
JSONObject rsResultObj = null;
String result = null;
try {
MultiValueMap<String, String> commonHeader = new LinkedMultiValueMap();
commonHeader.add("Content-Type", "application/json;charset=UTF-8");
commonHeader.add("Accept", "application/json;charset=UTF-8");
if (url == null || url.trim().isEmpty()) {
return null;
}
// header
HttpHeaders httpHeaders = new HttpHeaders();
if (commonHeader != null) {
httpHeaders.addAll(commonHeader);
}
HttpEntity<String> httpEntity = new HttpEntity(jsonParam, httpHeaders);
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
if (response.getStatusCodeValue() == 200) {
result = response.getBody();
}
} catch (Exception e) {
System.out.println("posturl:" + url + ", err=" + e.getMessage());
}
if(result!=null){
rsResultObj = JSONObject.parseObject(result);
}
return rsResultObj;
}
/** /**
* post请求 * post请求
* *
......
...@@ -5,7 +5,16 @@ import java.util.List; ...@@ -5,7 +5,16 @@ import java.util.List;
public class PagedResult<T> implements Serializable, Cloneable { public class PagedResult<T> implements Serializable, Cloneable {
private static final long serialVersionUID = 8141034447809038759L; private static final long serialVersionUID = 8141034447809038759L;
/** /**
* 当前页数
*/
private int currentPage = 1;
/**
* 每页记录数
*/
private int pageSize = 10;
/**
* 总页数 * 总页数
*/ */
private int pages; private int pages;
...@@ -65,4 +74,58 @@ public class PagedResult<T> implements Serializable, Cloneable { ...@@ -65,4 +74,58 @@ public class PagedResult<T> implements Serializable, Cloneable {
return new PagedResult<>(); return new PagedResult<>();
} }
} }
public static long getSerialVersionUID() {
return serialVersionUID;
}
public int getCurrentPage() {
return currentPage;
}
public PagedResult<T> setCurrentPage(int currentPage) {
this.currentPage = currentPage;
return this;
}
public int getPageSize() {
return pageSize;
}
public PagedResult<T> setPageSize(int pageSize) {
this.pageSize = pageSize;
return this;
}
public boolean isFirst()
{
return (this.currentPage == 1) || (this.total == 0);
}
public boolean isLast() {
return (this.total == 0) || (this.currentPage >= this.pages);
}
public boolean isHasNext()
{
return this.currentPage < this.pages;
}
public boolean isHasPrev() {
return this.currentPage > 1;
}
public Integer getNextPage()
{
if (this.currentPage >= this.pages) {
return Integer.valueOf(this.pages);
}
return Integer.valueOf(this.currentPage + 1);
}
public Integer getPrevPage() {
if (this.currentPage <= 1) {
return Integer.valueOf(1);
}
return Integer.valueOf(this.currentPage - 1);
}
} }
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>liquidnet-common-third</artifactId>
<groupId>com.liquidnet</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>liquidnet-common-third-easemob</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-common-base</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-common-cache-redis</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.easemob.im</groupId>
<artifactId>im-sdk-core</artifactId>
<version>0.3.0</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-bom</artifactId>
<version>4.1.59.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-bom</artifactId>
<version>2020.0.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
\ No newline at end of file
package com.liquidnet.common.third.easemob.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: EasemobConfig
* @Package com.liquidnet.common.third.easemob.config
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/7 10:42
*/
@Configuration
public class EasemobConfig {
@Value("${liquidnet.easemob.api-url}")
private String REQUEST_HOST;
@Value("${liquidnet.easemob.org-name}")
private String ORG_NAME;
@Value("${liquidnet.easemob.app-name}")
private String APP_NAME;
@Value("${liquidnet.easemob.client-id}")
private String CLIENT_ID;
@Value("${liquidnet.easemob.client-secret}")
private String CLIENT_SECRET;
// private String APPKEY = easemobConfig.ORG_NAME+"#"+this.APP_NAME;
public String getPreUrl() {
return REQUEST_HOST + "/" + ORG_NAME + "/" + APP_NAME;
}
public String getClientId() {
return this.CLIENT_ID;
}
public String getClientSecret() {
return this.CLIENT_SECRET;
}
}
package com.liquidnet.common.third.easemob.constant;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: EasemobConstant
* @Package com.liquidnet.common.third.easemob.constant
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/7 10:43
*/
public class EasemobConstant {
//获取api访问token 默认60天
public static String GET_TOKEN_URL = "/token";
//api访问过期时间
public static String API_ACCESS_TOKEN_REDIS_KEY = "chime:easemob:API_ACCESS_KEY";
//单位 秒 默认30天
public static long API_ACCESS_TOKEN_EXPIRES_TIME_SECOND = 2592000;
//注册单个用户
public static String CREATE_USER_URL = "/users";
}
package com.liquidnet.common.third.easemob.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: CreateUserRespDto
* @Package com.liquidnet.common.third.easemob.dto
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/7 14:31
*/
@Data
public class CreateUserRespDto {
@JsonProperty("uuid")
private String uuid;
@JsonProperty("type")
private String type;
@JsonProperty("created")
private LocalDateTime created;
@JsonProperty("modified")
private LocalDateTime modified;
@JsonProperty("username")
private String username;
@JsonProperty("activated")
private boolean activated;
@Override
public String toString() {
return "UserResource{" +
"username='" + username + '\'' +
", uuid='" + uuid + '\'' +
", type='" + type + '\'' +
", created='" + created + '\'' +
", modified='" + modified + '\'' +
", activated=" + activated +
'}';
}
}
package com.liquidnet.common.third.easemob.util;
import com.alibaba.fastjson.JSONObject;
import com.easemob.im.server.api.token.allocate.TokenResponse;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.third.easemob.config.EasemobConfig;
import com.liquidnet.common.third.easemob.constant.EasemobConstant;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.HttpClientErrorException;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: EasemobUtil
* @Package com.liquidnet.common.third.easemob.util
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/6 16:08
*/
@Slf4j
@Component
public class EasemobUtil{
@Autowired
private EasemobConfig easemobConfig;
@Autowired
private RedisUtil redisUtil;
private String getAccessToken(){
//构造请求参数
// LinkedMultiValueMap<String, String> reqParam = CollectionUtil.linkedMultiValueMapStringString();
// reqParam.add("grant_type", "client_credentials");
// reqParam.add("client_id",CLIENT_ID);
// reqParam.add("client_secret", CLIENT_SECRET);
Object redisValue = redisUtil.get(EasemobConstant.API_ACCESS_TOKEN_REDIS_KEY);
if(StringUtil.isNotNull(redisValue)&&StringUtil.isNotBlank(redisValue.toString())){
log.info("getAccessToken cache token : {} ",redisValue);
return redisValue.toString();
}
JSONObject json = new JSONObject();
json.put("grant_type", "client_credentials");
json.put("client_id", easemobConfig.getClientId());
json.put("client_secret", easemobConfig.getClientSecret());
String requestUrl = easemobConfig.getPreUrl() + EasemobConstant.GET_TOKEN_URL;
log.info("getAccessToken--->>> request url : {} body : {} ",requestUrl, json.toString());
String response = HttpUtil.postJson(requestUrl,json.toString());
log.info("getAccessToken--->>> response : {} ",response);
TokenResponse tokenResponse = JsonUtils.fromJson(response,TokenResponse.class);
log.info("getAccessToken--->>> response access_token : {} ",tokenResponse.asToken().getValue());
log.info("getAccessToken--->>> token isValid json : {} ",tokenResponse.asToken().isValid());
//设置缓存
String token = tokenResponse.asToken().getValue();
redisUtil.set(EasemobConstant.API_ACCESS_TOKEN_REDIS_KEY,token,EasemobConstant.API_ACCESS_TOKEN_EXPIRES_TIME_SECOND);
return token;
//result
// {application=c785eced-c603-41c3-afe8-13ee3378540c, access_token=YWMt_rE7Rg8DEeyy6gf--JvBcwAAAAAAAAAAAAAAAAAAAAHHheztxgNBw6_oE-4zeFQMAgMAAAF7utOj1gBPGgANws4VZcHltyc-SPep4q09E0mqitzKe5IA6Npu-MqLBg, expires_in=5184000}
//YWMtofR7bg8FEeyuuledizf-EgAAAAAAAAAAAAAAAAAAAAHHheztxgNBw6_oE-4zeFQMAgMAAAF7ut5fhQBPGgA4h21-XSZ9vq_q69wQlp3racC2cpUtlNHJfma547Ygkg
}
public void createUser(String userName,String password){
this.createUser(userName,password,null);
}
public String createUser(String userName, String password, String nickName){
MultiValueMap<String, String> commonHeader = new LinkedMultiValueMap();
commonHeader.add("Authorization", "Bearer "+this.getAccessToken());
JSONObject json = new JSONObject();
json.put("username", userName);
json.put("password", password);
if(StringUtil.isNotEmpty(nickName)){
json.put("nickname", nickName);
}
String requestUrl = easemobConfig.getPreUrl() + EasemobConstant.CREATE_USER_URL;
log.info("createUsers--->>> request url : {} body : {} ",requestUrl, json.toString());
String response = null;
// ObjectNode objectNode = JsonUtils.OM().createObjectNode();
try {
response = HttpUtil.postJson(requestUrl,json.toString(),commonHeader);
}
catch(HttpClientErrorException e){
if(e.getRawStatusCode() == 400){
JSONObject jsonObject = JsonUtils.fromJson(e.getResponseBodyAsString(), new TypeReference<JSONObject>() {});
log.info("createUser error : {}",jsonObject.get("error"));
log.info("createUser error_description : {}",jsonObject.get("error_description"));
return jsonObject.toJSONString();
}
}catch (Exception e) {
e.printStackTrace();
log.error("createUser error : {}",e);
}
log.info("createUsers--->>> response : {} ",response);
ObjectNode jsonObject = JsonUtils.fromJson(response,ObjectNode.class);
ArrayNode arrayNode = (ArrayNode)jsonObject.get("entities");
response = arrayNode.get(0).toString();
return response;
//result
// {application=c785eced-c603-41c3-afe8-13ee3378540c, access_token=YWMt_rE7Rg8DEeyy6gf--JvBcwAAAAAAAAAAAAAAAAAAAAHHheztxgNBw6_oE-4zeFQMAgMAAAF7utOj1gBPGgANws4VZcHltyc-SPep4q09E0mqitzKe5IA6Npu-MqLBg, expires_in=5184000}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>liquidnet-common-third</artifactId>
<groupId>com.liquidnet</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>liquidnet-common-third-shumei</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-common-base</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.liquidnet.common.third.shumei.biz;
import com.alibaba.fastjson.JSONObject;
import com.liquidnet.common.third.shumei.config.ShumeiConfig;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.HashMap;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ShumeiBiz
* @Package com.liquidnet.common.third.shumei.biz
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/7 18:49
*/
@Component
public class ShumeiBiz{
@Autowired
private ShumeiConfig shumeiConfig;
/**
*
* @param text
* @param userId
* @return
*/
public JSONObject checkText(String userId,String text){
HashMap<String, Object> payload = new HashMap<String, Object>();
payload.put("accessKey", shumeiConfig.getAccessKey());
payload.put("appId", "default");
payload.put("eventId", "nickname");
payload.put("type", "ALL");
HashMap<String, Object> data = new HashMap<String, Object>();
data.put("text", text);
data.put("tokenId", userId);
payload.put("data", data);
JSONObject json = JSONObject.parseObject(JsonUtils.toJson(payload));
JSONObject result = HttpUtil.httpPost(shumeiConfig.getTextUrl(), json);
return result;
}
public JSONObject checkImage(String userId,String imageUrl){
HashMap<String, Object> payload = new HashMap<String, Object>();
payload.put("accessKey", shumeiConfig.getAccessKey());
payload.put("appId", "default");
payload.put("eventId", "article");
payload.put("type", "POLITICS_PORN_AD_BAN_VIOLENCE");
//请求的数据内容,最长10MB
HashMap<String, Object> data = new HashMap<String, Object>();
// data.put("img", Utils.readFileToBase64("../files/demo.png"));
data.put("img", imageUrl);
data.put("tokenId", userId);
payload.put("data", data);
JSONObject json = JSONObject.parseObject(JsonUtils.toJson(payload));
JSONObject result = HttpUtil.httpPost(shumeiConfig.getImageUrl(), json);
return result;
}
}
package com.liquidnet.common.third.shumei.config;
import org.springframework.stereotype.Component;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 数美验证
* @class: ShumeiConfig
* @Package com.liquidnet.common.third.shumei
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/7 18:48
*/
@Component
public class ShumeiConfig {
private static final String TEXT_URL = "http://api-text-bj.fengkongcloud.com/text/v4";
private static final String IMAGE_URL = "http://api-img-bj.fengkongcloud.com/image/v4";
private static final String ACCESS_KEY = "YOtWhwTAchS5MRGL9hOf";
public String getAccessKey(){
return ACCESS_KEY;
}
public String getTextUrl(){
return TEXT_URL;
}
public String getImageUrl() {
return IMAGE_URL;
}
}
package com.liquidnet.common.third.shumei.constant;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ShumeiConstant
* @Package com.liquidnet.common.third.shumei.constant
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/8 10:40
*/
public class ShumeiConstant {
public enum ResponseCodeEnum{
SUCCESS("1100","成功"),
QPS_ULTRALIMIT ("1901","QPS 超限"),
PARAM_ILLEGAL ("1902","参数不合法"),
SERVER_FAIL("1903","服务失败"),
IMAGE_DOWNLOAD_FAIL("1911","图片下载失败"),
BALANCE_NOT_ENOUGH("9100","余额不足"),
NO_PERMISSION("9101","无权限操作");
private String code;
private String message;
ResponseCodeEnum(String code, String message) {
this.code = code;
this.message = message;
}
public String getCode() {
return code;
}
public String getMessage(){ return message;};
}
public enum RiskLevelEnum{
PASS("PASS","正常"),
REVIEW ("REVIEW","可疑"),
REJECT ("REJECT","违规");
private String code;
private String message;
RiskLevelEnum(String code, String message) {
this.code = code;
this.message = message;
}
public String getCode() {
return code;
}
public String getMessage(){ return message;};
}
}
package com.liquidnet.common.third.shumei.util;
import com.alibaba.fastjson.JSONObject;
import com.liquidnet.common.third.shumei.biz.ShumeiBiz;
import com.liquidnet.common.third.shumei.constant.ShumeiConstant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 数美工具类
* @class: ShumeiUtil
* @Package com.liquidnet.common.third.shumei.util
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/7 17:46
*/
@Slf4j
@Component
public class ShumeiUtil {
@Autowired
private ShumeiBiz shumeiBiz;
public boolean checkText(String userId,String text){
log.info("ShumeiUtil.checkText userId:{} text:{}",userId,text);
try {
JSONObject result = shumeiBiz.checkText(userId,text);
log.info("checkText result :{} ",result);
if (result != null) {
log.info("checkText result code:{} ",result.get("code"));
if (result.get("code").toString().equals(ShumeiConstant.ResponseCodeEnum.SUCCESS.getCode())) {
String riskLevel = result.get("riskLevel").toString();
log.info("checkText result riskLevel:{} ",riskLevel);
if(riskLevel.equalsIgnoreCase(ShumeiConstant.RiskLevelEnum.PASS.getCode())){
return true;
}
}
}else{
log.error("checkText result is null:{} ",result);
}
} catch (Exception e) {
log.error("ShumeiUtil.checkText error userId:{} text:{}",userId,text);
log.error("ShumeiUtil.checkText error msg:{}",e.getMessage());
return false;
}
return false;
}
public boolean checkImage(String userId,String imageUrl){
log.info("ShumeiUtil.checkImage userId:{} imageUrl:{}",userId,imageUrl);
try {
JSONObject result = shumeiBiz.checkImage(userId,imageUrl);
log.info("checkImage result :{} ",result);
if (result != null) {
log.info("checkImage result code:{} ",result.get("code"));
if (result.get("code").toString().equals(ShumeiConstant.ResponseCodeEnum.SUCCESS.getCode())) {
String riskLevel = result.get("riskLevel").toString();
String requestId = result.get("requestId").toString();
String riskDescription = result.get("riskDescription").toString();
log.info("checkImage result riskLevel:{} ",riskLevel);
log.info("checkImage result requestId:{} ",requestId);
log.info("checkImage result riskDescription:{} ",riskDescription);
if(riskLevel.equalsIgnoreCase(ShumeiConstant.RiskLevelEnum.PASS.getCode())){
return true;
}
}else{
log.info("checkImage result code:{} message:{} ",result.get("code").toString(),result.get("message").toString());
}
}else{
log.error("checkImage result is null:{} ",result);
}
} catch (Exception e) {
log.error("ShumeiUtil.checkImage error userId:{} text:{}",userId,imageUrl);
log.error("ShumeiUtil.checkImage error msg:{}",e.getMessage());
return false;
}
return false;
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>liquidnet-bus-common</artifactId>
<groupId>com.liquidnet</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>liquidnet-common-third</artifactId>
<packaging>pom</packaging>
<modules>
<module>liquidnet-common-third-easemob</module>
<module>liquidnet-common-third-shumei</module>
</modules>
</project>
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
<module>liquidnet-common-service-base</module> <module>liquidnet-common-service-base</module>
<module>liquidnet-common-feign</module> <module>liquidnet-common-feign</module>
<module>liquidnet-common-sms</module> <module>liquidnet-common-sms</module>
<module>liquidnet-common-third</module>
<!-- <module>liquidnet-common-mybatis</module>--> <!-- <module>liquidnet-common-mybatis</module>-->
</modules> </modules>
<dependencies> <dependencies>
......
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>
...@@ -505,7 +505,7 @@ ...@@ -505,7 +505,7 @@
group by kotr.performance_id,kot.user_id group by kotr.performance_id,kot.user_id
) t ) t
) AS ut ON ut.performance_id = kp.performances_id ) AS ut ON ut.performance_id = kp.performances_id
order by kt.type desc,kt.use_start asc order by kt.type desc,kt.use_start asc
</select> </select>
<select id="getPerformanceSponsorList" resultMap="performanceSponsorDaoResult"> <select id="getPerformanceSponsorList" resultMap="performanceSponsorDaoResult">
select distinct kp.sponsor_id, kp.sponsor, kp.sponsor_type select distinct kp.sponsor_id, kp.sponsor, kp.sponsor_type
...@@ -553,14 +553,14 @@ ...@@ -553,14 +553,14 @@
<select id="countExpressNumber" <select id="countExpressNumber"
resultType="com.liquidnet.service.kylin.dao.PerformanceExpressPerformanceListAdminDao"> resultType="com.liquidnet.service.kylin.dao.PerformanceExpressPerformanceListAdminDao">
SELECT SELECT
COUNT(*) total_number COUNT(*) total_number
FROM FROM
kylin_performance_relations AS pr kylin_performance_relations AS pr
LEFT JOIN kylin_order_ticket_relations AS otr ON pr.performance_id = otr.performance_id LEFT JOIN kylin_order_ticket_relations AS otr ON pr.performance_id = otr.performance_id
LEFT JOIN kylin_order_tickets AS ot ON ot.order_tickets_id = otr.order_id LEFT JOIN kylin_order_tickets AS ot ON ot.order_tickets_id = otr.order_id
LEFT JOIN kylin_order_ticket_status AS ots ON ots.order_id = otr.order_id LEFT JOIN kylin_order_ticket_status AS ots ON ots.order_id = otr.order_id
WHERE pr.performance_id = #{performancesId} WHERE pr.performance_id = #{performancesId}
AND ots.status NOT IN (0, 2, 5) AND ots.status NOT IN (0, 2, 5)
AND ot.get_ticket_type = 'express' AND ot.get_ticket_type = 'express'
</select> </select>
</mapper> </mapper>
...@@ -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;
#创建集合
db.createCollection("ChimeUserInfoVo");
#创建索引
db.ChimeUserInfoVo.createIndex({userId:"hashed"});
db.ChimeUserInfoVo.createIndex({sex:"hashed"});
db.ChimeUserInfoVo.createIndex({joinPerformanceId:"hashed"});
#创建分片
sh.enableSharding("dev_ln_scene");
sh.shardCollection("dev_ln_scene.ChimeUserInfoVo",{"userId":"hashed"});
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>liquidnet-service-chime</artifactId>
<groupId>com.liquidnet</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>liquidnet-service-chime-impl</artifactId>
<dependencies>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-common-cache-redis</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-common-cache-redisson</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-service-chime-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-common-third-easemob</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-common-third-shumei</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- 调用其他服务-->
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-api-feign-adam</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-api-feign-kylin</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-api-feign-dragon</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-api-feign-platform</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
package com.liquidnet.service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.core.env.Environment;
import java.net.InetAddress;
import java.util.Arrays;
@Slf4j
@EnableFeignClients
@SpringBootApplication(scanBasePackages = {"com.liquidnet"})
public class ServiceChimeApplication implements CommandLineRunner {
@Autowired
private Environment environment;
public static void main(String[] args) {
SpringApplication.run(ServiceChimeApplication.class, args);
}
@Override
public void run(String... strings) {
try {
log.info("\n----------------------------------------------------------\n\t" +
"Application '{}' is running! Access URLs:\n\t" +
"Local: \t\thttp://127.0.0.1:{}\n\t" +
"External: \thttp://{}:{}{}/doc.html\n\t" +
"Profile(s): \t{}\n----------------------------------------------------------",
environment.getProperty("spring.application.name"),
environment.getProperty("server.port"),
InetAddress.getLocalHost().getHostAddress(),
environment.getProperty("server.port"),
environment.getProperty("server.servlet.context-path"),
Arrays.toString(environment.getActiveProfiles()));
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.liquidnet.service.chime.biz;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.base.ResponseDto;
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.utils.DataUtils;
import com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo;
import com.liquidnet.service.feign.kylin.api.FeignKylinForChimeClient;
import com.liquidnet.service.kylin.constant.KylinPerformanceStatusEnum;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserBiz
* @Package com.liquidnet.service.chime.biz
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/11 16:16
*/
@Slf4j
@Component
public class ChimeUserBiz {
@Autowired
private DataUtils dataUtils;
@Autowired
private FeignKylinForChimeClient feignKylinForChimeClient;
/**
* Json转换list
* @param tags
* @return
*/
public List<ChimeUserTagsMappingVo> buildUserTagVoList(String userId,String tags){
List<ChimeUserTagsMappingVo> userTagList = new ArrayList<>();
if(StringUtil.isNotEmpty(tags)){
ObjectMapper mapper = new ObjectMapper();
try {
userTagList = 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
userTagList.stream().forEach(vo -> vo.setUserId(userId));
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
* @param performanceVoList
* @return
*/
public List<PerformanceDto> buildPerformanceDtoList(List<KylinPerformanceVo> performanceVoList){
List<PerformanceDto> performanceDtoList = new ArrayList<>();
//获取在场用户加入人数和指定头像列表
if(StringUtil.isEmpty(performanceVoList)){
return null;
}
List<String> performancesIdList = performanceVoList.stream().map(KylinPerformanceVo::getPerformancesId).collect(Collectors.toList());
//获取在场用户人数统计
List<ChimeJoinUserCountDto> joinUserCountDtoList = dataUtils.getJoinUserCountList(performancesIdList);
for(KylinPerformanceVo performanceVo:performanceVoList){
PerformanceDto dto = PerformanceDto.getNew();
dto.setPerformancesId(performanceVo.getPerformancesId());
dto.setTitle(performanceVo.getTitle());
dto.setImgPoster(performanceVo.getImgPoster());
dto.setTimeStart(performanceVo.getTimeStart());
dto.setTimeEnd(performanceVo.getTimeEnd());
dto.setCityName(performanceVo.getCityName());
dto.setFieldName(performanceVo.getFieldName());
//初始化
dto.setJoinUserCount(0);
if(StringUtil.isNotEmpty(joinUserCountDtoList)){
joinUserCountDtoList.stream().forEach(joinUserCountDto -> {
if(joinUserCountDto.getPerformancesId().equalsIgnoreCase(performanceVo.getPerformancesId())){
dto.setJoinUserCount(joinUserCountDto.getCount());
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);
// }
performanceDtoList.add(dto);
}
return performanceDtoList;
}
/**
* 根据演出id判断是否在场
* @param performanceId
* @return
*/
public boolean userIsOnline(String performanceId){
boolean isOnline = false;
if(StringUtil.isNotNull(performanceId)){
if(performanceId.equalsIgnoreCase("-1")){
isOnline = true;
}else{
//获取演出状态信息
ResponseDto<KylinPerformanceVo> responseDto = feignKylinForChimeClient.getDetail(performanceId);
if(responseDto.isSuccess()&&StringUtil.isNotNull(responseDto.getData())){
KylinPerformanceVo kylinPerformanceVo = responseDto.getData();
if(kylinPerformanceVo.getAppStatus() == KylinPerformanceStatusEnum.PERFORMANCESTATUS6.getIndex()
||kylinPerformanceVo.getAppStatus() == KylinPerformanceStatusEnum.PERFORMANCESTATUS8.getIndex()
||kylinPerformanceVo.getAppStatus() == KylinPerformanceStatusEnum.PERFORMANCESTATUS9.getIndex()){
isOnline = true;
}
}
//根据演出状态判断是否全部清退当前演出在场人数
if(!isOnline){
//把所有当前演出在场人清退,重置为云在场
dataUtils.updateUserIsOnline(performanceId);
}
}
}
return isOnline;
}
}
package com.liquidnet.service.chime.config;
import com.liquidnet.common.web.config.WebMvcConfig;
import com.liquidnet.common.web.filter.GlobalAuthorityInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
@Configuration
public class OrderWebMvcConfig extends WebMvcConfig {
@Autowired
GlobalAuthorityInterceptor globalAuthorityInterceptor;
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(globalAuthorityInterceptor).addPathPatterns("/**");
super.addInterceptors(registry);
}
}
//package com.liquidnet.service.chime.config;
//
//import feign.RequestInterceptor;
//import feign.RequestTemplate;
//import org.springframework.stereotype.Component;
//import org.springframework.web.context.request.RequestContextHolder;
//import org.springframework.web.context.request.ServletRequestAttributes;
//import javax.servlet.http.HttpServletRequest;
//import java.util.Enumeration;
//
///**
// * @author AnJiabin <anjiabin@zhengzai.tv>
// * @version V1.0
// * @Description: 解决feign调用传递header问题
// * @class: SecuringRequestInterceptor
// * @Package com.liquidnet.service.chime.config
// * @Copyright: LightNet @ Copyright (c) 2021
// * @date 2021/9/11 19:22
// */
//@Component
//public class SecuringRequestInterceptor implements RequestInterceptor {
// @Override
// public void apply(RequestTemplate requestTemplate) {
// ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
// .getRequestAttributes();
// HttpServletRequest request = attributes.getRequest();
// Enumeration<String> headerNames = request.getHeaderNames();
// if (headerNames != null) {
// while (headerNames.hasMoreElements()) {
// String name = headerNames.nextElement();
// String values = request.getHeader(name);
// requestTemplate.header(name, values);
// }
// }
// }
//}
\ No newline at end of file
package com.liquidnet.service.chime.controller;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.type.TypeReference;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.chime.biz.ChimeUserBiz;
import com.liquidnet.service.chime.dto.ChimeUserInfoDto;
import com.liquidnet.service.chime.dto.ChimeUserListQueryReqDto;
import com.liquidnet.service.chime.dto.NewPageResult;
import com.liquidnet.service.chime.dto.PerformanceDto;
import com.liquidnet.service.chime.service.IChimePerformanceService;
import com.liquidnet.service.chime.service.IChimeUserService;
import com.liquidnet.service.feign.kylin.api.FeignKylinForChimeClient;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import io.swagger.annotations.Api;
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.validation.annotation.Validated;
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 java.util.HashMap;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 演出相关
* @class: ChimePerformanceController
* @Package com.liquidnet.service.chime.controller
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/6 11:43
*/
@Api(tags = "在场-演出相关")
@RestController
@RequestMapping("performance")
@Validated
public class ChimePerformanceController {
@Autowired
private IChimePerformanceService chimePerformanceService;
@Autowired
private IChimeUserService chimeUserService;
@Autowired
private FeignKylinForChimeClient feignKylinForChimeClient;
@Autowired
private ChimeUserBiz chimeUserBiz;
@GetMapping("myPerformanceList")
@ApiOperation("已购票的演出")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "userId", value = "用户id", required = true),
@ApiImplicitParam(type = "query", dataType = "int", name = "page", value = "页码"),
@ApiImplicitParam(type = "query", dataType = "int", name = "size", value = "每页数量"),
@ApiImplicitParam(type = "query", dataType = "String", name = "orderBy", value = "排序字段 时间timeStart"),
@ApiImplicitParam(type = "query", dataType = "String", name = "sort", value = "排序方式[DESC ASC]"),
})
public ResponseDto<List<PerformanceDto>> myPerformanceList(
@RequestParam(defaultValue = "") String userId,
@RequestParam(defaultValue = "1") int page,
@RequestParam(defaultValue = "10") int size,
@RequestParam(defaultValue = "") String orderBy,
@RequestParam(defaultValue = "") String sort
) {
// List<PerformanceDto> performanceDtoList = new ArrayList<>();
// for(int i=0;i<10;i++){
// PerformanceDto dto = PerformanceDto.getNew();
// dto.setPerformancesId(IDGenerator.get32UUID());
// dto.setTitle("已购票演出00"+(i+1));
// dto.setImgPoster("https://img.zhengzai.tv/other/2021/08/04/865b8c442e7c4fb6a9f3d9b17a8e5b80.jpg");
// dto.setTimeStart("2021-09-08 12:00:00");
// dto.setTimeEnd("2021-10-08 12:00:00");
// dto.setCityName("北京");
// dto.setJoinUserCount(123+(i*2));
// performanceDtoList.add(dto);
// }
ResponseDto<List<KylinPerformanceVo>> responseDto = feignKylinForChimeClient.myPerformancesList();
List<PerformanceDto> performanceDtoList = null;
if(StringUtil.isNotNull(responseDto.getData())){
List<KylinPerformanceVo> kylinPerformanceVoList = responseDto.getData();
performanceDtoList = chimeUserBiz.buildPerformanceDtoList(kylinPerformanceVoList);
}
return ResponseDto.success(performanceDtoList);
}
@GetMapping("localPerformanceList")
@ApiOperation("本地最近演出列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "cityName", value = "城市名称", required = true),
@ApiImplicitParam(type = "query", dataType = "int", name = "days", value = "时间范围 几天 今天1 三天3。。。"),
@ApiImplicitParam(type = "query", dataType = "int", name = "type", value = "演出类型 101音乐节 102小型演出(livehouse演出) 103巡演 演出类型只有这几个了"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "isDiscount", value = "是否会员优惠 0 1"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "isAdvance", value = "是否优先 0 1"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "isExclusive", value = "是否会员专属 0 1"),
@ApiImplicitParam(type = "query", dataType = "String", name = "orderBy", value = "排序字段 时间timeStart"),
@ApiImplicitParam(type = "query", dataType = "String", name = "sort", value = "排序方式[DESC ASC]"),
})
public ResponseDto<HashMap<String, Object>> localPerformanceList(
@RequestParam(defaultValue = "") String cityName,
@RequestParam(defaultValue = "0") int days,
@RequestParam(defaultValue = "0") int type,
@RequestParam(defaultValue = "") Integer isDiscount,
@RequestParam(defaultValue = "") Integer isAdvance,
@RequestParam(defaultValue = "") Integer isExclusive,
// 排序
@RequestParam(defaultValue = "") String orderBy,
@RequestParam(defaultValue = "") String sort
) {
ResponseDto<HashMap<String, Object>> responseDto = feignKylinForChimeClient.localList(cityName, days,type,isDiscount, isAdvance, isExclusive, orderBy, sort);
if(StringUtil.isNotNull(responseDto.getData())){
String jsonStr = JSON.toJSONString(responseDto.getData().get("list"));
List<KylinPerformanceVo> kylinPerformanceVoList = JsonUtils.fromJson(jsonStr, new TypeReference<List<KylinPerformanceVo>>() {});
List<PerformanceDto> performanceDtoList = chimeUserBiz.buildPerformanceDtoList(kylinPerformanceVoList);;
responseDto.getData().put("list",performanceDtoList);
}
return responseDto;
}
@GetMapping("getUserListByCon")
@ApiOperation("查询用户列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "performanceId", value = "演出id", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "sex", value = "性别"),
@ApiImplicitParam(type = "query", dataType = "int", name = "pageNum", value = "页码"),
@ApiImplicitParam(type = "query", dataType = "int", name = "pageSize", value = "每页数量"),
@ApiImplicitParam(type = "query", dataType = "String", name = "tags", value = "兴趣标签"),
@ApiImplicitParam(type = "query", dataType = "String", name = "orderBy", value = "排序字段 时间timeStart"),
@ApiImplicitParam(type = "query", dataType = "String", name = "sort", value = "排序方式[DESC ASC]"),
})
public ResponseDto<NewPageResult<ChimeUserInfoDto>> getUserListByCon(
@RequestParam(defaultValue = "") String performanceId,
@RequestParam(defaultValue = "") String sex,
@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(defaultValue = "10") int pageSize,
@RequestParam(defaultValue = "") String tags,
@RequestParam(defaultValue = "") String orderBy,
@RequestParam(defaultValue = "") String sort
) {
ChimeUserListQueryReqDto reqDto = ChimeUserListQueryReqDto.getNew();
reqDto.setPerformanceId(performanceId);
reqDto.setPageNum(pageNum);
reqDto.setPageSize(pageSize);
reqDto.setOrderItem(orderBy);
reqDto.setOrderSc(sort);
reqDto.setSex(sex);
reqDto.setTags(tags);
// PageInfo<ChimeUserInfoDto> pageInfo = chimePerformanceService.getUserListByCon(reqDto);
NewPageResult<ChimeUserInfoDto> pageInfo = chimePerformanceService.getUserListByCon(reqDto);
//切换场次
chimeUserService.switchPerformanceId(performanceId);
//根据演出id判断当前用户是否在场
boolean isOnline = chimeUserBiz.userIsOnline(performanceId);
pageInfo.setIsOnline(isOnline);
return ResponseDto.success(pageInfo);
}
}
package com.liquidnet.service.chime.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.chime.dto.ChimeUserInfoDto;
import com.liquidnet.service.chime.dto.ChimeUserRegisterReqDto;
import com.liquidnet.service.chime.dto.ChimeUserUpdateReqDto;
import com.liquidnet.service.chime.service.IChimeUserService;
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.validation.annotation.Validated;
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>
* @version V1.0
* @Description: 社交用户控制类
* @class: ChimeUserController
* @Package com.liquidnet.service.chime.controller
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/8 15:43
*/
@Api(tags = "在场-用户相关")
@RestController
@RequestMapping("user")
@Validated
@Slf4j
public class ChimeUserController {
@Autowired
private IChimeUserService chimeUserService;
@ApiOperationSupport(order = 5)
@ApiOperation(value = "社交用户注册")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "userId", value = "用户id"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "nickname", value = "昵称"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "sex", value = "性别"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "tags", value = "兴趣标签[{\"tagCode\":\"tag1\",\"tagDesc\":\"tag描述\"},{\"tagCode\":\"tag2\",\"tagDesc\":\"tag描述2\"}]"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "performanceId", value = "演出id")
})
@PostMapping(value = {"register"})
public ResponseDto<String> register(@RequestParam @Validated String userId
, @RequestParam @Validated String nickname
, @RequestParam @Validated String sex
, @RequestParam @Validated String tags
, @RequestParam @Validated String performanceId
) {
ChimeUserRegisterReqDto reqDto = ChimeUserRegisterReqDto.getNew();
reqDto.setUserId(userId);
reqDto.setNickName(nickname);
reqDto.setSex(sex);
reqDto.setTags(tags);
if(StringUtil.isNotEmpty(performanceId)){
reqDto.setPerformanceId(performanceId);
}else{
//云在场
reqDto.setPerformanceId("-1");
}
ChimeUserInfoDto chimeUserInfoDto = chimeUserService.createChimeUserInfo(reqDto);
if(StringUtil.isNull(chimeUserInfoDto)){
return ResponseDto.failure("chime创建社交用户失败!");
}
return ResponseDto.success("创建成功!");
}
@ApiOperationSupport(order = 5)
@ApiOperation(value = "用户信息修改同步")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "userId", value = "用户id"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "nickname", value = "昵称"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "sex", value = "性别"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "tags", value = "兴趣标签(多个用逗号隔开)")
})
@PostMapping(value = {"updateUserTags"})
public ResponseDto<Boolean> updateUserTags(@RequestParam @Validated String userId
, @RequestParam @Validated String nickname
, @RequestParam @Validated String sex
, @RequestParam @Validated String tags
) {
ChimeUserUpdateReqDto reqDto = ChimeUserUpdateReqDto.getNew();
reqDto.setUserId(userId);
reqDto.setNickName(nickname);
reqDto.setSex(sex);
reqDto.setTags(tags);
//更新用户信息
Boolean rs = chimeUserService.updateUserInfo(reqDto);
return ResponseDto.success(rs);
}
// @GetMapping("getUserByUserId")
// @ApiOperation("查询单个用户信息")
// @ApiImplicitParams({
// @ApiImplicitParam(type = "query", dataType = "String", name = "userId", value = "用户ID", required = true)
// })
// public ResponseDto<ChimeUserInfoDto> getUserByUserId(
// @RequestParam(defaultValue = "") String userId
// ) {
// ChimeUserInfoDto userInfoDto = chimeUserService.getUserByUserId(userId);
// return ResponseDto.success(userInfoDto);
// }
}
package com.liquidnet.service.chime.service.impl;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.chime.dto.ChimeUserInfoDto;
import com.liquidnet.service.chime.dto.ChimeUserListQueryReqDto;
import com.liquidnet.service.chime.dto.ChimeUserTagDto;
import com.liquidnet.service.chime.dto.NewPageResult;
import com.liquidnet.service.chime.service.IChimePerformanceService;
import com.liquidnet.service.chime.utils.ObjectUtil;
import com.liquidnet.service.chime.vo.mongo.ChimeUserInfoVo;
import com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimePerformanceServiceImpl
* @Package com.liquidnet.service.chime.service.impl
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/9 12:04
*/
@Slf4j
@Service
public class ChimePerformanceServiceImpl implements IChimePerformanceService {
@Autowired
private MongoTemplate mongoTemplate;
/**
* 用户关联查询
* @param reqDto
* @return
*/
@Override
public NewPageResult<ChimeUserInfoDto> getUserListByCon(ChimeUserListQueryReqDto reqDto) {
NewPageResult<ChimeUserInfoDto> pagedResult = ObjectUtil.getChimeUserInfoDtoPagedResult();
try {
int pageNum = reqDto.getPageNum() - 1;
int pageSize = reqDto.getPageSize();
//初始化分页
pagedResult.setPageSize(pageSize).setCurrentPage(pageNum+1);
//获取总数
Criteria criteria = Criteria.where("joinPerformanceId").is(reqDto.getPerformanceId());
if(StringUtil.isNotEmpty(reqDto.getTags())){
criteria = criteria.and("userTagsVoList.tagCode").in(Arrays.asList(reqDto.getTags().split(",")));
}
if(StringUtil.isNotEmpty(reqDto.getSex())){
criteria = criteria.and("sex").is(reqDto.getSex());
}
Pageable pageableCount = PageRequest.of(0, 1000); // get 5 profiles on a page
Query queryCount = Query.query(criteria);
queryCount.fields().include("1");
queryCount.with(pageableCount);
// 排序
// 查询总数
long startTime = System.currentTimeMillis();
int count = (int) mongoTemplate.count(queryCount, ChimeUserInfoVo.class, ChimeUserInfoVo.class.getSimpleName());
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);
//处理Vo
List<ChimeUserInfoDto> dtoList = new ArrayList<>();
startTime = System.currentTimeMillis();
for (ChimeUserInfoVo item : chimeUserInfoVoList) {
ChimeUserInfoDto dto = ChimeUserInfoDto.getNew();
BeanUtil.copy(item,dto);
dto.setPassWord("123456");
//获取标签转换
List<ChimeUserTagsMappingVo> userTagsMappingVoList = item.getUserTagsVoList();
List<ChimeUserTagDto> userTagDtoList = ObjectUtil.getChimeUserTagDtoList();
userTagsMappingVoList.stream().forEach(chimeUserTagsMappingVo -> {
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);
} catch (Exception e) {
e.printStackTrace();
}
return pagedResult;
}
}
package com.liquidnet.service.chime.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.third.easemob.util.EasemobUtil;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.chime.biz.ChimeUserBiz;
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.service.IChimeUserService;
import com.liquidnet.service.chime.utils.DataUtils;
import com.liquidnet.service.chime.vo.mongo.ChimeUserInfoVo;
import com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ChimeUserServiceImpl
* @Package com.liquidnet.service.chime.service.impl
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/8 16:17
*/
@Slf4j
@Service
public class ChimeUserServiceImpl implements IChimeUserService {
@Autowired
private EasemobUtil easemobUtil;
@Autowired
private DataUtils dataUtils;
@Autowired
private RedisUtil redisUtil;
@Autowired
private ChimeUserBiz chimeUserBiz;
@Override
public JSONObject register(ChimeUserRegisterReqDto reqDto) {
String result = easemobUtil.createUser(reqDto.getUserId(),"123456",reqDto.getNickName());
log.info("chime easemobUtil.createUser result:{}",result);
JSONObject jsonObject = JSONObject.parseObject(result);
return jsonObject;
}
@Override
public ChimeUserInfoDto createChimeUserInfo(ChimeUserRegisterReqDto reqDto) {
try {
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());
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;
}
@Override
public boolean updateUserInfo(ChimeUserUpdateReqDto reqDto) {
try {
String rk = AdamRedisConst.INFO_USER.concat(reqDto.getUserId());
AdamUserInfoVo vo = (AdamUserInfoVo) redisUtil.get(rk);
//插入userTagMapping
ChimeUserInfoVo chimeUserInfoVo = ChimeUserInfoVo.getNew();
BeanUtil.copy(reqDto,chimeUserInfoVo);
chimeUserInfoVo.setUserName(vo.getUid());
chimeUserInfoVo.setUserMobile(vo.getMobile());
chimeUserInfoVo.setAvatar(vo.getAvatar());
List<ChimeUserTagsMappingVo> userTagList = chimeUserBiz.buildUserTagVoList(reqDto.getUserId(),reqDto.getTags());
chimeUserInfoVo.setUserTagsVoList(userTagList);
dataUtils.updateChimeUser(chimeUserInfoVo);
} catch (Exception e) {
e.printStackTrace();
log.error("updateUserInfo error msg:{}",e.getMessage());
log.error("updateUserInfo error info:{}",e);
return false;
}
return true;
}
@Override
public boolean updateUserTags(ChimeUserUpdateReqDto reqDto) {
//插入userTagMapping
List<ChimeUserTagsMappingVo> userTagList = chimeUserBiz.buildUserTagVoList(reqDto.getUserId(),reqDto.getTags());
return dataUtils.updateUserTagMapping(reqDto.getUserId(),userTagList);
}
@Override
public ChimeUserInfoDto getUserByUserId(String userId) {
ChimeUserInfoVo chimeUserInfoVo = dataUtils.getUserByUserId(userId);
if(StringUtil.isNotNull(chimeUserInfoVo)){
ChimeUserInfoDto chimeUserInfoDto = ChimeUserInfoDto.getNew();
BeanUtil.copy(chimeUserInfoVo,chimeUserInfoDto);
chimeUserInfoDto.setPassWord("123456");
//获取标签
chimeUserInfoDto.setUserTags(dataUtils.getUserTagList(userId));
return chimeUserInfoDto;
}
return null;
}
@Override
public boolean switchPerformanceId(String performanceId) {
String userId = CurrentUtil.getCurrentUid();
//获取社交用户
ChimeUserInfoVo chimeUserInfoVo = dataUtils.getUserByUserId(userId);
if(StringUtil.isNotNull(chimeUserInfoVo)){
//判断演出id是否需要切换
if(!chimeUserInfoVo.getJoinPerformanceId().equalsIgnoreCase(performanceId)){
chimeUserInfoVo.setJoinPerformanceId(performanceId);
dataUtils.updateChimeUser(chimeUserInfoVo);
}
}
return true;
}
}
package com.liquidnet.service.chime.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.chime.constant.ChimeConstant;
import com.liquidnet.service.chime.dto.ChimeJoinUserCountDto;
import com.liquidnet.service.chime.dto.ChimeUserInfoDto;
import com.liquidnet.service.chime.dto.ChimeUserTagDto;
import com.liquidnet.service.chime.vo.mongo.ChimeUserInfoVo;
import com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo;
import com.mongodb.client.result.UpdateResult;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationResults;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@Slf4j
@Component
public class DataUtils {
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private RedisUtil redisUtil;
/**
* 注册社交用户
* @param chimeUserInfoDto
*/
public void createChimeUser(ChimeUserInfoDto chimeUserInfoDto){
ChimeUserInfoVo chimeUserInfoVo = ChimeUserInfoVo.getNew();
BeanUtil.copy(chimeUserInfoDto,chimeUserInfoVo);
chimeUserInfoVo.setMid(ChimeConstant.getNewUserId());
mongoTemplate.save(chimeUserInfoVo,ChimeUserInfoVo.class.getSimpleName());
}
/**
* 注册社交用户
*/
public void createBatchChimeUser(List<ChimeUserInfoVo> chimeUserInfoVoList){
mongoTemplate.insert(chimeUserInfoVoList,ChimeUserInfoVo.class.getSimpleName());
}
/**
* 修改社交用户
* @param chimeUserInfoVo
*/
public void updateChimeUser(ChimeUserInfoVo chimeUserInfoVo) {
Query query = Query.query(Criteria.where("userId").is(chimeUserInfoVo.getUserId()));
Update update = Update.fromDocument(Document.parse(JsonUtils.toJson(chimeUserInfoVo)));
UpdateResult result = mongoTemplate.updateFirst(query,update,ChimeUserInfoVo.class.getSimpleName());
log.info("updateChimeUser result:{}",result.toString());
}
/**
* 创建用户标签
* @param chimeUserTagsMappingVoList
*/
public void createUserTagMapping(List<ChimeUserTagsMappingVo> chimeUserTagsMappingVoList){
mongoTemplate.insert(chimeUserTagsMappingVoList,ChimeUserTagsMappingVo.class.getSimpleName());
}
/**
* 修改用户标签
* @param userId
* @param chimeUserTagsMappingVoList
* @return
*/
public boolean updateUserTagMapping(String userId,List<ChimeUserTagsMappingVo> chimeUserTagsMappingVoList){
Query query = Query.query(Criteria.where("userId").is(userId));
// 根据条件删除(可删除多条)
mongoTemplate.remove(query,ChimeUserTagsMappingVo.class.getSimpleName());
Collection rsList = mongoTemplate.insert(chimeUserTagsMappingVoList,ChimeUserTagsMappingVo.class.getSimpleName());
return rsList.size()>0;
}
/**
* 获取单个用户信息
* @param userId
* @return
*/
public ChimeUserInfoVo getUserByUserId(String userId){
Query query = Query.query(Criteria.where("userId").is(userId));
ChimeUserInfoVo chimeUserInfoVo = mongoTemplate.findOne(query,ChimeUserInfoVo.class,ChimeUserInfoVo.class.getSimpleName());
return chimeUserInfoVo;
}
/**
* 获取用户标签
* @param userId
* @return
*/
public List<ChimeUserTagDto> getUserTagList(String userId){
Query query= Query.query(Criteria.where("userId").is(userId));
return mongoTemplate.find(query, ChimeUserTagDto.class,ChimeUserTagsMappingVo.class.getSimpleName());
}
/**
* 根据演出idList获取在场人数和默认头像图片(最多获取5个url)
* @param performanceIdList
* @return
*/
public List<ChimeJoinUserCountDto> getJoinUserCountList(List<String> performanceIdList){
Aggregation agg = Aggregation.newAggregation(
// 挑选所需的字段,类似select *,*所代表的字段内容
Aggregation.project("joinPerformanceId","avatar"),
// sql where 语句筛选符合条件的记录
Aggregation.match(Criteria.where("joinPerformanceId").in(performanceIdList)),
// 分组条件,设置分组字段
Aggregation.group("joinPerformanceId")
.first("joinPerformanceId").as("joinPerformanceId")
.addToSet("avatar").as("avatarArray")
.count().as("totalCount"),
// 排序(根据某字段排序 倒序)
// Aggregation.sort(Sort.Direction.DESC,"startDate"),
// 重新挑选字段
Aggregation.project("joinPerformanceId","totalCount","avatarArray")
);
AggregationResults<Document> results = mongoTemplate.aggregate(agg, ChimeUserInfoVo.class.getSimpleName(), Document.class);
List<Document> mappedResultsList= results.getMappedResults();
//拼装返回结果
List<ChimeJoinUserCountDto> joinUserCountDtoList = new ArrayList<>();
mappedResultsList.stream().forEach(document -> {
ChimeJoinUserCountDto dto = ChimeJoinUserCountDto.getNew();
dto.setPerformancesId(document.getString("joinPerformanceId"));
dto.setCount(document.getInteger("totalCount"));
List<String> ppl2 = document.getList("avatarArray",String.class);
dto.setAvatarImgList(ppl2);
joinUserCountDtoList.add(dto);
});
log.debug("排序后的code列表2:[{}]",results);
return joinUserCountDtoList;
}
/**
* 根据演出id更新在场演出id
* @param performanceId
* @return
*/
public boolean updateUserIsOnline(String performanceId){
Query query = Query.query(Criteria.where("joinPerformanceId").is(performanceId));
Update update = Update.update("joinPerformanceId","-1");
UpdateResult updateResult = mongoTemplate.updateMulti(query,update,ChimeUserInfoVo.class,ChimeUserInfoVo.class.getSimpleName());
return updateResult.getModifiedCount()>0;
}
}
package com.liquidnet.service.chime.utils;
import com.liquidnet.service.chime.dto.ChimeUserInfoDto;
import com.liquidnet.service.chime.dto.ChimeUserTagDto;
import com.liquidnet.service.chime.dto.NewPageResult;
import java.util.ArrayList;
public class ObjectUtil {
private static final NewPageResult<ChimeUserInfoDto> chimeUserInfoDtoPagedResult = new NewPageResult<>();
private static final ArrayList<ChimeUserTagDto> chimeUserTagDtoList = new ArrayList<>();
public static NewPageResult<ChimeUserInfoDto> getChimeUserInfoDtoPagedResult() {
return chimeUserInfoDtoPagedResult.clone();
}
public static ArrayList<ChimeUserTagDto> getChimeUserTagDtoList() {
return (ArrayList<ChimeUserTagDto>)chimeUserTagDtoList.clone();
}
}
# begin-dev-这里是配置信息基本值
liquidnet:
cloudConfig:
profile: dev
security:
username: user
password: user123
eureka:
host: 127.0.0.1:7001
# end-dev-这里是配置信息基本值
spring:
profiles:
include: service-chime
# begin-dev-这里是配置信息基本值
liquidnet:
cloudConfig:
profile: prod
security:
username: user
password: user123
eureka:
host: 172.17.207.189:7001
# end-dev-这里是配置信息基本值
spring:
profiles:
include: service-chime
\ No newline at end of file
#eurekaServer配置
eureka:
client:
register-with-eureka: false
fetch-registry: true
serviceUrl:
defaultZone: http://${liquidnet.security.username}:${liquidnet.security.password}@${liquidnet.eureka.host}/eureka-server/eureka
#configServer配置
spring:
cloud:
config:
# uri: http://39.105.38.151:7002/support-config
# uri: http://39.106.122.201:7002/support-config
# uri: http://127.0.0.1:7002/support-config
profile: ${liquidnet.cloudConfig.profile}
name: ${spring.application.name} #默认为spring.application.name
discovery:
enabled: true
service-id: liquidnet-support-config
# begin-dev-这里是配置信息基本值
liquidnet:
cloudConfig:
profile: test
security:
username: user
password: user123
eureka:
host: 172.17.207.177:7001
# end-dev-这里是配置信息基本值
spring:
profiles:
include: service-chime
package com.liquidnet.service.chime.test;
import com.liquidnet.common.third.easemob.util.EasemobUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.RandomUtil;
import com.liquidnet.service.chime.biz.ChimeUserBiz;
import com.liquidnet.service.chime.dto.ChimeUserInfoDto;
import com.liquidnet.service.chime.dto.ChimeUserListQueryReqDto;
import com.liquidnet.service.chime.dto.NewPageResult;
import com.liquidnet.service.chime.service.IChimePerformanceService;
import com.liquidnet.service.chime.utils.DataUtils;
import com.liquidnet.service.chime.vo.mongo.ChimeUserInfoVo;
import com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.*;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: TestDataUtils
* @Package com.liquidnet.service.chime.test
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/12 15:44
*/
@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class TestDataUtils {
@Autowired
private DataUtils dataUtils;
@Autowired
private EasemobUtil easemobUtil;
@Autowired
private ChimeUserBiz chimeUserBiz;
@Autowired
private IChimePerformanceService chimePerformanceService;
@Test
public void getPerformanceCount(){
}
@Test
public void getUserImgList(){
ExecutorService executorService = Executors.newFixedThreadPool(100);
Future future = executorService.submit(new Callable(){
public Object call() throws Exception {
System.out.println("Asynchronous Callable");
return "Callable Result";
}
});
try {
System.out.println("future.get() = " + future.get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
@Test
public void createUserInfoVo(){
ExecutorService executorService = Executors.newFixedThreadPool(200);
long start = System.currentTimeMillis();
for(int i=0;i<1000000;i++){
int num = i+1;
Future future = executorService.submit(new Callable(){
public Object call() throws Exception {
ChimeUserInfoDto chimeUserInfoDto = ChimeUserInfoDto.getNew();
chimeUserInfoDto.setUserId("TEST"+ IDGenerator.nextTimeId());
chimeUserInfoDto.setPassWord("123456");
chimeUserInfoDto.setSex("男");
chimeUserInfoDto.setUserName("TestName"+num);
chimeUserInfoDto.setUserMobile("1381111"+num);
chimeUserInfoDto.setAvatar("https://img.zhengzai.tv/user/2021/07/27/a4cc2a4e6dcd44d1812dc60e079086b4.png");
chimeUserInfoDto.setUserCover("https://img.zhengzai.tv/user/2021/07/27/a4cc2a4e6dcd44d1812dc60e079086b4.png");
chimeUserInfoDto.setBirthday("2021-09-01");
chimeUserInfoDto.setSignature("测试签名");
chimeUserInfoDto.setArea("山西省 太原市 迎泽区");
chimeUserInfoDto.setJoinPerformanceId("-1");
// easemobUtil.createUser(chimeUserInfoDto.getUserId(),chimeUserInfoDto.getPassWord());
dataUtils.createChimeUser(chimeUserInfoDto);
//插入userTagMapping
List<ChimeUserTagsMappingVo> userTagList = new ArrayList<>();
for(int j=0;j<5;j++){
ChimeUserTagsMappingVo chimeUserTagDto = ChimeUserTagsMappingVo.getNew();
chimeUserTagDto.setUserId(chimeUserInfoDto.getUserId());
chimeUserTagDto.setTagCode("tags"+(j+1));
chimeUserTagDto.setTagDesc("标签"+(j+1));
userTagList.add(chimeUserTagDto);
}
dataUtils.createUserTagMapping(userTagList);
return Boolean.parseBoolean("true");
}
});
// Future future = executorService.submit(new Runnable() {
// public void run() {
// ChimeUserInfoDto chimeUserInfoDto = ChimeUserInfoDto.getNew();
// chimeUserInfoDto.setUserId("TEST"+ IDGenerator.nextTimeId());
// chimeUserInfoDto.setPassWord("123456");
// chimeUserInfoDto.setSex("男");
// chimeUserInfoDto.setUserName("TestName"+num);
// chimeUserInfoDto.setUserMobile("1381111"+num);
// chimeUserInfoDto.setAvatar("https://img.zhengzai.tv/user/2021/07/27/a4cc2a4e6dcd44d1812dc60e079086b4.png");
// chimeUserInfoDto.setUserCover("https://img.zhengzai.tv/user/2021/07/27/a4cc2a4e6dcd44d1812dc60e079086b4.png");
// chimeUserInfoDto.setBirthday("2021-09-01");
// chimeUserInfoDto.setSignature("测试签名");
// chimeUserInfoDto.setArea("山西省 太原市 迎泽区");
// chimeUserInfoDto.setJoinPerformanceId("-1");
// List<ChimeUserTagDto> imgList = new ArrayList<>();
// for(int j=0;j<5;j++){
// ChimeUserTagDto chimeUserTagDto = ChimeUserTagDto.getNew();
// chimeUserTagDto.setUserId(chimeUserInfoDto.getUserId());
// chimeUserTagDto.setTagCode("tags"+(j+1));
// chimeUserTagDto.setTagDesc("标签"+(j+1));
// imgList.add(chimeUserTagDto);
// }
// chimeUserInfoDto.setUserTags(imgList);
//// easemobUtil.createUser(chimeUserInfoDto.getUserId(),chimeUserInfoDto.getPassWord());
// dataUtils.createChimeUser(chimeUserInfoDto);
// }
// });
try {
System.out.println("执行第几个===="+num+" future.get()=="+future.get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
System.out.println("耗时:"+(System.currentTimeMillis() - start)/1000 + "秒");
executorService.shutdown();
// EasemobUtil.createUsers();
}
@Test
public void createUserInfoNewVo(){
ExecutorService executorService = Executors.newFixedThreadPool(200);
long start = System.currentTimeMillis();
List<ChimeUserInfoVo> voNewList = new ArrayList<>();
int totalNum = 200000;
int pageSize = 1000;
int pageNum = 1;
int totalPage = totalNum % pageSize == 0 ? totalNum / pageSize : (totalNum / pageSize) + 1;;
for(int i=0;i<totalNum;i++){
try {
int num = i+1;
ChimeUserInfoVo chimeUserInfoDto = ChimeUserInfoVo.getNew();
chimeUserInfoDto.setUserId("TEST"+ IDGenerator.nextTimeId());
chimeUserInfoDto.setSex("男");
chimeUserInfoDto.setUserName("TestName"+num);
chimeUserInfoDto.setUserMobile("1381111"+num);
chimeUserInfoDto.setAvatar("https://img.zhengzai.tv/user/2021/07/27/a4cc2a4e6dcd44d1812dc60e079086b4.png");
chimeUserInfoDto.setBirthday("2021-09-01");
chimeUserInfoDto.setSignature("测试签名");
chimeUserInfoDto.setArea("山西省 太原市 迎泽区");
chimeUserInfoDto.setJoinPerformanceId("-1");
// easemobUtil.createUser(chimeUserInfoDto.getUserId(),chimeUserInfoDto.getPassWord());
List<ChimeUserTagsMappingVo> userTagList = new ArrayList<>();
for(int j=0;j<5;j++){
ChimeUserTagsMappingVo chimeUserTagDto = ChimeUserTagsMappingVo.getNew();
chimeUserTagDto.setUserId(chimeUserInfoDto.getUserId());
chimeUserTagDto.setTagCode("tags"+ RandomUtil.getRandomInt(2,10));
chimeUserTagDto.setTagDesc("标签"+ RandomUtil.getRandomInt(2,10));
userTagList.add(chimeUserTagDto);
}
chimeUserInfoDto.setUserTagsVoList(userTagList);
voNewList.add(chimeUserInfoDto);
if(num%pageSize==0){
dataUtils.createBatchChimeUser(voNewList);
voNewList = new ArrayList<>();
// Future future = executorService.submit(new Callable(){
// public Object call() throws Exception {
//
// dataUtils.createBatchChimeUser(voNewList);
//
// return Boolean.parseBoolean("true");
// }
// });
System.out.println("=================执行第几批次============"+pageNum);
pageNum++;
}
System.out.println("执行第几个===="+num);
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println("耗时:"+(System.currentTimeMillis() - start)/1000 + "秒");
executorService.shutdown();
// EasemobUtil.createUsers();
}
@Test
public void testUserList(){
for(int i=0;i<10;i++){
long startTime = System.currentTimeMillis();
ChimeUserListQueryReqDto reqDto = ChimeUserListQueryReqDto.getNew();
// reqDto.setPerformanceId("-1");
reqDto.setPerformanceId("-1");
reqDto.setPageNum(1);
reqDto.setPageSize(20);
reqDto.setOrderItem(null);
reqDto.setOrderSc(null);
reqDto.setSex("");
reqDto.setTags("tags12");
NewPageResult<ChimeUserInfoDto> pageInfo = chimePerformanceService.getUserListByCon(reqDto);
log.info("总共获取总数pagecount:{}",pageInfo.getList().size());
pageInfo.getList().parallelStream().forEach(dto -> {
// System.out.println(dto.getUserId());
// System.out.println(JsonUtils.toJson(dto.getUserTags()));
});
long endTime = System.currentTimeMillis();
log.info("耗时:{}ms",endTime-startTime);
}
}
}
package com.liquidnet.service.chime.test;
import com.liquidnet.common.third.easemob.util.EasemobUtil;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: TestEasemob
* @Package com.liquidnet.service.chime.test
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/7 11:35
*/
@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class TestEasemob {
@Autowired
private EasemobUtil easemobUtil;
// @Value("${liquidnet.easemob.api-url}")
// private static String REQUEST_HOST = "https://a1.easemob.com";
// @Value("${liquidnet.easemob.org-name}")
// private static String ORG_NAME = "1106210901175651";
// @Value("${liquidnet.easemob.app-name}")
// private static String APP_NAME = "demo";
// @Value("${liquidnet.easemob.client-id}")
// private static String CLIENT_ID = "YXA6x4Xs7cYDQcOv6BPuM3hUDA";
// @Value("${liquidnet.easemob.client-secret}")
// private static String CLIENT_SECRET = "YXA6olr2qaW65xlkFixS81kiWnplrW4";
@Test
public void createUser(){
easemobUtil.createUser("anjiabin11","anjiabin11");
// EasemobUtil.createUsers();
}
}
package com.liquidnet.service.chime.test;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: TestRedis
* @Package com.liquidnet.service.adam.test
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/7/29 13:36
*/
@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class TestRedis {
@Autowired
private RedisUtil redisUtil;
@Test
public void getPayCodeList() {
}
}
package com.liquidnet.service.chime.test;
import com.liquidnet.common.third.shumei.util.ShumeiUtil;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: TestShumei
* @Package com.liquidnet.service.chime.test
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/8 13:43
*/
@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class TestShumei {
@Autowired
private ShumeiUtil shumeiUtil;
@Test
public void checkText(){
// System.out.println(shumeiUtil.checkText("user123","甜梅号的小茉莉"));
// System.out.println(shumeiUtil.checkText("user123","158****8858"));
System.out.println(shumeiUtil.checkText("user123","投毒"));
}
@Test
public void checkImage(){
//暴力血腥
// String imageUrl = "https://image11.m1905.cn/uploadfile/s2010/0603/20100603015651967.jpg";
//涉黄
// String imageUrl = "https://img2.baidu.com/it/u=276463273,2526848266&fm=26&fmt=auto&gp=0.jpg";
// shumeiUtil.checkImage("user123",imageUrl);
// String imageUrl = "https://pic.zhengzai.tv/201504/99/ED/1430210597_92262BF907AF914B95A0FC33C3F33BF6.jpg";
// shumeiUtil.checkImage("user123",imageUrl);
// String imageUrl = "https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eoJpPNmEbdMy2icLxUmVOXn8nowU17d2ziaQqT1O5npf8D2UWz2HVhSpFZichkrAzVdFMicQ4100J7TmA/132";
String imageUrl = "https://thirdqq.qlogo.cn/g?b=oidb&k=1wgQpJ7GaNZhTw8L9M8VSQ&s=100&t=1562575762";
shumeiUtil.checkImage("user123",imageUrl);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>liquidnet-bus-service</artifactId>
<groupId>com.liquidnet</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>liquidnet-service-chime</artifactId>
<packaging>pom</packaging>
<modules>
<module>liquidnet-service-chime-impl</module>
</modules>
<dependencies>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-common-swagger</artifactId>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-common-web</artifactId>
</dependency>
</dependencies>
</project>
package com.liquidnet.service;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: TestRedisConnection
* @Package com.liquidnet.service
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/8/31 11:17
*/
@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class TestRedisConnection {
@Autowired
private RedisUtil redisUtil;
@Test
public void getPayCodeList(){
// List<Object> payCodeList = this.getPrefixKeyValue("dragon:pay:code:*");
// for(Object payCode:payCodeList){
// System.out.println("object=== "+ JsonUtils.toJson(payCode));
// }
//设置新的redis
// for(int i=0 ;i<1000;i++){
// System.out.println("第"+i+"个 "+redisUtil.get("dragon:pay:test:Pay"+i));
// }
String ss = "[\n" +
" \"com.liquidnet.service.dragon.dto.DragonOrdersDto\",\n" +
" {\n" +
" \"mid\": null,\n" +
" \"orderId\": \"20210810193315226361725\",\n" +
" \"status\": 0,\n" +
" \"code\": \"PAY20210810193315191566757\",\n" +
" \"type\": \"TICKET\",\n" +
" \"price\": [\n" +
" \"java.math.BigDecimal\",\n" +
" 0.1\n" +
" ],\n" +
" \"name\": \"正在现场\",\n" +
" \"detail\": \"正在现场\",\n" +
" \"orderCode\": \"ORDER0001\",\n" +
" \"clientIp\": \"127.0.0.1\",\n" +
" \"notifyUrl\": \"devdragon.zhengzai.tv\",\n" +
" \"notifyStatus\": 0,\n" +
" \"paymentType\": \"WAPALIPAY\",\n" +
" \"paymentId\": null,\n" +
" \"paymentAt\": \"2021-08-10T19:33:15.226\",\n" +
" \"finishedAt\": null,\n" +
" \"createdAt\": \"2021-08-10T19:33:15.226\",\n" +
" \"updatedAt\": null,\n" +
" \"deletedAt\": null\n" +
" }\n" +
"]";
int thredNum = 2000;
ExecutorService exec = Executors.newFixedThreadPool(thredNum);
for (int i = 0; i < thredNum; i++) {
final int k = i;
log.info("==================" + k);
// System.out.println("第"+i+"个 "+redisUtil.get("dragon:pay:test:Pay"+i));
exec.execute(() -> {
for(int j=0 ;j<1000;j++){
System.out.println("第"+j+"个 set");
redisUtil.set("dragon:pay:test:Pay"+k+j,ss);
}
});
try { Thread.sleep(100L); } catch (InterruptedException ignored) {}
}
exec.shutdown();
// List<String> keys = getPrefixKeys("dragon:pay:code:*");
// log.info("总共迁移数据条数==="+keys.size());
// DragonOrdersDto dragonOrdersDto = DragonOrdersDto.getNew();
// for(String key:keys){
// Object obj = redisUtil.getRedisTemplateByDb(0).opsForValue().get(key);
// if(obj!=null){
// dragonOrdersDto = (DragonOrdersDto) obj;
// }
// redisUtil.set(key,dragonOrdersDto);
// }
}
}
package com.liquidnet.service.kylin;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.utils.DataUtils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: TestDataUtil
* @Package com.liquidnet.service.kylin
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/12 14:37
*/
@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class TestDataUtil {
@Autowired
private DataUtils dataUtils;
@Test
public void myPerformancesList(){
List<KylinPerformanceVo> kylinPerformanceVoList = dataUtils.myPerformancesList("270788673588551684937456");
for(KylinPerformanceVo vo:kylinPerformanceVoList){
log.info("performanceid:{} ",vo.getPerformancesId());
log.info("title:{}",vo.getTitle());
}
}
}
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
<module>liquidnet-service-executor-all</module> <module>liquidnet-service-executor-all</module>
<module>liquidnet-service-consumer-all</module> <module>liquidnet-service-consumer-all</module>
<module>liquidnet-service-sweet</module> <module>liquidnet-service-sweet</module>
<module>liquidnet-service-chime</module>
<module>liquidnet-service-candy</module> <module>liquidnet-service-candy</module>
<!-- <module>liquidnet-service-example</module>--> <!-- <module>liquidnet-service-example</module>-->
<!-- <module>liquidnet-service-sequence</module>--> <!-- <module>liquidnet-service-sequence</module>-->
......
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