Explorar o código

feat:移动会员看课功能(未完成)

caoliqin hai 4 días
pai
achega
a340882da9

+ 0 - 132
fs-user-app/src/main/java/com/fs/app/controller/CourseWxH5Controller.java

@@ -1,132 +0,0 @@
-package com.fs.app.controller;
-
-
-import com.fs.app.annotation.Login;
-import com.fs.common.annotation.RepeatSubmit;
-import com.fs.common.core.domain.R;
-import com.fs.common.core.domain.ResponseResult;
-import com.fs.course.param.FsCourseQuestionAnswerUParam;
-import com.fs.course.param.FsCourseSendRewardUParam;
-import com.fs.course.param.FsUserCourseVideoFinishUParam;
-import com.fs.course.param.newfs.FsUserCourseAddCompanyUserParam;
-import com.fs.course.param.newfs.FsUserCourseVideoLinkParam;
-import com.fs.course.param.newfs.FsUserCourseVideoUParam;
-import com.fs.course.service.*;
-import com.fs.course.vo.FsUserCourseVideoH5VO;
-import com.fs.course.vo.newfs.FsUserCourseVideoLinkDetailsVO;
-import com.fs.store.service.IFsUserService;
-import com.fs.system.service.ISysConfigService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-
-@Api("会员-h5看课接口")
-@RestController
-@RequestMapping(value = "/app/course/wx/h5")
-public class CourseWxH5Controller extends AppBaseController {
-    Logger logger = LoggerFactory.getLogger(getClass());
-    @Autowired
-    private IFsUserCourseService courseService;
-
-    @Autowired
-    private IFsUserCourseVideoService courseVideoService;
-
-    @Autowired
-    private ISysConfigService configService;
-
-    @Autowired
-    private IFsCourseLinkService courseLinkService;
-
-    @Autowired
-    private IFsCourseWatchLogService courseWatchLogService;
-
-    @Autowired
-    private IFsCourseQuestionBankService questionBankService;
-
-    @Autowired
-    private IFsUserService fsUserService;
-
-
-    @Login
-    @ApiOperation("判断是否添加客服(是否关联销售)")
-    @PostMapping("/isAddKf")
-    public ResponseResult<Boolean> isAddCompanyUser(@Valid @RequestBody FsUserCourseAddCompanyUserParam param) {
-        Long userId = Long.parseLong(getUserId());
-        param.setUserId(userId);
-        return courseVideoService.isAddCompanyUser(param);
-    }
-
-    @ApiOperation("h5课程简介")
-    @GetMapping("/getH5CourseByVideoId")
-    public R getCourseByVideoId(@RequestParam("videoId") Long videoId)
-    {
-        FsUserCourseVideoH5VO course = courseService.selectFsUserCourseVideoH5VOByVideoId(videoId);
-        return R.ok().put("data",course);
-    }
-
-    @Login
-    @ApiOperation("H5课程详情")
-    @GetMapping("/videoDetails")
-    public ResponseResult<FsUserCourseVideoLinkDetailsVO> getCourseVideoDetails(FsUserCourseVideoLinkParam param) {
-        param.setFsUserId(Long.parseLong(getUserId()));
-        return courseVideoService.getLinkCourseVideoDetails(param);
-    }
-
-    @ApiOperation("获取真实链接")
-    @GetMapping("/getRealLink")
-    public R getRealLink(@RequestParam("sortLink")String link)
-    {
-        return courseLinkService.getRealLinkH5(link);
-    }
-
-    @ApiOperation("更新看课时长")
-    @PostMapping("/updateWatchDuration")
-    public R updateWatchDuration(@RequestBody FsUserCourseVideoUParam param)
-    {
-        param.setUserId(Long.parseLong(getUserId()));
-        return courseVideoService.updateWatchDurationWx(param);
-    }
-
-
-    @ApiOperation("获取缓冲流量")
-    @PostMapping("/getInternetTraffic")
-    public R getInternetTraffic(@RequestBody FsUserCourseVideoFinishUParam param) {
-        param.setUserId(Long.parseLong(getUserId()));
-        return courseVideoService.getInternetTraffic(param);
-    }
-
-
-    @ApiOperation("答题")
-    @PostMapping("/courseAnswer")
-    public R courseAnswer(@RequestBody FsCourseQuestionAnswerUParam param){
-        param.setUserId(Long.parseLong(getUserId()));
-        logger.info("zyp \n【答题】:{}",param.getQuestions());
-        if (param.getDuration()==null){
-            logger.info("zyp \n【未识别到时长】:{}",param.getUserId());
-        }
-        return questionBankService.courseAnswer(param, true);
-    }
-
-    @ApiOperation("发放奖励")
-    @PostMapping("/sendReward")
-    @RepeatSubmit
-    public R sendReward(@RequestBody FsCourseSendRewardUParam param)
-    {
-        param.setUserId(Long.parseLong(getUserId()));
-        logger.info("zyp \n【发放奖励】:{}",param);
-        return courseVideoService.sendRewardByFsUser(param);
-    }
-
-
-    @PostMapping("/getErrMsg")
-    public void getErrMsg(@RequestParam("msg") String msg) {
-        logger.error("zyp \n【h5看课中途报错】:{}",msg);
-    }
-
-
-}

+ 0 - 238
fs-user-app/src/main/java/com/fs/app/controller/WxCompanyUserController.java

@@ -1,238 +0,0 @@
-package com.fs.app.controller;
-
-import cn.binarywang.wx.miniapp.api.WxMaService;
-import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
-import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
-import cn.hutool.core.date.DateTime;
-import com.fs.app.param.LoginMaWxParam;
-import com.fs.app.utils.JwtUtils;
-import com.fs.common.core.domain.R;
-import com.fs.common.core.redis.RedisCache;
-import com.fs.common.utils.IpUtil;
-import com.fs.common.utils.ServletUtils;
-import com.fs.company.domain.Company;
-import com.fs.company.domain.CompanyUser;
-import com.fs.company.service.ICompanyDeptService;
-import com.fs.company.service.ICompanyService;
-import com.fs.company.service.ICompanyUserService;
-import com.fs.store.domain.FsUser;
-import com.fs.store.service.IFsUserService;
-import com.fs.wx.miniapp.config.WxMaConfiguration;
-import com.fs.wx.miniapp.config.WxMaProperties;
-import io.jsonwebtoken.Claims;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.error.WxErrorException;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.Date;
-
-@Api("微信小程序相关接口")
-@RestController
-@RequestMapping(value = "/app/wx/miniapp")
-@Slf4j
-public class WxCompanyUserController extends AppBaseController {
-    private final Logger logger = LoggerFactory.getLogger(this.getClass());
-
-    @Autowired
-    private WxMaProperties maProperties;
-
-    @Autowired
-    JwtUtils jwtUtils;
-
-    @Autowired
-    RedisCache redisCache;
-
-    @Autowired
-    private ICompanyUserService companyUserService;
-
-    @Autowired
-    private ICompanyDeptService companyDeptService;
-
-    @Autowired
-    private IFsUserService userService;
-
-    @Autowired
-    ICompanyService companyService;
-
-    @ApiOperation("小程序-授权登录")
-    @PostMapping("/loginByMa")
-    public R login(@RequestBody LoginMaWxParam param) {
-        log.info("=====================进入小程序授权登录, 入参: {}", param);
-        if (StringUtils.isBlank(param.getCode())) {
-            return R.error("code不存在");
-        }
-        //获取第二个小程序配置,序号从0开始
-        final WxMaService wxService = WxMaConfiguration.getMaService(maProperties.getConfigs().get(1).getAppid());
-        try {
-            WxMaJscode2SessionResult session = wxService.getUserService().getSessionInfo(param.getCode());
-            this.logger.info(session.getSessionKey());
-            this.logger.info(session.getOpenid());
-            this.logger.info(session.getUnionid());
-            // 解密
-            WxMaPhoneNumberInfo phoneNoInfo = wxService.getUserService().getPhoneNoInfo(session.getSessionKey(), param.getEncryptedData(), param.getIv());
-//            WxMaUserInfo userInfo = wxService.getUserService().getUserInfo(session.getSessionKey(), param.getEncryptedData(), param.getIv());
-            FsUser user = userService.selectFsUserByPhone(phoneNoInfo.getPhoneNumber());
-            //以下暂时注释,不需要往销售表添加数据
-//            CompanyUser companyUser = companyUserService.getCompanyUserByOpenId(session.getOpenid());
-//            String ip = IpUtil.getRequestIp();
-//
-////            // 如果公司id为空(表示可能是该公司的第一位销售管理员),则需要根据电话号码判断是否存在销售,如果不存在则提示
-////            if (param.getCompanyId() == null) {
-////                if (checkPhone == null) {
-////                    throw new CustomException("由于不是管理员,不能直接登录", 401);
-////                }
-////            }
-//            if (companyUser == null) {
-//                CompanyUser checkPhone = companyUserService.getCompanyUserByPhone(phoneNoInfo.getPhoneNumber());
-//                if (checkPhone != null) {
-//                    if (checkPhone.getMaOpenId() == null) {
-//                        companyUser = checkPhone;
-//                        companyUser.setMaOpenId(session.getOpenid());
-//                        companyUser.setUserId(companyUser.getUserId());
-//                        companyUser.setUpdateTime(new DateTime());
-//                        companyUser.setLoginIp(ip);
-//                        companyUserService.updateUserProfile(companyUser);
-//                    } else {
-//                        throw new CustomException("此手机号用户已存在");
-//                    }
-//                } else {
-//                    //新增
-//                    companyUser = new CompanyUser();
-//                    companyUser.setUserName(phoneNoInfo.getPhoneNumber());
-//                    companyUser.setNickName(userInfo.getNickName() == null ? "微信用户" : userInfo.getNickName());
-//                    companyUser.setPhonenumber(phoneNoInfo.getPhoneNumber());
-//                    companyUser.setSex(userInfo.getGender());
-//                    //密码初始化为123456
-//                    String pw = "123456";
-//                    companyUser.setPassword(SecurityUtils.encryptPassword(param.getPassword() == null ? pw : param.getPassword()));
-//                    companyUser.setCreateTime(new Date());
-//                    companyUser.setCompanyId(param.getCompanyId());
-//                    companyUser.setParentId(param.getParentCompanyUseId());
-//                    companyUser.setMaOpenId(session.getOpenid());
-//
-//                    //部门信息
-//                    CompanyDept dept = companyDeptService.getDefaultCompanyDeptByCompanyId(param.getCompanyId());
-//                    if (Objects.nonNull(dept)) {
-//                        companyUser.setDeptId(dept.getDeptId());
-//                    }
-//                    companyUserService.insertUser(companyUser);
-//                }
-//            } else {
-//                CompanyUser companyUserMp = new CompanyUser();
-//                companyUserMp.setPhonenumber(phoneNoInfo.getPhoneNumber());
-//                companyUserMp.setUserId(companyUser.getUserId());
-//                companyUserMp.setUpdateTime(new DateTime());
-//                companyUserMp.setLoginIp(ip);
-//                companyUserService.updateUserProfile(companyUser);
-//            }
-
-            // 特殊(需求设计:需要根据公司是否开启黑名单来设置会员初始化的状态)
-            Company company = null;
-            if(param.getCompanyId() != null){
-                company = companyService.selectCompanyById(param.getCompanyId());
-            }
-
-            // 根据销售后台设置的  是否需要单独注册会员 来判断是否需要设置销售的值
-            CompanyUser companyUser = null;
-            if(param.getCompanyUserId() != null){
-                companyUser = companyUserService.selectCompanyUserById(param.getCompanyUserId());
-            }
-
-            String ip = IpUtil.getRequestIp();
-            if (user == null) {
-                if(StringUtils.isNotEmpty(session.getUnionid())){
-                    user = userService.selectFsUserByUnionId(session.getUnionid());
-                } else {
-                    user = userService.selectFsUserByMaOpenId(session.getOpenid());
-                }
-                if (user != null) {
-                    //修改
-                    FsUser userMap = new FsUser();
-                    userMap.setUserId(user.getUserId());
-//                userMap.setMpOpenId(session.getOpenid());
-                    userMap.setMaOpenId(session.getOpenid());
-                    userMap.setUnionId(session.getUnionid());
-                    userMap.setUpdateTime(new DateTime());
-                    userMap.setNickname(param.getNickname() != null ? param.getNickname() : "微信用户");
-                    userMap.setAvatar(param.getAvatar() != null ? param.getAvatar() : null);
-                    userMap.setPhone(phoneNoInfo.getPhoneNumber());
-                    if(companyUser != null && companyUser.getIsNeedRegisterMember() != null && companyUser.getIsNeedRegisterMember() != 1){
-                        user.setCompanyId(param.getCompanyId());
-                        user.setCompanyUserId(param.getCompanyUserId());
-                    }
-                    userService.updateFsUser(userMap);
-                } else {
-                    //新增
-                    user = new FsUser();
-                    user.setNickname(param.getNickname() != null ? param.getNickname() : "微信用户");
-                    user.setAvatar(param.getAvatar() != null ? param.getAvatar() : null);
-                    user.setStatus((company != null ? company.getFsUserIsDefaultBlack() : 0) == 1 ? 0 : 1);
-                    user.setMaOpenId(session.getOpenid());
-                    user.setUnionId(session.getUnionid());
-                    user.setCreateTime(new Date());
-                    user.setPhone(phoneNoInfo.getPhoneNumber());
-                    if(companyUser != null && companyUser.getIsNeedRegisterMember() != null && companyUser.getIsNeedRegisterMember() != 1){
-                        user.setCompanyId(param.getCompanyId());
-                        user.setCompanyUserId(param.getCompanyUserId());
-                    }
-                    userService.insertFsUser(user);
-                }
-            } else {
-                FsUser userMap = new FsUser();
-                userMap.setUserId(user.getUserId());
-                userMap.setUpdateTime(new DateTime());
-                userMap.setPhone(phoneNoInfo.getPhoneNumber());
-                userMap.setLastIp(ip);
-                if (StringUtils.isNotEmpty(session.getUnionid())) {
-                    userMap.setUnionId(session.getUnionid());
-                }
-                userService.updateFsUser(userMap);
-            }
-            log.info("保存成功的用户信息user: {}, 用户id: {}", user, user.getUserId());
-            String token = jwtUtils.generateToken(user.getUserId());
-            // 返回一个写死的数据到前端
-            return R.ok("登录成功").put("token", token).put("phoneNumber", phoneNoInfo.getPhoneNumber()).put("nickName", "微信用户").put("user", user);
-        } catch (WxErrorException e) {
-            this.logger.error(e.getMessage(), e);
-            return R.error("授权失败," + e.getMessage());
-        }
-    }
-
-//    @Login(isMiniLogin = true)
-//    @ApiOperation("获取销售通过小程序登录后的用户信息")
-//    @GetMapping("/getMaUser")
-//    public R getUserInfo() {
-//        try {
-//            CompanyUser companyUser = companyUserService.selectCompanyUserById(Long.parseLong(getUserId()));
-//            if (companyUser == null) {
-//                return R.error(401, "用户信息不存在");
-//            }
-//            return R.ok().put("user", companyUser);
-//        } catch (Exception e) {
-//            return R.error("操作异常");
-//        }
-//    }
-
-    /**
-     * 特殊要求:销售小程序临时登录,登录后页面中还有一个之前常用的登录,所以为了区分,token名称不能跟之前的一样
-     *
-     * @return 用户id
-     */
-    public String getUserId() {
-        String headValue = ServletUtils.getRequest().getHeader("UserToken");
-        Claims claims = jwtUtils.getClaimByToken(headValue);
-        String userId = claims.getSubject().toString();
-        return userId;
-    }
-
-
-}

+ 0 - 129
fs-user-app/src/main/java/com/fs/app/controller/WxH5MpController.java

@@ -1,129 +0,0 @@
-package com.fs.app.controller;
-
-import cn.hutool.core.date.DateTime;
-import com.fs.app.param.FsUserLoginByMpParam;
-import com.fs.app.utils.JwtUtils;
-import com.fs.common.core.domain.R;
-import com.fs.common.core.redis.RedisCache;
-import com.fs.company.domain.Company;
-import com.fs.company.domain.CompanyUser;
-import com.fs.company.service.ICompanyService;
-import com.fs.company.service.ICompanyUserService;
-import com.fs.course.mapper.FsCourseWatchLogMapper;
-import com.fs.qw.mapper.QwExternalContactMapper;
-import com.fs.store.domain.FsUser;
-import com.fs.store.service.IFsUserService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.bean.WxOAuth2UserInfo;
-import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
-import me.chanjar.weixin.common.error.WxErrorException;
-import me.chanjar.weixin.mp.api.WxMpService;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.validation.Valid;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-@Api("会员-h5-微信相关接口")
-@RestController
-@RequestMapping("/app/wx/h5/mp")
-@Slf4j
-public class WxH5MpController {
-    Logger logger = LoggerFactory.getLogger(getClass());
-    @Autowired
-    private WxMpService wxMpService;
-
-    @Autowired
-    private IFsUserService userService;
-
-    @Autowired
-    JwtUtils jwtUtils;
-    @Autowired
-    RedisCache redisCache;
-
-    @Autowired
-    FsCourseWatchLogMapper fsCourseWatchLogMapper;
-    @Autowired
-    QwExternalContactMapper qwExternalContactMapper;
-    @Autowired
-    ICompanyService companyService;
-    @Autowired
-    ICompanyUserService companyUserService;
-
-
-    @ApiOperation("课程分享链接公众号登录")
-    @PostMapping("/loginByMp")
-    public R loginByMp(@Valid @RequestBody FsUserLoginByMpParam param) throws WxErrorException {
-//        try {
-            //获取微信用户信息
-            WxOAuth2AccessToken wxMpOAuth2AccessToken = wxMpService.getOAuth2Service().getAccessToken(param.getCode());
-            WxOAuth2UserInfo wxMpUser = wxMpService.getOAuth2Service().getUserInfo(wxMpOAuth2AccessToken, null);
-            //1、特殊(需求设计:需要根据公司是否开启黑名单来设置会员初始化的状态)
-            Company company = null;
-            if(param.getCompanyId() != null){
-                company = companyService.selectCompanyById(param.getCompanyId());
-            }
-            // 根据销售后台设置的  是否需要单独注册会员 来判断是否需要设置销售的值
-            CompanyUser companyUser = companyUserService.selectCompanyUserById(param.getCompanyUserId());
-
-            FsUser user;
-            if(StringUtils.isNotEmpty(wxMpUser.getUnionId())) {
-                user = userService.selectFsUserByUnionId(wxMpUser.getUnionId());
-            } else {
-                user = userService.selectFsUserByMpOpenId(wxMpUser.getOpenid());
-            }
-            if (user != null) {
-                //修改
-                FsUser userMap = new FsUser();
-                userMap.setUserId(user.getUserId());
-                userMap.setMpOpenId(wxMpUser.getOpenid());
-                userMap.setUnionId(wxMpUser.getUnionId());
-                userMap.setUpdateTime(new DateTime());
-                userMap.setAvatar(wxMpUser.getHeadImgUrl());
-                userMap.setNickname(wxMpUser.getNickname());
-                userService.updateFsUser(userMap);
-            } else {
-                //新增
-                user = new FsUser();
-                user.setNickname(wxMpUser.getNickname());
-                user.setAvatar(wxMpUser.getHeadImgUrl());
-                user.setStatus((company != null ? company.getFsUserIsDefaultBlack() : 0) == 1 ? 0 : 1);
-                user.setMpOpenId(wxMpUser.getOpenid());
-                user.setUnionId(wxMpUser.getUnionId());
-                user.setCreateTime(new Date());
-                if(companyUser.getIsNeedRegisterMember() != 1){
-                    user.setCompanyId(param.getCompanyId());
-                    user.setCompanyUserId(param.getCompanyUserId());
-                }
-                userService.insertFsUser(user);
-            }
-            log.error("用户信息user: {}, 用户id: {}", user, user.getUserId());
-            String token = jwtUtils.generateToken(user.getUserId());
-            redisCache.setCacheObject("token:" + user.getUserId(), token, 604800, TimeUnit.SECONDS);
-            Map<String, Object> map = new HashMap<>();
-            map.put("token", token);
-            map.put("user", user);
-            return R.ok(map);
-//        } catch (WxErrorException e) {
-//            if (e.getError().getErrorCode() == 40163) {
-//                return R.error(40163, e.getError().getErrorMsg());
-//            } else {
-//                return R.error("授权失败," + e.getMessage());
-//            }
-//        }
-
-    }
-
-
-}