Commit 448d645d by zhangjw

Merge branch 'master' of http://119.28.51.83/hewei/Jumeirah into Jw

parents 5bd85c3e 949d3fbe
......@@ -41,5 +41,16 @@ public class AppSmsController extends BaseController {
return appSmsService.registerOrLoginCode(phoneArea, phone);
}
/**
* 获取修改手机号的验证码
*/
@GetMapping("/updatePhoneCode")
@OperationLog(name = "获取修改手机号的验证码", type = OperationLogType.INFO)
@ApiOperation(value = "获取修改手机号的验证码", response = Object.class, notes = "本地环境默认666666")
public ApiResult<Object> updatePhoneCode() throws Exception {
return appSmsService.updatePhoneCode();
}
}
......@@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
......@@ -41,7 +42,7 @@ public class AppUserController extends BaseController {
private AppUserApiService appUserApiService;
/**
* 添加APP用户
* 补充或修改APP用户信息
*/
@PostMapping("/updateAppUserInfo")
@OperationLog(name = "补充或修改APP用户信息", type = OperationLogType.ADD)
......@@ -51,6 +52,17 @@ public class AppUserController extends BaseController {
return ApiResult.result(flag);
}
/**
* 修改手机号
*/
@PostMapping("/updatePhone")
@OperationLog(name = "修改手机号", type = OperationLogType.ADD)
@ApiOperation(value = "修改手机号", response = ApiResult.class)
public ApiResult<Boolean> updatePhone(@RequestParam String phoneArea, @RequestParam String phone, @RequestParam String code) throws Exception {
return appUserApiService.updatePhone(phoneArea, phone, code);
}
/* *//**
* 添加APP用户
*//*
......
package com.jumeirah.api.app.controller;
import com.jumeirah.common.entity.UserActiveRecord;
import com.jumeirah.common.service.UserActiveRecordService;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.controller.BaseController;
import io.geekidea.springbootplus.framework.log.annotation.OperationLog;
import io.geekidea.springbootplus.framework.log.enums.OperationLogType;
import io.geekidea.springbootplus.framework.shiro.jwt.JwtToken;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
/**
* app用户活跃记录表 控制器
*
* @author giao
* @since 2020-10-21
*/
@Slf4j
@RestController
@RequestMapping("/app/userActiveRecord")
@Api(value = "app用户活跃记录表API", tags = {"app用户活跃记录表"})
public class UserActiveRecordController extends BaseController {
@Autowired
private UserActiveRecordService userActiveRecordService;
/**
* 添加app用户活跃记录表
*/
@PostMapping("/add")
@OperationLog(name = "添加app用户活跃记录表", type = OperationLogType.ADD)
@ApiOperation(value = "添加app用户活跃记录表")
public ApiResult<Boolean> addUserActiveRecord() throws Exception {
JwtToken jwtToken = (JwtToken) SecurityUtils.getSubject().getPrincipal();
UserActiveRecord userActiveRecord = new UserActiveRecord();
userActiveRecord.setUserId(jwtToken.getUserId());
userActiveRecord.setRecordDate(new Date());
boolean flag = userActiveRecordService.saveUserActiveRecord(userActiveRecord);
return ApiResult.result(flag);
}
//
// /**
// * 修改app用户活跃记录表
// */
// @PostMapping("/update")
// @OperationLog(name = "修改app用户活跃记录表", type = OperationLogType.UPDATE)
// @ApiOperation(value = "修改app用户活跃记录表")
// public ApiResult<Boolean> updateUserActiveRecord(@Validated(Update.class) @RequestBody UserActiveRecord userActiveRecord)throws Exception{
// boolean flag= userActiveRecordService.updateUserActiveRecord(userActiveRecord);
// return ApiResult.result(flag);
// }
//
// /**
// * 删除app用户活跃记录表
// */
// @PostMapping("/delete/{id}")
// @OperationLog(name = "删除app用户活跃记录表", type = OperationLogType.DELETE)
// @ApiOperation(value = "删除app用户活跃记录表")
// public ApiResult<Boolean> deleteUserActiveRecord(@PathVariable("id") Long id)throws Exception{
// boolean flag= userActiveRecordService.deleteUserActiveRecord(id);
// return ApiResult.result(flag);
// }
//
// /**
// * 获取app用户活跃记录表详情
// */
// @GetMapping("/info/{id}")
// @OperationLog(name = "app用户活跃记录表详情", type = OperationLogType.INFO)
// @ApiOperation(value = "app用户活跃记录表详情")
// public ApiResult<UserActiveRecordQueryVo> getUserActiveRecord(@PathVariable("id") Long id)throws Exception{
// UserActiveRecordQueryVo userActiveRecordQueryVo = userActiveRecordService.getUserActiveRecordById(id);
// return ApiResult.ok(userActiveRecordQueryVo);
// }
//
// /**
// * app用户活跃记录表分页列表
// */
// @PostMapping("/getPageList")
// @OperationLog(name = "app用户活跃记录表分页列表", type = OperationLogType.PAGE)
// @ApiOperation(value = "app用户活跃记录表分页列表")
// public ApiResult<Paging<UserActiveRecordQueryVo>>getUserActiveRecordPageList(@Validated @RequestBody UserActiveRecordPageParam userActiveRecordPageParam)throws Exception{
// Paging<UserActiveRecordQueryVo> paging = userActiveRecordService.getUserActiveRecordPageList(userActiveRecordPageParam);
// return ApiResult.ok(paging);
// }
//
}
......@@ -5,11 +5,14 @@ import io.geekidea.springbootplus.framework.common.api.ApiResult;
public interface AppSmsService {
void deleteRegisterCode(String area, String number);
void deleteUpdatePhoneCode(String area, String number);
/**
* 获取注册验证码
*/
ApiResult<Object> registerOrLoginCode(String phoneArea, String phone);
ApiResult<Object> updatePhoneCode() throws Exception;
/**
* 获取注册验证码
......@@ -25,6 +28,7 @@ public interface AppSmsService {
* @return
*/
boolean equalsRegisterCode(String area, String number, String code);
boolean equalsUpdatePhoneCode(String area, String number, String code);
/**
* 校验验登陆证码
......
......@@ -25,4 +25,7 @@ public interface AppUserApiService {
*/
boolean updateAppUser(AppUserInfoParam appUserInfoParam) throws Exception;
ApiResult<Boolean> updatePhone(String phoneArea, String phone,String code) throws Exception;
}
......@@ -3,8 +3,12 @@ package com.jumeirah.api.app.service.impl;
import cn.hutool.core.util.RandomUtil;
import com.jumeirah.api.app.service.AppSmsService;
import com.jumeirah.api.app.vo.SmsCode;
import com.jumeirah.common.service.AppUserService;
import com.jumeirah.common.vo.AppUserQueryVo;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.shiro.jwt.JwtToken;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
......@@ -16,6 +20,8 @@ import java.util.Arrays;
@Service
@Slf4j
public class AppSmsServiceImpl implements AppSmsService {
@Autowired
private AppUserService appUserService;
/**
* 获取当前环境
......@@ -37,14 +43,18 @@ public class AppSmsServiceImpl implements AppSmsService {
private static final String DEFAULT_DEV_SMS_CODE = "666666";
/**
* 短信验证码redis的key值
* 注册 短信验证码redis的key值
*/
private static final String SMS_REGIEST = "sms:app:register:%s_%s";
/**
* 修改 短信验证码redis的key值
*/
private static final String SMS_REGIEST = "sms:register:%s_%s";
private static final String SMS_UPDATE = "sms:app:update:%s_%s";
/**
* 短信验证码redis的key值
*/
private static final String SMS_LOGIN = "sms:login:%s_%s";
private static final String SMS_LOGIN = "sms:app:login:%s_%s";
@Override
public void deleteRegisterCode(String area, String number) {
......@@ -52,10 +62,25 @@ public class AppSmsServiceImpl implements AppSmsService {
}
@Override
public void deleteUpdatePhoneCode(String area, String number) {
redisTemplate.delete(String.format(SMS_UPDATE, area, number));
}
@Override
public ApiResult<Object> registerOrLoginCode(String area, String number) {
return getSmsCodeApiResult(String.format(SMS_REGIEST, area, number), area, number);
}
@Override
public ApiResult<Object> updatePhoneCode() throws Exception {
JwtToken jwtToken = (JwtToken) SecurityUtils.getSubject().getPrincipal();
AppUserQueryVo appUserById = appUserService.getAppUserById(jwtToken.getUserId());
return getSmsCodeApiResult(String.format(SMS_UPDATE, appUserById.getPhoneArea(), appUserById.getPhone()), appUserById.getPhoneArea(), appUserById.getPhone());
}
private ApiResult<Object> getSmsCodeApiResult(String key, String area, String number) {
String randomCode = getRandomCode();
......@@ -85,6 +110,11 @@ public class AppSmsServiceImpl implements AppSmsService {
return equalsSms(SMS_REGIEST, area, number, code);
}
@Override
public boolean equalsUpdatePhoneCode(String area, String number, String code) {
return equalsSms(SMS_UPDATE, area, number, code);
}
private boolean equalsSms(String type, String area, String number, String code) {
String formatKey = String.format(type, area, number);
......
......@@ -7,6 +7,7 @@ import com.jumeirah.common.entity.AppUser;
import com.jumeirah.common.param.app.AppSmsRegisterParam;
import com.jumeirah.common.param.app.AppUserInfoParam;
import com.jumeirah.common.service.AppUserService;
import com.jumeirah.common.vo.AppUserQueryVo;
import com.jumeirah.common.vo.app.LoginAppUserTokenVo;
import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
......@@ -24,6 +25,33 @@ public class AppUserApiServiceImpl implements AppUserApiService {
@Autowired
private AppUserService appUserService;
@Override
public ApiResult<Boolean> updatePhone(String phoneArea, String phone, String code) throws Exception {
JwtToken jwtToken = (JwtToken) SecurityUtils.getSubject().getPrincipal();
AppUserQueryVo appUserById = appUserService.getAppUserById(jwtToken.getUserId());
// 校验验证码
boolean equalsRegisterCode = appSmsService.equalsUpdatePhoneCode(appUserById.getPhoneArea(), appUserById.getPhone(), code);
if (!equalsRegisterCode) {
return ApiResult.fail(ApiCode.SMS_CODE_ERROR);
}
// 删除已使用的验证码
appSmsService.deleteUpdatePhoneCode(appUserById.getPhoneArea(), appUserById.getPhone());
AppUser appUser = new AppUser();
appUser.setPhoneArea(phoneArea);
appUser.setPhone(phone);
appUser.setId(jwtToken.getUserId());
boolean b = appUserService.updateById(appUser);
if (b) {
return ApiResult.ok();
}
return ApiResult.fail();
}
@Override
public ApiResult<LoginAppUserTokenVo> register(AppSmsRegisterParam loginParam, String language) throws Exception {
// 校验验证码
......
package com.jumeirah.api.merchant.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jumeirah.common.entity.MerchantUserPermission;
import com.jumeirah.common.param.MerchantUserPermissionDetailVo;
import com.jumeirah.common.param.MerchantUserPermissionQueryVo;
import com.jumeirah.common.param.MerchantUserPermissionUpdateParam;
import com.jumeirah.common.service.MerchantUserPermissionService;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.controller.BaseController;
......@@ -14,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -37,12 +40,23 @@ public class MerchantUserPermissionController extends BaseController {
/**
* 查询商家用户权限详情
*/
@PostMapping("/update/{id}")
@PostMapping("/update")
@OperationLog(name = "修改商家用户权限", type = OperationLogType.INFO)
@ApiOperation(value = "修改商家用户权限")
public ApiResult<MerchantUserPermissionQueryVo> update(@PathVariable("id") Long id) throws Exception {
MerchantUserPermissionQueryVo merchantUserPermissionQueryVo = merchantUserPermissionService.getMerchantUserPermissionById(id);
return ApiResult.ok(merchantUserPermissionQueryVo);
public ApiResult<Boolean> update(@RequestBody MerchantUserPermissionUpdateParam merchantUserPermissionUpdateParam) throws Exception {
// 删除该用户所有权限
merchantUserPermissionService.remove(new QueryWrapper<MerchantUserPermission>()
.lambda().eq(MerchantUserPermission::getUserId, merchantUserPermissionUpdateParam.getUserId()));
// 给管理管设置全部权限
for (Long id : merchantUserPermissionUpdateParam.getPermissionIds()) {
MerchantUserPermission merchantUserPermission = new MerchantUserPermission();
merchantUserPermission.setUserId(merchantUserPermissionUpdateParam.getUserId());
merchantUserPermission.setPermissionId(id);
merchantUserPermission.setState(0);
merchantUserPermissionService.save(merchantUserPermission);
}
return ApiResult.ok();
}
/**
......
package com.jumeirah.common.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.geekidea.springbootplus.framework.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* app用户活跃记录表
*
* @author giao
* @since 2020-10-21
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "UserActiveRecord对象")
public class UserActiveRecord extends BaseEntity {
private static final long serialVersionUID = 1L;
@NotNull(message = "主键id不能为空")
@ApiModelProperty("主键id")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@NotNull(message = "用户id不能为空")
@ApiModelProperty("用户id")
private Long userId;
@NotNull(message = "记录日期不能为空")
@ApiModelProperty("记录日期")
private Date recordDate;
@ApiModelProperty("创建时间")
private Date createTime;
@ApiModelProperty("更新时间")
private Date modifyTime;
}
package com.jumeirah.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jumeirah.common.entity.UserActiveRecord;
import com.jumeirah.common.param.UserActiveRecordPageParam;
import com.jumeirah.common.param.UserActiveRecordQueryVo;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import java.io.Serializable;
/**
* app用户活跃记录表 Mapper 接口
*
* @author giao
* @since 2020-10-21
*/
@Repository
public interface UserActiveRecordMapper extends BaseMapper<UserActiveRecord> {
/**
* 根据ID获取查询对象
*
* @param id
* @return
*/
UserActiveRecordQueryVo getUserActiveRecordById(Serializable id);
/**
* 获取分页对象
*
* @param page
* @param userActiveRecordPageParam
* @return
*/
IPage<UserActiveRecordQueryVo> getUserActiveRecordPageList(@Param("page") Page page,@Param("param") UserActiveRecordPageParam userActiveRecordPageParam);
}
package com.jumeirah.common.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
/**
* <pre>
* 商家用户权限关系 分页参数对象
* </pre>
*
* @author giao
* @date 2020-10-19
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "MerchantUserPermissionUpdateParam参数")
public class MerchantUserPermissionUpdateParam implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("权限id数组")
List<Long> permissionIds;
@ApiModelProperty("用户id")
private Long userId;
}
package com.jumeirah.common.param;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import io.geekidea.springbootplus.framework.core.pagination.BasePageOrderParam;
/**
* <pre>
* app用户活跃记录表 分页参数对象
* </pre>
*
* @author giao
* @date 2020-10-21
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "app用户活跃记录表分页参数")
public class UserActiveRecordPageParam extends BasePageOrderParam{
private static final long serialVersionUID=1L;
}
package com.jumeirah.common.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* <pre>
* app用户活跃记录表 查询结果对象
* </pre>
*
* @author giao
* @date 2020-10-21
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "UserActiveRecordQueryVo对象")
public class UserActiveRecordQueryVo implements Serializable{
private static final long serialVersionUID=1L;
@ApiModelProperty("主键id")
private Long id;
@ApiModelProperty("用户id")
private Long userId;
@ApiModelProperty("记录日期")
private Date recordDate;
@ApiModelProperty("创建时间")
private Date createTime;
@ApiModelProperty("更新时间")
private Date modifyTime;
}
\ No newline at end of file
package com.jumeirah.common.service;
import com.jumeirah.common.entity.UserActiveRecord;
import com.jumeirah.common.param.UserActiveRecordPageParam;
import io.geekidea.springbootplus.framework.common.service.BaseService;
import com.jumeirah.common.param.UserActiveRecordQueryVo;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
/**
* app用户活跃记录表 服务类
*
* @author giao
* @since 2020-10-21
*/
public interface UserActiveRecordService extends BaseService<UserActiveRecord> {
/**
* 保存
*
* @param userActiveRecord
* @return
* @throws Exception
*/
boolean saveUserActiveRecord(UserActiveRecord userActiveRecord)throws Exception;
/**
* 修改
*
* @param userActiveRecord
* @return
* @throws Exception
*/
boolean updateUserActiveRecord(UserActiveRecord userActiveRecord)throws Exception;
/**
* 删除
*
* @param id
* @return
* @throws Exception
*/
boolean deleteUserActiveRecord(Long id)throws Exception;
/**
* 根据ID获取查询对象
*
* @param id
* @return
* @throws Exception
*/
UserActiveRecordQueryVo getUserActiveRecordById(Long id)throws Exception;
/**
* 获取分页对象
*
* @param userActiveRecordPageParam
* @return
* @throws Exception
*/
Paging<UserActiveRecordQueryVo> getUserActiveRecordPageList(UserActiveRecordPageParam userActiveRecordPageParam) throws Exception;
}
package com.jumeirah.common.service.impl;
import com.jumeirah.common.entity.UserActiveRecord;
import com.jumeirah.common.mapper.UserActiveRecordMapper;
import com.jumeirah.common.service.UserActiveRecordService;
import com.jumeirah.common.param.UserActiveRecordPageParam;
import com.jumeirah.common.param.UserActiveRecordQueryVo;
import io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import io.geekidea.springbootplus.framework.core.pagination.PageInfo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.transaction.annotation.Transactional;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
/**
* app用户活跃记录表 服务实现类
*
* @author giao
* @since 2020-10-21
*/
@Slf4j
@Service
public class UserActiveRecordServiceImpl extends BaseServiceImpl<UserActiveRecordMapper, UserActiveRecord> implements UserActiveRecordService {
@Autowired
private UserActiveRecordMapper userActiveRecordMapper;
@Transactional(rollbackFor = Exception.class)
@Override
public boolean saveUserActiveRecord(UserActiveRecord userActiveRecord)throws Exception{
return super.save(userActiveRecord);
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean updateUserActiveRecord(UserActiveRecord userActiveRecord)throws Exception{
return super.updateById(userActiveRecord);
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean deleteUserActiveRecord(Long id)throws Exception{
return super.removeById(id);
}
@Override
public UserActiveRecordQueryVo getUserActiveRecordById(Long id)throws Exception{
return userActiveRecordMapper.getUserActiveRecordById(id);
}
@Override
public Paging<UserActiveRecordQueryVo> getUserActiveRecordPageList(UserActiveRecordPageParam userActiveRecordPageParam)throws Exception{
Page<UserActiveRecordQueryVo> page=new PageInfo<>(userActiveRecordPageParam,OrderItem.desc(getLambdaColumn(UserActiveRecord::getCreateTime)));
IPage<UserActiveRecordQueryVo> iPage= userActiveRecordMapper.getUserActiveRecordPageList(page, userActiveRecordPageParam);
return new Paging<UserActiveRecordQueryVo>(iPage);
}
}
<?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.jumeirah.common.mapper.UserActiveRecordMapper">
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, user_id, record_date, create_time, modify_time
</sql>
<select id="getUserActiveRecordById" resultType="com.jumeirah.common.param.UserActiveRecordQueryVo">
select
<include refid="Base_Column_List"/>
from user_active_record where id = #{id}
</select>
<select id="getUserActiveRecordPageList" parameterType="com.jumeirah.common.param.UserActiveRecordPageParam" resultType="com.jumeirah.common.param.UserActiveRecordQueryVo">
select
<include refid="Base_Column_List"/>
from user_active_record
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment