Quellcode durchsuchen

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRepairServiceImpl.java
周箭河 vor 5 Jahren
Ursprung
Commit
f7877be9fc

+ 2 - 2
mec-auth/mec-auth-server/src/main/resources/logback-spring.xml

@@ -27,8 +27,8 @@
 		</encoder>
 	</appender>
 
-	<logger name="com.ym.mec" level="DEBUG" />
-	<root level="DEBUG">
+	<logger name="com.ym.mec" level="INFO" />
+	<root level="INFO">
 		<appender-ref ref="stdout" />
 		<appender-ref ref="file" />
 	</root>

+ 28 - 101
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRepairServiceImpl.java

@@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.SellOrderDao;
 import com.ym.mec.biz.dal.dao.StudentDao;
 import com.ym.mec.biz.dal.dao.StudentRepairDao;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
@@ -66,8 +65,6 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
     private StudentPaymentRouteOrderService studentPaymentRouteOrderService;
     @Autowired
     private SellOrderService sellOrderService;
-    @Autowired
-    private SellOrderDao sellOrderDao;
 
     @Override
     public BaseDAO<Integer, StudentRepair> getDAO() {
@@ -110,17 +107,24 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
         }
         Integer studentId = sysUser.getId();
         String goodsId = goodsSellDto.getGoodsId();
-        if (StringUtils.isEmpty(goodsId)) {
+        if(StringUtils.isEmpty(goodsId)){
             throw new BizException("请选择需要购买的商品");
         }
-        if (studentId == null) {
+        if(studentId == null){
             throw new BizException("请指定学员");
         }
         studentDao.lockUser(studentId);
         SysUser student = sysUserFeignService.queryUserById(studentId);
         String orderNo = idGeneratorService.generatorId("payment") + "";
+
+        String[] goodsIds = goodsId.split(",");
+        Map<String, BigDecimal> map = getMap("goods", "id_", "group_purchase_price_", goodsId, String.class, BigDecimal.class);
+        BigDecimal amount = BigDecimal.ZERO;
+        for (String id : goodsIds) {
+            amount.add(map.get(id));
+        }
         List<Goods> goods = goodsService.findGoodsByIds(goodsId);
-        BigDecimal amount = goods.stream().map(e -> e.getGroupPurchasePrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
+//        BigDecimal amount = goods.stream().map(e -> e.getGroupPurchasePrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
 
         StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
         studentPaymentOrder.setUserId(studentId);
@@ -134,9 +138,11 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
         studentPaymentOrder.setRoutingOrganId(student.getOrganId());
         studentPaymentOrderService.insert(studentPaymentOrder);
 
-        Map<GoodsType, List<Goods>> collect = goods.stream().collect(Collectors.groupingBy(Goods::getType));
+//        Map<GoodsType, List<Goods>> collect = goods.stream().collect(Collectors.groupingBy(Goods::getType));
+        Map<Integer, List<Goods>> collect = goods.stream().collect(Collectors.groupingBy(Goods::getId));
         List<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>();
-        goods.forEach(e -> {
+        for (String id : goodsIds) {
+            Goods e = collect.get(id).get(0);
             StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
             studentPaymentOrderDetail.setRemitFee(BigDecimal.ZERO);
             OrderDetailTypeEnum type = null;
@@ -149,12 +155,11 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
             }
             studentPaymentOrderDetail.setType(type);
             studentPaymentOrderDetail.setPrice(e.getGroupPurchasePrice());
-            String join = StringUtils.join(collect.get(e.getType()).stream().map(g -> g.getId()).collect(Collectors.toList()), ",");
-            studentPaymentOrderDetail.setGoodsIdList(join);
+            studentPaymentOrderDetail.setGoodsIdList(id);
             studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
             studentPaymentOrderDetail.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.GROUP);
             studentPaymentOrderDetailList.add(studentPaymentOrderDetail);
-        });
+        }
         studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
 
         studentPaymentOrder.setVersion(0);
@@ -228,11 +233,11 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
         repairInfo.setCreateTime(date);
         repairInfo.setUpdateTime(date);
         String goodsJson = repairInfo.getGoodsJson();
-        if (StringUtils.isNotEmpty(goodsJson)) {
+        if(StringUtils.isNotEmpty(goodsJson)){
             List<RepairGoodsDto> repairGoodsDtos = JSONObject.parseArray(goodsJson, RepairGoodsDto.class);
             List<Integer> goodsIds = repairGoodsDtos.stream().map(e -> e.getId()).collect(Collectors.toList());
             Map<Integer, BigDecimal> map = getMap("goods", "id_", "group_purchase_price_", goodsIds, Integer.class, BigDecimal.class);
-            repairGoodsDtos.forEach(e -> {
+            repairGoodsDtos.forEach(e->{
                 e.setGroupPurchasePrice(map.get(e.getId()));
             });
             repairInfo.setGoodsJson(JSONObject.toJSONString(repairGoodsDtos));
@@ -244,13 +249,13 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
             return repairInfoMap;
         }
 
-        if (StringUtils.isNoneBlank(repairInfo.getGoodsJson())) {
+        if(StringUtils.isNoneBlank(repairInfo.getGoodsJson())){
             JSONArray goods = JSON.parseArray(repairInfo.getGoodsJson());
             for (Object good : goods) {
-                JSONObject goodObject = (JSONObject) good;
+                JSONObject goodObject= (JSONObject) good;
                 BigDecimal groupPurchasePrice = goodObject.getBigDecimal("groupPurchasePrice");
-                if (Objects.nonNull(groupPurchasePrice)) {
-                    amount = amount.add(groupPurchasePrice);
+                if(Objects.nonNull(groupPurchasePrice)){
+                    amount=amount.add(groupPurchasePrice);
                 }
             }
         }
@@ -399,7 +404,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
         studentDao.lockUser(studentRepair.getStudentId());
         BigDecimal amount = studentRepair.getAmount();
         String goodsJson = studentRepair.getGoodsJson();
-        if (StringUtils.isNotEmpty(goodsJson)) {
+        if(StringUtils.isNotEmpty(goodsJson)){
             List<RepairGoodsDto> repairGoodsDtos = JSONObject.parseArray(goodsJson, RepairGoodsDto.class);
             BigDecimal reduce = repairGoodsDtos.stream().map(e -> e.getGroupPurchasePrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
             amount = amount.add(reduce);
@@ -548,84 +553,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
                 rechargeDetail.setPerAmount(studentPaymentOrder.getPerAmount().negate());
             }
             sysUserCashAccountDetailService.insert(paymentDetail);
-            //生成销售订单
-            List<StudentPaymentOrderDetail> orderDetails = studentPaymentOrderDetailService.getOrderDetail(studentPaymentOrder.getId());
-            if (orderDetails.size() > 0) {
-                List<SellOrder> sellOrders = new ArrayList<>();
-                //总余额支付
-                BigDecimal totalBalance = studentPaymentOrder.getBalancePaymentAmount() != null ? studentPaymentOrder.getBalancePaymentAmount() : BigDecimal.ZERO;
-                //总价格
-                BigDecimal totalPrice = studentPaymentOrder.getExpectAmount();
-                //商品总付款
-                BigDecimal detailTotalPrice = orderDetails.stream().map(StudentPaymentOrderDetail::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
-                //商品销售占的余额
-                BigDecimal detailTotalBalance = detailTotalPrice.multiply(totalBalance).divide(totalPrice, 2, BigDecimal.ROUND_HALF_UP);
-
-                int i = 1;
-                BigDecimal detailRouteBalance = BigDecimal.ZERO;
-                for (StudentPaymentOrderDetail orderDetail : orderDetails) {
-                    BigDecimal detailBalance = orderDetail.getPrice().multiply(detailTotalBalance).divide(detailTotalPrice, 2, BigDecimal.ROUND_HALF_UP);
-                    if (i == orderDetails.size()) {
-                        detailBalance = detailTotalBalance.subtract(detailRouteBalance);
-                    }
-                    detailRouteBalance = detailRouteBalance.add(detailBalance);
-                    i++;
-
-                    if (orderDetail.getType().equals(OrderDetailTypeEnum.MUSICAL) && orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
-                        continue;
-                    }
-
-                    BigDecimal goodsTotalPrice = orderDetail.getGoodsList().stream().map(Goods::getGroupPurchasePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
-                    BigDecimal routePrice = BigDecimal.ZERO;
-                    BigDecimal routeBalance = BigDecimal.ZERO;
-                    int j = 1;
-                    for (Goods goods : orderDetail.getGoodsList()) {
-                        BigDecimal expectAmount = goods.getGroupPurchasePrice().multiply(orderDetail.getPrice()).divide(goodsTotalPrice, 2, BigDecimal.ROUND_HALF_UP);
-                        BigDecimal balance = goods.getGroupPurchasePrice().multiply(detailBalance).divide(goodsTotalPrice, 2, BigDecimal.ROUND_HALF_UP);
-                        if (j == orderDetail.getGoodsList().size()) {
-                            expectAmount = orderDetail.getPrice().subtract(routePrice);
-                            balance = orderDetail.getPrice().subtract(routeBalance);
-                        }
-                        routePrice = routePrice.add(expectAmount);
-                        routeBalance = routeBalance.add(balance);
-                        j++;
-
-                        SellOrder sellOrder = new SellOrder();
-                        Map<String, BigDecimal> CostMap = new HashMap<>();
-                        CostMap.put("sellCost", goods.getDiscountPrice());
-                        if (goods.getAgreeCostPrice() != null) {
-                            CostMap.put("SellCost2", goods.getAgreeCostPrice());
-                        }
-                        sellOrder.setOrganId(studentPaymentOrder.getOrganId());
-                        sellOrder.setTransNo(studentPaymentOrder.getTransNo());
-                        sellOrder.setOrderId(studentPaymentOrder.getId());
-                        sellOrder.setOrderNo(studentPaymentOrder.getOrderNo());
-                        sellOrder.setActualAmount(expectAmount.subtract(balance));
-                        sellOrder.setBalanceAmount(balance);
-                        sellOrder.setExpectAmount(expectAmount);
-                        sellOrder.setSellCost(goods.getDiscountPrice());
-                        sellOrder.setSellCost2(JSON.toJSONString(CostMap));
-                        sellOrder.setNum(1);
-                        sellOrder.setUserId(studentPaymentOrder.getUserId());
-                        sellOrder.setPaymentChannel(studentPaymentOrder.getPaymentChannel());
-                        sellOrder.setMerNo(studentPaymentOrder.getMerNos());
-                        sellOrder.setSellTime(studentPaymentOrder.getCreateTime());
-                        sellOrder.setCreateIme(new Date());
-                        sellOrder.setUpdateTime(new Date());
-                        if (goods.getType().equals(GoodsType.INSTRUMENT)) {
-                            sellOrder.setType(SellTypeEnum.INSTRUMENT);
-                        } else if (goods.getType().equals(GoodsType.ACCESSORIES)) {
-                            sellOrder.setType(SellTypeEnum.ACCESSORIES);
-                        } else {
-                            sellOrder.setType(SellTypeEnum.OTHER);
-                        }
-                        sellOrders.add(sellOrder);
-                    }
-                }
-                sellOrderDao.batchInsert(sellOrders);
-            }
-
-        } else if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
+        }else if(studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED){
             if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
                 sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "乐器维修支付失败");
             }
@@ -647,7 +575,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
         if (repairInfo == null) {
             throw new BizException("维修单不存在");
         }
-        if (repairInfo.getPayStatus().equals(2)) {
+        if(repairInfo.getPayStatus().equals(2)){
             return true;
         }
 
@@ -701,14 +629,13 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
             sysUserCashAccountDetailService.insert(paymentDetail);
             //生成销售订单
             List<Integer> goodsIds = new ArrayList<>();
-            if (StringUtils.isNotBlank(repairInfo.getGoodsJson())) {
+            if(StringUtils.isNotBlank(repairInfo.getGoodsJson())){
                 List<Goods> goods = JSONObject.parseArray(repairInfo.getGoodsJson(), Goods.class);
                 goodsIds = goods.stream().map(Goods::getId).collect(Collectors.toList());
-                if (goodsIds.size() > 0) {
-                    sellOrderService.addSellOrder(studentPaymentOrder.getId(), repairInfo.getMusicGroupId(), goodsIds, studentPaymentOrder.getExpectAmount(), studentPaymentOrder.getBalancePaymentAmount());
-                }
             }
 
+            sellOrderService.addSellOrder(studentPaymentOrder.getId(),repairInfo.getMusicGroupId(),goodsIds,studentPaymentOrder.getExpectAmount(),studentPaymentOrder.getBalancePaymentAmount());
+
             String imContent = repairInfo.getStudentName() + "学员您好,您的乐器维修已受理,我们会尽快完成保养维修";
 
             if (repairInfo.getType().equals(1)) { //线上

+ 3 - 3
mec-biz/src/main/resources/config/mybatis/FinancialExpenditureMapper.xml

@@ -140,10 +140,10 @@
                 AND fe.cooperation_organ_id_ = #{cooperationOrganId}
             </if>
             <if test="startTime != null and startTime != ''">
-                AND DATE_FORMAT(fe.payment_time_,'%Y%m%d') &gt;= #{startTime}
+                AND DATE_FORMAT(fe.payment_time_,'%Y-%m-%d') &gt;= #{startTime}
             </if>
             <if test="endTime != null and endTime != ''">
-                AND DATE_FORMAT(fe.payment_time_,'%Y%m%d') &lt;= #{endTime}
+                AND DATE_FORMAT(fe.payment_time_,'%Y-%m-%d') &lt;= #{endTime}
             </if>
         </where>
     </sql>
@@ -188,7 +188,7 @@
         GROUP BY organ_id_,cooperation_organ_id_,type_
     </select>
     <select id="countBydingTalk" resultType="java.lang.String">
-        SELECT dingtalk_process_no_ FROM financial_expenditure WHERE dingtalk_process_no_ IN
+        SELECT dingtalk_process_no_ FROM financial_expenditure WHERE del_flag_ = 0 AND dingtalk_process_no_ IN
         <foreach collection="collect" separator="," open="(" close=")" item="item">
             #{item}
         </foreach>

+ 10 - 11
mec-biz/src/main/resources/config/mybatis/GoodsMapper.xml

@@ -154,33 +154,32 @@
         ORDER BY g.id_
         <include refid="global.limit"/>
     </select>
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(*) FROM goods g
+        <include refid="queryGoodsPageSql"/>
+    </select>
 
     <sql id="queryGoodsPageSql">
         <where>
             <if test="goodsCategoryId != null">
-                g.goods_category_id_ = #{goodsCategoryId}
+                AND g.goods_category_id_ = #{goodsCategoryId}
             </if>
             <if test="type != null">
-                g.type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+                AND g.type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
             </if>
             <if test="isNew != null">
-                g.is_new_ = #{isNew,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+                AND g.is_new_ = #{isNew,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
             </if>
             <if test="isTop != null">
-                g.is_top_ = #{isTop,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+                AND g.is_top_ = #{isTop,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
             </if>
             <if test="status != null">
-                g.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+                AND g.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
             </if>
         </where>
     </sql>
 
-    <!-- 查询当前表的总记录数 -->
-    <select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM goods g
-        <include refid="queryGoodsPageSql"/>
-	</select>
-
     <select id="findGoodsBySubId" resultMap="Goods">
         SELECT g.* FROM subject_goods_mapper sgm
         LEFT JOIN goods g ON sgm.goods_category_id_ = g.goods_category_id_

+ 18 - 31
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -1,29 +1,28 @@
 package com.ym.mec.student.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.huifu.adapay.Adapay;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.service.*;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.thirdparty.adapay.ConfigInit;
 import com.ym.mec.thirdparty.adapay.Payment;
+import com.ym.mec.thirdparty.yqpay.Msg;
+import com.ym.mec.thirdparty.yqpay.RsqMsg;
+import com.ym.mec.thirdparty.yqpay.YqPayFeignService;
+import com.ym.mec.thirdparty.yqpay.YqPayUtil;
 import com.ym.mec.util.date.DateUtil;
+import com.ym.mec.util.http.HttpUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.net.URLEncoder;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.stream.Collectors;
-
-import javax.servlet.http.HttpServletResponse;
-
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -31,23 +30,15 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.util.DigestUtils;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
-import com.alibaba.fastjson.JSON;
-import com.ym.mec.biz.dal.enums.DealStatusEnum;
-import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.entity.HttpResponseResult;
-import com.ym.mec.thirdparty.yqpay.Msg;
-import com.ym.mec.thirdparty.yqpay.RsqMsg;
-import com.ym.mec.thirdparty.yqpay.YqPayFeignService;
-import com.ym.mec.thirdparty.yqpay.YqPayUtil;
-import com.ym.mec.util.http.HttpUtil;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @RequestMapping("studentOrder")
 @Api(tags = "订单回调")
@@ -58,8 +49,6 @@ public class StudentOrderController extends BaseController {
     @Autowired
     private StudentPaymentOrderService studentPaymentOrderService;
     @Autowired
-    private StudentRegistrationService studentRegistrationService;
-    @Autowired
     private VipGroupService vipGroupService;
     @Autowired
     private MusicGroupService musicGroupService;
@@ -76,8 +65,6 @@ public class StudentOrderController extends BaseController {
     @Autowired
     private OrganizationDao organizationDao;
     @Autowired
-    private TeacherCourseStatisticsDao teacherCourseStatisticsDao;
-    @Autowired
     private CourseScheduleEvaluateDao courseScheduleEvaluateDao;
     @Autowired
     private TenantPaymentOrderService tenantPaymentOrderService;

+ 0 - 3
mec-teacher/src/main/resources/application.yml

@@ -103,6 +103,3 @@ push:
     masterSecret: d47430e2f4755ef5dc050ac5
     apns_production: false
 
-logging:
-  level:
-    com.ym.mec.auth.api.client.SysUserFeignService: DEBUG