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

Commit fde01b11 authored by 洪全海's avatar 洪全海

Merge branch 'dev' of http://gitlab.zhengzai.tv/dongjingwei/liquidnet-bus-v1 into dev

# Conflicts:
#	liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/service/impl/AdamEntersServiceImpl.java
parent 4440ad17
......@@ -49,45 +49,54 @@ public class AdamMemberParam implements Serializable {
/**
* 权益详情
*/
@ApiModelProperty(position = 6, required = false, value = "权益详情[200]", example = "加入摩登天空会员您可享受到.....")
private String interestsDetail;
/**
* 注意事项
*/
@ApiModelProperty(position = 7, required = false, value = "注意事项[200]", example = "摩登天空会员需注意以下事项.....")
private String notes;
/**
* '是否展示须知'
*/
@ApiModelProperty(position = 8, required = false, value = "是否展示须知[200]", example = "0")
private Integer isNotice;
/**
* 须知内容
*/
@ApiModelProperty(position = 9, required = false, value = "会员须知内容[200]", example = "会员须知细则1.xxxx\n2.xxxx")
private String noticeInfo;
/**
* 须知标题
*/
@ApiModelProperty(position = 10, required = false, value = "会员须知标题[200]", example = "摩登天空会员须知")
private String noticeTitle;
/**
* 是否需要答题 0不需要 1需要
*/
@ApiModelProperty(position = 11, required = false, value = "是否需要答题[200]", example = "0")
private Integer needQuestion;
/**
* 是否展示协议 0否1是
*/
@ApiModelProperty(position = 12, required = false, value = "是否展示协议[200]", example = "0")
private Integer displayAgreement;
/**
* 会员协议
*/
@ApiModelProperty(position = 13, required = false, value = "会员协议内容[200]", example = "摩登天空会员协议须知....")
private String agreement;
/**
* 限购数量
*/
@ApiModelProperty(position = 14, required = false, value = "限购数量,0不限购[200]", example = "0")
private Integer limitation;
}
package com.liquidnet.service.adam.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.beans.BeanUtils;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 会员价格
*/
@ApiModel(value = "AdamMemberPriceParam", description = "添加编辑会员价格")
@Data
public class AdamMemberPriceParam implements Serializable {
private static final long serialVersionUID = 5940725094369061032L;
@ApiModelProperty(position = 0, required = false, value = "价格id")
private Integer mid;
/**
* 会员价格ID
*/
@ApiModelProperty(position = 1, required = false, value = "会员价格ID")
private String memberPriceId;
/**
* 会员类型ID
*/
@ApiModelProperty(position = 2, required = false, value = "会员类型ID")
private String memberId;
/**
* 状态 0 不可用 1上线中 2已下线
*/
@ApiModelProperty(position = 3, required = false, value = "状态0 不可用 1上线中 2已下线", allowableValues = "0,1,2")
private Integer status;
/**
* 会员包名称
*/
@ApiModelProperty(position = 4, required = false, value = "会员价格包名称", example = "年卡")
private String name;
/**
* 原价
*/
@ApiModelProperty(position = 5, required = false, value = "原价", example = "199")
private BigDecimal price;
/**
* 折扣价
*/
@ApiModelProperty(position = 6, required = false, value = "折扣价", example = "199")
private BigDecimal price_fixed;
/**
* 会员包有效天数
*/
@ApiModelProperty(position = 7, required = false, value = "会员包有效天数", example = "365")
private Integer days;
/**
* 会员包须知
*/
@ApiModelProperty(position = 8, required = false, value = "会员包须知", example = "会员包须知")
private String detail;
/**
* 创建时间
*/
@ApiModelProperty(position = 9, required = false, value = "创建时间", example = "2021-05-10 13:13:13")
private LocalDateTime createdAt;
/**
* 更新时间
*/
@ApiModelProperty(position = 10, required = false, value = "更新时间", example = "2021-05-10 13:13:13")
private LocalDateTime updatedAt;
}
package com.liquidnet.service.adam.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 会员价格
*/
@Data
public class AdamMemberPriceVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 会员价格ID
*/
private String memberPriceId;
/**
* 会员类型ID
*/
private String memberId;
/**
* 状态 0 不可用 1上线中 2已下线
*/
private Integer status;
/**
* 会员包名称
*/
private String name;
/**
* 原价
*/
private BigDecimal price;
/**
* 折扣价
*/
private BigDecimal priceFixed;
/**
* 会员包有效天数
*/
private Integer days;
/**
* 会员包须知
*/
private String detail;
/**
* 创建时间
*/
private String createdAt;
/**
* 更新时间
*/
private String updatedAt;
}
......@@ -6,11 +6,11 @@ import com.liquidnet.service.adam.entity.AdamMemberPrice;
import java.util.List;
public interface IAdamMemberPriceService extends IService<AdamMemberPrice> {
List<AdamMemberPrice> list();
List<AdamMemberPrice> list(String memberId);
void add(AdamMemberPrice info);
AdamMemberPrice query(Integer memberId);
AdamMemberPrice query(String memberPriceId);
void edit(AdamMemberPrice info);
boolean edit(AdamMemberPrice info);
}
......@@ -2,8 +2,11 @@ package com.liquidnet.service.adam.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.beans.BeanUtils;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
......@@ -20,10 +23,15 @@ public class AdamMemberPrice implements Serializable {
@TableId(value = "mid", type = IdType.AUTO)
private Integer mid;
/**
* 会员价格ID
*/
private String memberPriceId;
/**
* 会员类型ID
*/
private Integer memberId;
private String memberId;
/**
* 状态 0 不可用 1上线中 2已下线
......@@ -43,7 +51,7 @@ public class AdamMemberPrice implements Serializable {
/**
* 折扣价
*/
private BigDecimal price_fixed;
private BigDecimal priceFixed;
/**
* 会员包有效天数
......@@ -64,5 +72,4 @@ public class AdamMemberPrice implements Serializable {
* 更新时间
*/
private LocalDateTime updatedAt;
}
package com.liquidnet.service.adam.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
public interface AdamMemberPriceMapper extends BaseMapper<AdamMemberPrice> {
AdamMemberPrice misMemberPriceInfo(String memberPriceId);
}
\ 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="MemberPriceResult" type="com.liquidnet.service.adam.entity.AdamMemberPrice">
<result column="member_price_id" property="memberPriceId" />
<result column="member_id" property="memberId" />
<result column="status" property="status" />
<result column="name" property="name" />
<result column="price" property="price" />
<result column="price_fixed" property="priceFixed" />
<result column="days" property="days" />
<result column="detail" property="detail" />
<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.price,
m.price_fixed,
m.days,
m.detail,
m.created_at,
m.updated_at,
m.member_price_id
</sql>
<!-- mis会员价格详情 -->
<select id="misMemberPriceInfo" parameterType="java.lang.String" resultMap="MemberPriceResult">
SELECT
<include refid="Base_Column"/>
FROM adam_member_price as m
<where>
m.member_price_id=#{memberPriceId}
</where>
</select>
</mapper>
......@@ -201,6 +201,7 @@ drop table if exists adam_member;
create table adam_member
(
mid int unsigned auto_increment primary key,
member_id varchar(255) comment '会员id',
name varchar(64),
title varchar(100),
sub_title varchar(255) NOT NULL DEFAULT '' COMMENT '副标题',
......@@ -225,6 +226,7 @@ drop table if exists adam_member_price;
create table adam_member_price
(
mid int usingned auto_increment primary key,
member_price_id varchar(255) comment '会员价格id',
member_id int 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 '会员包名称',
......
......@@ -12,6 +12,8 @@ public class AdamRedisConst {
public static final String INFO_MEMBERS_INFO = ADAM.concat(":list:members:info:");
public static final String INFO_MEMBERS_PRICE_INFO = ADAM.concat(":list:members:price:info:");
// public static final String USER_CONFIRM_SMS_CODE_KEY = ADAM + ":user:sms_confirm:";
//
// public static final String USER_EMAIL_CONFIRM_KEY = ADAM + ":user:email:confirm:";
......
......@@ -36,7 +36,7 @@ public class AdamEntersController {
@ApiOperationSupport(order = 1)
@ApiOperation(value = "入场人列表")
@PostMapping("list")
@GetMapping("list")
public ResponseDto<List<AdamEntersVo>> list() {
// TODO: 2021/4/29 获取登录UID
String uid = "1";
......
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;
......@@ -27,9 +28,8 @@ public class AdamMemberController {
@ApiOperationSupport(order = 0)
@ApiOperation(value = "会员信息")
@GetMapping("info")
public ResponseDto<Object> query() {
String memberId = "1";
@GetMapping("info/{id}")
public ResponseDto<Object> query(@PathVariable(name = "id", required = true) String memberId) {
AdamMember info = adamMemberService.query(memberId);
return ResponseDto.success(info);
}
......@@ -43,8 +43,9 @@ public class AdamMemberController {
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.DateUtil;
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 io.swagger.annotations.Api;
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.web.bind.annotation.*;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
@Api(tags = "会员价格")
@Slf4j
@RestController
@RequestMapping("/member/price")
public class AdamMemberPriceController {
@Autowired
IAdamMemberPriceService adamMemberPriceService;
@ApiOperationSupport(order = 0)
@ApiOperation(value = "会员价格列表")
@GetMapping("list/{memberId}")
public ResponseDto<Object> list(@PathVariable(name = "memberId") 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);
}
@ApiOperationSupport(order = 1)
@ApiOperation(value = "会员价格详情")
@GetMapping("info/{memberPriceId}")
public ResponseDto<Object> query(@PathVariable(name = "memberPriceId") String memberPriceId){
AdamMemberPrice adamMemberPrice = adamMemberPriceService.query(memberPriceId);
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 ResponseDto.success(adamMemberPriceVo);
}
@ApiOperationSupport(order = 2)
@ApiOperation(value = "添加会员价格")
@PostMapping("add")
public ResponseDto<Object> add(@RequestBody AdamMemberPriceParam param) {
AdamMemberPrice entity = new AdamMemberPrice();
BeanUtils.copyProperties(param, entity);
adamMemberPriceService.add(entity);
return ResponseDto.success();
}
@ApiOperationSupport(order = 3)
@ApiOperation(value = "编辑会员价格")
@PostMapping("edit")
public ResponseDto<Object> edit(@RequestBody AdamMemberPriceParam param) {
AdamMemberPrice entity = new AdamMemberPrice();
BeanUtils.copyProperties(param, entity);
adamMemberPriceService.edit(entity);
return ResponseDto.success();
}
}
......@@ -47,7 +47,7 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
MongoConverter mongoConverter;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
@Autowired()
RabbitTemplate rabbitTemplate;
@Autowired
RedisUtil redisUtil;
......
package com.liquidnet.service.adam.service.impl;
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.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.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
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;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
public class AdamMemberPriceServiceImpl extends ServiceImpl<AdamMemberPriceMapper, AdamMemberPrice> implements IAdamMemberPriceService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
MongoConverter mongoConverter;
@Autowired
RabbitTemplate rabbitTemplate;
@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
public void add(AdamMemberPrice info) {
// mysql
info.setMemberPriceId(IDGenerator.nextSnowId().toString());
info.setCreatedAt(LocalDateTime.now());
info.setUpdatedAt(LocalDateTime.now());
adamMemberPriceMapper.insert(info);
// mongo
mongoTemplate.insert(info, AdamMemberPrice.class.getSimpleName());
// redis
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(info.getMemberPriceId()),info.getMemberPriceId(), info);
}
@Override
public AdamMemberPrice query(String memberPriceId) {
return adamMemberPriceMapper.misMemberPriceInfo(memberPriceId);
}
@Override
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(
Query.query(Criteria.where("memberPriceId").is(memberPriceId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
// reids
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_PRICE_INFO.concat(memberPriceId),
memberPriceId, JsonUtils.fromJson(doc.toJson(), AdamMemberPrice.class));
} catch (Exception e){
return false;
}
return true;
}
}
......@@ -3,7 +3,9 @@ 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.entity.AdamMember;
import com.liquidnet.service.adam.entity.AdamMemberPrice;
......@@ -11,8 +13,10 @@ import com.liquidnet.service.adam.mapper.AdamMemberMapper;
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;
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;
......@@ -32,6 +36,10 @@ public class AdamMemberServiceImpl extends ServiceImpl<AdamMemberMapper, AdamMem
@Autowired
MongoTemplate mongoTemplate;
@Autowired
MongoConverter mongoConverter;
@Autowired
RabbitTemplate rabbitTemplate;
@Autowired
RedisUtil redisUtil;
@Override
......@@ -51,21 +59,40 @@ public class AdamMemberServiceImpl extends ServiceImpl<AdamMemberMapper, AdamMem
@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.hmset(AdamRedisConst.INFO_MEMBERS_INFO.concat(info.getMid().toString()), (Map<String, Object>) info);
redisUtil.hset(AdamRedisConst.INFO_MEMBERS_INFO.concat(info.getMemberId()), info.getMemberId(), info);
}
@Override
public AdamMember query(String mid) {
public AdamMember query(String memberId) {
AdamMember info = null;
info = (AdamMember) redisUtil.hmget(AdamRedisConst.INFO_MEMBERS_INFO.concat(mid.toString()));
info = (AdamMember) redisUtil.hget(AdamRedisConst.INFO_MEMBERS_INFO.concat(memberId), memberId);
if (null == info) {
info = mongoTemplate.findOne(Query.query(Criteria.where("mId").is(mid)), AdamMember.class, AdamMember.class.getSimpleName());
info = mongoTemplate.findOne(Query.query(Criteria.where("memberId").is(memberId)), AdamMember.class, AdamMember.class.getSimpleName());
}
return info;
}
......
adam_member.add=INSERT INTO `adam_member` ( `name`, `title`, `sub_title`, `icon`, `avatar`, `start_no`, `type`, `interests_detail`, `notes`, `is_notice`, `notice_info`, `notice_title`, `need_question`, `display_agreement`, `agreement`, `member_id`, `limitation`) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment