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

Commit e75a1030 authored by 胡佳晨's avatar 胡佳晨

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

parents b2fe4e57 f541152f
...@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel; ...@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
@ApiModel(value = "AdamMemberParam", description = "添加会员参数") @ApiModel(value = "AdamMemberParam", description = "添加会员参数")
@Data @Data
...@@ -13,7 +14,7 @@ public class AdamMemberParam implements Serializable { ...@@ -13,7 +14,7 @@ public class AdamMemberParam implements Serializable {
/** /**
* 会员卡id * 会员卡id
*/ */
@ApiModelProperty(position = 0, required = false, value = "会员ID[50]") @ApiModelProperty(position = 0, required = false, value = "会员ID[50]", example = "62960077673504768")
private String memberId; private String memberId;
/** /**
...@@ -25,78 +26,81 @@ public class AdamMemberParam implements Serializable { ...@@ -25,78 +26,81 @@ public class AdamMemberParam implements Serializable {
/** /**
* 标题 * 标题
*/ */
@ApiModelProperty(position = 2, required = false, value = "会员标题[50]", example = "摩登天空会员卡") @ApiModelProperty(position = 2, required = true, value = "会员标题[50]", example = "摩登天空会员卡")
private String title; private String title;
/** /**
* 副标题 * 副标题
*/ */
@ApiModelProperty(position = 3, required = false, value = "会员副标题[50]", example = "摩登天空会员卡副标题") @ApiModelProperty(position = 3, required = true, value = "会员副标题[50]", example = "摩登天空会员卡副标题")
private String subTitle; private String subTitle;
/** /**
* 图标 * 图标
*/ */
@ApiModelProperty(position = 4, required = false, value = "icon图标[200]", example = "https://img.zhengzai.tv/files/2020/08/28/5f490418d30b4.png") @ApiModelProperty(position = 4, required = true, value = "icon图标[200]", example = "https://img.zhengzai.tv/files/2020/08/28/5f490418d30b4.png")
private String icon; private String icon;
/** /**
* 头像 * 头像
*/ */
@ApiModelProperty(position = 5, required = false, value = "会员头像[200]", example = "https://img.zhengzai.tv/files/2020/08/31/5f4c75095e9bc.pngv") @ApiModelProperty(position = 5, required = true, value = "会员头像[200]", example = "https://img.zhengzai.tv/files/2020/08/31/5f4c75095e9bc.pngv")
private String avatar; private String avatar;
/** /**
* 权益详情 * 权益详情
*/ */
@ApiModelProperty(position = 6, required = false, value = "权益详情[200]", example = "加入摩登天空会员您可享受到.....") @ApiModelProperty(position = 6, required = true, value = "权益详情[200]", example = "加入摩登天空会员您可享受到.....")
private String interestsDetail; private String interestsDetail;
/** /**
* 注意事项 * 注意事项
*/ */
@ApiModelProperty(position = 7, required = false, value = "注意事项[200]", example = "摩登天空会员需注意以下事项.....") @ApiModelProperty(position = 7, required = true, value = "注意事项[200]", example = "摩登天空会员需注意以下事项.....")
private String notes; private String notes;
/** /**
* '是否展示须知' * '是否展示须知'
*/ */
@ApiModelProperty(position = 8, required = false, value = "是否展示须知[200]", example = "0") @ApiModelProperty(position = 8, required = true, value = "是否展示须知[200]", example = "0")
private Integer isNotice; private Integer isNotice;
/** /**
* 须知内容 * 须知内容
*/ */
@ApiModelProperty(position = 9, required = false, value = "会员须知内容[200]", example = "会员须知细则1.xxxx\n2.xxxx") @ApiModelProperty(position = 9, required = true, value = "会员须知内容[200]", example = "会员须知细则1.xxxx\n2.xxxx")
private String noticeInfo; private String noticeInfo;
/** /**
* 须知标题 * 须知标题
*/ */
@ApiModelProperty(position = 10, required = false, value = "会员须知标题[200]", example = "摩登天空会员须知") @ApiModelProperty(position = 10, required = true, value = "会员须知标题[200]", example = "摩登天空会员须知")
private String noticeTitle; private String noticeTitle;
/** /**
* 是否需要答题 0不需要 1需要 * 是否需要答题 0不需要 1需要
*/ */
@ApiModelProperty(position = 11, required = false, value = "是否需要答题[200]", example = "0") @ApiModelProperty(position = 11, required = true, value = "是否需要答题[200]", example = "0")
private Integer needQuestion; private Integer needQuestion;
/** /**
* 是否展示协议 0否1是 * 是否展示协议 0否1是
*/ */
@ApiModelProperty(position = 12, required = false, value = "是否展示协议[200]", example = "0") @ApiModelProperty(position = 12, required = true, value = "是否展示协议[200]", example = "0")
private Integer displayAgreement; private Integer displayAgreement;
/** /**
* 会员协议 * 会员协议
*/ */
@ApiModelProperty(position = 13, required = false, value = "会员协议内容[200]", example = "摩登天空会员协议须知....") @ApiModelProperty(position = 13, required = true, value = "会员协议内容[200]", example = "摩登天空会员协议须知....")
private String agreement; private String agreement;
/** /**
* 限购数量 * 限购数量
*/ */
@ApiModelProperty(position = 14, required = false, value = "限购数量,0不限购[200]", example = "0") @ApiModelProperty(position = 14, required = true, value = "限购数量,0不限购[200]", example = "0")
private Integer limitation; private Integer limitation;
@ApiModelProperty(position = 15, required = true, value = "会员卡价格ID", dataType = "List", example = "63666042953703424")
private List<String> memberPriceList;
} }
...@@ -60,7 +60,7 @@ public class AdamMemberPriceParam implements Serializable { ...@@ -60,7 +60,7 @@ public class AdamMemberPriceParam implements Serializable {
* 折扣价 * 折扣价
*/ */
@ApiModelProperty(position = 6, required = false, value = "折扣价", example = "199") @ApiModelProperty(position = 6, required = false, value = "折扣价", example = "199")
private BigDecimal price_fixed; private BigDecimal priceFixed;
/** /**
* 会员包有效天数 * 会员包有效天数
......
package com.liquidnet.service.adam.dto.vo; package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.adam.entity.AdamEnters; import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.entity.AdamMember;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.beans.BeanUtils;
import java.util.ArrayList;
import java.util.List;
@ApiModel(value = "AdamMemberVo", description = "会员") @ApiModel(value = "AdamMemberVo", description = "会员")
@Data @Data
...@@ -11,6 +20,99 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable { ...@@ -11,6 +20,99 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
private static final AdamMemberVo obj = new AdamMemberVo(); private static final AdamMemberVo obj = new AdamMemberVo();
/**
* 会员卡id
*/
@ApiModelProperty(position = 0, required = false, value = "会员ID[50]", example = "62960077673504768")
private String memberId;
/**
* 会员卡名称
*/
@ApiModelProperty(position = 1, required = false, value = "会员名称[50]", example = "摩登天空会员卡")
private String name;
/**
* 标题
*/
@ApiModelProperty(position = 2, required = true, value = "会员标题[50]", example = "摩登天空会员卡")
private String title;
/**
* 副标题
*/
@ApiModelProperty(position = 3, required = true, value = "会员副标题[50]", example = "摩登天空会员卡副标题")
private String subTitle;
/**
* 图标
*/
@ApiModelProperty(position = 4, required = true, value = "icon图标[200]", example = "https://img.zhengzai.tv/files/2020/08/28/5f490418d30b4.png")
private String icon;
/**
* 头像
*/
@ApiModelProperty(position = 5, required = true, value = "会员头像[200]", example = "https://img.zhengzai.tv/files/2020/08/31/5f4c75095e9bc.pngv")
private String avatar;
/**
* 权益详情
*/
@ApiModelProperty(position = 6, required = true, value = "权益详情[200]", example = "加入摩登天空会员您可享受到.....")
private String interestsDetail;
/**
* 注意事项
*/
@ApiModelProperty(position = 7, required = true, value = "注意事项[200]", example = "摩登天空会员需注意以下事项.....")
private String notes;
/**
* '是否展示须知'
*/
@ApiModelProperty(position = 8, required = true, value = "是否展示须知[200]", example = "0")
private Integer isNotice;
/**
* 须知内容
*/
@ApiModelProperty(position = 9, required = true, value = "会员须知内容[200]", example = "会员须知细则1.xxxx\n2.xxxx")
private String noticeInfo;
/**
* 须知标题
*/
@ApiModelProperty(position = 10, required = true, value = "会员须知标题[200]", example = "摩登天空会员须知")
private String noticeTitle;
/**
* 是否需要答题 0不需要 1需要
*/
@ApiModelProperty(position = 11, required = true, value = "是否需要答题[200]", example = "0")
private Integer needQuestion;
/**
* 是否展示协议 0否1是
*/
@ApiModelProperty(position = 12, required = true, value = "是否展示协议[200]", example = "0")
private Integer displayAgreement;
/**
* 会员协议
*/
@ApiModelProperty(position = 13, required = true, value = "会员协议内容[200]", example = "摩登天空会员协议须知....")
private String agreement;
/**
* 限购数量
*/
@ApiModelProperty(position = 14, required = true, value = "限购数量,0不限购[200]", example = "0")
private Integer limitation;
@ApiModelProperty(position = 15, required = true, value = "会员卡价格ID", dataType = "List")
private List<AdamMemberPriceVo> adamMemberPrice;
public static AdamMemberVo getNew() { public static AdamMemberVo getNew() {
try { try {
return (AdamMemberVo) obj.clone(); return (AdamMemberVo) obj.clone();
...@@ -19,4 +121,50 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable { ...@@ -19,4 +121,50 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
} }
return new AdamMemberVo(); return new AdamMemberVo();
} }
/**
* 设置会员价格
* @param adamMemberPrices
* @return
*/
@JsonIgnore
public 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.getAgreement());
paramList.add(adamMember.getMemberId());
paramList.add(adamMember.getLimitation());
return paramList;
}
} }
package com.liquidnet.service.adam.service; package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.entity.AdamMember; import com.liquidnet.service.adam.entity.AdamMember;
import java.util.List;
/** /**
* 会员信息 * 客户端调用
*/ */
public interface IAdamMemberService extends IService<AdamMember> { public interface IAdamMemberService extends IService<AdamMember> {
AdamMemberVo queryMemberInfo();
List<AdamMember> list();
void add(AdamMember info);
AdamMember query(String mid);
void edit(AdamMember info);
} }
package com.liquidnet.service.adam.service; package com.liquidnet.service.adam.service.admin;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.entity.AdamMemberPrice; import com.liquidnet.service.adam.entity.AdamMemberPrice;
......
package com.liquidnet.service.adam.service.admin;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.AdamMemberParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.entity.AdamMember;
import java.util.List;
/**
* 会员信息
*/
public interface IAdamMemberService extends IService<AdamMember> {
List<AdamMember> list();
void add(AdamMemberParam info);
void edit(AdamMember info);
}
...@@ -4,5 +4,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -4,5 +4,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.adam.entity.AdamMember; import com.liquidnet.service.adam.entity.AdamMember;
public interface AdamMemberMapper extends BaseMapper<AdamMember> { public interface AdamMemberMapper extends BaseMapper<AdamMember> {
AdamMember getFirstMember();
} }
\ No newline at end of file
...@@ -3,6 +3,10 @@ package com.liquidnet.service.adam.mapper; ...@@ -3,6 +3,10 @@ package com.liquidnet.service.adam.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.adam.entity.AdamMemberPrice; import com.liquidnet.service.adam.entity.AdamMemberPrice;
import java.util.List;
public interface AdamMemberPriceMapper extends BaseMapper<AdamMemberPrice> { public interface AdamMemberPriceMapper extends BaseMapper<AdamMemberPrice> {
AdamMemberPrice misMemberPriceInfo(String memberPriceId); AdamMemberPrice misMemberPriceInfo(String memberPriceId);
List<AdamMemberPrice> memberPriceList(String memberId);
} }
\ No newline at end of file
<?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.AdamMemberPriceMapper">
<resultMap id="MemberResult" type="com.liquidnet.service.adam.entity.AdamMember">
<result column="member_id" property="memberId" />
<result column="status" property="status" />
<result column="name" property="name" />
<result column="title" property="title" />
<result column="sub_title" property="subTitle" />
<result column="start_no" property="startNo" />
<result column="icon" property="icon" />
<result column="avatar" property="avatar" />
<result column="type" property="type" />
<result column="interests_details" property="interestsDetails" />
<result column="notes" property="notes" />
<result column="is_notice" property="isNotice" />
<result column="notice_info" property="noticeInfo" />
<result column="notice_title" property="noticeTitle" />
<result column="need_question" property="needQuestion" />
<result column="display_agreement" property="displayAgreement" />
<result column="agreement" property="agreement" />
<result column="limitation" property="limitation" />
<result column="created_at" property="createdAt" />
<result column="updated_at" property="updatedAt" />
</resultMap>
<!-- sql -->
<sql id="Base_Column">
m.member_id,
m.status,
m.name,
m.title,
m.sub_title,
m.start_no,
m.icon,
m.avatar,
m.type,
m.interests_details,
m.notes,
m.is_notice,
m.notice_info,
m.notice_title,
m.need_question,
m.display_agreement,
m.agreement,
m.limitation,
m.created_at,
m.updated_at
</sql>
<select id="getFirstMember" parameterType="java.lang.String" resultMap="MemberResult">
SELECT
<include refid="Base_Column"></include>
FROM adam_member_price as m
limit 0,1
</select>
</mapper>
...@@ -27,7 +27,15 @@ ...@@ -27,7 +27,15 @@
m.updated_at, m.updated_at,
m.member_price_id m.member_price_id
</sql> </sql>
<!-- 根据会员id查询价格列表 -->
<select id="memberPriceList" parameterType="java.lang.String" resultMap="MemberPriceResult">
SELECT
<include refid="Base_Column"/>
FROM adam_member_price as m
<where>
m.member_id=#{memberId}
</where>
</select>
<!-- mis会员价格详情 --> <!-- mis会员价格详情 -->
<select id="misMemberPriceInfo" parameterType="java.lang.String" resultMap="MemberPriceResult"> <select id="misMemberPriceInfo" parameterType="java.lang.String" resultMap="MemberPriceResult">
SELECT SELECT
......
package com.liquidnet.service.adam.controller; package com.liquidnet.service.adam.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.ResponseDto; import com.liquidnet.service.ResponseDto;
import com.liquidnet.service.adam.dto.AdamEntersParam; import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.dto.AdamMemberParam;
import com.liquidnet.service.adam.entity.AdamMember;
import com.liquidnet.service.adam.service.IAdamMemberService; import com.liquidnet.service.adam.service.IAdamMemberService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "会员信息") @Api(tags = "会员信息")
@Slf4j @Slf4j
...@@ -23,30 +20,12 @@ public class AdamMemberController { ...@@ -23,30 +20,12 @@ public class AdamMemberController {
@Autowired @Autowired
IAdamMemberService adamMemberService; IAdamMemberService adamMemberService;
@Autowired
AmqpTemplate amqpTemplate;
@ApiOperationSupport(order = 0) @ApiOperationSupport(order = 0)
@ApiOperation(value = "会员信息") @ApiOperation(value = "会员信息")
@GetMapping("info/{id}") @GetMapping("info")
public ResponseDto<Object> query(@PathVariable(name = "id", required = true) String memberId) { public ResponseDto<Object> query() {
AdamMember info = adamMemberService.query(memberId); AdamMemberVo info = adamMemberService.queryMemberInfo();
return ResponseDto.success(info); return ResponseDto.success(info);
} }
@ApiOperationSupport(order = 1)
@ApiOperation(value = "添加会员")
@PostMapping("add")
public ResponseDto<Object> add(@RequestBody AdamMemberParam parameter) {
AdamMember adamMember = new AdamMember();
BeanUtils.copyProperties(parameter, adamMember);
adamMember.setLimitation(1000);
adamMember.setType(1);
adamMember.setStartNo(1000);
adamMember.setMemberId(String.valueOf(IDGenerator.nextSnowId()));
adamMemberService.add(adamMember);
return ResponseDto.success();
}
} }
package com.liquidnet.service.adam.controller.admin;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.ResponseDto;
import com.liquidnet.service.adam.dto.AdamMemberParam;
import com.liquidnet.service.adam.entity.AdamMember;
import com.liquidnet.service.adam.service.admin.IAdamMemberService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@Api(tags = "会员信息")
@Slf4j
@RestController
@RequestMapping("/member")
public class AdamMemberController {
@Autowired
IAdamMemberService adamMemberService;
@Autowired
AmqpTemplate amqpTemplate;
@ApiOperationSupport(order = 1)
@ApiOperation(value = "添加会员")
@PostMapping("add")
public ResponseDto<Object> add(@RequestBody AdamMemberParam parameter) {
AdamMember adamMember = new AdamMember();
BeanUtils.copyProperties(parameter, adamMember);
adamMember.setLimitation(1000);
adamMember.setType(1);
adamMember.setStartNo(1000);
adamMember.setMemberId(String.valueOf(IDGenerator.nextSnowId()));
adamMemberService.add(parameter);
return ResponseDto.success();
}
}
...@@ -6,7 +6,7 @@ import com.liquidnet.service.ResponseDto; ...@@ -6,7 +6,7 @@ import com.liquidnet.service.ResponseDto;
import com.liquidnet.service.adam.dto.AdamMemberPriceParam; import com.liquidnet.service.adam.dto.AdamMemberPriceParam;
import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo; import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo;
import com.liquidnet.service.adam.entity.AdamMemberPrice; import com.liquidnet.service.adam.entity.AdamMemberPrice;
import com.liquidnet.service.adam.service.IAdamMemberPriceService; import com.liquidnet.service.adam.service.admin.IAdamMemberPriceService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -14,7 +14,6 @@ import org.springframework.beans.BeanUtils; ...@@ -14,7 +14,6 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.text.ParseException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
......
package com.liquidnet.service.adam.service.impl; package com.liquidnet.service.adam.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.SqlMapping;
import com.liquidnet.service.adam.constant.AdamRedisConst; import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.entity.AdamMember; 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.AdamMemberMapper;
import com.liquidnet.service.adam.mapper.AdamMemberPriceMapper;
import com.liquidnet.service.adam.service.IAdamMemberService; import com.liquidnet.service.adam.service.IAdamMemberService;
import com.mongodb.BasicDBObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -20,20 +17,21 @@ import org.springframework.data.mongodb.core.convert.MongoConverter; ...@@ -20,20 +17,21 @@ import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@Slf4j @Slf4j
@Service @Service
public class AdamMemberServiceImpl extends ServiceImpl<AdamMemberMapper, AdamMember> implements IAdamMemberService { public class AdamMemberServiceImpl extends ServiceImpl<AdamMemberMapper, AdamMember> implements IAdamMemberService {
@Autowired @Autowired
AdamMemberMapper adamMemberMapper; AdamMemberMapper adamMemberMapper;
@Autowired @Autowired
AdamMemberPriceMapper adamMemberPriceMapper;
@Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
@Autowired @Autowired
MongoConverter mongoConverter; MongoConverter mongoConverter;
...@@ -43,70 +41,29 @@ public class AdamMemberServiceImpl extends ServiceImpl<AdamMemberMapper, AdamMem ...@@ -43,70 +41,29 @@ public class AdamMemberServiceImpl extends ServiceImpl<AdamMemberMapper, AdamMem
RedisUtil redisUtil; RedisUtil redisUtil;
@Override @Override
public List<AdamMember> list() { public AdamMemberVo queryMemberInfo() {
List<AdamMember> infoList = new ArrayList<>(); AdamMember firstMember = adamMemberMapper.getFirstMember();
List<Object> list = redisUtil.lGet(AdamRedisConst.INFO_MEMBERS, 0, -1); String memberId = firstMember.getMemberId();
if (CollectionUtils.isEmpty(list)) { AdamMemberVo info = null;
infoList = mongoTemplate.findAll(AdamMember.class); List<AdamMemberPriceVo> memberPrice = new ArrayList<>();
} else { info = (AdamMemberVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_INFO.concat(memberId), memberId);
for (Object o : list) { Map<Object, Object> tempMemberPrice = redisUtil.hmget(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(memberId));
infoList.add((AdamMember) o); Iterator<Object> iterator = tempMemberPrice.keySet().iterator();
} while(iterator.hasNext()){
AdamMemberPriceVo tempAmp = (AdamMemberPriceVo) tempMemberPrice.get(iterator.next());
memberPrice.add(tempAmp);
} }
return infoList;
}
@Override
public void add(AdamMember info) {
// 添加数据到 Mongo
mongoTemplate.insert(Collections.singletonList(info), AdamMember.class.getSimpleName());
List<Object> paramList = new ArrayList<>();
paramList.add(info.getName());
paramList.add(info.getTitle());
paramList.add(info.getSubTitle());
paramList.add(info.getIcon());
paramList.add(info.getAvatar());
paramList.add(info.getStartNo());
paramList.add(info.getType());
paramList.add(info.getInterestsDetail());
paramList.add(info.getNotes());
paramList.add(info.getIsNotice());
paramList.add(info.getNoticeInfo());
paramList.add(info.getNoticeTitle());
paramList.add(info.getNeedQuestion());
paramList.add(info.getDisplayAgreement());
paramList.add(info.getAgreement());
paramList.add(info.getMemberId());
paramList.add(info.getLimitation());
// todo 放入MQ
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_member.add", paramList.toArray()));
// todo 同步redis
redisUtil.lSet(AdamRedisConst.INFO_MEMBERS, info);
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_INFO.concat(info.getMemberId()), info.getMemberId(), info);
}
@Override
public AdamMember query(String memberId) {
AdamMember info = null;
info = (AdamMember) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_INFO.concat(memberId), memberId);
if (null == info) { if (null == info) {
info = mongoTemplate.findOne(Query.query(Criteria.where("memberId").is(memberId)), AdamMember.class, AdamMember.class.getSimpleName()); info = mongoTemplate.findOne(Query.query(Criteria.where("memberId").is(memberId)),
AdamMemberVo.class, AdamMemberVo.class.getSimpleName());
} }
if (null == tempMemberPrice) {
memberPrice = mongoTemplate.find(Query.query(Criteria.where("memberId").is(memberId)),
AdamMemberPriceVo.class, AdamMemberPriceVo.class.getSimpleName());
}
info.setAdamMemberPrice(memberPrice);
return info; return info;
} }
@Override
public void edit(AdamMember info) {
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(info)));
mongoTemplate.getCollection(AdamMember.class.getSimpleName())
.updateOne(Query.query(Criteria.where("mId").is(info.getMid())).getQueryObject(), object);
// todo 放入MQ
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_INFO.concat(info.getMid().toString()), info.getMid().toString(), info);
redisUtil.lRemove(AdamRedisConst.INFO_MEMBERS, 1, info);
redisUtil.lSet(AdamRedisConst.INFO_MEMBERS, info);
}
} }
package com.liquidnet.service.adam.service.impl; package com.liquidnet.service.adam.service.impl.admin;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil; 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.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.constant.AdamRedisConst; import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo; import com.liquidnet.service.adam.dto.vo.AdamMemberPriceVo;
import com.liquidnet.service.adam.entity.AdamMemberPrice; import com.liquidnet.service.adam.entity.AdamMemberPrice;
import com.liquidnet.service.adam.mapper.AdamMemberPriceMapper; import com.liquidnet.service.adam.mapper.AdamMemberPriceMapper;
import com.liquidnet.service.adam.service.IAdamMemberPriceService; import com.liquidnet.service.adam.service.admin.IAdamMemberPriceService;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions; import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument; import com.mongodb.client.model.ReturnDocument;
...@@ -26,7 +27,6 @@ import org.springframework.data.mongodb.core.query.Query; ...@@ -26,7 +27,6 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -61,9 +61,16 @@ public class AdamMemberPriceServiceImpl extends ServiceImpl<AdamMemberPriceMappe ...@@ -61,9 +61,16 @@ public class AdamMemberPriceServiceImpl extends ServiceImpl<AdamMemberPriceMappe
info.setUpdatedAt(LocalDateTime.now()); info.setUpdatedAt(LocalDateTime.now());
adamMemberPriceMapper.insert(info); adamMemberPriceMapper.insert(info);
// mongo // mongo
mongoTemplate.insert(info, AdamMemberPrice.class.getSimpleName()); AdamMemberPriceVo vo = new AdamMemberPriceVo();
BeanUtils.copyProperties(info, vo);
vo.setCreatedAt(DateUtil.format(info.getCreatedAt(), DateUtil.Formatter.yyyyMMddHHmmss));
vo.setUpdatedAt(DateUtil.format(info.getUpdatedAt(), DateUtil.Formatter.yyyyMMddHHmmss));
mongoTemplate.insert(vo, AdamMemberPriceVo.class.getSimpleName());
// redis // redis
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(info.getMemberPriceId()),info.getMemberPriceId(), info); Map<String, Object> redisMap = new HashMap<>();
redisMap.put(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(info.getMemberPriceId()), vo);
redisUtil.hmset(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(info.getMemberId()), redisMap);
} }
@Override @Override
...@@ -89,8 +96,9 @@ public class AdamMemberPriceServiceImpl extends ServiceImpl<AdamMemberPriceMappe ...@@ -89,8 +96,9 @@ public class AdamMemberPriceServiceImpl extends ServiceImpl<AdamMemberPriceMappe
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER) new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
); );
// reids // reids
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(memberPriceId), Map<String, Object> redisMap = new HashMap<>();
memberPriceId, JsonUtils.fromJson(doc.toJson(), AdamMemberPrice.class)); redisMap.put(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(info.getMemberPriceId()), info);
redisUtil.hmset(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(info.getMemberId()), redisMap);
} catch (Exception e){ } catch (Exception e){
return false; return false;
} }
......
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;
import com.liquidnet.commons.lang.util.JsonUtils;
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.IAdamMemberService;
import com.mongodb.BasicDBObject;
import lombok.extern.slf4j.Slf4j;
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;
import org.springframework.util.CollectionUtils;
import java.util.*;
@Slf4j
@Service
public class AdamMemberServiceImpl extends ServiceImpl<AdamMemberMapper, AdamMember> implements IAdamMemberService {
@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);
adamMemberMapper.insert(adamMember);
AdamMemberVo amv = new AdamMemberVo();
BeanUtils.copyProperties(adamMember, amv);
List<AdamMemberPrice> adamMemberPrices = adamMemberPriceMapper.memberPriceList(info.getMemberId());
amv.setAdamMemberPrice((new AdamMemberVo()).setMemberPrice(adamMemberPrices));
// 添加数据到 Mongo
mongoTemplate.insert(Collections.singletonList(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.hset(AdamRedisConst.INFO_MEMBERS_INFO.concat(info.getMemberId()), info.getMemberId(), amv);
}
@Override
public void edit(AdamMember info) {
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(info)));
mongoTemplate.getCollection(AdamMemberVo.class.getSimpleName())
.updateOne(Query.query(Criteria.where("mId").is(info.getMid())).getQueryObject(), object);
// todo 放入MQ
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_INFO.concat(info.getMid().toString()), info.getMid().toString(), info);
}
}
...@@ -33,9 +33,15 @@ public class KylinBannersController { ...@@ -33,9 +33,15 @@ public class KylinBannersController {
@Autowired @Autowired
private KylinBannersServiceImpl kylinBannersServiceImpl; private KylinBannersServiceImpl kylinBannersServiceImpl;
@PostMapping("") @GetMapping("")
@ApiOperation(value = "banner列表") @ApiOperation(value = "banner列表")
public ResponseDto<List<BannersVo>> blist(@RequestBody BannersApiSearchParam bannersApiSearchParam) { public ResponseDto<List<BannersVo>> blist(
@RequestParam(value = "position") String position,
@RequestParam(value = "provinceCode", defaultValue = "") String provinceCode
) {
BannersApiSearchParam bannersApiSearchParam = new BannersApiSearchParam();
bannersApiSearchParam.setPosition(position);
bannersApiSearchParam.setProvinceCode(provinceCode);
List result = kylinBannersServiceImpl.blist(bannersApiSearchParam); List result = kylinBannersServiceImpl.blist(bannersApiSearchParam);
if (result.size() > 0) { if (result.size() > 0) {
......
...@@ -10,10 +10,12 @@ import com.liquidnet.service.kylin.entity.KylinBanners; ...@@ -10,10 +10,12 @@ import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.service.impl.admin.KylinBannersServiceImpl; import com.liquidnet.service.kylin.service.impl.admin.KylinBannersServiceImpl;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import net.bytebuddy.implementation.bytecode.constant.DefaultValue;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.groups.Default;
import java.util.List; import java.util.List;
/** /**
...@@ -67,9 +69,21 @@ public class KylinBannersAdminController { ...@@ -67,9 +69,21 @@ public class KylinBannersAdminController {
} }
} }
@PostMapping("list") @GetMapping("list")
@ApiOperation(value = "banner列表") @ApiOperation(value = "banner列表")
public ResponseDto<PagerVo<BannerDetailsListDao>> bannerList(@RequestBody BannersSearchParam bannersSearchParam) { public ResponseDto<PagerVo<BannerDetailsListDao>> bannerList(
@RequestParam(value = "bannersName", defaultValue = "") String bannersName,
@RequestParam(value = "isOnline", defaultValue = "1") Integer isOnline,
@RequestParam(value = "promotionType", defaultValue = "") Integer promotionType,
@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "size", defaultValue = "10") Integer size
) {
BannersSearchParam bannersSearchParam = new BannersSearchParam();
bannersSearchParam.setBannersName(bannersName);
bannersSearchParam.setIsOnline(isOnline);
bannersSearchParam.setPromotionType(promotionType);
bannersSearchParam.setPage(page);
bannersSearchParam.setSize(size);
List<BannerDetailsListDao> result = kylinBannersServiceImpl.bannerList(bannersSearchParam); List<BannerDetailsListDao> result = kylinBannersServiceImpl.bannerList(bannersSearchParam);
Long total = kylinBannersServiceImpl.bannerListCount(bannersSearchParam); Long total = kylinBannersServiceImpl.bannerListCount(bannersSearchParam);
......
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