修改登录

用户列表
全局配置
用户修改
同步用户表结构
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;
import com.mdd.common.aop.NotLogin;
import com.mdd.admin.service.IIndexService;
import com.mdd.common.core.AjaxResult;
import io.swagger.annotations.Api;
@@ -15,11 +14,18 @@ import java.util.Map;
@Slf4j
@RestController
@RequestMapping("api/index")
@RequestMapping("/adminapi/workbench")
@Api(tags = "主页数据管理")
public class IndexController {
@Resource
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;
@RestController
@RequestMapping("api/user")
@RequestMapping({"adminapi/user/user", "adminapi/user.user"})
@Api(tags = "用户数据管理")
public class UserController {
@Resource
IUserService iUserService;
@GetMapping("/list")
@GetMapping("/lists")
@ApiOperation(value="用户列表")
public AjaxResult<PageResult<UserVo>> list(@Validated PageValidate pageValidate,
@Validated UserSearchValidate searchValidate) {
@@ -49,7 +49,7 @@ public class UserController {
}
@Log(title = "余额调整")
@PostMapping("/adjustWallet")
@PostMapping("/adjustMoney")
@ApiOperation(value="余额调整")
public AjaxResult<Object> adjustWallet(@Validated @RequestBody UserWalletValidate 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 javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@Slf4j
@@ -28,7 +29,8 @@ public class AdminController {
@GetMapping("/mySelf")
@ApiOperation(value="获取当前管理员信息")
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);
}

View File

@@ -13,7 +13,7 @@ public interface IIndexService {
* @author fzr
* @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.common.core.PageResult;
import java.util.List;
/**
* 系统管理员服务接口类
*/
@@ -91,5 +93,5 @@ public interface IAdminService {
* @param id
* @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());
if (user.getMoney().compareTo(rechargeOrder.getOrderAmount()) < 0) {
if (user.getUserMoney().compareTo(rechargeOrder.getOrderAmount()) < 0) {
throw new OperateException("退款失败:用户余额已不足退款金额!");
}
@@ -162,7 +162,7 @@ public class FinanceRechargerServiceImpl implements IFinanceRechargerService {
rechargeOrderMapper.updateById(rechargeOrder);
// 更新用户余额
user.setMoney(user.getMoney().subtract(rechargeOrder.getOrderAmount()));
user.setUserMoney(user.getUserMoney().subtract(rechargeOrder.getOrderAmount()));
userMapper.updateById(user);
// 记录余额日志

View File

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

View File

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

View File

@@ -56,10 +56,9 @@ public class UserServiceImpl implements IUserService {
Integer pageSize = pageValidate.getPageSize();
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_delete", 0);
queryWrapper.isNull("delete_time");
queryWrapper.orderByDesc("id");
queryWrapper.select(User.class, info->
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time") &&
!info.getColumn().equals("update_time") &&
!info.getColumn().equals("password") &&
@@ -76,7 +75,7 @@ public class UserServiceImpl implements IUserService {
userMapper.setSearch(queryWrapper, searchValidate, new String[]{
"=:channel:int",
"datetime:startTime-endTime@create_time:str"
"datetime:createTimeStart-createTimeEnd@create_time:str"
});
IPage<User> iPage = userMapper.selectPage( new Page<>(pageNo, pageSize), queryWrapper);
@@ -89,7 +88,7 @@ public class UserServiceImpl implements IUserService {
vo.setSex(user.getSex());
vo.setChannel(ClientEnum.getMsgByCode(user.getChannel()));
vo.setAvatar(UrlUtils.toAbsoluteUrl(user.getAvatar()));
vo.setLastLoginTime(TimeUtils.timestampToDate(user.getLastLoginTime()));
vo.setLoginTime(TimeUtils.timestampToDate(user.getLoginTime()));
vo.setCreateTime(TimeUtils.timestampToDate(user.getCreateTime()));
list.add(vo);
}
@@ -110,21 +109,19 @@ public class UserServiceImpl implements IUserService {
userMapper.selectOne(new QueryWrapper<User>()
.select("id")
.eq("id", id)
.eq("is_delete", 0)
.isNull("delete_time")
.last("limit 1")
), "数据不存在!");
User user = userMapper.selectOne(new QueryWrapper<User>()
.select(User.class, info->
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time") &&
!info.getColumn().equals("update_time") &&
!info.getColumn().equals("password") &&
!info.getColumn().equals("salt")
)
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
UserVo vo = new UserVo();
@@ -134,10 +131,10 @@ public class UserServiceImpl implements IUserService {
vo.setAvatar(UrlUtils.toAbsoluteUrl(user.getAvatar()));
vo.setChannel(ClientEnum.getMsgByCode(user.getChannel()));
vo.setCreateTime(TimeUtils.timestampToDate(user.getCreateTime()));
if (user.getLastLoginTime() <= 0) {
vo.setLastLoginTime("");
if (user.getLoginTime() <= 0) {
vo.setLoginTime("");
} else {
vo.setLastLoginTime(TimeUtils.timestampToDate(user.getLastLoginTime()));
vo.setLoginTime(TimeUtils.timestampToDate(user.getLoginTime()));
}
return vo;
}
@@ -156,17 +153,17 @@ public class UserServiceImpl implements IUserService {
User user = userMapper.selectOne(new QueryWrapper<User>()
.eq("id", id)
.eq("is_delete", 0)
.isNull("delete_time")
.last("limit 1"));
Assert.notNull(user, "用户不存在!");
switch (field) {
case "username":
if (!user.getUsername().equals(value)) {
case "account":
if (!user.getAccount().equals(value)) {
User u = userMapper.selectOne(new QueryWrapper<User>()
.eq("username", value)
.eq("is_delete", 0)
.isNull("delete_time")
.last("limit 1"));
if (StringUtils.isNotNull(u) && !u.getId().equals(id)) {
@@ -174,9 +171,9 @@ public class UserServiceImpl implements IUserService {
}
}
Assert.isTrue(value.length() <= 32,"账号不能超过32个字符");
user.setUsername(value);
user.setAccount(value);
break;
case "realName":
case "real_name":
Assert.isTrue(value.length() <= 32,"真实姓名不能超过32个字符");
user.setRealName(value);
break;
@@ -213,8 +210,8 @@ public class UserServiceImpl implements IUserService {
Assert.notNull(user,"用户不存在!");
BigDecimal userMoney = user.getMoney();
BigDecimal amount = userWalletValidate.getAmount();
BigDecimal userMoney = user.getUserMoney();
BigDecimal amount = userWalletValidate.getNum();
BigDecimal surplusAmount;
int changeType;
@@ -231,7 +228,7 @@ public class UserServiceImpl implements IUserService {
logMoneyMapper.add(user.getId(), changeType, amount, 0, "", userWalletValidate.getRemark(), null);
}
user.setMoney(surplusAmount);
user.setUserMoney(surplusAmount);
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.mdd.admin.service.admin.*;
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.system.SystemAdminCreateValidate;
import com.mdd.admin.validate.system.SystemAdminSearchValidate;
@@ -58,6 +59,9 @@ public class AdminServiceImpl implements IAdminService {
@Resource
IAuthService iAuthService;
@Resource
ISystemMenuService systemMenuService;
/**
* 管理员列表
*
@@ -234,8 +238,7 @@ public class AdminServiceImpl implements IAdminService {
.eq("nickname", createValidate.getNickname())
.last("limit 1")), "昵称已存在换一个吧!");
String salt = ToolUtils.randomString(5);
String pwd = ToolUtils.makeMd5(createValidate.getPassword().trim() + salt);
String pwd = ToolUtils.makePassword(createValidate.getPassword().trim());
String createAvatar = createValidate.getAvatar();
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())) {
String pwd = ToolUtils.makeMd5( updateValidate.getPassword().trim());
String pwd = ToolUtils.makePassword( updateValidate.getPassword().trim());
model.setPassword(pwd);
}
@@ -335,12 +338,12 @@ public class AdminServiceImpl implements IAdminService {
model.setUpdateTime(System.currentTimeMillis() / 1000);
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()), "当前密码不正确!");
if (upInfoValidate.getPassword().length() > 64) {
throw new OperateException("密码不能超出64个字符");
}
String pwd = ToolUtils.makeMd5( upInfoValidate.getPassword().trim());
String pwd = ToolUtils.makePassword( upInfoValidate.getPassword().trim());
model.setPassword(pwd);
}
@@ -406,10 +409,10 @@ public class AdminServiceImpl implements IAdminService {
}
@Override
public AdminMySelfVo mySelf(Integer id) {
public AdminMySelfVo mySelf(Integer id, List<Integer> roleIds) {
AdminMySelfVo ret = new AdminMySelfVo();
// 当前管理员角色拥有的菜单
ret.setMenu(new JSONArray());
ret.setMenu(systemMenuService.selectMenuByRoleId(roleIds));
// 当前管理员橘色拥有的按钮权限
ret.setPermissions(iAuthService.getBtnAuthByRoleId(id));
SystemAuthAdminDetailVo admin = detail(id);

View File

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

View File

@@ -46,9 +46,9 @@ public class SystemMenuServiceImpl implements ISystemMenuService {
List<Integer> menuIds = iSystemAuthPermService.selectMenuIdsByRoleId(roleIds);
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.orderByDesc("menu_sort");
queryWrapper.orderByDesc("sort");
queryWrapper.orderByAsc("id");
if (!adminId.equals(1)) {
if (menuIds.size() <= 0) {

View File

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

View File

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

View File

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

View File

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