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

Commit b84bb1bd authored by jiangxiulong's avatar jiangxiulong

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

parents 05b5881f 51a16655
......@@ -3,33 +3,42 @@ package com.liquidnet.service.adam.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NonNull;
import javax.validation.constraints.*;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 会员价格
*/
@ApiModel(value = "AdamMemberPriceParam", description = "添加编辑会员价格")
@ApiModel(value = "AdamMemberPriceParam", description = "添加/编辑会员价格")
@Data
public class AdamMemberPriceParam implements Serializable {
private static final long serialVersionUID = -6432796310264973696L;
@ApiModelProperty(position = 0, required = false, value = "价格id")
private Integer mid;
@ApiModelProperty(position = 1, required = false, value = "会员价格ID")
@ApiModelProperty(position = 1, value = "会员价格ID")
private String memberPriceId;
@ApiModelProperty(position = 2, required = false, value = "会员类型ID")
@ApiModelProperty(position = 2, value = "会员类型ID")
@NotBlank
private String memberId;
@ApiModelProperty(position = 3, required = false, value = "状态0 不可用 1上线中 2已下线", allowableValues = "0,1,2")
private Integer status;
@ApiModelProperty(position = 4, required = false, value = "会员价格包名称", example = "年卡")
@ApiModelProperty(position = 3, value = "状态:0-不可用,1-上线中,2-已下线", allowableValues = "0,1,2")
@NonNull
@Min(0)
@Max(2)
private Integer state;
@ApiModelProperty(position = 4, value = "会员价格包名称", example = "年卡")
@Size(min = 1, max = 30)
private String name;
@ApiModelProperty(position = 5, required = false, value = "原价", example = "199")
@ApiModelProperty(position = 5, value = "原价", example = "199")
@DecimalMin("0.01")
private BigDecimal price;
@ApiModelProperty(position = 6, required = false, value = "折扣价", example = "199")
@ApiModelProperty(position = 6, value = "折扣价", example = "199")
@DecimalMin("0.01")
private BigDecimal priceFixed;
@ApiModelProperty(position = 7, required = false, value = "会员包有效天数", example = "365")
@ApiModelProperty(position = 7, value = "会员包有效天数", example = "365")
@NotNull
@Min(30)
private Integer days;
@ApiModelProperty(position = 8, required = false, value = "会员包须知", example = "会员包须知")
@ApiModelProperty(position = 8, value = "会员包须知", example = "会员包须知")
private String detail;
}
......@@ -16,7 +16,7 @@ public class AdamMemberOrderPreviewVo implements Serializable {
private String memberTitle;
@ApiModelProperty(position = 12, value = "价格详情")
private AdamMemberPriceVo priceVo;
@ApiModelProperty(position = 13, value = "是否实名[true-是]")
@ApiModelProperty(position = 13, value = "实名信息")
private AdamRealInfoVo realInfoVo;
@ApiModelProperty(position = 14, value = "生日")
private String birthday;
......
package com.liquidnet.service.adam.dto.vo;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -16,7 +19,7 @@ public class AdamMemberPriceVo implements Serializable {
@ApiModelProperty(position = 2, value = "会员类型ID")
private String memberId;
@ApiModelProperty(position = 3, value = "价格状态[0-不可用,1-上线中,2-已下线]")
private Integer status;
private Integer state;
@ApiModelProperty(position = 4, value = "价格包名称")
private String name;
@ApiModelProperty(position = 5, value = "原价")
......@@ -31,4 +34,28 @@ public class AdamMemberPriceVo implements Serializable {
private String createdAt;
@ApiModelProperty(position = 10, value = "更新时间")
private String updatedAt;
private static final AdamMemberPriceVo obj = new AdamMemberPriceVo();
public static AdamMemberPriceVo getNew() {
try {
return (AdamMemberPriceVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new AdamMemberPriceVo();
}
}
public AdamMemberPriceVo copy(AdamMemberPrice source) {
this.setMemberPriceId(source.getMemberPriceId());
this.setMemberId(source.getMemberId());
this.setState(source.getState());
this.setName(source.getName());
this.setPrice(source.getPrice());
this.setPriceFixed(source.getPriceFixed());
this.setDays(source.getDays());
this.setDetail(source.getDetail());
this.setCreatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(source.getCreatedAt()));
this.setUpdatedAt(DateUtil.Formatter.yyyyMMddHHmmss.format(source.getUpdatedAt()));
return this;
}
}
......@@ -43,16 +43,4 @@ public class AdamMemberRightsVo implements java.io.Serializable, Cloneable {
this.sort = sort;
return this;
}
public List<AdamMemberRightsVo> initDefault() {
return Arrays.asList(AdamMemberRightsVo.getNew().setName("专属").setSort(1)
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c4477d72.png"),
AdamMemberRightsVo.getNew().setName("优惠").setSort(2)
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c685e7a8.png"),
AdamMemberRightsVo.getNew().setName("优先").setSort(3)
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c726a750.png"),
AdamMemberRightsVo.getNew().setName("专属").setSort(4)
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c5de2870.png")
);
}
}
......@@ -43,15 +43,15 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
@ApiModelProperty(position = 12, value = "是否展示协议[200]", example = "0")
private Integer displayAgreement;
@ApiModelProperty(position = 13, value = "状态[1-NORMAL,2-INVALID]")
private String state;
private Integer state;
@ApiModelProperty(position = 14, value = "限购数量,0不限购[200]", example = "0")
private Integer limitation;
@ApiModelProperty(position = 15, value = "会员卡价格信息")
private List<AdamMemberPriceVo> priceVoList;
@ApiModelProperty(position = 20, value = "会员专属权益")
@ApiModelProperty(position = 20, value = "会员卡价格信息")
private List<AdamMemberPriceVo> priceVoList;
@ApiModelProperty(position = 21, value = "会员专属权益")
private List<AdamMemberRightsVo> rightsVoList;
@ApiModelProperty(position = 21, value = "用户会员信息")
@ApiModelProperty(position = 22, value = "用户会员信息")
private AdamUserMemberVo memberInfo;
private static final AdamMemberVo obj = new AdamMemberVo();
......@@ -65,48 +65,67 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
return new AdamMemberVo();
}
/**
* 设置会员价格
* @param adamMemberPrices
* @return
*/
@JsonIgnore
public static List<AdamMemberPriceVo> setMemberPrice(List<AdamMemberPrice> adamMemberPrices){
List<AdamMemberPriceVo> adamMemberPricesVo = new ArrayList<>();
for (int i =0;i<adamMemberPrices.size();i++){
AdamMemberPrice adamMemberPrice = adamMemberPrices.get(i);
AdamMemberPriceVo adamMemberPriceVo = new AdamMemberPriceVo();
BeanUtils.copyProperties(adamMemberPrice, adamMemberPriceVo);
adamMemberPriceVo.setCreatedAt(DateUtil.format(adamMemberPrice.getCreatedAt(), DateUtil.Formatter.yyyyMMddHHmmss));
adamMemberPriceVo.setUpdatedAt(DateUtil.format(adamMemberPrice.getUpdatedAt(), DateUtil.Formatter.yyyyMMddHHmmss));
}
return adamMemberPricesVo;
public AdamMemberVo copy(AdamMember source) {
this.setMemberId(source.getMemberId());
this.setName(source.getName());
this.setTitle(source.getTitle());
this.setSubTitle(source.getSubTitle());
this.setIcon(source.getIcon());
this.setAvatar(source.getAvatar());
this.setInterestsDetail(source.getInterestsDetail());
this.setNotes(source.getNotes());
this.setIsNotice(source.getIsNotice());
this.setNoticeInfo(source.getNoticeInfo());
this.setNoticeTitle(source.getNoticeTitle());
this.setNeedQuestion(source.getNeedQuestion());
this.setDisplayAgreement(source.getDisplayAgreement());
this.setState(source.getState());
this.setLimitation(source.getLimitation());
return this;
}
/**
* 组装MQ需要的对象
* @param adamMember
* @return
*/
@JsonIgnore
public List<Object> getMqList(AdamMember adamMember){
List<Object> paramList = new ArrayList<>();
paramList.add(adamMember.getName());
paramList.add(adamMember.getTitle());
paramList.add(adamMember.getSubTitle());
paramList.add(adamMember.getIcon());
paramList.add(adamMember.getAvatar());
paramList.add(adamMember.getStartNo());
paramList.add(adamMember.getType());
paramList.add(adamMember.getInterestsDetail());
paramList.add(adamMember.getNotes());
paramList.add(adamMember.getIsNotice());
paramList.add(adamMember.getNoticeInfo());
paramList.add(adamMember.getNoticeTitle());
paramList.add(adamMember.getNeedQuestion());
paramList.add(adamMember.getDisplayAgreement());
paramList.add(adamMember.getMemberId());
paramList.add(adamMember.getLimitation());
return paramList;
}
// /**
// * 设置会员价格
// * @param adamMemberPrices
// * @return
// */
// @JsonIgnore
// public static List<AdamMemberPriceVo> setMemberPrice(List<AdamMemberPrice> adamMemberPrices){
// List<AdamMemberPriceVo> adamMemberPricesVo = new ArrayList<>();
// for (int i =0;i<adamMemberPrices.size();i++){
// AdamMemberPrice adamMemberPrice = adamMemberPrices.get(i);
// AdamMemberPriceVo adamMemberPriceVo = new AdamMemberPriceVo();
// BeanUtils.copyProperties(adamMemberPrice, adamMemberPriceVo);
// adamMemberPriceVo.setCreatedAt(DateUtil.format(adamMemberPrice.getCreatedAt(), DateUtil.Formatter.yyyyMMddHHmmss));
// adamMemberPriceVo.setUpdatedAt(DateUtil.format(adamMemberPrice.getUpdatedAt(), DateUtil.Formatter.yyyyMMddHHmmss));
// }
// return adamMemberPricesVo;
// }
// /**
// * 组装MQ需要的对象
// * @param adamMember
// * @return
// */
// @JsonIgnore
// public List<Object> getMqList(AdamMember adamMember){
// List<Object> paramList = new ArrayList<>();
// paramList.add(adamMember.getName());
// paramList.add(adamMember.getTitle());
// paramList.add(adamMember.getSubTitle());
// paramList.add(adamMember.getIcon());
// paramList.add(adamMember.getAvatar());
// paramList.add(adamMember.getStartNo());
// paramList.add(adamMember.getType());
// paramList.add(adamMember.getInterestsDetail());
// paramList.add(adamMember.getNotes());
// paramList.add(adamMember.getIsNotice());
// paramList.add(adamMember.getNoticeInfo());
// paramList.add(adamMember.getNoticeTitle());
// paramList.add(adamMember.getNeedQuestion());
// paramList.add(adamMember.getDisplayAgreement());
// paramList.add(adamMember.getMemberId());
// paramList.add(adamMember.getLimitation());
// return paramList;
// }
}
......@@ -63,6 +63,18 @@ public interface IAdamRdmService {
AdamMemberSimpleVo getMemberSimpleVo();
AdamMemberVo getMemberVoByMemberId(String memberId);
boolean setMemberPriceVoByMemberId(String memberId, List<AdamMemberPriceVo> vos);
List<AdamMemberPriceVo> getMemberPriceVoByMemberId(String memberId);
AdamMemberPriceVo getMemberPriceVoByPriceId(String memberId, String memberPriceId);
boolean setMemberRightsVoByMemberId(String memberId, List<AdamMemberRightsVo> vos);
List<AdamMemberRightsVo> getMemberRightsVoByMemberId(String memberId);
String getMemberAgreement();
boolean setMemberNoByMemberId(String memberId, long val);
......
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.entity.AdamRealName;
/**
......@@ -13,8 +12,5 @@ import com.liquidnet.service.adam.entity.AdamRealName;
* @since 2021-05-10
*/
public interface IAdamRealNameService extends IService<AdamRealName> {
AdamRealInfoVo queryByUid(String uid);
void add(AdamRealName realName);
}
......@@ -4,15 +4,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.AdamMemberParam;
import com.liquidnet.service.adam.entity.AdamMember;
import java.util.List;
/**
* 会员信息
*/
public interface IAdamMemberAdminService extends IService<AdamMember> {
List<AdamMember> list();
void add(AdamMemberParam info);
void edit(AdamMember info);
......
package com.liquidnet.service.adam.service.admin;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo;
import com.liquidnet.service.adam.dto.AdamMemberPriceParam;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
import java.util.List;
public interface IAdamMemberPriceService extends IService<AdamMemberPrice> {
List<AdamMemberPrice> list(String memberId);
public interface IAdamMemberPriceAdminService extends IService<AdamMemberPrice> {
void add(AdamMemberPrice info);
AdamMemberPriceVo query(String memberId, String memberPriceId);
boolean edit(AdamMemberPrice info);
void edit(AdamMemberPriceParam param);
}
package com.liquidnet.service.kylin.constant;
public class KylinRedisConst {
public static final String FIELDS = "kylin:fields:id:";
public static final String FIELDS = "kylin:fields:id";
public static final String PERFORMANCES = "kylin:performances:id:";
public static final String PERFORMANCES_RECOMMEND = "kylin:performances:recommend:id:";
public static final String PERFORMANCES_INVENTORY = "kylin:performances_inventory:ticket:id:";
......
......@@ -244,13 +244,13 @@
</dependencyManagement>
<modules>
<module>liquidnet-client-admin-web</module>
<module>liquidnet-client-admin-common</module>
<module>liquidnet-client-admin-framework</module>
<module>liquidnet-client-admin-system</module>
<!-- <module>liquidnet-client-admin-quartz</module>-->
<!-- <module>liquidnet-client-admin-quartz</module>-->
<module>liquidnet-client-admin-generator</module>
<module>liquidnet-client-admin-common</module>
<module>liquidnet-client-admin-zhengzai</module>
<module>liquidnet-client-admin-web</module>
</modules>
<packaging>pom</packaging>
......
......@@ -2,8 +2,8 @@ server:
port: ${liquidnet.info.port}
tomcat:
uri-encoding: UTF-8
maxThreads: 2000 #默认200
minSpareThreads: 200 #默认10
maxThreads: 3000 #默认200
minSpareThreads: 3000 #默认10
maxConnections: 20000 #默认10000
acceptCount: 5000 #默认100
processorCache: -1 #默认200
......@@ -104,9 +104,9 @@ ribbon:
eureka:
enabled: true # 为Ribbon禁用Eureka
ReadTimeout: 15000
SocketTimeout: 15000
MaxAutoRetries: 0
MaxAutoRetriesNextServer: 0
ConnectTimeout: 15000
MaxAutoRetries: 1
MaxAutoRetriesNextServer: 1
MaxConnectionsPerHost: 5000
MaxTotalConnections: 25000
#liquidnet-service-sequence:
......
......@@ -34,7 +34,7 @@ public class AdamMemberPrice implements Serializable {
/**
* 状态 0 不可用 1上线中 2已下线
*/
private Integer status;
private Integer state;
/**
* 会员包名称
......
......@@ -233,8 +233,8 @@ create table adam_member_price
mid int unsigned auto_increment primary key,
member_price_id varchar(64) comment '会员价格id',
member_id varchar(64) NOT NULL comment '会员种类ID',
status tinyint NOT NULL DEFAULT '0' COMMENT '0不可用、1上线中、2已下线',
name varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '会员包名称',
state tinyint NOT NULL DEFAULT '0' COMMENT '0不可用、1上线中、2已下线',
name varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '会员包名称',
price decimal(8, 2) NOT NULL DEFAULT '0.00' COMMENT '会员包价格',
price_fixed decimal(8, 2) comment '折扣价',
days int NOT NULL DEFAULT '0' COMMENT '会员包天数',
......
......@@ -16,6 +16,11 @@ public class AdamRedisConst {
public static final String INFO_USER = INFO.concat("user:");
public static final String INFO_REAL_NAME = INFO.concat("real_name:");
public static final String INFO_THIRD_PARTY = INFO.concat("third_party:");
public static final String INFO_MEMBER_SIMPLE = INFO.concat("member:simple");
public static final String INFO_MEMBER_CATEGORY = INFO.concat("member:category:");
public static final String INFO_MEMBER_PRICE = INFO.concat("member:price:");
public static final String INFO_MEMBER_RIGHTS = INFO.concat("member:rights:");
public static final String INFO_MEMBER_AGREEMENT = INFO.concat("member:agreement");
public static final String INFO_MEMBER_USER = INFO.concat("member:user");
public static final String INFO_MEMBER_CODE = INFO.concat("member:code:");
public static final String INFO_ENTERS = INFO.concat("enters:");
......@@ -23,8 +28,6 @@ public class AdamRedisConst {
public static final String INFO_TAGS_SEX = INFO.concat("tags:sex");
public static final String INFO_TAGS_MUSIC = INFO.concat("tags:music");
public static final String INFO_MEMBER_SIMPLE = INFO.concat("member:simple");
public static final String INFO_MEMBER_AGREEMENT = INFO.concat("member:agreement");
public static final String INCR = ADAM.concat("incr:");
......
......@@ -4,7 +4,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.dto.vo.AdamMemberRightsVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberSimpleVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.service.IAdamMemberService;
......@@ -45,29 +45,23 @@ public class AdamMemberController {
@ApiOperation(value = "会员信息")
@GetMapping("info")
public ResponseDto<AdamMemberVo> query() {
AdamMemberVo info = adamMemberService.queryMemberInfo();
if (null != info) {
info.setRightsVoList(AdamMemberRightsVo.getNew().initDefault());
AdamMemberSimpleVo memberSimpleVo = adamRdmService.getMemberSimpleVo();
AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(memberSimpleVo.getMemberId());
if (null != memberVo) {
memberVo.setPriceVoList(adamRdmService.getMemberPriceVoByMemberId(memberVo.getMemberId()));
String currentUid = CurrentUtil.getCurrentUid();
if (!"1".equals(currentUid)) {
info.setMemberInfo(adamRdmService.getUserMemberVoByUid(currentUid));
}
memberVo.setRightsVoList(adamRdmService.getMemberRightsVoByMemberId(memberVo.getMemberId()));
memberVo.setMemberInfo(adamRdmService.getUserMemberVoByUid(CurrentUtil.getCurrentUid()));
}
return ResponseDto.success(info);
return ResponseDto.success(memberVo);
}
@ApiOperationSupport(order = 1)
@ApiOperation(value = "会员协议")
@GetMapping("agreement")
public ResponseDto<String> agreement() {
String memberAgreement = adamRdmService.getMemberAgreement();
if (StringUtils.isEmpty(memberAgreement)) {
memberAgreement = "<p style=\"text-align: center;\"><span class=\"ql-size-large\">摩登天空登登登会员服务协议</span></p><p style=\"text-align: center;\"><br></p><p style=\"text-align: center;\">本版本更新时间:2021年1月26日&nbsp;</p><p style=\"text-align: right;\">&nbsp;</p><p style=\"text-align: justify;\">一 、接受协议</p><p style=\"text-align: justify;\">1.1一旦您注册成为摩登天空登登登会员用户,便表示您(以下简称“用户”)已经完全理解并同意接受本协议(以下简称“协议”)。</p><p style=\"text-align: justify;\">1.2在您接受本协议之后,本协议可能因国家政策、产品与/或服务以及履行本协议的环境发生变化而进行修改,一旦本协议内容发生变更的,本网站将在相应页面、站内信或以其他合理方式进行通知,请您仔细阅读。如您在本协议更新后继续使用摩登天空登登登会员服务,即表示您已充分阅读、理解并接受更新后的本协议并愿意接受更新后的协议约束。如果您不同意变更的内容,您可以选择停止使用摩登天空登登登会员服务。更新后的协议自发布之日起生效。</p><p style=\"text-align: justify;\">1.3若您是未成年人,请您在监护人监护、指导下阅读并决定是否同意本协议。未成年人行使和履行本协议项下的权利和义务视为已获得了监护人的认可。</p><p style=\"text-align: justify;\">&nbsp;</p><p style=\"text-align: justify;\">二、服务内容</p><p style=\"text-align: justify;\">2.1摩登天空登登登会员是指完成了成为会员的所有程序,且在遵守本协议的前提下,在会员时长有效期内享受摩登天空提供的登登登会员服务的自然人。</p><p style=\"text-align: justify;\"><strong>2.2 摩登天空有权根据法律法规及政策变更,合作方要求以及自身运营策略变更对登登登会员服务内容(包括但不限于登登登会员权益细则,收费标准和收费方式)进行部分或全部变更。就前述变更,本网站将在相应页面、站内信或以其他合理方式进行发布,发布之后立即生效。如果您不同意变更的内容,您可以选择停止使用摩登天空登登登会员服务。</strong></p><p style=\"text-align: justify;\">2.3摩登天空登登登会员服务协议是《正在现场注册协议》以及《正在现场隐私权保护协议》的补充协议。</p><p style=\"text-align: justify;\">&nbsp;</p><p style=\"text-align: justify;\">三、会员账号及权益</p><p style=\"text-align: justify;\">3.1在用户的登登登会员服务有效期内,用户在本网站所使用的账号即为用户的登登登会员账号。用户有责任维持自己所注册的账号和密码的安全,用户应对所有使用本人的密码及账号的活动负完全责任。用户同意:(a) 本人的密码或账号遭到未获授权的使用。或者发生其他任何安全问题时,请立即通知本网站,且(b)每次上网完毕都会把本人的账号关掉。<strong>如未能依前述规定行事,对于任何人利用该密码及账号所进行的任何行为,用户应负完全的责任。对于因此而产生的任何损失或损害,本网站无法也不承担任何责任。 根据有关法律法规,本网站在此郑重提请用户注意,任何经由我们的服务以上载、张贴、发送电子邮件或其他任何方式传送的资讯、资料、文字、软件、音乐、音讯、照片、图形、视讯、信息或其它资料(以下简称“内容”),无论系公开还是私下传送,均由内容提供者、上传者承担责任。本网站无法控制经由我们的服务传送之内容,因此不保证内容的正确性、完整性或品质。 如用户已预知使用我们的服务时,可能会接触到令人不适之内容,在任何情况下,本网站均不为此负责。包含但不限于任何内容之任何错误或遗漏,以及经由我们的服务及张贴、发送电子邮件或其它方式传送任何内容而衍生之任何损失或损害。本网站有权依法停止传输任何前述内容并采取相应行动,包含但不限于暂停用户使用我们的服务的全部或部分,保持有关记录,并向有关机关报备。</strong></p><p style=\"text-align: justify;\">3.2 登登登会员权益:</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;摩登天空登登登会员权益包括:</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.超过百场演出优先购票权、入场权及专属通道*</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.会员专属纪念品礼盒</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.会员独享限定款商品及音像制品的购买权利(专属商品上线)</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.超过百款商品的会员优惠价</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.会员专属的演出以及线上线下活动</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6.会员专属的视频音频节目</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7.想不到的惊喜</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8.免费观演以及免费商品的抽奖权利。</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>(具体享有会员权益的演出场次和商品以本网站指定为准)</strong></p><p style=\"text-align: justify;\"><strong>本网站可能会根据法律法规及政策变更、版权状态变化、自身运营策略对前述会员权益作出部分修改。</strong></p><p style=\"text-align: justify;\">3.3 登登登会员服务期限及延期:</p><p style=\"text-align: justify;\"><strong>用户的登登登会员服务的服务期限自用户成为登登登会员之时起算,以用户自行选择并支付相应会员费用对应的服务期限为准,用户可以通过登录本网站会员中心免费查询。该期限不因您未使用等情况而延长。当会员服务期限到期后,本网站将停止继续向您提供登登登会员服务;但如您开通自动续费服务且您在服务期限到期前续费成功的,会员服务期限将在原服务期限的基础上顺延。</strong></p><p style=\"text-align: justify;\">&nbsp;</p><p style=\"text-align: justify;\">四、隐私保护</p><p style=\"text-align: justify;\">4.1 本网站保证不对外公开或向第三方提供单个用户的注册资料及用户在使用网络服务时存储在本网站的非公开内容,但下列情况除外:</p><p style=\"text-align: justify;\">4.1.1事先获得用户的明确授权;</p><p style=\"text-align: justify;\">4.1.2根据有关的法律法规要求;</p><p style=\"text-align: justify;\">4.1.3按照相关政府主管部门的要求;</p><p style=\"text-align: justify;\">4.1.4为维护社会公众的利益;</p><p style=\"text-align: justify;\">4.1.5为维护本网站的合法权益;</p><p style=\"text-align: justify;\">4.1.6其他需要公开、编辑或透露个人信息的情况。</p><p style=\"text-align: justify;\"><strong>4.2 本网站可能会与第三方合作向用户提供相关的网络服务,在此情况下,如第三方同意承担与本网站同等的保护用户隐私的责任,则本网站有权将用户的注册资料等提供给该第三方。</strong></p><p style=\"text-align: justify;\"><strong>4.3 在不透露单个用户隐私资料的前提下,本网站有权对整个用户数据库进行分析并对用户数据库进行商业上的利用。</strong></p><p style=\"text-align: justify;\">&nbsp;</p><p>五、服务终止</p><p>本网站终止摩登天空登登登会员服务包括但不限于如下情况:</p><p>1. 用户自主提出的</p><p>2. 用户利用会员身份获得/购得的音乐节以及场馆演出类门票或商城商品,不得转让、代拍。如果私自转让或代拍,一经本网站发现,本网站有权取消该用户的会员资格且该用户利用会员身份进行转票/代拍所获得/购得的音乐节以及场馆演出类门票视为无效(本网站有权视具体情况要求该用户寄回或直接作废),同时清算该用户的使用权益并退回差价。会员权益计价按如下标准执行:</p><p>&nbsp;</p><p>1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;优先购票权、入场权及专属通道按照50元/次计价</p><p>2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;会员专属纪念品礼盒按照100元计价</p><p>3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;会员专属优惠商品的会员优惠价按照实际优惠价格计算</p><p>4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;会员专属的演出以及线上线下活动,已经观看的按照50元/次计价</p><p>5)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;抽取到会员免费观演以及免费商品的按照实际演出和商品的价格计算</p><p style=\"text-align: justify;\">&nbsp;</p><p style=\"text-align: justify;\">l&nbsp;用户存在或本网站独立判断用户存在任何违反国家法律法规或监管政策的行为</p><p style=\"text-align: justify;\">l&nbsp;根据法律法规、政策规定、维护账号与系统安全等紧急情况以及不可抗力因素等其他本网站无法抗拒的情况</p><p style=\"text-align: justify;\">&nbsp;</p><p style=\"text-align: justify;\">六、通知送达</p><p style=\"text-align: justify;\">6.1本网站对于摩登天空登登登用户所有的通知均可通过网页公告、电子邮件、手机短信或其他常规的信件传送等方式进行;该等通知于发送之日视为已送达收件人。</p><p style=\"text-align: justify;\">6.2用户对于本网站的通知应当通过本网站对外正式公布的通信地址、传真号码、电子邮件等联系信息进行送达。</p><p style=\"text-align: justify;\">&nbsp;</p><p style=\"text-align: justify;\">七、责权限制</p><p style=\"text-align: justify;\">用户明确了解并同意,基于以下原因造成的包括但不限于利益、信誉、应用、数据损失或其它无形损失,本网站不承担任何直接、间接、附带、特别、衍生性或惩罚性赔偿责任(即使本网站事先已被告知发生此种赔偿之可能性亦然): (i)我们的服务之使用或无法使用,(ii)为替换从或通过我们的服务购买或取得之任何商品、数据、信息、服务、收到的讯息,或缔结之交易而发生的成本,(iii)用户的传输数据遭到未获授权的存取或编造,(iv)任何第三方在我们的服务中所做之声明或行为;或(v)与我们的服务相关的其它事宜,但本协议有明确规定的除外。</p><p style=\"text-align: justify;\">&nbsp;</p><p style=\"text-align: justify;\">八、法律管辖与适用</p><p style=\"text-align: justify;\">8.1 本服务协议的生效、履行、解释及争议的解决均适用于中华人民共和国法律。</p><p style=\"text-align: justify;\">8.2 如本协议内容或其执行发生任何争议,应尽量友好协商解决;协商不成时,您同意将争议提交至北京市朝阳区人民法院诉讼解决。双方同意,解决争议时,应以您同意的最新《摩登天空登登登会员服务协议》为准。</p><p style=\"text-align: justify;\">&nbsp;</p><p style=\"text-align: justify;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;北京正在映画互联网科技有限公司</p><p style=\"text-align: justify;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2021年1月26日</p><p style=\"text-align: justify;\">&nbsp;</p>";
}
return ResponseDto.success(memberAgreement);
return ResponseDto.success(adamRdmService.getMemberAgreement());
}
@ApiOperationSupport(order = 2)
......
......@@ -11,15 +11,12 @@ import com.liquidnet.service.adam.dto.AdamMemberOrderCallbackParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderCodeParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderParam;
import com.liquidnet.service.adam.dto.AdamMemberOrderResult;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderPreviewVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberOrderVo;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.service.IAdamMemberOrderService;
import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.adam.service.IAdamRealNameService;
import com.liquidnet.service.adam.service.IAdamUserService;
import com.liquidnet.service.adam.service.admin.IAdamMemberPriceService;
import com.liquidnet.service.adam.service.admin.IAdamMemberPriceAdminService;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api;
......@@ -47,7 +44,7 @@ public class AdamMemberOrderController {
@Autowired
IAdamMemberOrderService adamMemberOrderService;
@Autowired
IAdamMemberPriceService adamMemberPriceService;
IAdamMemberPriceAdminService adamMemberPriceService;
@Autowired
IAdamRealNameService adamRealNameService;
@Autowired
......@@ -60,15 +57,21 @@ public class AdamMemberOrderController {
@GetMapping("preview/{mno}/{id}")
public ResponseDto<AdamMemberOrderPreviewVo> preview(@NotBlank @PathVariable String mno,
@NotBlank @PathVariable String id) {
AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(mno);
if (null == memberVo) {
return ResponseDto.failure(ErrorMapping.get("10107"));
}
AdamMemberOrderPreviewVo previewVo = AdamMemberOrderPreviewVo.getNew();
previewVo.setMemberId(mno);
previewVo.setMemberTitle("摩登天空会员");
AdamRealInfoVo realInfoVo = adamRealNameService.queryByUid(CurrentUtil.getCurrentUid());
previewVo.setRealInfoVo(realInfoVo);
previewVo.setPriceVo(adamMemberPriceService.query(mno, id));
previewVo.setMemberTitle(memberVo.getTitle());
previewVo.setRealInfoVo(adamRdmService.getRealInfoVoByUid(CurrentUtil.getCurrentUid()));
previewVo.setPriceVo(adamRdmService.getMemberPriceVoByPriceId(mno, id));
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(CurrentUtil.getCurrentUid());
previewVo.setBirthday(null == userInfoVo ? null : userInfoVo.getBirthday());
return ResponseDto.success(previewVo);
}
......@@ -79,7 +82,10 @@ public class AdamMemberOrderController {
try {
log.debug("member/order/buy:param:{}", JsonUtils.toJson(param));
AdamRealInfoVo realInfoVo = adamRealNameService.queryByUid(CurrentUtil.getCurrentUid());
// TODO: 2021/6/9 判断黑名单,待定(暂不做)
AdamRealInfoVo realInfoVo = adamRdmService.getRealInfoVoByUid(CurrentUtil.getCurrentUid());
if (null == realInfoVo) {
if (StringUtils.isBlank(param.getName()) || StringUtils.isBlank(param.getIdCard())) {
return ResponseDto.failure(ErrorMapping.get("10101"));
......@@ -123,7 +129,12 @@ public class AdamMemberOrderController {
@PostMapping("exchange")
public ResponseDto<AdamMemberOrderResult> useMemberCode(@Valid @RequestBody AdamMemberOrderCodeParam param) {
try {
AdamRealInfoVo realInfoVo = adamRealNameService.queryByUid(CurrentUtil.getCurrentUid());
log.debug("member/order/exchange:param:{}", JsonUtils.toJson(param));
// TODO: 2021/6/9 判断黑名单,待定(暂不做)
AdamRealInfoVo realInfoVo = adamRdmService.getRealInfoVoByUid(CurrentUtil.getCurrentUid());
if (null == realInfoVo) {
if (StringUtils.isBlank(param.getName()) || StringUtils.isBlank(param.getIdCard())) {
return ResponseDto.failure(ErrorMapping.get("10101"));
......
package com.liquidnet.service.adam.controller.admin;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.adam.dto.AdamMemberPriceParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
import com.liquidnet.service.adam.service.admin.IAdamMemberPriceService;
import com.liquidnet.service.adam.service.admin.IAdamMemberPriceAdminService;
import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
......@@ -15,52 +14,58 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import java.util.List;
@ApiSupport(order = 90061)
@Api(tags = "后台管理:会员价格")
@Slf4j
@Validated
@RestController
@RequestMapping("admin/member/price")
public class AdamMemberPriceController {
public class AdamMemberPriceAdminController {
@Autowired
IAdamMemberPriceService adamMemberPriceService;
IAdamMemberPriceAdminService adamMemberPriceService;
@ApiOperationSupport(order = 1)
@ApiOperation(value = "会员价格列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "path", required = true, dataType = "String", name = "memberId", value = "会员卡ID[64]"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "memberId", value = "会员卡ID[64]"),
})
@GetMapping("list/{memberId}")
public ResponseDto<Object> list(@PathVariable String memberId) {
List<AdamMemberPrice> list = adamMemberPriceService.list(memberId);
List<AdamMemberPriceVo> adamMemberPriceVos = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
AdamMemberPriceVo apv = new AdamMemberPriceVo();
AdamMemberPrice amp = list.get(i);
BeanUtils.copyProperties(amp, apv);
apv.setCreatedAt(DateUtil.format(amp.getCreatedAt(), DateUtil.Formatter.yyyyMMddHHmmss));
apv.setUpdatedAt(DateUtil.format(amp.getUpdatedAt(), DateUtil.Formatter.yyyyMMddHHmmss));
adamMemberPriceVos.add(apv);
}
return ResponseDto.success(adamMemberPriceVos);
@GetMapping("list")
public ResponseDto<List<AdamMemberPrice>> list(@NotBlank @RequestParam String memberId) {
return ResponseDto.success(
adamMemberPriceService.list(
Wrappers.lambdaQuery(AdamMemberPrice.class).eq(AdamMemberPrice::getMemberId, memberId)
)
);
}
@ApiOperationSupport(order = 2)
@ApiOperation(value = "会员价格详情")
@GetMapping("info/{memberId}/{memberPriceId}")
public ResponseDto<AdamMemberPriceVo> query(@PathVariable(name = "memberId") String memberId, @PathVariable(name = "memberPriceId") String memberPriceId){
AdamMemberPriceVo adamMemberPrice = adamMemberPriceService.query(memberId, memberPriceId);
return ResponseDto.success(adamMemberPrice);
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "memberId", value = "会员卡ID[64]"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "memberPriceId", value = "会员卡价格ID[64]"),
})
@GetMapping("info")
public ResponseDto<AdamMemberPrice> query(@NotBlank @RequestParam String memberId, @NotBlank @RequestParam String memberPriceId) {
return ResponseDto.success(
adamMemberPriceService.getOne(
Wrappers.lambdaQuery(AdamMemberPrice.class)
.eq(AdamMemberPrice::getMemberPriceId, memberPriceId)
.eq(AdamMemberPrice::getMemberId, memberId)
)
);
}
@ApiOperationSupport(order = 3)
@ApiOperation(value = "添加会员价格")
@PostMapping("add")
public ResponseDto<Object> add(@RequestBody AdamMemberPriceParam param) {
public ResponseDto<Object> add(@Valid @RequestBody AdamMemberPriceParam param) {
AdamMemberPrice entity = new AdamMemberPrice();
BeanUtils.copyProperties(param, entity);
adamMemberPriceService.add(entity);
......@@ -70,10 +75,8 @@ public class AdamMemberPriceController {
@ApiOperationSupport(order = 4)
@ApiOperation(value = "编辑会员价格")
@PostMapping("edit")
public ResponseDto<Object> edit(@RequestBody AdamMemberPriceParam param) {
AdamMemberPrice entity = new AdamMemberPrice();
BeanUtils.copyProperties(param, entity);
adamMemberPriceService.edit(entity);
public ResponseDto<Object> edit(@Valid @RequestBody AdamMemberPriceParam param) {
adamMemberPriceService.edit(param);
return ResponseDto.success();
}
}
......@@ -61,7 +61,7 @@ public class AdamMemberCodeServiceImpl extends ServiceImpl<AdamMemberCodeMapper,
// redis
Map<String, Object> redisMap = new HashMap<>();
redisMap.put(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(adamMemberCode.getMemberPriceId()), vo);
redisMap.put(AdamRedisConst.INFO_MEMBERS_CODE_INFO.concat(adamMemberCode.getMemberPriceId()), vo);
redisUtil.hmset(AdamRedisConst.INFO_MEMBERS_CODE_INFO.concat(adamMemberCode.getBuyUid()) , redisMap);
}
}
......@@ -17,7 +17,7 @@ import com.liquidnet.service.adam.service.IAdamMemberOrderService;
import com.liquidnet.service.adam.service.IAdamMemberService;
import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.adam.service.IAdamUserMemberService;
import com.liquidnet.service.adam.service.admin.IAdamMemberPriceService;
import com.liquidnet.service.adam.service.admin.IAdamMemberPriceAdminService;
import com.liquidnet.service.adam.util.MemberUtil;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
......@@ -51,7 +51,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
@Autowired
IAdamUserMemberService adamUserMemberService;
@Autowired
IAdamMemberPriceService adamMemberPriceService;
IAdamMemberPriceAdminService adamMemberPriceService;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
......@@ -107,7 +107,6 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
public ResponseDto<AdamMemberOrderResult> buyMemberOrMemberCode(AdamMemberOrderParam param) {
String memberId = param.getMemberId();
String memberPriceId = param.getMemberPriceId();
// 判断黑名单,待定(暂不做)
// 验证会员是否有效
AdamMemberVo adamMemberVo = adamMemberService.queryMemberInfo();
......@@ -128,18 +127,14 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
return ResponseDto.failure(ErrorMapping.get("10202"));
}
AdamMemberPriceVo memberPrice = (AdamMemberPriceVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(memberId), memberPriceId);
if (null == memberPrice) {
memberPrice = (AdamMemberPriceVo) mongoTemplate.find(Query.query(Criteria.where("memberPriceId").is(memberPriceId)),
AdamMemberPriceVo.class, AdamMemberPriceVo.class.getSimpleName());
}
AdamMemberPriceVo memberPriceVo = adamRdmService.getMemberPriceVoByPriceId(memberId, memberPriceId);
String createdAt = DateUtil.format(LocalDateTime.now(), DateUtil.Formatter.yyyyMMddHHmmss);
// 生成订单信息
AdamMemberOrderVo orderVo = new AdamMemberOrderVo();
String orderNo = IDGenerator.nextSnowId().toString().concat("V");
orderVo.setOrderNo(orderNo);
orderVo.setMemberId(memberId);
orderVo.setDays(memberPrice.getDays());
orderVo.setDays(memberPriceVo.getDays());
orderVo.setMemberPriceId(memberPriceId);
orderVo.setCreatedAt(createdAt);
orderVo.setMemberName(adamMemberVo.getName());
......@@ -220,12 +215,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
return ResponseDto.failure(ErrorMapping.get(memberCodeVo.getState() == 1 ? "10206" : "10207"));
}
// 获取会员价格对应的天数
AdamMemberPriceVo priceVo = (AdamMemberPriceVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(memberCodeVo.getMemberId()), memberCodeVo.getMemberPriceId());
if (null == priceVo) {
priceVo = mongoTemplate.findOne(Query.query(Criteria.where("memberPriceId").is(memberCodeVo.getMemberPriceId())), AdamMemberPriceVo.class, AdamMemberPriceVo.class.getSimpleName());
}
if (null == priceVo) {
AdamMemberPriceVo memberPriceVo = adamRdmService.getMemberPriceVoByPriceId(memberCodeVo.getMemberId(), memberCodeVo.getMemberPriceId());
if (null == memberPriceVo) {
return ResponseDto.failure(ErrorMapping.get("10202"));
}
......@@ -245,7 +236,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
orderVo.setMemberName(adamMemberVo.getName());
orderVo.setState(AdamMemberConst.STATUS_UNPAID);
orderVo.setCreatedAt(currentDateTime);
orderVo.setDays(priceVo.getDays());
orderVo.setDays(memberPriceVo.getDays());
orderVo.setPayNo(memberCodeVo.getCode());
orderVo.setPrice(BigDecimal.valueOf(0));
......@@ -340,7 +331,8 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
// 订单金额比对
return ResponseDto.failure(ErrorMapping.get("10503"), parameter);
}
AdamMemberPriceVo memberPriceVo = adamMemberPriceService.query(handleMemberOrderVo.getMemberId(), handleMemberOrderVo.getMemberPriceId());
AdamMemberPriceVo memberPriceVo =
adamRdmService.getMemberPriceVoByPriceId(handleMemberOrderVo.getMemberId(), handleMemberOrderVo.getMemberPriceId());
if (null == memberPriceVo) {
return ResponseDto.failure(ErrorMapping.get("10500"));
}
......@@ -439,7 +431,7 @@ public class AdamMemberOrderServiceImpl extends ServiceImpl<AdamMemberOrderMappe
mongoTemplate.getCollection(AdamMemberOrderVo.class.getSimpleName())
.updateOne(Query.query(Criteria.where("orderNo").is(handleMemberOrderVo.getOrderNo())).getQueryObject(),
new Document(Document.parse(JsonUtils.toJson(updateMemberOrderVo))));
new Document("$set", Document.parse(JsonUtils.toJson(updateMemberOrderVo))));
toMqSqls.add(SqlMapping.get("adam_member_order.update"));
updateMemberOrderObjs.add(new Object[]{
......
......@@ -38,7 +38,6 @@ public class AdamMemberServiceImpl extends ServiceImpl<AdamMemberMapper, AdamMem
@Autowired
RedisUtil redisUtil;
// TODO: 2021/5/26 数据存取更正,不走MySql
@Override
public AdamMemberVo queryMemberInfo() {
AdamMemberVo info = null;
......
......@@ -8,21 +8,24 @@ import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.service.IAdamRdmService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
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 org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.Arrays;
import java.util.List;
@Slf4j
@Service
public class AdamRdmServiceImpl implements IAdamRdmService {
@Autowired
RedisUtil redisUtil;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
@Override
public boolean setUidByMobile(String mobile, String uid) {
......@@ -64,14 +67,10 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
String rk = AdamRedisConst.INFO_USER.concat(uid);
AdamUserInfoVo userInfoVo = (AdamUserInfoVo) redisUtil.get(rk);
if (null == userInfoVo) {
long startTime = System.currentTimeMillis();
userInfoVo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamUserInfoVo.class, AdamUserInfoVo.class.getSimpleName());
log.info("mongo getUserInfoVoByUid calltime: {}",System.currentTimeMillis() - startTime);
startTime = System.currentTimeMillis();
if (null != userInfoVo) redisUtil.set(rk, userInfoVo);
log.info("redis redisUtil set userInfoVo calltime: {}",System.currentTimeMillis() - startTime);
}
return userInfoVo;
}
......@@ -88,7 +87,6 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
@Override
public AdamRealInfoVo getRealInfoVoByUid(String uid) {
long startTime = System.currentTimeMillis();
String rk = AdamRedisConst.INFO_REAL_NAME.concat(uid);
AdamRealInfoVo realInfoVo = (AdamRealInfoVo) redisUtil.get(rk);
if (null == realInfoVo) {
......@@ -97,7 +95,6 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
if (null != realInfoVo) redisUtil.set(rk, realInfoVo);
}
log.info("mongo redis getRealInfoVoByUid calltime: {}",System.currentTimeMillis() - startTime);
return realInfoVo;
}
......@@ -113,7 +110,6 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
@Override
public List<AdamThirdPartInfoVo> getThirdPartVoListByUid(String uid) {
long startTime = System.currentTimeMillis();
String rk = AdamRedisConst.INFO_THIRD_PARTY.concat(uid);
List<AdamThirdPartInfoVo> thirdPartInfoVos = (List<AdamThirdPartInfoVo>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(thirdPartInfoVos)) {
......@@ -122,7 +118,6 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
if (!CollectionUtils.isEmpty(thirdPartInfoVos)) redisUtil.set(rk, thirdPartInfoVos);
}
log.info("mongo redis getThirdPartVoListByUid calltime: {}",System.currentTimeMillis() - startTime);
return thirdPartInfoVos;
}
......@@ -210,7 +205,6 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
@Override
public AdamUserMemberVo getUserMemberVoByUid(String uid) {
long startTime = System.currentTimeMillis();
String rk = AdamRedisConst.INFO_MEMBER_USER.concat(uid);
AdamUserMemberVo adamUserMemberVo = (AdamUserMemberVo) redisUtil.get(rk);
if (null == adamUserMemberVo) {
......@@ -218,7 +212,6 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
if (null != adamUserMemberVo) redisUtil.set(rk, adamUserMemberVo);
}
log.info("mongo redis getUserMemberVoByUid calltime: {}",System.currentTimeMillis() - startTime);
return adamUserMemberVo;
}
......@@ -229,23 +222,93 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
@Override
public AdamMemberSimpleVo getMemberSimpleVo() {
long startTime = System.currentTimeMillis();
AdamMemberSimpleVo simpleVo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBER_SIMPLE);
if (null == simpleVo) {
// TODO: 2021/6/8
List<AdamMemberSimpleVo> simpleVoList = mongoTemplate.findAll(AdamMemberSimpleVo.class, AdamMemberVo.class.getSimpleName());
AdamMemberSimpleVo vo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBER_SIMPLE);
if (null == vo) {
List<AdamMemberSimpleVo> vos = mongoTemplate.find(
Query.query(Criteria.where("state").is(1)).with(Sort.by(Sort.Direction.ASC, "memberId")),
AdamMemberSimpleVo.class, AdamMemberVo.class.getSimpleName()
);
vo = CollectionUtils.isEmpty(vos) ? null : vos.get(0);
if (null != vo) redisUtil.set(AdamRedisConst.INFO_MEMBER_SIMPLE, vo);
}
return vo;
}
@Override
public AdamMemberVo getMemberVoByMemberId(String memberId) {
String key = AdamRedisConst.INFO_MEMBER_CATEGORY.concat(memberId);
AdamMemberVo vo = (AdamMemberVo) redisUtil.get(key);
if (null == vo) {
vo = mongoTemplate.findOne(
Query.query(Criteria.where("memberId").is(memberId).and("state").is(1)),
AdamMemberVo.class, AdamMemberVo.class.getSimpleName()
);
if (null != vo) redisUtil.set(AdamRedisConst.INFO_MEMBER_CATEGORY, vo);
}
return vo;
}
@Override
public boolean setMemberPriceVoByMemberId(String memberId, List<AdamMemberPriceVo> vos) {
return redisUtil.set(AdamRedisConst.INFO_MEMBER_PRICE.concat(memberId), vos);
}
@Override
public List<AdamMemberPriceVo> getMemberPriceVoByMemberId(String memberId) {
List<AdamMemberPriceVo> vos = (List<AdamMemberPriceVo>) redisUtil.get(AdamRedisConst.INFO_MEMBER_PRICE.concat(memberId));
if (CollectionUtils.isEmpty(vos)) {
}
return vos;
}
@Override
public AdamMemberPriceVo getMemberPriceVoByPriceId(String memberId, String memberPriceId) {
List<AdamMemberPriceVo> vos = this.getMemberPriceVoByMemberId(memberId);
if (!CollectionUtils.isEmpty(vos)) {
for (AdamMemberPriceVo r : vos) {
if (memberPriceId.equals(r.getMemberPriceId())) {
return r;
}
}
}
return null;
}
@Override
public boolean setMemberRightsVoByMemberId(String memberId, List<AdamMemberRightsVo> vos) {
return redisUtil.set(AdamRedisConst.INFO_MEMBER_RIGHTS.concat(memberId), vos);
}
simpleVo = CollectionUtils.isEmpty(simpleVoList) ? null : simpleVoList.get(0);
@Override
public List<AdamMemberRightsVo> getMemberRightsVoByMemberId(String memberId) {
List<AdamMemberRightsVo> vos = (List<AdamMemberRightsVo>) redisUtil.get(AdamRedisConst.INFO_MEMBER_RIGHTS.concat(memberId));
if (CollectionUtils.isEmpty(vos)) {
vos = Arrays.asList(AdamMemberRightsVo.getNew().setName("专属").setSort(1)
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c4477d72.png"),
AdamMemberRightsVo.getNew().setName("优惠").setSort(2)
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c685e7a8.png"),
AdamMemberRightsVo.getNew().setName("优先").setSort(3)
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c726a750.png"),
AdamMemberRightsVo.getNew().setName("专属").setSort(4)
.setCover("https://img.zhengzai.tv/files/2020/08/28/5f490c5de2870.png")
);
if (null != simpleVo) redisUtil.set(AdamRedisConst.INFO_MEMBER_SIMPLE, simpleVo);
redisUtil.set(AdamRedisConst.INFO_MEMBER_RIGHTS.concat(memberId), vos);
}
log.info("mongo redis getMemberSimpleVo calltime: {}",System.currentTimeMillis() - startTime);
return simpleVo;
return vos;
}
@Override
public String getMemberAgreement() {
return (String) redisUtil.get(AdamRedisConst.INFO_MEMBER_AGREEMENT);
String val = (String) redisUtil.get(AdamRedisConst.INFO_MEMBER_AGREEMENT);
if (StringUtils.isEmpty(val)) {
val = "<p style=\"text-align: center;\"><span class=\"ql-size-large\">摩登天空登登登会员服务协议</span></p><p style=\"text-align: center;\"><br></p><p style=\"text-align: center;\">本版本更新时间:2021年1月26日&nbsp;</p><p style=\"text-align: right;\">&nbsp;</p><p style=\"text-align: justify;\">一 、接受协议</p><p style=\"text-align: justify;\">1.1一旦您注册成为摩登天空登登登会员用户,便表示您(以下简称“用户”)已经完全理解并同意接受本协议(以下简称“协议”)。</p><p style=\"text-align: justify;\">1.2在您接受本协议之后,本协议可能因国家政策、产品与/或服务以及履行本协议的环境发生变化而进行修改,一旦本协议内容发生变更的,本网站将在相应页面、站内信或以其他合理方式进行通知,请您仔细阅读。如您在本协议更新后继续使用摩登天空登登登会员服务,即表示您已充分阅读、理解并接受更新后的本协议并愿意接受更新后的协议约束。如果您不同意变更的内容,您可以选择停止使用摩登天空登登登会员服务。更新后的协议自发布之日起生效。</p><p style=\"text-align: justify;\">1.3若您是未成年人,请您在监护人监护、指导下阅读并决定是否同意本协议。未成年人行使和履行本协议项下的权利和义务视为已获得了监护人的认可。</p><p style=\"text-align: justify;\">&nbsp;</p><p style=\"text-align: justify;\">二、服务内容</p><p style=\"text-align: justify;\">2.1摩登天空登登登会员是指完成了成为会员的所有程序,且在遵守本协议的前提下,在会员时长有效期内享受摩登天空提供的登登登会员服务的自然人。</p><p style=\"text-align: justify;\"><strong>2.2 摩登天空有权根据法律法规及政策变更,合作方要求以及自身运营策略变更对登登登会员服务内容(包括但不限于登登登会员权益细则,收费标准和收费方式)进行部分或全部变更。就前述变更,本网站将在相应页面、站内信或以其他合理方式进行发布,发布之后立即生效。如果您不同意变更的内容,您可以选择停止使用摩登天空登登登会员服务。</strong></p><p style=\"text-align: justify;\">2.3摩登天空登登登会员服务协议是《正在现场注册协议》以及《正在现场隐私权保护协议》的补充协议。</p><p style=\"text-align: justify;\">&nbsp;</p><p style=\"text-align: justify;\">三、会员账号及权益</p><p style=\"text-align: justify;\">3.1在用户的登登登会员服务有效期内,用户在本网站所使用的账号即为用户的登登登会员账号。用户有责任维持自己所注册的账号和密码的安全,用户应对所有使用本人的密码及账号的活动负完全责任。用户同意:(a) 本人的密码或账号遭到未获授权的使用。或者发生其他任何安全问题时,请立即通知本网站,且(b)每次上网完毕都会把本人的账号关掉。<strong>如未能依前述规定行事,对于任何人利用该密码及账号所进行的任何行为,用户应负完全的责任。对于因此而产生的任何损失或损害,本网站无法也不承担任何责任。 根据有关法律法规,本网站在此郑重提请用户注意,任何经由我们的服务以上载、张贴、发送电子邮件或其他任何方式传送的资讯、资料、文字、软件、音乐、音讯、照片、图形、视讯、信息或其它资料(以下简称“内容”),无论系公开还是私下传送,均由内容提供者、上传者承担责任。本网站无法控制经由我们的服务传送之内容,因此不保证内容的正确性、完整性或品质。 如用户已预知使用我们的服务时,可能会接触到令人不适之内容,在任何情况下,本网站均不为此负责。包含但不限于任何内容之任何错误或遗漏,以及经由我们的服务及张贴、发送电子邮件或其它方式传送任何内容而衍生之任何损失或损害。本网站有权依法停止传输任何前述内容并采取相应行动,包含但不限于暂停用户使用我们的服务的全部或部分,保持有关记录,并向有关机关报备。</strong></p><p style=\"text-align: justify;\">3.2 登登登会员权益:</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;摩登天空登登登会员权益包括:</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.超过百场演出优先购票权、入场权及专属通道*</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.会员专属纪念品礼盒</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.会员独享限定款商品及音像制品的购买权利(专属商品上线)</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.超过百款商品的会员优惠价</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.会员专属的演出以及线上线下活动</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6.会员专属的视频音频节目</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7.想不到的惊喜</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8.免费观演以及免费商品的抽奖权利。</p><p>•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>(具体享有会员权益的演出场次和商品以本网站指定为准)</strong></p><p style=\"text-align: justify;\"><strong>本网站可能会根据法律法规及政策变更、版权状态变化、自身运营策略对前述会员权益作出部分修改。</strong></p><p style=\"text-align: justify;\">3.3 登登登会员服务期限及延期:</p><p style=\"text-align: justify;\"><strong>用户的登登登会员服务的服务期限自用户成为登登登会员之时起算,以用户自行选择并支付相应会员费用对应的服务期限为准,用户可以通过登录本网站会员中心免费查询。该期限不因您未使用等情况而延长。当会员服务期限到期后,本网站将停止继续向您提供登登登会员服务;但如您开通自动续费服务且您在服务期限到期前续费成功的,会员服务期限将在原服务期限的基础上顺延。</strong></p><p style=\"text-align: justify;\">&nbsp;</p><p style=\"text-align: justify;\">四、隐私保护</p><p style=\"text-align: justify;\">4.1 本网站保证不对外公开或向第三方提供单个用户的注册资料及用户在使用网络服务时存储在本网站的非公开内容,但下列情况除外:</p><p style=\"text-align: justify;\">4.1.1事先获得用户的明确授权;</p><p style=\"text-align: justify;\">4.1.2根据有关的法律法规要求;</p><p style=\"text-align: justify;\">4.1.3按照相关政府主管部门的要求;</p><p style=\"text-align: justify;\">4.1.4为维护社会公众的利益;</p><p style=\"text-align: justify;\">4.1.5为维护本网站的合法权益;</p><p style=\"text-align: justify;\">4.1.6其他需要公开、编辑或透露个人信息的情况。</p><p style=\"text-align: justify;\"><strong>4.2 本网站可能会与第三方合作向用户提供相关的网络服务,在此情况下,如第三方同意承担与本网站同等的保护用户隐私的责任,则本网站有权将用户的注册资料等提供给该第三方。</strong></p><p style=\"text-align: justify;\"><strong>4.3 在不透露单个用户隐私资料的前提下,本网站有权对整个用户数据库进行分析并对用户数据库进行商业上的利用。</strong></p><p style=\"text-align: justify;\">&nbsp;</p><p>五、服务终止</p><p>本网站终止摩登天空登登登会员服务包括但不限于如下情况:</p><p>1. 用户自主提出的</p><p>2. 用户利用会员身份获得/购得的音乐节以及场馆演出类门票或商城商品,不得转让、代拍。如果私自转让或代拍,一经本网站发现,本网站有权取消该用户的会员资格且该用户利用会员身份进行转票/代拍所获得/购得的音乐节以及场馆演出类门票视为无效(本网站有权视具体情况要求该用户寄回或直接作废),同时清算该用户的使用权益并退回差价。会员权益计价按如下标准执行:</p><p>&nbsp;</p><p>1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;优先购票权、入场权及专属通道按照50元/次计价</p><p>2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;会员专属纪念品礼盒按照100元计价</p><p>3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;会员专属优惠商品的会员优惠价按照实际优惠价格计算</p><p>4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;会员专属的演出以及线上线下活动,已经观看的按照50元/次计价</p><p>5)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;抽取到会员免费观演以及免费商品的按照实际演出和商品的价格计算</p><p style=\"text-align: justify;\">&nbsp;</p><p style=\"text-align: justify;\">l&nbsp;用户存在或本网站独立判断用户存在任何违反国家法律法规或监管政策的行为</p><p style=\"text-align: justify;\">l&nbsp;根据法律法规、政策规定、维护账号与系统安全等紧急情况以及不可抗力因素等其他本网站无法抗拒的情况</p><p style=\"text-align: justify;\">&nbsp;</p><p style=\"text-align: justify;\">六、通知送达</p><p style=\"text-align: justify;\">6.1本网站对于摩登天空登登登用户所有的通知均可通过网页公告、电子邮件、手机短信或其他常规的信件传送等方式进行;该等通知于发送之日视为已送达收件人。</p><p style=\"text-align: justify;\">6.2用户对于本网站的通知应当通过本网站对外正式公布的通信地址、传真号码、电子邮件等联系信息进行送达。</p><p style=\"text-align: justify;\">&nbsp;</p><p style=\"text-align: justify;\">七、责权限制</p><p style=\"text-align: justify;\">用户明确了解并同意,基于以下原因造成的包括但不限于利益、信誉、应用、数据损失或其它无形损失,本网站不承担任何直接、间接、附带、特别、衍生性或惩罚性赔偿责任(即使本网站事先已被告知发生此种赔偿之可能性亦然): (i)我们的服务之使用或无法使用,(ii)为替换从或通过我们的服务购买或取得之任何商品、数据、信息、服务、收到的讯息,或缔结之交易而发生的成本,(iii)用户的传输数据遭到未获授权的存取或编造,(iv)任何第三方在我们的服务中所做之声明或行为;或(v)与我们的服务相关的其它事宜,但本协议有明确规定的除外。</p><p style=\"text-align: justify;\">&nbsp;</p><p style=\"text-align: justify;\">八、法律管辖与适用</p><p style=\"text-align: justify;\">8.1 本服务协议的生效、履行、解释及争议的解决均适用于中华人民共和国法律。</p><p style=\"text-align: justify;\">8.2 如本协议内容或其执行发生任何争议,应尽量友好协商解决;协商不成时,您同意将争议提交至北京市朝阳区人民法院诉讼解决。双方同意,解决争议时,应以您同意的最新《摩登天空登登登会员服务协议》为准。</p><p style=\"text-align: justify;\">&nbsp;</p><p style=\"text-align: justify;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;北京正在映画互联网科技有限公司</p><p style=\"text-align: justify;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2021年1月26日</p><p style=\"text-align: justify;\">&nbsp;</p>";
redisUtil.set(AdamRedisConst.INFO_MEMBER_AGREEMENT, val);
}
return val;
}
@Override
......
......@@ -2,7 +2,7 @@ package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.entity.AdamRealName;
import com.liquidnet.service.adam.mapper.AdamRealNameMapper;
......@@ -11,14 +11,11 @@ import com.liquidnet.service.base.SqlMapping;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
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 org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
......@@ -38,18 +35,6 @@ public class AdamRealNameServiceImpl extends ServiceImpl<AdamRealNameMapper, Ada
@Autowired
RabbitTemplate rabbitTemplate;
@Override
public AdamRealInfoVo queryByUid(String uid) {
AdamRealInfoVo realInfoVo = (AdamRealInfoVo) redisUtil.hget(AdamRedisConst.INFO_REAL_NAME, uid);
if (null == realInfoVo) {
realInfoVo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamRealInfoVo.class, AdamRealInfoVo.class.getSimpleName());
if (null != realInfoVo) redisUtil.hset(AdamRedisConst.INFO_REAL_NAME, uid, realInfoVo);
}
return realInfoVo;
}
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void add(AdamRealName realName) {
......@@ -64,7 +49,7 @@ public class AdamRealNameServiceImpl extends ServiceImpl<AdamRealNameMapper, Ada
realName.getState(),
realName.getCreatedAt()
);
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_real_name.add", paramList.toArray()));
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
SqlMapping.get("adam_real_name.add", paramList.toArray()));
}
}
package com.liquidnet.service.adam.service.impl.admin;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamMemberPriceParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
import com.liquidnet.service.adam.mapper.AdamMemberPriceMapper;
import com.liquidnet.service.adam.service.admin.IAdamMemberPriceService;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import com.liquidnet.service.adam.service.admin.IAdamMemberPriceAdminService;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
......@@ -29,83 +22,47 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
public class AdamMemberPriceServiceImpl extends ServiceImpl<AdamMemberPriceMapper, AdamMemberPrice> implements IAdamMemberPriceService {
public class AdamMemberPriceAdminServiceImpl extends ServiceImpl<AdamMemberPriceMapper, AdamMemberPrice> implements IAdamMemberPriceAdminService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
MongoConverter mongoConverter;
AdamMemberPriceMapper adamMemberPriceMapper;
@Autowired
RabbitTemplate rabbitTemplate;
MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
@Autowired
AdamMemberPriceMapper adamMemberPriceMapper;
@Override
public List<AdamMemberPrice> list(String memberId) {
Map<String,Object> map = new HashMap<>();
map.put("member_id", memberId);
List<AdamMemberPrice> adamMemberPrices = adamMemberPriceMapper.selectByMap(map);
return adamMemberPrices;
}
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void add(AdamMemberPrice info) {
// mysql
info.setMemberPriceId(IDGenerator.nextSnowId().toString());
info.setCreatedAt(LocalDateTime.now());
adamMemberPriceMapper.insert(info);
// mongo
AdamMemberPriceVo vo = new AdamMemberPriceVo();
BeanUtils.copyProperties(info, vo);
vo.setCreatedAt(DateUtil.format(info.getCreatedAt(), DateUtil.Formatter.yyyyMMddHHmmss));
mongoTemplate.insert(vo, AdamMemberPriceVo.class.getSimpleName());
// redis
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(info.getMemberId()), vo.getMemberPriceId(), vo);
adamMemberPriceMapper.insert(info);
mongoTemplate.insert(AdamMemberPriceVo.getNew().copy(info), AdamMemberPriceVo.class.getSimpleName());
}
@Override
public AdamMemberPriceVo query(String memberId, String memberPriceId) {
AdamMemberPriceVo priceVo = (AdamMemberPriceVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(memberId), memberPriceId);
if (null == priceVo) {
priceVo = mongoTemplate.findOne(Query.query(Criteria.where("memberPriceId").is(memberPriceId)), AdamMemberPriceVo.class, AdamMemberPriceVo.class.getSimpleName());
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void edit(AdamMemberPriceParam param) {
AdamMemberPrice updateInfo = new AdamMemberPrice();
updateInfo.setState(param.getState());
updateInfo.setName(param.getName());
updateInfo.setPrice(param.getPrice());
updateInfo.setPriceFixed(param.getPriceFixed());
updateInfo.setDays(param.getDays());
updateInfo.setDetail(param.getDetail());
updateInfo.setUpdatedAt(LocalDateTime.now());
if (null != priceVo) redisUtil.hset(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(memberId), memberPriceId, priceVo);
}
return priceVo;
}
String memberPriceId = param.getMemberPriceId();
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public boolean edit(AdamMemberPrice info) {
try {
String memberPriceId = info.getMemberPriceId();
LocalDateTime updatedAt = LocalDateTime.now();
info.setUpdatedAt(updatedAt);
// mysql
adamMemberPriceMapper.update(
info, new UpdateWrapper<AdamMemberPrice>().eq("member_price_id", memberPriceId));
// mongo
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(info)));
Document doc = mongoTemplate.getCollection(AdamMemberPrice.class.getSimpleName())
.findOneAndUpdate(
updateInfo, Wrappers.lambdaQuery(AdamMemberPrice.class).eq(AdamMemberPrice::getMemberPriceId, memberPriceId));
mongoTemplate.getCollection(AdamMemberPriceVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("memberPriceId").is(memberPriceId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
new Document("$set", Document.parse(JsonUtils.toJson(updateInfo)))
);
// reids
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(info.getMemberId()), info.getMemberPriceId(), info);
} catch (Exception e){
return false;
}
return true;
redisUtil.del(AdamRedisConst.INFO_MEMBER_PRICE.concat(memberPriceId));
}
}
package com.liquidnet.service.adam.service.impl.admin;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
......@@ -9,90 +8,54 @@ import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamMemberParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.entity.AdamMember;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
import com.liquidnet.service.adam.mapper.AdamMemberMapper;
import com.liquidnet.service.adam.mapper.AdamMemberPriceMapper;
import com.liquidnet.service.adam.service.admin.IAdamMemberAdminService;
import com.mongodb.BasicDBObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.bson.Document;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.*;
@Slf4j
@Service
public class AdamMemberServiceAdminImpl extends ServiceImpl<AdamMemberMapper, AdamMember> implements IAdamMemberAdminService {
@Autowired
AdamMemberMapper adamMemberMapper;
@Autowired
AdamMemberPriceMapper adamMemberPriceMapper;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
MongoConverter mongoConverter;
@Autowired
RabbitTemplate rabbitTemplate;
@Autowired
RedisUtil redisUtil;
@Override
public List<AdamMember> list() {
List<AdamMember> infoList = new ArrayList<>();
List<Object> list = redisUtil.lGet(AdamRedisConst.INFO_MEMBERS, 0, -1);
if (CollectionUtils.isEmpty(list)) {
infoList = mongoTemplate.findAll(AdamMember.class);
} else {
for (Object o : list) {
infoList.add((AdamMember) o);
}
}
return infoList;
}
@Override
public void add(AdamMemberParam info) {
// mysql
AdamMember adamMember = new AdamMember();
BeanUtils.copyProperties(info, adamMember);
adamMember.setMemberId(IDGenerator.nextSnowId().toString());
adamMember.setStartNo(1000);
adamMember.setStartNo(10000);
adamMember.setCreatedAt(LocalDateTime.now());
adamMember.setUpdatedAt(LocalDateTime.now());
adamMemberMapper.insert(adamMember);
AdamMemberVo amv = new AdamMemberVo();
BeanUtils.copyProperties(adamMember, amv);
List<AdamMemberPrice> adamMemberPrices = adamMemberPriceMapper.memberPriceList(adamMember.getMemberId());
amv.setPriceVoList(AdamMemberVo.setMemberPrice(adamMemberPrices));
adamMemberMapper.insert(adamMember);
// 添加数据到 Mongo
mongoTemplate.insert(amv, AdamMemberVo.class.getSimpleName());
// todo 放入MQ
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_member.add", (new AdamMemberVo()).getMqList(adamMember).toArray()));
// todo 同步redis
redisUtil.set(AdamRedisConst.INFO_MEMBERS_INFO.concat(adamMember.getMemberId()), amv);
mongoTemplate.insert(AdamMemberVo.getNew().copy(adamMember), AdamMemberVo.class.getSimpleName());
}
@Override
public void edit(AdamMember info) {
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(info)));
info.setUpdatedAt(LocalDateTime.now());
mongoTemplate.getCollection(AdamMemberVo.class.getSimpleName())
.updateOne(Query.query(Criteria.where("mId").is(info.getMid())).getQueryObject(), object);
AdamMemberVo updateVo = AdamMemberVo.getNew().copy(info);
redisUtil.set(AdamRedisConst.INFO_MEMBERS_INFO.concat(info.getMid().toString()), info);
mongoTemplate.getCollection(AdamMemberVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("mId").is(info.getMid())).getQueryObject(),
new Document("$set", Document.parse(JsonUtils.toJson(updateVo)))
);
redisUtil.del(AdamRedisConst.INFO_MEMBER_CATEGORY.concat(info.getMemberId()));
}
}
......@@ -22,6 +22,7 @@
10104=
10105=入场人不存在
10106=收获地址不存在
10107=会员卡信息不存在
......
......@@ -35,12 +35,6 @@
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-api-feign-adam</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<!-- other -->
<dependency>
......
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