提交 7772c095 authored 作者: zhouzhigang's avatar zhouzhigang

审核不通过的时候将样书券返回给用户

上级 0526f511
......@@ -143,7 +143,13 @@ public class SampleBookApplyController {
sb.setOverdueTime(date);
sb.setAlreadyNum(0);
sampleBookService.insert(sb);
}
//若通过则扣掉相应的样书券数量
if(SampleBookApplyApplyStatusEnum.SUCCESS_REVIEW.getCode().equals(form.getStatus())){
//验证样书券数量是否满足
sampleBookService.checkNum(1,entity.getMemberId());
//若申请,则减去对应数量的用户样书券
sampleBookService.reduce(1,entity.getMemberId());
}
return CallBack.success(sampleBookApplyService.updateByPrimaryKey(entity));
......
package com.zrqx.bg.member.mapper.samplebookvoucher;
import com.zrqx.core.vo.member.fg.samplebookvoucher.FgSampleBookVo;
import org.apache.ibatis.annotations.Mapper;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.samplebookvoucher.SampleBook;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface SampleBookMapper extends BaseMapper<SampleBook>{
String DEFAULT_PARAM = "number > 0 and overdueTime > now() and s.memberId = #{id}";
@Select("select id, number from me_sample_book s where "+ DEFAULT_PARAM +" order by overdueTime limit 10 ")
List<FgSampleBookVo> reduce(Integer id);
@Select("select sum(number) from me_sample_book s where " + DEFAULT_PARAM)
Integer getAmount(Integer id);
}
......@@ -15,4 +15,20 @@ public interface SampleBookService extends BaseService<SampleBook,Integer>{
*/
boolean save(SaveSampleBookVoucherForm form);
/**
* 验证样书券的数量是否满足申请数量
* @return
* @author zzg
* @date: 2019年5月17日 下午4:44:58
*/
boolean checkNum(Integer applyNum, Integer memberId);
/**
* 消耗用户样书券
* @return
* @author zzg
* @date: 2019年5月17日 下午5:17:29
*/
boolean reduce(Integer applyNum, Integer memberId);
}
package com.zrqx.bg.member.service.samplebookvoucher;
import com.zrqx.core.exception.BusinessValidateException;
import com.zrqx.core.vo.member.fg.samplebookvoucher.FgSampleBookVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.bg.member.mapper.samplebookvoucher.SampleBookMapper;
......@@ -8,6 +10,9 @@ import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.model.member.samplebookvoucher.SampleBook;
import com.zrqx.core.service.BaseModelServiceImpl;
import java.util.ArrayList;
import java.util.List;
@Service
public class SampleBookServiceImpl extends BaseModelServiceImpl<SampleBook,Integer> implements SampleBookService{
@Autowired
......@@ -29,6 +34,56 @@ public class SampleBookServiceImpl extends BaseModelServiceImpl<SampleBook,Integ
});
return true;
}
@Override
public boolean checkNum(Integer applyNum, Integer memberId) {
if(applyNum == null || applyNum == 0){
applyNum = 1;
}
Integer number = sampleBookMapper.getAmount(memberId);
if(number != null){
if(number < applyNum){
throw new BusinessValidateException("样书券数量不足");
}
}else{
throw new BusinessValidateException("样书券数量不足");
}
return true;
}
@Override
public boolean reduce(Integer applyNum, Integer memberId) {
if(applyNum == null || applyNum == 0){
applyNum = 1;
}
List<FgSampleBookVo> list = sampleBookMapper.reduce(memberId);
List<FgSampleBookVo> voList = new ArrayList<FgSampleBookVo>();
// 样书申请数量
Integer i = applyNum;
for(FgSampleBookVo vo : list){
voList.add(vo);
if (vo.getNumber() < i) {
vo.setApplyNum(vo.getNumber());
} else {
vo.setApplyNum(vo.getNumber()-i);
break;
}
i = i - vo.getNumber();
}
// 计算对应用户的样书券剩余量和已使用数量
for(FgSampleBookVo vo : voList){
SampleBook sb = super.notNull(vo.getId());
sb.setNumber(vo.getNumber() - applyNum);
if(sb.getAlreadyNum() == null){
sb.setAlreadyNum(0);
}
sb.setAlreadyNum(sb.getAlreadyNum() + applyNum);
super.updateByPrimaryKey(sb);
}
return true;
}
}
......@@ -144,9 +144,9 @@ public class FgSampleBookApplyServiceImpl extends BaseModelServiceImpl<SampleBoo
form.setApplyNum(1);
}
//验证样书券数量是否满足
fgSampleBookService.checkNum(form.getApplyNum());
//fgSampleBookService.checkNum(form.getApplyNum());
//若申请,则减去对应数量的用户样书券
fgSampleBookService.reduce(form.getApplyNum());
//fgSampleBookService.reduce(form.getApplyNum());
//生成样书申请记录
this.generateRecord(form) ;
return true;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论