he2802 před 1 rokem
rodič
revize
f1ce70807b

+ 9 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopSharedCustomerController.java

@@ -85,4 +85,13 @@ public class TopSharedCustomerController extends BaseController {
     public AjaxResult<List<TopConversionRateTrendVo>> getCustomerListData(TopOrderStatisticsBo bo) {
         return AjaxResult.success(iTopOldOrderService.getCustomerListData(bo));
     }
+
+    /**
+     * 公海客户详情
+     */
+    @ApiOperation("公海客户详情")
+    @GetMapping("/customer/order")
+    public TableDataInfo<TopConversionRateDataVo> getCustomerOrderData(TopOrderStatisticsBo bo) {
+        return iTopOldOrderService.getCustomerOrderData(bo);
+    }
 }

+ 2 - 0
zhongzheng-admin-saas/src/main/resources/application-dev.yml

@@ -170,6 +170,7 @@ oldOrder:
 
 oldSys:
     host: http://gdxypx.xy.com
+    goods: http://gdxypx.xy.com/WitSystem/BussinessApi/NewYxtLogin
 
 invoice:
     host: http://192.168.1.222:7077/sys/common/openMplatform/log
@@ -194,4 +195,5 @@ shared:
     orderArea: http://gdxypx.xy.com/WitSystem/BussinessApi/OrderAreaData
     rateData: http://gdxypx.xy.com//WitSystem/BussinessApi/CustomerConversionRateData
     rateTrend: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerConversionRateTrendData
+    customerOrder: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerOrderData
 

+ 3 - 6
zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java

@@ -196,12 +196,9 @@ public class ClassGradeController extends BaseController {
     @PreAuthorize("@ss.hasPermi('grade:grade:list')")
     @GetMapping("/listGrade")
     public TableDataInfo<ClassGradeStudentVo> listGrade(ClassGradeUserQueryBo bo) {
-        if (ObjectUtils.isNotNull(bo.getSevenCodeSign()) && bo.getSevenCodeSign() == 1
-                && ObjectUtils.isNotNull(bo.getGradeId())){
-            ClassGrade gradeGrade = iClassGradeService.getById(bo.getGradeId());
-            if (StringUtils.isNotBlank(gradeGrade.getSevenCode())){
-                bo.setSevenCode(gradeGrade.getSevenCode());
-            }
+        ClassGrade gradeGrade = iClassGradeService.getById(bo.getGradeId());
+        if (StringUtils.isNotBlank(gradeGrade.getSevenCode())){
+            bo.setSevenCode(gradeGrade.getSevenCode());
         }
         startPage();
         List<ClassGradeStudentVo> list = iClassGradeService.listGrade(bo);

+ 2 - 0
zhongzheng-admin/src/main/resources/application-dev.yml

@@ -171,6 +171,7 @@ oldOrder:
 
 oldSys:
     host: http://gdxypx.xy.com
+    goods: http://gdxypx.xy.com/WitSystem/BussinessApi/NewYxtLogin
 
 invoice:
     host: http://192.168.1.222:7077/sys/common/openMplatform/log
@@ -195,3 +196,4 @@ shared:
     orderArea: http://gdxypx.xy.com/WitSystem/BussinessApi/OrderAreaData
     rateData: http://gdxypx.xy.com//WitSystem/BussinessApi/CustomerConversionRateData
     rateTrend: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerConversionRateTrendData
+    customerOrder: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerOrderData

+ 11 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/course/CourseController.java

@@ -9,6 +9,7 @@ import com.zhongzheng.modules.course.bo.*;
 import com.zhongzheng.modules.course.service.*;
 import com.zhongzheng.modules.course.vo.*;
 import com.zhongzheng.modules.goods.vo.GoodsUserVo;
+import com.zhongzheng.modules.goods.vo.UserNewGoodsVo;
 import com.zhongzheng.modules.order.bo.SpecialQuestionBo;
 import com.zhongzheng.modules.order.vo.SpecialQuestionVo;
 import com.zhongzheng.modules.user.entity.ClientLoginUser;
@@ -206,4 +207,14 @@ public class CourseController extends BaseController {
         return AjaxResult.success(vo);
     }
 
+    /**
+     * 旧系统学员商品信息
+     */
+    @ApiOperation("旧系统学员商品信息")
+    @GetMapping("/old/goods/list")
+    public AjaxResult<UserNewGoodsVo> getOldGoodsList() {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        return AjaxResult.success(iCourseService.getOldGoodsList(loginUser.getUser().getUserId()));
+    }
+
 }

+ 3 - 1
zhongzheng-api/src/main/resources/application-dev.yml

@@ -173,6 +173,7 @@ oldOrder:
 
 oldSys:
     host: http://gdxypx.xy.com
+    goods: http://gdxypx.xy.com/System/BussinessApi/NewYxtLogin
 
 invoice:
     host: http://192.168.1.222:7077/sys/common/openMplatform/log
@@ -196,4 +197,5 @@ shared:
     cert: http://gdxypx.xy.com/WitSystem/BussinessApi/CertStatsData
     orderArea: http://gdxypx.xy.com/WitSystem/BussinessApi/OrderAreaData
     rateData: http://gdxypx.xy.com//WitSystem/BussinessApi/CustomerConversionRateData
-    rateTrend: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerConversionRateTrendData
+    rateTrend: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerConversionRateTrendData
+    customerOrder: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerOrderData

+ 3 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseService.java

@@ -8,10 +8,7 @@ import com.zhongzheng.modules.course.domain.Course;
 import com.zhongzheng.modules.course.vo.CourseUserVo;
 import com.zhongzheng.modules.course.vo.CourseVo;
 import com.zhongzheng.modules.goods.bo.GoodsBatchDelBo;
-import com.zhongzheng.modules.goods.vo.GoodsPeriodStatusVo;
-import com.zhongzheng.modules.goods.vo.GoodsPeriodVo;
-import com.zhongzheng.modules.goods.vo.GoodsUserVo;
-import com.zhongzheng.modules.goods.vo.GoodsVo;
+import com.zhongzheng.modules.goods.vo.*;
 import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.grade.vo.ClassGradeVo;
 import com.zhongzheng.modules.order.bo.SpecialQuestionBo;
@@ -110,4 +107,6 @@ public interface ICourseService extends IService<Course> {
     Long getSpecialQuestionCount(SpecialQuestionBo bo);
 
 	Map<String,String> getSpecialQuestionSkipCode(Long userId);
+
+	UserNewGoodsVo getOldGoodsList(Long userId);
 }

+ 43 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java

@@ -24,6 +24,8 @@ import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.type.EncryptHandler;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.common.utils.ToolsUtils;
+import com.zhongzheng.common.utils.http.HttpUtils;
 import com.zhongzheng.modules.base.domain.UserProfile;
 import com.zhongzheng.modules.base.service.IUserProfileService;
 import com.zhongzheng.modules.course.bo.CourseAddBo;
@@ -49,10 +51,7 @@ import com.zhongzheng.modules.goods.service.IGoodsCourseService;
 import com.zhongzheng.modules.goods.service.IGoodsQuestionRelService;
 import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.goods.service.IQuestionMerchantService;
-import com.zhongzheng.modules.goods.vo.GoodsPeriodStatusVo;
-import com.zhongzheng.modules.goods.vo.GoodsPeriodVo;
-import com.zhongzheng.modules.goods.vo.GoodsSectionNumVo;
-import com.zhongzheng.modules.goods.vo.GoodsUserVo;
+import com.zhongzheng.modules.goods.vo.*;
 import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.grade.bo.UserPeriodQueryBo;
 import com.zhongzheng.modules.grade.bo.UserPeriodStatusAddBo;
@@ -69,6 +68,7 @@ import com.zhongzheng.modules.order.vo.SpecialQuestionVo;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.system.domain.SysTenant;
 import com.zhongzheng.modules.system.service.ISysTenantService;
+import com.zhongzheng.modules.top.order.vo.TopConversionRateTrendVo;
 import com.zhongzheng.modules.user.bo.SubjectStudyRecordQueryBo;
 import com.zhongzheng.modules.user.bo.UserPhoneBo;
 import com.zhongzheng.modules.user.bo.UserPlanQueryBo;
@@ -162,6 +162,8 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
     private RedisCache redisCache;
     @Value("${liveGotoURL}")
     private String URL_PREFIX;
+    @Value("${oldSys.goods}")
+    private String OLD_GOODS;
     @Autowired
     private ClassGradeUserMapper classGradeUserMapper;
 
@@ -1111,6 +1113,43 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
         return map;
     }
 
+    @Override
+    public UserNewGoodsVo getOldGoodsList(Long userId) {
+        UserNewGoodsVo vo = new UserNewGoodsVo();
+        User user = iUserService.getById(userId);
+        if (ObjectUtils.isNull(user)){
+            return null;
+        }
+        String idCard = EncryptHandler.decrypt(user.getIdCard());
+        String telPhone = EncryptHandler.decrypt(user.getTelphone());
+        Map<String, String> params = new HashMap<>();
+        Long nowTime = DateUtils.getNowTime();
+        String sign = ToolsUtils.EncoderByMd5(idCard+telPhone+nowTime + "pubilc2022");
+        params.put("stamp", nowTime.toString());
+        params.put("sign", sign);
+        params.put("idNum", idCard);
+        params.put("passwordSign", "2");
+        params.put("telphone",telPhone);
+        String respone = "";
+        try {
+            respone = HttpUtils.postFormBody(OLD_GOODS, params);
+            if (!respone.contains("\"code\":200")) {
+                throw new CustomException("旧系统用户商品接口错误");
+            }
+            JSONObject jsonObject = JSONObject.parseObject(respone);
+            Object data = jsonObject.get("data");
+            if (ObjectUtils.isNotNull(data)){
+                vo = JSONObject.parseObject(JSONObject.toJSONString(data), UserNewGoodsVo.class);
+            }else {
+                return null;
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            throw new CustomException("旧系统用户商品接口错误");
+        }
+        return vo;
+    }
+
     private Long liveTime(Long nowTime, Integer day) {
         for (Integer i = 0; i < day; i++) {
             Long dayAfter = DateUtils.getDayAfter(nowTime, 1);

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeMapper.java

@@ -26,7 +26,7 @@ public interface ClassGradeMapper extends BaseMapper<ClassGrade> {
 
     List<GoodsVo> queryGoodsList(Long classId);
 
-    @InterceptorIgnore(tenantLine = "true")
+//    @InterceptorIgnore(tenantLine = "true")
     List<ClassGradeStudentVo> listGrade(ClassGradeUserQueryBo bo);
 
     List<ClassGradeUserListVo> listGradeInform(ClassGradeQueryBo bo);

+ 12 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -1631,6 +1631,18 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
             return new ArrayList<>();
         }
         classGradeVos.forEach(item -> {
+            //班级人数
+            if (ObjectUtils.isNotNull(item.getSevenCode())){
+                List<ClassGrade> list = list(new LambdaQueryWrapper<ClassGrade>()
+                        .eq(ClassGrade::getSevenCode, item.getSevenCode())
+                        .eq(ClassGrade::getStatus, 1));
+                if (CollectionUtils.isNotEmpty(list)){
+                    Integer count = iClassGradeUserService.count(new LambdaQueryWrapper<ClassGradeUser>()
+                            .in(ClassGradeUser::getGradeId, list.stream().map(ClassGrade::getGradeId).collect(Collectors.toList()))
+                            .eq(ClassGradeUser::getStatus, 1));
+                    item.setStudentNum(count);
+                }
+            }
             //获取班级总人数
             item.setStudentNumAll(getClassUserNumAll(item.getGradeId()));
         });

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopOldOrderService.java

@@ -186,4 +186,6 @@ public interface ITopOldOrderService extends IService<TopOldOrder> {
 	TopOrderStatisticsViewVo getStatisticsBusinessView(TopOrderStatisticsViewBo bo);
 
 	List<TopOrderStatisticsTwoVo> getTenantCreateList(TopOrderStatisticsViewBo bo);
+
+    TableDataInfo<TopConversionRateDataVo> getCustomerOrderData(TopOrderStatisticsBo bo);
 }

+ 73 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java

@@ -280,6 +280,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     @Value("${shared.rateTrend}")
     private String SHARED_RATE_TREND;
 
+    @Value("${shared.customerOrder}")
+    private String SHARED_CUSTOMER_ORDER;
+
 
     @Override
     public TopOldOrderVo queryById(String orderSn) {
@@ -3736,6 +3739,76 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         return this.baseMapper.getTenantCreateList(bo);
     }
 
+    @Override
+    public TableDataInfo<TopConversionRateDataVo> getCustomerOrderData(TopOrderStatisticsBo bo) {
+        TableDataInfo<TopConversionRateDataVo> tableDataInfo = new TableDataInfo();
+        //筛选时间处理
+        if (ObjectUtils.isNull(bo.getStartTime()) && ObjectUtils.isNull(bo.getEndTime())){
+            //没有选择时间范围,默认为当前时间向前推30天
+            Long nowTime = DateUtils.getNowTime();
+            Long dayBefore = DateUtils.getDayBefore(nowTime, 30);
+            bo.setStartTime(dayBefore);
+            bo.setEndTime(nowTime);
+        }
+        TopConversionRateVo rateVo = new TopConversionRateVo();
+        Map<String, String> params = new HashMap<>();
+        Long nowTime = DateUtils.getNowTime();
+        String sign = ToolsUtils.EncoderByMd5(nowTime.toString() + "pubilc2022");
+        params.put("stamp", nowTime.toString());
+        params.put("sign", sign);
+//        params.put("type", bo.getType().toString());
+        params.put("page", bo.getPageNum().toString());
+        params.put("pagesize", bo.getPageSize().toString());
+        if (ObjectUtils.isNotNull(bo.getStartTime())){
+            params.put("begintime", DateUtils.timestampToDateFormat(bo.getStartTime(),"yyyy/MM/dd"));
+        }
+        if (ObjectUtils.isNotNull(bo.getSort())){
+            params.put("sort", bo.getSort().toString());
+        }
+        if (ObjectUtils.isNotNull(bo.getEndTime())){
+            params.put("endtime", DateUtils.timestampToDateFormat(bo.getEndTime(),"yyyy/MM/dd"));
+        }
+        if (ObjectUtils.isNotNull(bo.getTenantId())){
+            params.put("orgid", bo.getTenantId().toString());
+        }else {
+            params.put("orgid", "1");
+        }
+        if (ObjectUtils.isNotNull(bo.getCustomerId())){
+            params.put("saleid", bo.getCustomerId().toString());
+        }else {
+            params.put("saleid", "0");
+        }
+        String respone = "";
+        try {
+            respone = HttpUtils.postFormBody(SHARED_CUSTOMER_ORDER, params);
+            if (!respone.contains("\"Status\":true")) {
+                throw new CustomException("公海客户转化排行接口错误");
+            }
+            JSONObject jsonObject = JSONObject.parseObject(respone);
+            Object data = jsonObject.get("Data");
+            if (ObjectUtils.isNotNull(data)){
+                rateVo = JSONObject.parseObject(JSONObject.toJSONString(data), TopConversionRateVo.class);
+                if (CollectionUtils.isNotEmpty(rateVo.get_Data())){
+                    rateVo.get_Data().forEach(item -> {
+                        item.setTbDealRate(item.getTbDealRate().multiply(new BigDecimal("100.00")));
+                        item.setHbDealRate(item.getHbDealRate().multiply(new BigDecimal("100.00")));
+                        item.setZbDealRateStr(item.getZbDealRate().multiply(new BigDecimal("100.00")) + "%");
+                        item.setTbPriceRate(item.getTbPriceRate().multiply(new BigDecimal("100.00")));
+                        item.setHbPriceRate(item.getHbPriceRate().multiply(new BigDecimal("100.00")));
+                        item.setZbPriceRateStr(item.getZbPriceRate().multiply(new BigDecimal("100.00")) + "%");
+                        item.setConverDealRate(item.getConverDealRate().multiply(new BigDecimal("100.00")));
+                    });
+                }
+                tableDataInfo.setRows(rateVo.get_Data());
+                tableDataInfo.setTotal(rateVo.getTotalCount());
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            throw new CustomException("公海客户转化排行接口错误");
+        }
+        return tableDataInfo;
+    }
+
     private List<Long> getDayTime(Long startTime,Long endTime){
         List<Long> tiemList = new ArrayList<>();
         Long zeroTime = DateUtils.getScheduleTimeZeroTime(startTime);

+ 3 - 2
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsMapper.xml

@@ -791,8 +791,9 @@
                  LEFT JOIN goods g ON og.goods_id = g.goods_id
                  LEFT JOIN major m ON g.major_id = m.id
         WHERE o.user_id = #{userId}
-          AND og.pay_status IN (2, 3, 4)
-          AND og.refund_status !=2
+            AND og.pay_status IN (2, 3, 4)
+            AND og.refund_status !=2
+            ORDER BY o.create_time DESC
     </select>
 
     <select id="countUserOrderGoods" parameterType="Long" resultType="com.zhongzheng.modules.goods.vo.UserOrderGoodsVo">