123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- package com.zhongzheng.controller.user;
- import cn.hutool.core.lang.Validator;
- import com.baomidou.mybatisplus.core.toolkit.StringUtils;
- import com.zhongzheng.common.annotation.Log;
- import com.zhongzheng.common.core.controller.BaseController;
- import com.zhongzheng.common.core.domain.AjaxResult;
- import com.zhongzheng.common.enums.BusinessType;
- import com.zhongzheng.common.utils.DateUtils;
- import com.zhongzheng.common.utils.ServletUtils;
- import com.zhongzheng.framework.web.service.WxLoginService;
- import com.zhongzheng.framework.web.service.WxTokenService;
- import com.zhongzheng.modules.system.domain.SysTenant;
- import com.zhongzheng.modules.system.service.ISysTenantService;
- import com.zhongzheng.modules.user.bo.*;
- import com.zhongzheng.modules.user.domain.UserWxFollow;
- import com.zhongzheng.modules.user.entity.ClientLoginUser;
- import com.zhongzheng.modules.user.service.IUserLoginKeyService;
- import com.zhongzheng.modules.user.service.IUserService;
- import com.zhongzheng.modules.user.service.IUserVisitLogService;
- import com.zhongzheng.modules.user.service.IUserWxFollowService;
- import com.zhongzheng.modules.user.vo.UserVo;
- import com.zhongzheng.modules.wx.bo.WxLoginBody;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.RequiredArgsConstructor;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.security.access.prepost.PreAuthorize;
- import org.springframework.web.bind.annotation.*;
- import java.util.HashMap;
- import java.util.Map;
- /**
- * 客户端用户Controller
- *
- * @author hjl
- * @date 2021-06-08
- */
- @Api(value = "用户控制器", tags = {"客户端用户管理"})
- @RequiredArgsConstructor(onConstructor_ = @Autowired)
- @RestController
- @RequestMapping("/app/user")
- public class UserController extends BaseController {
- private final IUserService iUserService;
- private final WxTokenService wxTokenService;
- private final IUserWxFollowService iUserWxFollowService;
- private final IUserVisitLogService iUserVisitLogService;
- private final WxLoginService wxLoginService;
- private final ISysTenantService sysTenantService;
- private final IUserLoginKeyService iUserLoginKeyService;
- private static Logger log = LoggerFactory.getLogger(UserController.class);
- /**
- * 修改客户端用户
- */
- @ApiOperation("修改客户端用户")
- @Log(title = "客户端用户", businessType = BusinessType.UPDATE)
- @PostMapping("/edit")
- public AjaxResult<Void> edit(@RequestBody UserEditBo bo) throws IllegalAccessException {
- ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
- bo.setUserId(loginUser.getUser().getUserId());
- return toAjax(iUserService.appUpdateByEditBo(bo) ? 1 : 0);
- }
- /**
- * 收藏数等数据
- */
- @ApiOperation("我的列表数据")
- @GetMapping("/infoAttached")
- public AjaxResult infoAttached() {
- ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
- Map<String,Object> map = new HashMap<>();
- //计划数量
- Long planSum = iUserService.planSum(loginUser.getUser().getUserId());
- //学时数量
- Long periodSum = iUserService.periodSum(loginUser.getUser().getUserId());
- //预约考试数量
- Long subscribeSum = iUserService.subscribeSum(loginUser.getUser().getUserId());
- //通知数量
- Long informSum = iUserService.informSum(loginUser.getUser().getUserId());
- //订单数量
- Long orderSum = iUserService.orderSum(loginUser.getUser().getUserId());
- map.put("planSum",planSum);
- map.put("periodSum",periodSum);
- map.put("subscribeSum",subscribeSum);
- map.put("informSum",informSum);
- map.put("orderSum",orderSum);
- return AjaxResult.success(map);
- }
- @ApiOperation("绑定身份证信息")
- @PostMapping("/bind_idcard")
- public AjaxResult<Void> bind_id(@RequestBody UserAppBindIdBo bo) {
- ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
- bo.setUserId(loginUser.getUser().getUserId());
- return toAjax(iUserService.bindIdCard(bo) ? 1 : 0);
- }
- /**
- * 获取用户信息
- *
- * @return 用户信息
- */
- @ApiOperation("登录用户信息")
- @GetMapping("getInfo")
- public AjaxResult<UserVo> getInfo(UserVisitLogAddBo bo)
- {
- ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
- UserVo vo = iUserService.queryById(loginUser.getUser().getUserId());
- UserWxFollow userWxFollow = iUserWxFollowService.queryByUnionId(loginUser.getUser().getUnionId());
- if(Validator.isNotEmpty(userWxFollow)){
- vo.setUserFollowWx(1);
- }
- vo.setNull();
- String tenantId = ServletUtils.getRequest().getHeader("TenantId");
- if (StringUtils.isNotBlank(tenantId)){
- SysTenant tenant = sysTenantService.getById(Long.valueOf(tenantId));
- vo.setEduPhone(tenant.getEduPhone());
- }
- bo.setUserId(loginUser.getUser().getUserId());
- iUserVisitLogService.insertByAddBo(bo);
- return AjaxResult.success(vo);
- }
- @ApiOperation("绑定新手机")
- @PostMapping("/bindNewTel")
- public AjaxResult<Void> bindNewTel(@RequestBody UserAppSmsLoginBo bo) {
- ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
- bo.setUserId(loginUser.getUser().getUserId());
- return toAjax(iUserService.bindNewTel(bo)? 1 : 0);
- }
- @ApiOperation("修改密码")
- @PostMapping("/updatePwd")
- public AjaxResult<Void> updatePwd(@RequestBody UserAppUpdatePwdBo bo) {
- ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
- bo.setUserId(loginUser.getUser().getUserId());
- return toAjax(iUserService.updatePwd(bo)? 1 : 0);
- }
- /**
- * 修改用户活动邀请码
- */
- @ApiOperation("修改用户活动邀请码")
- @PostMapping("/edit/shareActivityCode")
- public AjaxResult<Void> editShareActivityCode(@RequestBody UserEditBo bo){
- ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
- bo.setUserId(loginUser.getUser().getUserId());
- return toAjax(iUserService.editShareActivityCode(bo) ? 1 : 0);
- }
- @ApiOperation("检查密码修改时间")
- @PreAuthorize("@ss.hasPermi('system:user:list')")
- @GetMapping("/checkPwdTime")
- public AjaxResult<Boolean> checkPwdTime()
- {
- ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
- UserVo userVo = iUserService.queryById(loginUser.getUser().getUserId());
- boolean needUpdate = false;
- /* if(Validator.isNotEmpty(userVo.getPwdTime())&&(DateUtils.getNowTime().longValue()-userVo.getPwdTime().longValue())>90*24*3600){
- needUpdate = true;
- }*/
- return AjaxResult.success(needUpdate);
- }
- @ApiOperation("购买前获取公众号openid")
- @PostMapping("/gzh_bind")
- public AjaxResult gzh_bind(@RequestBody WxLoginBody loginBody)
- {
- ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
- loginBody.setUserId(loginUser.getUser().getUserId());
- wxLoginService.bindWxGzhUnionIdUser(loginBody);
- return AjaxResult.success();
- }
- @ApiOperation("检查是否绑定公众号")
- @PreAuthorize("@ss.hasPermi('system:user:list')")
- @GetMapping("/checkBindGzh")
- public AjaxResult<String> checkBindGzh()
- {
- ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
- UserVo userVo = iUserService.queryById(loginUser.getUser().getUserId());
- return AjaxResult.success("成功",userVo.getGzhOpenId());
- }
- @ApiOperation("把其他用户踢下线")
- @Log(title = "把其他用户踢下线", businessType = BusinessType.UPDATE)
- @PostMapping("/offline")
- public AjaxResult<Void> offline(){
- ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
- UserLoginKeyEditBo editBo = new UserLoginKeyEditBo();
- editBo.setUserId(loginUser.getUser().getUserId());
- editBo.setUserKey(loginUser.getToken());
- return toAjax(iUserLoginKeyService.offline(editBo) ? 1 : 0);
- }
- }
|