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

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

提交 活动

parent d4ac52aa
......@@ -29,6 +29,8 @@ public class SmileProjectDetailsVo implements Cloneable {
private String img;
@ApiModelProperty(value = "职责组集合", example = "")
private List<SmileVolunteersTeam> teamArray;
@ApiModelProperty(value = "职责组集合Vo", example = "")
private List<SmileVolunteersTeamVo> teamVoArray;
private static final SmileProjectDetailsVo obj = new SmileProjectDetailsVo();
......
package com.liquidnet.service.goblin.dto.vo;
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>
* 志愿者-项目职责组表
* </p>
*
* @author jiangxiulong
* @since 2022-04-01
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class SmileVolunteersTeamVo implements Serializable,Cloneable {
private static final long serialVersionUID = 1L;
/**
* 职责组id
*/
private String teamId;
/**
* 组名称
*/
private String name;
/**
* 组介绍
*/
private String introduce;
/**
* 是否选中
*/
private Integer isCheck;
private static final SmileVolunteersTeamVo obj = new SmileVolunteersTeamVo();
public static SmileVolunteersTeamVo getNew() {
try {
return (SmileVolunteersTeamVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new SmileVolunteersTeamVo();
}
}
}
......@@ -3,6 +3,7 @@ package com.liquidnet.client.admin.web.controller.zhengzai.smile;
import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.framework.web.domain.server.Sys;
import com.liquidnet.client.admin.zhengzai.smile.dto.SmileVPParam;
import com.liquidnet.client.admin.zhengzai.smile.dto.SmileVPSParam;
import com.liquidnet.client.admin.zhengzai.smile.dto.SmileVSParam;
......@@ -10,15 +11,22 @@ import com.liquidnet.client.admin.zhengzai.smile.dto.SmileVTSParam;
import com.liquidnet.client.admin.zhengzai.smile.service.ISmileVolunteersProjectService;
import com.liquidnet.client.admin.zhengzai.smile.service.ISmileVolunteersService;
import com.liquidnet.client.admin.zhengzai.smile.service.ISmileVolunteersTeamService;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.goblin.dto.vo.SmileProjectDetailsVo;
import com.liquidnet.service.goblin.dto.vo.SmileVolunteersDetailsVo;
import com.liquidnet.service.goblin.dto.vo.SmileVolunteersTeamVo;
import com.liquidnet.service.smile.entity.SmileVolunteersTeam;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Api(tags = "志愿者")
@Controller
@RequestMapping("/smile/volunteers")
......@@ -30,6 +38,8 @@ public class SmileVolunteersController extends BaseController {
ISmileVolunteersTeamService volunteersTeamService;
@Autowired
ISmileVolunteersService volunteersService;
@Value("${liquidnet.client.admin.platformUrl}")
private String platformUrl;
private final String prefix = "zhengzai/smile/volunteers";
......@@ -69,7 +79,14 @@ public class SmileVolunteersController extends BaseController {
* 新增活动
*/
@GetMapping("/project/add")
public String addProject() {
public String addProject(ModelMap mmap) {
SmileVTSParam param = new SmileVTSParam();
param.setPageNum(1);
param.setPageSize(40);
TableDataInfo tableDataInfo = volunteersTeamService.list(param);
List<SmileVolunteersTeam> list = (List<SmileVolunteersTeam>) tableDataInfo.getRows();
mmap.put("platformUrl", platformUrl);
mmap.put("listData", list);
return prefix + "/project/add";
}
......@@ -155,8 +172,29 @@ public class SmileVolunteersController extends BaseController {
})
public String detailsProject(@PathVariable("projectId") String projectId, ModelMap mmap) {
SmileProjectDetailsVo data = volunteersProjectService.details(projectId);
SmileVTSParam param = new SmileVTSParam();
param.setPageNum(1);
param.setPageSize(40);
TableDataInfo tableDataInfo = volunteersTeamService.list(param);
List<SmileVolunteersTeamVo> listVo = new ArrayList<>();
List<SmileVolunteersTeam> listBean = ((List<SmileVolunteersTeam>) tableDataInfo.getRows());
List<String> list = data.getTeamArray().stream().map(SmileVolunteersTeam::getTeamId).collect(Collectors.toList());
for (SmileVolunteersTeam bean : listBean) {
SmileVolunteersTeamVo vo = SmileVolunteersTeamVo.getNew();
vo.setTeamId(bean.getTeamId());
vo.setName(bean.getName());
vo.setIntroduce(bean.getIntroduce());
if (list.contains(bean.getTeamId())) {
vo.setIsCheck(1);
} else {
vo.setIsCheck(0);
}
listVo.add(vo);
}
data.setTeamVoArray(listVo);
mmap.put("platformUrl", platformUrl);
mmap.put("smileProjectDetailsVo", data);
return prefix + "/project/details";
return prefix + "/project/edit";
}
@PostMapping("/list")
......
......@@ -47,18 +47,12 @@
</div>
<th:block th:include="include :: footer"/>
<script th:inline="javascript">
var detailFlag = [[${@permission.hasPermi('kylin:performances:detail')}]];
var expertFlag = [[${@permission.hasPermi('kylin:performances:expert')}]];
var prefix = ctx + "kylin/performances";
var prefix = ctx + "smile/volunteers";
$(function () {
var options = {
url: prefix + "/list",
detailUrl: prefix + "/details/{id}",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
// sortName: "sort",
modalName: "演出",
orderSc: "desc",
......
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
<th:block th:include="include :: header('新增活动')"/>
<th:block th:include="include :: datetimepicker-css"/>
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-team-add">
<input id="teamIdArray" name="teamIdArray" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label is-required">活动名称:</label>
<div class="col-sm-8">
<input name="title" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<div class="col-sm-8">
<input id="fileinput10" type="file">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">封面图地址:</label>
<div class="col-sm-8">
<input id="iptUrl" name="img" class="form-control" type="text" required readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">地址:</label>
<div class="col-sm-8">
<input name="address" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">介绍:</label>
<div class="col-sm-8">
<input name="introduce" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开始时间:</label>
<div class="col-sm-8">
<input name="timeStart" class="form-control" type="date" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">结束时间:</label>
<div class="col-sm-8">
<input name="timeEnd" class="form-control" type="date" required>
</div>
</div>
</form>
<form class="form-horizontal m" id="form-team" th:object="${listData}">
<table id="team-table" th:border="1">
<tr>
<td>名称</td>
<td>介绍</td>
<td>选中</td>
<tr/>
<div th:each="item : ${listData}">
<tr class="content-tr">
<td th:value="${item.name}" th:text="${item.name}">
</td>
<td th:text="${item.introduce}">
</td>
<td>
<input name="checkbox" type="checkbox" th:value="${item.teamId}"> 选中</label>
</td>
</tr>
</div>
</table>
</form>
<div class="cover_pop" style="display: none">
<div class="pop_inner">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<div class="file-loading">
<input id="fileinput-demo-1" type="file" name="file" data-browse-on-zone-click="true"
data-msg-placeholder="Select {files} for upload...">
<input hidden id="coverImg" name="coverImg">
</div>
</div>
<div class="pop_btns">
<div class="confirm_btn" onclick="popBtn(1)">确认</div>
<div class="confirm_btn confirm_cancel" onclick="popBtn(0)">取消</div>
</div>
</div>
</div>
</div>
<th:block th:include="include :: footer"/>
<th:block th:include="include :: datetimepicker-js"/>
<script th:inline="javascript">
var smilePrefix = ctx + "smile/volunteers";
var platformUrl = [[${platformUrl}]];
var teamIds = [];
$("#form-team-add").validate({
focusCleanup: true
});
$("input:checkbox").click(function () {
var domName = $(this).attr('name');//获取当前单选框控件name 属性值
var checkedState = $(this).attr('checked');//记录当前选中状态
var value = $(this).val();
$("input:radio[name='" + domName + "']").attr('checked', false);//1.
$(this).attr('checked', true);//2.
if (checkedState == 'checked') {
$(this).attr('checked', false); //3.
teamIds.remove(value)
} else {
teamIds.push(value);
}
});
//扩展数组方法:查找指定元素的下标
//author cjianquan 2016-1-14
Array.prototype.indexOf = function (val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
};
//扩展数组方法:删除指定元素
//author cjianquan 2016-1-14
Array.prototype.remove = function (val) {
var index = this.indexOf(val);
while (index > -1) {
this.splice(index, 1);
index = this.indexOf(val);
}
};
$("#fileinput10").change((e) => {
if (!e.target.files[0]) {
return
}
var formData = new FormData();
formData.append("file", e.target.files[0]);
$.ajax({
url: platformUrl + "/platform/basicServices/alOss/upload",//路径是你控制器中上传图片的方法,下面controller里面我会写到
data: formData,
cache: false,
contentType: false,
processData: false,
type: 'POST',
success: function (res) {
console.log(res, 'res')
let imgPath = 'https://img.zhengzai.tv/' + res.data.ossPath;
$("#iptUrl").val(imgPath);
}
});
})
function submitHandler() {
document.getElementById("teamIdArray").value = teamIds.join(",");
if ($.validate.form()) {
$.operate.save(smilePrefix + "/project/insert", $('#form-team-add').serialize());
}
}
</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 :: datetimepicker-css"/>
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-project-edit" th:object="${smileProjectDetailsVo}">
<input id="teamIdArray" name="teamIdArray" type="hidden">
<input id="projectId" name="projectId" type="hidden" th:value="${smileProjectDetailsVo.projectId}">
<div class="form-group">
<label class="col-sm-3 control-label is-required">活动名称:</label>
<div class="col-sm-8">
<input name="title" class="form-control" type="text" th:value="${smileProjectDetailsVo.title}" required>
</div>
</div>
<div class="form-group">
<div class="col-sm-8">
<input id="fileinput10" type="file">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">封面图地址:</label>
<div class="col-sm-8">
<input id="iptUrl" name="img" class="form-control" type="text" th:value="${smileProjectDetailsVo.img}"
required readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">地址:</label>
<div class="col-sm-8">
<input name="address" class="form-control" type="text" th:value="${smileProjectDetailsVo.address}"
required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">介绍:</label>
<div class="col-sm-8">
<input name="introduce" class="form-control" type="text" th:value="${smileProjectDetailsVo.introduce}"
required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开始时间:</label>
<div class="col-sm-8">
<input name="timeStart" class="form-control" type="date" th:value="${smileProjectDetailsVo.timeStart}"
required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">结束时间:</label>
<div class="col-sm-8">
<input name="timeEnd" class="form-control" type="date" th:value="${smileProjectDetailsVo.timeEnd}"
required>
</div>
</div>
</form>
<form class="form-horizontal m" id="form-team">
<table id="team-table" th:border="1">
<tr>
<td>名称</td>
<td>介绍</td>
<td>选中</td>
<tr/>
<div th:each="item : ${smileProjectDetailsVo.teamVoArray}">
<tr class="content-tr">
<td th:value="${item.name}" th:text="${item.name}">
</td>
<td th:text="${item.introduce}">
</td>
<td>
<input name="checkbox" type="checkbox" th:value="${item.teamId}"
th:if="${item.isCheck==1}" th:text="选中" checked></label>
<input name="checkbox" type="checkbox" th:value="${item.teamId}" th:if="${item.isCheck==0}"
th:text="选中"></label>
</td>
</tr>
</div>
</table>
</form>
<div class="cover_pop" style="display: none">
<div class="pop_inner">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<div class="file-loading">
<input id="fileinput-demo-1" type="file" name="file" data-browse-on-zone-click="true"
data-msg-placeholder="Select {files} for upload...">
<input hidden id="coverImg" name="coverImg">
</div>
</div>
<div class="pop_btns">
<div class="confirm_btn" onclick="popBtn(1)">确认</div>
<div class="confirm_btn confirm_cancel" onclick="popBtn(0)">取消</div>
</div>
</div>
</div>
</div>
<th:block th:include="include :: footer"/>
<th:block th:include="include :: datetimepicker-js"/>
<script th:inline="javascript">
var smilePrefix = ctx + "smile/volunteers";
var platformUrl = [[${platformUrl}]];
var teamIds = [];
$("#form-roadShow-edit").validate({
focusCleanup: true
});
$("input:checkbox").click(function () {
var domName = $(this).attr('name');//获取当前单选框控件name 属性值
var checkedState = $(this).attr('checked');//记录当前选中状态
var value = $(this).val();
$("input:radio[name='" + domName + "']").attr('checked', false);//1.
$(this).attr('checked', true);//2.
if (checkedState == 'checked') {
$(this).attr('checked', false); //3.
teamIds.remove(value)
} else {
teamIds.push(value);
}
});
//扩展数组方法:查找指定元素的下标
//author cjianquan 2016-1-14
Array.prototype.indexOf = function (val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
};
//扩展数组方法:删除指定元素
//author cjianquan 2016-1-14
Array.prototype.remove = function (val) {
var index = this.indexOf(val);
while (index > -1) {
this.splice(index, 1);
index = this.indexOf(val);
}
};
$("#fileinput10").change((e) => {
if (!e.target.files[0]) {
return
}
var formData = new FormData();
formData.append("file", e.target.files[0]);
$.ajax({
url: platformUrl + "/platform/basicServices/alOss/upload",//路径是你控制器中上传图片的方法,下面controller里面我会写到
data: formData,
cache: false,
contentType: false,
processData: false,
type: 'POST',
success: function (res) {
console.log(res, 'res')
let imgPath = 'https://img.zhengzai.tv/' + res.data.ossPath;
$("#iptUrl").val(imgPath);
}
});
})
function submitHandler() {
document.getElementById("teamIdArray").value = teamIds.join(",");
if ($.validate.form()) {
$.operate.save(smilePrefix + "/project/update", $('#form-project-edit').serialize());
}
}
</script>
</body>
</html>
\ No newline at end of file
......@@ -24,6 +24,11 @@
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()">
<i class="fa fa-plus"></i> 添加
</a>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
......@@ -31,91 +36,60 @@
</div>
<th:block th:include="include :: footer"/>
<script th:inline="javascript">
var detailFlag = [[${@permission.hasPermi('kylin:performances:detail')}]];
var expertFlag = [[${@permission.hasPermi('kylin:performances:expert')}]];
var prefix = ctx + "kylin/performances";
var smilePrefix = ctx + "smile/volunteers";
$(function () {
var options = {
url: prefix + "/list",
detailUrl: prefix + "/details/{id}",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
url: smilePrefix + "/project/list",
createUrl: smilePrefix + "/project/add",
updateUrl: smilePrefix + "/project/details/{id}",
// sortName: "sort",
modalName: "演出",
modalName: "活动",
orderSc: "desc",
orderItem: "created_at",
columns: [{
checkbox: true
},
{
field: 'title',
title: '演出名称'
},
{
field: 'performancesId',
title: '演出id'
},
{
field: 'timeStart',
title: '开演时间'
},
{
field: 'totalGeneral',
title: '供票总量'
},
{
field: 'saleGeneral',
title: '实销'
field: 'projectId',
title: '活动id'
},
{
field: 'surplusGeneral',
title: '余票'
field: 'title',
title: '活动名称'
},
{
field: 'totalSalePrice',
title: '总销售款'
field: 'img',
title: '封面图',
formatter: function (value, row, index) {
return $.table.imageView(value, "300", "300");
}
},
{
field: 'statusName',
title: '演出状态'
field: 'timeStart',
title: '开始时间'
},
{
field: 'rejectTxt',
title: '拒绝理由'
field: 'timeEnd',
title: '结束时间'
},
{
field: 'sort',
title: '排序',
sortable: true
field: 'createdAt',
title: '创建时间'
},
{
title: '操作',
align: 'center',
formatter: function (value, row, index) {
var actions = [];
if (row.auditStatus == 0 && row.fieldAuditStatus == 0) {
actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="$.operate.detailTab(\'' + row.performancesId + '\')"><i class="fa fa-edit"></i>管理</a> ');
} else {
actions.push('<a class="btn btn-success btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="$.operate.detailTab(\'' + row.performancesId + '\')"><i class="fa fa-edit"></i>查看</a> ');
}
if (row.syncDamai == 1) {
actions.push('<a class="btn btn-warning btn-xs ' + expertFlag + '" href="javascript:void(0)" onclick="f(\'' + row.performancesId + '\')"><i class="fa fa-remove"></i>同步</a>');
}
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="$.operate.edit(\'' + row.projectId + '\')"><i class="fa fa-edit"></i>管理</a> ');
return actions.join('');
}
}]
};
$.table.init(options);
});
function f(id) {
$.post(prefix + "/sync/damai", {performancesId: id}, function (res) {
alert(res.msg)
});
}
</script>
</body>
</html>
......@@ -27,5 +27,5 @@ public class SmileVPParam {
@ApiModelProperty(value = "封面图", example = "")
private String img;
@ApiModelProperty(value = "职责组id数组", example = "")
private ArrayList<String> teamIdArray;
private String teamIdArray;
}
......@@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
......@@ -49,7 +50,7 @@ public class SmileVolunteersProjectServiceImpl extends ServiceImpl<SmileVoluntee
PageHelper.startPage(param.getPageNum(), param.getPageSize());
LambdaQueryWrapper<SmileVolunteersProject> wrappers = Wrappers.lambdaQuery(SmileVolunteersProject.class);
if (param.getTitle() != null && !param.getTitle().equals("")) {
wrappers.eq(SmileVolunteersProject::getTitle, param.getTitle());
wrappers.like(SmileVolunteersProject::getTitle, param.getTitle());
}
List<SmileVolunteersProject> data = volunteersProjectMapper.selectList(wrappers);
rspData.setCode(0);
......@@ -69,7 +70,7 @@ public class SmileVolunteersProjectServiceImpl extends ServiceImpl<SmileVoluntee
List<SmileVolunteersTeam> teamList = new ArrayList<>();
SmileVolunteersProject data = copySmileVolunteersProject(param, now, null);
int count = volunteersProjectMapper.insert(data);
for (String teamId : param.getTeamIdArray()) {
for (String teamId : param.getTeamIdArray().split(",")) {
SmileProjectTeamRelation smileProjectTeamRelation = SmileProjectTeamRelation.getNew();
smileProjectTeamRelation.setProjectId(param.getProjectId());
smileProjectTeamRelation.setTeamId(teamId);
......@@ -103,7 +104,7 @@ public class SmileVolunteersProjectServiceImpl extends ServiceImpl<SmileVoluntee
int count = volunteersProjectMapper.update(data, Wrappers.lambdaQuery(SmileVolunteersProject.class).eq(SmileVolunteersProject::getProjectId, param.getProjectId()));
//删除所有关联关系
projectTeamRelationMapper.delete(Wrappers.lambdaQuery(SmileProjectTeamRelation.class).eq(SmileProjectTeamRelation::getProjectId, param.getProjectId()));
for (String teamId : param.getTeamIdArray()) {
for (String teamId : param.getTeamIdArray().split(",")) {
SmileProjectTeamRelation smileProjectTeamRelation = SmileProjectTeamRelation.getNew();
smileProjectTeamRelation.setProjectId(param.getProjectId());
smileProjectTeamRelation.setTeamId(teamId);
......@@ -136,12 +137,12 @@ public class SmileVolunteersProjectServiceImpl extends ServiceImpl<SmileVoluntee
private SmileVolunteersProject copySmileVolunteersProject(SmileVPParam source, LocalDateTime ct, LocalDateTime ut) {
SmileVolunteersProject smileVolunteersProject = SmileVolunteersProject.getNew();
smileVolunteersProject.setProjectId(source.getProjectId());
smileVolunteersProject.setTitle(smileVolunteersProject.getTitle());
smileVolunteersProject.setTimeStart(LocalDateTime.parse(source.getTimeStart(), DTF_YMD_HMS));
smileVolunteersProject.setTimeEnd(LocalDateTime.parse(source.getTimeEnd(), DTF_YMD_HMS));
smileVolunteersProject.setAddress(smileVolunteersProject.getAddress());
smileVolunteersProject.setIntroduce(smileVolunteersProject.getIntroduce());
smileVolunteersProject.setImg(smileVolunteersProject.getImg());
smileVolunteersProject.setTitle(source.getTitle());
smileVolunteersProject.setTimeStart(LocalDateTime.parse(source.getTimeStart()+" 00:00:00",DTF_YMD_HMS));
smileVolunteersProject.setTimeEnd(LocalDateTime.parse(source.getTimeEnd()+" 00:00:00",DTF_YMD_HMS));
smileVolunteersProject.setAddress(source.getAddress());
smileVolunteersProject.setIntroduce(source.getIntroduce());
smileVolunteersProject.setImg(source.getImg());
if (ct != null) {
smileVolunteersProject.setCreatedAt(ct);
}
......
......@@ -5,7 +5,7 @@ CREATE TABLE `smile_volunteers`
`uid` varchar(64) DEFAULT '' COMMENT '用户id',
`project_id` varchar(64) DEFAULT '' COMMENT '活动id',
`name` varchar(32) DEFAULT '' COMMENT '姓名',
`img` varchar(128) DEFAULT '' COMMENT '头像',
`img` varchar(256) DEFAULT '' COMMENT '头像',
`id_card` varchar(32) DEFAULT '' COMMENT '证件号',
`sex` tinyint(2) DEFAULT 0 COMMENT '性别[0-未知|1-男|2-女]',
`status` tinyint(2) DEFAULT 0 COMMENT '状态[0-待审核|1-审核通过|2-审核未通过]',
......@@ -40,7 +40,7 @@ CREATE TABLE `smile_volunteers_project`
`time_end` datetime DEFAULT NULL COMMENT '结束时间',
`address` varchar(256) DEFAULT '' COMMENT '活动地址',
`introduce` varchar(1028) DEFAULT '' COMMENT '活动介绍',
`img` varchar(64) DEFAULT '' COMMENT '封面图',
`img` varchar(256) DEFAULT '' COMMENT '封面图',
`comment` varchar(255) DEFAULT '' COMMENT '补充字段',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
......
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