Pu Zhibing
6 天以前 b70606bda176c711c1f2893764711611d12096b7
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
@@ -3,18 +3,15 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.core.common.constant.JwtConstants;
import com.stylefeng.guns.core.shiro.ShiroKit;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.account.server.UserWithdrawalService;
import com.stylefeng.guns.modular.account.util.OssUploadUtil;
import com.stylefeng.guns.modular.system.model.Driver;
import com.stylefeng.guns.modular.system.model.UserInfo;
import com.stylefeng.guns.modular.system.model.UserWithdrawal;
import com.stylefeng.guns.modular.system.service.IDriverService;
import com.stylefeng.guns.modular.system.service.ISmsrecordService;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
import com.stylefeng.guns.modular.system.service.IVerifiedService;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.util.WeChatUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil;
import com.stylefeng.guns.modular.system.warpper.LoginWarpper;
import com.stylefeng.guns.modular.system.warpper.UserInfoWarpper;
import com.stylefeng.guns.modular.system.warpper.VerifiedWarpper;
@@ -22,10 +19,12 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.InputStream;
import java.util.Date;
@@ -39,30 +38,37 @@
@RestController
@RequestMapping("")
public class UserInfoController {
    @Autowired
    private IUserInfoService userInfoService;
    @Autowired
    private IVerifiedService verifiedService;
    @Autowired
    private ISmsrecordService smsrecordService;
    
    @Autowired
    private RedisTemplate redisTemplate;
    @Resource
    private RedisTemplate<String, Object> redisTemplate;
    @Autowired
    private WeChatUtil weChatUtil;
    @Autowired
    private IDriverService driverService;
    @Autowired
    private IRegionService regionService;
    @Autowired
    private HttpServletRequest request;
    private String salt = "&a.s";
    @Autowired
    private TDriverPromotionActivityService driverPromotionActivityService;
    /**
     * 获取短信验证码
     * @param phone
@@ -329,6 +335,67 @@
            return ResultUtil.runErr();
        }
    }
    /**
     * 设置绑定司机
     * @param driverId
     * @param request
     * @return
     */
    @ResponseBody
    @PostMapping("/api/user/bindingDriver")
    @ApiOperation(value = "绑定司机", tags = {"用户端-登录"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<LoginWarpper> bindingDriver(Integer driverId,HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            UserInfo userInfo = userInfoService.selectById(uid);
            // 是否需要绑定司机
            TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", userInfo.getRegistAreaCode()).le("startTime", new Date()).ge("endTime", new Date()).last(" limit 1"));
            System.out.println("111232"+tDriverPromotionActivity);
            if(tDriverPromotionActivity!=null){
                System.out.println("11111");
                if(userInfo.getBindDriverId()==null || userInfo.getBindExpireDate().getTime()<=System.currentTimeMillis()){
                    System.out.println("222222");
                    Integer bindingDays = tDriverPromotionActivity.getBindingDays();
                    // 当前时间+绑定天数
                    Date endTime = DateUtils.addDays(new Date(), bindingDays);
                    userInfo.setBindDriverId(driverId);
                    userInfo.setBindExpireDate(endTime);
                    userInfo.setBindDate(new Date());
                    userInfoService.updateById(userInfo);
                }
            }else {
                Region code = regionService.selectOne(new EntityWrapper<Region>().eq("code", userInfo.getRegistAreaCode()));
                Region region = regionService.selectById(code.getParentId());
                TDriverPromotionActivity tDriverPromotionActivity1 = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("cityCode", region.getCode()).le("startTime", new Date()).ge("endTime", new Date()).last(" limit 1"));
                if(tDriverPromotionActivity1!=null) {
                    if (userInfo.getBindDriverId() == null || userInfo.getBindExpireDate().getTime() <= System.currentTimeMillis()) {
                        Integer bindingDays = tDriverPromotionActivity1.getBindingDays();
                        // 当前时间+绑定天数
                        Date endTime = DateUtils.addDays(new Date(), bindingDays);
                        userInfo.setBindDriverId(driverId);
                        userInfo.setBindExpireDate(endTime);
                        userInfo.setBindDate(new Date());
                        userInfoService.updateById(userInfo);
                    }
                }
            }
            return ResultUtil.success();
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @Autowired
@@ -349,6 +416,12 @@
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            UserInfo userInfo = userInfoService.selectById(uid);
            if(ToolUtil.isEmpty(userInfo.getOnconUUID())){
                String onconUUIDByMobile = UserUtil.getOnconUUIDByMobile("15828353127");
                userInfo.setOnconUUID(onconUUIDByMobile);
                userInfoService.updateById(userInfo);
            }
            Map<String, Object> map = userInfoService.queryUserInfo(uid);
            UserWithdrawal userWithdrawal1 = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>()
@@ -817,4 +890,59 @@
            return ResultUtil.runErr();
        }
    }
    /**
     * 代驾系统添加用户接口
     * @param phone
     * @return
     */
    @ResponseBody
    @PostMapping("/base/user/addAppUser")
    public String addAppUser(String phone, String code, String areaCode){
        try {
            return userInfoService.addAppUser(phone, code, areaCode);
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 代驾系统验证短信验证码
     * @param phone
     * @param code
     * @param request
     * @return
     */
    @ResponseBody
    @PostMapping("/base/user/checkCaptcha")
    public Boolean checkCaptcha1(String phone, String code, HttpServletRequest request){
        try {
            String device = request.getHeader("device");
            if(ToolUtil.isEmpty(device)){
                return false;
            }
            boolean b = userInfoService.checkCaptcha(phone, code);
            return b;
        }catch (Exception e){
            e.printStackTrace();
            return false;
        }
    }
    /**
     * 代驾系统验根据用户id获取电话号码
     * @param id
     * @return
     */
    @ResponseBody
    @GetMapping("/base/user/getUserPhone/{id}")
    public String getUserPhone(@PathVariable("id") Integer id){
        UserInfo userInfo = userInfoService.selectById(id);
        if(null != userInfo){
            return userInfo.getPhone();
        }
        return null;
    }
}