/**************************************************************************
* Copyright (c) 2016-2017 Zhejiang TaChao Network Technology Co.,Ltd.
* All rights reserved.
*
* 项目名称:浙江踏潮-基础架构
* 版权说明:本软件属浙江踏潮网络科技有限公司所有,在未获得浙江踏潮网络科技有限公司正式授权
* 情况下,任何企业和个人,不能获取、阅读、安装、传播本软件涉及的任何受知
* 识产权保护的内容。
***************************************************************************/
package com.zjtachao.fish.kiss.manage.controller.user;
import com.alibaba.fastjson.JSON;
import com.zjtachao.fish.kiss.common.bean.domain.KissBaseUser;
import com.zjtachao.fish.kiss.common.bean.ro.*;
import com.zjtachao.fish.kiss.common.bean.so.KissBaseUserSo;
import com.zjtachao.fish.kiss.common.constant.KissCommonConstant;
import com.zjtachao.fish.kiss.common.context.KissCommonContext;
import com.zjtachao.fish.kiss.manage.controller.base.KissManageBaseController;
import com.zjtachao.fish.kiss.manage.service.site.KissUserSiteRelService;
import com.zjtachao.fish.kiss.manage.service.user.KissBaseUserService;
import com.zjtachao.fish.kiss.manage.service.user.KissUserRoleRelService;
import com.zjtachao.fish.water.common.base.bean.WaterBootResultBean;
import com.zjtachao.fish.water.common.base.context.WaterBootResultContext;
import com.zjtachao.fish.water.common.tool.WaterUUIDUtil;
import com.zjtachao.fish.water.common.tool.WaterValidateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import java.util.Date;
import java.util.List;
/**
* 用户管理
*
* @author <a href="mailto:dh@zjtachao.com">duhao</a>
* @since 2.0
*/
@Controller
@Path("/user")
public class KissBaseUserController extends KissManageBaseController {
/**
* 用户service
**/
@Autowired
private KissBaseUserService kissBaseUserService;
/**
* 用户角色service
**/
@Autowired
private KissUserRoleRelService kissUserRoleRelService;
/**
* 用户场所service
**/
@Autowired
private KissUserSiteRelService kissUserSiteRelService;
/**
* 管理员角色编码
**/
@Value("${com.zjtachao.fish.kiss.manage.normal.user.role.admin}")
private String adminRoleCode;
/**
* 查询用户单条数据
*
* @param code
* @return
*/
@GET
@Path("/query/single/{code}")
@Consumes({MediaType.APPLICATION_JSON})
@Produces(MediaType.APPLICATION_JSON)
public WaterBootResultBean<KissBaseUserRo> queryUserByCode(@PathParam("code") String code) {
WaterBootResultBean<KissBaseUserRo> result = new WaterBootResultBean<KissBaseUserRo>();
try {
KissBaseUserRo ro = kissBaseUserService.findBaseUserByCode(code);
result.setRst(ro);
result.setCode(WaterBootResultContext.ResultCode.SUCCESS.getCode());
result.setMsg("查询成功");
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
result.setCode(WaterBootResultContext.ResultCode.ERROR.getCode());
result.setMsg("服务器出错");
}
return result;
}
/**
* 查询列表
*
* @param json
* @return
*/
@POST
@Path("/query/list")
@Consumes({MediaType.APPLICATION_JSON})
@Produces(MediaType.APPLICATION_JSON)
public WaterBootResultBean<KissBaseUserRo> queryList(String json,
@CookieParam(KissCommonConstant.KISS_COMMON_USER_LOGIN_COOKIE_KEY) String userToken) {
WaterBootResultBean<KissBaseUserRo> result = new WaterBootResultBean<KissBaseUserRo>();
try {
if (null != json && !"".equals(json)) {
KissBaseUserSo so = JSON.parseObject(json, KissBaseUserSo.class);
boolean allowFlag = isAllowQueryUser(userToken, KissCommonContext.RoleTypeContext.AGENT_ADMIN.getCode());
if (allowFlag) {
so.setUserRole(getUserRole(userToken));
so.setAdminUserCode(getUser(userToken).getUserCode());
Long count = kissBaseUserService.findBaseUserCount(so);
so.setDataCount(count);
List<KissBaseUserRo> roList = kissBaseUserService.findBaseUserList(so);
result.setCount(count);
result.setRst(roList);
result.setCode(WaterBootResultContext.ResultCode.SUCCESS.getCode());
result.setMsg("查询成功");
} else {
result.setMsg("该用户无权限操作");
}
} else {
result.setCode(WaterBootResultContext.ResultCode.VALID_NO_PASS.getCode());
result.setMsg("参数有误");
}
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
result.setCode(WaterBootResultContext.ResultCode.ERROR.getCode());
result.setMsg("服务器出错");
}
return result;
}
/**
* 修改状态
*
* @return
*/
@GET
@Path("/status/{code}/{status}")
@Consumes({MediaType.APPLICATION_JSON})
@Produces(MediaType.APPLICATION_JSON)
public WaterBootResultBean<KissBaseUserRo> upateStatus(
@PathParam("code") String code,
@PathParam("status") Integer status) {
WaterBootResultBean<KissBaseUserRo> result = new WaterBootResultBean<KissBaseUserRo>();
try {
kissBaseUserService.updateBaseUserStatus(code, status);
result.setCode(WaterBootResultContext.ResultCode.SUCCESS.getCode());
result.setMsg("修改状态成功!");
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
result.setCode(WaterBootResultContext.ResultCode.ERROR.getCode());
result.setMsg("服务器出错");
}
return result;
}
/**
* 修改用户
*
* @return
*/
@POST
@Path("/update")
@Consumes({MediaType.APPLICATION_JSON})
@Produces(MediaType.APPLICATION_JSON)
public WaterBootResultBean<KissBaseUserWithPwdRo> update(String json) {
WaterBootResultBean<KissBaseUserWithPwdRo> result = new WaterBootResultBean<KissBaseUserWithPwdRo>();
try {
boolean flag = true;
String msg = null;
KissBaseUserWithPwdRo ro = null;
if (null != json && !"".equals(json)) {
ro = JSON.parseObject(json, KissBaseUserWithPwdRo.class);
if (null != ro) {
if (null == ro.getUserCode() || "".equals(ro.getUserCode())) {
flag = false;
msg = "用户编码有误";
}
if (null == ro.getUserNickname() || "".equals(ro.getUserNickname())
|| ro.getUserNickname().length() < 1 || ro.getUserNickname().length() > 100) {
flag = false;
msg = "昵称有误";
}
if (null == ro.getUserPwd() || "".equals(ro.getUserPwd()) || !WaterValidateUtil.validateMd5Pwd(ro.getUserPwd())) {
flag = false;
msg = "密码有误,必须为md5加密后的数据";
}
if (null == ro.getUserMobile() || "".equals(ro.getUserMobile()) || !WaterValidateUtil.isMobileLegal(ro.getUserMobile())) {
flag = false;
msg = "手机号有误";
}
} else {
flag = false;
m