12 files modified
4 files added
| | |
| | | |
| | | import com.nq.common.ServerResponse; |
| | | |
| | | import com.nq.pojo.DkJgBean; |
| | | import com.nq.pojo.EChoBean; |
| | | import com.nq.pojo.PayChnnel; |
| | | import com.nq.pojo.SiteAdmin; |
| | | import com.nq.pojo.*; |
| | | |
| | | import com.nq.service.*; |
| | | |
| | |
| | | @Autowired |
| | | IUserAssetsServices iUserAssetsServices; |
| | | |
| | | @Autowired |
| | | IApplyLeverServices iApplyLeverServices; |
| | | |
| | | //分页查询管理设置 所有管理列表数据及模糊查询 |
| | | @RequestMapping({"list.do"}) |
| | | @ResponseBody |
| | | public ServerResponse<PageInfo> list(@RequestParam(value = "adminName", required = false) String adminName, @RequestParam(value = "adminPhone", required = false) String adminPhone, @RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize, HttpServletRequest request) { |
| | | public ServerResponse<PageInfo> list(@RequestParam(value = "adminName", required = false) String adminName, |
| | | @RequestParam(value = "adminPhone", required = false) String adminPhone, |
| | | @RequestParam(value = "pageNum", defaultValue = "1") int pageNum, |
| | | @RequestParam(value = "pageSize", defaultValue = "10") int pageSize, |
| | | HttpServletRequest request) { |
| | | return this.iSiteAdminService.listByAdmin(adminName, adminPhone, request, pageNum, pageSize); |
| | | } |
| | | |
| | | |
| | | @RequestMapping({"queryApplyLever.do"}) |
| | | @ResponseBody |
| | | public ServerResponse queryApplyLever(@RequestParam(value = "phone", required = false) String adminName, |
| | | @RequestParam(value = "pageNum", defaultValue = "1") int pageNum, |
| | | @RequestParam(value = "pageSize", defaultValue = "10") int pageSize, |
| | | HttpServletRequest request |
| | | ) { |
| | | return this.iApplyLeverServices.queryApplyLever(adminName,pageNum,pageSize, request); |
| | | } |
| | | |
| | | |
| | | |
| | | @RequestMapping({"examineApplyLever.do"}) |
| | | @ResponseBody |
| | | public ServerResponse examineApplyLever(@RequestParam(value = "id", required = true) String id, |
| | | @RequestParam(value = "state", defaultValue = "1") String state, |
| | | HttpServletRequest request) { |
| | | return this.iApplyLeverServices.examineApplyLever(id,state,request); |
| | | } |
| | | |
| | | |
| | | //修改管理员状态 锁定管理员/解锁管理员 |
| | | @RequestMapping({"updateLock.do"}) |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @RequestMapping("dksp.do") |
| | | @ResponseBody |
| | | public ServerResponse dksp(@RequestParam("dkId") Integer dkid, |
| | |
| | | import com.nq.common.ServerResponse; |
| | | import com.nq.pojo.User; |
| | | import com.nq.pojo.UserBank; |
| | | import com.nq.service.IApplyLeverServices; |
| | | import com.nq.service.IUserBankService; |
| | | import com.nq.service.IUserService; |
| | | import javax.servlet.http.HttpServletRequest; |
| | |
| | | |
| | | @Autowired |
| | | IUserBankService iUserBankService; |
| | | |
| | | |
| | | //分页查询所有用户列表信息 及模糊查询用户信息 |
| | | @RequestMapping({"list.do"}) |
| | |
| | | public ServerResponse delete(Integer userId, HttpServletRequest request) { |
| | | return this.iUserService.delete(userId, request); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | import com.google.common.collect.Maps; |
| | | import com.nq.common.ServerResponse; |
| | | import com.nq.enums.EStockType; |
| | | import com.nq.pojo.ApplyLever; |
| | | import com.nq.pojo.StockSubscribe; |
| | | import com.nq.pojo.UserStockSubscribe; |
| | | import com.nq.service.*; |
| | |
| | | |
| | | @Autowired |
| | | IUserRechargeService iUserRechargeService; |
| | | |
| | | |
| | | |
| | | @Autowired |
| | | IApplyLeverServices iApplyLeverServices; |
| | | |
| | | |
| | | //添加到自选股 |
| | | @RequestMapping({"addOption.do"}) |
| | |
| | | } |
| | | |
| | | |
| | | @RequestMapping({"applyLever.do"}) |
| | | @ResponseBody |
| | | public ServerResponse applyLever(ApplyLever applyLever,HttpServletRequest request) { |
| | | return iApplyLeverServices.applyLever(applyLever,request); |
| | | } |
| | | |
| | | |
| | | } |
| New file |
| | |
| | | package com.nq.dao; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.nq.pojo.ApplyLever; |
| | | |
| | | public interface ApplyLeverMapper extends BaseMapper<ApplyLever> { |
| | | } |
| | |
| | | LIMIT_UP_IS_BUY("limit_up_is_buy","涨停是否可以购买"), |
| | | |
| | | LIMIT_DOWN_POINT("limit_down_point","跌停点位"), |
| | | |
| | | PERCENTAGE_OF_FUNDS("percentage_of_funds","资金百分比"), |
| | | |
| | | WITHDRAW_TIME_SETTING("WITHDRAW_TIME_SETTING","提现时间设置"), |
| | | MAX_BUY("MAX_BUY","最大买入"), |
| New file |
| | |
| | | package com.nq.pojo; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import lombok.Data; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | public class ApplyLever { |
| | | |
| | | @TableId(value = "id",type = IdType.AUTO) |
| | | private Integer id; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | private Date createTime; |
| | | |
| | | // 用户id |
| | | private String userId; |
| | | |
| | | // 用户手机号码 |
| | | private String phone; |
| | | |
| | | // 杠杆 |
| | | private String lever; |
| | | |
| | | |
| | | private String state; |
| | | |
| | | private String descs; |
| | | |
| | | |
| | | } |
| | |
| | | private String authMsg; |
| | | private String withdrawalPwd; |
| | | private String vaildNumber; |
| | | private String lever; |
| | | private String fundRatio; |
| | | |
| | | } |
| New file |
| | |
| | | package com.nq.service; |
| | | |
| | | import com.nq.common.ServerResponse; |
| | | import com.nq.pojo.ApplyLever; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | public interface IApplyLeverServices { |
| | | |
| | | ServerResponse applyLever(ApplyLever applyLever, HttpServletRequest request); |
| | | |
| | | |
| | | ServerResponse examineApplyLever(String id,String states, HttpServletRequest request); |
| | | |
| | | |
| | | ServerResponse queryApplyLever(String phone, Integer page,Integer pageSize,HttpServletRequest request); |
| | | } |
| New file |
| | |
| | | package com.nq.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.nq.common.ServerResponse; |
| | | import com.nq.dao.ApplyLeverMapper; |
| | | import com.nq.dao.UserMapper; |
| | | import com.nq.pojo.ApplyLever; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.nq.pojo.User; |
| | | import com.nq.service.IApplyLeverServices; |
| | | import com.nq.service.IUserService; |
| | | import org.apache.http.util.TextUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.Date; |
| | | |
| | | @Service |
| | | public class ApplyLeverServicesimpl implements IApplyLeverServices { |
| | | |
| | | @Resource |
| | | ApplyLeverMapper applyLeverMapper; |
| | | |
| | | @Resource |
| | | IUserService userService; |
| | | @Resource |
| | | UserMapper userMapper; |
| | | |
| | | @Override |
| | | public ServerResponse applyLever(ApplyLever applyLever, HttpServletRequest request) { |
| | | |
| | | QueryWrapper<ApplyLever> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("user_id",userService.getCurrentUser(request).getId()); |
| | | if(applyLeverMapper.selectCount(queryWrapper)>0){ |
| | | return ServerResponse.createByErrorMsg("你已经申请杠杆了",request); |
| | | } |
| | | User user = userService.getCurrentUser(request); |
| | | applyLever.setPhone(user.getPhone()); |
| | | applyLever.setUserId(user.getId()+""); |
| | | applyLever.setState("0"); |
| | | applyLever.setCreateTime(new Date()); |
| | | |
| | | if(applyLeverMapper.insert(applyLever)>0){ |
| | | return ServerResponse.createBySuccess("申请成功,请联系客服",request); |
| | | }else{ |
| | | return ServerResponse.createByErrorMsg("申请失败",request); |
| | | } |
| | | } |
| | | |
| | | @Transactional |
| | | @Override |
| | | public ServerResponse examineApplyLever(String id,String states, HttpServletRequest request) { |
| | | ApplyLever applyLever = applyLeverMapper.selectById(id); |
| | | applyLever.setState(states); |
| | | applyLeverMapper.updateById(applyLever); |
| | | User user = userMapper.selectById(applyLever.getUserId()); |
| | | user.setLever(applyLever.getLever()); |
| | | userMapper.updateById(user); |
| | | return ServerResponse.createBySuccess(); |
| | | } |
| | | |
| | | @Override |
| | | public ServerResponse queryApplyLever(String phone, Integer page, Integer pageSize, HttpServletRequest request) { |
| | | Integer userId = null; |
| | | Page<ApplyLever> page1 = new Page<>(page, pageSize); |
| | | if(!TextUtils.isEmpty(phone)){ |
| | | QueryWrapper<User> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("phone",phone); |
| | | User user = userMapper.selectOne(queryWrapper); |
| | | if(user != null ){ |
| | | userId = user.getId(); |
| | | }else{ |
| | | QueryWrapper<ApplyLever> queryWrapper1 = new QueryWrapper<>(); |
| | | queryWrapper1.eq("user_id",phone); |
| | | return ServerResponse.createBySuccess(applyLeverMapper.selectPage(page1,queryWrapper1)); |
| | | } |
| | | } |
| | | QueryWrapper<ApplyLever> queryWrapper1 = new QueryWrapper<>(); |
| | | if(userId != null){ |
| | | queryWrapper1.eq("user_id",userId); |
| | | } |
| | | queryWrapper1.orderByDesc("create_time"); |
| | | |
| | | return ServerResponse.createBySuccess(applyLeverMapper.selectPage(page1,queryWrapper1)); |
| | | } |
| | | |
| | | } |
| | |
| | | MoneyLogMapper moneyLogMapper; |
| | | @Override |
| | | public Page<MoneyLog> queryMoneyLog(String user, Integer page, Integer pageSize) { |
| | | Page<MoneyLog> page1 = new Page<>(1, 10); |
| | | Page<MoneyLog> page1 = new Page<>(page, pageSize); |
| | | QueryWrapper<MoneyLog> queryWrapper = new QueryWrapper<>(); |
| | | |
| | | if(!TextUtils.isEmpty(user)){ |
| | |
| | | ISiteSettingService iSiteSettingService; |
| | | @Override |
| | | public BigDecimal currencyRate(EStockType fromStockType, EStockType tofromStockType) { |
| | | if(fromStockType == null || tofromStockType == null){ |
| | | return new BigDecimal(1); |
| | | } |
| | | BigDecimal rate = iSiteSettingService.getSiteSetting().getExchangeRate(); |
| | | BigDecimal rate1 = new BigDecimal(7.35); |
| | | if(fromStockType==EStockType.US){ |
| | | if(tofromStockType==EStockType.MAS){ |
| | | return rate; |
| | | }else if(tofromStockType==EStockType.HK){ |
| | | return rate1; |
| | | } |
| | | }if(fromStockType==EStockType.HK){ |
| | | if(tofromStockType==EStockType.MAS){ |
| | | return new BigDecimal(1).divide(rate1,18, RoundingMode.HALF_DOWN).multiply(rate); |
| | | }else if(tofromStockType==EStockType.US){ |
| | | return new BigDecimal(1).divide(rate1,18, RoundingMode.HALF_DOWN); |
| | | } |
| | | } else { |
| | | if(tofromStockType==EStockType.US){ |
| | | return new BigDecimal(1).divide(rate,18, RoundingMode.HALF_DOWN); |
| | | }else{ |
| | | return new BigDecimal(1).divide(rate,18, RoundingMode.HALF_DOWN).multiply(rate1); |
| | | } |
| | | } |
| | | // if(fromStockType == null || tofromStockType == null){ |
| | | // return new BigDecimal(1); |
| | | // } |
| | | // BigDecimal rate = iSiteSettingService.getSiteSetting().getExchangeRate(); |
| | | // BigDecimal rate1 = new BigDecimal(7.35); |
| | | // if(fromStockType==EStockType.US){ |
| | | // if(tofromStockType==EStockType.MAS){ |
| | | // return rate; |
| | | // }else if(tofromStockType==EStockType.HK){ |
| | | // return rate1; |
| | | // } |
| | | // }if(fromStockType==EStockType.HK){ |
| | | // if(tofromStockType==EStockType.MAS){ |
| | | // return new BigDecimal(1).divide(rate1,18, RoundingMode.HALF_DOWN).multiply(rate); |
| | | // }else if(tofromStockType==EStockType.US){ |
| | | // return new BigDecimal(1).divide(rate1,18, RoundingMode.HALF_DOWN); |
| | | // } |
| | | // } else { |
| | | // if(tofromStockType==EStockType.US){ |
| | | // return new BigDecimal(1).divide(rate,18, RoundingMode.HALF_DOWN); |
| | | // }else{ |
| | | // return new BigDecimal(1).divide(rate,18, RoundingMode.HALF_DOWN).multiply(rate1); |
| | | // } |
| | | // } |
| | | |
| | | return new BigDecimal(1); |
| | | |
| | |
| | | BigDecimal orderFree = siteSettingBuyFee.multiply(buyAmt); |
| | | |
| | | UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(stock.getStockType(), user.getId()); |
| | | if (userAssets.getAvailableBalance().compareTo(buyAmt.add(orderFree)) < 0) { |
| | | BigDecimal fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100)); |
| | | BigDecimal availableBalance = fundratio.multiply(userAssets.getAvailableBalance()); |
| | | if (availableBalance.compareTo(buyAmt.add(orderFree)) < 0) { |
| | | return ServerResponse.createByErrorMsg("订单失败,余额不足", request); |
| | | } |
| | | UserPosition userPosition = new UserPosition(); |
| | |
| | | return ServerResponse.createByErrorMsg("最小购买数据" + stockDz.getStockNum(), request); |
| | | } |
| | | BigDecimal buyAmt = nowPrice.multiply(new BigDecimal(num.intValue())); |
| | | if (buyAmt.compareTo(userAssetsServices.getAvailableBalance(EStockType.IN.getCode(), user.getId())) > 0) { |
| | | UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(stock.getStockType(), user.getId()); |
| | | BigDecimal fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100)); |
| | | BigDecimal availableBalance = fundratio.multiply(userAssets.getAvailableBalance()); |
| | | if (buyAmt.compareTo(availableBalance) > 0) { |
| | | return ServerResponse.createByErrorMsg("订单失败,余额不足", request); |
| | | } |
| | | UserPosition userPosition = new UserPosition(); |
| | |
| | | |
| | | |
| | | |
| | | |
| | | public ServerResponse reg(String yzmCode, String agentCode, String phone, String userPwd, HttpServletRequest request) { |
| | | if (StringUtils.isBlank(agentCode) || StringUtils.isBlank(phone) || |
| | | StringUtils.isBlank(userPwd) || StringUtils.isBlank(yzmCode)) { |
| | |
| | | datasource: |
| | | type: com.alibaba.druid.pool.DruidDataSource |
| | | driverClassName: com.mysql.cj.jdbc.Driver |
| | | url: jdbc:mysql://127.0.0.1:3306/zyqsstock?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 |
| | | url: jdbc:mysql://127.0.0.1:3306/caicai?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 |
| | | # url: jdbc:mysql://127.0.0.1:3306/cgstock?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 |
| | | username: root |
| | | password: 123456 |
| | |
| | | <result column="auth_msg" property="authMsg"/> |
| | | <result column="withdrawal_Pwd" property="withdrawalPwd"/> |
| | | <result column="vaild_number" property="vaildNumber"/> |
| | | <result column="lever" property="lever"/> |
| | | <result column="fund_ratio" property="fundRatio"/> |
| | | |
| | | </resultMap> |
| | | <sql id="Base_Column_List"> |
| | | id, agent_id, agent_name, phone, user_pwd, with_pwd, nick_name, real_name, id_card, |
| | | account_type, is_lock, is_login, |
| | | reg_time, reg_ip, reg_address, img1_key, img2_key, img3_key, is_active, auth_msg, |
| | | withdrawal_Pwd,vaild_number |
| | | withdrawal_Pwd,vaild_number,lever,fund_ratio |
| | | </sql> |
| | | |
| | | |
| | |
| | | datasource: |
| | | type: com.alibaba.druid.pool.DruidDataSource |
| | | driverClassName: com.mysql.cj.jdbc.Driver |
| | | url: jdbc:mysql://127.0.0.1:3306/zyqsstock?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 |
| | | url: jdbc:mysql://127.0.0.1:3306/caicai?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 |
| | | # url: jdbc:mysql://127.0.0.1:3306/cgstock?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 |
| | | username: root |
| | | password: 123456 |