修改登录

用户列表
全局配置
用户修改
同步用户表结构
This commit is contained in:
pan.wl.2 2024-10-11 22:57:07 +08:00
parent bc59451e21
commit a2bcee032c
26 changed files with 132 additions and 116 deletions

View File

@ -1,6 +1,5 @@
package com.mdd.admin.controller; package com.mdd.admin.controller;
import com.mdd.common.aop.NotLogin;
import com.mdd.admin.service.IIndexService; import com.mdd.admin.service.IIndexService;
import com.mdd.common.core.AjaxResult; import com.mdd.common.core.AjaxResult;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -15,11 +14,18 @@ import java.util.Map;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("api/index") @RequestMapping("/adminapi/workbench")
@Api(tags = "主页数据管理") @Api(tags = "主页数据管理")
public class IndexController { public class IndexController {
@Resource @Resource
IIndexService iIndexService; IIndexService iIndexService;
@GetMapping("/index")
@ApiOperation(value="控制台")
public AjaxResult<Map<String, Object>> index() {
Map<String, Object> map = iIndexService.index();
return AjaxResult.success(map);
}
} }

View File

@ -18,14 +18,14 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
@RestController @RestController
@RequestMapping("api/user") @RequestMapping({"adminapi/user/user", "adminapi/user.user"})
@Api(tags = "用户数据管理") @Api(tags = "用户数据管理")
public class UserController { public class UserController {
@Resource @Resource
IUserService iUserService; IUserService iUserService;
@GetMapping("/list") @GetMapping("/lists")
@ApiOperation(value="用户列表") @ApiOperation(value="用户列表")
public AjaxResult<PageResult<UserVo>> list(@Validated PageValidate pageValidate, public AjaxResult<PageResult<UserVo>> list(@Validated PageValidate pageValidate,
@Validated UserSearchValidate searchValidate) { @Validated UserSearchValidate searchValidate) {
@ -49,7 +49,7 @@ public class UserController {
} }
@Log(title = "余额调整") @Log(title = "余额调整")
@PostMapping("/adjustWallet") @PostMapping("/adjustMoney")
@ApiOperation(value="余额调整") @ApiOperation(value="余额调整")
public AjaxResult<Object> adjustWallet(@Validated @RequestBody UserWalletValidate walletValidate) { public AjaxResult<Object> adjustWallet(@Validated @RequestBody UserWalletValidate walletValidate) {
iUserService.adjustWallet(walletValidate); iUserService.adjustWallet(walletValidate);

View File

@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List;
import java.util.Map; import java.util.Map;
@Slf4j @Slf4j
@ -28,7 +29,8 @@ public class AdminController {
@GetMapping("/mySelf") @GetMapping("/mySelf")
@ApiOperation(value="获取当前管理员信息") @ApiOperation(value="获取当前管理员信息")
public AjaxResult<AdminMySelfVo> mySelf() { public AjaxResult<AdminMySelfVo> mySelf() {
AdminMySelfVo mySelf = iAdminService.mySelf(LikeAdminThreadLocal.getAdminId()); List<Integer> roleIds = LikeAdminThreadLocal.getRoleIds();
AdminMySelfVo mySelf = iAdminService.mySelf(LikeAdminThreadLocal.getAdminId(), roleIds);
return AjaxResult.success(mySelf); return AjaxResult.success(mySelf);
} }

View File

@ -13,7 +13,7 @@ public interface IIndexService {
* @author fzr * @author fzr
* @return Map<String, Object> * @return Map<String, Object>
*/ */
Map<String, Object> console(); Map<String, Object> index();
/** /**
* 公共配置 * 公共配置

View File

@ -11,6 +11,8 @@ import com.mdd.admin.vo.system.SystemAuthAdminListedVo;
import com.mdd.admin.vo.system.SystemAuthAdminSelvesVo; import com.mdd.admin.vo.system.SystemAuthAdminSelvesVo;
import com.mdd.common.core.PageResult; import com.mdd.common.core.PageResult;
import java.util.List;
/** /**
* 系统管理员服务接口类 * 系统管理员服务接口类
*/ */
@ -91,5 +93,5 @@ public interface IAdminService {
* @param id * @param id
* @return * @return
*/ */
AdminMySelfVo mySelf(Integer id); AdminMySelfVo mySelf(Integer id, List<Integer> roleIds);
} }

View File

@ -147,7 +147,7 @@ public class FinanceRechargerServiceImpl implements IFinanceRechargerService {
} }
User user = userMapper.selectById(rechargeOrder.getUserId()); User user = userMapper.selectById(rechargeOrder.getUserId());
if (user.getMoney().compareTo(rechargeOrder.getOrderAmount()) < 0) { if (user.getUserMoney().compareTo(rechargeOrder.getOrderAmount()) < 0) {
throw new OperateException("退款失败:用户余额已不足退款金额!"); throw new OperateException("退款失败:用户余额已不足退款金额!");
} }
@ -162,7 +162,7 @@ public class FinanceRechargerServiceImpl implements IFinanceRechargerService {
rechargeOrderMapper.updateById(rechargeOrder); rechargeOrderMapper.updateById(rechargeOrder);
// 更新用户余额 // 更新用户余额
user.setMoney(user.getMoney().subtract(rechargeOrder.getOrderAmount())); user.setUserMoney(user.getUserMoney().subtract(rechargeOrder.getOrderAmount()));
userMapper.updateById(user); userMapper.updateById(user);
// 记录余额日志 // 记录余额日志

View File

@ -20,7 +20,7 @@ public class IndexServiceImpl implements IIndexService {
* @return Map<String, Object> * @return Map<String, Object>
*/ */
@Override @Override
public Map<String, Object> console() { public Map<String, Object> index() {
Map<String, Object> console = new LinkedHashMap<>(); Map<String, Object> console = new LinkedHashMap<>();
// 版本信息 // 版本信息
@ -38,14 +38,14 @@ public class IndexServiceImpl implements IIndexService {
// 今日数据 // 今日数据
Map<String, Object> today = new LinkedHashMap<>(); Map<String, Object> today = new LinkedHashMap<>();
today.put("time", "2022-08-11 15:08:29"); today.put("time", "2022-08-11 15:08:29");
today.put("todayVisits", 10); // 访问量() today.put("today_visitor", 10); // 访问量()
today.put("totalVisits", 100); // 总访问量 today.put("total_visitor", 100); // 总访问量
today.put("todaySales", 30); // 销售额() today.put("today_sales", 30); // 销售额()
today.put("totalSales", 65); // 总销售额 today.put("total_sales", 65); // 总销售额
today.put("todayOrder", 12); // 订单量() today.put("order_num", 12); // 订单量()
today.put("totalOrder", 255); // 总订单量 today.put("order_sum", 255); // 总订单量
today.put("todayUsers", 120); // 新增用户 today.put("today_new_user", 120); // 新增用户
today.put("totalUsers", 360); // 总访用户 today.put("total_new_user", 360); // 总访用户
console.put("today", today); console.put("today", today);
// 访客图表 // 访客图表

View File

@ -57,7 +57,7 @@ public class SettingPaymentServiceImpl implements ISettingPaymentService {
SettingPaymentMethodVo vo = new SettingPaymentMethodVo(); SettingPaymentMethodVo vo = new SettingPaymentMethodVo();
BeanUtils.copyProperties(devPayWay, vo); BeanUtils.copyProperties(devPayWay, vo);
vo.setName(PaymentEnum.getPayWayMsg(devPayConfig.getWay())); vo.setName(PaymentEnum.getPayWayMsg(devPayConfig.getPayWay()));
vo.setShowName(devPayConfig.getName()); vo.setShowName(devPayConfig.getName());
vo.setIcon(UrlUtils.toAbsoluteUrl(devPayConfig.getIcon())); vo.setIcon(UrlUtils.toAbsoluteUrl(devPayConfig.getIcon()));
@ -94,8 +94,8 @@ public class SettingPaymentServiceImpl implements ISettingPaymentService {
for (DevPayConfig dev : devPayConfigs) { for (DevPayConfig dev : devPayConfigs) {
dev.setShowName(dev.getName()); dev.setShowName(dev.getName());
dev.setName(PaymentEnum.getPayWayMsg(dev.getWay())); dev.setName(PaymentEnum.getPayWayMsg(dev.getPayWay()));
dev.setParams(MapUtils.jsonToMap("{}")); dev.setConfig(MapUtils.jsonToMap("{}"));
dev.setIcon(UrlUtils.toAbsoluteUrl(dev.getIcon())); dev.setIcon(UrlUtils.toAbsoluteUrl(dev.getIcon()));
} }
@ -116,9 +116,9 @@ public class SettingPaymentServiceImpl implements ISettingPaymentService {
.eq("id", id) .eq("id", id)
.last("limit 1")); .last("limit 1"));
devPayConfig.setName(PaymentEnum.getPayWayMsg(devPayConfig.getWay())); devPayConfig.setName(PaymentEnum.getPayWayMsg(devPayConfig.getPayWay()));
devPayConfig.setShowName(devPayConfig.getName()); devPayConfig.setShowName(devPayConfig.getName());
devPayConfig.setParams(MapUtils.jsonToMap(devPayConfig.getParams().toString())); devPayConfig.setConfig(MapUtils.jsonToMap(devPayConfig.getConfig().toString()));
devPayConfig.setIcon(UrlUtils.toAbsoluteUrl(devPayConfig.getIcon())); devPayConfig.setIcon(UrlUtils.toAbsoluteUrl(devPayConfig.getIcon()));
return devPayConfig; return devPayConfig;
} }
@ -142,10 +142,10 @@ public class SettingPaymentServiceImpl implements ISettingPaymentService {
devPayConfig.setIcon(UrlUtils.toRelativeUrl(configValidate.getIcon())); devPayConfig.setIcon(UrlUtils.toRelativeUrl(configValidate.getIcon()));
devPayConfig.setSort(configValidate.getSort()); devPayConfig.setSort(configValidate.getSort());
devPayConfig.setRemark(configValidate.getRemark()); devPayConfig.setRemark(configValidate.getRemark());
if (devPayConfig.getWay().equals(1)) { if (devPayConfig.getPayWay().equals(1)) {
devPayConfig.setParams("{}"); devPayConfig.setConfig("{}");
} else { } else {
devPayConfig.setParams(JSON.toJSONString(configValidate.getParams())); devPayConfig.setConfig(JSON.toJSONString(configValidate.getParams()));
} }
devPayConfigMapper.updateById(devPayConfig); devPayConfigMapper.updateById(devPayConfig);
} }

View File

@ -56,10 +56,9 @@ public class UserServiceImpl implements IUserService {
Integer pageSize = pageValidate.getPageSize(); Integer pageSize = pageValidate.getPageSize();
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_delete", 0); queryWrapper.isNull("delete_time");
queryWrapper.orderByDesc("id"); queryWrapper.orderByDesc("id");
queryWrapper.select(User.class, info-> queryWrapper.select(User.class, info->
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time") && !info.getColumn().equals("delete_time") &&
!info.getColumn().equals("update_time") && !info.getColumn().equals("update_time") &&
!info.getColumn().equals("password") && !info.getColumn().equals("password") &&
@ -76,7 +75,7 @@ public class UserServiceImpl implements IUserService {
userMapper.setSearch(queryWrapper, searchValidate, new String[]{ userMapper.setSearch(queryWrapper, searchValidate, new String[]{
"=:channel:int", "=:channel:int",
"datetime:startTime-endTime@create_time:str" "datetime:createTimeStart-createTimeEnd@create_time:str"
}); });
IPage<User> iPage = userMapper.selectPage( new Page<>(pageNo, pageSize), queryWrapper); IPage<User> iPage = userMapper.selectPage( new Page<>(pageNo, pageSize), queryWrapper);
@ -89,7 +88,7 @@ public class UserServiceImpl implements IUserService {
vo.setSex(user.getSex()); vo.setSex(user.getSex());
vo.setChannel(ClientEnum.getMsgByCode(user.getChannel())); vo.setChannel(ClientEnum.getMsgByCode(user.getChannel()));
vo.setAvatar(UrlUtils.toAbsoluteUrl(user.getAvatar())); vo.setAvatar(UrlUtils.toAbsoluteUrl(user.getAvatar()));
vo.setLastLoginTime(TimeUtils.timestampToDate(user.getLastLoginTime())); vo.setLoginTime(TimeUtils.timestampToDate(user.getLoginTime()));
vo.setCreateTime(TimeUtils.timestampToDate(user.getCreateTime())); vo.setCreateTime(TimeUtils.timestampToDate(user.getCreateTime()));
list.add(vo); list.add(vo);
} }
@ -110,21 +109,19 @@ public class UserServiceImpl implements IUserService {
userMapper.selectOne(new QueryWrapper<User>() userMapper.selectOne(new QueryWrapper<User>()
.select("id") .select("id")
.eq("id", id) .eq("id", id)
.eq("is_delete", 0) .isNull("delete_time")
.last("limit 1") .last("limit 1")
), "数据不存在!"); ), "数据不存在!");
User user = userMapper.selectOne(new QueryWrapper<User>() User user = userMapper.selectOne(new QueryWrapper<User>()
.select(User.class, info-> .select(User.class, info->
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time") && !info.getColumn().equals("delete_time") &&
!info.getColumn().equals("update_time") && !info.getColumn().equals("update_time") &&
!info.getColumn().equals("password") && !info.getColumn().equals("password") &&
!info.getColumn().equals("salt") !info.getColumn().equals("salt")
) )
.eq("id", id) .eq("id", id)
.eq("is_delete", 0)
.last("limit 1")); .last("limit 1"));
UserVo vo = new UserVo(); UserVo vo = new UserVo();
@ -134,10 +131,10 @@ public class UserServiceImpl implements IUserService {
vo.setAvatar(UrlUtils.toAbsoluteUrl(user.getAvatar())); vo.setAvatar(UrlUtils.toAbsoluteUrl(user.getAvatar()));
vo.setChannel(ClientEnum.getMsgByCode(user.getChannel())); vo.setChannel(ClientEnum.getMsgByCode(user.getChannel()));
vo.setCreateTime(TimeUtils.timestampToDate(user.getCreateTime())); vo.setCreateTime(TimeUtils.timestampToDate(user.getCreateTime()));
if (user.getLastLoginTime() <= 0) { if (user.getLoginTime() <= 0) {
vo.setLastLoginTime(""); vo.setLoginTime("");
} else { } else {
vo.setLastLoginTime(TimeUtils.timestampToDate(user.getLastLoginTime())); vo.setLoginTime(TimeUtils.timestampToDate(user.getLoginTime()));
} }
return vo; return vo;
} }
@ -156,17 +153,17 @@ public class UserServiceImpl implements IUserService {
User user = userMapper.selectOne(new QueryWrapper<User>() User user = userMapper.selectOne(new QueryWrapper<User>()
.eq("id", id) .eq("id", id)
.eq("is_delete", 0) .isNull("delete_time")
.last("limit 1")); .last("limit 1"));
Assert.notNull(user, "用户不存在!"); Assert.notNull(user, "用户不存在!");
switch (field) { switch (field) {
case "username": case "account":
if (!user.getUsername().equals(value)) { if (!user.getAccount().equals(value)) {
User u = userMapper.selectOne(new QueryWrapper<User>() User u = userMapper.selectOne(new QueryWrapper<User>()
.eq("username", value) .eq("username", value)
.eq("is_delete", 0) .isNull("delete_time")
.last("limit 1")); .last("limit 1"));
if (StringUtils.isNotNull(u) && !u.getId().equals(id)) { if (StringUtils.isNotNull(u) && !u.getId().equals(id)) {
@ -174,9 +171,9 @@ public class UserServiceImpl implements IUserService {
} }
} }
Assert.isTrue(value.length() <= 32,"账号不能超过32个字符"); Assert.isTrue(value.length() <= 32,"账号不能超过32个字符");
user.setUsername(value); user.setAccount(value);
break; break;
case "realName": case "real_name":
Assert.isTrue(value.length() <= 32,"真实姓名不能超过32个字符"); Assert.isTrue(value.length() <= 32,"真实姓名不能超过32个字符");
user.setRealName(value); user.setRealName(value);
break; break;
@ -213,8 +210,8 @@ public class UserServiceImpl implements IUserService {
Assert.notNull(user,"用户不存在!"); Assert.notNull(user,"用户不存在!");
BigDecimal userMoney = user.getMoney(); BigDecimal userMoney = user.getUserMoney();
BigDecimal amount = userWalletValidate.getAmount(); BigDecimal amount = userWalletValidate.getNum();
BigDecimal surplusAmount; BigDecimal surplusAmount;
int changeType; int changeType;
@ -231,7 +228,7 @@ public class UserServiceImpl implements IUserService {
logMoneyMapper.add(user.getId(), changeType, amount, 0, "", userWalletValidate.getRemark(), null); logMoneyMapper.add(user.getId(), changeType, amount, 0, "", userWalletValidate.getRemark(), null);
} }
user.setMoney(surplusAmount); user.setUserMoney(surplusAmount);
userMapper.updateById(user); userMapper.updateById(user);
} }

View File

@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.query.MPJQueryWrapper; import com.github.yulichang.query.MPJQueryWrapper;
import com.mdd.admin.service.admin.*; import com.mdd.admin.service.admin.*;
import com.mdd.admin.service.system.ISystemAuthPermService; import com.mdd.admin.service.system.ISystemAuthPermService;
import com.mdd.admin.service.system.ISystemMenuService;
import com.mdd.admin.validate.commons.PageValidate; import com.mdd.admin.validate.commons.PageValidate;
import com.mdd.admin.validate.system.SystemAdminCreateValidate; import com.mdd.admin.validate.system.SystemAdminCreateValidate;
import com.mdd.admin.validate.system.SystemAdminSearchValidate; import com.mdd.admin.validate.system.SystemAdminSearchValidate;
@ -58,6 +59,9 @@ public class AdminServiceImpl implements IAdminService {
@Resource @Resource
IAuthService iAuthService; IAuthService iAuthService;
@Resource
ISystemMenuService systemMenuService;
/** /**
* 管理员列表 * 管理员列表
* *
@ -234,8 +238,7 @@ public class AdminServiceImpl implements IAdminService {
.eq("nickname", createValidate.getNickname()) .eq("nickname", createValidate.getNickname())
.last("limit 1")), "昵称已存在换一个吧!"); .last("limit 1")), "昵称已存在换一个吧!");
String salt = ToolUtils.randomString(5); String pwd = ToolUtils.makePassword(createValidate.getPassword().trim());
String pwd = ToolUtils.makeMd5(createValidate.getPassword().trim() + salt);
String createAvatar = createValidate.getAvatar(); String createAvatar = createValidate.getAvatar();
String defaultAvatar = "/api/static/backend_avatar.png"; String defaultAvatar = "/api/static/backend_avatar.png";
@ -300,7 +303,7 @@ public class AdminServiceImpl implements IAdminService {
} }
if (StringUtils.isNotNull(updateValidate.getPassword()) && StringUtils.isNotEmpty(updateValidate.getPassword())) { if (StringUtils.isNotNull(updateValidate.getPassword()) && StringUtils.isNotEmpty(updateValidate.getPassword())) {
String pwd = ToolUtils.makeMd5( updateValidate.getPassword().trim()); String pwd = ToolUtils.makePassword( updateValidate.getPassword().trim());
model.setPassword(pwd); model.setPassword(pwd);
} }
@ -335,12 +338,12 @@ public class AdminServiceImpl implements IAdminService {
model.setUpdateTime(System.currentTimeMillis() / 1000); model.setUpdateTime(System.currentTimeMillis() / 1000);
if (StringUtils.isNotNull(upInfoValidate.getPassword()) && StringUtils.isNotEmpty(upInfoValidate.getPassword())) { if (StringUtils.isNotNull(upInfoValidate.getPassword()) && StringUtils.isNotEmpty(upInfoValidate.getPassword())) {
String currPassword = ToolUtils.makeMd5(upInfoValidate.getCurrPassword()); String currPassword = ToolUtils.makePassword(upInfoValidate.getCurrPassword());
Assert.isFalse(!currPassword.equals(model.getPassword()), "当前密码不正确!"); Assert.isFalse(!currPassword.equals(model.getPassword()), "当前密码不正确!");
if (upInfoValidate.getPassword().length() > 64) { if (upInfoValidate.getPassword().length() > 64) {
throw new OperateException("密码不能超出64个字符"); throw new OperateException("密码不能超出64个字符");
} }
String pwd = ToolUtils.makeMd5( upInfoValidate.getPassword().trim()); String pwd = ToolUtils.makePassword( upInfoValidate.getPassword().trim());
model.setPassword(pwd); model.setPassword(pwd);
} }
@ -406,10 +409,10 @@ public class AdminServiceImpl implements IAdminService {
} }
@Override @Override
public AdminMySelfVo mySelf(Integer id) { public AdminMySelfVo mySelf(Integer id, List<Integer> roleIds) {
AdminMySelfVo ret = new AdminMySelfVo(); AdminMySelfVo ret = new AdminMySelfVo();
// 当前管理员角色拥有的菜单 // 当前管理员角色拥有的菜单
ret.setMenu(new JSONArray()); ret.setMenu(systemMenuService.selectMenuByRoleId(roleIds));
// 当前管理员橘色拥有的按钮权限 // 当前管理员橘色拥有的按钮权限
ret.setPermissions(iAuthService.getBtnAuthByRoleId(id)); ret.setPermissions(iAuthService.getBtnAuthByRoleId(id));
SystemAuthAdminDetailVo admin = detail(id); SystemAuthAdminDetailVo admin = detail(id);

View File

@ -129,7 +129,7 @@ public class SystemLoginServiceImpl implements ISystemLoginService {
adminMapper.updateById(sysAdmin); adminMapper.updateById(sysAdmin);
// 记录登录日志 // 记录登录日志
this.recordLoginLog(sysAdmin.getId(), loginsValidate.getAccount(), ""); // this.recordLoginLog(sysAdmin.getId(), loginsValidate.getAccount(), "");
// 响应登录信息 // 响应登录信息
String defaultAvatar = "/api/static/backend_avatar.png"; String defaultAvatar = "/api/static/backend_avatar.png";

View File

@ -46,9 +46,9 @@ public class SystemMenuServiceImpl implements ISystemMenuService {
List<Integer> menuIds = iSystemAuthPermService.selectMenuIdsByRoleId(roleIds); List<Integer> menuIds = iSystemAuthPermService.selectMenuIdsByRoleId(roleIds);
QueryWrapper<SystemMenu> queryWrapper = new QueryWrapper<>(); QueryWrapper<SystemMenu> queryWrapper = new QueryWrapper<>();
queryWrapper.in("menu_type", Arrays.asList("M", "C")); queryWrapper.in("type", Arrays.asList("M", "C"));
queryWrapper.eq("is_disable", 0); queryWrapper.eq("is_disable", 0);
queryWrapper.orderByDesc("menu_sort"); queryWrapper.orderByDesc("sort");
queryWrapper.orderByAsc("id"); queryWrapper.orderByAsc("id");
if (!adminId.equals(1)) { if (!adminId.equals(1)) {
if (menuIds.size() <= 0) { if (menuIds.size() <= 0) {

View File

@ -19,9 +19,9 @@ public class UserSearchValidate implements Serializable {
private String keyword; private String keyword;
@ApiModelProperty(value = "开始时间") @ApiModelProperty(value = "开始时间")
private String startTime; private String createTimeStart;
@ApiModelProperty(value = "结束时间") @ApiModelProperty(value = "结束时间")
private String endTime; private String createTimeEnd;
} }

View File

@ -22,7 +22,7 @@ public class UserWalletValidate implements Serializable {
private Integer action; private Integer action;
@NotNull(message = "请输入变动金额") @NotNull(message = "请输入变动金额")
private BigDecimal amount; private BigDecimal num;
private String remark; private String remark;

View File

@ -1,5 +1,6 @@
package com.mdd.admin.vo.system; package com.mdd.admin.vo.system;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -19,16 +20,16 @@ public class SystemAuthMenuVo implements Serializable {
private Integer pid; private Integer pid;
@ApiModelProperty(value = "权限类型: [M=目录, C=菜单, A=按钮]") @ApiModelProperty(value = "权限类型: [M=目录, C=菜单, A=按钮]")
private String menuType; private String type;
@ApiModelProperty(value = "菜单名称") @ApiModelProperty(value = "菜单名称")
private String menuName; private String name;
@ApiModelProperty(value = "菜单图标") @ApiModelProperty(value = "菜单图标")
private String menuIcon; private String icon;
@ApiModelProperty(value = "菜单排序") @ApiModelProperty(value = "菜单排序")
private Integer menuSort; private Integer sort;
@ApiModelProperty(value = "权限标识") @ApiModelProperty(value = "权限标识")
private String perms; private String perms;
@ -46,18 +47,23 @@ public class SystemAuthMenuVo implements Serializable {
private String params; private String params;
@ApiModelProperty(value = "是否缓存: [0=否, 1=是]") @ApiModelProperty(value = "是否缓存: [0=否, 1=是]")
@JsonProperty("is_cache")
private Integer isCache; private Integer isCache;
@ApiModelProperty(value = "是否显示: [0=否, 1=是]") @ApiModelProperty(value = "是否显示: [0=否, 1=是]")
@JsonProperty("is_show")
private Integer isShow; private Integer isShow;
@ApiModelProperty(value = "是否禁用: [0=否, 1=是]") @ApiModelProperty(value = "是否禁用: [0=否, 1=是]")
@JsonProperty("is_disable")
private Integer isDisable; private Integer isDisable;
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
@JsonProperty("create_time")
private String createTime; private String createTime;
@ApiModelProperty(value = "更新时间") @ApiModelProperty(value = "更新时间")
@JsonProperty("update_time")
private String updateTime; private String updateTime;
} }

View File

@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
@Data @Data
@ApiModel("用户Vo") @ApiModel("用户Vo")
@ -28,7 +29,7 @@ public class UserVo implements Serializable {
private String nickname; private String nickname;
@ApiModelProperty(value = "登录账号") @ApiModelProperty(value = "登录账号")
private String username; private String account;
@ApiModelProperty(value = "手机号码") @ApiModelProperty(value = "手机号码")
private String mobile; private String mobile;
@ -40,10 +41,13 @@ public class UserVo implements Serializable {
private String channel; private String channel;
@ApiModelProperty(value = "最后登录IP") @ApiModelProperty(value = "最后登录IP")
private String lastLoginIp; private String loginIp;
@ApiModelProperty(value = "用户余额")
private BigDecimal userMoney;
@ApiModelProperty(value = "最后登录时间") @ApiModelProperty(value = "最后登录时间")
private String lastLoginTime; private String loginTime;
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
private String createTime; private String createTime;

View File

@ -42,7 +42,7 @@ public class WxPayConfiguration {
public WxPayService mnpPayService() { public WxPayService mnpPayService() {
DevPayConfig config = devPayConfigMapper.selectOne( DevPayConfig config = devPayConfigMapper.selectOne(
new QueryWrapper<DevPayConfig>() new QueryWrapper<DevPayConfig>()
.eq("way", PaymentEnum.WX_PAY.getCode()) .eq("pay_way", PaymentEnum.WX_PAY.getCode())
.last("limit 1")); .last("limit 1"));
Config systemConfig = systemConfigMapper.selectOne(new QueryWrapper<Config>() Config systemConfig = systemConfigMapper.selectOne(new QueryWrapper<Config>()
@ -50,7 +50,7 @@ public class WxPayConfiguration {
.eq("name", "appId") .eq("name", "appId")
.last("limit 1")); .last("limit 1"));
String paramJson = StringUtils.isNull(config.getParams()) ? "{}" : config.getParams().toString(); String paramJson = StringUtils.isNull(config.getConfig()) ? "{}" : config.getConfig().toString();
Map<String, String> params = MapUtils.jsonToMap(paramJson); Map<String, String> params = MapUtils.jsonToMap(paramJson);
String appId = StringUtils.isNull(systemConfig) ? "" : systemConfig.getValue(); String appId = StringUtils.isNull(systemConfig) ? "" : systemConfig.getValue();
String mchId = params.getOrDefault("mch_id", ""); String mchId = params.getOrDefault("mch_id", "");
@ -81,7 +81,7 @@ public class WxPayConfiguration {
public WxPayService wxOaService() { public WxPayService wxOaService() {
DevPayConfig config = devPayConfigMapper.selectOne( DevPayConfig config = devPayConfigMapper.selectOne(
new QueryWrapper<DevPayConfig>() new QueryWrapper<DevPayConfig>()
.eq("way", PaymentEnum.WX_PAY.getCode()) .eq("pay_way", PaymentEnum.WX_PAY.getCode())
.last("limit 1")); .last("limit 1"));
Config systemConfig = systemConfigMapper.selectOne(new QueryWrapper<Config>() Config systemConfig = systemConfigMapper.selectOne(new QueryWrapper<Config>()
@ -89,7 +89,7 @@ public class WxPayConfiguration {
.eq("type", "oa_channel") .eq("type", "oa_channel")
.last("limit 1")); .last("limit 1"));
String paramJson = StringUtils.isNull(config.getParams()) ? "{}" : config.getParams().toString(); String paramJson = StringUtils.isNull(config.getConfig()) ? "{}" : config.getConfig().toString();
Map<String, String> params = MapUtils.jsonToMap(paramJson); Map<String, String> params = MapUtils.jsonToMap(paramJson);
String appId = StringUtils.isNull(systemConfig) ? "" : systemConfig.getValue(); String appId = StringUtils.isNull(systemConfig) ? "" : systemConfig.getValue();
String mchId = params.getOrDefault("mch_id", ""); String mchId = params.getOrDefault("mch_id", "");

View File

@ -30,7 +30,7 @@ public class DevPayConfig implements Serializable {
private String icon; private String icon;
@ApiModelProperty("支付方式: [1=余额支付, 2=微信支付, 3=支付宝支付]") @ApiModelProperty("支付方式: [1=余额支付, 2=微信支付, 3=支付宝支付]")
private Integer way; private Integer payWay;
@ApiModelProperty("排序编号") @ApiModelProperty("排序编号")
private Integer sort; private Integer sort;
@ -39,6 +39,6 @@ public class DevPayConfig implements Serializable {
private String remark; private String remark;
@ApiModelProperty("配置参数") @ApiModelProperty("配置参数")
private Object params; private Object config;
} }

View File

@ -32,7 +32,7 @@ public class User implements Serializable {
private String nickname; private String nickname;
@ApiModelProperty("用户账号") @ApiModelProperty("用户账号")
private String username; private String account;
@ApiModelProperty("用户密码") @ApiModelProperty("用户密码")
private String password; private String password;
@ -41,13 +41,16 @@ public class User implements Serializable {
private String mobile; private String mobile;
@ApiModelProperty("用户钱包") @ApiModelProperty("用户钱包")
private BigDecimal money; private BigDecimal userMoney;
@ApiModelProperty("累计充值")
private BigDecimal totalRechargeAmount;
@ApiModelProperty("注册渠道") @ApiModelProperty("注册渠道")
private Integer channel; private Integer channel;
@ApiModelProperty("加密盐巴") // @ApiModelProperty("加密盐巴")
private String salt; // private String salt;
@ApiModelProperty("用户性别: [1=男, 2=女]") @ApiModelProperty("用户性别: [1=男, 2=女]")
private Integer sex; private Integer sex;
@ -55,14 +58,11 @@ public class User implements Serializable {
@ApiModelProperty("是否禁用: [0=否, 1=是]") @ApiModelProperty("是否禁用: [0=否, 1=是]")
private Integer isDisable; private Integer isDisable;
@ApiModelProperty("是否删除: [0=否, 1=是]")
private Integer isDelete;
@ApiModelProperty("最后登录IP") @ApiModelProperty("最后登录IP")
private String lastLoginIp; private String loginIp;
@ApiModelProperty("最后登录时间") @ApiModelProperty("最后登录时间")
private Long lastLoginTime; private Long loginTime;
@ApiModelProperty("创建时间") @ApiModelProperty("创建时间")
private Long createTime; private Long createTime;
@ -74,6 +74,6 @@ public class User implements Serializable {
private Long deleteTime; private Long deleteTime;
@ApiModelProperty("是否为新用户: [0=否, 1=是]") @ApiModelProperty("是否为新用户: [0=否, 1=是]")
private Integer isNew; private Integer isNewUser;
} }

View File

@ -40,7 +40,7 @@ public interface LogMoneyMapper extends IBaseMapper<LogMoney> {
break; break;
} }
BigDecimal leftAmount = user.getMoney().add(changeAmount); BigDecimal leftAmount = user.getUserMoney().add(changeAmount);
LogMoney logMoney = new LogMoney(); LogMoney logMoney = new LogMoney();
logMoney.setSn(this.randMakeOrderSn()); logMoney.setSn(this.randMakeOrderSn());
@ -80,7 +80,7 @@ public interface LogMoneyMapper extends IBaseMapper<LogMoney> {
break; break;
} }
BigDecimal leftAmount = user.getMoney().subtract(changeAmount); BigDecimal leftAmount = user.getUserMoney().subtract(changeAmount);
LogMoney logMoney = new LogMoney(); LogMoney logMoney = new LogMoney();
logMoney.setSn(this.randMakeOrderSn()); logMoney.setSn(this.randMakeOrderSn());

View File

@ -158,13 +158,13 @@ public class WxPayDriver {
private static void resetConfig(String type) { private static void resetConfig(String type) {
DevPayConfig config = devPayConfigMapper.selectOne( DevPayConfig config = devPayConfigMapper.selectOne(
new QueryWrapper<DevPayConfig>() new QueryWrapper<DevPayConfig>()
.eq("way", 2) .eq("pay_way", 2)
.last("limit 1")); .last("limit 1"));
String scene = type.equals("oa") ? "oa_channel" : "mp_channel"; String scene = type.equals("oa") ? "oa_channel" : "mp_channel";
String appId = ConfigUtils.get(scene, "appId", ""); String appId = ConfigUtils.get(scene, "appId", "");
Map<String, String> params = MapUtils.jsonToMap(config.getParams().toString()); Map<String, String> params = MapUtils.jsonToMap(config.getConfig().toString());
String mchId = params.get("mch_id"); String mchId = params.get("mch_id");
String paySignKey = params.get("pay_sign_key"); String paySignKey = params.get("pay_sign_key");
byte[] privateCert = params.getOrDefault("private_cert", "").getBytes(); byte[] privateCert = params.getOrDefault("private_cert", "").getBytes();

View File

@ -178,7 +178,7 @@ public class LikeFrontInterceptor implements HandlerInterceptor {
// 写入线程 // 写入线程
LikeFrontThreadLocal.put("userId", user.getId()); LikeFrontThreadLocal.put("userId", user.getId());
LikeFrontThreadLocal.put("userSn", user.getSn()); LikeFrontThreadLocal.put("userSn", user.getSn());
LikeFrontThreadLocal.put("username", user.getUsername()); LikeFrontThreadLocal.put("username", user.getAccount());
LikeFrontThreadLocal.put("nickname", user.getNickname()); LikeFrontThreadLocal.put("nickname", user.getNickname());
LikeFrontThreadLocal.put("mobile", user.getMobile()); LikeFrontThreadLocal.put("mobile", user.getMobile());
} }

View File

@ -65,18 +65,17 @@ public class LoginServiceImpl implements ILoginService {
Assert.isNull(model, "账号已存在,换一个吧!"); Assert.isNull(model, "账号已存在,换一个吧!");
Integer sn = this.__generateSn(); Integer sn = this.__generateSn();
String salt = ToolUtils.randomString(5); // String salt = ToolUtils.randomString(5);
String pwd = ToolUtils.makeMd5(password+salt); String pwd = ToolUtils.makePassword(password);
User user = new User(); User user = new User();
user.setSn(sn); user.setSn(sn);
user.setNickname("用户"+sn); user.setNickname("用户"+sn);
user.setUsername(username); user.setAccount(username);
user.setPassword(pwd); user.setPassword(pwd);
user.setSalt(salt);
user.setAvatar("/api/static/default_avatar.png"); user.setAvatar("/api/static/default_avatar.png");
user.setChannel(terminal); user.setChannel(terminal);
user.setIsNew(1); user.setIsNewUser(1);
user.setCreateTime(System.currentTimeMillis() / 1000); user.setCreateTime(System.currentTimeMillis() / 1000);
user.setUpdateTime(System.currentTimeMillis() / 1000); user.setUpdateTime(System.currentTimeMillis() / 1000);
userMapper.insert(user); userMapper.insert(user);
@ -99,11 +98,11 @@ public class LoginServiceImpl implements ILoginService {
.last("limit 1")); .last("limit 1"));
Assert.notNull(user, "账号不存在!"); Assert.notNull(user, "账号不存在!");
String pwd = ToolUtils.makeMd5(password+user.getSalt()); String pwd = ToolUtils.makePassword(password);
Assert.isFalse(!pwd.equals(user.getPassword()), "账号或密码错误!"); Assert.isFalse(!pwd.equals(user.getPassword()), "账号或密码错误!");
Assert.isFalse(!user.getIsDisable().equals(0), "账号已被禁用!"); Assert.isFalse(!user.getIsDisable().equals(0), "账号已被禁用!");
return this.__loginToken(user.getId(), user.getMobile(), user.getIsNew(), terminal); return this.__loginToken(user.getId(), user.getMobile(), user.getIsNewUser(), terminal);
} }
/** /**
@ -132,7 +131,7 @@ public class LoginServiceImpl implements ILoginService {
Assert.notNull(user, "账号不存在!"); Assert.notNull(user, "账号不存在!");
Assert.isFalse(user.getIsDisable() != 0, "账号已禁用!"); Assert.isFalse(user.getIsDisable() != 0, "账号已禁用!");
return this.__loginToken(user.getId(), user.getMobile(), user.getIsNew(), terminal); return this.__loginToken(user.getId(), user.getMobile(), user.getIsNewUser(), terminal);
} }
/** /**
@ -355,14 +354,14 @@ public class LoginServiceImpl implements ILoginService {
model.setSn(sn); model.setSn(sn);
model.setAvatar(defaultAvatar); model.setAvatar(defaultAvatar);
model.setNickname(defaultNickname); model.setNickname(defaultNickname);
model.setUsername("u" + sn); model.setAccount("u" + sn);
model.setChannel(terminal); model.setChannel(terminal);
model.setSex(0); model.setSex(0);
model.setLastLoginIp(IpUtils.getHostIp()); model.setLoginIp(IpUtils.getHostIp());
model.setLastLoginTime(System.currentTimeMillis() / 1000); model.setLoginTime(System.currentTimeMillis() / 1000);
model.setUpdateTime(System.currentTimeMillis() / 1000); model.setUpdateTime(System.currentTimeMillis() / 1000);
model.setCreateTime(System.currentTimeMillis() / 1000); model.setCreateTime(System.currentTimeMillis() / 1000);
model.setIsNew(1); model.setIsNewUser(1);
userMapper.insert(model); userMapper.insert(model);
user = model; user = model;
} }
@ -390,7 +389,7 @@ public class LoginServiceImpl implements ILoginService {
userAuthMapper.updateById(auth); userAuthMapper.updateById(auth);
} }
return this.__loginToken(user.getId(), user.getMobile(), user.getIsNew(), terminal); return this.__loginToken(user.getId(), user.getMobile(), user.getIsNewUser(), terminal);
} }
/** /**
@ -408,8 +407,8 @@ public class LoginServiceImpl implements ILoginService {
// 更新登录信息 // 更新登录信息
User user = new User(); User user = new User();
user.setLastLoginIp(IpUtils.getHostIp()); user.setLoginIp(IpUtils.getHostIp());
user.setLastLoginTime(System.currentTimeMillis() / 1000); user.setLoginTime(System.currentTimeMillis() / 1000);
userMapper.update(user, new QueryWrapper<User>().eq("id", userId)); userMapper.update(user, new QueryWrapper<User>().eq("id", userId));
// 返回登录信息 // 返回登录信息

View File

@ -235,7 +235,7 @@ public class PayServiceImpl implements IPayService {
rechargeOrderMapper.updateById(rechargeOrder); rechargeOrderMapper.updateById(rechargeOrder);
User user = userMapper.selectById(rechargeOrder.getUserId()); User user = userMapper.selectById(rechargeOrder.getUserId());
user.setMoney(user.getMoney().add(rechargeOrder.getOrderAmount())); user.setUserMoney(user.getUserMoney().add(rechargeOrder.getOrderAmount()));
user.setUpdateTime(System.currentTimeMillis() / 1000); user.setUpdateTime(System.currentTimeMillis() / 1000);
userMapper.updateById(user); userMapper.updateById(user);

View File

@ -53,7 +53,7 @@ public class RechargeServiceImpl implements IRechargeService {
RechargeConfigVo vo = new RechargeConfigVo(); RechargeConfigVo vo = new RechargeConfigVo();
vo.setOpenRecharge(Integer.parseInt(config.getOrDefault("openRecharge", "0"))); vo.setOpenRecharge(Integer.parseInt(config.getOrDefault("openRecharge", "0")));
vo.setMinRechargeMoney(new BigDecimal(config.getOrDefault("minRechargeMoney", "0"))); vo.setMinRechargeMoney(new BigDecimal(config.getOrDefault("minRechargeMoney", "0")));
vo.setUserMoney(user.getMoney()); vo.setUserMoney(user.getUserMoney());
return vo; return vo;
} }

View File

@ -54,7 +54,7 @@ public class UserServiceImpl implements IUserService {
@Override @Override
public UserCenterVo center(Integer userId, Integer terminal) { public UserCenterVo center(Integer userId, Integer terminal) {
User user = userMapper.selectOne(new QueryWrapper<User>() User user = userMapper.selectOne(new QueryWrapper<User>()
.select("id,sn,avatar,real_name,nickname,username,mobile,money,is_new,password") .select("id,sn,avatar,real_name,nickname,account,mobile,user_money,is_new_user,password")
.eq("id", userId) .eq("id", userId)
.last("limit 1")); .last("limit 1"));
@ -93,7 +93,7 @@ public class UserServiceImpl implements IUserService {
@Override @Override
public UserInfoVo info(Integer userId) { public UserInfoVo info(Integer userId) {
User user = userMapper.selectOne(new QueryWrapper<User>() User user = userMapper.selectOne(new QueryWrapper<User>()
.select("id,sn,avatar,real_name,nickname,username,mobile,password,sex,create_time") .select("id,sn,avatar,real_name,nickname,account,mobile,password,sex,create_time")
.eq("id", userId) .eq("id", userId)
.last("limit 1")); .last("limit 1"));
@ -151,13 +151,13 @@ public class UserServiceImpl implements IUserService {
throw new OperateException("账号已被使用!"); throw new OperateException("账号已被使用!");
} }
if (StringUtils.isNotNull(usernameUser) && usernameUser.getUsername().equals(value)) { if (StringUtils.isNotNull(usernameUser) && usernameUser.getAccount().equals(value)) {
throw new OperateException("新账号与旧账号一致,修改失败!"); throw new OperateException("新账号与旧账号一致,修改失败!");
} }
User u = new User(); User u = new User();
u.setId(userId); u.setId(userId);
u.setUsername(value); u.setAccount(value);
u.setUpdateTime(System.currentTimeMillis() / 1000); u.setUpdateTime(System.currentTimeMillis() / 1000);
userMapper.updateById(u); userMapper.updateById(u);
break; break;
@ -199,19 +199,17 @@ public class UserServiceImpl implements IUserService {
if (!user.getPassword().equals("")) { if (!user.getPassword().equals("")) {
Assert.notNull(oldPassword, "oldPassword参数缺失"); Assert.notNull(oldPassword, "oldPassword参数缺失");
String oldPwd = ToolUtils.makeMd5(oldPassword.trim() + user.getSalt()); String oldPwd = ToolUtils.makePassword(oldPassword.trim());
if (!oldPwd.equals(user.getPassword())) { if (!oldPwd.equals(user.getPassword())) {
throw new OperateException("原密码不正确!"); throw new OperateException("原密码不正确!");
} }
} }
String salt = ToolUtils.randomString(5); String pwd = ToolUtils.makePassword(password.trim());
String pwd = ToolUtils.makeMd5(password.trim()+salt);
User u = new User(); User u = new User();
u.setId(userId); u.setId(userId);
u.setPassword(pwd); u.setPassword(pwd);
u.setSalt(salt);
u.setUpdateTime(System.currentTimeMillis() / 1000); u.setUpdateTime(System.currentTimeMillis() / 1000);
userMapper.updateById(u); userMapper.updateById(u);
} }
@ -242,12 +240,11 @@ public class UserServiceImpl implements IUserService {
// 验证账号 // 验证账号
com.baomidou.mybatisplus.core.toolkit.Assert.notNull(user, "账号不存在!"); com.baomidou.mybatisplus.core.toolkit.Assert.notNull(user, "账号不存在!");
String salt = ToolUtils.randomString(5); // String salt = ToolUtils.randomString(5);
String pwd = ToolUtils.makeMd5(password.trim()+salt); String pwd = ToolUtils.makePassword(password.trim());
// 更新密码 // 更新密码
user.setPassword(pwd); user.setPassword(pwd);
user.setSalt(salt);
user.setUpdateTime(System.currentTimeMillis() / 1000); user.setUpdateTime(System.currentTimeMillis() / 1000);
userMapper.updateById(user); userMapper.updateById(user);
} }
@ -330,7 +327,7 @@ public class UserServiceImpl implements IUserService {
user.setId(userId); user.setId(userId);
user.setNickname(newUserUpdateValidate.getNickname()); user.setNickname(newUserUpdateValidate.getNickname());
user.setAvatar(UrlUtils.toRelativeUrl(newUserUpdateValidate.getAvatar())); user.setAvatar(UrlUtils.toRelativeUrl(newUserUpdateValidate.getAvatar()));
user.setIsNew(0); user.setIsNewUser(0);
user.setUpdateTime(System.currentTimeMillis() / 1000); user.setUpdateTime(System.currentTimeMillis() / 1000);
userMapper.updateById(user); userMapper.updateById(user);
} }