| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352 |
- package com.goafanti.admin.controller;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.List;
- import java.util.UUID;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.goafanti.admin.bo.AdminListBo;
- import com.goafanti.admin.bo.AdminLocationBo;
- import com.goafanti.admin.service.AdminLocationService;
- import com.goafanti.admin.service.NewAdminService;
- import com.goafanti.common.bo.Result;
- import com.goafanti.common.constant.AFTConstants;
- import com.goafanti.common.constant.ErrorConstants;
- import com.goafanti.common.controller.CertifyApiController;
- import com.goafanti.common.dao.AdminMapper;
- import com.goafanti.common.model.Admin;
- import com.goafanti.common.model.AdminLocation;
- import com.goafanti.common.utils.PasswordUtil;
- import com.goafanti.common.utils.StringUtils;
- import com.goafanti.core.shiro.token.TokenManager;
- import com.goafanti.user.service.UserService;
- @Controller
- @RequestMapping(value = "api/admin/superviser")
- public class AdminSuperviserApiController extends CertifyApiController {
- @Resource
- private NewAdminService newAdminService;
- @Resource(name = "passwordUtil")
- private PasswordUtil passwordUtil;
- @Resource
- private AdminLocationService adminLocationService;
- @Resource
- private UserService userService;
- @Autowired
- private AdminMapper adminMapper;
- /**管理员列表*/
- @RequestMapping(value = "/adminList", method = RequestMethod.GET)
- public Result adminList(AdminListBo alb, String rid, String pageNo,
- String pageSize) {
- Result res = new Result();
- Integer pNo = 1;
- Integer pSize = 10;
- if (StringUtils.isNumeric(pageSize)) {
- pSize = Integer.parseInt(pageSize);
- }
- if (StringUtils.isNumeric(pageNo)) {
- pNo = Integer.parseInt(pageNo);
- }
- res.setData(newAdminService.listAdmin(alb,rid, pNo, pSize));
- return res;
- }
-
- /**
- * 新增管理员
- */
- @RequestMapping(value = "/insertAdmin", method = RequestMethod.POST)
- public Result insertAdmin(@RequestParam(value = "roles[]", required = false) String[] roleIds, String data) {
- Result res = new Result();
- JSONObject jo = (JSONObject) JSON.parse(data);
- if (roleIds==null||roleIds.length<=0) {
- res.getError().add(buildError("","角色不能为空"));
- return res;
- }
- if (null != jo) {
- Admin admin = jo.toJavaObject(Admin.class);
- if (StringUtils.isBlank(admin.getMobile())) {
- res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "登录帐号为空", "登录帐号"));
- return res;
- }
- if (StringUtils.isBlank(admin.getName())) {
- res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "用户名为空", "用户名"));
- return res;
- }
- Admin a = newAdminService.selectByMobile(admin.getMobile().trim());
- if (null != a) {
- res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "当前用户已注册!"));
- return res;
- }
-
- Admin ad = new Admin();
- BeanUtils.copyProperties(admin, ad);
- /*ad.setId(UUID.randomUUID().toString());*/
- Calendar now = Calendar.getInstance();
- now.set(Calendar.MILLISECOND, 0);
- ad.setCreateTime(now.getTime());
- if (StringUtils.isBlank(ad.getPassword())) {
- ad.setPassword(AFTConstants.INITIALPASSWORD);
- }
- ad.setPassword(passwordUtil.getEncryptPwd(ad));
- List<String> roles = new ArrayList<String>();
- if (roleIds != null && roleIds.length > 0) {
- for (String role : roleIds) {
- roles.add(role);
- }
- }
- res.setData(newAdminService.insertNewAdmin(ad,roles));
- }
- return res;
- }
- /**
- * 修改管理员信息
- */
- @RequestMapping(value = "/updateAdmin", method = RequestMethod.POST)
- public Result updateAdmin(@RequestParam(value = "roles[]", required = false) String[] roleIds, String data) {
- Result res = new Result();
- JSONObject jo = (JSONObject) JSON.parse(data);
- if (null != jo) {
- Admin admin = jo.toJavaObject(Admin.class);
- if (null == admin.getId()) {
- res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "用户id"));
- return res;
- }
- if (null == admin.getMobile()) {
- res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "登录帐号为空", "登录帐号"));
- return res;
- }
- if (null == admin.getName()) {
- res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "用户名为空", "用户名"));
- return res;
- }
- Admin aa = newAdminService.selectByMobile(admin.getMobile().trim());
- if (null != aa && !admin.getId().equals(aa.getId())) {
- res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "当前用户已注册!"));
- return res;
- }
- Admin a = newAdminService.selectByPrimaryKey(admin.getId());
- if (null == a) {
- res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "用户id"));
- return res;
- }
- //*********用户编号判断**************
- String sdepNo=adminMapper.selectUserNoBySuperiorId(admin.getSuperiorId());
- int Count=adminMapper.selectCountBySuperiorId(admin.getSuperiorId());
- if((Count+1)>99){
- res.getError().add(buildError("","每层最多存在99个子类"));
- return res;
- }
- if(Count<10){
- String dep=sdepNo+"0"+Count;
- String sid=adminMapper.selectIdByUserNo(dep);
- while(sid!=null){
- Count=(Count+1)%100;
- if(Count>=10){
- dep=sdepNo+Count;
- }else{
- dep=sdepNo+"0"+Count;
- }
- sid=adminMapper.selectIdByUserNo(dep);
- }
- admin.setUserNo(dep);
- }
- if(Count>=10){
- String dep=sdepNo+Count;
- String sid=adminMapper.selectIdByUserNo(dep);
- while(sid!=null){
- Count=(Count+1)%100;
- dep=sdepNo+Count;
- sid=adminMapper.selectIdByUserNo(dep);
- }
- admin.setUserNo(dep);
- }
-
- Admin ad = new Admin();
- BeanUtils.copyProperties(admin, ad);
- res = disposeAdminLocationList(res, jo, ad);
- if (!res.getError().isEmpty()) {
- return res;
- }
-
- List<String> roles = new ArrayList<String>();
- if (roleIds != null && roleIds.length > 0) {
- for (String role : roleIds) {
- roles.add(role);
- }
- }
- res.setData(newAdminService.updateByPrimaryKeySelective(ad, roles));
- }
- return res;
- }
- /**
- * 重置管理员密码
- */
- @RequestMapping(value = "/resetPwd", method = RequestMethod.POST)
- public Result resetPwd(String id) {
- Result res = new Result();
- if (StringUtils.isBlank(id)) {
- res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "用户id"));
- return res;
- }
- Admin admin = newAdminService.selectByPrimaryKey(id);
- if (null == admin) {
- res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "用户id"));
- return res;
- }
- Admin a = new Admin();
- a.setId(admin.getId());
- a.setCreateTime(admin.getCreateTime());
- a.setPassword(AFTConstants.INITIALPASSWORD);
- a.setPassword(passwordUtil.getEncryptPwd(a));
- res.setData(newAdminService.updateByPrimaryKey(a));
- return res;
- }
- private Result disposeAdminLocationList(Result res, JSONObject jo, Admin ad) {
- JSONArray locations = jo.getJSONArray("locations");
- if (null == locations || locations.size()<1){
- return res;
- }
- List<AdminLocation> adminLocationList = new ArrayList<>();
- AdminLocation al = null;
- Boolean areaAdminFlag = false;
- List<Integer> locationList = null;
- if (TokenManager.hasRole(AFTConstants.AREAADMIN)) {
- locationList = new ArrayList<>();
- areaAdminFlag = true;
- }
- for (int i = 0; i < locations.size(); i++) {
- AdminLocationBo alb = locations.getJSONObject(i).toJavaObject(AdminLocationBo.class);
- Integer province = alb.getProvince();
- String city = alb.getCity();
- if (null == province) {
- res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "省份为空", "所在省份"));
- return res;
- }
- if (province.intValue() > AFTConstants.PROVINCEMAXNUM) {
- res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "所在省份"));
- return res;
- }
- if (areaAdminFlag) {
- locationList.add(province);
- }
- if (!StringUtils.isBlank(city)) {
- String[] arr = city.trim().split(",|,");
- if (null != arr && arr.length > 0) {
- for (String s : arr) {
- Integer c = Integer.valueOf(s);
- if (c.intValue() > AFTConstants.CITYMAXNUM) {
- res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "所在市"));
- return res;
- }
- adminLocationList.add(disposeAdminLocation(al, ad, province, c));
- if (areaAdminFlag) {
- locationList.add(c);
- }
- }
- }
- } else {
- adminLocationList.add(disposeAdminLocation(al, ad, province, null));
- }
- }
- if (areaAdminFlag) {
- List<Integer> albList = disposeAdminLocationBo();
- if (!albList.containsAll(locationList)) {
- res.getError().add(buildError("", "所选所在地区域不在负责区域,无法添加或修改"));
- return res;
- }
- }
- res.setData(adminLocationList);
- return res;
- }
- private AdminLocation disposeAdminLocation(AdminLocation al, Admin ad, Integer province, Integer c) {
- al = new AdminLocation();
- al.setId(UUID.randomUUID().toString());
- al.setAdminId(ad.getId());
- al.setProvince(province);
- if (null != c) {
- al.setCity(c);
- }
- return al;
- }
- private List<Integer> disposeAdminLocationBo() {
- List<AdminLocationBo> alb = adminLocationService.findLocation(TokenManager.getAdminId());
- List<Integer> albList = null;
- if (!alb.isEmpty()) {
- Integer albProvince = null;
- albList = new ArrayList<>();
- for (AdminLocationBo bo : alb) {
- albProvince = bo.getProvince();
- albList.add(albProvince);
- if (!StringUtils.isBlank(bo.getCity())) {
- String[] albArr = bo.getCity().trim().split(",|,");
- if (null != albArr && albArr.length > 0) {
- for (String ss : albArr) {
- albList.add(Integer.valueOf(ss));
- }
- }
- }
- }
- }
- return albList;
- }
- /** 图片上传 **/
- @RequestMapping(value = "/uploadAdminImg", method = RequestMethod.POST)
- public Result uploadCustomerImg(HttpServletRequest req,String sign){
- Result res = new Result();
- res.setData(handleFile(res, "/customer_sys_file/", false, req, sign));
- return res;
- }
-
- /**新增获取ID**/
- @RequestMapping(value = "/newId", method = RequestMethod.POST)
- public Result newId(){
- Result res = new Result();
- res.setData(UUID.randomUUID().toString());
- return res;
- }
- /**编辑页面信息获取**/
- @RequestMapping(value = "/selectAllByid", method = RequestMethod.POST)
- public Result selectAllByid(String id){
- Result res = new Result();
- res.setData(newAdminService.selectAllByid(id));
- return res;
- }
- /**删除用户**/
- @RequestMapping(value = "/deleteById", method = RequestMethod.POST)
- public Result deleteById(String id){
- Result res = new Result();
- newAdminService.deleteById(id);
- return res;
- }
- }
|