yangdamao 7 месяцев назад
Родитель
Сommit
b797bd92ef

+ 1 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java

@@ -957,7 +957,7 @@ public class CommonController extends BaseController {
 
     @ApiOperation("外部下单接口")
     @PostMapping("/common/free/order")
-    public AjaxResult<Void> commonWithoutOrder(@RequestBody CommonOrderBo bo) {
+    public AjaxResult<List<String>> commonWithoutOrder(@RequestBody CommonOrderBo bo) {
         if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
             throw new CustomException("签名错误");
         }

+ 33 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/SynchronizationController.java

@@ -0,0 +1,33 @@
+package com.zhongzheng.controller.common;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.modules.user.service.IUserService;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 同步旧系统数据专业接口
+ */
+@RestController
+@RequestMapping("/common/synchronization")
+public class SynchronizationController  extends BaseController {
+    private static final Logger log = LoggerFactory.getLogger(SynchronizationController.class);
+
+    @Autowired
+    private IUserService iUserService;
+
+    @ApiOperation("同步用户信息")
+    @GetMapping("user/info/{orgId}")
+    public AjaxResult synchronizationUser(@PathVariable("orgId") Integer orgId) {
+        iUserService.synchronizationUser(orgId);
+        return AjaxResult.success();
+    }
+
+}

+ 11 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/order/OrderController.java

@@ -77,6 +77,17 @@ public class OrderController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 查询订单列表
+     */
+    @ApiOperation("查询订单列表")
+    @GetMapping("/without/list")
+    public TableDataInfo<OrderListVo> withoutOrderList(OrderQueryBo bo) {
+        startPage();
+        List<OrderListVo> list = iOrderService.withoutOrderList(bo);
+        return getDataTable(list);
+    }
+
     @ApiOperation("导出订单列表")
     @GetMapping("/exportList")
     public AjaxResult<OrderListExportVo> exportList(OrderQueryBo bo) {

+ 32 - 0
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/UserServiceImpl.java

@@ -7,6 +7,7 @@ import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -57,6 +58,7 @@ import com.zhongzheng.modules.course.service.IMajorService;
 import com.zhongzheng.modules.exam.service.IExamApplyService;
 import com.zhongzheng.modules.goods.domain.Goods;
 import com.zhongzheng.modules.goods.service.IGoodsService;
+import com.zhongzheng.modules.goods.vo.SynchUserVo;
 import com.zhongzheng.modules.goods.vo.UserNewGoodsVo;
 import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.grade.service.IClassGradeUserService;
@@ -188,6 +190,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
     private String OLD_GOODS;
     @Value("${record.downloadPath}")
     private String RECORD_DOWNLOAD;
+//    @Value("${oldSys.userInfo}")
+    private String OLD_USERINFO;
 
 
     @Override
@@ -2304,6 +2308,34 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
                 .orderByDesc(UserVisitLog::getCreateTime));
     }
 
+    @Override
+    public void synchronizationUser(Integer orgId) {
+        //获取旧系统用户数据信息
+        Map<String, String> params = new HashMap<>();
+        Long nowTime = DateUtils.getNowTime();
+        String sign = ToolsUtils.EncoderByMd5(orgId.toString()+nowTime);
+        params.put("stamp", nowTime.toString());
+        params.put("sign", sign);
+        String respone = "";
+        try {
+            respone = HttpUtils.postFormBody(OLD_USERINFO, params);
+            if (!respone.contains("\"Status\":true")) {
+                throw new CustomException("获取用户接口失败");
+            }
+            JSONObject jsonObject = JSONObject.parseObject(respone);
+            Object data = jsonObject.get("data");
+            if (ObjectUtils.isNotNull(data)){
+                List<SynchUserVo> synchUserVos = JSONArray.parseArray(JSONObject.toJSONString(data), SynchUserVo.class);
+                if (CollectionUtils.isEmpty(synchUserVos)){
+                    throw new CustomException("用户数据解析失败");
+                }
+                //保存用户信息
+            }
+        }catch (Exception e){
+            throw new CustomException(e.getMessage());
+        }
+    }
+
     private String getTelPhone(){
         String mobile = TelPhoneUtils.createMobile();
         int count = count(new LambdaQueryWrapper<User>().eq(User::getIdCard, EncryptHandler.encrypt(mobile)));

+ 23 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/SynchUserVo.java

@@ -0,0 +1,23 @@
+package com.zhongzheng.modules.goods.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class SynchUserVo implements Serializable {
+
+    private String companyname;
+    private String headimagesrc;
+    private String mobile;
+    private Long userid;
+    private String workyears;
+    private String idcardphotosrc2;
+    private String school;
+    private String sex;
+    private String education;
+    private String idcardphotosrc;
+    private String pwd;
+    private String idcode;
+    private String username;
+}

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderMapper.java

@@ -83,4 +83,6 @@ public interface OrderMapper extends BaseMapper<Order> {
     List<OfflineOrderVo> getOfflineOrderList(OfflineOrderBo bo);
 
     List<CommonOrderInfoVo> getCommonOrderInfo(CommonOrderInfoBo bo);
+
+    List<OrderListVo> selectWithoutListByBo(OrderQueryBo bo);
 }

+ 3 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderService.java

@@ -137,7 +137,7 @@ public interface IOrderService extends IService<Order> {
 
 	void handleRepetitionOrder(RepetitionOrderBo bo);
 
-    String commonWithoutOrder(CommonOrderBo bo);
+    List<String> commonWithoutOrder(CommonOrderBo bo);
 
 	List<CommonGradeVo> getCommonGrade(CommonGradeBo bo);
 
@@ -146,4 +146,6 @@ public interface IOrderService extends IService<Order> {
 	boolean checkOfflineOrder(OfflineOrderCheckBo bo);
 
     List<CommonOrderInfoVo> getCommonOrderInfo(CommonOrderInfoBo bo);
+
+	List<OrderListVo> withoutOrderList(OrderQueryBo bo);
 }

+ 39 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -3487,7 +3487,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public String commonWithoutOrder(CommonOrderBo bo) {
+    public List<String> commonWithoutOrder(CommonOrderBo bo) {
+        List<String> orderSns = new ArrayList<>();
         if (CollectionUtils.isEmpty(bo.getOrderBos())){
             throw new CustomException("开单数据为空");
         }
@@ -3555,7 +3556,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             add.setOperationType(2);
             //生成订单号
             String out_trade_no = DateUtils.getDateOrderSn();
-
+            orderSns.add(out_trade_no);
             //订单商品
             Goods goods = iGoodsService.getOne(new LambdaQueryWrapper<Goods>().eq(Goods::getGoodsId, goodsId));
             checkBuyGoods(goods.getGoodsId(), user.getUserId(), goods.getGoodsType());
@@ -3622,7 +3623,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             dealFreeGoods(orderGoods, add);
         }
 
-        return "";
+        return orderSns;
     }
 
     @Override
@@ -3717,6 +3718,41 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return infoVos;
     }
 
+    @Override
+    public List<OrderListVo> withoutOrderList(OrderQueryBo bo) {
+        if (Validator.isNotEmpty(bo.getOrderGoodsStatus())) {
+            if (bo.getOrderGoodsStatus() == -1) {
+                Integer[] orderStatus = new Integer[]{-2, -1};
+                bo.setOrderStatus(orderStatus);
+            } else if (bo.getOrderGoodsStatus() == 0) {
+                bo.setGoodsPayStatus(1);
+            } else if (bo.getOrderGoodsStatus() == 1) {
+                //已支付 sql实现
+            } else if (bo.getOrderGoodsStatus() == 2) {
+                bo.setRefundStatus(2);
+            }
+        }
+        List<OrderListVo> orderListVos = this.baseMapper.selectWithoutListByBo(bo);
+        for (OrderListVo vo : orderListVos) {
+            if (Validator.isNotEmpty(vo.getRebuyOrderGoodsId()) && vo.getRebuyOrderGoodsId().longValue() > 0) {
+                vo.setRebuy(this.baseMapper.getGradePeriod(vo.getRebuyOrderGoodsId(), vo.getUserId()));
+            }
+            //商品订单状态 -1关闭 0待支付 1已支付 2已退款
+            if (Validator.isEmpty(vo.getRefundStatus())) {
+                vo.setOrderGoodsStatus(-1);
+            } else if (vo.getRefundStatus() == 2) {
+                vo.setOrderGoodsStatus(2);
+            } else if (vo.getOrderStatus() < 0) {
+                vo.setOrderGoodsStatus(-1);
+            } else if (vo.getGoodsPayStatus() == 1) {
+                vo.setOrderGoodsStatus(0);
+            } else if (vo.getGoodsPayStatus() > 1) {
+                vo.setOrderGoodsStatus(1);
+            }
+        }
+        return orderListVos;
+    }
+
     /**
      * 根据身份证号码判断性别
      *

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserService.java

@@ -181,4 +181,7 @@ public interface IUserService extends IService<User> {
 	void account_loginOutRecord(UserAppAccountLoginOutBo bo);
 
 	List<UserVisitLog> getControlsRecord(UserRecordQueryBo bo);
+
+    void synchronizationUser(Integer orgId);
+
 }

+ 117 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderMapper.xml

@@ -1041,4 +1041,121 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </if>
     </select>
 
+    <select id="selectWithoutListByBo" parameterType="com.zhongzheng.modules.order.bo.OrderQueryBo" resultMap="OrderResultVo">
+        SELECT
+        o.*,
+        g.goods_id,
+        g.goods_name,
+        g.year,
+        g.cover_url,
+        g.code,
+        g.goods_type,
+        og.goods_price,
+        og.rebuy_order_goods_id,
+        og.order_goods_id,
+        og.goods_real_price,
+        og.offline_refund_sign,
+        u.telphone,
+        u.realname,
+        u.id_card,
+        u.company_name,
+        cet.education_name,
+        cpt.project_name,
+        cb.business_name,
+        s.school_name,
+        m.category_name,
+        og.goods_received,
+        og.refund_status,
+        og.pay_status as goods_pay_status,
+        (select cgu.period_plush from  class_grade_user cgu where cgu.grade_id = og.grade_id and cgu.order_goods_id = og.order_goods_id and cgu.user_id = o.user_id limit 1 ) period_plush,
+        (SELECT oi.invoice_status FROM order_invoice oi LEFT JOIN order_invoice_order oio ON oio.invoice_id = oi.invoice_id WHERE
+        oio.order_goods_id = og.order_goods_id AND oi.period_status != 2 limit 1) invoice_status
+        FROM
+        `order` o
+        LEFT JOIN order_goods og ON o.order_sn = og.order_sn
+        LEFT JOIN goods g ON og.goods_id = g.goods_id
+        LEFT JOIN `user` u ON o.user_id = u.user_id
+        LEFT JOIN course_education_type cet ON g.education_type_id = cet.id
+        LEFT JOIN course_project_type cpt ON g.project_id = cpt.id
+        LEFT JOIN course_business cb ON g.business_id = cb.id
+        LEFT JOIN school s ON s.id = g.school_id
+        LEFT JOIN major m ON g.major_id = m.id
+        WHERE 1=1
+            AND o.order_type = 3
+        <if test="educationTypeId != null and educationTypeId != ''">
+            AND g.education_type_id = #{educationTypeId}
+        </if>
+        <if test="businessId != null and businessId != ''">
+            AND g.business_id = #{businessId}
+        </if>
+        <if test="schoolId != null and schoolId != ''">
+            AND g.school_id = #{schoolId}
+        </if>
+        <if test="majorId != null and majorId != ''">
+            AND g.major_id = #{majorId}
+        </if>
+        <if test="orderSn != null and orderSn != ''">
+            AND o.order_sn = #{orderSn}
+        </if>
+        <if test="orderStatus != null ">
+            AND o.order_status in
+            <foreach collection="orderStatus" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="status != null ">
+            AND o.status in
+            <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="orderGoodsStatus == 1">
+            AND og.pay_status in (2,3,4) AND og.refund_status != 2
+        </if>
+        <if test="startTime != null">
+            AND o.create_time >= #{startTime}
+        </if>
+        <if test="endTime != null">
+            AND #{endTime} >= o.create_time
+        </if>
+        <if test="payStatus != null">
+            AND o.pay_status = #{payStatus}
+        </if>
+        <if test="goodsPayStatus != null">
+            AND og.pay_status = #{goodsPayStatus}
+        </if>
+        <if test="refundStatus != null">
+            AND og.refund_status = #{refundStatus}
+        </if>
+        <if test="goodsType != null">
+            AND g.goods_type = #{goodsType}
+        </if>
+        <if test="userId != null">
+            AND u.user_id = #{userId}
+            AND og.pay_status in (2,3,4)
+        </if>
+        <if test="inputOrderSn != null">
+            AND o.input_order_sn = #{inputOrderSn}
+        </if>
+        <if test="companyName != null and companyName != ''">
+            AND u.company_name like concat('%', #{companyName}, '%')
+        </if>
+        <if test="searchKey != null and searchKey != ''">
+            AND (u.realname like concat('%', #{searchKey}, '%') or o.order_sn = #{searchKey} or u.id_card = #{searchKey} or g.goods_name like concat('%', #{searchKey}, '%'))
+        </if>
+        <if test="orderGoodsIds != null ">
+            AND og.order_goods_id in
+            <foreach collection="orderGoodsIds" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="orderFroms != null and orderFroms.size()!=0">
+            AND o.order_from in
+            <foreach collection="orderFroms" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        ORDER BY o.order_id DESC
+    </select>
+
 </mapper>