packagecom.zealer.cps.customer.controller;importjava.io.File;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Date;importjava.util.HashMap;importjava.util.List;importjava.util.Locale;importjava.util.Map;importjavax.annotation.Resource;importjavax.servlet.http.HttpServletRequest;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.context.MessageSource;importorg.springframework.http.HttpHeaders;importorg.springframework.http.HttpStatus;importorg.springframework.http.ResponseEntity;importorg.springframework.stereotype.Controller;importorg.springframework.ui.Model;importorg.springframework.web.bind.annotation.ModelAttribute;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.ResponseBody;importorg.springframework.web.multipart.MultipartFile;importorg.springframework.web.servlet.mvc.support.RedirectAttributes;importcom.zealer.cps.base.annotation.Log;importcom.zealer.cps.base.annotation.MarkRequest;importcom.zealer.cps.base.constant.AppConstant;importcom.zealer.cps.base.constant.ParamConstants;importcom.zealer.cps.base.controller.BaseController;importcom.zealer.cps.base.message.ErrorActionResult;importcom.zealer.cps.base.message.SuccessActionResult;importcom.zealer.cps.base.model.entity.customer.UserTagValue;importcom.zealer.cps.base.model.entity.customer.UserValue;importcom.zealer.cps.base.model.entity.customer.LabelManagerValue;importcom.zealer.cps.base.util.AssertHelper;importcom.zealer.cps.base.util.ExcelUtils;importcom.zealer.cps.base.util.FileUploadUtil;importcom.zealer.cps.base.util.HttpRequestUtils;importcom.zealer.cps.base.util.HttpUtils;importcom.zealer.cps.base.util.JSONHelper;importcom.zealer.cps.customer.service.ArrearageUserService;importcom.zealer.cps.customer.service.IptvGroupService;importcom.zealer.cps.customer.service.UserService;importcom.zealer.cps.customer.service.LabelManagerService;importcom.zealer.cps.operation.impl.OperationInterfaceImp;
@Controller
@RequestMapping("/user")public class UserController extendsBaseController
{
@Resource( name= "userService")privateUserService userService;/*** 往某一分组里批量添加用户记录信息
*@paramid 用户id
*@return**/@ResponseBody
@RequestMapping( value= "/batchadduser", produces = "application/json")
@Log("批量添加用户信息")public ResponseEntity batchAddUser( @RequestParam ("excelFile") MultipartFile excelFile, Model model,
HttpServletRequest request, Locale locale )
{
Map jsonMap = new HashMap();
String dir= FileUploadUtil.getFileRealPath( request, excelFile.getName(), "Excel");
String ctxPath=FileUploadUtil.getTomcatPath( request );
String localPath= HttpRequestUtils.getContextPath( request ) + "/";try{
Map resutlMap = ExcelUtils.excelImportUser( ctxPath +dir, request );
List errorList = (List)resutlMap.get( "error");/*如果Excel中存在不符合格式的数据则返回不符合格式的数据*/
if( AssertHelper.isNotEmptyCollection( errorList ) )
{
jsonMap.put("result", 1);
String jsonStr=JSONHelper.toJson( jsonMap );return(new ResponseEntity( jsonStr, HttpStatus.OK ) );
}
List successList = (List)resutlMap.get( "success");
Map > map =checkUserCodeIsExist( successList );/*如果导入的用户账号中存在系统中没有的账号则进行插入操作*/List notExistList = map.get( "noExistList");if( AssertHelper.isNotEmptyCollection( notExistList ) )
{
userService.batchInsertUser( notExistList );
}
}catch( Exception e )
{
log.error("batchadd user to group error::", e );
jsonMap.put("result", -1);
String jsonStr=JSONHelper.toJson( jsonMap );return(new ResponseEntity( jsonStr, HttpStatus.BAD_REQUEST ) );
}
jsonMap.put("result", 0);
String jsonStr=JSONHelper.toJson( jsonMap );return(new ResponseEntity( jsonStr, HttpStatus.OK ) );
}/*** 校验导入的用户账号是否已经存在系统中了
*@paramlist 待导入的用户账号
*@return存在则返回存在的用户账号list,不存在则返回空的list*/
private Map> checkUserCodeIsExist(Listlist)
{
Map> map = new HashMap>();
List allList =UserService.getAllUsersCode();
List existList = new ArrayList();
List noExistList = new ArrayList();for(UserValue UserValue : list)
{if(allList.contains(UserValue.getUserCode()))
{
existList.add(UserValue);
}else{
noExistList.add(UserValue);
}
}
map.put("existList", existList);
map.put("noExistList", noExistList);returnmap;
}
}