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

Commit 65cb2b38 authored by Administrator's avatar Administrator 🎨

Merge branch 'pre' into 'master'

Pre

See merge request !319
parents b49f1ed8 63a3b15f
......@@ -104,4 +104,9 @@ public class SweetConstant {
//AR
public final static String REDIS_KEY_SWEET_PERFORMANCE_AR = "sweet:performance:ar";
//yb活动
public final static String REDIS_KEY_YB_ACTIVITY = "sweet:yb:activity:";
public final static String REDIS_KEY_YB_ACTIVITY_LIST = "sweet:yb:activity:list";
}
......@@ -43,4 +43,7 @@ public class SweetYbEnrollParam implements Serializable {
@NotBlank(message = "请填写常驻城市")
private String cityName;
@ApiModelProperty(position = 19, required = false, value = "活动id", example = "0")
private String activityId;
}
package com.liquidnet.service.sweet.dto.param.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* <p>
* SweetIntegralActivityListSearchParam
* </p>
*
* @author jiangxiulong
* @since 2021-10-20
*/
@Data
@ApiModel(value = "SweetYbActivityListParam", description = "yb活动列表")
public class SweetYbActivityListParam implements Serializable {
private static final long serialVersionUID = 6917807562233084828L;
@ApiModelProperty(position = 11, value = "标题")
private String title;
@ApiModelProperty(value = "开始时间")
private String startTime;
@ApiModelProperty(value = "结束时间")
private String endTime;
@ApiModelProperty(value = "页数", example = "0")
@NotNull(message = "页数不能为空")
private Integer pageSize;
@ApiModelProperty(value = "数量", example = "20")
@NotNull(message = "数量不能为空")
private Integer pageNum;
}
package com.liquidnet.service.sweet.dto.param.admin;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
* SweetIntegralActivityListSearchParam
* </p>
*
* @author jiangxiulong
* @since 2021-10-20
*/
@Data
@ApiModel(value = "SweetYbActivityParam", description = "yb活动")
public class SweetYbActivityParam implements Serializable {
private static final long serialVersionUID = 6917807562233084828L;
@ApiModelProperty(position = 11, value = "id")
private String activityId;
@ApiModelProperty(position = 11, value = "标题")
private String title;
@ApiModelProperty(position = 11, value = "封面")
private String cover;
@ApiModelProperty(value = "开始时间")
private String startTime;
@ApiModelProperty(value = "结束时间")
private String endTime;
}
package com.liquidnet.service.sweet.dto.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* YB报名表
* </p>
*
* @author jiangxiulong
* @since 2022-07-29
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SweetYbActivityVo implements Serializable {
private static final long serialVersionUID = -2081186417971841992L;
@ApiModelProperty(value = "活动id")
private String activityId;
@ApiModelProperty(value = "活动名称")
private String title;
@ApiModelProperty(value = "封面图")
private String cover;
@ApiModelProperty(value = "状态[0-未开始|6-开始|7-下线|9-结束]")
private Integer status;
@ApiModelProperty(value = "开始时间")
private String startTime;
@ApiModelProperty(value = "结束时间")
private String endTime;
@ApiModelProperty(value = "创建时间")
private String createdAt;
@ApiModelProperty(value = "更新时间")
private String updatedAt;
private static final SweetYbActivityVo obj = new SweetYbActivityVo();
public static SweetYbActivityVo getNew() {
try {
return (SweetYbActivityVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetYbActivityVo();
}
}
}
......@@ -3,8 +3,11 @@ package com.liquidnet.service.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.param.SweetYbEnrollParam;
import com.liquidnet.service.sweet.dto.vo.SweetYbActivityVo;
import com.liquidnet.service.sweet.entity.SweetYbEnroll;
import java.util.List;
/**
* <p>
* YB报名表 服务类
......@@ -13,7 +16,9 @@ import com.liquidnet.service.sweet.entity.SweetYbEnroll;
* @author jiangxiulong
* @since 2022-07-29
*/
public interface ISweetYbEnrollService extends IService<SweetYbEnroll> {
public interface ISweetYbEnrollService {
ResponseDto<Boolean> create(SweetYbEnrollParam param);
ResponseDto<List<SweetYbActivityVo>> list();
}
......@@ -21,6 +21,7 @@ public class LocalAdminController extends BaseController
private final String smilePrefix = "zhengzai/smile";
private final String activityPrefix = "zhengzai/sweet";
private final String candyPrefix = "zhengzai/candy";
private final String ybPrefix = "zhengzai/yb";
@Value("${liquidnet.client.admin.platformUrl}")
private String platformUrl;
......@@ -221,5 +222,14 @@ public class LocalAdminController extends BaseController
{
return activityPrefix + "/affiliatedActivity/edit";
}
@GetMapping("/bannerList") // yb banner列表
public String bannerList()
{
return ybPrefix + "/bannerList";
}
@GetMapping("/creatAndEdit") // yb banner列表
public String creatAndEdit(ModelMap mmap) {
mmap.put("platformUrl", platformUrl);
return ybPrefix + "/creatAndEdit";
}
}
package com.liquidnet.client.admin.web.controller.zhengzai.sweet;
import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.utils.poi.ExcelUtil;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderMemberExportVo;
import com.liquidnet.client.admin.zhengzai.smile.service.ISmileAgentService;
import com.liquidnet.client.admin.zhengzai.sweet.dto.SweetYbActivityExportVo;
import com.liquidnet.client.admin.zhengzai.sweet.service.ISweetYbActivityService;
import com.liquidnet.service.kylin.dao.PerformanceAdminListDao;
import com.liquidnet.service.smile.entity.SmileAgent;
import com.liquidnet.service.sweet.dto.param.admin.SweetYbActivityListParam;
import com.liquidnet.service.sweet.dto.param.admin.SweetYbActivityParam;
import com.liquidnet.service.sweet.dto.vo.SweetYbActivityVo;
import com.liquidnet.service.sweet.entity.SweetYbActivity;
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.*;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author liquidnet
* @since 2022-03-16
*/
@Api(tags = "YB活动管理")
@RestController
@RequestMapping("/sweet/activity")
public class SweetYbActivityController {
@Autowired
ISweetYbActivityService sweetYbActivityService;
@PostMapping("/insert")
@ApiOperation("创建活动")
@ResponseBody
public AjaxResult aInsert(@RequestBody SweetYbActivityParam param) {
return sweetYbActivityService.aInsert(param);
}
@GetMapping("/details")
@ApiOperation("活动详情")
@ResponseBody
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "activityId", value = "活动id"),
})
public SweetYbActivityVo aDetails(String activityId) {
return sweetYbActivityService.aDetails(activityId);
}
@PostMapping("/update")
@ApiOperation("修改活动")
@ResponseBody
public AjaxResult aUpdate(@RequestBody SweetYbActivityParam param) {
return sweetYbActivityService.aUpdate(param);
}
@PostMapping("/status")
@ApiOperation("修改上线下")
@ResponseBody
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "activityId", value = "活动id"),
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "status", value = "状态[6-启用|7禁用]"),
})
public AjaxResult aStatus(String activityId, Integer status) {
return sweetYbActivityService.aStatus(activityId, status);
}
@PostMapping("/list")
@ApiOperation("活动列表")
@ResponseBody
public TableDataInfo aList(SweetYbActivityListParam param) {
PageInfo<SweetYbActivityVo> result = sweetYbActivityService.aList(param);
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(0);
rspData.setRows(result.getList());
rspData.setTotal(result.getTotal());
return rspData;
}
@PostMapping("/export")
@ApiOperation("活动列表导出")
@ResponseBody
public AjaxResult exportMemberOrder(String activityId) {
List<SweetYbActivityExportVo> list = sweetYbActivityService.aExport(activityId);
if (list.size() == 0) {
return AjaxResult.error("查无信息");
}
ExcelUtil<SweetYbActivityExportVo> util = new ExcelUtil(SweetYbActivityExportVo.class);
return util.exportExcel(list, "YB报名数据");
}
}
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('店铺列表')" />
<th:block th:include="include :: bootstrap-fileinput-css" />
<style>
.layui-layer-btn0 {
padding: 0;
}
.paddings {
padding: 0 !important;
}
.shadeCss,.layui-layer-shade {
background-color: rgb(0, 0, 0, 0.5) !important;
}
.select-list ul {
display: flex;
justify-content: space-between;
}
.selectClassifyOne {
display: flex;
align-items: center;
margin: 12px 0;
}
.selectClassifyOne span {
width: 45px;
}
.gray-bg .fixed-table-toolbar {
display: flex;
}
.gray-bg .fixed-table-toolbar .bs-bars {
flex: 1;
}
.gray-bg .fixed-table-toolbar .bs-bars .btn-group-sm {
display: flex;
justify-content: space-between;
}
.leftSearchBox {
display: flex;
align-items: center;
}
.leftSearchBox input, .leftSearchBox select {
width: 200px;
height: 34px;
margin-right: 12px;
}
.ibox-content {
border-style: none;
padding: 0;
}
.kv-hidden {
display: none !important;
}
</style>
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="role-form">
<div class="select-list">
<ul>
<li class="leftSearchBox">
<input class="form-control" type="text" name="title" placeholder="请输入名字">
<!-- 时间:<input type="text" class="layui-input form-control" id="test1" name="startTime" placeholder="请选择时间">
~
<input type="text" class="layui-input form-control" id="test1" name="endTime" style="margin-left: 10px;" placeholder="请选择时间"> -->
<li>
<a id="searchBtns" class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="ceshi()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</li>
<li>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar">
<div>
<a class="btn btn-success" id="addActivity" onclick="creatAndEdit(1)">
<i class="fa fa-plus"></i> 新增banner
</a>
</div>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer"/>
<th:block th:include="include :: bootstrap-fileinput-js" />
<script th:inline="javascript">
var dicCouponBusiType = [[${@dict.getType('zhengzai_coupon_busi_type')}]];
var dicCouponBindType = [[${@dict.getType('zhengzai_coupon_bind_type')}]];
var platformUrl = [[${platformUrl}]];
var prefix = ctx + "candy/coupon/mgt";
var prefix2 = ctx + "local";
var viewMgtCouponFlag = [[${@permission.hasPermi('candy:coupon:mgt:detail')}]];
var cancelMgtCouponFlag = [[${@permission.hasPermi('candy:coupon:mgt:cancel')}]];
let rowData = {};
var couType = [[${couType}]];
$(function () {
var options = {
url: "/sweet/activity/list",
type: 'get',
createUrl: prefix2 + "/addNewActivity",
detailUrl: prefix2 + "/addNewActivity?id={id}",
removeUrl: prefix + "/cancel/{id}",
openTab: prefix2 + "/activityStoreList/id={id}",
// exportUrl: prefix + "/export",
exportUrl:'/sweet/activity/export',
onCheck: onCheck,
// onCheckAll: onCheckAll,
sortName: "createdAt",
sortOrder: "desc",
modalName: "活动",
columns: [
{
field: 'cover',
title: '活动图片',
formatter: (value) => {
let dom = `<img id="viewImg" style="max-height: 60px;" class="imgBox" src="${value}" alt="">`
return dom;
}
},
{
field: 'title',
title: '活动名称'
},
{
field: 'startTime',
title: '开始时间'
},
{
field: 'endTime',
title: '结束时间'
},
{
field: 'status',
title: '状态',
align: 'center',
formatter: function (value, row, index) {
if (value == 7) {
return '禁用'
} else {
return '启用'
}
}
},
{
title: '修改启用/禁用',
align: 'center',
formatter: function (value, row, index) {
if (row.status == 7) {
return`<a class="btn btn-info btn-xs" href="javascript:void(0)" onclick="paly('${row.activityId}', 6)">启用</a>`
} else {
return `<a class="btn btn-danger btn-xs" href="javascript:void(0)" onclick="paly('${row.activityId}', 7)">禁用</a>`
}
}
},
{
title: '操作',
align: 'center',
formatter: function (value, row, index) {
return`<a class="btn btn-info btn-xs" href="javascript:void(0)" onclick="creatAndEdit('','${row.activityId}')">编辑</a><a class="btn btn-warning btn-xs" id="button-open-11" onclick="exportData('${row.activityId}')">
<i class="fa fa-download"></i> 导出Excel
</a>`
}
},
]
};
$.table.init(options);
});
function ceshi () {
$.form.reset();
$("button[name=refresh]").click();
}
function creatAndEdit(num, id) {
let name = '创建banner'
if (!num) {
console.log('编辑')
name = '编辑banner'
}
$.modal.open(`${name}`, prefix2 + "/creatAndEdit?id=" + id, 900, 560, callback)
}
function timeChange (time) {
if (time) {
let forMat = time.replace(/-/g, '/');
let resultStart = Date.parse(forMat);
return resultStart;
}
}
function callback(index, layero) {
if (timeChange(getDom(layero, "startTime").value) > timeChange(getDom(layero, "endTime").value)) {
return layer.msg('活动结束时间要大于开始时间!')
}
let data = {
title: getDom(layero, "ybTitle").value,
startTime: getDom(layero, "startTime").value,
endTime: getDom(layero, "endTime").value,
cover: getDom(layero, "viewImg").getAttribute('src')
}
for(var i in data) {
if (!data[i]) return layer.msg('请将必填项填写完整~!')
}
if (getDom(layero, "activityId").value) {
data.activityId = getDom(layero, "activityId").value;
promiseMethods('/sweet/activity/update', 'post', JSON.stringify(data), 'application/json').then(res => {
$.operate.successCallback(res);
})
} else {
data.activityId = '';
promiseMethods('/sweet/activity/insert', 'post', JSON.stringify(data), 'application/json').then(res => {
$.operate.successCallback(res);
})
}
}
$("#button-open-11").click(function(){
$("button[name=refresh]").click()
})
function getDom (layero, name) {
console.log(name, '????')
let bodyDom = $(layero).find("iframe")[0].contentWindow;
return bodyDom.document.getElementById(name);
}
function exportData(id) {
console.log(id, '????')
let param = {
activityId: id
}
// promiseMethods('/sweet/activity/export', 'post', {title: ''}).then(res => {
// $.operate.successCallback(res);
// window.open(res.msg);
$.table.exportExcel("", param)
// })
}
function onCheck (row, $element) {
rowData = row;
}
function onCheckAll (row, $element) {
rowData = row;
}
function yes(index, layero) {
}
function paly(id, status) {
console.log(id, status, 'dsadasda')
let notice = '';
if (status == 6) {
notice = '确定要启用该活动?';
} else {
notice = '确定要禁用该活动?';
}
$.modal.confirm(notice, function() {
$.ajax({
type: 'post',
url: '/sweet/activity/status',
data: {
activityId: id,
status
},
success:function(e) {
if (e.code == 500) {
layer.msg(e.msg)
} else {
layer.msg("操作成功!")
}
$("#searchBtns").click();
}
})
});
}
layui.use('laydate', function(){
var laydate = layui.laydate;
//执行一个laydate实例
laydate.render({
elem: '#test1', //指定元素
type: 'datetime'
});
});
function promiseMethods(url,type,data,contentType) {
return new Promise((resolve,reject)=>{
$.ajax({
url,
type,
data,
contentType,
success:function(res) {
resolve(res);
}
})
})
}
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('新增活动')" />
<th:block th:include="include :: select2-css" />
<th:block th:include="include :: bootstrap-fileinput-css" />
<link rel="stylesheet" href="">
<style>
input {
height: 34PX;
line-height: 34PX;
}
.required {
font-style: normal;
color: red;
}
.content_item {
padding: 20px;
}
/* .content_item .content_title {
display: flex;
} */
.content_item .content_title h3 span {
display: inline-block;
width: 4px;
height: 18px;
background: skyblue;
margin-right: 6px;
vertical-align: top;
}
.basis_data {
display: flex;
font-size: 14px;
padding: 0 20px;
margin-top: 20px;
/* align-items: center; */
}
.basis_data span {
width: 100px;
text-align: right;
}
#startTime, #endTime {
width: 272px;
margin-right: 10px;
}
.storeList, #selectShow, .dropdown-menu, .input-group {
width: 270px !important;
}
.activityStore_item {
display: flex;
margin-bottom: 12px;
}
#basis_data {
align-items: flex-start;
}
.form-control,.layui-input {
height: 34px;
line-height: 34px;
}
.kv-upload-progress {
display: none !important;
}
.ibox-content .imgBox {
max-width: 350px;
max-height: 180px;
}
</style>
</head>
<body>
<div>
<div class="content_item">
<div class="content_title">
<!-- <h3><span></span>基础信息</h3> -->
</div>
<div class="basis_data">
<span>
<em class="required">*</em>
标题:
</span>
<div class="input-group" style="width: 300px;">
<input type="text" class="form-control" id="ybTitle" placeholder="请输入活动名称">
<input type="hidden" class="form-control" id="activityId" placeholder="">
</div>
</div>
<div class="basis_data ibox-content" style="border: none;display: flex;">
<span>
<em class="required">*</em>
活动图片:
</span>
<div>
<img id="viewImg" class="imgBox" src="" alt="">
<div class="form-group">
<div class="file-loading">
<input id="fileinput" type="file" name="file" data-browse-on-zone-click="true" data-theme="fas">
</div>
<!-- <span style="color: #ccc; font-size: 12px;">适配图片尺寸:660*344</span> -->
</div>
</div>
</div>
<div class="basis_data">
<span>
<em class="required">*</em>
起止时间:
</span>
<input type="text" class="layui-input form-control editDisabled" id="startTime" autocomplete="off" placeholder="请选择活动开始时间">
~
<input type="text" class="layui-input form-control editDisabled" id="endTime" style="margin-left: 10px;" autocomplete="off" placeholder="请选择活动结束时间">
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: bootstrap-fileinput-js" />
<th:block th:include="include :: bootstrap-suggest-js" />
</body>
<script th:inline="javascript">
let count = 1;
var prefix2 = ctx + "local";
let activityId = '';
let editDatas = 0;
var platformUrl = [[${platformUrl}]];
$(function() {
let name = 'id';
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
layui.use('laydate', function(){
var laydate = layui.laydate;
//执行一个laydate实例
laydate.render({
elem: '#startTime', //指定元素
type: 'datetime'
});
laydate.render({
elem: '#endTime', //指定元素
type: 'datetime'
});
});
if (unescape(r[2]) && unescape(r[2]) != 'undefined') {
activityId = unescape(r[2]);
let data = {
activityId
}
let searchActivity = promiseMethods('/sweet/activity/details', 'get', data);
Promise.all([searchActivity]).then(res => {
let data = res[0];
console.log(data, 'rees')
$("#viewImg").attr('src', data.cover);
$("#startTime").val(data.startTime);
$("#endTime").val(data.endTime);
$("#ybTitle").val(data.title);
$("#activityId").val(data.activityId);
})
}
$("#fileinput").fileinput({
'theme': 'explorer-fas',
'uploadUrl': platformUrl + "/platform/basicServices/alOss/upload",
"uploadExtraData": {
"pathName" : "banner",
"buckType" : 1
},
autoReplace: true,
showCaption: false,
showPreview: false,
showRemove: false,
showUpload: false,
showCancel: false,
showClose: false,
autoReplace: true,
dropZoneTitle: "请上传文件",
maxFileCount: 1
}).on("filebatchselected", function (event, files) { //默认上传
$(this).fileinput("upload");
})
.on("fileuploaded", function (event, data) { //上传回调事件
let showPicture = 'https://img.zhengzai.tv/' + data.response.data.ossPath;
$("#viewImg").attr('src', showPicture)
})
})
function promiseMethods(url,type,data,contentType) {
return new Promise((resolve,reject)=>{
$.ajax({
url,
type,
data,
contentType,
success:function(res) {
resolve(res);
}
})
})
}
</script>
</html>
package com.liquidnet.client.admin.zhengzai.sweet.dto;
import com.liquidnet.client.admin.common.annotation.Excel;
import com.liquidnet.service.kylin.dao.OrderExportDao;
import com.liquidnet.service.sweet.entity.SweetYbActivity;
import com.liquidnet.service.sweet.entity.SweetYbEnroll;
import lombok.Data;
import java.io.Serializable;
import java.time.format.DateTimeFormatter;
@Data
public class SweetYbActivityExportVo implements Serializable, Cloneable {
@Excel(name = "联系电话", cellType = Excel.ColumnType.STRING)
private String contactTell;
@Excel(name = "联系微信", cellType = Excel.ColumnType.STRING)
private String contactWechat;
@Excel(name = "乐队名称", cellType = Excel.ColumnType.STRING)
private String nickname;
@Excel(name = "风格", cellType = Excel.ColumnType.STRING)
private String style;
@Excel(name = "图片地址", cellType = Excel.ColumnType.STRING)
private String imgUrl;
@Excel(name = "音频文件地址", cellType = Excel.ColumnType.STRING)
private String audioUrl;
@Excel(name = "院校", cellType = Excel.ColumnType.STRING)
private String universities;
@Excel(name = "常驻城市名称", cellType = Excel.ColumnType.STRING)
private String cityName;
@Excel(name = "创建时间", cellType = Excel.ColumnType.STRING)
private String createdAt;
private static final SweetYbActivityExportVo obj = new SweetYbActivityExportVo();
public static SweetYbActivityExportVo getNew() {
try {
return (SweetYbActivityExportVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new SweetYbActivityExportVo();
}
public SweetYbActivityExportVo copyOrderExportVo(SweetYbEnroll source) {
this.setContactTell(source.getContactTell());
this.setContactWechat(source.getContactWechat());
this.setNickname(source.getNickname());
this.setStyle(source.getStyle());
this.setImgUrl(source.getImgUrl());
this.setAudioUrl(source.getAudioUrl());
this.setUniversities(getUniversities());
this.setCityName(source.getCityName());
this.setUniversities(source.getUniversities());
this.setCreatedAt(source.getCreatedAt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
return this;
}
}
package com.liquidnet.client.admin.zhengzai.sweet.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.zhengzai.sweet.dto.SweetYbActivityExportVo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.SweetIntegralActivityDto;
import com.liquidnet.service.sweet.dto.param.admin.SweetIntegralActivityFromParam;
import com.liquidnet.service.sweet.dto.param.admin.SweetIntegralActivityListSearchParam;
import com.liquidnet.service.sweet.dto.param.admin.SweetYbActivityListParam;
import com.liquidnet.service.sweet.dto.param.admin.SweetYbActivityParam;
import com.liquidnet.service.sweet.dto.vo.SweetYbActivityVo;
import com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityVo;
import com.liquidnet.service.sweet.entity.SweetIntegralActivity;
import com.liquidnet.service.sweet.entity.SweetYbActivity;
import java.util.List;
/**
* <p>
* 积分活动表 服务类
* </p>
*
* @author jiangxiulong
* @since 2021-10-20
*/
public interface ISweetYbActivityService {
AjaxResult aInsert(SweetYbActivityParam param);
SweetYbActivityVo aDetails(String activityId);
PageInfo<SweetYbActivityVo> aList(SweetYbActivityListParam param);
AjaxResult aUpdate(SweetYbActivityParam param);
AjaxResult aStatus(String activityId, Integer status);
List<SweetYbActivityExportVo> aExport(String activityId);
}
package com.liquidnet.client.admin.zhengzai.sweet.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.exception.BusinessException;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderDetailedExportVo;
import com.liquidnet.client.admin.zhengzai.sweet.dto.SweetYbActivityExportVo;
import com.liquidnet.client.admin.zhengzai.sweet.service.ISweetAdminQrCodeService;
import com.liquidnet.client.admin.zhengzai.sweet.service.ISweetYbActivityService;
import com.liquidnet.client.admin.zhengzai.sweet.utils.SweetRedisAdminUtils;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.kylin.dao.OrderExportDao;
import com.liquidnet.service.kylin.dao.PerformanceAdminListDao;
import com.liquidnet.service.kylin.dto.param.CreateActiveQrCodeParam;
import com.liquidnet.service.sweet.dto.param.admin.SweetYbActivityListParam;
import com.liquidnet.service.sweet.dto.param.admin.SweetYbActivityParam;
import com.liquidnet.service.sweet.dto.vo.SweetYbActivityVo;
import com.liquidnet.service.sweet.entity.SweetQrCode;
import com.liquidnet.service.sweet.entity.SweetYbActivity;
import com.liquidnet.service.sweet.entity.SweetYbEnroll;
import com.liquidnet.service.sweet.mapper.SweetQrCodeMapper;
import com.liquidnet.service.sweet.mapper.SweetYbActivityMapper;
import com.liquidnet.service.sweet.mapper.SweetYbEnrollMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static com.liquidnet.commons.lang.util.DateUtil.DTF_YMD_HMS;
@Service
@Slf4j
public class SweetYbActivityServiceImpl implements ISweetYbActivityService {
@Autowired
SweetRedisAdminUtils sweetRedisAdminUtils;
@Autowired
SweetYbActivityMapper sweetYbActivityMapper;
@Autowired
SweetYbEnrollMapper sweetYbEnrollMapper;
@Override
public AjaxResult aInsert(SweetYbActivityParam param) {
LocalDateTime now = LocalDateTime.now();
SweetYbActivity entity = SweetYbActivity.getNew();
entity.setActivityId(IDGenerator.nextTimeId2());
entity.setCover(param.getCover());
entity.setTitle(param.getTitle());
entity.setStartTime(LocalDateTime.parse(param.getStartTime(), DTF_YMD_HMS));
entity.setEndTime(LocalDateTime.parse(param.getEndTime(), DTF_YMD_HMS));
entity.setStatus(7);
entity.setCreatedAt(now);
entity.setUpdatedAt(now);
int i = sweetYbActivityMapper.insert(entity);
if (i > 0) {
SweetYbActivityVo vo = SweetYbActivityVo.getNew();
vo.setCreatedAt(DateUtil.getNowTime());
vo.setCover(entity.getCover());
vo.setTitle(entity.getTitle());
vo.setActivityId(entity.getActivityId());
vo.setStartTime(entity.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
vo.setEndTime(entity.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
sweetRedisAdminUtils.setSweetYbActivityVo(vo);
return AjaxResult.success("添加成功");
}
return AjaxResult.error("添加失败");
}
@Override
public SweetYbActivityVo aDetails(String activityId) {
SweetYbActivity entity = sweetYbActivityMapper.selectOne(Wrappers.lambdaQuery(SweetYbActivity.class).eq(SweetYbActivity::getActivityId, activityId));
return initVo(entity);
}
@Override
public PageInfo<SweetYbActivityVo> aList(SweetYbActivityListParam param) {
PageInfo<SweetYbActivityVo> pageInfo;
List<SweetYbActivity> data = sweetYbActivityMapper.selectList(Wrappers.lambdaQuery(SweetYbActivity.class).like(SweetYbActivity::getTitle, param.getTitle()));
List<SweetYbActivityVo> voList = new ArrayList<>();
for (SweetYbActivity entity : data) {
SweetYbActivityVo vo = initVo(entity);
voList.add(vo);
}
pageInfo = new PageInfo(voList);
return pageInfo;
}
@Override
public AjaxResult aUpdate(SweetYbActivityParam param) {
int count = sweetYbActivityMapper.selectCount(Wrappers.lambdaQuery(SweetYbActivity.class).ne(SweetYbActivity::getActivityId, param.getActivityId()).eq(SweetYbActivity::getTitle, param.getTitle()));
if (count > 0) {
return AjaxResult.error("活动名称重复");
}
LocalDateTime now = LocalDateTime.now();
SweetYbActivity entity = SweetYbActivity.getNew();
entity.setCover(param.getCover());
entity.setTitle(param.getTitle());
entity.setStartTime(LocalDateTime.parse(param.getStartTime(), DTF_YMD_HMS));
entity.setEndTime(LocalDateTime.parse(param.getEndTime(), DTF_YMD_HMS));
entity.setUpdatedAt(now);
int i = sweetYbActivityMapper.update(entity, Wrappers.lambdaUpdate(SweetYbActivity.class).eq(SweetYbActivity::getActivityId, param.getActivityId()));
if (i > 0) {
SweetYbActivityVo vo = sweetRedisAdminUtils.getSweetYbActivityVo(param.getActivityId());
vo.setUpdatedAt(DateUtil.getNowTime());
vo.setCover(entity.getCover());
vo.setTitle(entity.getTitle());
vo.setStartTime(entity.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
vo.setEndTime(entity.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
sweetRedisAdminUtils.setSweetYbActivityVo(vo);
return AjaxResult.success("修改成功");
}
return AjaxResult.error("修改失败");
}
@Override
public AjaxResult aStatus(String activityId, Integer status) {
if (status != 6 && status != 7) {
return AjaxResult.error("修改失败");
}
SweetYbActivity entity = SweetYbActivity.getNew();
entity.setStatus(status);
SweetYbActivityVo vo = sweetRedisAdminUtils.getSweetYbActivityVo(activityId);
// if(vo.getStatus().equals(status)){
// return AjaxResult.error("已修改");
// }
int i = sweetYbActivityMapper.update(entity, Wrappers.lambdaUpdate(SweetYbActivity.class).eq(SweetYbActivity::getActivityId, activityId));
if (i > 0) {
vo.setStatus(status);
sweetRedisAdminUtils.setSweetYbActivityVo(vo);
if (status == 6) {
sweetRedisAdminUtils.addSweetYbActivityList(activityId);
} else {
sweetRedisAdminUtils.removeSweetYbActivityList(activityId);
}
return AjaxResult.success("修改成功");
}
return AjaxResult.error("修改失败");
}
@Override
public List<SweetYbActivityExportVo> aExport(String activityId) {
try {
List<SweetYbEnroll> list = sweetYbEnrollMapper.selectList(Wrappers.lambdaQuery(SweetYbEnroll.class).eq(SweetYbEnroll::getActivityId, activityId));
List<SweetYbActivityExportVo> voList = new ArrayList();
for (SweetYbEnroll item : list) {
voList.add(SweetYbActivityExportVo.getNew().copyOrderExportVo(item));
}
return voList;
} catch (Exception e) {
e.printStackTrace();
throw new BusinessException("导出异常,请联系网站管理员!");
}
}
private SweetYbActivityVo initVo(SweetYbActivity entity) {
LocalDateTime now = LocalDateTime.now();
SweetYbActivityVo vo = SweetYbActivityVo.getNew();
vo.setActivityId(entity.getActivityId());
vo.setCreatedAt(entity.getCreatedAt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
vo.setEndTime(entity.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
vo.setStartTime(entity.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
vo.setTitle(entity.getTitle());
vo.setCover(entity.getCover());
if (entity.getStatus() == 6) {
if (now.isBefore(entity.getStartTime())) {
vo.setStatus(0);
} else if (now.isAfter(entity.getEndTime())) {
vo.setStatus(9);
} else {
vo.setStatus(6);
}
} else {
vo.setStatus(entity.getStatus());
}
return vo;
}
}
package com.liquidnet.client.admin.zhengzai.sweet.utils;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.sweet.constant.SweetConstant;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityVo;
import com.liquidnet.service.sweet.dto.vo.SweetYbActivityVo;
import com.liquidnet.service.sweet.entity.SweetQrCode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Currency;
import java.util.LinkedList;
import java.util.List;
......@@ -150,4 +154,50 @@ public class SweetRedisAdminUtils {
String redisKey = SweetConstant.REDIS_KEY_QRCODE_LIST.concat(type + "");
redisDataSourceUtil.getRedisSweetUtil().set(redisKey, data);
}
//yb活动vo
public void setSweetYbActivityVo(SweetYbActivityVo vo) {
String redisKey = SweetConstant.REDIS_KEY_YB_ACTIVITY.concat(vo.getActivityId());
redisDataSourceUtil.getRedisSweetUtil().set(redisKey, vo);
}
//yb活动vo
public SweetYbActivityVo getSweetYbActivityVo(String activityId) {
String redisKey = SweetConstant.REDIS_KEY_YB_ACTIVITY.concat(activityId);
Object obj = redisDataSourceUtil.getRedisSweetUtil().get(redisKey);
if (obj == null) {
return SweetYbActivityVo.getNew();
} else {
return (SweetYbActivityVo) obj;
}
}
//yb活动vo
public List<String> getSweetYbActivityList() {
String redisKey = SweetConstant.REDIS_KEY_YB_ACTIVITY_LIST;
Object obj = redisDataSourceUtil.getRedisSweetUtil().get(redisKey);
if (obj == null) {
return CollectionUtil.arrayListString();
} else {
return (List<String>) obj;
}
}
//yb活动vo
public void addSweetYbActivityList(String activityId) {
String redisKey = SweetConstant.REDIS_KEY_YB_ACTIVITY_LIST;
List<String> list = getSweetYbActivityList();
if(!list.contains(activityId)) {
list.add(activityId);
}
redisDataSourceUtil.getRedisSweetUtil().set(redisKey,list);
}
//yb活动vo
public void removeSweetYbActivityList(String activityId) {
String redisKey = SweetConstant.REDIS_KEY_YB_ACTIVITY_LIST;
List<String> list = getSweetYbActivityList();
list.remove(activityId);
redisDataSourceUtil.getRedisSweetUtil().set(redisKey,list);
}
}
package com.liquidnet.service.sweet.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* YB报名表
* </p>
*
* @author jiangxiulong
* @since 2022-07-29
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SweetYbActivity implements Serializable {
private static final long serialVersionUID = -2081186417971841992L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* 活动id
*/
private String activityId;
/**
* 活动名称
*/
private String title;
/**
* 封面图
*/
private String cover;
/**
* 状态[0-未开始|6-开始|7-下线|9-结束]
*/
private Integer status;
/**
* 开始时间
*/
private LocalDateTime startTime;
/**
* 结束时间
*/
private LocalDateTime endTime;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
private static final SweetYbActivity obj = new SweetYbActivity();
public static SweetYbActivity getNew() {
try {
return (SweetYbActivity) obj.clone();
} catch (CloneNotSupportedException e) {
return new SweetYbActivity();
}
}
}
......@@ -70,6 +70,11 @@ public class SweetYbEnroll implements Serializable {
*/
private String cityName;
/**
* 活动id
*/
private String activityId;
/**
* 创建时间
*/
......
package com.liquidnet.service.sweet.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.sweet.dto.SweetManualAppletFiveDto;
import com.liquidnet.service.sweet.dto.SweetManualFiveDto;
import com.liquidnet.service.sweet.entity.SweetManualFive;
import com.liquidnet.service.sweet.entity.SweetYbActivity;
import java.util.List;
import java.util.Map;
/**
* <p>
* Mapper 接口
* </p>
*
* @author liquidnet
* @since 2021-08-09
*/
public interface SweetYbActivityMapper extends BaseMapper<SweetYbActivity> {
}
<?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.SweetYbActivityMapper">
</mapper>
......@@ -510,6 +510,26 @@ CREATE TABLE `sweet_yb_enroll`
ROW_FORMAT = DYNAMIC COMMENT 'YB报名表';
alter table sweet_yb_enroll
add city_name varchar(255) NOT NULL DEFAULT '' COMMENT '常驻城市名称' after universities;
alter table sweet_yb_enroll
add activity_id varchar(255) DEFAULT '0' COMMENT '活动id' after city_name;
-- YB活动
drop TABLE if exists `sweet_yb_activity`;
CREATE TABLE `sweet_yb_activity`
(
`mid` bigint unsigned NOT NULL AUTO_INCREMENT primary key,
`activity_id` varchar(255) NOT NULL DEFAULT '' COMMENT '活动id',
`title` varchar(30) NOT NULL DEFAULT '' COMMENT '活动名称',
`status` int NOT NULL DEFAULT 7 COMMENT '状态[0-未开始|6-开始|7-下线|9-结束]',
`start_time` datetime NOT NULL COMMENT '开始时间',
`end_time` datetime NOT NULL COMMENT '结束时间',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
KEY `sweet_yb_activity_id` (`activity_id`)
) ENGINE = InnoDB
DEFAULT CHARSET utf8mb4
COLLATE utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT 'YB活动表';
-- 城市投票表
drop TABLE if exists `sweet_city_vote`;
......
......@@ -3,6 +3,7 @@ package com.liquidnet.service.sweet.controller;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.param.SweetYbEnrollParam;
import com.liquidnet.service.sweet.dto.vo.SweetYbActivityVo;
import com.liquidnet.service.sweet.service.ISweetYbEnrollService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -13,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import java.util.List;
/**
* <p>
......@@ -36,4 +38,9 @@ public class SweetYbEnrollController {
return iSweetYbEnrollService.create(param);
}
@PostMapping("activityList")
@ApiOperation("活动列表")
public ResponseDto<List<SweetYbActivityVo>> list() {
return iSweetYbEnrollService.list();
}
}
......@@ -21,6 +21,7 @@ import com.liquidnet.service.sweet.utils.QueueUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
......@@ -45,6 +46,7 @@ public class SweetAppletSubMsgServiceImpl extends ServiceImpl<SweetAppletSubMsgM
private SweetAppletSubMsgMapper subMsgMapper;
@Autowired
@Lazy
private FeignKylinPerformancesClient feignKylinPerformancesClient;
@Autowired
......
......@@ -26,6 +26,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
......@@ -62,10 +63,13 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
private QueueUtils queueUtils;
@Autowired
@Lazy
private FeignStoneIntegralClient feignStoneIntegralClient;
@Autowired
@Lazy
private FeignAdamBaseClient feignAdamBaseClient;
@Autowired
@Lazy
private FeignCandyBaseClient feignCandyBaseClient;
@Override
......
......@@ -24,6 +24,7 @@ import me.chanjar.weixin.common.bean.WxOAuth2UserInfo;
import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
......@@ -54,6 +55,7 @@ public class SweetWechatLoginServiceImpl {
private WechatUsersRedisUtils redisUtils;
@Autowired
@Lazy
private FeignAdamBaseClient feignAdamBaseClient;
public ResponseDto userInfo(String code, String encryptedData, String iv, Integer type) {
......
......@@ -26,6 +26,7 @@ import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
......@@ -63,6 +64,7 @@ public class SweetWechatTemplateServiceImpl {
@Autowired
private SweetRemindMapper sweetRemindMapper;
@Autowired
@Lazy
private FeignKylinPerformancesClient feignKylinPerformancesClient;
@Autowired
......
......@@ -11,6 +11,7 @@ import com.liquidnet.service.sweet.vo.SweetAppletUsersVo;
import com.liquidnet.service.sweet.vo.SweetWechatUsersVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import java.util.HashMap;
......@@ -28,6 +29,7 @@ import java.util.HashMap;
public class SweetWechatUsersServiceImpl extends ServiceImpl<SweetWechatUsersMapper, SweetWechatUsers> implements ISweetWechatUsersService {
@Autowired
@Lazy
private FeignStoneIntegralClient feignStoneIntegralClient;
@Autowired
......
......@@ -8,14 +8,23 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.sweet.dto.param.SweetYbEnrollParam;
import com.liquidnet.service.sweet.dto.vo.SweetYbActivityVo;
import com.liquidnet.service.sweet.entity.SweetYbEnroll;
import com.liquidnet.service.sweet.mapper.SweetYbEnrollMapper;
import com.liquidnet.service.sweet.service.ISweetYbEnrollService;
import com.liquidnet.service.sweet.utils.ObjectUtil;
import com.liquidnet.service.sweet.utils.QueueUtils;
import com.liquidnet.service.sweet.utils.RedisDataUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
import static com.liquidnet.commons.lang.util.DateUtil.DTF_YMD_HMS;
/**
* <p>
......@@ -26,13 +35,18 @@ import java.util.LinkedList;
* @since 2022-07-29
*/
@Service
public class SweetYbEnrollServiceImpl extends ServiceImpl<SweetYbEnrollMapper, SweetYbEnroll> implements ISweetYbEnrollService {
public class SweetYbEnrollServiceImpl implements ISweetYbEnrollService {
@Autowired
QueueUtils queueUtils;
@Autowired
RedisDataUtils redisDataUtils;
@Override
public ResponseDto<Boolean> create(SweetYbEnrollParam param) {
if (param.getActivityId() == null || param.getActivityId().equals("")) {
param.setActivityId("0");
}
LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("sweet_yb_enroll.insert"));
......@@ -40,11 +54,34 @@ public class SweetYbEnrollServiceImpl extends ServiceImpl<SweetYbEnrollMapper, S
IDGenerator.nextSnowId(), StringUtil.isEmpty(param.getContactTell()) ? "" : param.getContactTell(),
StringUtil.isEmpty(param.getContactWechat()) ? "" : param.getContactWechat(), param.getNickname(), param.getStyle(),
param.getImgUrl(), param.getAudioUrl(), StringUtil.isEmpty(param.getUniversities()) ? "" : param.getUniversities(),
StringUtil.isEmpty(param.getCityName()) ? "" : param.getCityName()
StringUtil.isEmpty(param.getCityName()) ? "" : param.getCityName(), param.getActivityId()
});
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_ANSWER_INSERT.getKey(),
SqlMapping.gets(sqls, sqlsDataA));
return ResponseDto.success(true);
}
@Override
public ResponseDto<List<SweetYbActivityVo>> list() {
List<String> list = redisDataUtils.getSweetYbActivityList();
List<SweetYbActivityVo> voList = ObjectUtil.sweetYbActivityVoList();
LocalDateTime now = LocalDateTime.now();
for (String id : list) {
SweetYbActivityVo vo = redisDataUtils.getSweetYbActivityVo(id);
LocalDateTime st = LocalDateTime.parse(vo.getStartTime(),DTF_YMD_HMS);
LocalDateTime et = LocalDateTime.parse(vo.getEndTime(),DTF_YMD_HMS);
if(now.isAfter(et)){
vo.setStatus(9);
}else if(now.isBefore(st)){
vo.setStatus(0);
}else{
vo.setStatus(6);
}
voList.add(vo);
}
voList = voList.stream().sorted(Comparator.comparing(SweetYbActivityVo::getEndTime, Comparator.reverseOrder())).collect(Collectors.toList());
return ResponseDto.success(voList);
}
}
......@@ -3,6 +3,7 @@ package com.liquidnet.service.sweet.utils;
import com.liquidnet.service.sweet.dto.*;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityVo;
import com.liquidnet.service.sweet.dto.vo.SweetYbActivityVo;
import com.liquidnet.service.sweet.entity.SweetManualShop;
import com.liquidnet.service.sweet.entity.SweetManualShopFive;
import com.liquidnet.service.sweet.entity.SweetManualShopMdsk;
......@@ -31,6 +32,12 @@ public class ObjectUtil {
private static final ArrayList<SweetCItyVoteStatVo> sweetCItyVoteStatVoList = new ArrayList<>();
private static final ArrayList<IntegralActivityVo> sweetIntegralActivityVoList = new ArrayList<>();
private static final ArrayList<IntegralActivityDrawVo> sweetIntegralActivityDrawVoList = new ArrayList<>();
private static final ArrayList<SweetYbActivityVo> sweetYbActivityVo = new ArrayList<>();
public static ArrayList<SweetYbActivityVo> sweetYbActivityVoList() {
return (ArrayList<SweetYbActivityVo>) sweetYbActivityVo.clone();
}
public static ArrayList<SweetManualAppletDto> getSweetManualAppletDtoList() {
return (ArrayList<SweetManualAppletDto>) sweetManualAppletDtoList.clone();
......
......@@ -15,6 +15,7 @@ import com.liquidnet.service.sweet.dto.*;
import com.liquidnet.service.sweet.dto.param.poster.SweetStrawberryParam;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityVo;
import com.liquidnet.service.sweet.dto.vo.SweetYbActivityVo;
import com.liquidnet.service.sweet.dto.vo.TempBannerVo;
import com.liquidnet.service.sweet.entity.*;
import com.liquidnet.service.sweet.mapper.*;
......@@ -22,6 +23,7 @@ import com.liquidnet.service.sweet.param.SweetCityVoteParam;
import com.liquidnet.service.sweet.vo.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
......@@ -52,6 +54,7 @@ public class RedisDataUtils {
@Autowired
private SweetArtistsMapper sweetArtistsMapper;
@Autowired
@Lazy
private FeignSlimeApiClient feignSlimeApiClient;
public List<SweetManualAppletDto> setPushList() {
......@@ -887,4 +890,27 @@ public class RedisDataUtils {
}
}
//yb活动vo
public List<String> getSweetYbActivityList() {
String redisKey = SweetConstant.REDIS_KEY_YB_ACTIVITY_LIST;
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return CollectionUtil.arrayListString();
} else {
return (List<String>) obj;
}
}
//yb活动vo
public SweetYbActivityVo getSweetYbActivityVo(String activityId) {
String redisKey = SweetConstant.REDIS_KEY_YB_ACTIVITY.concat(activityId);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return SweetYbActivityVo.getNew();
} else {
return (SweetYbActivityVo) obj;
}
}
}
......@@ -20,6 +20,7 @@ import com.liquidnet.service.sweet.entity.SweetRichtextFive;
import com.liquidnet.service.sweet.mapper.*;
import com.liquidnet.service.sweet.vo.SweetArtistsRelationVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
......@@ -48,6 +49,7 @@ public class RedisFiveDataUtils {
@Autowired
private SweetArtistsMapper sweetArtistsMapper;
@Autowired
@Lazy
private FeignSlimeApiClient feignSlimeApiClient;
public List<SweetManualAppletFiveDto> setPushList() {
......
......@@ -14,6 +14,7 @@ import com.liquidnet.service.sweet.entity.*;
import com.liquidnet.service.sweet.mapper.*;
import com.liquidnet.service.sweet.vo.SweetArtistsRelationVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
......@@ -42,6 +43,7 @@ public class RedisMDSKDataUtils {
@Autowired
private SweetArtistsMapper sweetArtistsMapper;
@Autowired
@Lazy
private FeignSlimeApiClient feignSlimeApiClient;
public List<SweetManualAppletMDSKDto> setPushList() {
......
......@@ -17,6 +17,7 @@ import com.liquidnet.service.sweet.entity.SweetRichtextTfc;
import com.liquidnet.service.sweet.mapper.*;
import com.liquidnet.service.sweet.vo.SweetArtistsRelationVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
......@@ -43,6 +44,7 @@ public class RedisTFCDataUtils {
@Autowired
private SweetManualShopTfcMapper sweetManualShopTFCMapper;
@Autowired
@Lazy
private FeignSlimeApiClient feignSlimeApiClient;
public List<SweetManualAppletTFCDto> setPushList() {
......
kylin_order_ticket_entities.updateStatusByStation=UPDATE kylin_order_ticket_entities SET `status`=?,check_client=?,updated_at=? WHERE order_ticket_entities_id=? # ------------------------缺票登记(不用考虑并发)---------------------------- kylin_lack_register.insert=INSERT INTO `kylin_lack_registers`(`lack_registers_id` ,`performance_id` ,`ticket_id` ,`user_id` ,`user_name` ,`user_mobile` ,`send_status` ,`ip_address` ,`created_at`)VALUES(? ,? ,? ,? ,? ,? ,? ,? ,?); # ------------------------支付回调---------------------------- kylin_order_ticket.synPay=UPDATE kylin_order_tickets SET payment_type = ? ,pay_code = ? , time_pay = ?, qr_code = ? , updated_at = ? WHERE order_tickets_id = ? and (updated_at <= ? or created_at = ?) kylin_order_ticket_status.synPay=UPDATE kylin_order_ticket_status SET `status` = ?,pay_status = ?,updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ?) kylin_order_ticket_relation.synPay=UPDATE kylin_order_ticket_relations SET updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ?) kylin_order_ticket_entities.synPay=UPDATE kylin_order_ticket_entities SET is_payment = ?,updated_at = ?,sys_damai = 1 WHERE order_id = ? and (updated_at <= ? or created_at = ?) # ------------------------用户关系---------------------------- sweet_user_relation.insert=INSERT INTO sweet_user_relation (user_id,type,target_id,manual_id,status,created_at) VALUES (?,?,?,?,1,?) sweet_user_relation.delete=DELETE FROM sweet_user_relation WHERE user_id = ? and target_id = ? and manual_id = ? and type = ? sweet_user_relation_mdsk.insert=INSERT INTO sweet_user_relation_mdsk (user_id,type,target_id,manual_id,status,created_at) VALUES (?,?,?,?,1,?) sweet_user_relation_mdsk.delete=DELETE FROM sweet_user_relation_mdsk WHERE user_id = ? and target_id = ? and manual_id = ? and type = ? sweet_user_relation_five.insert=INSERT INTO sweet_user_relation_five (user_id,type,target_id,manual_id,status,created_at) VALUES (?,?,?,?,1,?) sweet_user_relation_five.delete=DELETE FROM sweet_user_relation_five WHERE user_id = ? and target_id = ? and manual_id = ? and type = ? # ------------------------抽奖---------------------------- sweet_luck_draw.insert=INSERT INTO sweet_luck_draw (mobile,union_id,luck_draw_num,prize,prize_all,status,created_at) VALUES (?,?,?,?,?,1,?) # --------------------------答案-------------------------- sweet_answer.insert=INSERT INTO sweet_answer (answer_id,phone,answer_json,img_url) VALUES (?,?,?,?) # --------------------------提醒记录-------------------------- sweet_remind.insert=INSERT INTO sweet_remind (remind_id,openId,unionId,performancesId) VALUES (?,?,?,?) sweet_applet_sub_msg.insert=INSERT INTO sweet_applet_sub_msg (msg_id,open_id,union_id,user_id,template_id,target_id,applet_type,activity_type) VALUES (?,?,?,?,?,?,?,?) # --------------------------用户投票记录-------------------------- sweet_city_vote.insert=INSERT INTO sweet_city_vote (vote_id,phone,openId,unionId,type,city_code,city_name,day_time) VALUES (?,?,?,?,?,?,?,?) sweet_city_vote_stat.insert=INSERT INTO sweet_city_vote_stat (stat_id,city_code,city_name,vote_num,type) VALUES (?,?,?,?,?) sweet_city_vote_stat.update=UPDATE sweet_city_vote_stat SET vote_num = IFNULL(vote_num, 0) + 1, updated_at = ? WHERE city_code = ? AND type = ? # --------------------------防疫答题-------------------------- sweet_antigenic_question.insert=INSERT INTO sweet_antigenic_question (question_id,type,openId,unionId,nickname,address,phone,urgent_phone,keyword1,keyword11,keyword2,keyword3,keyword4,keyword5,keyword6,keyword7) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) # ------------------------积分抽奖---------------------------- sweet_integral_activity_draw.insert=INSERT INTO sweet_integral_activity_draw (draw_id,integral_activity_id,activity_num,prize_id,prize_title,prize_type,prize_type_num,user_id,nickname,receiving_status) VALUES (?,?,?,?,?,?,?,?,?,?) sweet_integral_activity_draw.update=UPDATE sweet_integral_activity_draw SET receiving_addresses_id = ?, receiving_name = ?, receiving_phone = ?, receiving_address = ?, receiving_province = ?, receiving_city = ?, receiving_county = ?, updated_at = ? WHERE draw_id = ? sweet_integral_activity_draw.updateStatus=UPDATE sweet_integral_activity_draw SET receiving_status = ?, relation_id = ?, updated_at = ? WHERE draw_id = ? sweet_integral_activity_draw.get_coupon=INSERT INTO candy_mgt_coupon (mcoupon_id, coupon_id, `state`, event_amt, event_type, event_limit, event_at, `operator`, created_at) VALUES (?, ?, 0, ?, 2, ?, ?, ?, ?) # --------------------------小程序登录记录用户解密后信息-------------------------- sweet_applet_users.insert=INSERT INTO sweet_applet_users (applet_user_id,user_id,open_id,union_id,phone_number,pure_phone_number,country_code,type) VALUES (?,?,?,?,?,?,?,?) # --------------------------微信用户信息表公众号-------------------------- sweet_wechat_users.insert=INSERT INTO sweet_wechat_users (wechat_user_id,type,open_id,union_id,nickname,sex_desc,sex,head_img_url,language,country,province,city,subscribe_time,subscribe_scene) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?) sweet_wechat_users.delete=DELETE FROM sweet_wechat_users WHERE union_id = ? and type = ? sweet_wechat_users.update=UPDATE sweet_wechat_users SET is_cancel = ?, updated_at = ? WHERE union_id = ? AND type = ? AND is_cancel = 1 #---------------------------音乐节活动海报-------------------------------- sweet_strawberry_poster_user=INSERT INTO sweet_strawberry_poster(open_id,poster_id,union_id,nickname,city_name,city_code,custom_text,created_at,updated_at) VALUES (?,?,?,?,?,?,?,?,?) sweet_strawberry_poster_Musician=INSERT INTO sweet_strawberry_poster_lineup(lineup_id,poster_id,lineup_num,musician_name,created_at,updated_at) VALUES (?,?,?,?,?,?) #---------------------------猫登天空-------------------------------- sweet_wechat_maodeng.insert=INSERT INTO sweet_wechat_maodeng(mao_id,user_id,text_msg,pic_url,img_url,created_at) VALUES (?,?,?,?,?,?) sweet_wechat_maodeng.text.update=UPDATE sweet_wechat_maodeng SET text_msg=? WHERE user_id=? AND mao_id=? sweet_wechat_maodeng.img.update=UPDATE sweet_wechat_maodeng SET img_url=? WHERE user_id=? AND mao_id=? # --------------------------数字藏品预约活动-------------------------- sweet_collection_reservation.insert=INSERT INTO sweet_collection_reservation (reservation_id,nickname,mobile,mailbox,enterprise_name,title,created_at,updated_at) VALUES (?,?,?,?,?,?,?,?) # --------------------------YB??-------------------------- sweet_yb_enroll.insert=INSERT INTO sweet_yb_enroll (enroll_id,contact_tell,contact_wechat,nickname,style,img_url,audio_url,universities,city_name) VALUES (?,?,?,?,?,?,?,?,?)
\ No newline at end of file
kylin_order_ticket_entities.updateStatusByStation=UPDATE kylin_order_ticket_entities SET `status`=?,check_client=?,updated_at=? WHERE order_ticket_entities_id=? # ------------------------缺票登记(不用考虑并发)---------------------------- kylin_lack_register.insert=INSERT INTO `kylin_lack_registers`(`lack_registers_id` ,`performance_id` ,`ticket_id` ,`user_id` ,`user_name` ,`user_mobile` ,`send_status` ,`ip_address` ,`created_at`)VALUES(? ,? ,? ,? ,? ,? ,? ,? ,?); # ------------------------支付回调---------------------------- kylin_order_ticket.synPay=UPDATE kylin_order_tickets SET payment_type = ? ,pay_code = ? , time_pay = ?, qr_code = ? , updated_at = ? WHERE order_tickets_id = ? and (updated_at <= ? or created_at = ?) kylin_order_ticket_status.synPay=UPDATE kylin_order_ticket_status SET `status` = ?,pay_status = ?,updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ?) kylin_order_ticket_relation.synPay=UPDATE kylin_order_ticket_relations SET updated_at = ? WHERE order_id = ? and (updated_at <= ? or created_at = ?) kylin_order_ticket_entities.synPay=UPDATE kylin_order_ticket_entities SET is_payment = ?,updated_at = ?,sys_damai = 1 WHERE order_id = ? and (updated_at <= ? or created_at = ?) # ------------------------用户关系---------------------------- sweet_user_relation.insert=INSERT INTO sweet_user_relation (user_id,type,target_id,manual_id,status,created_at) VALUES (?,?,?,?,1,?) sweet_user_relation.delete=DELETE FROM sweet_user_relation WHERE user_id = ? and target_id = ? and manual_id = ? and type = ? sweet_user_relation_mdsk.insert=INSERT INTO sweet_user_relation_mdsk (user_id,type,target_id,manual_id,status,created_at) VALUES (?,?,?,?,1,?) sweet_user_relation_mdsk.delete=DELETE FROM sweet_user_relation_mdsk WHERE user_id = ? and target_id = ? and manual_id = ? and type = ? sweet_user_relation_five.insert=INSERT INTO sweet_user_relation_five (user_id,type,target_id,manual_id,status,created_at) VALUES (?,?,?,?,1,?) sweet_user_relation_five.delete=DELETE FROM sweet_user_relation_five WHERE user_id = ? and target_id = ? and manual_id = ? and type = ? # ------------------------抽奖---------------------------- sweet_luck_draw.insert=INSERT INTO sweet_luck_draw (mobile,union_id,luck_draw_num,prize,prize_all,status,created_at) VALUES (?,?,?,?,?,1,?) # --------------------------答案-------------------------- sweet_answer.insert=INSERT INTO sweet_answer (answer_id,phone,answer_json,img_url) VALUES (?,?,?,?) # --------------------------提醒记录-------------------------- sweet_remind.insert=INSERT INTO sweet_remind (remind_id,openId,unionId,performancesId) VALUES (?,?,?,?) sweet_applet_sub_msg.insert=INSERT INTO sweet_applet_sub_msg (msg_id,open_id,union_id,user_id,template_id,target_id,applet_type,activity_type) VALUES (?,?,?,?,?,?,?,?) # --------------------------用户投票记录-------------------------- sweet_city_vote.insert=INSERT INTO sweet_city_vote (vote_id,phone,openId,unionId,type,city_code,city_name,day_time) VALUES (?,?,?,?,?,?,?,?) sweet_city_vote_stat.insert=INSERT INTO sweet_city_vote_stat (stat_id,city_code,city_name,vote_num,type) VALUES (?,?,?,?,?) sweet_city_vote_stat.update=UPDATE sweet_city_vote_stat SET vote_num = IFNULL(vote_num, 0) + 1, updated_at = ? WHERE city_code = ? AND type = ? # --------------------------防疫答题-------------------------- sweet_antigenic_question.insert=INSERT INTO sweet_antigenic_question (question_id,type,openId,unionId,nickname,address,phone,urgent_phone,keyword1,keyword11,keyword2,keyword3,keyword4,keyword5,keyword6,keyword7) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) # ------------------------积分抽奖---------------------------- sweet_integral_activity_draw.insert=INSERT INTO sweet_integral_activity_draw (draw_id,integral_activity_id,activity_num,prize_id,prize_title,prize_type,prize_type_num,user_id,nickname,receiving_status) VALUES (?,?,?,?,?,?,?,?,?,?) sweet_integral_activity_draw.update=UPDATE sweet_integral_activity_draw SET receiving_addresses_id = ?, receiving_name = ?, receiving_phone = ?, receiving_address = ?, receiving_province = ?, receiving_city = ?, receiving_county = ?, updated_at = ? WHERE draw_id = ? sweet_integral_activity_draw.updateStatus=UPDATE sweet_integral_activity_draw SET receiving_status = ?, relation_id = ?, updated_at = ? WHERE draw_id = ? sweet_integral_activity_draw.get_coupon=INSERT INTO candy_mgt_coupon (mcoupon_id, coupon_id, `state`, event_amt, event_type, event_limit, event_at, `operator`, created_at) VALUES (?, ?, 0, ?, 2, ?, ?, ?, ?) # --------------------------小程序登录记录用户解密后信息-------------------------- sweet_applet_users.insert=INSERT INTO sweet_applet_users (applet_user_id,user_id,open_id,union_id,phone_number,pure_phone_number,country_code,type) VALUES (?,?,?,?,?,?,?,?) # --------------------------微信用户信息表公众号-------------------------- sweet_wechat_users.insert=INSERT INTO sweet_wechat_users (wechat_user_id,type,open_id,union_id,nickname,sex_desc,sex,head_img_url,language,country,province,city,subscribe_time,subscribe_scene) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?) sweet_wechat_users.delete=DELETE FROM sweet_wechat_users WHERE union_id = ? and type = ? sweet_wechat_users.update=UPDATE sweet_wechat_users SET is_cancel = ?, updated_at = ? WHERE union_id = ? AND type = ? AND is_cancel = 1 #---------------------------音乐节活动海报-------------------------------- sweet_strawberry_poster_user=INSERT INTO sweet_strawberry_poster(open_id,poster_id,union_id,nickname,city_name,city_code,custom_text,created_at,updated_at) VALUES (?,?,?,?,?,?,?,?,?) sweet_strawberry_poster_Musician=INSERT INTO sweet_strawberry_poster_lineup(lineup_id,poster_id,lineup_num,musician_name,created_at,updated_at) VALUES (?,?,?,?,?,?) #---------------------------猫登天空-------------------------------- sweet_wechat_maodeng.insert=INSERT INTO sweet_wechat_maodeng(mao_id,user_id,text_msg,pic_url,img_url,created_at) VALUES (?,?,?,?,?,?) sweet_wechat_maodeng.text.update=UPDATE sweet_wechat_maodeng SET text_msg=? WHERE user_id=? AND mao_id=? sweet_wechat_maodeng.img.update=UPDATE sweet_wechat_maodeng SET img_url=? WHERE user_id=? AND mao_id=? # --------------------------数字藏品预约活动-------------------------- sweet_collection_reservation.insert=INSERT INTO sweet_collection_reservation (reservation_id,nickname,mobile,mailbox,enterprise_name,title,created_at,updated_at) VALUES (?,?,?,?,?,?,?,?) # --------------------------YB??-------------------------- sweet_yb_enroll.insert=INSERT INTO sweet_yb_enroll (enroll_id,contact_tell,contact_wechat,nickname,style,img_url,audio_url,universities,city_name,activity_id) 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