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.redis.CookieUtils; import com.nq.utils.redis.JsonUtil; import com.nq.utils.redis.RedisConst; 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.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import java.math.BigDecimal; import java.util.List; @Controller @RequestMapping({"/api/user/"}) public class UserApiController { private static final Logger log = LoggerFactory.getLogger(UserApiController.class); @Autowired IUserService iUserService; @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 = {"login.do"}, method = {RequestMethod.POST}) @ResponseBody public ServerResponse login(@RequestParam("phone") String phone, @RequestParam("userPwd") String userPwd, HttpSession httpSession, HttpServletRequest request, HttpServletResponse response) { String pc_cookie_name = PropertiesUtil.getProperty("user.cookie.name"); String token = RedisConst.getUserRedisKey(httpSession.getId()); 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); log.info("redis setex user result : {}", redisSetExResult); UserLoginResultVO resultVO = new UserLoginResultVO(); resultVO.setKey(pc_cookie_name); resultVO.setToken(token); return ServerResponse.createBySuccess("登录成功", resultVO); } return serverResponse; } //注销 @RequestMapping({"logout.do"}) @ResponseBody public ServerResponse logout(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { String cookie_name = PropertiesUtil.getProperty("user.cookie.name"); String logintoken = CookieUtils.readLoginToken(httpServletRequest, cookie_name); RedisShardedPoolUtils.del(logintoken); CookieUtils.delLoginToken(httpServletRequest, httpServletResponse, cookie_name); return ServerResponse.createBySuccess(); } //查询手机号是否存在 @RequestMapping({"checkPhone.do"}) @ResponseBody public ServerResponse checkPhone(String phoneNum) { return this.iUserService.checkPhone(phoneNum); } //找回密码 @RequestMapping({"updatePwd.do"}) @ResponseBody public ServerResponse updatePwd(String phoneNum, String code, String newPwd) { return this.iUserService.updatePwd(phoneNum, code, newPwd); } /** * 查询点差费率 * @author lr * @date 2020/07/01 * applies:涨跌幅 * turnover:成交额 * code:股票代码 * unitprice:股票单价 **/ @RequestMapping({"findSpreadRateOne.do"}) @ResponseBody public ServerResponse findSpreadRateOne(BigDecimal applies, BigDecimal turnover, String code, BigDecimal unitprice) { SiteSpread siteSpread = this.iSiteSpreadService.findSpreadRateOne(applies,turnover,code,unitprice); return ServerResponse.createBySuccess("Success", siteSpread); } @RequestMapping({"queryStockConfig.do"}) @ResponseBody public ServerResponse updateConfig(){ StockConfig stockConfig = stockConfigMapper.selectOne(new LambdaQueryWrapper().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 page1 = new Page<>(pageNum, pageSize); QueryWrapper 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 moneyLogPage = moneyLogMapper.selectPage(page1, queryWrapper); List records = moneyLogPage.getRecords(); records.forEach(f->{ if(request.getHeader("lang").equals("ja")){ String descs = ""; if(f.getDescs().equals("平仓返回保证金")){ descs = "証拠金の返還"; }else if(f.getDescs().equals("平仓")){ descs = "ポジション決済"; }else if(f.getDescs().equals("手续费")){ descs = "手数料"; }else if(f.getDescs().equals("购买")){ descs = "購入"; }else if(f.getDescs().equals("提现")){ descs = "出金"; }else if(f.getDescs().equals("充值")){ descs = "入金"; }else{ descs = new GoogleTranslateUtil().translate(f.getDescs(),request.getHeader("lang")); } f.setDescs(descs); }else{ f.setDescs( new GoogleTranslateUtil().translate(f.getDescs(),request.getHeader("lang"))); } }); moneyLogPage.setRecords(records); return ServerResponse.createBySuccess(moneyLogPage); } }