From ad44abc341b9fdcdda56599cb4b6044015fe29de Mon Sep 17 00:00:00 2001 From: haotianmingyue <2421912570@qq.com> Date: Mon, 14 Oct 2024 16:36:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E7=94=A8=E6=88=B7=E4=B8=AA?= =?UTF-8?q?=E4=BA=BA=E4=BF=A1=E6=81=AF=E8=A1=A8=20user=5Finfo=EF=BC=8C?= =?UTF-8?q?=E5=9C=A8=E6=B3=A8=E5=86=8C=E6=97=B6=EF=BC=88/register=EF=BC=89?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=B7=BB=E5=8A=A0=E6=95=B0=E6=8D=AE=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/service/SysRegisterService.java | 44 ++- .../system/controller/UserInfoController.java | 104 ++++++ .../com/ruoyi/system/domain/UserInfo.java | 345 ++++++++++++++++++ .../ruoyi/system/mapper/UserInfoMapper.java | 61 ++++ .../system/service/IUserInfoService.java | 61 ++++ .../service/impl/UserInfoServiceImpl.java | 93 +++++ .../mapper/system/UserInfoMapper.xml | 161 ++++++++ 7 files changed, 863 insertions(+), 6 deletions(-) create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/controller/UserInfoController.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/UserInfo.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserInfoMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/IUserInfoService.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserInfoServiceImpl.java create mode 100644 ruoyi-system/src/main/resources/mapper/system/UserInfoMapper.xml diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java index 235361a3..364f7237 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java @@ -1,6 +1,9 @@ package com.ruoyi.framework.web.service; +import java.util.Date; import com.ruoyi.common.core.domain.model.AppRegisterUser; +import com.ruoyi.system.domain.UserInfo; +import com.ruoyi.system.service.IUserInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.ruoyi.common.constant.CacheConstants; @@ -30,6 +33,9 @@ public class SysRegisterService @Autowired private ISysUserService userService; + @Autowired + private IUserInfoService userInfoService; + @Autowired private ISysConfigService configService; @@ -119,12 +125,16 @@ public class SysRegisterService SysUser sysUser = new SysUser(); sysUser.setUserName(username); - // 验证码开关 - boolean captchaEnabled = configService.selectCaptchaEnabled(); - if (captchaEnabled) - { - appRegistervalidateCaptcha(username, registerBody.getCode()); - } + UserInfo userInfo = new UserInfo(); + + +// //------------------------ 验证码开关 开发环境先关闭---------------------------------- +// boolean captchaEnabled = configService.selectCaptchaEnabled(); +// if (captchaEnabled) +// { +// appRegistervalidateCaptcha(username, registerBody.getCode()); +// } +// //----------------------end 验证码开关------------------------------------------- if (StringUtils.isEmpty(username)) { @@ -152,13 +162,35 @@ public class SysRegisterService { sysUser.setNickName(registerBody.getNickname()); sysUser.setPassword(SecurityUtils.encryptPassword(password)); + // 注册账号 boolean regFlag = userService.registerUser(sysUser); + + if (!regFlag) { msg = "注册失败,请联系系统管理人员"; } else { + // 查询数据库中的用户账号信息 + SysUser newSysUser = userService.selectUserByUserName(username); + //---------------------------- 新建用户个人信息-------------------------------------------- + userInfo.setUserId(newSysUser.getUserId()); + userInfo.setPhonenumber(username); + // 获取当前时间的毫秒值 + long currentTimeMillis = System.currentTimeMillis(); + // 利用毫秒值构造Date对象 + Date currentDate = new Date(currentTimeMillis); + userInfo.setUpdateTime(currentDate); + + int infoFlag = userInfoService.insertUserInfo(userInfo); + if (infoFlag == 0) { + msg = "个人信息注册失败,请联系系统管理人员"; + return msg; + } + + System.out.println(infoFlag); + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.REGISTER, MessageUtils.message("user.register.success"))); } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/UserInfoController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/UserInfoController.java new file mode 100644 index 00000000..13390b27 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/UserInfoController.java @@ -0,0 +1,104 @@ +//package com.ruoyi.system.controller; +// +//import java.util.List; +//import javax.servlet.http.HttpServletResponse; +//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.ruoyi.common.annotation.Log; +//import com.ruoyi.common.core.controller.BaseController; +//import com.ruoyi.common.core.domain.AjaxResult; +//import com.ruoyi.common.enums.BusinessType; +//import com.ruoyi.system.domain.UserInfo; +//import com.ruoyi.system.service.IUserInfoService; +//import com.ruoyi.common.utils.poi.ExcelUtil; +//import com.ruoyi.common.core.page.TableDataInfo; +// +///** +// * 用户个人信息Controller +// * +// * @author haotian +// * @date 2024-10-14 +// */ +//@RestController +//@RequestMapping("/system/user_info") +//public class UserInfoController extends BaseController +//{ +// @Autowired +// private IUserInfoService userInfoService; +// +// /** +// * 查询用户个人信息列表 +// */ +// @PreAuthorize("@ss.hasPermi('system:user_info:list')") +// @GetMapping("/list") +// public TableDataInfo list(UserInfo userInfo) +// { +// startPage(); +// List list = userInfoService.selectUserInfoList(userInfo); +// return getDataTable(list); +// } +// +// /** +// * 导出用户个人信息列表 +// */ +// @PreAuthorize("@ss.hasPermi('system:user_info:export')") +// @Log(title = "用户个人信息", businessType = BusinessType.EXPORT) +// @PostMapping("/export") +// public void export(HttpServletResponse response, UserInfo userInfo) +// { +// List list = userInfoService.selectUserInfoList(userInfo); +// ExcelUtil util = new ExcelUtil(UserInfo.class); +// util.exportExcel(response, list, "用户个人信息数据"); +// } +// +// /** +// * 获取用户个人信息详细信息 +// */ +// @PreAuthorize("@ss.hasPermi('system:user_info:query')") +// @GetMapping(value = "/{userId}") +// public AjaxResult getInfo(@PathVariable("userId") Long userId) +// { +// return success(userInfoService.selectUserInfoByUserId(userId)); +// } +// +// /** +// * 新增用户个人信息 +// */ +// @PreAuthorize("@ss.hasPermi('system:user_info:add')") +// @Log(title = "用户个人信息", businessType = BusinessType.INSERT) +// @PostMapping +// public AjaxResult add(@RequestBody UserInfo userInfo) +// { +// return toAjax(userInfoService.insertUserInfo(userInfo)); +// } +// +// /** +// * 修改用户个人信息 +// */ +// @PreAuthorize("@ss.hasPermi('system:user_info:edit')") +// @Log(title = "用户个人信息", businessType = BusinessType.UPDATE) +// @PutMapping +// public AjaxResult edit(@RequestBody UserInfo userInfo) +// { +// return toAjax(userInfoService.updateUserInfo(userInfo)); +// } +// +// /** +// * 删除用户个人信息 +// */ +// @PreAuthorize("@ss.hasPermi('system:user_info:remove')") +// @Log(title = "用户个人信息", businessType = BusinessType.DELETE) +// @DeleteMapping("/{userIds}") +// public AjaxResult remove(@PathVariable Long[] userIds) +// { +// return toAjax(userInfoService.deleteUserInfoByUserIds(userIds)); +// } +//} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/UserInfo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/UserInfo.java new file mode 100644 index 00000000..6dbb5c16 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/UserInfo.java @@ -0,0 +1,345 @@ +package com.ruoyi.system.domain; + +import java.util.Date; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 用户个人信息对象 user_info + * + * @author haotian + * @date 2024-10-14 + */ +public class UserInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 用户id */ + private Long userId; + + /** 实名认证状态:0 */ + @Excel(name = "实名认证状态:0") + private String authenticationStatus; + + /** 姓名 */ + @Excel(name = "姓名") + private String realName; + + /** 身份证号唯一值 */ + @Excel(name = "身份证号唯一值") + private String idCard; + + /** 用户性别:0 */ + @Excel(name = "用户性别:0") + private String sex; + + /** 个性签名 */ + @Excel(name = "个性签名") + private String signature; + + /** 头像地址 */ + @Excel(name = "头像地址") + private String avatar; + + /** 身份证正面地址 */ + @Excel(name = "身份证正面地址") + private String cardFront; + + /** 身份证背面地址 */ + @Excel(name = "身份证背面地址") + private String cardBack; + + /** 用户邮箱 */ + @Excel(name = "用户邮箱") + private String email; + + /** 收到火箭数 */ + @Excel(name = "收到火箭数") + private Long receiveRockets; + + /** 发出火箭数 */ + @Excel(name = "发出火箭数") + private Long sendRockets; + + /** 分享次数 */ + @Excel(name = "分享次数") + private Long shares; + + /** 被关注数 */ + @Excel(name = "被关注数") + private Long followers; + + /** 7天在线时长(通过在线时长表来计算) */ + @Excel(name = "7天在线时长", readConverterExp = "通=过在线时长表来计算") + private Long sOnlineTime; + + /** 7天MR在线时长(通过在线时长表来计算) */ + @Excel(name = "7天MR在线时长", readConverterExp = "通=过在线时长表来计算") + private Long sMrTime; + + /** 7天消费额(通过订单来计算) */ + @Excel(name = "7天消费额", readConverterExp = "通=过订单来计算") + private Long sConsumption; + + /** 30天消费额(通过订单来计算) */ + @Excel(name = "30天消费额", readConverterExp = "通=过订单来计算") + private Long thConsumption; + + /** 手机号 */ + @Excel(name = "手机号") + private String phonenumber; + + /** MR在线总长(单位分钟) */ + @Excel(name = "MR在线总长", readConverterExp = "单=位分钟") + private Long tMrTime; + + /** 在线总时长(单位分钟) */ + @Excel(name = "在线总时长", readConverterExp = "单=位分钟") + private Long tOnlineTime; + + /** 消费总额 */ + @Excel(name = "消费总额") + private Long tConsumption; + + @Excel(name = "更新时间") + private Date updateTime; + + + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + public void setAuthenticationStatus(String authenticationStatus) + { + this.authenticationStatus = authenticationStatus; + } + + public String getAuthenticationStatus() + { + return authenticationStatus; + } + public void setRealName(String realName) + { + this.realName = realName; + } + + public String getRealName() + { + return realName; + } + public void setIdCard(String idCard) + { + this.idCard = idCard; + } + + public String getIdCard() + { + return idCard; + } + public void setSex(String sex) + { + this.sex = sex; + } + + public String getSex() + { + return sex; + } + public void setSignature(String signature) + { + this.signature = signature; + } + + public String getSignature() + { + return signature; + } + public void setAvatar(String avatar) + { + this.avatar = avatar; + } + + public String getAvatar() + { + return avatar; + } + public void setCardFront(String cardFront) + { + this.cardFront = cardFront; + } + + public String getCardFront() + { + return cardFront; + } + public void setCardBack(String cardBack) + { + this.cardBack = cardBack; + } + + public String getCardBack() + { + return cardBack; + } + public void setEmail(String email) + { + this.email = email; + } + + public String getEmail() + { + return email; + } + public void setReceiveRockets(Long receiveRockets) + { + this.receiveRockets = receiveRockets; + } + + public Long getReceiveRockets() + { + return receiveRockets; + } + public void setSendRockets(Long sendRockets) + { + this.sendRockets = sendRockets; + } + + public Long getSendRockets() + { + return sendRockets; + } + public void setShares(Long shares) + { + this.shares = shares; + } + + public Long getShares() + { + return shares; + } + public void setFollowers(Long followers) + { + this.followers = followers; + } + + public Long getFollowers() + { + return followers; + } + public void setsOnlineTime(Long sOnlineTime) + { + this.sOnlineTime = sOnlineTime; + } + + public Long getsOnlineTime() + { + return sOnlineTime; + } + public void setsMrTime(Long sMrTime) + { + this.sMrTime = sMrTime; + } + + public Long getsMrTime() + { + return sMrTime; + } + public void setsConsumption(Long sConsumption) + { + this.sConsumption = sConsumption; + } + + public Long getsConsumption() + { + return sConsumption; + } + public void setThConsumption(Long thConsumption) + { + this.thConsumption = thConsumption; + } + + public Long getThConsumption() + { + return thConsumption; + } + public void setPhonenumber(String phonenumber) + { + this.phonenumber = phonenumber; + } + + public String getPhonenumber() + { + return phonenumber; + } + public void settMrTime(Long tMrTime) + { + this.tMrTime = tMrTime; + } + + public Long gettMrTime() + { + return tMrTime; + } + public void settOnlineTime(Long tOnlineTime) + { + this.tOnlineTime = tOnlineTime; + } + + public Long gettOnlineTime() + { + return tOnlineTime; + } + public void settConsumption(Long tConsumption) + { + this.tConsumption = tConsumption; + } + + public Long gettConsumption() + { + return tConsumption; + } + + public Date getUpdateTime() + { + return updateTime; + } + public void setUpdateTime(Date updateTime){ + this.updateTime = updateTime; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("userId", getUserId()) + .append("authenticationStatus", getAuthenticationStatus()) + .append("realName", getRealName()) + .append("idCard", getIdCard()) + .append("sex", getSex()) + .append("signature", getSignature()) + .append("avatar", getAvatar()) + .append("cardFront", getCardFront()) + .append("cardBack", getCardBack()) + .append("email", getEmail()) + .append("receiveRockets", getReceiveRockets()) + .append("sendRockets", getSendRockets()) + .append("shares", getShares()) + .append("followers", getFollowers()) + .append("sOnlineTime", getsOnlineTime()) + .append("sMrTime", getsMrTime()) + .append("sConsumption", getsConsumption()) + .append("thConsumption", getThConsumption()) + .append("phonenumber", getPhonenumber()) + .append("tMrTime", gettMrTime()) + .append("tOnlineTime", gettOnlineTime()) + .append("tConsumption", gettConsumption()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserInfoMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserInfoMapper.java new file mode 100644 index 00000000..e702ec42 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserInfoMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import com.ruoyi.system.domain.UserInfo; + +/** + * 用户个人信息Mapper接口 + * + * @author haotian + * @date 2024-10-14 + */ +public interface UserInfoMapper +{ + /** + * 查询用户个人信息 + * + * @param userId 用户个人信息主键 + * @return 用户个人信息 + */ + public UserInfo selectUserInfoByUserId(Long userId); + + /** + * 查询用户个人信息列表 + * + * @param userInfo 用户个人信息 + * @return 用户个人信息集合 + */ + public List selectUserInfoList(UserInfo userInfo); + + /** + * 新增用户个人信息 + * + * @param userInfo 用户个人信息 + * @return 结果 + */ + public int insertUserInfo(UserInfo userInfo); + + /** + * 修改用户个人信息 + * + * @param userInfo 用户个人信息 + * @return 结果 + */ + public int updateUserInfo(UserInfo userInfo); + + /** + * 删除用户个人信息 + * + * @param userId 用户个人信息主键 + * @return 结果 + */ + public int deleteUserInfoByUserId(Long userId); + + /** + * 批量删除用户个人信息 + * + * @param userIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteUserInfoByUserIds(Long[] userIds); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/IUserInfoService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/IUserInfoService.java new file mode 100644 index 00000000..76b18fd3 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/IUserInfoService.java @@ -0,0 +1,61 @@ +package com.ruoyi.system.service; + +import java.util.List; +import com.ruoyi.system.domain.UserInfo; + +/** + * 用户个人信息Service接口 + * + * @author haotian + * @date 2024-10-14 + */ +public interface IUserInfoService +{ + /** + * 查询用户个人信息 + * + * @param userId 用户个人信息主键 + * @return 用户个人信息 + */ + public UserInfo selectUserInfoByUserId(Long userId); + + /** + * 查询用户个人信息列表 + * + * @param userInfo 用户个人信息 + * @return 用户个人信息集合 + */ + public List selectUserInfoList(UserInfo userInfo); + + /** + * 新增用户个人信息 + * + * @param userInfo 用户个人信息 + * @return 结果 + */ + public int insertUserInfo(UserInfo userInfo); + + /** + * 修改用户个人信息 + * + * @param userInfo 用户个人信息 + * @return 结果 + */ + public int updateUserInfo(UserInfo userInfo); + + /** + * 批量删除用户个人信息 + * + * @param userIds 需要删除的用户个人信息主键集合 + * @return 结果 + */ + public int deleteUserInfoByUserIds(Long[] userIds); + + /** + * 删除用户个人信息信息 + * + * @param userId 用户个人信息主键 + * @return 结果 + */ + public int deleteUserInfoByUserId(Long userId); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserInfoServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserInfoServiceImpl.java new file mode 100644 index 00000000..8e1752c6 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserInfoServiceImpl.java @@ -0,0 +1,93 @@ +package com.ruoyi.system.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.system.mapper.UserInfoMapper; +import com.ruoyi.system.domain.UserInfo; +import com.ruoyi.system.service.IUserInfoService; + +/** + * 用户个人信息Service业务层处理 + * + * @author haotian + * @date 2024-10-14 + */ +@Service +public class UserInfoServiceImpl implements IUserInfoService +{ + @Autowired + private UserInfoMapper userInfoMapper; + + /** + * 查询用户个人信息 + * + * @param userId 用户个人信息主键 + * @return 用户个人信息 + */ + @Override + public UserInfo selectUserInfoByUserId(Long userId) + { + return userInfoMapper.selectUserInfoByUserId(userId); + } + + /** + * 查询用户个人信息列表 + * + * @param userInfo 用户个人信息 + * @return 用户个人信息 + */ + @Override + public List selectUserInfoList(UserInfo userInfo) + { + return userInfoMapper.selectUserInfoList(userInfo); + } + + /** + * 新增用户个人信息 + * + * @param userInfo 用户个人信息 + * @return 结果 + */ + @Override + public int insertUserInfo(UserInfo userInfo) + { + return userInfoMapper.insertUserInfo(userInfo); + } + + /** + * 修改用户个人信息 + * + * @param userInfo 用户个人信息 + * @return 结果 + */ + @Override + public int updateUserInfo(UserInfo userInfo) + { + return userInfoMapper.updateUserInfo(userInfo); + } + + /** + * 批量删除用户个人信息 + * + * @param userIds 需要删除的用户个人信息主键 + * @return 结果 + */ + @Override + public int deleteUserInfoByUserIds(Long[] userIds) + { + return userInfoMapper.deleteUserInfoByUserIds(userIds); + } + + /** + * 删除用户个人信息信息 + * + * @param userId 用户个人信息主键 + * @return 结果 + */ + @Override + public int deleteUserInfoByUserId(Long userId) + { + return userInfoMapper.deleteUserInfoByUserId(userId); + } +} diff --git a/ruoyi-system/src/main/resources/mapper/system/UserInfoMapper.xml b/ruoyi-system/src/main/resources/mapper/system/UserInfoMapper.xml new file mode 100644 index 00000000..68ef9cad --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/UserInfoMapper.xml @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select user_id, authentication_status, real_name, id_card, sex, signature, avatar, card_front, card_back, email, receive_rockets, send_rockets, shares, followers, s_online_time, s_mr_time, s_consumption, th_consumption, phonenumber, t_mr_time, t_online_time, t_consumption from user_info + + + + + + + + insert into user_info + + user_id, + authentication_status, + real_name, + id_card, + sex, + signature, + avatar, + card_front, + card_back, + email, + receive_rockets, + send_rockets, + shares, + followers, + s_online_time, + s_mr_time, + s_consumption, + th_consumption, + phonenumber, + t_mr_time, + t_online_time, + t_consumption, + update_time + + + #{userId}, + #{authenticationStatus}, + #{realName}, + #{idCard}, + #{sex}, + #{signature}, + #{avatar}, + #{cardFront}, + #{cardBack}, + #{email}, + #{receiveRockets}, + #{sendRockets}, + #{shares}, + #{followers}, + #{sOnlineTime}, + #{sMrTime}, + #{sConsumption}, + #{thConsumption}, + #{phonenumber}, + #{tMrTime}, + #{tOnlineTime}, + #{tConsumption}, + #{updateTime}, + + + + + update user_info + + authentication_status = #{authenticationStatus}, + real_name = #{realName}, + id_card = #{idCard}, + sex = #{sex}, + signature = #{signature}, + avatar = #{avatar}, + card_front = #{cardFront}, + card_back = #{cardBack}, + email = #{email}, + receive_rockets = #{receiveRockets}, + send_rockets = #{sendRockets}, + shares = #{shares}, + followers = #{followers}, + s_online_time = #{sOnlineTime}, + s_mr_time = #{sMrTime}, + s_consumption = #{sConsumption}, + th_consumption = #{thConsumption}, + phonenumber = #{phonenumber}, + t_mr_time = #{tMrTime}, + t_online_time = #{tOnlineTime}, + t_consumption = #{tConsumption}, + #{updateTime}, + + where user_id = #{userId} + + + + delete from user_info where user_id = #{userId} + + + + delete from user_info where user_id in + + #{userId} + + + \ No newline at end of file