修改填写打卡记录功能

This commit is contained in:
huangdeliang 2020-12-02 14:19:16 +08:00
parent 270da3950c
commit 7053e69a33
5 changed files with 201 additions and 130 deletions
stdiet-admin/src/main
filters/dev
java/com/stdiet/web/controller/custom
stdiet-custom/src/main
java/com/stdiet/custom/domain
resources/mapper/custom
stdiet-ui/src/views/custom/wxUserLog

@ -83,7 +83,7 @@ spring:
# 主库数据源
master:
url: jdbc:mysql://localhost:3306/stdiet_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
password: Ttj4fTtj4fAHUAHU
password: Ttj4fAHU
username: root
slave:
# 从数据源开关/默认关闭

@ -1,5 +1,6 @@
package com.stdiet.web.controller.custom;
import com.itextpdf.io.util.DateTimeUtil;
import com.stdiet.common.annotation.Log;
import com.stdiet.common.core.controller.BaseController;
import com.stdiet.common.core.domain.AjaxResult;
@ -7,7 +8,6 @@ import com.stdiet.common.core.page.TableDataInfo;
import com.stdiet.common.enums.BusinessType;
import com.stdiet.common.utils.StringUtils;
import com.stdiet.common.utils.poi.ExcelUtil;
import com.stdiet.custom.domain.SysOrder;
import com.stdiet.custom.domain.SysWxUserInfo;
import com.stdiet.custom.domain.SysWxUserLog;
import com.stdiet.custom.page.WxLogInfo;
@ -107,7 +107,7 @@ public class SysWxUserLogController extends BaseController {
}
@GetMapping(value = "/wx/logs/list")
public AjaxResult getLogs(SysWxUserLog sysWxUserLog ) {
public AjaxResult getLogs(SysWxUserLog sysWxUserLog) {
List<WxLogInfo> list = sysWxUserLogService.selectWxLogInfoList(sysWxUserLog);
return AjaxResult.success(list);
}
@ -116,12 +116,13 @@ public class SysWxUserLogController extends BaseController {
public AjaxResult addLog(@RequestBody SysWxUserLog sysWxUserLog) {
// 查询微信用户
SysWxUserInfo userInfo = sysWxUserInfoService.selectSysWxUserInfoById(sysWxUserLog.getOpenid());
if(StringUtils.isNull(userInfo)) {
if (StringUtils.isNull(userInfo)) {
return AjaxResult.error(5003, "没有用户信息");
}
// 提取有用值
sysWxUserLog.setAvatarUrl(userInfo.getAvatarUrl());
sysWxUserLog.setPhone(userInfo.getPhone());
sysWxUserLog.setLogTime(DateTimeUtil.getCurrentTimeDate());
return add(sysWxUserLog);
}
}

@ -65,6 +65,17 @@ public class SysWxUserLog extends BaseEntity
@Excel(name = "饮水量")
private Long water;
@JsonFormat(pattern = "yyyy-MM-dd")
private Date logTime;
public void setLogTime(Date logTime) {
this.logTime = logTime;
}
public Date getLogTime() {
return logTime;
}
public void setOpenid(String openid)
{
this.openid = openid;
@ -194,6 +205,7 @@ public class SysWxUserLog extends BaseEntity
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.append("logTime", getLogTime())
.toString();
}
}

@ -9,8 +9,10 @@
<result property="weight" column="weight" />
<result property="appid" column="appid" />
<result property="phone" column="phone" />
<result property="sleepTime" column="sleep_time" />
<result property="phone" column="phone" />
<result property="logTime" column="log_time" />
<result property="wakeupTime" column="wakeup_time" />
<result property="sleepTime" column="sleep_time" />
<result property="sport" column="sport" />
<result property="avatarUrl" column="avatar_url" />
<result property="diet" column="diet" />
@ -33,11 +35,11 @@
<result property="insomnia" column="insomnia" />
<result property="defecation" column="defecation" />
<result property="water" column="water" />
<result property="date" column="create_time" />
<result property="date" column="log_time" />
</resultMap>
<sql id="selectSysWxUserLogVo">
select openid, weight, appid, phone, sleep_time, wakeup_time, sport, avatar_url, diet, insomnia, defecation, water, create_by, create_time, update_by, update_time, remark from sys_wx_user_log
select openid, weight, appid, phone, log_time, sleep_time, wakeup_time, sport, avatar_url, diet, insomnia, defecation, water, create_by, create_time, update_by, update_time, remark from sys_wx_user_log
</sql>
<select id="selectSysWxUserLogList" parameterType="SysWxUserLog" resultMap="SysWxUserLogResult">
@ -70,6 +72,7 @@
<if test="weight != null">weight,</if>
<if test="appid != null">appid,</if>
<if test="phone != null">phone,</if>
<if test="logTime != null">log_time,</if>
<if test="sleepTime != null">sleep_time,</if>
<if test="wakeupTime != null">wakeup_time,</if>
<if test="sport != null">sport,</if>
@ -89,6 +92,7 @@
<if test="weight != null">#{weight},</if>
<if test="appid != null">#{appid},</if>
<if test="phone != null">#{phone},</if>
<if test="logTime != null">#{logTime},</if>
<if test="sleepTime != null">#{sleepTime},</if>
<if test="wakeupTime != null">#{wakeupTime},</if>
<if test="sport != null">#{sport},</if>
@ -111,6 +115,7 @@
<if test="weight != null">weight = #{weight},</if>
<if test="appid != null">appid = #{appid},</if>
<if test="phone != null">phone = #{phone},</if>
<if test="logTime != null">log_time = #{logTime},</if>
<if test="sleepTime != null">sleep_time = #{sleepTime},</if>
<if test="wakeupTime != null">wakeup_time = #{wakeupTime},</if>
<if test="sport != null">sport = #{sport},</if>

@ -37,38 +37,38 @@
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['custom:wxUserLog:edit']"
>修改
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['custom:wxUserLog:remove']"
>删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['custom:wxUserLog:export']"
>导出
</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['custom:wxUserLog:edit']"-->
<!-- >修改-->
<!-- </el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['custom:wxUserLog:remove']"-->
<!-- >删除-->
<!-- </el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- icon="el-icon-download"-->
<!-- size="mini"-->
<!-- @click="handleExport"-->
<!-- v-hasPermi="['custom:wxUserLog:export']"-->
<!-- >导出-->
<!-- </el-button>-->
<!-- </el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -87,10 +87,15 @@
</el-table-column>
<el-table-column label="微信应用" align="center" prop="appid" :formatter="appidFormat"/>
<el-table-column label="手机号" align="center" prop="phone"/>
<el-table-column label="打卡日期" align="center" prop="logTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.logTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="睡觉时间" align="center" prop="sleepTime" width="180">
<!-- <template slot-scope="scope">-->
<!-- <span>{{ parseTime(scope.row.sleepTime, '{y}-{m}-{d}') }}</span>-->
<!-- </template>-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ parseTime(scope.row.sleepTime, '{y}-{m}-{d}') }}</span>-->
<!-- </template>-->
</el-table-column>
<el-table-column label="起床时间" align="center" prop="wakeupTime" width="180">
<!-- <template slot-scope="scope">-->
@ -138,90 +143,128 @@
/>
<!-- 添加或修改微信用户记录对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="体重" prop="weight">
<el-input v-model="form.weight" placeholder="请输入体重"/>
</el-form-item>
<el-form-item label="微信appid" prop="appid">
<el-select v-model="form.appid" placeholder="请选择微信appid">
<el-option
v-for="dict in appidOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="电话" prop="phone">
<el-input v-model="form.phone" placeholder="请输入电话"/>
</el-form-item>
<el-form-item label="睡觉时间" prop="sleepTime">
<el-date-picker clearable size="small" style="width: 200px"
v-model="form.sleepTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择睡觉时间">
</el-date-picker>
</el-form-item>
<el-form-item label="起床时间" prop="wakeupTime">
<el-date-picker clearable size="small" style="width: 200px"
v-model="form.wakeupTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择起床时间">
</el-date-picker>
</el-form-item>
<el-form-item label="运动情况" prop="sport">
<el-select v-model="form.sport" placeholder="请选择运动情况">
<el-option
v-for="dict in sportOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="parseInt(dict.dictValue)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="用户头像" prop="avatarUrl">
<el-input v-model="form.avatarUrl" placeholder="请输入用户头像"/>
</el-form-item>
<el-form-item label="饮食情况" prop="diet">
<el-select v-model="form.diet" placeholder="请选择饮食情况">
<el-option
v-for="dict in dietOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="parseInt(dict.dictValue)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="熬夜失眠" prop="insomnia">
<el-select v-model="form.insomnia" placeholder="请选择熬夜失眠">
<el-option
v-for="dict in insomniaOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="排便情况" prop="defecation">
<el-select v-model="form.defecation" placeholder="请选择排便情况">
<el-option
v-for="dict in defecationOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="parseInt(dict.dictValue)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="饮水量" prop="water">
<el-input v-model="form.water" placeholder="请输入饮水量"/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
</el-form-item>
</el-form>
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-row :gutter="15">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-col :span="12">
<el-form-item label="体重" prop="weight">
<el-input v-model="form.weight" placeholder="请输入体重"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="电话" prop="phone">
<el-input v-model="form.phone" placeholder="请输入电话"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="打卡日期" prop="logTime">
<el-date-picker clearable size="small" style="width: 200px"
v-model="form.logTime"
type="date"
value-format="yyyy-MM-dd"
:picker-options="logTimePickerOptions"
placeholder="选择睡觉时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="睡觉时间" prop="sleepTime">
<el-time-select clearable size="small" style="width: 200px"
v-model="form.sleepTime"
:picker-options="{
start: '00:00',
step: '00:15',
end: '23:45'
}"
placeholder="选择睡觉时间">
</el-time-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="起床时间" prop="wakeupTime">
<el-time-select clearable size="small" style="width: 200px"
v-model="form.wakeupTime"
:picker-options="{
start: '00:00',
step: '00:15',
end: '23:45'
}"
placeholder="选择睡觉时间">
</el-time-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运动锻炼" prop="sport">
<el-select v-model="form.sport" placeholder="请选择运动情况">
<el-option
v-for="dict in sportOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="按食谱" prop="diet">
<el-select v-model="form.diet" placeholder="请选择饮食情况">
<el-option
v-for="dict in dietOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="熬夜失眠" prop="insomnia">
<el-select v-model="form.insomnia" placeholder="请选择熬夜失眠">
<el-option
v-for="dict in insomniaOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="起床排便" prop="defecation">
<el-select v-model="form.defecation" placeholder="请选择排便情况">
<el-option
v-for="dict in defecationOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="饮水量" prop="water">
<el-input v-model="form.water" placeholder="请输入饮水量"/>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="微信应用" prop="appid">
<el-select v-model="form.appid" placeholder="请选择微信appid">
<el-option
v-for="dict in appidOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
</el-form-item>
</el-col>
</el-form>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
@ -282,7 +325,12 @@
//
form: {},
//
rules: {}
rules: {},
logTimePickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now();
},
},
};
},
created() {
@ -340,10 +388,13 @@
},
//
reset() {
const defaultAppidType = this.appidOptions.find(opt => opt.remark === 'default');
this.form = {
id: null,
openid: null,
weight: null,
appid: null,
appid: defaultAppidType ? defaultAppidType.dictValue : null,
phone: null,
sleepTime: null,
wakeupTime: null,
@ -357,7 +408,8 @@
createTime: null,
updateBy: null,
updateTime: null,
remark: null
remark: null,
logTime: null
};
this.resetForm("form");
},
@ -397,7 +449,8 @@
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.openid != null) {
console.log(this.form)
if (this.form.id != null) {
updateWxUserLog(this.form).then(response => {
if (response.code === 200) {
this.msgSuccess("修改成功");