后台开通课程,自动扣除天医币
This commit is contained in:
@@ -6,28 +6,26 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import com.peanut.common.utils.DateUtils;
|
||||
import com.peanut.common.utils.R;
|
||||
import com.peanut.modules.common.entity.*;
|
||||
import com.peanut.modules.common.service.JfTransactionDetailsService;
|
||||
import com.peanut.modules.common.service.TransactionDetailsService;
|
||||
import com.peanut.modules.common.service.UserCourseBuyLogService;
|
||||
import com.peanut.modules.common.to.AddCourses;
|
||||
import com.peanut.modules.common.vo.AddCoursesFrag;
|
||||
import com.peanut.modules.master.service.CourseCatalogueService;
|
||||
import com.peanut.modules.master.service.CourseService;
|
||||
import com.peanut.modules.master.service.MyUserService;
|
||||
import com.peanut.modules.master.service.UserCourseBuyService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.poi.ss.usermodel.*;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.io.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -41,9 +39,17 @@ public class UserCourseBuyController {
|
||||
@Autowired
|
||||
private UserCourseBuyService userCourseBuyService;
|
||||
@Autowired
|
||||
private CourseService courseService;
|
||||
@Autowired
|
||||
private CourseCatalogueService courseCatalogueService;
|
||||
@Autowired
|
||||
private UserCourseBuyLogService userCourseBuyLogService;
|
||||
@Autowired
|
||||
private MyUserService userService;
|
||||
@Autowired
|
||||
private TransactionDetailsService transactionDetailsService;
|
||||
@Autowired
|
||||
private JfTransactionDetailsService jfTransactionDetailsService;
|
||||
|
||||
@RequestMapping("/listByPage")
|
||||
public R listByPage(@RequestBody Map<String, Object> params) {
|
||||
@@ -81,19 +87,50 @@ public class UserCourseBuyController {
|
||||
@RequestMapping("/insertUserCourseBuy")
|
||||
@Transactional
|
||||
public R insertUserCourseBuy(@RequestBody Map<String, Object> params) {
|
||||
if (StringUtils.isEmpty(params.get("payType").toString())){
|
||||
return R.error("支付方式不能为空");
|
||||
}
|
||||
BigDecimal totalFee = new BigDecimal(params.get("fee").toString());
|
||||
BigDecimal totalJf = new BigDecimal(params.get("jf").toString());
|
||||
String payType = params.get("payType").toString();
|
||||
int userId = Integer.parseInt(params.get("userId").toString());
|
||||
MyUserEntity user = userService.getById(userId);
|
||||
if (totalFee.compareTo(BigDecimal.ZERO)<0||totalJf.compareTo(BigDecimal.ZERO)<0) {
|
||||
return R.error("金额积分不能为负数");
|
||||
}
|
||||
if ("后台天医币".equals(payType)) {
|
||||
if (totalFee.compareTo(BigDecimal.ZERO) > 0) {
|
||||
if (user.getPeanutCoin().compareTo(totalFee) < 0) {
|
||||
return R.error("天医币余额不足");
|
||||
}
|
||||
}
|
||||
if (totalJf.compareTo(BigDecimal.ZERO)>0){
|
||||
if (user.getJf().compareTo(totalJf)<0){
|
||||
return R.error("积分余额不足");
|
||||
}
|
||||
}
|
||||
}
|
||||
int courseId = Integer.parseInt(params.get("courseId").toString());
|
||||
String catalogueId = params.get("catalogueId").toString();
|
||||
int days = Integer.parseInt(params.get("days").toString());
|
||||
String come = params.get("come").toString();
|
||||
String[] catalogueIds = catalogueId.split(",");
|
||||
for (int i=0;i<catalogueIds.length;i++) {
|
||||
String id = catalogueIds[i];
|
||||
UserCourseBuyEntity userCourseBuyEntity = userCourseBuyService.getOne(new LambdaQueryWrapper<UserCourseBuyEntity>()
|
||||
.eq(UserCourseBuyEntity::getCatalogueId,id)
|
||||
long count = userCourseBuyService.count(new LambdaQueryWrapper<UserCourseBuyEntity>()
|
||||
.eq(UserCourseBuyEntity::getCatalogueId,catalogueIds[i])
|
||||
.eq(UserCourseBuyEntity::getUserId,userId));
|
||||
if (userCourseBuyEntity==null){
|
||||
userCourseBuyEntity = new UserCourseBuyEntity();
|
||||
if (count>0){
|
||||
CourseCatalogueEntity cc = courseCatalogueService.getById(catalogueIds[i]);
|
||||
return R.error(cc.getTitle()+"已开通");
|
||||
}
|
||||
|
||||
}
|
||||
String courseInfo = "";
|
||||
for (int i=0;i<catalogueIds.length;i++) {
|
||||
String id = catalogueIds[i];
|
||||
CourseCatalogueEntity cc = courseCatalogueService.getById(catalogueIds[i]);
|
||||
courseInfo += cc.getTitle()+days+"天";
|
||||
UserCourseBuyEntity userCourseBuyEntity = new UserCourseBuyEntity();
|
||||
userCourseBuyEntity.setUserId(userId);
|
||||
userCourseBuyEntity.setCourseId(courseId);
|
||||
userCourseBuyEntity.setCatalogueId(Integer.parseInt(id));
|
||||
@@ -108,8 +145,6 @@ public class UserCourseBuyController {
|
||||
userCourseBuyLog.setPayTime(new Date());
|
||||
userCourseBuyLog.setOrderSn(params.get("orderSn").toString());
|
||||
userCourseBuyLog.setDays(days);
|
||||
BigDecimal totalFee = new BigDecimal(params.get("fee").toString());
|
||||
BigDecimal totalJf = new BigDecimal(params.get("jf").toString());
|
||||
BigDecimal fee = totalFee.divide(new BigDecimal(catalogueIds.length),2, BigDecimal.ROUND_HALF_UP);
|
||||
BigDecimal jf = totalJf.divide(new BigDecimal(catalogueIds.length),2, BigDecimal.ROUND_HALF_UP);
|
||||
if (i==(catalogueIds.length-1)){
|
||||
@@ -121,10 +156,31 @@ public class UserCourseBuyController {
|
||||
}
|
||||
userCourseBuyLog.setRemark(params.get("remark").toString());
|
||||
userCourseBuyLogService.save(userCourseBuyLog);
|
||||
}else {
|
||||
CourseCatalogueEntity catalogueEntity = courseCatalogueService.getById(id);
|
||||
return R.error(catalogueEntity.getTitle()+"已开通");
|
||||
}
|
||||
if ("后台天医币".equals(params.get("payType").toString())){
|
||||
if (totalFee.compareTo(BigDecimal.ZERO)>0){
|
||||
user.setPeanutCoin(user.getPeanutCoin().subtract(totalFee));
|
||||
TransactionDetailsEntity transactionDetailsEntity = new TransactionDetailsEntity();
|
||||
transactionDetailsEntity.setUserId(user.getId());
|
||||
transactionDetailsEntity.setUserName(user.getName());
|
||||
transactionDetailsEntity.setChangeAmount(totalFee.negate());
|
||||
transactionDetailsEntity.setUserBalance(user.getPeanutCoin());
|
||||
transactionDetailsEntity.setTel(user.getTel());
|
||||
transactionDetailsEntity.setOrderType("扣费");
|
||||
transactionDetailsEntity.setNote("开通课程"+courseService.getById(courseId).getTitle()+courseInfo);
|
||||
transactionDetailsService.save(transactionDetailsEntity);
|
||||
}
|
||||
if (totalJf.compareTo(BigDecimal.ZERO)>0){
|
||||
user.setJf(user.getJf().subtract(totalJf));
|
||||
JfTransactionDetails jfTransactionDetails = new JfTransactionDetails();
|
||||
jfTransactionDetails.setUserId(user.getId());
|
||||
jfTransactionDetails.setChangeAmount(totalJf.negate());
|
||||
jfTransactionDetails.setActType(1);
|
||||
jfTransactionDetails.setUserBalance(user.getJf());
|
||||
jfTransactionDetails.setRemark("开通课程"+courseService.getById(courseId).getTitle()+courseInfo);
|
||||
jfTransactionDetailsService.save(jfTransactionDetails);
|
||||
}
|
||||
userService.updateById(user);
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user