调整后台

This commit is contained in:
huangdeliang 2020-11-29 08:49:16 +08:00
parent a3a8fae363
commit b747473858
24 changed files with 2552 additions and 64 deletions

View File

@ -769,11 +769,11 @@ create table sys_order (
drop table if exists sys_wx_user_info; drop table if exists sys_wx_user_info;
create table sys_wx_user_info ( create table sys_wx_user_info (
openid varchar(100) not null comment '微信openid', openid varchar(100) not null comment '微信openid',
appid varchar(100) comment '微信appid',
nick_name varchar(30) comment '昵称', nick_name varchar(30) comment '昵称',
phone varchar(30) comment '电话', phone varchar(30) comment '电话',
avatar_url varchar(255) comment '用户头像', avatar_url varchar(255) comment '用户头像',
gender tinyint comment '性别', sex char(1) comment '用户性别0男 1女 2未知',
path varchar(255) comment '文件路径',
city varchar(16) comment '城市', city varchar(16) comment '城市',
province varchar(16) comment '省份', province varchar(16) comment '省份',
country varchar(16) comment '国家', country varchar(16) comment '国家',
@ -790,14 +790,17 @@ create table sys_wx_user_info (
-- ---------------------------- -- ----------------------------
drop table if exists sys_wx_user_log; drop table if exists sys_wx_user_log;
create table sys_wx_user_log ( create table sys_wx_user_log (
openid varchar(100) not null comment '微信openid', openid varchar(100) not null default 'manual' comment '微信openid',
appid varchar(100) comment '微信appid',
weight decimal(10,2) comment '体重', weight decimal(10,2) comment '体重',
phone varchar(30) comment '电话',
sleep_time datetime comment '睡觉时间', sleep_time datetime comment '睡觉时间',
avatar_url varchar(255) comment '用户头像',
wakeup_time datetime comment '起床时间', wakeup_time datetime comment '起床时间',
sport tinyint comment '运动情况', sport char(1) comment '运动情况Y是 N否',
diet tinyint comment '饮食情况', diet char(1) comment '饮食情况Y是 N否',
sleep_quality tinyint comment '睡眠质量', insomnia char(1) comment '熬夜失眠Y是 N否',
defecation tinyint comment '排便情况', defecation char(1) comment '排便情况',
water tinyint comment '饮水量', water tinyint comment '饮水量',
create_by varchar(64) default '' comment '创建者', create_by varchar(64) default '' comment '创建者',
create_time datetime comment '创建时间', create_time datetime comment '创建时间',

22
sql/wxuser/info.sql Normal file
View File

@ -0,0 +1,22 @@
-- 菜单 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('微信用户', '2039', '1', 'info', 'custom/wxUserInfo/index', 1, 0, 'C', '0', '0', 'custom:info:list', 'wechat', 'wonder', '2020-11-28', 'wonder', '2020-11-28', '微信用户菜单');
-- 按钮父菜单ID
SELECT @parentId := LAST_INSERT_ID();
-- 按钮 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('微信用户查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', 'custom:info:query', '#', 'wonder', '2020-11-28', 'wonder', '2020-11-28', '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('微信用户新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', 'custom:info:add', '#', 'wonder', '2020-11-28', 'wonder', '2020-11-28', '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('微信用户修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', 'custom:info:edit', '#', 'wonder', '2020-11-28', 'wonder', '2020-11-28', '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('微信用户删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', 'custom:info:remove', '#', 'wonder', '2020-11-28', 'wonder', '2020-11-28', '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('微信用户导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', 'custom:info:export', '#', 'wonder', '2020-11-28', 'wonder', '2020-11-28', '');

22
sql/wxuser/log.sql Normal file
View File

@ -0,0 +1,22 @@
-- 菜单 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('微信用户记录', '2039', '1', 'log', 'custom/wxUserLog/index', 1, 0, 'C', '0', '0', 'custom:log:list', 'log', 'wonder', '2020-11-28', 'wonder', '2020-11-28', '微信用户记录菜单');
-- 按钮父菜单ID
SELECT @parentId := LAST_INSERT_ID();
-- 按钮 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('微信用户记录查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', 'custom:log:query', '#', 'wonder', '2020-11-28', 'wonder', '2020-11-28', '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('微信用户记录新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', 'custom:log:add', '#', 'wonder', '2020-11-28', 'wonder', '2020-11-28', '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('微信用户记录修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', 'custom:log:edit', '#', 'wonder', '2020-11-28', 'wonder', '2020-11-28', '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('微信用户记录删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', 'custom:log:remove', '#', 'wonder', '2020-11-28', 'wonder', '2020-11-28', '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('微信用户记录导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', 'custom:log:export', '#', 'wonder', '2020-11-28', 'wonder', '2020-11-28', '');

View File

@ -0,0 +1,111 @@
package com.stdiet.web.controller.custom;
import java.util.List;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.stdiet.common.annotation.Log;
import com.stdiet.common.core.controller.BaseController;
import com.stdiet.common.core.domain.AjaxResult;
import com.stdiet.common.enums.BusinessType;
import com.stdiet.custom.domain.SysWxUserInfo;
import com.stdiet.custom.service.ISysWxUserInfoService;
import com.stdiet.common.utils.poi.ExcelUtil;
import com.stdiet.common.core.page.TableDataInfo;
/**
* 微信用户Controller
*
* @author wonder
* @date 2020-11-28
*/
@RestController
@RequestMapping("/custom/wxUserInfo")
public class SysWxUserInfoController extends BaseController {
@Autowired
private ISysWxUserInfoService sysWxUserInfoService;
/**
* 查询微信用户列表
*/
@PreAuthorize("@ss.hasPermi('custom:wxUserInfo:list')")
@GetMapping("/list")
public TableDataInfo list(SysWxUserInfo sysWxUserInfo) {
startPage();
List<SysWxUserInfo> list = sysWxUserInfoService.selectSysWxUserInfoList(sysWxUserInfo);
return getDataTable(list);
}
/**
* 导出微信用户列表
*/
@PreAuthorize("@ss.hasPermi('custom:wxUserInfo:export')")
@Log(title = "微信用户", businessType = BusinessType.EXPORT)
@GetMapping("/export")
public AjaxResult export(SysWxUserInfo sysWxUserInfo) {
List<SysWxUserInfo> list = sysWxUserInfoService.selectSysWxUserInfoList(sysWxUserInfo);
ExcelUtil<SysWxUserInfo> util = new ExcelUtil<SysWxUserInfo>(SysWxUserInfo.class);
return util.exportExcel(list, "wxUserInfo");
}
/**
* 获取微信用户详细信息
*/
@PreAuthorize("@ss.hasPermi('custom:wxUserInfo:query')")
@GetMapping(value = "/{openid}")
public AjaxResult getInfo(@PathVariable("openid") String openid) {
return AjaxResult.success(sysWxUserInfoService.selectSysWxUserInfoById(openid));
}
/**
* 新增微信用户
*/
@PreAuthorize("@ss.hasPermi('custom:wxUserInfo:add')")
@Log(title = "微信用户", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SysWxUserInfo sysWxUserInfo) {
return toAjax(sysWxUserInfoService.insertSysWxUserInfo(sysWxUserInfo));
}
/**
* 修改微信用户
*/
@PreAuthorize("@ss.hasPermi('custom:wxUserInfo:edit')")
@Log(title = "微信用户", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SysWxUserInfo sysWxUserInfo) {
return toAjax(sysWxUserInfoService.updateSysWxUserInfo(sysWxUserInfo));
}
/**
* 删除微信用户
*/
@PreAuthorize("@ss.hasPermi('custom:wxUserInfo:remove')")
@Log(title = "微信用户", businessType = BusinessType.DELETE)
@DeleteMapping("/{openids}")
public AjaxResult remove(@PathVariable String[] openids) {
return toAjax(sysWxUserInfoService.deleteSysWxUserInfoByIds(openids));
}
@PostMapping("/wx/adduser")
public AjaxResult addUser(@RequestBody SysWxUserInfo sysWxUserInfo) {
SysWxUserInfo userInfo = sysWxUserInfoService.selectSysWxUserInfoById(sysWxUserInfo.getOpenid());
int resultCode = 0;
if (userInfo == null) {
resultCode = sysWxUserInfoService.insertSysWxUserInfo(sysWxUserInfo);
} else {
sysWxUserInfo.setPhone(userInfo.getPhone());
resultCode = sysWxUserInfoService.updateSysWxUserInfo(sysWxUserInfo);
}
return toAjax(resultCode);
}
}

View File

@ -0,0 +1,111 @@
package com.stdiet.web.controller.custom;
import java.util.List;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.stdiet.common.annotation.Log;
import com.stdiet.common.core.controller.BaseController;
import com.stdiet.common.core.domain.AjaxResult;
import com.stdiet.common.enums.BusinessType;
import com.stdiet.custom.domain.SysWxUserLog;
import com.stdiet.custom.service.ISysWxUserLogService;
import com.stdiet.common.utils.poi.ExcelUtil;
import com.stdiet.common.core.page.TableDataInfo;
/**
* 微信用户记录Controller
*
* @author wonder
* @date 2020-11-28
*/
@RestController
@RequestMapping("/custom/wxUserLog")
public class SysWxUserLogController extends BaseController
{
@Autowired
private ISysWxUserLogService sysWxUserLogService;
/**
* 查询微信用户记录列表
*/
@PreAuthorize("@ss.hasPermi('custom:wxUserLog:list')")
@GetMapping("/list")
public TableDataInfo list(SysWxUserLog sysWxUserLog)
{
startPage();
List<SysWxUserLog> list = sysWxUserLogService.selectSysWxUserLogList(sysWxUserLog);
return getDataTable(list);
}
/**
* 导出微信用户记录列表
*/
@PreAuthorize("@ss.hasPermi('custom:wxUserLog:export')")
@Log(title = "微信用户记录", businessType = BusinessType.EXPORT)
@GetMapping("/export")
public AjaxResult export(SysWxUserLog sysWxUserLog)
{
List<SysWxUserLog> list = sysWxUserLogService.selectSysWxUserLogList(sysWxUserLog);
ExcelUtil<SysWxUserLog> util = new ExcelUtil<SysWxUserLog>(SysWxUserLog.class);
return util.exportExcel(list, "wxUserLog");
}
/**
* 获取微信用户记录详细信息
*/
@PreAuthorize("@ss.hasPermi('custom:wxUserLog:query')")
@GetMapping(value = "/{openid}")
public AjaxResult getInfo(@PathVariable("openid") String openid)
{
return AjaxResult.success(sysWxUserLogService.selectSysWxUserLogById(openid));
}
/**
* 新增微信用户记录
*/
@PreAuthorize("@ss.hasPermi('custom:wxUserLog:add')")
@Log(title = "微信用户记录", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SysWxUserLog sysWxUserLog)
{
return toAjax(sysWxUserLogService.insertSysWxUserLog(sysWxUserLog));
}
/**
* 修改微信用户记录
*/
@PreAuthorize("@ss.hasPermi('custom:wxUserLog:edit')")
@Log(title = "微信用户记录", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SysWxUserLog sysWxUserLog)
{
return toAjax(sysWxUserLogService.updateSysWxUserLog(sysWxUserLog));
}
/**
* 删除微信用户记录
*/
@PreAuthorize("@ss.hasPermi('custom:wxUserLog:remove')")
@Log(title = "微信用户记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{openids}")
public AjaxResult remove(@PathVariable String[] openids)
{
return toAjax(sysWxUserLogService.deleteSysWxUserLogByIds(openids));
}
@GetMapping(value = "/wx/logs/{openid}")
public TableDataInfo getLogInfo(@PathVariable("openid") String openid)
{
SysWxUserLog sysWxUserLog = new SysWxUserLog();
sysWxUserLog.setOpenid(openid);
List<SysWxUserLog> list = sysWxUserLogService.selectSysWxUserLogList(sysWxUserLog);
return getDataTable(list);
}
}

View File

@ -220,4 +220,138 @@ public class SysContract extends BaseEntity {
.toString(); .toString();
} }
/**
* 微信用户对象 sys_wx_user_info
*
* @author wonder
* @date 2020-11-28
*/
public static class SysWxUserInfo extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 微信openid */
private String openid;
/** 昵称 */
@Excel(name = "昵称")
private String nickName;
/** 电话 */
@Excel(name = "电话")
private String phone;
/** 用户头像 */
@Excel(name = "用户头像")
private String avatarUrl;
/** 用户性别0男 1女 2未知 */
@Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
private String sex;
/** 城市 */
@Excel(name = "城市")
private String city;
/** 省份 */
@Excel(name = "省份")
private String province;
/** 国家 */
@Excel(name = "国家")
private String country;
public void setOpenid(String openid)
{
this.openid = openid;
}
public String getOpenid()
{
return openid;
}
public void setNickName(String nickName)
{
this.nickName = nickName;
}
public String getNickName()
{
return nickName;
}
public void setPhone(String phone)
{
this.phone = phone;
}
public String getPhone()
{
return phone;
}
public void setAvatarUrl(String avatarUrl)
{
this.avatarUrl = avatarUrl;
}
public String getAvatarUrl()
{
return avatarUrl;
}
public void setSex(String sex)
{
this.sex = sex;
}
public String getSex()
{
return sex;
}
public void setCity(String city)
{
this.city = city;
}
public String getCity()
{
return city;
}
public void setProvince(String province)
{
this.province = province;
}
public String getProvince()
{
return province;
}
public void setCountry(String country)
{
this.country = country;
}
public String getCountry()
{
return country;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("openid", getOpenid())
.append("nickName", getNickName())
.append("phone", getPhone())
.append("avatarUrl", getAvatarUrl())
.append("sex", getSex())
.append("city", getCity())
.append("province", getProvince())
.append("country", getCountry())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}
} }

View File

@ -42,6 +42,14 @@ public class SysOrder extends BaseEntity {
@Excel(name = "金额") @Excel(name = "金额")
private BigDecimal amount; private BigDecimal amount;
private BigDecimal weight;
private String status;
private Date startTime;
private Date pauseTime;
/** /**
* 收款方式 * 收款方式
*/ */
@ -173,6 +181,40 @@ public class SysOrder extends BaseEntity {
@Excel(name = "成交时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @Excel(name = "成交时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date orderTime; private Date orderTime;
public Date getStartTime() {
return startTime;
}
public BigDecimal getWeight() {
return weight;
}
public Date getPauseTime() {
return pauseTime;
}
public String getStatus() {
return status;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public void setPauseTime(Date pauseTime) {
this.pauseTime = pauseTime;
}
public void setStatus(String status) {
this.status = status;
}
public void setWeight(BigDecimal weight) {
this.weight = weight;
}
public String getServeTime() { public String getServeTime() {
return serveTime; return serveTime;
} }
@ -442,6 +484,10 @@ public class SysOrder extends BaseEntity {
.append("serveTimeId", getServeTimeId()) .append("serveTimeId", getServeTimeId())
.append("serveTime", getServeTime()) .append("serveTime", getServeTime())
.append("reviewStatus", getReviewStatus()) .append("reviewStatus", getReviewStatus())
.append("status", getStatus())
.append("startTime", getStartTime())
.append("pauseTime", getPauseTime())
.append("weight", getWeight())
.toString(); .toString();
} }
} }

View File

@ -0,0 +1,154 @@
package com.stdiet.custom.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.stdiet.common.annotation.Excel;
import com.stdiet.common.core.domain.BaseEntity;
/**
* 微信用户对象 sys_wx_user_info
*
* @author wonder
* @date 2020-11-28
*/
public class SysWxUserInfo extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 微信openid */
private String openid;
/** 昵称 */
@Excel(name = "昵称")
private String nickName;
/** 微信appid */
@Excel(name = "微信appid")
private String appid;
/** 电话 */
@Excel(name = "电话")
private String phone;
/** 用户头像 */
@Excel(name = "用户头像")
private String avatarUrl;
/** 用户性别0男 1女 2未知 */
@Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
private String sex;
/** 城市 */
@Excel(name = "城市")
private String city;
/** 省份 */
@Excel(name = "省份")
private String province;
/** 国家 */
@Excel(name = "国家")
private String country;
public void setOpenid(String openid)
{
this.openid = openid;
}
public String getOpenid()
{
return openid;
}
public void setNickName(String nickName)
{
this.nickName = nickName;
}
public String getNickName()
{
return nickName;
}
public void setAppid(String appid)
{
this.appid = appid;
}
public String getAppid()
{
return appid;
}
public void setPhone(String phone)
{
this.phone = phone;
}
public String getPhone()
{
return phone;
}
public void setAvatarUrl(String avatarUrl)
{
this.avatarUrl = avatarUrl;
}
public String getAvatarUrl()
{
return avatarUrl;
}
public void setSex(String sex)
{
this.sex = sex;
}
public String getSex()
{
return sex;
}
public void setCity(String city)
{
this.city = city;
}
public String getCity()
{
return city;
}
public void setProvince(String province)
{
this.province = province;
}
public String getProvince()
{
return province;
}
public void setCountry(String country)
{
this.country = country;
}
public String getCountry()
{
return country;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("openid", getOpenid())
.append("nickName", getNickName())
.append("appid", getAppid())
.append("phone", getPhone())
.append("avatarUrl", getAvatarUrl())
.append("sex", getSex())
.append("city", getCity())
.append("province", getProvince())
.append("country", getCountry())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

View File

@ -0,0 +1,201 @@
package com.stdiet.custom.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.stdiet.common.annotation.Excel;
import com.stdiet.common.core.domain.BaseEntity;
/**
* 微信用户记录对象 sys_wx_user_log
*
* @author wonder
* @date 2020-11-28
*/
public class SysWxUserLog extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 微信openid */
private String openid;
/** 体重 */
@Excel(name = "体重")
private BigDecimal weight;
/** 微信appid */
@Excel(name = "微信appid")
private String appid;
/** 电话 */
@Excel(name = "电话")
private String phone;
/** 睡觉时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "睡觉时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date sleepTime;
/** 起床时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "起床时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date wakeupTime;
/** 运动情况 */
@Excel(name = "运动情况")
private Long sport;
/** 用户头像 */
@Excel(name = "用户头像")
private String avatarUrl;
/** 饮食情况 */
@Excel(name = "饮食情况")
private Long diet;
/** 熬夜失眠Y是 N否 */
@Excel(name = "熬夜失眠", readConverterExp = "Y=是,N=否")
private String insomnia;
/** 排便情况 */
@Excel(name = "排便情况")
private Long defecation;
/** 饮水量 */
@Excel(name = "饮水量")
private Long water;
public void setOpenid(String openid)
{
this.openid = openid;
}
public String getOpenid()
{
return openid;
}
public void setWeight(BigDecimal weight)
{
this.weight = weight;
}
public BigDecimal getWeight()
{
return weight;
}
public void setAppid(String appid)
{
this.appid = appid;
}
public String getAppid()
{
return appid;
}
public void setPhone(String phone)
{
this.phone = phone;
}
public String getPhone()
{
return phone;
}
public void setSleepTime(Date sleepTime)
{
this.sleepTime = sleepTime;
}
public Date getSleepTime()
{
return sleepTime;
}
public void setWakeupTime(Date wakeupTime)
{
this.wakeupTime = wakeupTime;
}
public Date getWakeupTime()
{
return wakeupTime;
}
public void setSport(Long sport)
{
this.sport = sport;
}
public Long getSport()
{
return sport;
}
public void setAvatarUrl(String avatarUrl)
{
this.avatarUrl = avatarUrl;
}
public String getAvatarUrl()
{
return avatarUrl;
}
public void setDiet(Long diet)
{
this.diet = diet;
}
public Long getDiet()
{
return diet;
}
public void setInsomnia(String insomnia)
{
this.insomnia = insomnia;
}
public String getInsomnia()
{
return insomnia;
}
public void setDefecation(Long defecation)
{
this.defecation = defecation;
}
public Long getDefecation()
{
return defecation;
}
public void setWater(Long water)
{
this.water = water;
}
public Long getWater()
{
return water;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("openid", getOpenid())
.append("weight", getWeight())
.append("appid", getAppid())
.append("phone", getPhone())
.append("sleepTime", getSleepTime())
.append("wakeupTime", getWakeupTime())
.append("sport", getSport())
.append("avatarUrl", getAvatarUrl())
.append("diet", getDiet())
.append("insomnia", getInsomnia())
.append("defecation", getDefecation())
.append("water", getWater())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

View File

@ -0,0 +1,61 @@
package com.stdiet.custom.mapper;
import java.util.List;
import com.stdiet.custom.domain.SysWxUserInfo;
/**
* 微信用户Mapper接口
*
* @author wonder
* @date 2020-11-28
*/
public interface SysWxUserInfoMapper
{
/**
* 查询微信用户
*
* @param openid 微信用户ID
* @return 微信用户
*/
public SysWxUserInfo selectSysWxUserInfoById(String openid);
/**
* 查询微信用户列表
*
* @param sysWxUserInfo 微信用户
* @return 微信用户集合
*/
public List<SysWxUserInfo> selectSysWxUserInfoList(SysWxUserInfo sysWxUserInfo);
/**
* 新增微信用户
*
* @param sysWxUserInfo 微信用户
* @return 结果
*/
public int insertSysWxUserInfo(SysWxUserInfo sysWxUserInfo);
/**
* 修改微信用户
*
* @param sysWxUserInfo 微信用户
* @return 结果
*/
public int updateSysWxUserInfo(SysWxUserInfo sysWxUserInfo);
/**
* 删除微信用户
*
* @param openid 微信用户ID
* @return 结果
*/
public int deleteSysWxUserInfoById(String openid);
/**
* 批量删除微信用户
*
* @param openids 需要删除的数据ID
* @return 结果
*/
public int deleteSysWxUserInfoByIds(String[] openids);
}

View File

@ -0,0 +1,61 @@
package com.stdiet.custom.mapper;
import java.util.List;
import com.stdiet.custom.domain.SysWxUserLog;
/**
* 微信用户记录Mapper接口
*
* @author wonder
* @date 2020-11-28
*/
public interface SysWxUserLogMapper
{
/**
* 查询微信用户记录
*
* @param openid 微信用户记录ID
* @return 微信用户记录
*/
public SysWxUserLog selectSysWxUserLogById(String openid);
/**
* 查询微信用户记录列表
*
* @param sysWxUserLog 微信用户记录
* @return 微信用户记录集合
*/
public List<SysWxUserLog> selectSysWxUserLogList(SysWxUserLog sysWxUserLog);
/**
* 新增微信用户记录
*
* @param sysWxUserLog 微信用户记录
* @return 结果
*/
public int insertSysWxUserLog(SysWxUserLog sysWxUserLog);
/**
* 修改微信用户记录
*
* @param sysWxUserLog 微信用户记录
* @return 结果
*/
public int updateSysWxUserLog(SysWxUserLog sysWxUserLog);
/**
* 删除微信用户记录
*
* @param openid 微信用户记录ID
* @return 结果
*/
public int deleteSysWxUserLogById(String openid);
/**
* 批量删除微信用户记录
*
* @param openids 需要删除的数据ID
* @return 结果
*/
public int deleteSysWxUserLogByIds(String[] openids);
}

View File

@ -0,0 +1,61 @@
package com.stdiet.custom.service;
import java.util.List;
import com.stdiet.custom.domain.SysWxUserInfo;
/**
* 微信用户Service接口
*
* @author wonder
* @date 2020-11-28
*/
public interface ISysWxUserInfoService
{
/**
* 查询微信用户
*
* @param openid 微信用户ID
* @return 微信用户
*/
public SysWxUserInfo selectSysWxUserInfoById(String openid);
/**
* 查询微信用户列表
*
* @param sysWxUserInfo 微信用户
* @return 微信用户集合
*/
public List<SysWxUserInfo> selectSysWxUserInfoList(SysWxUserInfo sysWxUserInfo);
/**
* 新增微信用户
*
* @param sysWxUserInfo 微信用户
* @return 结果
*/
public int insertSysWxUserInfo(SysWxUserInfo sysWxUserInfo);
/**
* 修改微信用户
*
* @param sysWxUserInfo 微信用户
* @return 结果
*/
public int updateSysWxUserInfo(SysWxUserInfo sysWxUserInfo);
/**
* 批量删除微信用户
*
* @param openids 需要删除的微信用户ID
* @return 结果
*/
public int deleteSysWxUserInfoByIds(String[] openids);
/**
* 删除微信用户信息
*
* @param openid 微信用户ID
* @return 结果
*/
public int deleteSysWxUserInfoById(String openid);
}

View File

@ -0,0 +1,61 @@
package com.stdiet.custom.service;
import java.util.List;
import com.stdiet.custom.domain.SysWxUserLog;
/**
* 微信用户记录Service接口
*
* @author wonder
* @date 2020-11-28
*/
public interface ISysWxUserLogService
{
/**
* 查询微信用户记录
*
* @param openid 微信用户记录ID
* @return 微信用户记录
*/
public SysWxUserLog selectSysWxUserLogById(String openid);
/**
* 查询微信用户记录列表
*
* @param sysWxUserLog 微信用户记录
* @return 微信用户记录集合
*/
public List<SysWxUserLog> selectSysWxUserLogList(SysWxUserLog sysWxUserLog);
/**
* 新增微信用户记录
*
* @param sysWxUserLog 微信用户记录
* @return 结果
*/
public int insertSysWxUserLog(SysWxUserLog sysWxUserLog);
/**
* 修改微信用户记录
*
* @param sysWxUserLog 微信用户记录
* @return 结果
*/
public int updateSysWxUserLog(SysWxUserLog sysWxUserLog);
/**
* 批量删除微信用户记录
*
* @param openids 需要删除的微信用户记录ID
* @return 结果
*/
public int deleteSysWxUserLogByIds(String[] openids);
/**
* 删除微信用户记录信息
*
* @param openid 微信用户记录ID
* @return 结果
*/
public int deleteSysWxUserLogById(String openid);
}

View File

@ -0,0 +1,96 @@
package com.stdiet.custom.service.impl;
import java.util.List;
import com.stdiet.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.stdiet.custom.mapper.SysWxUserInfoMapper;
import com.stdiet.custom.domain.SysWxUserInfo;
import com.stdiet.custom.service.ISysWxUserInfoService;
/**
* 微信用户Service业务层处理
*
* @author wonder
* @date 2020-11-28
*/
@Service
public class SysWxUserInfoServiceImpl implements ISysWxUserInfoService
{
@Autowired
private SysWxUserInfoMapper sysWxUserInfoMapper;
/**
* 查询微信用户
*
* @param openid 微信用户ID
* @return 微信用户
*/
@Override
public SysWxUserInfo selectSysWxUserInfoById(String openid)
{
return sysWxUserInfoMapper.selectSysWxUserInfoById(openid);
}
/**
* 查询微信用户列表
*
* @param sysWxUserInfo 微信用户
* @return 微信用户
*/
@Override
public List<SysWxUserInfo> selectSysWxUserInfoList(SysWxUserInfo sysWxUserInfo)
{
return sysWxUserInfoMapper.selectSysWxUserInfoList(sysWxUserInfo);
}
/**
* 新增微信用户
*
* @param sysWxUserInfo 微信用户
* @return 结果
*/
@Override
public int insertSysWxUserInfo(SysWxUserInfo sysWxUserInfo)
{
sysWxUserInfo.setCreateTime(DateUtils.getNowDate());
return sysWxUserInfoMapper.insertSysWxUserInfo(sysWxUserInfo);
}
/**
* 修改微信用户
*
* @param sysWxUserInfo 微信用户
* @return 结果
*/
@Override
public int updateSysWxUserInfo(SysWxUserInfo sysWxUserInfo)
{
sysWxUserInfo.setUpdateTime(DateUtils.getNowDate());
return sysWxUserInfoMapper.updateSysWxUserInfo(sysWxUserInfo);
}
/**
* 批量删除微信用户
*
* @param openids 需要删除的微信用户ID
* @return 结果
*/
@Override
public int deleteSysWxUserInfoByIds(String[] openids)
{
return sysWxUserInfoMapper.deleteSysWxUserInfoByIds(openids);
}
/**
* 删除微信用户信息
*
* @param openid 微信用户ID
* @return 结果
*/
@Override
public int deleteSysWxUserInfoById(String openid)
{
return sysWxUserInfoMapper.deleteSysWxUserInfoById(openid);
}
}

View File

@ -0,0 +1,96 @@
package com.stdiet.custom.service.impl;
import java.util.List;
import com.stdiet.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.stdiet.custom.mapper.SysWxUserLogMapper;
import com.stdiet.custom.domain.SysWxUserLog;
import com.stdiet.custom.service.ISysWxUserLogService;
/**
* 微信用户记录Service业务层处理
*
* @author wonder
* @date 2020-11-28
*/
@Service
public class SysWxUserLogServiceImpl implements ISysWxUserLogService
{
@Autowired
private SysWxUserLogMapper sysWxUserLogMapper;
/**
* 查询微信用户记录
*
* @param openid 微信用户记录ID
* @return 微信用户记录
*/
@Override
public SysWxUserLog selectSysWxUserLogById(String openid)
{
return sysWxUserLogMapper.selectSysWxUserLogById(openid);
}
/**
* 查询微信用户记录列表
*
* @param sysWxUserLog 微信用户记录
* @return 微信用户记录
*/
@Override
public List<SysWxUserLog> selectSysWxUserLogList(SysWxUserLog sysWxUserLog)
{
return sysWxUserLogMapper.selectSysWxUserLogList(sysWxUserLog);
}
/**
* 新增微信用户记录
*
* @param sysWxUserLog 微信用户记录
* @return 结果
*/
@Override
public int insertSysWxUserLog(SysWxUserLog sysWxUserLog)
{
sysWxUserLog.setCreateTime(DateUtils.getNowDate());
return sysWxUserLogMapper.insertSysWxUserLog(sysWxUserLog);
}
/**
* 修改微信用户记录
*
* @param sysWxUserLog 微信用户记录
* @return 结果
*/
@Override
public int updateSysWxUserLog(SysWxUserLog sysWxUserLog)
{
sysWxUserLog.setUpdateTime(DateUtils.getNowDate());
return sysWxUserLogMapper.updateSysWxUserLog(sysWxUserLog);
}
/**
* 批量删除微信用户记录
*
* @param openids 需要删除的微信用户记录ID
* @return 结果
*/
@Override
public int deleteSysWxUserLogByIds(String[] openids)
{
return sysWxUserLogMapper.deleteSysWxUserLogByIds(openids);
}
/**
* 删除微信用户记录信息
*
* @param openid 微信用户记录ID
* @return 结果
*/
@Override
public int deleteSysWxUserLogById(String openid)
{
return sysWxUserLogMapper.deleteSysWxUserLogById(openid);
}
}

View File

@ -9,6 +9,10 @@
<result property="customer" column="customer"/> <result property="customer" column="customer"/>
<result property="phone" column="phone"/> <result property="phone" column="phone"/>
<result property="amount" column="amount"/> <result property="amount" column="amount"/>
<result property="weight" column="weight"/>
<result property="startTime" column="start_time"/>
<result property="pauseTime" column="pause_time"/>
<result property="status" column="status"/>
<result property="payTypeId" column="pay_type_id"/> <result property="payTypeId" column="pay_type_id"/>
<result property="payType" column="pay_type"/> <result property="payType" column="pay_type"/>
<result property="preSaleId" column="pre_sale_id"/> <result property="preSaleId" column="pre_sale_id"/>
@ -34,7 +38,10 @@
</resultMap> </resultMap>
<sql id="selectSysOrderVo"> <sql id="selectSysOrderVo">
select o.order_id, o.review_status, o.customer, o.phone, o.amount, ser.dict_label as serve_time, o.serve_time_id, o.pay_type_id, pay.dict_label as pay_type, o.pre_sale_id, o.create_by, o.create_time, o.after_sale_id, o.update_by, o.update_time, o.nutritionist_id, o.remark, o.nutri_assis_id, o.account_id, acc.dict_label as account, o.planner_id, o.planner_assis_id, o.operator_id, o.operator_assis_id, o.recommender, o.order_time from sys_order o select o.order_id, o.review_status, o.customer, o.phone, o.amount, o.start_time, o.pause_time, o.status, o.weight, ser.dict_label as serve_time,
o.serve_time_id, o.pay_type_id, pay.dict_label as pay_type, o.pre_sale_id, o.create_by, o.create_time, o.after_sale_id, o.update_by, o.update_time,
o.nutritionist_id, o.remark, o.nutri_assis_id, o.account_id, acc.dict_label as account, o.planner_id, o.planner_assis_id, o.operator_id, o.operator_assis_id,
o.recommender, o.order_time from sys_order o
LEFT JOIN (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cus_pay_type') AS pay ON pay.dict_value = o.pay_type_id LEFT JOIN (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cus_pay_type') AS pay ON pay.dict_value = o.pay_type_id
LEFT JOIN (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cus_account') AS acc ON acc.dict_value = o.account_id LEFT JOIN (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cus_account') AS acc ON acc.dict_value = o.account_id
LEFT JOIN (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cus_serve_time') AS ser ON ser.dict_value = o.serve_time_id LEFT JOIN (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cus_serve_time') AS ser ON ser.dict_value = o.serve_time_id
@ -46,6 +53,7 @@
<if test="orderId != null and orderId != ''">and order_id = #{orderId}</if> <if test="orderId != null and orderId != ''">and order_id = #{orderId}</if>
<if test="customer != null and customer != ''">and customer = #{customer}</if> <if test="customer != null and customer != ''">and customer = #{customer}</if>
<if test="phone != null and phone != ''">and phone = #{phone}</if> <if test="phone != null and phone != ''">and phone = #{phone}</if>
<if test="status != null ">and status = #{status}</if>
<if test="payTypeId != null ">and pay_type_id = #{payTypeId}</if> <if test="payTypeId != null ">and pay_type_id = #{payTypeId}</if>
<if test="preSaleId != null ">and pre_sale_id = #{preSaleId}</if> <if test="preSaleId != null ">and pre_sale_id = #{preSaleId}</if>
<if test="afterSaleId != null ">and after_sale_id = #{afterSaleId}</if> <if test="afterSaleId != null ">and after_sale_id = #{afterSaleId}</if>
@ -70,6 +78,7 @@
<if test="orderId != null and orderId != ''">and order_id = #{orderId}</if> <if test="orderId != null and orderId != ''">and order_id = #{orderId}</if>
<if test="customer != null and customer != ''">and customer = #{customer}</if> <if test="customer != null and customer != ''">and customer = #{customer}</if>
<if test="phone != null and phone != ''">and phone = #{phone}</if> <if test="phone != null and phone != ''">and phone = #{phone}</if>
<if test="status != null ">and status = #{status}</if>
<if test="payTypeId != null ">and pay_type_id = #{payTypeId}</if> <if test="payTypeId != null ">and pay_type_id = #{payTypeId}</if>
<if test="preSaleId != null ">and pre_sale_id = #{preSaleId}</if> <if test="preSaleId != null ">and pre_sale_id = #{preSaleId}</if>
<if test="afterSaleId != null ">and after_sale_id = #{afterSaleId}</if> <if test="afterSaleId != null ">and after_sale_id = #{afterSaleId}</if>
@ -101,6 +110,10 @@
<if test="customer != null and customer != ''">customer,</if> <if test="customer != null and customer != ''">customer,</if>
<if test="phone != null">phone,</if> <if test="phone != null">phone,</if>
<if test="amount != null">amount,</if> <if test="amount != null">amount,</if>
<if test="status != null">status,</if>
<if test="pauseTime != null">pause_time,</if>
<if test="startTime != null">start_time,</if>
<if test="weight != null">weight,</if>
<if test="payTypeId != null">pay_type_id,</if> <if test="payTypeId != null">pay_type_id,</if>
<if test="preSaleId != null">pre_sale_id,</if> <if test="preSaleId != null">pre_sale_id,</if>
<if test="createBy != null">create_by,</if> <if test="createBy != null">create_by,</if>
@ -126,6 +139,10 @@
<if test="customer != null and customer != ''">#{customer},</if> <if test="customer != null and customer != ''">#{customer},</if>
<if test="phone != null">#{phone},</if> <if test="phone != null">#{phone},</if>
<if test="amount != null">#{amount},</if> <if test="amount != null">#{amount},</if>
<if test="status != null">#{status},</if>
<if test="pauseTime != null">#{pauseTime},</if>
<if test="startTime != null">#{startTime},</if>
<if test="weight != null">#{weight},</if>
<if test="payTypeId != null">#{payTypeId},</if> <if test="payTypeId != null">#{payTypeId},</if>
<if test="preSaleId != null">#{preSaleId},</if> <if test="preSaleId != null">#{preSaleId},</if>
<if test="createBy != null">#{createBy},</if> <if test="createBy != null">#{createBy},</if>
@ -154,6 +171,10 @@
<if test="customer != null and customer != ''">customer = #{customer},</if> <if test="customer != null and customer != ''">customer = #{customer},</if>
<if test="phone != null">phone = #{phone},</if> <if test="phone != null">phone = #{phone},</if>
<if test="amount != null">amount = #{amount},</if> <if test="amount != null">amount = #{amount},</if>
<if test="weight != null">weight = #{weight},</if>
<if test="status != null">status = #{status},</if>
<if test="pauseTime != null">pause_time = #{pauseTime},</if>
<if test="startTime != null">start_time = #{startTime},</if>
<if test="payTypeId != null">pay_type_id = #{payTypeId},</if> <if test="payTypeId != null">pay_type_id = #{payTypeId},</if>
<if test="preSaleId != null">pre_sale_id = #{preSaleId},</if> <if test="preSaleId != null">pre_sale_id = #{preSaleId},</if>
<if test="createBy != null">create_by = #{createBy},</if> <if test="createBy != null">create_by = #{createBy},</if>

View File

@ -0,0 +1,110 @@
<?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.stdiet.custom.mapper.SysWxUserInfoMapper">
<resultMap type="SysWxUserInfo" id="SysWxUserInfoResult">
<result property="openid" column="openid" />
<result property="nickName" column="nick_name" />
<result property="appid" column="appid" />
<result property="phone" column="phone" />
<result property="avatarUrl" column="avatar_url" />
<result property="sex" column="sex" />
<result property="city" column="city" />
<result property="province" column="province" />
<result property="country" column="country" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectSysWxUserInfoVo">
select openid, nick_name, appid, phone, avatar_url, sex, city, province, country, create_by, create_time, update_by, update_time, remark from sys_wx_user_info
</sql>
<select id="selectSysWxUserInfoList" parameterType="SysWxUserInfo" resultMap="SysWxUserInfoResult">
<include refid="selectSysWxUserInfoVo"/>
<where>
<if test="nickName != null and nickName != ''"> and nick_name like concat('%', #{nickName}, '%')</if>
<if test="appid != null and appid != ''"> and appid = #{appid}</if>
<if test="phone != null and phone != ''"> and phone = #{phone}</if>
<if test="sex != null and sex != ''"> and sex = #{sex}</if>
</where>
</select>
<select id="selectSysWxUserInfoById" parameterType="String" resultMap="SysWxUserInfoResult">
<include refid="selectSysWxUserInfoVo"/>
where openid = #{openid}
</select>
<insert id="insertSysWxUserInfo" parameterType="SysWxUserInfo">
insert into sys_wx_user_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="openid != null">openid,</if>
<if test="nickName != null">nick_name,</if>
<if test="appid != null">appid,</if>
<if test="phone != null">phone,</if>
<if test="avatarUrl != null">avatar_url,</if>
<if test="sex != null">sex,</if>
<if test="city != null">city,</if>
<if test="province != null">province,</if>
<if test="country != null">country,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="openid != null">#{openid},</if>
<if test="nickName != null">#{nickName},</if>
<if test="appid != null">#{appid},</if>
<if test="phone != null">#{phone},</if>
<if test="avatarUrl != null">#{avatarUrl},</if>
<if test="sex != null">#{sex},</if>
<if test="city != null">#{city},</if>
<if test="province != null">#{province},</if>
<if test="country != null">#{country},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateSysWxUserInfo" parameterType="SysWxUserInfo">
update sys_wx_user_info
<trim prefix="SET" suffixOverrides=",">
<if test="nickName != null">nick_name = #{nickName},</if>
<if test="appid != null">appid = #{appid},</if>
<if test="phone != null">phone = #{phone},</if>
<if test="avatarUrl != null">avatar_url = #{avatarUrl},</if>
<if test="sex != null">sex = #{sex},</if>
<if test="city != null">city = #{city},</if>
<if test="province != null">province = #{province},</if>
<if test="country != null">country = #{country},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where openid = #{openid}
</update>
<delete id="deleteSysWxUserInfoById" parameterType="String">
delete from sys_wx_user_info where openid = #{openid}
</delete>
<delete id="deleteSysWxUserInfoByIds" parameterType="String">
delete from sys_wx_user_info where openid in
<foreach item="openid" collection="array" open="(" separator="," close=")">
#{openid}
</foreach>
</delete>
</mapper>

View File

@ -0,0 +1,120 @@
<?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.stdiet.custom.mapper.SysWxUserLogMapper">
<resultMap type="SysWxUserLog" id="SysWxUserLogResult">
<result property="openid" column="openid" />
<result property="weight" column="weight" />
<result property="appid" column="appid" />
<result property="phone" column="phone" />
<result property="sleepTime" column="sleep_time" />
<result property="wakeupTime" column="wakeup_time" />
<result property="sport" column="sport" />
<result property="avatarUrl" column="avatar_url" />
<result property="diet" column="diet" />
<result property="insomnia" column="insomnia" />
<result property="defecation" column="defecation" />
<result property="water" column="water" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</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
</sql>
<select id="selectSysWxUserLogList" parameterType="SysWxUserLog" resultMap="SysWxUserLogResult">
<include refid="selectSysWxUserLogVo"/>
<where>
<if test="appid != null and appid != ''"> and appid = #{appid}</if>
<if test="phone != null and phone != ''"> and phone = #{phone}</if>
</where>
</select>
<select id="selectSysWxUserLogById" parameterType="String" resultMap="SysWxUserLogResult">
<include refid="selectSysWxUserLogVo"/>
where openid = #{openid}
</select>
<insert id="insertSysWxUserLog" parameterType="SysWxUserLog">
insert into sys_wx_user_log
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="openid != null">openid,</if>
<if test="weight != null">weight,</if>
<if test="appid != null">appid,</if>
<if test="phone != null">phone,</if>
<if test="sleepTime != null">sleep_time,</if>
<if test="wakeupTime != null">wakeup_time,</if>
<if test="sport != null">sport,</if>
<if test="avatarUrl != null">avatar_url,</if>
<if test="diet != null">diet,</if>
<if test="insomnia != null">insomnia,</if>
<if test="defecation != null">defecation,</if>
<if test="water != null">water,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="openid != null">#{openid},</if>
<if test="weight != null">#{weight},</if>
<if test="appid != null">#{appid},</if>
<if test="phone != null">#{phone},</if>
<if test="sleepTime != null">#{sleepTime},</if>
<if test="wakeupTime != null">#{wakeupTime},</if>
<if test="sport != null">#{sport},</if>
<if test="avatarUrl != null">#{avatarUrl},</if>
<if test="diet != null">#{diet},</if>
<if test="insomnia != null">#{insomnia},</if>
<if test="defecation != null">#{defecation},</if>
<if test="water != null">#{water},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateSysWxUserLog" parameterType="SysWxUserLog">
update sys_wx_user_log
<trim prefix="SET" suffixOverrides=",">
<if test="weight != null">weight = #{weight},</if>
<if test="appid != null">appid = #{appid},</if>
<if test="phone != null">phone = #{phone},</if>
<if test="sleepTime != null">sleep_time = #{sleepTime},</if>
<if test="wakeupTime != null">wakeup_time = #{wakeupTime},</if>
<if test="sport != null">sport = #{sport},</if>
<if test="avatarUrl != null">avatar_url = #{avatarUrl},</if>
<if test="diet != null">diet = #{diet},</if>
<if test="insomnia != null">insomnia = #{insomnia},</if>
<if test="defecation != null">defecation = #{defecation},</if>
<if test="water != null">water = #{water},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where openid = #{openid}
</update>
<delete id="deleteSysWxUserLogById" parameterType="String">
delete from sys_wx_user_log where openid = #{openid}
</delete>
<delete id="deleteSysWxUserLogByIds" parameterType="String">
delete from sys_wx_user_log where openid in
<foreach item="openid" collection="array" open="(" separator="," close=")">
#{openid}
</foreach>
</delete>
</mapper>

View File

@ -98,7 +98,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
"/login", "/login",
"/captchaImage", "/captchaImage",
"/custom/contract/sign", "/custom/contract/sign",
"/custom/contract/file/**" "/custom/contract/file/**",
"/custom/wxUserInfo/wx/**",
"/custom/wxUserLog/wx/**"
).anonymous() ).anonymous()
.antMatchers( .antMatchers(
HttpMethod.GET, HttpMethod.GET,

View File

@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询微信用户列表
export function listWxUserInfo(query) {
return request({
url: '/custom/wxUserInfo/list',
method: 'get',
params: query
})
}
// 查询微信用户详细
export function getWxUserInfo(openid) {
return request({
url: '/custom/wxUserInfo/' + openid,
method: 'get'
})
}
// 新增微信用户
export function addWxUserInfo(data) {
return request({
url: '/custom/wxUserInfo',
method: 'post',
data: data
})
}
// 修改微信用户
export function updateWxUserInfo(data) {
return request({
url: '/custom/wxUserInfo',
method: 'put',
data: data
})
}
// 删除微信用户
export function delWxUserInfo(openid) {
return request({
url: '/custom/wxUserInfo/' + openid,
method: 'delete'
})
}
// 导出微信用户
export function exportWxUserInfo(query) {
return request({
url: '/custom/wxUserInfo/export',
method: 'get',
params: query
})
}

View File

@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询微信用户记录列表
export function listWxUserLog(query) {
return request({
url: '/custom/wxUserLog/list',
method: 'get',
params: query
})
}
// 查询微信用户记录详细
export function getWxUserLog(openid) {
return request({
url: '/custom/wxUserLog/' + openid,
method: 'get'
})
}
// 新增微信用户记录
export function addWxUserLog(data) {
return request({
url: '/custom/wxUserLog',
method: 'post',
data: data
})
}
// 修改微信用户记录
export function updateWxUserLog(data) {
return request({
url: '/custom/wxUserLog',
method: 'put',
data: data
})
}
// 删除微信用户记录
export function delWxUserLog(openid) {
return request({
url: '/custom/wxUserLog/' + openid,
method: 'delete'
})
}
// 导出微信用户记录
export function exportWxUserLog(query) {
return request({
url: '/custom/wxUserLog/export',
method: 'get',
params: query
})
}

View File

@ -3,10 +3,10 @@
<el-row> <el-row>
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="70px"> <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="70px">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="订单编号" prop="orderId"> <el-form-item label="手机号" prop="phone">
<el-input <el-input
v-model="queryParams.orderId" v-model="queryParams.phone"
placeholder="请输入订单编号" placeholder="请输入手机号"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
@ -197,7 +197,15 @@
</el-row> </el-row>
<el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
<el-table-column label="编号" align="center" prop="orderId" width="150" fixed="left"/> <el-table-column label="订单状态" align="center" prop="orderId" width="80" fixed="left">
<template slot-scope="scope">
<el-tag
:type="scope.row.reviewStatus === '2' ? 'success' : scope.row.status ==='0'? '': 'danger'"
disable-transitions>
{{scope.row.reviewStatus === '2' ? '已完成': scope.row.status ==='0'? '进行中': '已暂停'}}
</el-tag>
</template>
</el-table-column>
<el-table-column label="审核状态" align="center" prop="reviewStatus" width="80" fixed="left"> <el-table-column label="审核状态" align="center" prop="reviewStatus" width="80" fixed="left">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag <el-tag
@ -214,11 +222,16 @@
</el-table-column> </el-table-column>
<el-table-column label="客户姓名" align="center" prop="customer" width="120" fixed="left"/> <el-table-column label="客户姓名" align="center" prop="customer" width="120" fixed="left"/>
<el-table-column label="金额" align="center" prop="amount" width="120" fixed="left"> <el-table-column label="金额" align="center" prop="amount" width="120" fixed="left">
<template scope="scope"> <template slot-scope="scope">
{{toThousands(scope.row.amount)}} {{toThousands(scope.row.amount)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="电话" align="center" prop="phone" width="120"/> <el-table-column label="体重" align="center" prop="weight" width="80">
<template slot-scope="scope">
{{scope.row.weight ? `${scope.row.weight}kg` : ''}}
</template>
</el-table-column>
<el-table-column label="手机号" align="center" prop="phone" width="120"/>
<el-table-column label="服务时长" align="center" prop="serveTime" width="80"/> <el-table-column label="服务时长" align="center" prop="serveTime" width="80"/>
<el-table-column label="收款方式" align="center" prop="payType" width="120"/> <el-table-column label="收款方式" align="center" prop="payType" width="120"/>
<el-table-column label="售前" align="center" prop="preSale" width="120"/> <el-table-column label="售前" align="center" prop="preSale" width="120"/>
@ -266,27 +279,32 @@
</pagination> </pagination>
<!-- 添加或修改销售订单对话框 --> <!-- 添加或修改销售订单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="720px" append-to-body>
<el-row :gutter="15"> <el-row :gutter="15">
<el-form ref="form" :model="form" :rules="rules" label-width="90px"> <el-form ref="form" :model="form" :rules="rules" label-width="90px">
<el-col :span="12"> <el-col :span="8">
<el-form-item label="客户姓名" prop="customer"> <el-form-item label="客户姓名" prop="customer">
<el-input v-model="form.customer" placeholder="请输入客户姓名"/> <el-input v-model="form.customer" placeholder="请输入姓名"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="体重" prop="weight">
<el-input v-model="form.weight" placeholder="请输入体重"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="电话" prop="phone"> <el-form-item label="电话" prop="phone">
<el-input v-model="form.phone" placeholder="请输入电话"/> <el-input v-model="form.phone" placeholder="请输入电话"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="金额" prop="amount"> <el-form-item label="成交金额" prop="amount">
<el-input v-model="form.amount" placeholder="请输入金额"/> <el-input v-model="form.amount" placeholder="请输入金额"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="收款方式" prop="payTypeId"> <el-form-item label="收款方式" prop="payTypeId">
<el-select v-model="form.payTypeId" placeholder="请选择收款方式"> <el-select v-model="form.payTypeId" placeholder="请选择">
<el-option <el-option
v-for="dict in payTypeIdOptions" v-for="dict in payTypeIdOptions"
:key="dict.dictValue" :key="dict.dictValue"
@ -296,9 +314,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="账号" prop="accountId"> <el-form-item label="收款账号" prop="accountId">
<el-select v-model="form.accountId" placeholder="请选择账号"> <el-select v-model="form.accountId" placeholder="请选择">
<el-option <el-option
v-for="dict in accountIdOptions" v-for="dict in accountIdOptions"
:key="dict.dictValue" :key="dict.dictValue"
@ -308,9 +326,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="服务时长" prop="serveTime"> <el-form-item label="服务时长" prop="serveTime">
<el-select v-model="form.serveTimeId" placeholder="请选服务时长"> <el-select v-model="form.serveTimeId" placeholder="请选服">
<el-option <el-option
v-for="dict in serveTimeIdOption" v-for="dict in serveTimeIdOption"
:key="dict.dictValue" :key="dict.dictValue"
@ -320,9 +338,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="售前" prop="preSaleId"> <el-form-item label="售前" prop="preSaleId">
<el-select v-model="form.preSaleId" placeholder="请选择售前"> <el-select v-model="form.preSaleId" placeholder="请选择">
<el-option <el-option
v-for="dict in preSaleIdOptions" v-for="dict in preSaleIdOptions"
:key="dict.dictValue" :key="dict.dictValue"
@ -332,9 +350,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="售后" prop="afterSaleId"> <el-form-item label="售后" prop="afterSaleId">
<el-select v-model="form.afterSaleId" placeholder="请选择售后"> <el-select v-model="form.afterSaleId" placeholder="请选择">
<el-option <el-option
v-for="dict in afterSaleIdOptions" v-for="dict in afterSaleIdOptions"
:key="dict.dictValue" :key="dict.dictValue"
@ -344,9 +362,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="主营养师" prop="nutritionistId"> <el-form-item label="主营养师" prop="nutritionistId">
<el-select v-model="form.nutritionistId" placeholder="请选择主营养师"> <el-select v-model="form.nutritionistId" placeholder="请选择">
<el-option <el-option
v-for="dict in nutritionistIdOptions" v-for="dict in nutritionistIdOptions"
:key="dict.dictValue" :key="dict.dictValue"
@ -356,9 +374,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="助理营养师" prop="nutriAssisId"> <el-form-item label="助理营养师" prop="nutriAssisId">
<el-select v-model="form.nutriAssisId" placeholder="请选择助理营养师"> <el-select v-model="form.nutriAssisId" placeholder="请选择">
<el-option <el-option
v-for="dict in nutriAssisIdOptions" v-for="dict in nutriAssisIdOptions"
:key="dict.dictValue" :key="dict.dictValue"
@ -368,9 +386,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="策划" prop="plannerId"> <el-form-item label="策划" prop="plannerId">
<el-select v-model="form.plannerId" placeholder="请选择策划"> <el-select v-model="form.plannerId" placeholder="请选择">
<el-option <el-option
v-for="dict in plannerIdOptions" v-for="dict in plannerIdOptions"
:key="dict.dictValue" :key="dict.dictValue"
@ -380,9 +398,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="策划助理" prop="plannerAssisId"> <el-form-item label="策划助理" prop="plannerAssisId">
<el-select v-model="form.plannerAssisId" placeholder="请选择策划助理"> <el-select v-model="form.plannerAssisId" placeholder="请选择">
<el-option <el-option
v-for="dict in plannerAssisIdOptions" v-for="dict in plannerAssisIdOptions"
:key="dict.dictValue" :key="dict.dictValue"
@ -392,9 +410,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="运营" prop="operatorId"> <el-form-item label="运营" prop="operatorId">
<el-select v-model="form.operatorId" placeholder="请选择运营"> <el-select v-model="form.operatorId" placeholder="请选择">
<el-option <el-option
v-for="dict in operatorIdOptions" v-for="dict in operatorIdOptions"
:key="dict.dictValue" :key="dict.dictValue"
@ -404,9 +422,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="运营助理" prop="operatorAssisId"> <el-form-item label="运营助理" prop="operatorAssisId">
<el-select v-model="form.operatorAssisId" placeholder="请选择运营"> <el-select v-model="form.operatorAssisId" placeholder="请选择">
<el-option <el-option
v-for="dict in operatorAssisIdOptions" v-for="dict in operatorAssisIdOptions"
:key="dict.dictValue" :key="dict.dictValue"
@ -416,11 +434,23 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="推荐人" prop="recommender"> <el-form-item label="推荐人" prop="recommender">
<el-input v-model="form.recommender" placeholder="请输入推荐人"/> <el-input v-model="form.recommender" placeholder="请输入推荐人"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" v-hasPermi="['custom:order:review']">
<el-form-item label="审核状态" prop="reviewStatus">
<el-select v-model="form.reviewStatus" placeholder="请选择审核状态" @change="handleOnRviewChange">
<el-option
v-for="dict in reviewStatusOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="成交时间" prop="orderTime"> <el-form-item label="成交时间" prop="orderTime">
<el-date-picker <el-date-picker
@ -434,16 +464,17 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-hasPermi="['custom:order:review']"> <el-col :span="12">
<el-form-item label="审核状态" prop="reviewStatus"> <el-form-item label="开始时间" prop="startTime">
<el-select v-model="form.reviewStatus" placeholder="请选择审核状态" @change="handleOnRviewChange"> <el-date-picker
<el-option style="width: 182.5px"
v-for="dict in reviewStatusOptions" v-model="form.startTime"
:key="dict.dictValue" type="date"
:label="dict.dictLabel" placeholder="选择开始日期"
:value="dict.dictValue" format="yyyy-MM-dd"
/> value-format="yyyy-MM-dd"
</el-select> :picker-options="startPickerOptions">
</el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col> <el-col>
@ -546,18 +577,24 @@
customer: [ customer: [
{required: true, message: "客户姓名不能为空", trigger: "blur"} {required: true, message: "客户姓名不能为空", trigger: "blur"}
], ],
weight: [
{required: true, message: "客户体重不能为空", trigger: "blur"}
],
amount: [ amount: [
{required: true, message: "金额不能为空", trigger: "blur"} {required: true, message: "金额不能为空", trigger: "blur"}
], ],
payTypeId: [ phone: [
{required: true, message: "收款方式不能为空", trigger: "blur"} {required: true, message: "手机号不能为空", trigger: "blur"}
], ]
accountId: [ // payTypeId: [
{required: true, message: "账号不能为空", trigger: "blur"} // {required: true, message: "", trigger: "blur"}
], // ],
serveTimeId: [ // accountId: [
{required: true, message: "服务时长不能为空", trigger: "blur"} // {required: true, message: "", trigger: "blur"}
], // ],
// serveTimeId: [
// {required: true, message: "", trigger: "blur"}
// ],
// reviewStatus: [ // reviewStatus: [
// {trigger: "change", validator: handleOnPreviewChange} // {trigger: "change", validator: handleOnPreviewChange}
// ] // ]
@ -593,6 +630,11 @@
disabledDate(time) { disabledDate(time) {
return time.getTime() > Date.now(); return time.getTime() > Date.now();
}, },
},
startPickerOptions: {
disabledDate(time) {
return time.getTime() < Date.now();
},
} }
}; };
}, },
@ -702,6 +744,9 @@
customer: null, customer: null,
phone: null, phone: null,
amount: null, amount: null,
weight: null,
startTime: dayjs().format("YYYY-MM-DD"),
pauseTime: null,
payTypeId: defaultPayType ? parseInt(defaultPayType.dictValue) : null, payTypeId: defaultPayType ? parseInt(defaultPayType.dictValue) : null,
preSaleId: defaultPresale ? parseInt(defaultPresale.dictValue) : null, preSaleId: defaultPresale ? parseInt(defaultPresale.dictValue) : null,
createBy: null, createBy: null,
@ -771,6 +816,7 @@
} }
}); });
} else { } else {
this.form.status = '0';
addOrder(this.form).then(response => { addOrder(this.form).then(response => {
if (response.code === 200) { if (response.code === 200) {
this.msgSuccess("新增成功"); this.msgSuccess("新增成功");
@ -813,7 +859,30 @@
}, },
handleOnRviewChange(val) { handleOnRviewChange(val) {
this.review = val; this.review = val;
},
handleStatusClick(data) {
console.log(data);
} }
} }
}; };
</script> </script>
<style lang="scss" scoped>
.s_success {
color: #1ab394;
font-size: 22px;
}
.s_pause {
color: #f56c6c;
font-size: 22px;
cursor: pointer;
}
.s_play {
color: #1c84c6;
font-size: 22px;
cursor: pointer;
}
</style>

View File

@ -0,0 +1,391 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="昵称" prop="nickName">
<el-input
v-model="queryParams.nickName"
placeholder="请输入昵称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="微信应用" prop="appid">
<el-select v-model="queryParams.appid" placeholder="请选择微信应用" clearable size="small">
<el-option
v-for="dict in appidOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="电话" prop="phone">
<el-input
v-model="queryParams.phone"
placeholder="请输入电话"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="用户性别" prop="sex">
<el-select v-model="queryParams.sex" placeholder="请选择用户性别" clearable size="small">
<el-option
v-for="dict in sexOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- v-hasPermi="['custom:wxUserInfo:add']"-->
<!-- >新增-->
<!-- </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:wxUserInfo: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:wxUserInfo: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:wxUserInfo:export']"
>导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="wxUserInfoList" @selection-change="handleSelectionChange">
<el-table-column label="用户头像" align="center" prop="avatarUrl">
<template slot-scope="scope">
<el-image :src="scope.row.avatarUrl" style="width: 32px; height: 32px; border-radius: 50%"/>
</template>
</el-table-column>
<!-- <el-table-column type="selection" width="55" align="center"/>-->
<!-- <el-table-column label="微信openid" align="center" prop="openid"/>-->
<el-table-column label="昵称" align="center" prop="nickName"/>
<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="sex" :formatter="sexFormat"/>
<el-table-column label="城市" align="center" prop="city"/>
<el-table-column label="省份" align="center" prop="province"/>
<el-table-column label="国家" align="center" prop="country"/>
<el-table-column label="备注" align="center" prop="remark"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['custom:wxUserInfo:edit']"
>修改
</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['custom:wxUserInfo:remove']"-->
<!-- >删除-->
<!-- </el-button>-->
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改微信用户对话框 -->
<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="nickName">-->
<!-- <el-input v-model="form.nickName" 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="avatarUrl">-->
<!-- <el-input v-model="form.avatarUrl" placeholder="请输入用户头像"/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="用户性别" prop="sex">-->
<!-- <el-select v-model="form.sex" placeholder="请选择用户性别">-->
<!-- <el-option-->
<!-- v-for="dict in sexOptions"-->
<!-- :key="dict.dictValue"-->
<!-- :label="dict.dictLabel"-->
<!-- :value="dict.dictValue"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="城市" prop="city">-->
<!-- <el-input v-model="form.city" placeholder="请输入城市"/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="省份" prop="province">-->
<!-- <el-input v-model="form.province" placeholder="请输入省份"/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="国家" prop="country">-->
<!-- <el-input v-model="form.country" placeholder="请输入国家"/>-->
<!-- </el-form-item>-->
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listWxUserInfo,
getWxUserInfo,
delWxUserInfo,
addWxUserInfo,
updateWxUserInfo,
exportWxUserInfo
} from "@/api/custom/wxUserInfo";
export default {
name: "WxUserInfo",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: false,
//
total: 0,
//
wxUserInfoList: [],
//
title: "",
//
open: false,
// appid
appidOptions: [],
//
sexOptions: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
nickName: null,
appid: null,
phone: null,
sex: null,
},
//
form: {},
//
rules: {}
};
},
created() {
this.getList();
this.getDicts("cus_wx_app").then(response => {
this.appidOptions = response.data;
});
this.getDicts("sys_user_sex").then(response => {
this.sexOptions = response.data;
});
},
methods: {
/** 查询微信用户列表 */
getList() {
this.loading = true;
listWxUserInfo(this.queryParams).then(response => {
this.wxUserInfoList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// appid
appidFormat(row, column) {
return this.selectDictLabel(this.appidOptions, row.appid);
},
//
sexFormat(row, column) {
return this.selectDictLabel(this.sexOptions, row.sex);
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
openid: null,
nickName: null,
appid: null,
phone: null,
avatarUrl: null,
sex: null,
city: null,
province: null,
country: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.openid)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加微信用户";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const openid = row.openid || this.ids
getWxUserInfo(openid).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改微信用户";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.openid != null) {
updateWxUserInfo(this.form).then(response => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addWxUserInfo(this.form).then(response => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const openids = row.openid || this.ids;
this.$confirm('是否确认删除微信用户编号为"' + openids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return delWxUserInfo(openids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
}).catch(function () {
});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有微信用户数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return exportWxUserInfo(queryParams);
}).then(response => {
this.download(response.msg);
}).catch(function () {
});
}
}
};
</script>
<style lang="scss" scoped>
.avatar {
width: 64px;
height: 64px;
border-radius: 50%;
}
</style>

View File

@ -0,0 +1,429 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="微信appid" prop="appid">
<el-select v-model="queryParams.appid" placeholder="请选择微信appid" clearable size="small">
<el-option
v-for="dict in appidOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="电话" prop="phone">
<el-input
v-model="queryParams.phone"
placeholder="请输入电话"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['custom:wxUserLog:add']"
>新增</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>
<el-table v-loading="loading" :data="wxUserLogList" @selection-change="handleSelectionChange">
<el-table-column label="用户头像" align="center" prop="avatarUrl">
<template slot-scope="scope">
<el-image :src="scope.row.avatarUrl" style="width: 32px; height: 32px; border-radius: 50%"/>
</template>
</el-table-column>
<!-- <el-table-column type="selection" width="55" align="center" />-->
<!-- <el-table-column label="微信openid" align="center" prop="openid" />-->
<el-table-column label="体重" align="center" prop="weight" />
<el-table-column label="微信appid" align="center" prop="appid" :formatter="appidFormat" />
<el-table-column label="电话" align="center" prop="phone" />
<el-table-column label="睡觉时间" align="center" prop="sleepTime" width="180">
<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">
<span>{{ parseTime(scope.row.wakeupTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="运动情况" align="center" prop="sport" :formatter="sportFormat" />
<el-table-column label="饮食情况" align="center" prop="diet" :formatter="dietFormat" />
<el-table-column label="熬夜失眠" align="center" prop="insomnia" :formatter="insomniaFormat" />
<el-table-column label="排便情况" align="center" prop="defecation" :formatter="defecationFormat" />
<el-table-column label="饮水量" align="center" prop="water" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['custom:wxUserLog:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['custom:wxUserLog:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改微信用户记录对话框 -->
<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>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listWxUserLog, getWxUserLog, delWxUserLog, addWxUserLog, updateWxUserLog, exportWxUserLog } from "@/api/custom/wxUserLog";
export default {
name: "WxUserLog",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
wxUserLogList: [],
//
title: "",
//
open: false,
// appid
appidOptions: [],
//
sportOptions: [],
//
dietOptions: [],
//
insomniaOptions: [],
// 便
defecationOptions: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
appid: null,
phone: null,
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
this.getDicts("cus_wx_app").then(response => {
this.appidOptions = response.data;
});
this.getDicts("sys_yes_no").then(response => {
this.sportOptions = response.data;
});
this.getDicts("sys_yes_no").then(response => {
this.dietOptions = response.data;
});
this.getDicts("sys_yes_no").then(response => {
this.insomniaOptions = response.data;
});
this.getDicts("sys_yes_no").then(response => {
this.defecationOptions = response.data;
});
},
methods: {
/** 查询微信用户记录列表 */
getList() {
this.loading = true;
listWxUserLog(this.queryParams).then(response => {
this.wxUserLogList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// appid
appidFormat(row, column) {
return this.selectDictLabel(this.appidOptions, row.appid);
},
//
sportFormat(row, column) {
return this.selectDictLabel(this.sportOptions, row.sport);
},
//
dietFormat(row, column) {
return this.selectDictLabel(this.dietOptions, row.diet);
},
//
insomniaFormat(row, column) {
return this.selectDictLabel(this.insomniaOptions, row.insomnia);
},
// 便
defecationFormat(row, column) {
return this.selectDictLabel(this.defecationOptions, row.defecation);
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
openid: null,
weight: null,
appid: null,
phone: null,
sleepTime: null,
wakeupTime: null,
sport: null,
avatarUrl: null,
diet: null,
insomnia: null,
defecation: null,
water: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.openid)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加微信用户记录";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const openid = row.openid || this.ids
getWxUserLog(openid).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改微信用户记录";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.openid != null) {
updateWxUserLog(this.form).then(response => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addWxUserLog(this.form).then(response => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const openids = row.openid || this.ids;
this.$confirm('是否确认删除微信用户记录编号为"' + openids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delWxUserLog(openids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
}).catch(function() {});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有微信用户记录数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return exportWxUserLog(queryParams);
}).then(response => {
this.download(response.msg);
}).catch(function() {});
}
}
};
</script>