zyy3
2025-11-07 440730c54e6d551ff2a370aacf9b7283a153fe53
src/main/java/com/nq/controller/UserApiController.java
@@ -1,14 +1,25 @@
package com.nq.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nq.common.ServerResponse;
import com.nq.dao.MoneyLogMapper;
import com.nq.dao.StockConfigMapper;
import com.nq.pojo.MoneyLog;
import com.nq.pojo.SiteSpread;
import com.nq.pojo.StockConfig;
import com.nq.service.IMoneyLogServces;
import com.nq.service.ISiteSpreadService;
import com.nq.service.IStockConfigServices;
import com.nq.service.IUserService;
import com.nq.utils.PropertiesUtil;
import com.nq.utils.email.EmailValidator;
import com.nq.utils.email.GmailSender;
import com.nq.utils.redis.CookieUtils;
import com.nq.utils.redis.JsonUtil;
@@ -17,20 +28,25 @@
import com.nq.utils.redis.RedisShardedPoolUtils;
import com.nq.utils.translate.GoogleTranslateUtil;
import com.nq.vo.user.UserLoginResultVO;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.util.TextUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -42,6 +58,7 @@
import org.springframework.web.bind.annotation.ResponseBody;
import java.math.BigDecimal;
import java.util.List;
@Controller
@@ -55,12 +72,46 @@
    @Autowired
    ISiteSpreadService iSiteSpreadService;
    @Autowired
    StockConfigMapper stockConfigMapper;
    @Autowired
    IMoneyLogServces iMoneyLogServces;
    @Autowired
    MoneyLogMapper moneyLogMapper;
    //注册
    @RequestMapping(value = {"reg.do"}, method = {RequestMethod.POST})
    @ResponseBody
    public ServerResponse reg(@RequestParam("agentCode") String agentCode, @RequestParam("phone") String phone, @RequestParam(value = "yzmCode", defaultValue = "") String yzmCode, @RequestParam("userPwd") String userPwd, HttpServletRequest httpServletRequest) {
        return this.iUserService.reg(yzmCode, agentCode, phone, userPwd, httpServletRequest);
}
    }
    //发送邮件
    @RequestMapping(value = {"sendmail.do"}, method = {RequestMethod.POST})
    @ResponseBody
    public ServerResponse sendmail(@RequestParam("email") String email,HttpServletRequest request) {
        try {
            if(!EmailValidator.isValidEmail(email)){
                return ServerResponse.createByErrorMsg("请输入正确的邮箱格式",request);
            }
            String code = GmailSender.generateSecureSixDigitCode();
            String keys = "emailCode:" + email;
            RedisShardedPoolUtils.setEx(keys, code, 60);
            //谷歌
//            GmailSender.sendEmail(email,"verification code",code);
            //阿里邮箱
//            GmailSender.sendEmailAli(email,"verification code",code);
            GmailSender.aokSend(email,"verification code",code);
            return ServerResponse.createBySuccess("发送成功!",request);
        }catch (Exception e){
            e.printStackTrace();
            return ServerResponse.createByErrorMsg("验证码发送失败",request);
        }
    }
    //登录
    @RequestMapping(value = {"login.do"}, method = {RequestMethod.POST})
@@ -71,12 +122,12 @@
        ServerResponse serverResponse = this.iUserService.login(phone, userPwd, request);
        if (serverResponse.isSuccess()) {
            CookieUtils.writeLoginToken(response, token, pc_cookie_name);
            String redisSetExResult = RedisShardedPoolUtils.setEx(token, JsonUtil.obj2String(serverResponse.getData()), 9999);
            String redisSetExResult = RedisShardedPoolUtils.set(token, JsonUtil.obj2String(serverResponse.getData()));
            log.info("redis setex user result : {}", redisSetExResult);
            UserLoginResultVO resultVO = new UserLoginResultVO();
            resultVO.setKey(pc_cookie_name);
            resultVO.setToken(token);
            return ServerResponse.createBySuccess("Login Success", resultVO);
            return ServerResponse.createBySuccess("登录成功", resultVO);
        }
        return serverResponse;
    }
@@ -122,6 +173,38 @@
        return ServerResponse.createBySuccess("Success", siteSpread);
    }
    @RequestMapping({"queryStockConfig.do"})
    @ResponseBody
    public  ServerResponse  updateConfig(){
        StockConfig stockConfig = stockConfigMapper.selectOne(new LambdaQueryWrapper<StockConfig>().eq(StockConfig::getCKey, "buy_handling_charge"));
        return  ServerResponse.createBySuccess(stockConfig);
    }
    @RequestMapping({"moneylogAll.do"})
    @ResponseBody
    public ServerResponse taskList(@RequestParam(value = "userId") String userId,
                                   @RequestParam(value = "type", required = false) String type,
                                   @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                   @RequestParam(value = "pageSize", defaultValue = "50") int pageSize,
                                   HttpServletRequest request) {
        Page<MoneyLog> page1 = new Page<>(pageNum, pageSize);
        QueryWrapper<MoneyLog> queryWrapper = new QueryWrapper<>();
        if(!TextUtils.isEmpty(userId)){
            queryWrapper.eq("user_id",userId);
        }
        if(StringUtils.isNotEmpty(type)){
            queryWrapper.eq("type",type);
        }
        queryWrapper.orderByDesc("create_time");
        Page<MoneyLog> moneyLogPage = moneyLogMapper.selectPage(page1, queryWrapper);
        List<MoneyLog> records = moneyLogPage.getRecords();
        records.forEach(f->{
            f.setDescs( new GoogleTranslateUtil().translate(f.getDescs(),request.getHeader("lang")));
        });
        moneyLogPage.setRecords(records);
        return ServerResponse.createBySuccess(moneyLogPage);
    }
}