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

Commit 929d8d5c authored by jiangxiulong's avatar jiangxiulong

Merge branch 'dev-sweet' into dev

parents c9e35fe2 22d7a02d
......@@ -437,3 +437,20 @@ CREATE TABLE `sweet_luck_draw`
COLLATE utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT '抽奖表';
-- 答题表
drop TABLE if exists `sweet_answer`;
CREATE TABLE `sweet_answer`
(
`mid` bigint unsigned NOT NULL AUTO_INCREMENT,
`answer_id` varchar(200) NOT NULL DEFAULT '' COMMENT 'answer_id',
`phone` varchar(11) NOT NULL DEFAULT '' COMMENT '手机号',
`answer_json` varchar(255) NOT NULL DEFAULT '' COMMENT '答案json',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`mid`),
KEY `sweet_answer_answer_id` (`answer_id`)
) ENGINE = InnoDB
DEFAULT CHARSET utf8mb4
COLLATE utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT '答题表';
......@@ -19,6 +19,7 @@ public class SweetConstant {
public static final String REDIS_KEY_SWEET_REMIND_ALL = "sweet:remind:unionId*";
public final static String REDIS_KEY_SWEET_WECHAT_USER_INFO="sweet:wechatUser:unionId:";
public final static String REDIS_KEY_SWEET_ANSWER_PHONE="sweet:answer:phone:";
// public enum ManualPosition {
// artist("艺人","artist"),
......
package com.liquidnet.service.sweet.controller;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetArtists;
import com.liquidnet.service.sweet.service.ISweetAnswerService;
import com.liquidnet.service.sweet.vo.SweetAnswerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* 答题表 前端控制器
* </p>
*
* @author jiangxiulong
* @since 2021-08-12
*/
@Api(tags = "答案")
@RestController
@RequestMapping("/sweetAnswer")
public class SweetAnswerController {
@Autowired
private ISweetAnswerService sweetAnswerService;
@GetMapping("info")
@ApiOperation("获取答题记录详情")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "phone", value = "手机号", required = true)
})
public ResponseDto<SweetAnswerVo> getInfo(@RequestParam() String phone) {
return sweetAnswerService.getInfo(phone);
}
@PostMapping("create")
@ApiOperation("添加答题记录")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "phone", value = "手机号", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "answerJson", value = "答案json", required = true),
})
public ResponseDto<Boolean> add(@RequestParam() String phone, @RequestParam() String answerJson) {
return sweetAnswerService.create(phone, answerJson);
}
}
package com.liquidnet.service.sweet.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 答题表
* </p>
*
* @author jiangxiulong
* @since 2021-08-12
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SweetAnswer implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* answer_id
*/
private String answerId;
/**
* 手机号
*/
private String phone;
/**
* 答案json
*/
private String answerJson;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
private static final SweetAnswer obj = new SweetAnswer();
public static SweetAnswer getNew() {
try {
return (SweetAnswer) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetAnswer();
}
}
}
package com.liquidnet.service.sweet.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.sweet.entity.SweetAnswer;
/**
* <p>
* 答题表 Mapper 接口
* </p>
*
* @author jiangxiulong
* @since 2021-08-12
*/
public interface SweetAnswerMapper extends BaseMapper<SweetAnswer> {
}
package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetAnswer;
import com.liquidnet.service.sweet.vo.SweetAnswerVo;
/**
* <p>
* 答题表 服务类
* </p>
*
* @author jiangxiulong
* @since 2021-08-12
*/
public interface ISweetAnswerService extends IService<SweetAnswer> {
ResponseDto<SweetAnswerVo> getInfo(String phone);
ResponseDto<Boolean> create(String phone, String answerJson);
}
package com.liquidnet.service.sweet.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.entity.SweetAnswer;
import com.liquidnet.service.sweet.mapper.SweetAnswerMapper;
import com.liquidnet.service.sweet.service.ISweetAnswerService;
import com.liquidnet.service.sweet.utils.RedisDataUtils;
import com.liquidnet.service.sweet.vo.SweetAnswerVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* <p>
* 答题表 服务实现类
* </p>
*
* @author jiangxiulong
* @since 2021-08-12
*/
@Service
public class SweetAnswerServiceImpl extends ServiceImpl<SweetAnswerMapper, SweetAnswer> implements ISweetAnswerService {
@Autowired
private SweetAnswerMapper sweetAnswerMapper;
@Autowired
private RedisDataUtils redisDataUtils;
@Override
public ResponseDto<SweetAnswerVo> getInfo(String phone) {
SweetAnswerVo sweetAnswerVo = redisDataUtils.getSweetAnswer(phone);
return ResponseDto.success(sweetAnswerVo);
}
@Override
public ResponseDto<Boolean> create(String phone, String answerJson) {
SweetAnswer sweetAnswer = SweetAnswer.getNew();
sweetAnswer.setAnswerId(IDGenerator.nextSnowId());
sweetAnswer.setPhone(phone);
sweetAnswer.setAnswerJson(answerJson);
sweetAnswerMapper.insert(sweetAnswer);
SweetAnswerVo sweetAnswerVo = SweetAnswerVo.getNew().copy(sweetAnswer);
redisDataUtils.setSweetAnswer(sweetAnswerVo);
return ResponseDto.success();
}
}
......@@ -14,6 +14,7 @@ import com.liquidnet.service.sweet.dto.SweetManualArtistListDto;
import com.liquidnet.service.sweet.dto.SweetManualArtistStageListDto;
import com.liquidnet.service.sweet.entity.*;
import com.liquidnet.service.sweet.mapper.*;
import com.liquidnet.service.sweet.vo.SweetAnswerVo;
import com.liquidnet.service.sweet.vo.SweetArtistsRelationVo;
import com.liquidnet.service.sweet.vo.SweetRemindVo;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -377,4 +378,15 @@ public class RedisDataUtils {
queueUtils.sendMsgByRedis(MQConst.SweetQueue.LUCK_DRAW.getKey(),
SqlMapping.gets(sqls, sqlsDataA));
}
// 答案
public void setSweetAnswer(SweetAnswerVo sweetAnswerVo) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_ANSWER_PHONE.concat(sweetAnswerVo.getPhone());
redisUtil.set(redisKey, sweetAnswerVo);
}
public SweetAnswerVo getSweetAnswer(String phone) {
String redisKey = SweetConstant.REDIS_KEY_SWEET_ANSWER_PHONE.concat(phone);
SweetAnswerVo sweetAnswerVo = (SweetAnswerVo) redisUtil.get(redisKey);
return sweetAnswerVo;
}
}
package com.liquidnet.service.sweet.vo;
import com.liquidnet.service.sweet.entity.SweetAnswer;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class SweetAnswerVo implements Serializable, Cloneable {
/**
* 手机号
*/
private String phone;
/**
* 答案json
*/
private String answerJson;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
private static final SweetAnswerVo obj = new SweetAnswerVo();
public static SweetAnswerVo getNew() {
try {
return (SweetAnswerVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetAnswerVo();
}
}
public SweetAnswerVo copy(SweetAnswer source) {
if (null == source) return this;
this.setPhone(source.getPhone());
this.setAnswerJson(source.getAnswerJson());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
return this;
}
}
<?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.sweet.mapper.SweetAnswerMapper">
</mapper>
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