From 76ceb3eb8d2de784284e100b7f2f694d6db5ba2b Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期二, 13 五月 2025 17:09:30 +0800 Subject: [PATCH] 用户管理 --- src/main/java/com/whyc/service/UserService.java | 411 +++++++++++++++++++++++++++------------- src/main/java/com/whyc/controller/UserController.java | 102 ++++----- src/main/java/com/whyc/mapper/UserMapper.java | 25 ++ src/main/resources/mapper/UserMapper.xml | 56 ++++ 4 files changed, 391 insertions(+), 203 deletions(-) diff --git a/src/main/java/com/whyc/controller/UserController.java b/src/main/java/com/whyc/controller/UserController.java index a8c3078..c6e18a5 100644 --- a/src/main/java/com/whyc/controller/UserController.java +++ b/src/main/java/com/whyc/controller/UserController.java @@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; @RestController @RequestMapping("user") @@ -18,74 +19,61 @@ public class UserController extends BaseController{ @Resource - private UserService userService; + private UserService service; - //@PostMapping - //@ApiOperation(value = "娣诲姞") - //public Response add(@RequestBody UserInf user){ - // return userService.add(user); - //} - - @PostMapping("add") - @ApiOperation(value = "娣诲姞-RSA鍔犲瘑") - public Response addByRSA(@RequestBody User user){ - return userService.addByRSA(user); + @ApiOperation(value = "鏌ヨ鎵�鏈夌敤鎴蜂俊鎭�",notes = "鎺掗櫎uid鍦�100浠ュ唴鐨�(100浠ュ唴榛樿鏄鐞嗗憳)") + @GetMapping("getAllUser") + public Response getAllUser(@RequestParam(required = false) String uname,@RequestParam(required = false) String realName,@RequestParam int pageCurr, @RequestParam int pageSize){ + return service.getAllUser(uname,realName,pageCurr,pageSize); } - /*@PostMapping("register") - @ApiOperation(value = "娉ㄥ唽鐢ㄦ埛") - public Response register(@RequestBody User user){ - return userService.registerUser(user); - }*/ - @GetMapping("getById") - @ApiOperation(value = "鏌ヨbyId") - public Response<User> getById(@RequestParam int id){ - return new Response<User>().set(1,userService.getById(id)); + @ApiOperation(value = "鏌ヨ鎵�鏈夌敤鎴蜂俊鎭�(涓嶅垎椤甸櫎鍐呯疆鐢ㄦ埛澶栫敤浜庝笅鎷�)") + @GetMapping("getUinf") + public Response getUinf(){ + return service.getUinf(); } - /*@GetMapping("all") - @ApiOperation(value = "鏌ヨ鎵�鏈�") - public Response<List<User>> getAll(){ - return new Response<List<User>>().set(1,userService.getAll()); - }*/ - - @GetMapping("getPage") - @ApiOperation(value = "鏌ヨ鍒嗛〉") - public Response getPage(@RequestParam int pageNum,@RequestParam int pageSize){ - return new Response().set(1,userService.getPage(pageNum,pageSize)); + @ApiOperation(value = "鏂版坊鍔犵敤鎴蜂俊鎭�") + @PostMapping("addUser") + public Response addUser(@RequestBody User uinf){ + return service.addUser(uinf); + } + @ApiOperation(value = "鍒犻櫎鐢ㄦ埛淇℃伅") + @GetMapping("deleteUser") + public Response deleteUser(@RequestParam String uname){ + return service.delUser(uname); } - @PostMapping("update") - @ApiOperation(value = "缂栬緫") - public Response update(@RequestBody User user){ - return userService.update(user); + @ApiOperation(value = "灏嗙敤鎴锋坊鍔犺嚦100~1000绠$悊鍛�") + @GetMapping("improveRole") + public Response improveRole(@RequestParam int uid){ + return service.improveRole(uid); + } + + @ApiOperation(value = "灏嗙鐞嗗憳鍙樻垚鏅�氱敤鎴�") + @GetMapping("dropRole") + public Response dropRole(@RequestParam int uid, HttpServletRequest request){ + return service.dropRole(uid,request); + } + + @GetMapping("getUserNameList") + @ApiOperation(tags = "鎿嶄綔鏃ュ織",value = "鎿嶄綔浜哄鍚�-鏌ヨ-鎿嶄綔鏃ュ織浣跨敤") + public Response getUserNameList(){ + return service.getUserNameList(); + } + + @GetMapping("resetSnId") + @ApiOperation(value = "閲嶇疆瀵嗙爜") + public Response resetSnId(@RequestParam int uid){ + return service.resetSnId( uid); } - /*@PostMapping("/checkUserPassword") - @ApiOperation(value = "妫�鏌ョ敤鎴峰瘑鐮�") - public Response checkUserPassword(@RequestParam String password){ - User user = UserUtil.getUser(); - //鍓嶇浼犻�掔殑瀵嗙爜瑙e瘑 - password = RSAUtil.decryptFrontP(password, RSAUtil.fontSeparator)[0]; - //鍐呭瓨瀛樺偍鐨勫瘑鐮佽В瀵� - String userPassword = user.getPwd(); - userPassword = RSAUtil.decrypt(userPassword,RSAUtil.getPrivateKey()); - if (password.equals(userPassword)){ - return new Response().set(1); - }else { - return new Response().set(0); - } - }*/ - - - @PostMapping("/updatePasswordByRSA") - @ApiOperation(value = "淇敼瀵嗙爜-RSA") - public Response updatePasswordByRSA(@RequestParam String password){ - User user = CommonUtil.getUser(); - return userService.updatePasswordByRSA(user,password); + @ApiOperation(value = "缂栬緫鐢ㄦ埛淇℃伅") + @PostMapping("updateUinf") + public Response updateUinf(@RequestBody User uinf){ + return service.updateUinf(uinf); } - diff --git a/src/main/java/com/whyc/mapper/UserMapper.java b/src/main/java/com/whyc/mapper/UserMapper.java index d292886..64b3a14 100644 --- a/src/main/java/com/whyc/mapper/UserMapper.java +++ b/src/main/java/com/whyc/mapper/UserMapper.java @@ -6,12 +6,27 @@ import java.util.List; public interface UserMapper extends CustomMapper<User> { - - int addJudge(@Param("name") String name,@Param("phoneNumber") String phoneNumber); - - //褰撳墠鐢ㄦ埛鎵�鍦ㄥ寘鏈虹粍涓嬫墍鏈夌殑鐢ㄦ埛(涓嬫媺) - List<User> getBaojiUserByUid(@Param("baojiIdList") List<Integer> baojiIdList); + //鏌ヨ瀵嗙爜 + String selectSnId(@Param("uname") String uname); + //鍒ゆ柇鏄惁瀛樺湪鏅�氱敤鎴�(uid>100)锛岃嫢鏃�,鍒濆涓�10001 + int judgeUname(); + //鏌ヨ鎵�鏈夌敤鎴蜂俊鎭� + List<User> getAllUser(@Param("uname") String uname,@Param("realName")String realName); + //鏌ヨ100~1000涓渶澶х殑uid + String getIn10000(); + //鍒涘缓100~1000鐨刬d琛�,涓嶅瓨鍦ㄥ垯鍒涘缓 + void createNumber(); + //鍒ゆ柇琛ㄦ槸鍚﹀瓨鍦� + String existTable(); + //鎻掑叆榛樿鏁版嵁 + void setUnumber(@Param("sql") String sql); + //鏌ヨ鏈�澶х殑uid + String getMaxUid(); + //鏍规嵁uname鑾峰彇鐢ㄦ埛 + User getUinfByUname(@Param("uname") String uname); List<User> searchCS_All2(); + //褰撳墠鐢ㄦ埛鎵�鍦ㄥ寘鏈虹粍涓嬫墍鏈夌殑鐢ㄦ埛(涓嬫媺) + List<User> getBaojiUserByUid(@Param("baojiIdList") List<Integer> baojiIdList); } diff --git a/src/main/java/com/whyc/service/UserService.java b/src/main/java/com/whyc/service/UserService.java index 11af560..cead935 100644 --- a/src/main/java/com/whyc/service/UserService.java +++ b/src/main/java/com/whyc/service/UserService.java @@ -1,201 +1,348 @@ package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.whyc.dto.Response; import com.whyc.dto.UserClient; +import com.whyc.mapper.BaojigroupUsrMapper; +import com.whyc.mapper.PermitGroupUserMapper; import com.whyc.mapper.UserMapper; import com.whyc.pojo.db_user.User; +import com.whyc.util.ActionUtil; import com.whyc.util.CommonUtil; +import com.whyc.util.MD5Util; import com.whyc.util.RSAUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authc.UnknownAccountException; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import java.security.InvalidParameterException; import java.util.*; +import java.util.stream.Collectors; @Service @Slf4j public class UserService { @Resource - private UserMapper userMapper; + private UserMapper mapper; - @Resource - private UserBridgeService userBridgeService; + @Autowired(required = false) + private BaojigroupUsrMapper bjgroupUsrMapper; - @Autowired - private ApplicationContext applicationContext; + @Autowired(required = false) + private PermitGroupUserMapper pergroupUserMapper; + //鏌ヨ鎵�鏈夌敤鎴蜂俊鎭� + public Response getAllUser(String uname, String realName, int pageCurr, int pageSize) { + PageHelper.startPage(pageCurr,pageSize); + List<User> list=mapper.getAllUser(uname,realName); + PageInfo pageInfo=new PageInfo(list); + return new Response().setII(1,list!=null,pageInfo,"鏌ヨ鎵�鏈夌敤鎴蜂俊鎭�"); + } - public Response add(User user) { - try { - User userFound = userBridgeService.findPasswordByUserName(user.getName()); - if (userFound.getId() != 0) { - return new Response<>().set(1, false, "鐢ㄦ埛宸插瓨鍦�"); - } - if (userMapper.addJudge(user.getName(),user.getPhoneNumber())>0){ - return new Response<>().set(1, false, "鐢ㄦ埛宸插瓨鍦�"); - } - //user.setCreateTime(new Date()); - String[] dataArr = RSAUtil.decryptFrontP(user.getPwd(), RSAUtil.fontSeparator); - String password = dataArr[0]; - String passwordMD5 = dataArr[1]; - if(!CommonUtil.EncryptionMD5(password).equals(passwordMD5)){ - throw new InvalidParameterException("鍙傛暟鏍¢獙澶辫触"); - } - user.setPwd(RSAUtil.encrypt(password,RSAUtil.getPublicKey())); - int flag = userMapper.insert(user); - if (flag > 0) { - return new Response<>().set(1, true); - } else { - return new Response<>().set(1, false, "娣诲姞澶辫触"); - } - }catch (Exception e){ - e.printStackTrace(); - return new Response<>().set(0); + //鏂版坊鍔犵敤鎴蜂俊鎭� + @Transactional + public Response addUser(User uinf) { + QueryWrapper wrapper=new QueryWrapper(); + //鍒ゆ柇鏄惁瀛樺湪鏅�氱敤鎴�(uid>100)锛岃嫢鏃�,鍒濆涓�10001 + int judgecount=mapper.judgeUname(); + if(judgecount==0){ + uinf.setId(10001); + } + String pwd= RSAUtil.encrypt("123456", RSAUtil.getPublicKey()); + uinf.setPwd(pwd); + wrapper.select("uid","uname"); + wrapper.eq("uname",uinf.getName()); + User user=mapper.selectOne(wrapper); + if(user!=null){ + return new Response().setII(1,false,user,"鐢ㄦ埛鍚嶅凡瀛樺湪"); + } + uinf.setCreateTime(new Date()); + int bl=mapper.insert(uinf); + return new Response().set(1,bl>0); + } + //淇敼瀵嗙爜 + public Response changeSnId(String uname,String oldSnId, String newSnId) { + if(uname==null||uname.equals("")){ + return new Response().set(1,false,"鎵句笉鍒扮敤鎴�"); + } + //楠岃瘉鑰佸瘑鐮佹槸鍚︽纭� + String snIdRsa=mapper.selectSnId(uname); + //瑙e瘑 + String snId=RSAUtil.decrypt(snIdRsa,RSAUtil.getPrivateKey()); + String[] decOld=RSAUtil.decryptFrontP(oldSnId,RSAUtil.fontSeparator); + String oldId=decOld[0]; + String[] newOld=RSAUtil.decryptFrontP(newSnId,RSAUtil.fontSeparator); + String newId=newOld[0]; + if(oldId.equals(snId)){ + UpdateWrapper wrapper=new UpdateWrapper(); + wrapper.set("usnid",RSAUtil.encrypt(newId,RSAUtil.getPublicKey())); + wrapper.eq("uname",uname); + int flag=mapper.update(null,wrapper); + return new Response().set(1,flag>0,flag>0?"淇敼鎴愬姛":"淇敼澶辫触"); + }else { + return new Response().set(1,false,"鍘熷瘑鐮佷笉姝g‘"); } } - @CacheEvict(value = "userPage",allEntries = true) - public Response addByRSA(User user) { - User userFound = userBridgeService.findPasswordByUserName(user.getName()); - if (userFound.getId() != 0) { - return new Response<>().set(1, false, "鐢ㄦ埛鍚嶅凡瀛樺湪"); - } - User userOfPhoneNumber = userBridgeService.getUserByPhoneNumber(user.getPhoneNumber()); - if (userOfPhoneNumber.getId()!=0) { - return new Response<>().set(1, false, "鎵嬫満鍙峰凡瀛樺湪"); - } - //String password = URLDecoder.decode(user.getUpassword(), "utf-8"); - String password = user.getPwd(); - String[] dataArr = RSAUtil.decryptFront(password, RSAUtil.fontSeparator); - String pwd = RSAUtil.encrypt(dataArr[0],RSAUtil.getPublicKey()); - user.setPwd(pwd); - user.setCreateTime(new Date()); - int flag = userMapper.insert(user); - if (flag > 0) { - return new Response<>().set(1, true); + //鏍¢獙瀵嗙爜 + public Response checkSnId(String uname, String checksnId) { + //鏌ヨ褰撳墠鐢ㄦ埛鐨勫瘑鐮� + String snIdRsa = mapper.selectSnId(uname); + String snId = RSAUtil.decrypt(snIdRsa, RSAUtil.getPrivateKey()); + String[] oldchecksnId = RSAUtil.decryptFrontP(checksnId, RSAUtil.fontSeparator); + String oldId = oldchecksnId[0]; + if (oldId.equals(snId)) { + return new Response().set(1, true, "瀵嗙爜姝g‘"); } else { - return new Response<>().set(1, false, "娣诲姞澶辫触"); + return new Response().set(1, false, "瀵嗙爜涓嶆纭�"); + } + } + //閲嶇疆瀵嗙爜 + public Response resetSnId(int uid ) { + UpdateWrapper wrapper=new UpdateWrapper(); + wrapper.set("usnid",RSAUtil.encrypt("123456",RSAUtil.getPublicKey())); + wrapper.eq("uid",uid); + int flag=mapper.update(null,wrapper); + return new Response().set(1,flag>0,flag>0?"淇敼鎴愬姛":"淇敼澶辫触"); + + } + //鍒犻櫎鐢ㄦ埛淇℃伅 + @Transactional + public Response delUser(String uname) { + //鑾峰彇鐢ㄦ埛鐨剈id + User User=mapper.getUinfByUname(uname); + if(User==null){ + return new Response().set(1,false,"鐢ㄦ埛涓嶅瓨鍦�"); + }else { + int uid=User.getId(); + UpdateWrapper wrapper=new UpdateWrapper(); + wrapper.eq("uname",uname); + int bl=mapper.delete(wrapper); + if(bl>0){ + //鍒犻櫎鏉冮檺缁勪笅鐨勭敤鎴� + UpdateWrapper wrapper1=new UpdateWrapper(); + wrapper1.eq("uid",uid); + pergroupUserMapper.delete(wrapper1); + //鍒犻櫎鍖呮満缁勪笅鐨勭敤鎴� + UpdateWrapper wrapper2=new UpdateWrapper(); + wrapper2.eq("uid",uid); + bjgroupUsrMapper.delete(wrapper2); + } + return new Response().setII(1,bl>0,bl,"鍒犻櫎鎴愬姛"); } } - /*public Response registerUser(User user){ + public Response login(String uname, String usnId, Integer platFrom, HttpServletRequest request) { + Response response = new Response(); + String[] dataArr = RSAUtil.decryptFrontP(usnId, RSAUtil.fontSeparator); + //楠岀md5 + if(dataArr[0]==null||dataArr[1]==null){ + return response.set(1, false, "瀵嗙爜楠岀澶辫触"); + } + if (!dataArr[1].equals(MD5Util.encryptMD5(org.apache.commons.lang3.StringUtils.trim(dataArr[0])))) { + return response.set(1, false, "瀵嗙爜楠岀澶辫触"); + } + UsernamePasswordToken userToken = new UsernamePasswordToken(uname, dataArr[0]); + Subject subject = SecurityUtils.getSubject(); try { - User userFound = userBridgeService.findPasswordByUserName(user.getName()); - if (userFound.getId() != 0) { - return new Response<>().set(1, false, "鐢ㄦ埛鍚嶅凡瀛樺湪"); + subject.login(userToken); + } catch (Exception e) { + if(e instanceof UnknownAccountException){ + return response.set(1,false,"璐﹀彿涓嶅瓨鍦�"); } - User userOfMobilephone = userBridgeService.findUserByMobilephone(user.getPhoneNumber()); - if (userOfMobilephone.getId()!=0) { - return new Response<>().set(1, false, "鎵嬫満鍙峰凡瀛樺湪"); - } - //String password = URLDecoder.decode(user.getUpassword(), "utf-8"); - String password = user.getPwd(); + return response.set(1,false,"瀵嗙爜閿欒"); + } + //Session瀛樺偍褰撳墠鐢ㄦ埛鍙婃潈闄愮粍鍒楄〃 + User userDB = (User) subject.getPrincipal(); + userDB.setPwd(null); + //鐧诲綍鎴愬姛 + ServletContext servletContext = request.getServletContext(); + servletContext.setAttribute(uname, request.getSession().getId()); + request.getSession().setMaxInactiveInterval(60*30); + request.getSession().setAttribute("user", userDB); - String[] dataArr = RSAUtil.decryptFront(password, RSAUtil.fontSeparator); - String pwd = RSAUtil.encrypt(dataArr[0],RSAUtil.getPublicKey()); - user.setPwd(pwd); - int flag = userMapper.insert(user); - if (flag > 0) { - //娣诲姞鎴愬姛,鍒嗛厤鍒伴粯璁ゅ垵濮嬪寲鏉冮檺缁� - return new Response<>().set(1, true,"娉ㄥ唽鎴愬姛"); - } else { - return new Response<>().set(1, false, "娉ㄥ唽澶辫触"); + return response.setII(1,true, userDB,"鐧诲綍鎴愬姛"); + } + + public void logout() { + Subject subject = SecurityUtils.getSubject(); + subject.logout(); + } + //灏嗙敤鎴锋坊鍔犺嚦100~10000绠$悊鍛� + public Response improveRole(int uid) { + //鍒ゆ柇琛ㄦ槸鍚﹀瓨鍦� + String tableName = mapper.existTable(); + if(tableName==null){ + ///鍒涘缓100~1000鐨刬d琛�,涓嶅瓨鍦ㄥ垯鍒涘缓 + mapper.createNumber(); + //鎻掑叆榛樿鏁版嵁 + String sql=" INSERT INTO temp_numbers(unumber) " + + " VALUES "; + for(int i=101;i<=10000;i++){ + sql+="("+i+")"; + if(i!=10000){ + sql+=","; + } + } + mapper.setUnumber(sql); + } + String minUid=mapper.getIn10000(); + if(minUid==null){ + return new Response().set(1,false,"绠$悊鍛樹釜鏁拌秴杩囦笂闄�"); + } + UpdateWrapper wrapper =new UpdateWrapper(); + wrapper.set("uid",minUid); + wrapper.eq("uid",uid); + int flag= mapper.update(null,wrapper); + return new Response().set(1,flag>0,flag>0?"韬唤鍙樻洿鎴愬姛":"韬唤鍙樻洿澶辫触"); + } + //灏嗙鐞嗗憳鍙樻垚鏅�氱敤鎴� + public Response dropRole(int uid, HttpServletRequest request) { + //鏌ヨ鏈�澶х殑uid + String maxUid=mapper.getMaxUid(); + if(maxUid==null){ + maxUid="10001"; + } + //鏍规嵁鐢ㄦ埛id鏌ヨ鐢ㄦ埛淇℃伅 + QueryWrapper qWrapper=new QueryWrapper(); + qWrapper.eq("uid",uid); + qWrapper.last("limit 1"); + User uinf=mapper.selectOne(qWrapper); + //缂栬緫 + UpdateWrapper wrapper =new UpdateWrapper(); + wrapper.set("uid",Integer.valueOf(maxUid)+1); + wrapper.eq("uid",uid); + int flag= mapper.update(null,wrapper); + //濡傛灉鏄櫘閫氱敤鎴疯嚜宸卞己閫�锛屽皢鐢ㄦ埛鍚嶅搴旂殑sessionId鍙樻洿 + ServletContext servletContext = request.getServletContext(); + servletContext.setAttribute(uinf.getName(),"123456"); + return new Response().set(1,flag>0,flag>0?"韬唤鍙樻洿鎴愬姛":"韬唤鍙樻洿澶辫触"); + } + + public Response getUserNameList() { + QueryWrapper<User> query = Wrappers.query(); + query.select("uname"); + List<String> userNameList = mapper.selectList(query).stream().map(User::getName).collect(Collectors.toList()); + return new Response().set(1,userNameList); + } + + //鐧诲綍妫�娴� + public Response checkUserWebSocket(HttpSession httpSession){ + Response model = new Response(); + try { + User user = (User) httpSession.getAttribute("user"); + if(user!=null){ + String sessionId = (String) httpSession.getServletContext().getAttribute(user.getName()); + if(httpSession.getId().equals(sessionId)){ + model.set(1,user,null); + }else{ + if(sessionId.equals("123456")){ + model.set(1,false,"韬唤鏉冮檺鍙樻洿,璇烽噸鏂扮櫥褰�"); + }else{ + model.set(1,false,"涓嶅悓涓绘満鐧诲綍"); + } + //鐢ㄦ埛鍦ㄥ叾浠栦富鏈虹櫥褰�,寮鸿揩鐢ㄦ埛鍦ㄦ湰鏈虹殑session澶辨晥 + httpSession.invalidate(); + } + } + else { + model.set(1,false,"鐢ㄦ埛淇℃伅澶辨晥,璇烽噸鏂扮櫥褰�"); } }catch (Exception e){ - e.printStackTrace(); - return new Response<>().set(0); + model.set(1,false,"鐧诲綍淇℃伅澶辨晥,閲嶆柊鐧诲綍"); } - }*/ + return model; + } + //鏌ヨ鎵�鏈夌敤鎴蜂俊鎭�(涓嶅垎椤电敤浜庝笅鎷�) + public Response getUinf() { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.select("uid","uname","urole"); + wrapper.gt("uid",100); + //wrapper.eq("urole",0);//鏅�氱敤鎴� + wrapper.orderByAsc("uid"); + List<User> list=mapper.selectList(wrapper); + return new Response().setII(1,list!=null,list,"鏌ヨ鎵�鏈夌敤鎴蜂俊鎭�(涓嶅垎椤电敤浜庝笅鎷�)"); + } + //鏍规嵁uId鑾峰彇璁惧淇℃伅 + public User getUinfByUId(int uId){ + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("id",uId); + wrapper.last("limit 1"); + User uinf=mapper.selectOne(wrapper); + return uinf; + } + //缂栬緫鐢ㄦ埛淇℃伅 + @Transactional + public Response updateUinf(User uinf) { + UpdateWrapper wrapper=new UpdateWrapper(); + if(uinf.getPhoneNumber()!=null){ + wrapper.set("phone_number",uinf.getPhoneNumber()); + } + wrapper.eq("id",uinf.getId()); + mapper.update(null,wrapper); - public User getById(int id) { - User user = userMapper.selectById(id); - user.setPwd((String) CommonUtil.objectNull); - return user; + return new Response().set(1,true,"缂栬緫鐢ㄦ埛淇℃伅鎴愬姛"); + } + //鏍规嵁Ukey鏌ヨ鐢ㄦ埛 + public User getUserByUKeyId(String ukeyId){ + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.select("uid","uname","real_name","urole","create_time","phone_number","address","face_id","ukey_id"); + queryWrapper.eq("ukey_id",ukeyId); + queryWrapper.last("limit 1"); + User User = mapper.selectOne(queryWrapper); + return User; } - public List<User> getAll() { - List<User> users = userMapper.selectList((Wrapper<User>) CommonUtil.objectNull); - return users; + //鏍规嵁uname鏌ヨ鐢ㄦ埛 + public User getUserByUserName(String uname){ + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.select("uid","uname","real_name","urole","create_time","phone_number","address","face_id","ukey_id"); + queryWrapper.eq("uname",uname); + queryWrapper.last("limit 1"); + User User = mapper.selectOne(queryWrapper); + return User; } - - @Cacheable(value = "userPage") - public Response getPage(int pageNum,int pageSize) { - PageHelper.startPage(pageNum,pageSize); - List<User> list = userMapper.selectList((Wrapper<User>) CommonUtil.objectNull); - for (User user:list) { - user.setPwd((String) CommonUtil.objectNull); - } - PageInfo<User> pageInfo = new PageInfo<>(list); - return new Response().set(1,pageInfo,"鏌ヨ鎴愬姛"); - } - - @CacheEvict(value = "userPage",allEntries = true) - public Response update(User user) { - User userFound = userBridgeService.findPasswordByUserName(user.getName()); - User userOfPhoneNumber = userBridgeService.getUserByPhoneNumber(user.getPhoneNumber()); - if (userFound.getId() != 0 && !userFound.getId().equals(user.getId())) { - return new Response().set(1,false,"鐢ㄦ埛鍚嶉噸澶�"); - } - if( userOfPhoneNumber.getId()!=0 && !userFound.getId().equals(user.getId())){ - return new Response().set(1,false,"鎵嬫満鍙烽噸澶�"); - } - user.setPwd(null); - if(userMapper.updateById(user)>0){ - return new Response().set(1,true,"淇敼鎴愬姛"); - }else{ - return new Response().set(1,false,"淇敼澶辫触"); - } - - } - // 灏嗘墍鏈夌櫥闄嗙殑鐢ㄦ埛鐨勪俊鎭瓨鍒癮pplication涓� public void setApplication(User user) { - ServletContext application = CommonUtil.getApplication(); + ServletContext application = ActionUtil.getApplication(); //鏌ョ湅鍏ㄥ眬涓瓨鍌ㄧ殑users鐨凪ap鐨刱ey-value闆嗗悎 Map<String, UserClient> map = (Map) application.getAttribute("users"); - if (map == CommonUtil.objectNull) { + if (map == ActionUtil.objeNull) { map = new HashMap<String, UserClient>(); } else { //濡傛灉闆嗗悎涓湁鍊�,鍒欒幏鍙栧綋鍓嶇敤鎴峰搴旂殑鐢ㄦ埛淇℃伅,key涓虹敤鎴峰悕username,Value涓虹敤鎴峰悕,瀛樺偍鐨勬椂闂� UserClient client = map.get(user.getName()); - if (client != CommonUtil.objectNull) { //宸插瓨鍦� + if (client != ActionUtil.objeNull) { //宸插瓨鍦� map.remove(user.getName()); } } Long login_time = new Date().getTime(); - CommonUtil.getSession().setAttribute("login_time", login_time); - map.put(user.getName(), new UserClient(CommonUtil.getRequest().getRemoteAddr(),user,login_time)); + ActionUtil.getSession().setAttribute("login_time", login_time); + map.put(user.getName(), new UserClient(ActionUtil.getRequest().getRemoteAddr(),user,login_time)); application.setAttribute("users", map); } - public Response updatePasswordByRSA(User user, String newPwd){ - String[] dataArr = RSAUtil.decryptFrontP(newPwd, RSAUtil.fontSeparator); - newPwd = dataArr[0]; - String passwordMD5 = dataArr[1]; - if(!CommonUtil.EncryptionMD5(newPwd).equals(passwordMD5)){ - throw new InvalidParameterException("鍙傛暟鏍¢獙澶辫触"); - } - String pwd = RSAUtil.encrypt(newPwd,RSAUtil.getPublicKey()); - user.setPwd(pwd); - if (userMapper.updateById(user)>0){ - return new Response().set(1,true,"鏂板瘑鐮佷慨鏀规垚鍔�"); - }else { - return new Response().set(0,false,"鏂板瘑鐮佷慨鏀瑰け璐�"); - } - } public List<User> searchCS_All2() { - return userMapper.searchCS_All2(); + return mapper.searchCS_All2(); } } diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml index 336a76e..08c8404 100644 --- a/src/main/resources/mapper/UserMapper.xml +++ b/src/main/resources/mapper/UserMapper.xml @@ -2,15 +2,58 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.whyc.mapper.UserMapper" > - <select id="addJudge" resultType="int"> - select count(id) as nums from db_user.tb_user where name=#{name} or phone_number=#{phoneNumber} limit 1 + <select id="searchCS_All2" resultType="com.whyc.pojo.db_user.User"> + SELECT id,name FROM db_user.tb_user where id not in (select distinct id from db_user.tb_permitgroup_usr) and id>100 + order by id + </select> + <update id="createNumber"> + CREATE TABLE if not exists db_user.temp_numbers (unumber INT); + </update> + <update id="setUnumber"> + ${sql} + </update> + <select id="existTable" resultType="java.lang.String"> + select + table_name + from `INFORMATION_SCHEMA`.`TABLES` + where table_name = 'temp_numbers' + and TABLE_SCHEMA = 'db_user' + </select> + + <select id="selectSnId" resultType="java.lang.String"> + select pwd from db_user.tb_user where name=#{name} limit 1 + </select> + <select id="judgeUname" resultType="java.lang.Integer"> + select count(*) from db_user.tb_user where id>10000 + </select> + <select id="getAllUser" resultType="User"> + select distinct tb_user.id,tb_user.name,create_time,phone_number from db_user.tb_user + <where> + tb_user.id>100 + <if test="name!=null"> + and name LIKE CONCAT('%',#{uname},'%') + </if> + </where> + order by create_time desc + </select> + <select id="getIn10000" resultType="java.lang.String"> + SELECT min(unumber) + FROM db_user.temp_numbers t + WHERE t.unumber NOT IN (SELECT id FROM db_user.tb_user); + </select> + <select id="getMaxUid" resultType="java.lang.String"> + SELECT max(id) + FROM db_user.tb_user where id>10000 + </select> + <select id="getUinfByUname" resultType="com.whyc.pojo.db_user.User"> + select name,id from db_user.tb_user where name=#{name} limit 1 </select> <select id="getBaojiUserByUid" resultType="com.whyc.pojo.db_user.User"> - SELECT id,uname FROM db_user.tb_user + SELECT id,name FROM db_user.tb_user <where> id>100 and id in( - select distinct uid from db_user.tb_baojigroup_usr + select distinct id from db_user.tb_baojigroup_usr <where> baoji_id in( <foreach collection="baojiIdList" item="baojiId" open="(" separator="," close=")"> @@ -20,11 +63,6 @@ </where> ) </where> - </select> - - <select id="searchCS_All2" resultType="com.whyc.pojo.db_user.User"> - SELECT uid,uname FROM db_user.tb_user where uid not in (select distinct uid from db_user.tb_user_permitgroup_usr) and uid>100 - order by uid </select> </mapper> \ No newline at end of file -- Gitblit v1.9.1