记得上下班打卡 | 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;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "AdamMemberParam", description = "添加会员参数")
@Data
......@@ -13,7 +14,7 @@ public class AdamMemberParam implements Serializable {
/**
* 会员卡id
*/
@ApiModelProperty(position = 0, required = false, value = "会员ID[50]")
@ApiModelProperty(position = 0, required = false, value = "会员ID[50]", example = "62960077673504768")
private String memberId;
/**
......@@ -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;
/**
* 副标题
*/
@ApiModelProperty(position = 3, required = false, value = "会员副标题[50]", example = "摩登天空会员卡副标题")
@ApiModelProperty(position = 3, required = true, value = "会员副标题[50]", example = "摩登天空会员卡副标题")
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;
/**
* 头像
*/
@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;
/**
* 权益详情
*/
@ApiModelProperty(position = 6, required = false, value = "权益详情[200]", example = "加入摩登天空会员您可享受到.....")
@ApiModelProperty(position = 6, required = true, value = "权益详情[200]", example = "加入摩登天空会员您可享受到.....")
private String interestsDetail;
/**
* 注意事项
*/
@ApiModelProperty(position = 7, required = false, value = "注意事项[200]", example = "摩登天空会员需注意以下事项.....")
@ApiModelProperty(position = 7, required = true, value = "注意事项[200]", example = "摩登天空会员需注意以下事项.....")
private String notes;
/**
* '是否展示须知'
*/
@ApiModelProperty(position = 8, required = false, value = "是否展示须知[200]", example = "0")
@ApiModelProperty(position = 8, required = true, value = "是否展示须知[200]", example = "0")
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;
/**
* 须知标题
*/
@ApiModelProperty(position = 10, required = false, value = "会员须知标题[200]", example = "摩登天空会员须知")
@ApiModelProperty(position = 10, required = true, value = "会员须知标题[200]", example = "摩登天空会员须知")
private String noticeTitle;
/**
* 是否需要答题 0不需要 1需要
*/
@ApiModelProperty(position = 11, required = false, value = "是否需要答题[200]", example = "0")
@ApiModelProperty(position = 11, required = true, value = "是否需要答题[200]", example = "0")
private Integer needQuestion;
/**
* 是否展示协议 0否1是
*/
@ApiModelProperty(position = 12, required = false, value = "是否展示协议[200]", example = "0")
@ApiModelProperty(position = 12, required = true, value = "是否展示协议[200]", example = "0")
private Integer displayAgreement;
/**
* 会员协议
*/
@ApiModelProperty(position = 13, required = false, value = "会员协议内容[200]", example = "摩登天空会员协议须知....")
@ApiModelProperty(position = 13, required = true, value = "会员协议内容[200]", example = "摩登天空会员协议须知....")
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;
@ApiModelProperty(position = 15, required = true, value = "会员卡价格ID", dataType = "List", example = "63666042953703424")
private List<String> memberPriceList;
}
......@@ -60,7 +60,7 @@ public class AdamMemberPriceParam implements Serializable {
* 折扣价
*/
@ApiModelProperty(position = 6, required = false, value = "折扣价", example = "199")
private BigDecimal price_fixed;
private BigDecimal priceFixed;
/**
* 会员包有效天数
......
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.AdamMember;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.beans.BeanUtils;
import java.util.ArrayList;
import java.util.List;
@ApiModel(value = "AdamMemberVo", description = "会员")
@Data
......@@ -11,6 +20,99 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
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() {
try {
return (AdamMemberVo) obj.clone();
......@@ -19,4 +121,50 @@ public class AdamMemberVo implements java.io.Serializable, Cloneable {
}
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;
import com.baomidou.mybatisplus.extension.service.IService;
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(AdamMember info);
AdamMember query(String mid);
void edit(AdamMember info);
AdamMemberVo queryMemberInfo();
}
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;
import com.liquidnet.service.adam.entity.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;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
import java.util.List;
public interface AdamMemberPriceMapper extends BaseMapper<AdamMemberPrice> {
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 @@
m.updated_at,
m.member_price_id
</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会员价格详情 -->
<select id="misMemberPriceInfo" parameterType="java.lang.String" resultMap="MemberPriceResult">
SELECT
......
package com.liquidnet.service.adam.controller;
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.AdamEntersParam;
import com.liquidnet.service.adam.dto.AdamMemberParam;
import com.liquidnet.service.adam.entity.AdamMember;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.service.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.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "会员信息")
@Slf4j
......@@ -23,30 +20,12 @@ public class AdamMemberController {
@Autowired
IAdamMemberService adamMemberService;
@Autowired
AmqpTemplate amqpTemplate;
@ApiOperationSupport(order = 0)
@ApiOperation(value = "会员信息")
@GetMapping("info/{id}")
public ResponseDto<Object> query(@PathVariable(name = "id", required = true) String memberId) {
AdamMember info = adamMemberService.query(memberId);
@GetMapping("info")
public ResponseDto<Object> query() {
AdamMemberVo info = adamMemberService.queryMemberInfo();
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;
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.IAdamMemberPriceService;
import com.liquidnet.service.adam.service.admin.IAdamMemberPriceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......@@ -14,7 +14,6 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
......
package com.liquidnet.service.adam.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.dto.vo.AdamMemberPriceVo;
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.IAdamMemberService;
import com.mongodb.BasicDBObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -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.Query;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
public class AdamMemberServiceImpl extends ServiceImpl<AdamMemberMapper, AdamMember> implements IAdamMemberService {
@Autowired
AdamMemberMapper adamMemberMapper;
@Autowired
AdamMemberPriceMapper adamMemberPriceMapper;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
MongoConverter mongoConverter;
......@@ -43,70 +41,29 @@ public class AdamMemberServiceImpl extends ServiceImpl<AdamMemberMapper, AdamMem
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;
}
public AdamMemberVo queryMemberInfo() {
AdamMember firstMember = adamMemberMapper.getFirstMember();
String memberId = firstMember.getMemberId();
@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);
AdamMemberVo info = null;
List<AdamMemberPriceVo> memberPrice = new ArrayList<>();
info = (AdamMemberVo) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_INFO.concat(memberId), memberId);
Map<Object, Object> tempMemberPrice = redisUtil.hmget(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(memberId));
Iterator<Object> iterator = tempMemberPrice.keySet().iterator();
while(iterator.hasNext()){
AdamMemberPriceVo tempAmp = (AdamMemberPriceVo) tempMemberPrice.get(iterator.next());
memberPrice.add(tempAmp);
}
@Override
public AdamMember query(String memberId) {
AdamMember info = null;
info = (AdamMember) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_INFO.concat(memberId), memberId);
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;
}
@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.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
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.vo.AdamMemberPriceVo;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
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.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
......@@ -26,7 +27,6 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -61,9 +61,16 @@ public class AdamMemberPriceServiceImpl extends ServiceImpl<AdamMemberPriceMappe
info.setUpdatedAt(LocalDateTime.now());
adamMemberPriceMapper.insert(info);
// 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
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
......@@ -89,8 +96,9 @@ public class AdamMemberPriceServiceImpl extends ServiceImpl<AdamMemberPriceMappe
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
// reids
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(memberPriceId),
memberPriceId, JsonUtils.fromJson(doc.toJson(), AdamMemberPrice.class));
Map<String, Object> redisMap = new HashMap<>();
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){
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 {
@Autowired
private KylinBannersServiceImpl kylinBannersServiceImpl;
@PostMapping("")
@GetMapping("")
@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);
if (result.size() > 0) {
......
......@@ -10,10 +10,12 @@ import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.service.impl.admin.KylinBannersServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import net.bytebuddy.implementation.bytecode.constant.DefaultValue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.groups.Default;
import java.util.List;
/**
......@@ -67,9 +69,21 @@ public class KylinBannersAdminController {
}
}
@PostMapping("list")
@GetMapping("list")
@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);
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