Commit 2db4c24f authored by cy's avatar cy

完善充值卡查询和卡片生成

parent 7e1a909a
......@@ -48,4 +48,6 @@ public interface CardMapper extends BaseMapper<CardInfo> {
*/
List<CardInfo> getListByCardNo(@Param("cardNo")String cardNo);
}
package cn.wisenergy.mapper;
import cn.wisenergy.model.app.RefillCard;
import cn.wisenergy.model.vo.RefillCardVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
......@@ -25,16 +26,15 @@ public interface RefillCardMapper extends BaseMapper<RefillCardMapper> {
/**
* 获取充值卡信息
* @param map
* @return
*/
List<RefillCard> getList(Map<String,Object> map);
List<RefillCard> getList(RefillCardVo refillCardVo);
/**
* 获取充值卡数量
* @return
*/
Integer getUserNumbers();
Integer getUserNumbers(RefillCardVo refillCardVo);
/**
* 通过ID查询充值卡信息
......@@ -51,4 +51,9 @@ public interface RefillCardMapper extends BaseMapper<RefillCardMapper> {
* @return 充值卡信息
*/
RefillCard getByBatchNumber(@Param("batchNumber") String batchNumber);
/**
* 通过初始号号查询充值卡信息
* @return 充值卡信息
*/
List<RefillCard> getByCardNo(@Param("cardNo") String cardNo);
}
......@@ -109,4 +109,10 @@ public class ScoreInfo implements Serializable {
@ApiModelProperty(value = "更改时间",name = "updateTime")
private Date updateTime;
/**
*位次
*/
@ApiModelProperty(value = "位次",name = "ranking")
private String ranking;
}
......@@ -44,4 +44,10 @@ public class RefillCardDto {
*/
@ApiModelProperty(value = "充值卡初始序号",name = "cardNo")
private BigInteger cardNo;
/**
* 卡批次号区间
*/
@ApiModelProperty(value = "卡批次号区间",name = "cardNoInfo")
private String cardNoInfo;
}
......@@ -77,4 +77,5 @@ public class UserCommitDto implements Serializable {
*/
@ApiModelProperty(value = "vip用户电话", name = "vipMobile")
private String vipMobile;
}
......@@ -59,6 +59,12 @@ public class AdvertisingQueryVo implements Serializable {
@ApiModelProperty(value = "页大小", name = "pageSize")
private Integer pageSize;
/**
* 标题
*/
@ApiModelProperty(value = "标题", name = "title")
private String title;
private Integer startNum;
private Integer endNum;
......
package cn.wisenergy.model.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
@ApiModel("RefillCardVo")
public class RefillCardVo implements Serializable {
private static final long serialVersionUID =1L;
/**
* 页数
*/
@ApiModelProperty(name = "pageNo", value = "页数")
private Integer pageNo;
/**
* 每页显示条数
*/
@ApiModelProperty(name = "pageSize", value = "每页显示条数")
private Integer pageSize;
/**
* 开始时间
*/
@ApiModelProperty(name = "startTime", value = "开始时间")
private Date startTime;
/**
* 结束时间
*/
@ApiModelProperty(name = "endTime", value = "结束时间")
private Date endTime;
}
......@@ -3,6 +3,7 @@ package cn.wisenergy.service.app;
import cn.wisenergy.common.utils.R;
import cn.wisenergy.model.app.RefillCard;
import cn.wisenergy.model.dto.RefillCardDto;
import cn.wisenergy.model.vo.RefillCardVo;
import com.github.pagehelper.PageInfo;
import javax.servlet.http.HttpServletResponse;
......@@ -26,11 +27,9 @@ public interface RefillCardService {
/**
* 查询充值卡信息
* @param pageNo 当前页数
* @param pageSize 每页显示条数
* @return 充值卡信息结果集
*/
R<PageInfo<RefillCardDto>> getList(Integer pageNo, Integer pageSize);
R<PageInfo<RefillCardDto>> getList(RefillCardVo refillCardVo);
/**
* 生成卡片
......
......@@ -104,7 +104,7 @@ public class BannerServiceImpl extends ServiceImpl<BannerMapper, Banner> impleme
map.put("pageSize", pageSize);
map.put("status",null==advertisingQueryVo.getStatus()?null:advertisingQueryVo.getStatus());
map.put("type",null==advertisingQueryVo.getType()?null:advertisingQueryVo.getType());
map.put("title",null==advertisingQueryVo.getTitle() || advertisingQueryVo.getTitle().equals("")?null:"%"+advertisingQueryVo.getTitle()+"%");
//查询数据;
List<BannerDto> list = bannerMapper.getList(map);
......
......@@ -6,12 +6,13 @@ import cn.wisenergy.mapper.CardMapper;
import cn.wisenergy.mapper.RefillCardMapper;
import cn.wisenergy.model.app.CardInfo;
import cn.wisenergy.model.app.RefillCard;
import cn.wisenergy.model.app.Volunteer;
import cn.wisenergy.model.dto.ExportCardDto;
import cn.wisenergy.model.dto.RefillCardDto;
import cn.wisenergy.model.vo.RefillCardVo;
import cn.wisenergy.service.app.RefillCardService;
import cn.wisenergy.service.common.RefillCardManager;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
......@@ -23,7 +24,6 @@ import org.springframework.util.StringUtils;
import javax.servlet.http.HttpServletResponse;
import java.math.BigInteger;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
......@@ -42,11 +42,17 @@ public class RefillCardServiceImpl implements RefillCardService {
@Override
@Transactional(rollbackFor = Exception.class)
public R<Boolean> add(RefillCard refillCard) {
log.info("RefillCardServiceImpl[].add[].input.param:refillCard:{}"+refillCard);
log.info("RefillCardServiceImpl[].add[].input.param:refillCard:{}" + refillCard);
if (refillCard.getCardNumber()==0||null==refillCard.getCardNumber()) {
if (refillCard.getCardNumber() == 0 || null == refillCard.getCardNumber()) {
return R.error("输入的卡数无效是无效值");
}
RefillCard refill = new RefillCard();
refill.setCardNo(refillCard.getCardNo());
List<RefillCard> byCardNo = refillCardMapper.getByCardNo(refillCard.getCardNo() + "");
if (byCardNo.size() > 0) {
return R.error("该初始卡号已经存在,请重新添加");
}
//设置初始状态
String time = DateUtil.getTime(new Date(), "yyyy.MM.dd.HH.mm.sss");
refillCard.setBatchNumber(time);
......@@ -56,85 +62,106 @@ public class RefillCardServiceImpl implements RefillCardService {
int add = refillCardMapper.add(refillCard);
//判断数据是否添加成功
if (add==0) {
if (add == 0) {
return R.error("数据添加失败");
}
return R.ok(0,true);
return R.ok(0, true);
}
@Override
public R<Boolean> update(String batchNumber) {
log.info("RefillCardServiceImpl[].update[].input.param:batchNumber:"+batchNumber);
log.info("RefillCardServiceImpl[].update[].input.param:batchNumber:" + batchNumber);
if (StringUtils.isEmpty(batchNumber)) {
return R.error("传入参数为空");
}
int update = refillCardMapper.update(batchNumber);
if (update==0) {
R.ok(1,false);
if (update == 0) {
R.ok(1, false);
}
return R.ok(0,true);
return R.ok(0, true);
}
@Override
public R<PageInfo<RefillCardDto>> getList(Integer pageNum, Integer pageSize) {
log.info("RefillCardServiceImpl[].getList[].input.param:pageNum,pageSize"+pageNum+ pageSize);
if (null == pageSize || pageSize == 0) {
pageSize = 10;
public R<PageInfo<RefillCardDto>> getList(RefillCardVo refillCardVo) {
if (null == refillCardVo.getPageSize() || refillCardVo.getPageSize() == 0) {
refillCardVo.setPageSize(10);
}
if (null == pageNum || pageNum == 0) {
pageNum = 1;
if (null == refillCardVo.getPageNo() || refillCardVo.getPageNo() == 0) {
refillCardVo.setPageNo(1);
}
int pageNum = refillCardVo.getPageNo();
//创建参数容器
HashMap<String, Object> map = new HashMap<>(4);
map.put("pageNo",(pageNum-1)*pageSize);
map.put("pageSize",pageSize);
refillCardVo.setPageNo((refillCardVo.getPageNo() - 1) * refillCardVo.getPageSize());
ArrayList<RefillCardDto> refillCardDtos = new ArrayList<>();
//查询参数
List<RefillCard> list = refillCardMapper.getList(map);
List<RefillCard> list = refillCardMapper.getList(refillCardVo);
for (RefillCard refillCard : list) {
RefillCardDto refillCardDto = new RefillCardDto();
BeanUtils.copyProperties(refillCard,refillCardDto);
BeanUtils.copyProperties(refillCard, refillCardDto);
refillCardDtos.add(refillCardDto);
}
PageInfo<RefillCardDto> refillCardDtoPageInfo = new PageInfo<>();
refillCardDtoPageInfo.setTotal(refillCardMapper.getUserNumbers());
refillCardDtoPageInfo.setTotal(refillCardMapper.getUserNumbers(refillCardVo));
refillCardDtoPageInfo.setPageNum(pageNum);
refillCardDtoPageInfo.setPageSize(pageSize);
refillCardDtoPageInfo.setPageSize(refillCardVo.getPageSize());
refillCardDtoPageInfo.setList(refillCardDtos);
for (RefillCardDto card : refillCardDtos) {
if (card.getCardNo() != null) {
List<CardInfo> listByCardNo = cardMapper.getList(card.getBatchNumber());
listByCardNo.sort(Comparator.comparing(CardInfo::getCardNumber));
if (listByCardNo.size() > 1) {
CardInfo minCard=listByCardNo.get(0);
CardInfo maxCard = listByCardNo.get(listByCardNo.size()-1);
card.setCardNoInfo(minCard.getCardNumber() + "~" + maxCard.getCardNumber());
} else if(listByCardNo.size()==1) {
CardInfo minCard=listByCardNo.get(0);
card.setCardNoInfo(minCard.getCardNumber());
}else{
BigInteger bigInteger = BigInteger.valueOf(card.getCardNumber() - 1);
BigInteger cardNo = card.getCardNo();
if (card.getCardNumber() - 1 == 0) {
card.setCardNoInfo(cardNo + "");
} else {
card.setCardNoInfo(cardNo + "~" + cardNo.add(bigInteger));
}
}
}
}
return R.ok(refillCardDtoPageInfo);
}
@Override
public R<Boolean> createCard(Integer id) {
log.info("RefillCardServiceImpl[].createCard[].input.param:id"+id);
if (null==id||id==0) {
log.info("RefillCardServiceImpl[].createCard[].input.param:id" + id);
if (null == id || id == 0) {
return R.error("传入参数为空");
}
//查询充值卡信息
RefillCard byId = refillCardMapper.getById(id);
if (null==byId) {
if (null == byId) {
return R.error("该充值卡不存在");
}
String cardNo=byId.getCardNo()+"%";
BigInteger cardNumber = new BigInteger(byId.getCardNo() + "");
/* String cardNo=byId.getCardNo()+"";
cardNo=cardNo.substring(0,6)+"%";
List<CardInfo> card = cardMapper.getListByCardNo(cardNo);
BigInteger cardNumber;
if(card.size()>0){
CardInfo maxCard=card.stream().max(Comparator.comparing(CardInfo::getCardNumber)).get();
cardNumber=new BigInteger(maxCard.getCardNumber());
cardNumber=new BigInteger(maxCard.getCardNumber()).add(BigInteger.valueOf(1));
}else{
cardNumber=new BigInteger(byId.getCardNo()+"0000");
}
return refillCardManager.addCardMannger(byId,cardNumber);
}*/
return refillCardManager.addCardMannger(byId, cardNumber);
}
@Override
public R<Boolean> createExcel(String batchNumber, HttpServletResponse response) {
log.info("RefillCardServiceImpl[].createExcel[].input.param:batchNumber"+batchNumber);
log.info("RefillCardServiceImpl[].createExcel[].input.param:batchNumber" + batchNumber);
if (StringUtils.isEmpty(batchNumber)) {
return R.error("传入的参数为空");
......@@ -157,7 +184,7 @@ public class RefillCardServiceImpl implements RefillCardService {
return ExportCardDto.builder()
.cardNumber(t.getCardNumber())
.secretKey(t.getSecretKey())
.status(t.getStatus()==0?"未使用":"已使用")
.status(t.getStatus() == 0 ? "未使用" : "已使用")
.build();
}).collect(Collectors.toList());
......@@ -165,9 +192,9 @@ public class RefillCardServiceImpl implements RefillCardService {
response.setHeader("Content-disposition", "attachment;filename=" + batchNumber + ".xlsx");
// sheet名称
EasyExcel.write(response.getOutputStream(), ExportCardDto.class).sheet(batchNumber).doWrite(resultBo);
return R.ok(0,true);
return R.ok(0, true);
} catch (Exception e) {
return R.ok(1,false);
return R.ok(1, false);
}
}
......
......@@ -15,6 +15,7 @@ import cn.wisenergy.model.vo.UserInfoVo;
import cn.wisenergy.model.vo.UserQueryVo;
import cn.wisenergy.model.vo.UserShowVo;
import cn.wisenergy.model.vo.UserVipCommitVo;
import cn.wisenergy.service.app.StaffUserVipService;
import cn.wisenergy.service.app.UserService;
import cn.wisenergy.service.common.VolunteerManager;
import cn.wisenergy.service.util.WxUtil;
......@@ -68,6 +69,7 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
@Autowired
private UserKnownMapper knownMapper;
@Value("${wxPay.Applets_ID}")
private String appid;
......@@ -210,6 +212,9 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
if (null == user) {
return R.error("用户信息不存在!");
}
if(!StringUtils.isBlank(userDto.getVipMobile()) && !getUserInfo(userDto.getVipMobile())){
return R.error("该电话已存在");
}
//2、要提交的用户信息
user.setSchool(userDto.getSchool());
......@@ -235,10 +240,20 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
scoreInfo.setGeographyGrade(userDto.getScoreInfo().getGeographyGrade());
scoreInfo.setHistoryGrade(userDto.getScoreInfo().getHistoryGrade());
scoreInfo.setLanguageGrade(userDto.getScoreInfo().getLanguageGrade());
if(StringUtils.isBlank(userDto.getScoreInfo().getMajorGrade()+"")){
scoreInfo.setMajorGrade(0.0);
}else{
scoreInfo.setMajorGrade(userDto.getScoreInfo().getMajorGrade());
}
scoreInfo.setMathGrade(userDto.getScoreInfo().getMathGrade());
scoreInfo.setPhysicsGrade(userDto.getScoreInfo().getPhysicsGrade());
scoreInfo.setPoliticsGrade(userDto.getScoreInfo().getPoliticsGrade());
if(StringUtils.isBlank(userDto.getScoreInfo().getRanking())){
scoreInfo.setRanking("0");
}else{
scoreInfo.setRanking(userDto.getScoreInfo().getRanking());
}
//4、更新用户信息和保存用户成绩
boolean bool = volunteerManager.updateAndUserInfo(user, scoreInfo);
......@@ -549,5 +564,15 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
return R.ok(userKnownDto);
}
public boolean getUserInfo(String vipMobile){
Map<String, Object> map = new HashMap<>(16);
map.put("vip_mobile",vipMobile);
User user = usersMapper.selectOne(map);
if(null == user){
return true;
}
return false;
}
}
......@@ -39,24 +39,24 @@ public class Common {
* 支付宝--回调地址
*/
//测试
public static final String NOTIFY_URL = "http://111.203.232.171:8997/pay/aliPayCallBack.do";
//public static final String NOTIFY_URL = "http://111.203.232.171:8997/pay/aliPayCallBack.do";
//线上
//public static final String NOTIFY_URL = "https://jygkzy.com/api/pay/aliPayCallBack.do";
public static final String NOTIFY_URL = "https://jygkzy.com/api/pay/aliPayCallBack.do";
/***
* 支付宝--pc端支付成功跳转地址
*/
//测试
public static final String RETURN_URL_PC = "http://111.203.232.171:8999/#/wallet";
//public static final String RETURN_URL_PC = "http://111.203.232.171:8999/#/wallet";
//线上
//public static final String RETURN_URL_PC = "https://jygkzy.com/#/wallet";
public static final String RETURN_URL_PC = "https://jygkzy.com/#/wallet";
/***
* 支付宝--手机网页支付成功跳转地址
*/
//测试
public static final String RETURN_URL_WAP = "http://111.203.232.171:8999/#/history";
//public static final String RETURN_URL_WAP = "http://111.203.232.171:8999/#/history";
//线上
//public static final String RETURN_URL_WAP = "https://jygkzy.com/#/history";
public static final String RETURN_URL_WAP = "https://jygkzy.com/#/history";
/**
......
......@@ -33,13 +33,11 @@ public class RefillCardManager {
private CardMapper cardMapper;
@Transactional(rollbackFor = Exception.class)
public R<Boolean> addCardMannger(RefillCard byId, BigInteger cardNumber){
public R<Boolean> addCardMannger(RefillCard byId, BigInteger cardNumber) {
//获取充值卡的卡数,并生成卡片
ArrayList<CardInfo> cardInfos = new ArrayList<>();
BigInteger num = new BigInteger("1");
//子卡添加
for (int i = 0; i < byId.getCardNumber(); i++) {
cardNumber=cardNumber.add(num);
CardInfo cardInfo = new CardInfo();
cardInfo.setBatchNumber(byId.getBatchNumber());
cardInfo.setIsDelete(0);
......@@ -49,18 +47,30 @@ public class RefillCardManager {
cardInfo.setSecretKey(SecretkeyUtil.getSecretkey());
cardInfo.setCardNumber(String.valueOf(cardNumber));
cardInfos.add(cardInfo);
for (int i = 0; i < byId.getCardNumber() - 1; i++) {
CardInfo card = new CardInfo();
cardNumber = cardNumber.add(num);
card.setBatchNumber(byId.getBatchNumber());
card.setIsDelete(0);
card.setMoney("498");
card.setStatus(0);
card.setLimit(3);
card.setSecretKey(SecretkeyUtil.getSecretkey());
card.setCardNumber(String.valueOf(cardNumber));
cardInfos.add(card);
}
int add1 = cardMapper.add(cardInfos);
if (add1==0) {
return R.ok(1,false);
if (add1 == 0) {
return R.ok(1, false);
}
int isMakeCard = refillCardMapper.setIsMakeCard(byId.getId());
if (isMakeCard==0) {
return R.ok(1,false);
if (isMakeCard == 0) {
return R.ok(1, false);
}
return R.ok(0,true);
return R.ok(0, true);
}
}
......@@ -9,9 +9,9 @@ package cn.wisenergy.service.wxpay;
public class WxCommon {
//测试
public static final String NOTIFY_URL = "http://111.203.232.171:8997/pay/wxPayCallBack.do";
//public static final String NOTIFY_URL = "http://111.203.232.171:8997/pay/wxPayCallBack.do";
//线上
//public static final String NOTIFY_URL = "https://jygkzy.com/api/pay/wxPayCallBack.do";
public static final String NOTIFY_URL = "https://jygkzy.com/api/pay/wxPayCallBack.do";
......
......@@ -4,19 +4,18 @@ package cn.wisenergy.web.admin.controller.app;
import cn.wisenergy.common.utils.R;
import cn.wisenergy.model.app.RefillCard;
import cn.wisenergy.model.dto.RefillCardDto;
import cn.wisenergy.model.vo.RefillCardVo;
import cn.wisenergy.service.app.RefillCardService;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.math.BigInteger;
import java.text.DecimalFormat;
import java.util.Date;
@Api(tags = "充值卡管理")
......@@ -51,15 +50,12 @@ public class RefillCardController {
return refillCardService.update(batchNumber);
}
@ApiOperation(value = "充值卡查询",notes = "充值卡查询",httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "pageNo",value = "页数",dataType="int"),
@ApiImplicitParam(name = "pageSize",value = "每页显示条数",dataType="int")
})
@GetMapping("/select")
public R<PageInfo<RefillCardDto>> select(Integer pageNo, Integer pageSize){
log.info("RefillCardController[].select[].input.param.parampageNo,pageSize"+pageNo,pageSize);
return refillCardService.getList(pageNo, pageSize);
@ApiOperation(value = "充值卡查询",notes = "充值卡查询",httpMethod = "POST")
@ApiImplicitParam(name = "refillCardVo",value = "每页显示条数",dataType="RefillCardVo")
@PostMapping("/select")
public R<PageInfo<RefillCardDto>> select(@RequestBody RefillCardVo refillCardVo){
log.info("RefillCardController[].select[].input.param.refillCardVo"+refillCardVo);
return refillCardService.getList(refillCardVo);
}
@ApiOperation(value = "生成卡片",notes = "生成卡片",httpMethod = "GET")
......@@ -80,4 +76,10 @@ public class RefillCardController {
return refillCardService.createExcel(batchNumber,response);
}
public static void main(String[] args) {
int num=123;
DecimalFormat df = new DecimalFormat("0000000000");
System.out.println(df.format(num));
}
}
......@@ -3,8 +3,8 @@ spring:
type: com.alibaba.druid.pool.DruidDataSource
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.110.165:3306/volunteer?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
#url: jdbc:mysql://localhost:3306/volunteer?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
#url: jdbc:mysql://192.168.110.165:3306/volunteer?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
url: jdbc:mysql://localhost:3306/volunteer?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
#url: jdbc:mysql://rm-bp1i44rtb091fk06coo.mysql.rds.aliyuncs.com:3306/volunteer?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false
username: root
password: adm4HYservice$
......
......@@ -4,8 +4,8 @@ server:
max-threads: 1000
min-spare-threads: 30
port: 8997
#port: 8080
#port: 8997
port: 8080
connection-timeout: 5000ms
spring:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment