yangdamao 2 jaren geleden
bovenliggende
commit
1a37757d18
33 gewijzigde bestanden met toevoegingen van 375 en 0 verwijderingen
  1. 11 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java
  2. 9 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/goods/GoodsController.java
  3. 8 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/order/OrderController.java
  4. 3 0
      zhongzheng-common/src/main/java/com/zhongzheng/common/core/domain/entity/SysMenu.java
  5. 3 0
      zhongzheng-common/src/main/java/com/zhongzheng/common/core/domain/entity/SysUser.java
  6. 1 0
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/config/SecurityConfig.java
  7. 86 0
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/SysTenantServiceImpl.java
  8. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/domain/CourseEducationType.java
  9. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseEducationTypeMapper.java
  10. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseEducationTypeService.java
  11. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseEducationTypeServiceImpl.java
  12. 21 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsBatchCopyTenantBo.java
  13. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsService.java
  14. 56 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java
  15. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderService.java
  16. 36 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java
  17. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/pay/domain/PaySupply.java
  18. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/pay/mapper/PaySupplyMapper.java
  19. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/pay/service/IPaySupplyService.java
  20. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/pay/service/impl/PaySupplyServiceImpl.java
  21. 17 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/bo/SysTenantAdminBo.java
  22. 30 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/domain/SysTenant.java
  23. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/mapper/SysMenuMapper.java
  24. 7 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/mapper/SysUserMapper.java
  25. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/ISysMenuService.java
  26. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/ISysTenantService.java
  27. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/ISysUserService.java
  28. 10 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/impl/SysMenuServiceImpl.java
  29. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/impl/SysUserServiceImpl.java
  30. 4 0
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseEducationTypeMapper.xml
  31. 4 0
      zhongzheng-system/src/main/resources/mapper/modules/pay/PaySupplyMapper.xml
  32. 12 0
      zhongzheng-system/src/main/resources/mapper/modules/system/SysMenuMapper.xml
  33. 5 0
      zhongzheng-system/src/main/resources/mapper/modules/system/SysUserMapper.xml

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

@@ -35,6 +35,8 @@ import com.zhongzheng.modules.order.domain.OrderGoods;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.order.service.impl.OrderServiceImpl;
+import com.zhongzheng.modules.system.bo.SysTenantAdminBo;
+import com.zhongzheng.modules.system.service.ISysTenantService;
 import com.zhongzheng.modules.system.service.ISysUserService;
 import com.zhongzheng.modules.user.vo.UserExportVo;
 import com.zhongzheng.modules.wx.bo.WxShareGoodsBo;
@@ -87,6 +89,8 @@ public class CommonController
     private IWxPayService iWxPayService;
     @Autowired
     private  IClassGradeService iClassGradeService;
+    @Autowired
+    private ISysTenantService iSysTenantService;
 
     /**
      * 通用下载请求
@@ -286,4 +290,11 @@ public class CommonController
         iWxPayService.shareToOldSys(order,goodsList);
         return AjaxResult.success();
     }
+
+    @ApiOperation("创建新机构后台")
+    @PostMapping("common/create/tenant/admin")
+    public AjaxResult createTenantAdmin(@RequestBody SysTenantAdminBo bo) {
+        iSysTenantService.createTenantAdmin(bo);
+        return AjaxResult.success();
+    }
 }

+ 9 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/goods/GoodsController.java

@@ -320,4 +320,13 @@ public class GoodsController extends BaseController {
     public AjaxResult<Void> addGoodsExamTime(@RequestBody List<BankGoodsExamAddBo> addBo) {
         return toAjax(iQuestionService.addGoodsExamTime(addBo) ? 1 : 0);
     }
+
+    /**
+     * 商品批量复制(新机构)
+     */
+    @ApiOperation("商品批量复制")
+    @PostMapping("/goods/batch/copy")
+    public AjaxResult<Void> goodsBatchCopyTenant(@RequestBody GoodsBatchCopyTenantBo bo) {
+        return toAjax(iGoodsService.goodsBatchCopyTenant(bo) ? 1 : 0);
+    }
 }

+ 8 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/order/OrderController.java

@@ -118,6 +118,14 @@ public class OrderController extends BaseController {
         return AjaxResult.success(iOrderService.resumeSmallOrder(bo));
     }
 
+    @ApiOperation("继续支付公众号订单")
+    @PostMapping("/resumePlaceGzhOrder")
+    public AjaxResult resumePlaceGzhOrder(@RequestBody OrderAddBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        return AjaxResult.success(iOrderService.resumePlaceGzhOrder(bo));
+    }
+
     /**
      * 新增订单
      */

+ 3 - 0
zhongzheng-common/src/main/java/com/zhongzheng/common/core/domain/entity/SysMenu.java

@@ -112,6 +112,9 @@ public class SysMenu implements Serializable
     /** 备注 */
     private String remark;
 
+    /** 备注 */
+    private Long tenantId;
+
     /** 请求参数 */
     @TableField(exist = false)
     private Map<String, Object> params = new HashMap<>();

+ 3 - 0
zhongzheng-common/src/main/java/com/zhongzheng/common/core/domain/entity/SysUser.java

@@ -30,6 +30,7 @@ import java.util.Map;
 @Data
 @NoArgsConstructor
 @Accessors(chain = true)
+@TableName("sys_user")
 public class SysUser implements Serializable
 {
     private static final long serialVersionUID = 1L;
@@ -157,6 +158,8 @@ public class SysUser implements Serializable
     @TableField(exist = false)
     private String roleName;
 
+    private Long tenantId;
+
     /** 上一次登录IP */
     private String preLoginIp;
     /** 上一次登录时间 */

+ 1 - 0
zhongzheng-framework/src/main/java/com/zhongzheng/framework/config/SecurityConfig.java

@@ -127,6 +127,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .antMatchers("/common/rollback/period").anonymous()
                 .antMatchers("/common/get/goods").anonymous()
                 .antMatchers("/common/get/goods/studyUrl").anonymous()
+                .antMatchers("/common/create/tenant/admin").anonymous()
                 .antMatchers("/common/free/**").anonymous()
                 .antMatchers("/common/download**").anonymous()
                 .antMatchers("/common/download/resource**").anonymous()

+ 86 - 0
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/SysTenantServiceImpl.java

@@ -4,9 +4,12 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.Page;
+import com.zhongzheng.common.core.domain.entity.SysMenu;
 import com.zhongzheng.common.core.domain.entity.SysUser;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
@@ -14,17 +17,22 @@ import com.zhongzheng.common.utils.SecurityUtils;
 import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.framework.mybatisplus.CustomTenantLineHandler;
 import com.zhongzheng.modules.system.bo.SysTenantAddBo;
+import com.zhongzheng.modules.system.bo.SysTenantAdminBo;
 import com.zhongzheng.modules.system.bo.SysTenantEditBo;
 import com.zhongzheng.modules.system.bo.SysTenantQueryBo;
 import com.zhongzheng.modules.system.domain.SysTenant;
 import com.zhongzheng.modules.system.mapper.SysTenantMapper;
+import com.zhongzheng.modules.system.service.ISysMenuService;
 import com.zhongzheng.modules.system.service.ISysTenantService;
 import com.zhongzheng.modules.system.service.ISysUserService;
 import com.zhongzheng.modules.system.vo.SysTenantVo;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -41,6 +49,9 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
     @Autowired
     private ISysUserService userService;
 
+    @Autowired
+    private ISysMenuService menuService;
+
     @Override
     public SysTenantVo queryById(Long tenantId){
         SysTenant db = this.baseMapper.selectById(tenantId);
@@ -109,6 +120,81 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
         return this.removeByIds(ids);
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void createTenantAdmin(SysTenantAdminBo bo) {
+        //中正后台企业ID
+        Long tenantId = 867735392558919680L;
+        //设置新机构
+        SysTenant sysTenant = getById(tenantId);
+        sysTenant.setTenantName(bo.getTenantName());
+        //生成tenantId
+        Long newTenantId = createTenantId();
+        sysTenant.setTenantId(newTenantId);
+        if (!save(sysTenant)){
+            throw new CustomException("创建企业失败");
+        }
+        //创建账号
+        SysUser admin = userService.selectUserByTenant("admin",tenantId);
+        admin.setTenantId(newTenantId);
+        admin.setUserId(null);
+        if (!userService.save(admin)){
+            throw new CustomException("创建后台账号失败");
+        }
+        //创建菜单
+        List<SysMenu> list = menuService.listSysMenuByTenant(tenantId);
+        if (CollectionUtils.isEmpty(list)){
+            return;
+        }
+        List<SysMenu> oldMenus = list.stream().map(item -> BeanUtil.toBean(item, SysMenu.class)).collect(Collectors.toList());
+        list.forEach(item -> {
+            item.setMenuId(null);
+            item.setTenantId(newTenantId);
+        });
+        if (!menuService.saveBatch(list)){
+            throw new CustomException("添加菜单失败");
+        }
+        //新菜单
+        List<SysMenu> newMenus = menuService.listSysMenuByTenant(newTenantId);
+        //匹配parent_id
+        for (SysMenu newMenu : newMenus) {
+            if (newMenu.getParentId() == 0){
+                continue;
+            }
+            List<SysMenu> collect = oldMenus.stream().filter(x -> x.getMenuName().equals(newMenu.getMenuName())
+                    && x.getCreateTime().equals(newMenu.getCreateTime()) && x.getOrderNum().equals(newMenu.getOrderNum())).collect(Collectors.toList());
+            if (CollectionUtils.isEmpty(collect) || collect.size() > 1){
+                throw new CustomException("菜单匹配失败:"+newMenu.getMenuName());
+            }
+            SysMenu sysMenu = collect.stream().findFirst().orElse(null);
+            SysMenu parentMenu = oldMenus.stream().filter(x -> x.getMenuId().equals(sysMenu.getParentId())).findFirst().orElse(null);
+            List<SysMenu> collect2 = newMenus.stream().filter(x -> x.getMenuName().equals(parentMenu.getMenuName())
+                    && x.getCreateTime().equals(parentMenu.getCreateTime()) && x.getOrderNum().equals(parentMenu.getOrderNum())).collect(Collectors.toList());
+            if (CollectionUtils.isEmpty(collect2) || collect2.size() > 1){
+                throw new CustomException("菜单匹配失败:"+newMenu.getMenuName());
+            }
+            newMenu.setParentId(collect2.get(0).getMenuId());
+        }
+        //修改父ID
+//        menuService.updateBatchById(newMenus);
+        newMenus.forEach(item -> {
+            menuService.updateParentById(item);
+        });
+
+    }
+
+    private Long createTenantId(){
+        String randomNumeric = RandomStringUtils.randomNumeric(18);
+        int count = count(new LambdaQueryWrapper<SysTenant>()
+                .eq(SysTenant::getTenantId, Long.valueOf(randomNumeric)));
+        if (count == 0){
+            return Long.valueOf(randomNumeric);
+        }else {
+            createTenantId();
+        }
+        return Long.valueOf(randomNumeric);
+    }
+
     private boolean checkNameUnique(SysTenant entity) {
         SysTenant info = getOne(new LambdaQueryWrapper<SysTenant>()
                 .eq(SysTenant::getTenantName,entity.getTenantName())

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/domain/CourseEducationType.java

@@ -43,4 +43,6 @@ private static final long serialVersionUID=1L;
     private Long updateTime;
     /** 排序 */
     private Integer sort;
+
+    private Long tenantId;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseEducationTypeMapper.java

@@ -17,4 +17,6 @@ import java.util.List;
 public interface CourseEducationTypeMapper extends BaseMapper<CourseEducationType> {
    List<CourseEducationTypeVo> selectUserEduList(@Param("userId") Long userId,@Param("goodsType") Integer goodsType);
    List<BaseFilterVo> selectUserAllBusinessList(@Param("userId") Long userId);
+
+    CourseEducationType getEducationTypeBytenant(@Param("encoder") String encoder,@Param("newTenantId") Long newTenantId);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseEducationTypeService.java

@@ -54,4 +54,6 @@ public interface ICourseEducationTypeService extends IService<CourseEducationTyp
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    CourseEducationType getEducationTypeBytenant(String encoder, Long newTenantId);
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseEducationTypeServiceImpl.java

@@ -183,4 +183,9 @@ public class CourseEducationTypeServiceImpl extends ServiceImpl<CourseEducationT
         }
         return this.removeByIds(ids);
     }
+
+    @Override
+    public CourseEducationType getEducationTypeBytenant(String encoder, Long newTenantId) {
+        return baseMapper.getEducationTypeBytenant(encoder,newTenantId);
+    }
 }

+ 21 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsBatchCopyTenantBo.java

@@ -0,0 +1,21 @@
+package com.zhongzheng.modules.goods.bo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author yangdamao
+ * @date 2022年12月28日 9:28
+ */
+@Data
+public class GoodsBatchCopyTenantBo implements Serializable {
+
+    @ApiModelProperty("机构ID")
+    private Long tenantId;
+
+    @ApiModelProperty("商品IDS")
+    private List<Long> goodsIds;
+}

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsService.java

@@ -102,4 +102,7 @@ public interface IGoodsService extends IService<Goods> {
     List<UserGoodsListVo> getUserGoodsList(UserGoodsListBo bo);
 
     String getGoodsStudyUrl(GoodsStudyUrlBo bo);
+
+    boolean goodsBatchCopyTenant(GoodsBatchCopyTenantBo bo);
+
 }

+ 56 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -3,6 +3,7 @@ package com.zhongzheng.modules.goods.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUtil;
 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.JSONObject;
@@ -34,6 +35,8 @@ import com.zhongzheng.modules.grade.vo.ClassGradeVo;
 import com.zhongzheng.modules.grade.vo.SyncGoodsExport;
 import com.zhongzheng.modules.order.domain.OrderGoods;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
+import com.zhongzheng.modules.pay.domain.PaySupply;
+import com.zhongzheng.modules.pay.service.IPaySupplyService;
 import com.zhongzheng.modules.system.domain.SysConfig;
 import com.zhongzheng.modules.system.service.ISysConfigService;
 import com.zhongzheng.modules.user.bo.SubjectStudyRecordQueryBo;
@@ -132,6 +135,9 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
     @Autowired
     private RedisCache redisCache;
 
+    @Autowired
+    private IPaySupplyService iPaySupplyService;
+
     @Override
     public GoodsVo queryById(Long goodsId) {
         Goods db = this.baseMapper.selectById(goodsId);
@@ -992,6 +998,56 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
         return url;
     }
 
+    @Override
+    public boolean goodsBatchCopyTenant(GoodsBatchCopyTenantBo bo) {
+        //获取商品信息
+        List<Goods> goodsList = list(new LambdaQueryWrapper<Goods>()
+                .in(CollectionUtils.isNotEmpty(bo.getGoodsIds()), Goods::getGoodsId, bo.getGoodsIds()));
+        if (CollectionUtils.isEmpty(goodsList)){
+            return true;
+        }
+        Long tenantId = 867735392558919680L;
+        Long newTenantId = bo.getTenantId();
+        List<Goods> oldGoodsList = goodsList.stream().map(x -> BeanUtil.toBean(x, Goods.class)).collect(Collectors.toList());
+        for (Goods goods : goodsList) {
+            //供应方ID
+            if (ObjectUtil.isNotNull(goods.getSupplyId())){
+                PaySupply supply = iPaySupplyService.getById(goods.getSupplyId());
+                if (ObjectUtils.isNotNull(supply)){
+                    //新机构是否存在
+                    PaySupply newSupply = iPaySupplyService.getSupplyByTenant(supply.getSupplyName(),newTenantId);
+                    if (ObjectUtil.isNotNull(newSupply)){
+                        goods.setSupplyId(newSupply.getSupplyId());
+                    }else {
+                        supply.setSupplyId(null);
+                        supply.setTenantId(newTenantId);
+                        iPaySupplyService.save(supply);
+                        goods.setSupplyId(supply.getSupplyId());
+                    }
+                }
+            }
+
+            //教育类型
+            if (ObjectUtil.isNotNull(goods.getEducationTypeId())){
+                CourseEducationType type = iCourseEducationTypeService.getById(goods.getEducationTypeId());
+                if (ObjectUtil.isNotNull(type)){
+                    CourseEducationType newType = iCourseEducationTypeService.getEducationTypeBytenant(type.getEncoder(),newTenantId);
+                    if (ObjectUtil.isNotNull(newType)){
+                        goods.setEducationTypeId(newType.getId());
+                    }else {
+                        type.setId(null);
+                        type.setTenantId(newTenantId);
+                        iCourseEducationTypeService.save(type);
+                        goods.setEducationTypeId(type.getId());
+                    }
+                }
+            }
+            
+
+        }
+        return false;
+    }
+
     /**
      * 获取商品规格模板列表
      *

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderService.java

@@ -73,6 +73,8 @@ public interface IOrderService extends IService<Order> {
 
 	Map<String, String> resumeSmallOrder(OrderAddBo bo);
 
+	Map<String, String>  resumePlaceGzhOrder(OrderAddBo bo);
+
 	/**
 	 * 根据编辑业务对象修改订单
 	 * @param bo 订单编辑业务对象
@@ -111,4 +113,6 @@ public interface IOrderService extends IService<Order> {
 	boolean arrangeGrade(String goodsName, Long goodsId, Long orderGoodsId, Long gradeId, Long userId, String orderSn, Long businessId);
 
 
+
+
 }

+ 36 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -1230,6 +1230,42 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return payResult;
     }
 
+    @Override
+    public Map<String, String> resumePlaceGzhOrder(OrderAddBo bo) {
+        if (bo.getOrderSn() == null) {
+            throw new CustomException("订单数据错误");
+        }
+        Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, bo.getOrderSn()));
+        String body = "";
+        if (order != null && order.getOrderStatus() == 0) {
+            Map<String, Object> map = new HashMap<>();
+            map.put("order_sn", bo.getOrderSn());
+            List<OrderGoods> goodsList = iOrderGoodsService.listByMap(map);
+            for (OrderGoods g : goodsList) {
+                Goods goods = iGoodsService.getOne(new LambdaQueryWrapper<Goods>().eq(Goods::getGoodsId, g.getGoodsId()));
+                if (goods.getGoodsStatus() != 1) {
+                    throw new CustomException(goods.getGoodsName()+"商品已下架,请重新选择商品下单");
+                }
+                body = "中正祥粤云-" + goods.getGoodsName();
+                break;
+            }
+        } else {
+            throw new CustomException("无法继续支付");
+        }
+        UserVo userVo = iUserService.queryById(bo.getUserId());
+        //生成支付单号
+        String pay_no = DateUtils.getPayOrderSn();
+        OrderPayAddBo payAddBo = new OrderPayAddBo();
+        payAddBo.setPaySn(pay_no);
+        payAddBo.setOrderSn(bo.getOrderSn());
+        payAddBo.setStatus(0);
+        payAddBo.setPayPrice(order.getPayPrice());
+        iOrderPayService.insertByAddBo(payAddBo);
+        Map<String, String> payResult = iWxPayService.paymentGzh(pay_no, userVo.getGzhOpenId(), body, order.getPayPrice(),bo.getUrl());
+        payResult.put("orderSn", bo.getOrderSn());
+        return payResult;
+    }
+
 
     @Override
     public Boolean updateByEditBo(OrderEditBo bo) {

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/pay/domain/PaySupply.java

@@ -40,4 +40,5 @@ private static final long serialVersionUID=1L;
     private String supplyName;
     /** 服务类型ID */
     private Long serverId;
+    private Long tenantId;
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/pay/mapper/PaySupplyMapper.java

@@ -1,9 +1,11 @@
 package com.zhongzheng.modules.pay.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.zhongzheng.modules.pay.bo.PaySupplyQueryBo;
 import com.zhongzheng.modules.pay.domain.PaySupply;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.pay.vo.PaySupplyVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.Collection;
 
@@ -16,4 +18,7 @@ import java.util.Collection;
 public interface PaySupplyMapper extends BaseMapper<PaySupply> {
 
     Collection<PaySupplyVo> queryList(PaySupplyQueryBo bo);
+
+    @InterceptorIgnore(tenantLine = "true")
+    PaySupply getSupplyByTenant(@Param("supplyName") String supplyName,@Param("newTenantId") Long newTenantId);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/pay/service/IPaySupplyService.java

@@ -49,4 +49,6 @@ public interface IPaySupplyService extends IService<PaySupply> {
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    PaySupply getSupplyByTenant(String supplyName, Long newTenantId);
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/pay/service/impl/PaySupplyServiceImpl.java

@@ -124,4 +124,9 @@ public class PaySupplyServiceImpl extends ServiceImpl<PaySupplyMapper, PaySupply
         }
         return this.removeByIds(ids);
     }
+
+    @Override
+    public PaySupply getSupplyByTenant(String supplyName, Long newTenantId) {
+        return baseMapper.getSupplyByTenant(supplyName,newTenantId);
+    }
 }

+ 17 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/bo/SysTenantAdminBo.java

@@ -0,0 +1,17 @@
+package com.zhongzheng.modules.system.bo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2022年12月27日 9:44
+ */
+@Data
+public class SysTenantAdminBo implements Serializable {
+
+    @ApiModelProperty("机构名称")
+    private String tenantName;
+}

+ 30 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/domain/SysTenant.java

@@ -42,4 +42,34 @@ private static final long serialVersionUID=1L;
     /** 名称 */
     private String tenantName;
 
+    private Integer companyTypeId;
+
+    private Integer companySizeId;
+
+    private Integer industryTypeId;
+
+    private String industryTypeName;
+
+    private String companyIntroduce;
+
+    private String logoUrl;
+
+    private String licenseUrl;
+
+    private String societyCode;
+
+    private String province;
+
+    private String city;
+
+    private String district;
+
+    private String address;
+
+    private String companyPh;
+
+    private String linkMan;
+
+    private String postBox;
+
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/mapper/SysMenuMapper.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.system.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.common.core.domain.entity.SysMenu;
 import org.apache.ibatis.annotations.Param;
@@ -60,4 +61,9 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
      */
     public List<Integer> selectMenuListByRoleId(@Param("roleId") Long roleId, @Param("menuCheckStrictly") boolean menuCheckStrictly);
 
+    @InterceptorIgnore(tenantLine = "true")
+    List<SysMenu> listSysMenuByTenant(Long tenantId);
+
+    @InterceptorIgnore(tenantLine = "true")
+    Integer updateParentById(@Param("newMenus") SysMenu newMenus);
 }

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/mapper/SysUserMapper.java

@@ -1,8 +1,10 @@
 package com.zhongzheng.modules.system.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.common.core.domain.entity.SysUser;
 import com.zhongzheng.modules.course.bo.CourseBusinessQueryBo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -38,4 +40,9 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
      */
     public SysUser selectUserById(Long userId);
 
+    @InterceptorIgnore(tenantLine = "true")
+    public SysUser selectUserByTenant(@Param("userName") String userName,@Param("tenantId") Long tenantId);
+
+    @InterceptorIgnore(tenantLine = "true")
+    Integer saveSysUser(SysUser admin);
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/ISysMenuService.java

@@ -134,4 +134,8 @@ public interface ISysMenuService extends IService<SysMenu> {
      * @return 结果
      */
     public String checkMenuNameUnique(SysMenu menu);
+
+    List<SysMenu> listSysMenuByTenant(Long tenantId);
+
+    Integer updateParentById(SysMenu newMenus);
 }

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

@@ -3,6 +3,7 @@ package com.zhongzheng.modules.system.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zhongzheng.modules.system.bo.SysTenantAddBo;
+import com.zhongzheng.modules.system.bo.SysTenantAdminBo;
 import com.zhongzheng.modules.system.bo.SysTenantEditBo;
 import com.zhongzheng.modules.system.bo.SysTenantQueryBo;
 import com.zhongzheng.modules.system.domain.SysTenant;
@@ -50,4 +51,6 @@ public interface ISysTenantService extends IService<SysTenant> {
 	 * @return
 	 */
 	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    void createTenantAdmin(SysTenantAdminBo bo);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/ISysUserService.java

@@ -30,6 +30,8 @@ public interface ISysUserService extends IService<SysUser> {
      */
     public SysUser selectUserByUserName(String userName);
 
+    public SysUser selectUserByTenant(String userName,Long tenantId);
+
     /**
      * 通过用户ID查询用户
      *

+ 10 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/impl/SysMenuServiceImpl.java

@@ -289,6 +289,16 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
         return UserConstants.UNIQUE;
     }
 
+    @Override
+    public List<SysMenu> listSysMenuByTenant(Long tenantId) {
+        return baseMapper.listSysMenuByTenant(tenantId);
+    }
+
+    @Override
+    public Integer updateParentById(SysMenu newMenus) {
+        return baseMapper.updateParentById(newMenus);
+    }
+
     /**
      * 获取路由名称
      *

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/impl/SysUserServiceImpl.java

@@ -101,6 +101,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return baseMapper.selectUserByUserName(userName);
     }
 
+    @Override
+    public SysUser selectUserByTenant(String userName,Long tenantId) {
+        return baseMapper.selectUserByTenant(userName,tenantId);
+    }
+
     /**
      * 通过用户ID查询用户
      *
@@ -491,4 +496,5 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         baseMapper.updateById(user);
         return user;
     }
+
 }

+ 4 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/CourseEducationTypeMapper.xml

@@ -99,4 +99,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     </select>
 
+    <select id="getEducationTypeBytenant" parameterType="map" resultType="com.zhongzheng.modules.course.domain.CourseEducationType">
+        SELECT * from course_education_type where encoder = #{encoder} and tenant_id = #{newTenantId}
+    </select>
+
 </mapper>

+ 4 - 0
zhongzheng-system/src/main/resources/mapper/modules/pay/PaySupplyMapper.xml

@@ -42,4 +42,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </if>
         order by s.update_time desc
     </select>
+
+    <select id="getSupplyByTenant" parameterType="map"  resultType="com.zhongzheng.modules.pay.domain.PaySupply">
+        SELECT * FROM pay_supply where supply_name = #{supplyName} and tenant_id = #{newTenantId}
+    </select>
 </mapper>

+ 12 - 0
zhongzheng-system/src/main/resources/mapper/modules/system/SysMenuMapper.xml

@@ -125,6 +125,18 @@
         order by m.parent_id, m.order_num
     </select>
 
+    <select id="listSysMenuByTenant" parameterType="java.lang.Long" resultType="com.zhongzheng.common.core.domain.entity.SysMenu">
+        select * from sys_menu where tenant_id = #{tenantId}
+    </select>
+
+    <update id="updateParentById" parameterType="com.zhongzheng.common.core.domain.entity.SysMenu" >
+            update sys_menu
+            <set>
+                parent_id=#{newMenus.parentId}
+            </set>
+            where menu_id = #{newMenus.menuId}
+    </update>
+
     <select id="selectMenuPerms" resultType="String">
         select distinct m.perms
         from sys_menu m

+ 5 - 0
zhongzheng-system/src/main/resources/mapper/modules/system/SysUserMapper.xml

@@ -149,6 +149,11 @@
         where u.user_id = #{userId}
     </select>
 
+    <select id="selectUserByTenant" parameterType="map" resultMap="SysUserResult">
+        <include refid="selectUserVo"/>
+        where u.user_name = #{userName} and u.`status` != -1 and u.tenant_id = #{tenantId}
+    </select>
+
     <select id="queryBusinessPeopleList" parameterType="com.zhongzheng.modules.course.bo.CourseBusinessQueryBo"  resultMap="SysUserResult">
         SELECT
             u.*