Просмотр исходного кода

feat(system): 增加用户信息录入功能

- 在 AppCoureseServiceImpl 和 OrderServiceImpl 中添加用户信息录入设备的逻辑
- 更新 DetailServiceImpl 中的课程信息,增加折扣判断
- 在 PlaceInfoVO 中添加 hasDiscount 字段
SheepHy 3 недель назад
Родитель
Сommit
371ba93d74

+ 1 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/DetailServiceImpl.java

@@ -233,6 +233,7 @@ public class DetailServiceImpl implements IDetailService {
             courseInfoVO.setSalesYear(getCourseSales(appCourses.getId()));
             courseInfoVO.setPriceType(isFirstPurchase(user.getId()));
             courseInfoVO.setCover(list.get(0));
+            courseInfoVO.setHasDiscount(checkOrderOrFree(user.getId(), appCourses.getCategoryId()));
             AppSite appSite = appSiteMapper.selectById(appCourses.getAddressSiteId());
             if (appSite!=null){
                 courseInfoVO.setAddress(appSite.getAddress());

+ 19 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/OrderServiceImpl.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.app.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.RandomUtil;
@@ -956,7 +957,24 @@ public class OrderServiceImpl implements IOrderService {
                     //生成10位随机券号
                     .setTicketNo(RandomUtil.randomNumbers(10))
             ;
-            appOrderProInfoMapper.insert(appOrderProInfo);
+            if(appOrderProInfoMapper.insert(appOrderProInfo) > 0){
+                if(appSiteMapper.selectById(appCoursesMapper.selectById(appOrderProInfo.getProductId()).getAddressSiteId()).getType() == 0){
+                    for (AppDevice appDevice : appDeviceMapper.selectList(Wrappers.<AppDevice>lambdaQuery().eq(AppDevice::getOrgCode, appOrder.getOrgCode()))){
+                        if(null != appDevice){
+                            JsonObject addUserJson = JsonParser.parseString(addUser(new DateTime(appOrderProInfo.getExpireTime()),
+                                    appDevice.getDeviceSerial(),
+                                    appOrderProInfo.getUserName(),
+                                    appOrderProInfo.getId())).getAsJsonObject();
+                            JsonObject addFaceJson = JsonParser.parseString(addFace(appDevice.getDeviceSerial(), appOrderProInfo.getId(),
+                                    familyMembersMapper.selectById(appOrderProInfo.getFamilyUserId()).getRealNameImg())).getAsJsonObject();
+                            if (addUserJson.get("code").getAsInt() != 0 && addFaceJson.get("code").getAsInt() != 0){
+                                throw new JeecgBootException("设备录入用户信息失败!请联系管理员");
+                            }
+                        }
+                    }
+                }
+
+            }
             if (!Objects.equals(appOrderProInfo.getType(), CommonConstant.ORDER_PRO_INFO_TYPE_6)) {
                 //订单券号记录
                 AppIsin appIsin = new AppIsin();

+ 1 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/vo/PlaceInfoVO.java

@@ -126,6 +126,7 @@ public class PlaceInfoVO {
         private BigDecimal sellingPrice;
         @Schema(description = "销售数量")
         private int sales;
+        private boolean hasDiscount;
         @Schema(description = "销售(年)")
         private int salesYear;
         @Schema(description = "好评率")

+ 27 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/AppCoureseServiceImpl.java

@@ -1,11 +1,14 @@
 package org.jeecg.modules.system.app.service.impl;
 
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.util.ObjUtil;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
@@ -38,6 +41,8 @@ import java.util.*;
 import java.util.stream.Collectors;
 
 import static org.jeecg.common.constant.CommonConstant.SC_INTERNAL_SERVER_ERROR_500;
+import static org.jeecg.modules.hikiot.HikiotTool.addFace;
+import static org.jeecg.modules.hikiot.HikiotTool.addUser;
 
 /**
  * @Description: 课程/培训表
@@ -62,6 +67,10 @@ public class AppCoureseServiceImpl extends ServiceImpl<AppCoursesMapper, AppCour
 
     @Autowired
     WxNotificationService wxNotificationService;
+    @Resource
+    private AppCoursesMapper appCoursesMapper;
+    @Resource
+    private AppDeviceMapper appDeviceMapper;
 
 
     @Override
@@ -448,7 +457,24 @@ public class AppCoureseServiceImpl extends ServiceImpl<AppCoursesMapper, AppCour
             verificationRecord.setUseUserPhone(familyMembers.getPhone());
             verificationRecord.setVerifyStatus(CommonConstant.STATUS_0_INT);
             verificationRecord.setCoursesType(CommonConstant.STATUS_1_INT);
-            appCoursesVerificationRecordMapper.insert(verificationRecord);
+            if(appCoursesVerificationRecordMapper.insert(verificationRecord) > 0){
+                AppSite appSite = siteMapper.selectById(appCoursesMapper.selectById(verificationRecord.getCoursesId()).getAddressSiteId());
+                if(appSite.getType() == 0){
+                    for (AppDevice appDevice : appDeviceMapper.selectList(Wrappers.<AppDevice>lambdaQuery().eq(AppDevice::getSiteId, appSite.getId()))){
+                        if(null != appDevice){
+                            JsonObject addUserJson = JsonParser.parseString(addUser(new DateTime(verificationRecord.getCoursesEndTime()),
+                                    appDevice.getDeviceSerial(),
+                                    verificationRecord.getUseUserName(),
+                                    "K" + verificationRecord.getId())).getAsJsonObject();
+                            JsonObject addFaceJson = JsonParser.parseString(addFace(appDevice.getDeviceSerial(), "K" + verificationRecord.getId(),
+                                    familyMembersMapper.selectById(verificationRecord.getUseUserId()).getRealNameImg())).getAsJsonObject();
+                            if (addUserJson.get("code").getAsInt() != 0 && addFaceJson.get("code").getAsInt() != 0){
+                                throw new JeecgBootException("设备录入用户信息失败!请联系管理员");
+                            }
+                        }
+                    }
+                }
+            }
             log.warn("查询主用户信息:use_user_id:"+familyMembers.getId()+";courses_price_rule_id:"+coursesPriceRules.getId());
             JobExtendedClassNoticeVo jobExtendedClassNoticeVo =  priceRulesMapper.findByClassPrice(familyMembers.getId(),coursesPriceRules.getId());
             log.warn("查询主用户信息:"+ JSONObject.toJSONString(jobExtendedClassNoticeVo));