huwhois 5 years ago
parent
commit
69516916b0

+ 2 - 1
.gitignore

@ -21,6 +21,7 @@ target
21 21
*.rar
22 22
*.iml
23 23
.idea
24
.vscode
24 25
25 26
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
26 27
hs_err_pid*
@ -28,4 +29,4 @@ hs_err_pid*
28 29
.classpath
29 30
.settings
30 31
.project
31
src/main/resources/application-dev.yml
32
src/main/resources/application-mydev.yml

+ 126 - 0
src/main/java/io/renren/modules/admin/member/controller/MemberController.java

@ -0,0 +1,126 @@
1
package io.renren.modules.admin.member.controller;
2
3
import java.util.Arrays;
4
import java.util.Map;
5
6
import org.apache.shiro.authz.annotation.RequiresPermissions;
7
import org.springframework.beans.factory.annotation.Autowired;
8
import org.springframework.web.bind.annotation.PathVariable;
9
import org.springframework.web.bind.annotation.RequestBody;
10
import org.springframework.web.bind.annotation.RequestMapping;
11
import org.springframework.web.bind.annotation.PostMapping;
12
import org.springframework.web.bind.annotation.RequestParam;
13
import org.springframework.web.bind.annotation.RestController;
14
import io.swagger.annotations.Api;
15
import io.swagger.annotations.ApiOperation;
16
17
import io.renren.common.utils.PageUtils;
18
import io.renren.common.utils.R;
19
import io.renren.common.validator.ValidatorUtils;
20
import io.renren.common.validator.group.AddGroup;
21
import io.renren.common.validator.group.UpdateGroup;
22
import io.renren.modules.admin.member.entity.MemberEntity;
23
import io.renren.modules.admin.member.service.MemberService;
24
import io.renren.modules.sys.controller.AbstractController;
25
26
27
/**
28
 * 会员表
29
 *
30
 * @author chenshun
31
 * @email sunlightcs@gmail.com
32
 * @date 2020-01-17 11:29:03
33
 */
34
@RestController
35
@RequestMapping("/admin/member")
36
@Api("会员管理")
37
public class MemberController extends AbstractController  {
38
    @Autowired
39
    private MemberService memberService;
40
41
    /**
42
     * 列表
43
     */
44
    @RequestMapping("/list")
45
    @RequiresPermissions("admin:member:list")
46
    @ApiOperation("列表")
47
    public R list(@RequestParam Map<String, Object> params){
48
        PageUtils page = memberService.queryPage(params);
49
50
        return R.ok().put("page", page);
51
    }
52
53
    /**
54
     * 信息
55
     */
56
    @RequestMapping("/info/{id}")
57
    @RequiresPermissions("admin:member:info")
58
    @ApiOperation("个人信息")
59
    public R info(@PathVariable("id") Long id){
60
		MemberEntity member = memberService.getById(id);
61
62
        return R.ok().put("member", member);
63
    }
64
65
    /**
66
     * 保存
67
     */
68
    @PostMapping("/save")
69
    @RequiresPermissions("admin:member:save")
70
    @ApiOperation("新增")
71
    public R save(@RequestBody MemberEntity member){
72
        ValidatorUtils.validateEntity(member, AddGroup.class);
73
		
74
		member.setCreateId(getUserId());
75
		memberService.saveMember(member);
76
77
        return R.ok();
78
    }
79
80
    /**
81
     * 修改
82
     */
83
    @PostMapping("/update")
84
    @RequiresPermissions("admin:member:update")
85
    @ApiOperation("修改")
86
    public R update(@RequestBody MemberEntity member){
87
        ValidatorUtils.validateEntity(member, UpdateGroup.class);
88
        member.setModifyId(getUserId());
89
		memberService.updateById(member);
90
91
        return R.ok();
92
    }
93
94
    /**
95
     * 删除
96
     */
97
    // @PostMapping("/delete")
98
    // @RequiresPermissions("admin:member:delete")
99
    // @ApiOperation("删除")
100
    // public R delete(@RequestBody Long[] ids){
101
	// 	memberService.removeByIds(Arrays.asList(ids));
102
103
    //     return R.ok();
104
    // }
105
    @PostMapping("/delete")
106
    @RequiresPermissions("admin:member:delete")
107
    @ApiOperation("删除")
108
    public R delete(@RequestBody Long[] ids){
109
        // memberService.removeByIds(Arrays.asList(ids));
110
        memberService.delete(ids);
111
        return R.ok();
112
    }
113
114
    @PostMapping("/status")
115
    @RequiresPermissions("admin:member:status")
116
    @ApiOperation("改变审核状态")
117
    public R status(@RequestBody Map<String, Object> param){
118
        // memberService.removeByIds(Arrays.asList(ids));
119
        Long id = Long.valueOf(param.get("id").toString());
120
        Integer status = Integer.valueOf(param.get("status").toString());
121
        System.out.println(id);
122
        System.out.println(status);
123
        int it = memberService.updateStatus(id, status);
124
        return R.ok();
125
    }
126
}

+ 21 - 0
src/main/java/io/renren/modules/admin/member/dao/MemberDao.java

@ -0,0 +1,21 @@
1
package io.renren.modules.admin.member.dao;
2
3
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
5
import org.apache.ibatis.annotations.Mapper;
6
import org.apache.ibatis.annotations.Update;
7
8
import io.renren.modules.admin.member.entity.MemberEntity;
9
10
/**
11
 * 会员表
12
 * 
13
 * @author chenshun
14
 * @email sunlightcs@gmail.com
15
 * @date 2020-01-17 11:29:03
16
 */
17
@Mapper
18
public interface MemberDao extends BaseMapper<MemberEntity> {
19
	@Update("update member set is_check=#{isCheck} where id=#{id}")
20
    int updateStatus(Long id, Integer isCheck);
21
}

+ 109 - 0
src/main/java/io/renren/modules/admin/member/entity/MemberEntity.java

@ -0,0 +1,109 @@
1
package io.renren.modules.admin.member.entity;
2
3
import java.io.Serializable;
4
import java.util.Date;
5
import com.baomidou.mybatisplus.annotation.TableId;
6
import com.baomidou.mybatisplus.annotation.TableLogic;
7
import com.baomidou.mybatisplus.annotation.TableName;
8
import com.fasterxml.jackson.annotation.JsonIgnore;
9
10
import javax.validation.constraints.Email;
11
import javax.validation.constraints.NotBlank;
12
import io.renren.common.validator.group.AddGroup;
13
import io.renren.common.validator.group.UpdateGroup;
14
15
import lombok.Data;
16
/**
17
 * 会员表
18
 * 
19
 * @author chenshun
20
 * @email sunlightcs@gmail.com
21
 * @date 2020-01-17 11:29:03
22
 */
23
@Data
24
@TableName("member")
25
public class MemberEntity implements Serializable {
26
	private static final long serialVersionUID = 1L;
27
28
	/**
29
	 * 会员id (会员表)
30
	 */
31
	@TableId
32
	private Long id;
33
	/**
34
	 * 用户名
35
	 */
36
	@NotBlank(message="用户名不能为空", groups = {AddGroup.class, UpdateGroup.class})
37
	private String username;
38
	/**
39
	 * 密码
40
	 */
41
	@NotBlank(message="密码不能为空", groups = AddGroup.class)
42
	@JsonIgnore
43
	private String password;
44
	/**
45
	 * 盐
46
	 */
47
	@JsonIgnore
48
	private String salt;
49
	/**
50
	 * 姓名
51
	 */
52
	@NotBlank(message="姓名不能为空", groups = {AddGroup.class, UpdateGroup.class})
53
	private String truename;
54
	/**
55
	 * 性别
56
	 */
57
	private Integer sex;
58
	/**
59
	 * 头像
60
	 */
61
	private String titlePic;
62
	/**
63
	 * 所属机构(单位名称、公司名称
64
	 */
65
	private String organization;
66
	/**
67
	 * 职位id
68
	 */
69
	private String position;
70
	/**
71
	 * 职称
72
	 */
73
	private String jobTitle;
74
	/**
75
	 * 电话
76
	 */
77
	@NotBlank(message="手机号不能为空", groups = {AddGroup.class, UpdateGroup.class})
78
	private String phone;
79
	/**
80
	 * 邮箱
81
	 */
82
	@Email(message="邮箱格式不正确", groups = {AddGroup.class, UpdateGroup.class})
83
	private String email;
84
	/**
85
	 * 创建时间
86
	 */
87
	private Date createTime;
88
	/**
89
	 * 修改时间
90
	 */
91
	private Date modifyTime;
92
	/**
93
	 * 是否通过审核 0:未通过 1:通过
94
	 */
95
	private Integer isCheck;
96
	/**
97
	 * 是否被删除 状态  0:正常   1:删除
98
	 */
99
	@TableLogic
100
	private Integer isDel;
101
	/**
102
	 * 修改人
103
	 */
104
	private Long modifyId;
105
	/**
106
	 * 修改人
107
	 */
108
	private Long createId;
109
}

+ 46 - 0
src/main/java/io/renren/modules/admin/member/service/MemberService.java

@ -0,0 +1,46 @@
1
package io.renren.modules.admin.member.service;
2
3
import java.util.Map;
4
5
import com.baomidou.mybatisplus.extension.service.IService;
6
7
import org.apache.ibatis.annotations.Param;
8
import org.apache.ibatis.annotations.Update;
9
10
import io.renren.common.utils.PageUtils;
11
import io.renren.modules.admin.member.entity.MemberEntity;
12
13
/**
14
 * 会员表
15
 *
16
 * @author chenshun
17
 * @email sunlightcs@gmail.com
18
 * @date 2020-01-17 11:29:03
19
 */
20
public interface MemberService extends IService<MemberEntity> {
21
22
    PageUtils queryPage(Map<String, Object> params);
23
24
    /**
25
	 * 保存用户
26
	 */
27
	void saveMember(MemberEntity member);
28
	
29
	/**
30
	 * 修改用户
31
	 */
32
	void update(MemberEntity member);
33
34
	/**
35
	 * 删除用户(逻辑删除)
36
	 */
37
	void delete(Long[] ids);
38
39
	/**
40
	 * 更新审核状态
41
	 * @param id
42
	 * @param isCheck
43
	 */
44
    int updateStatus(Long id, Integer isCheck);
45
}
46

+ 81 - 0
src/main/java/io/renren/modules/admin/member/service/impl/MemberServiceImpl.java

@ -0,0 +1,81 @@
1
package io.renren.modules.admin.member.service.impl;
2
3
import java.util.Arrays;
4
import java.util.Date;
5
import java.util.Map;
6
7
import org.springframework.beans.factory.annotation.Autowired;
8
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
9
import com.baomidou.mybatisplus.core.metadata.IPage;
10
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
11
import org.apache.ibatis.session.Configuration;
12
import org.apache.ibatis.session.SqlSession;
13
import org.apache.commons.lang.RandomStringUtils;
14
import org.apache.commons.lang.StringUtils;
15
import org.apache.shiro.crypto.hash.Sha256Hash;
16
import org.springframework.stereotype.Service;
17
import org.springframework.transaction.annotation.Transactional;
18
19
import io.renren.common.utils.PageUtils;
20
import io.renren.common.utils.Query;
21
import io.renren.modules.admin.member.dao.MemberDao;
22
import io.renren.modules.admin.member.entity.MemberEntity;
23
import io.renren.modules.admin.member.service.MemberService;
24
25
@Service("memberService")
26
public class MemberServiceImpl extends ServiceImpl<MemberDao, MemberEntity> implements MemberService {
27
    @Autowired
28
    private SqlSession sqlSession;
29
30
    @Override
31
    public PageUtils queryPage(Map<String, Object> params) {
32
        String username = (String)params.get("username");
33
        String truename = (String)params.get("truename");
34
        // System.out.println(key);
35
        IPage<MemberEntity> page = this.page(
36
                new Query<MemberEntity>().getPage(params),
37
                new QueryWrapper<MemberEntity>()
38
                .like(StringUtils.isNotBlank(username),"username", username)
39
                .or()
40
                .like(StringUtils.isNotBlank(truename),"truename", truename)
41
        );
42
43
        return new PageUtils(page);
44
    }
45
46
    @Override
47
	@Transactional
48
    public void saveMember(MemberEntity member){
49
        member.setCreateTime(new Date());
50
        //sha256加密
51
		String salt = RandomStringUtils.randomAlphanumeric(20);
52
		member.setPassword(new Sha256Hash(member.getPassword(), salt).toHex());
53
		member.setSalt(salt);
54
		this.save(member); 
55
    }
56
57
    @Override
58
	@Transactional
59
    public void update(MemberEntity member) {
60
        member.setModifyTime(new Date());
61
        if(StringUtils.isBlank(member.getPassword())){
62
			member.setPassword(null);
63
		}else{
64
			member.setPassword(new Sha256Hash(member.getPassword(), member.getSalt()).toHex());
65
		}
66
67
        this.updateById(member);
68
    }
69
70
    @Override
71
    public void delete(Long[] ids) {
72
        baseMapper.deleteBatchIds(Arrays.asList(ids));
73
    }
74
75
    @Override
76
    public int updateStatus(Long id, Integer isCheck) {
77
        int itemp = baseMapper.updateStatus(id, isCheck);
78
        return itemp;
79
        // @Update("update member set is_check=#{is_check}  where id = #{id}")
80
    }
81
}

+ 21 - 10
src/main/java/io/renren/modules/app/controller/AppRegisterController.java

@ -8,9 +8,9 @@
8 8
9 9
package io.renren.modules.app.controller;
10 10
11
12 11
import io.renren.common.utils.R;
13 12
import io.renren.common.validator.ValidatorUtils;
13
import io.renren.common.validator.group.AddGroup;
14 14
import io.renren.modules.app.entity.UserEntity;
15 15
import io.renren.modules.app.form.RegisterForm;
16 16
import io.renren.modules.app.service.UserService;
@ -37,18 +37,29 @@ public class AppRegisterController {
37 37
    @Autowired
38 38
    private UserService userService;
39 39
40
    // @PostMapping("register")
41
    // @ApiOperation("注册")
42
    // public R register(@RequestBody RegisterForm form){
43
    //     //表单校验
44
    //     ValidatorUtils.validateEntity(form);
45
46
    //     UserEntity user = new UserEntity();
47
    //     user.setPhone(form.getPhone());
48
    //     user.setUsername(form.getPhone());
49
    //     user.setTruename(form.getTruename());
50
    //     userService.saveMember(user);
51
52
    //     return R.ok();
53
    // }
54
40 55
    @PostMapping("register")
41 56
    @ApiOperation("注册")
42
    public R register(@RequestBody RegisterForm form){
57
    public R register(@RequestBody UserEntity user){
58
        user.setUsername(user.getPhone());
43 59
        //表单校验
44
        ValidatorUtils.validateEntity(form);
45
46
        UserEntity user = new UserEntity();
47
        user.setMobile(form.getMobile());
48
        user.setUsername(form.getMobile());
49
        user.setPassword(DigestUtils.sha256Hex(form.getPassword()));
50
        user.setCreateTime(new Date());
51
        userService.save(user);
60
        ValidatorUtils.validateEntity(user, AddGroup.class);
61
62
        userService.saveMember(user);
52 63
53 64
        return R.ok();
54 65
    }

+ 49 - 7
src/main/java/io/renren/modules/app/entity/UserEntity.java

@ -10,6 +10,11 @@ package io.renren.modules.app.entity;
10 10
11 11
import com.baomidou.mybatisplus.annotation.TableId;
12 12
import com.baomidou.mybatisplus.annotation.TableName;
13
import javax.validation.constraints.Email;
14
import javax.validation.constraints.NotBlank;
15
import io.renren.common.validator.group.AddGroup;
16
import io.renren.common.validator.group.UpdateGroup;
17
import com.fasterxml.jackson.annotation.JsonIgnore;
13 18
import lombok.Data;
14 19
15 20
import java.io.Serializable;
@ -22,30 +27,67 @@ import java.util.Date;
22 27
 * @author Mark sunlightcs@gmail.com
23 28
 */
24 29
@Data
25
@TableName("tb_user")
30
@TableName("member")
26 31
public class UserEntity implements Serializable {
27 32
	private static final long serialVersionUID = 1L;
28 33
29 34
	/**
30
	 * 用户ID
35
	 * 用户ID 会员id (会员表)
31 36
	 */
32 37
	@TableId
33 38
	private Long userId;
34 39
	/**
35 40
	 * 用户名
36 41
	 */
42
	@NotBlank(message="用户名不能为空", groups = AddGroup.class)
37 43
	private String username;
38
	/**
39
	 * 手机号
40
	 */
41
	private String mobile;
42 44
	/**
43 45
	 * 密码
44 46
	 */
47
	@NotBlank(message="密码不能为空", groups = AddGroup.class)
45 48
	private String password;
49
	/**
50
	 * 盐
51
	 */
52
	@JsonIgnore
53
	private String salt;
54
	/**
55
	 * 姓名
56
	 */
57
	@NotBlank(message="姓名不能为空", groups = {AddGroup.class, UpdateGroup.class})
58
	private String truename;
59
	/**
60
	 * 性别
61
	 */
62
	private Integer sex;
63
	/**
64
	 * 头像
65
	 */
66
	private String titlePic;
67
	/**
68
	 * 所属机构(单位名称、公司名称
69
	 */
70
	private String organization;
71
	/**
72
	 * 职位id
73
	 */
74
	private String position;
75
	/**
76
	 * 职称
77
	 */
78
	private String jobTitle;
79
	/**
80
	 * 电话
81
	 */
82
	@NotBlank(message="手机号不能为空", groups = {AddGroup.class, UpdateGroup.class})
83
	private String phone;
84
	/**
85
	 * 邮箱
86
	 */
87
	@Email(message="邮箱格式不正确", groups = {AddGroup.class, UpdateGroup.class})
88
	private String email;
46 89
	/**
47 90
	 * 创建时间
48 91
	 */
49 92
	private Date createTime;
50
51 93
}

+ 22 - 1
src/main/java/io/renren/modules/app/form/RegisterForm.java

@ -13,6 +13,7 @@ import io.swagger.annotations.ApiModelProperty;
13 13
import lombok.Data;
14 14
15 15
import javax.validation.constraints.NotBlank;
16
import javax.validation.constraints.Email;
16 17
17 18
/**
18 19
 * 注册表单
@ -24,10 +25,30 @@ import javax.validation.constraints.NotBlank;
24 25
public class RegisterForm {
25 26
    @ApiModelProperty(value = "手机号")
26 27
    @NotBlank(message="手机号不能为空")
27
    private String mobile;
28
    private String phone;
28 29
29 30
    @ApiModelProperty(value = "密码")
30 31
    @NotBlank(message="密码不能为空")
31 32
    private String password;
33
    @ApiModelProperty(value = "姓名")
34
    @NotBlank(message="姓名不能为空")
35
    private String truename;
36
    @ApiModelProperty(value = "性别")
37
	private Integer sex;
38
    @ApiModelProperty(value = "头像")
39
	private String titlePic;
40
41
    @ApiModelProperty(value = "所属机构")
42
	private String organization;
43
44
    @ApiModelProperty(value = "职位")
45
	private String position;
46
47
    @ApiModelProperty(value = "职称")
48
	private String jobTitle;
49
50
    @ApiModelProperty(value = "邮箱")
51
	@Email(message="邮箱格式不正确")
52
	private String email;
32 53
33 54
}

+ 6 - 0
src/main/java/io/renren/modules/app/service/UserService.java

@ -28,4 +28,10 @@ public interface UserService extends IService<UserEntity> {
28 28
	 * @return        返回用户ID
29 29
	 */
30 30
	long login(LoginForm form);
31
32
	/**
33
	 * 用户注册
34
	 * @param user
35
	 */
36
	public void saveMember(UserEntity user);
31 37
}

+ 15 - 0
src/main/java/io/renren/modules/app/service/impl/UserServiceImpl.java

@ -8,6 +8,7 @@
8 8
9 9
package io.renren.modules.app.service.impl;
10 10
11
import java.util.Date;
11 12
12 13
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
13 14
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -18,7 +19,10 @@ import io.renren.modules.app.entity.UserEntity;
18 19
import io.renren.modules.app.form.LoginForm;
19 20
import io.renren.modules.app.service.UserService;
20 21
import org.apache.commons.codec.digest.DigestUtils;
22
import org.apache.commons.lang.RandomStringUtils;
23
import org.apache.shiro.crypto.hash.Sha256Hash;
21 24
import org.springframework.stereotype.Service;
25
import org.springframework.transaction.annotation.Transactional;
22 26
23 27
24 28
@Service("userService")
@ -41,4 +45,15 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
41 45
42 46
		return user.getUserId();
43 47
	}
48
49
	@Override
50
	@Transactional
51
    public void saveMember(UserEntity user){
52
        user.setCreateTime(new Date());
53
        //sha256加密
54
		String salt = RandomStringUtils.randomAlphanumeric(20);
55
		user.setPassword(new Sha256Hash(user.getPassword(), salt).toHex());
56
		user.setSalt(salt);
57
		this.save(user); 
58
    }
44 59
}

+ 25 - 0
src/main/resources/mapper/admin/member/MemberDao.xml

@ -0,0 +1,25 @@
1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
4
<mapper namespace="io.renren.modules.admin.member.dao.MemberDao">
5
6
	<!-- 可根据自己的需求,是否要使用 -->
7
    <resultMap type="io.renren.modules.admin.member.entity.MemberEntity" id="memberMap">
8
        <result property="id" column="id"/>
9
        <result property="username" column="username"/>
10
        <result property="password" column="password"/>
11
        <result property="truename" column="truename"/>
12
        <result property="sex" column="sex"/>
13
        <result property="titlePic" column="title_pic"/>
14
        <result property="organization" column="organization"/>
15
        <result property="position" column="position"/>
16
        <result property="jobTitle" column="job_title"/>
17
        <result property="phone" column="phone"/>
18
        <result property="email" column="email"/>
19
        <result property="createTime" column="create_time"/>
20
        <result property="modifyTime" column="modify_time"/>
21
        <result property="isCheck" column="is_check"/>
22
        <result property="isDel" column="is_del"/>
23
    </resultMap>
24
    
25
</mapper>