Преглед на файлове

Merge remote-tracking branch 'origin/feature/0721-tenant' into feature/0721-tenant

zouxuan преди 2 години
родител
ревизия
55741ddc05
променени са 15 файла, в които са добавени 496 реда и са изтрити 34 реда
  1. 82 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TenantInfoController.java
  2. 39 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TenantUnbindRecordController.java
  3. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherSearch.java
  4. 6 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TenantInfo.java
  5. 19 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/mapper/TenantInfoMapper.java
  6. 9 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TenantInfoService.java
  7. 12 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java
  8. 107 15
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantInfoServiceImpl.java
  9. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherHomeVo.java
  10. 71 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantInfoWrapper.java
  11. 17 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantUnbindRecordWrapper.java
  12. 20 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/teacher/TeacherWrapper.java
  13. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  14. 79 4
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TenantInfoMapper.xml
  15. 23 0
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TeacherController.java

+ 82 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TenantInfoController.java

@@ -0,0 +1,82 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
+import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
+import com.yonge.cooleshow.biz.dal.wrapper.TenantInfoWrapper;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.base.page.PageInfo;
+import com.yonge.toolset.base.util.StringUtil;
+import com.yonge.toolset.mybatis.support.PageUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * @Author:haonan
+ * @Date:2023/7/24 9:57
+ * @Filename:TenantInfoController
+ */
+@RestController
+@RequestMapping("/tenantInfo")
+@Api(value = "机构管理", tags = "机构管理")
+public class TenantInfoController extends BaseController {
+
+    @Autowired
+    TenantInfoService tenantInfoService;
+
+    /**
+     * 查询分页
+     * @param query
+     */
+    @PostMapping("/page")
+    @ApiOperation(value = "查询分页", notes = "TenantInfo")
+    @PreAuthorize("@pcs.hasPermissions('tenantInfo/page')")
+        public HttpResponseResult<PageInfo<TenantInfoWrapper.TenantInfo>> page(@RequestBody TenantInfoWrapper.TenantInfoQuery query) {
+
+        IPage<TenantInfoWrapper.TenantInfo> pages = tenantInfoService.selectPage(PageUtil.getPage(query), query);
+        return succeed(PageUtil.pageInfo(pages));
+    }
+
+    /**
+     * 修改数据
+     */
+    @PostMapping("/update")
+    @ApiOperation(value = "修改", notes = "传入TenantInfo")
+    @PreAuthorize("@pcs.hasPermissions('tenantInfo/update')")
+    public HttpResponseResult<Boolean> updateTenantInfo(@Valid @RequestBody  TenantInfo info) {
+        return tenantInfoService.updateTenantInfo(info);
+    }
+
+
+    /**
+     * 插入数据
+     */
+    @PostMapping("/insert")
+    @ApiOperation(value = "更新", notes = "传入TenantInfo")
+    @PreAuthorize("@pcs.hasPermissions('tenantInfo/insert')")
+    public HttpResponseResult<Boolean> insertTenantInfo(@Validated(TenantInfo.class) @RequestBody TenantInfo info) {
+        return tenantInfoService.add(info);
+    }
+
+
+    /**
+     * 冻结
+     */
+    @PostMapping("/state")
+    @ApiOperation(value = "冻结", notes = "传入id和布尔类型")
+    @PreAuthorize("@pcs.hasPermissions('tenantInfo/state')")
+    public HttpResponseResult<Boolean> state( @RequestBody TenantInfoWrapper.TenantInfoQuery query) {
+        if (StringUtil.isEmpty(query.getId())) {
+            return failed("参数不能为空");
+        }
+        return status(tenantInfoService.state(query));
+    }
+
+}

+ 39 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TenantUnbindRecordController.java

@@ -3,12 +3,18 @@ package com.yonge.cooleshow.admin.controller;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.microsvc.toolkit.common.response.paging.PageInfo;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.biz.dal.entity.SysArea;
+import com.yonge.cooleshow.biz.dal.entity.TenantUnbindRecord;
+import com.yonge.cooleshow.biz.dal.service.EmployeeService;
 import com.yonge.cooleshow.biz.dal.service.SysAreaService;
 import com.yonge.cooleshow.biz.dal.service.TenantUnbindRecordService;
+import com.yonge.cooleshow.biz.dal.vo.EmployeeVo;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantUnbindRecordWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.enums.UserLockFlag;
+import com.yonge.toolset.base.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -40,6 +46,12 @@ public class TenantUnbindRecordController extends BaseController {
     @Autowired
     private SysAreaService sysAreaService;
 
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @Autowired
+    private EmployeeService employeeService;
+
 
     @ApiOperation(value = "查询分页", notes = "机构解绑申请记录- 传入 TenantUnbindRecordVo.TenantUnbindRecordQuery")
     @PostMapping("/page")
@@ -70,5 +82,32 @@ public class TenantUnbindRecordController extends BaseController {
         return succeed(QueryInfo.pageInfo(pages, pages.getRecords()));
     }
 
+    @ApiOperation(value = "审核")
+    @PostMapping("/audit")
+    public HttpResponseResult<Boolean> audit(@RequestBody TenantUnbindRecordWrapper.Audio audio) {
+        if (sysUserFeignService.queryUserInfo() == null) {
+            throw new BizException("请登录");
+        }
+        EmployeeVo employeeVo = employeeService.detail(sysUserFeignService.queryUserInfo().getId());
+        if (employeeVo == null || UserLockFlag.LOCKED.equals(employeeVo.getLockFlag())) {
+            throw new BizException("权限不足");
+        }
+
+        if (audio.getId() == null || audio.getStatus() == null) {
+            throw new BizException("参数错误");
+        }
+
+        boolean update = tenantUnbindRecordService.lambdaUpdate()
+                .set(TenantUnbindRecord::getStatus, audio.getStatus() ? "PASS" : "UNPASS")
+                .set(TenantUnbindRecord::getReason, audio.getReason())
+                .set(TenantUnbindRecord::getVerifyUserId, sysUserFeignService.queryUserInfo().getId())
+                .eq(TenantUnbindRecord::getId, audio.getId())
+                .eq(TenantUnbindRecord::getStatus, "DOING").update();
+        if (!update) {
+            throw new BizException("审核失败,请刷新后重试");
+        }
+        return succeed();
+    }
+
 
 }

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/TeacherSearch.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yonge.cooleshow.common.enums.ESettlementFrom;
 import com.yonge.cooleshow.common.enums.UserLockFlag;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.page.QueryInfo;
@@ -66,7 +67,7 @@ public class TeacherSearch extends QueryInfo{
 	private Long tenantId;
 
 	@ApiModelProperty("结算方式")
-	private String settlementFrom;
+	private ESettlementFrom settlementFrom;
 
 	@ApiModelProperty(value = "排序方式, 默认 create_time_ desc", hidden = true)
 	private String orderBy;

+ 6 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TenantInfo.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.yonge.toolset.base.page.QueryInfo;
 import lombok.Data;
 
 import io.swagger.annotations.ApiModel;
@@ -20,7 +21,7 @@ import java.util.Date;
 @Data
 @ApiModel(" TenantInfo-机构表")
 @TableName("tenant_info")
-public class TenantInfo implements Serializable {
+public class TenantInfo  implements Serializable  {
 
     @ApiModelProperty("主键ID")
     @TableId(value = "id_")
@@ -70,4 +71,8 @@ public class TenantInfo implements Serializable {
     @TableField(value = "create_time_")
     private Date createTime;
 
+    @ApiModelProperty("简介")
+    @TableField(value = "brief_introduction_")
+    private String briefIntroduction;
+
 }

+ 19 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/mapper/TenantInfoMapper.java

@@ -22,6 +22,23 @@ public interface TenantInfoMapper extends BaseMapper<TenantInfo> {
 	 * @param param TenantInfoWrapper.TenantInfoQuery
 	 * @return List<TenantInfoWrapper.TenantInfo>
 	 */
-	List<TenantInfo> selectPage(@Param("page") IPage<TenantInfo> page, @Param("param") TenantInfoWrapper.TenantInfoQuery param);
-	
+	List<TenantInfoWrapper.TenantInfo> selectPage(@Param("page") IPage<TenantInfoWrapper.TenantInfo> page, @Param("param") TenantInfoWrapper.TenantInfoQuery param);
+
+	/**
+	 * 更新
+	 * @param info
+	 * @return
+	 */
+	Boolean updateInfo(@Param("param") TenantInfo info);
+
+
+	/**
+	 * 冻结
+	 * @param id
+	 */
+	Boolean updateFlag(@Param("id") Integer id);
+
+	Boolean updateMethod(@Param("id") Integer id);
+
+	Boolean insertInfo(@Param("param") TenantInfo tenantInfo);
 }

+ 9 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TenantInfoService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantInfoWrapper;
 import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
 
 import java.util.List;
 import java.util.Map;
@@ -27,21 +28,21 @@ public interface TenantInfoService extends IService<TenantInfo>  {
      * @param query TenantInfoWrapper.TenantInfoQuery
      * @return IPage<TenantInfo>
      */
-    IPage<TenantInfo> selectPage(IPage<TenantInfo> page, TenantInfoWrapper.TenantInfoQuery query);
+    IPage<TenantInfoWrapper.TenantInfo> selectPage(IPage<TenantInfoWrapper.TenantInfo> page, TenantInfoWrapper.TenantInfoQuery query);
 	
     /**
      * 添加
      * @param tenantInfo TenantInfoWrapper.TenantInfo
      * @return Boolean
      */
-     Boolean add(TenantInfoWrapper.TenantInfo tenantInfo);   
+    HttpResponseResult<Boolean> add(TenantInfo tenantInfo);
 
     /**
      * 更新
-     * @param tenantInfo TenantInfoWrapper.TenantInfo
+     * @param info TenantInfoWrapper.TenantInfo
      * @return Boolean
      */
-     Boolean update(TenantInfoWrapper.TenantInfo tenantInfo);
+    HttpResponseResult<Boolean> updateTenantInfo(TenantInfo info);
 
     /**
      * 机构信息
@@ -49,4 +50,8 @@ public interface TenantInfoService extends IService<TenantInfo>  {
      * @param tenantIds 机构ID
      */
     Map<Long,TenantInfo> getMapByIds(List<Long> tenantIds);
+
+    HttpResponseResult<Boolean> submit(TenantInfoWrapper.TenantInfoQuery query);
+
+    Boolean state(TenantInfoWrapper.TenantInfoQuery query);
 }

+ 12 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java

@@ -131,6 +131,15 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         }
         String teacherType = TeacherTypeEnum.getTeacherType(detail.getEntryFlag(), detail.getMusicianFlag());
         detail.setTeacherType(teacherType);
+        Long tenantId = detail.getTenantId();
+        if (tenantId != null) {
+            if (tenantId == -1) {
+                detail.setTenantName("平台老师");
+            } else {
+                TenantInfo tenantInfo = tenantInfoService.detail(tenantId);
+                detail.setTenantName(tenantInfo == null ? "" : tenantInfo.getName());
+            }
+        }
         return detail;
     }
 
@@ -356,6 +365,8 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         if (null == teacher) {
             teacher = new Teacher();
             teacher.setUserId(teacherSubmitReq.getUserId());
+            // 新增老师默认结算给机构
+            teacherSubmitReq.setSettlementFrom(ESettlementFrom.TENANT);
             teacher = getTeacherDetil(teacher, teacherSubmitReq);
             baseMapper.insert(teacher);
 
@@ -464,7 +475,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         teacher.setTenantId(teacherSubmitReq.getTenantId() == null ? -1L : teacherSubmitReq.getTenantId());
         if (teacher.getTenantId() == -1L) {
             teacher.setSettlementFrom(ESettlementFrom.TEACHER);
-        } else {
+        } else if (teacherSubmitReq.getIsSettlement() != null) {
             teacher.setSettlementFrom(teacherSubmitReq.getSettlementFrom());
         }
         if (StringUtil.isEmpty(teacherSubmitReq.getTeacherType())) {

+ 107 - 15
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantInfoServiceImpl.java

@@ -3,7 +3,12 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.biz.dal.entity.SysArea;
+import com.yonge.cooleshow.biz.dal.service.SysAreaService;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.base.exception.BizException;
 import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.BeanUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -12,9 +17,7 @@ import com.yonge.cooleshow.biz.dal.wrapper.TenantInfoWrapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantInfoMapper;
 import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -24,6 +27,13 @@ import java.util.stream.Collectors;
 @Slf4j
 @Service
 public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantInfo> implements TenantInfoService {
+    @Autowired
+    SysAreaService sysAreaService;
+
+    @Autowired
+    TenantInfoMapper tenantInfoMapper;
+
+
 
 	/**
      * 查询详情
@@ -46,32 +56,60 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
      * @return IPage<TenantInfo>
      */
     @Override
-    public IPage<TenantInfo> selectPage(IPage<TenantInfo> page, TenantInfoWrapper.TenantInfoQuery query) {
-        
-        return page.setRecords(baseMapper.selectPage(page, query));
+    public IPage<TenantInfoWrapper.TenantInfo> selectPage(IPage<TenantInfoWrapper.TenantInfo> page, TenantInfoWrapper.TenantInfoQuery query) {
+
+        //分页查询
+        List<TenantInfoWrapper.TenantInfo> tenantInfos = baseMapper.selectPage(page, query);
+        //获取省市区信息
+        List<Integer> areaCodeList = tenantInfos.stream().map(next -> {
+            Set<Integer> codes = new HashSet<>();
+            codes.add(next.getCityCode());
+            codes.add(next.getProvinceCode());
+            codes.add(next.getRegionCode());
+            return codes;
+        }).flatMap(Collection::stream).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+
+        Map<Integer, String> codeNameMap = new HashMap<>();
+
+        if (!CollectionUtils.isEmpty(areaCodeList)) {
+            List<SysArea> sysAreaList = sysAreaService.queryByCodes(areaCodeList);
+            codeNameMap = sysAreaList.stream().collect(Collectors.toMap(SysArea::getCode,
+                    SysArea::getName));
+        }
+
+        for (TenantInfoWrapper.TenantInfo next : tenantInfos) {
+            next.setProvinceName(codeNameMap.getOrDefault(next.getProvinceCode(), ""));
+            next.setCityName(codeNameMap.getOrDefault(next.getCityCode(), ""));
+            next.setRegionName(codeNameMap.getOrDefault(next.getRegionCode(), ""));
+//            next.setSchoolName(schoolIdNameMap.getOrDefault(next.getSchoolId(), ""));
+        }
+        return page.setRecords(tenantInfos);
     }
-	
+
     /**
      * 添加
      * @param tenantInfo TenantInfoWrapper.TenantInfo
      * @return Boolean
      */
     @Override
+    public HttpResponseResult<Boolean> add(TenantInfo tenantInfo) {
+        Boolean bool = tenantInfoMapper.insertInfo(tenantInfo);
+        return HttpResponseResult.succeed(bool);
+    }
+	
+
+    /*@Override
     public Boolean add(TenantInfoWrapper.TenantInfo tenantInfo) {    	
         
         return this.save(JSON.parseObject(tenantInfo.jsonString(), TenantInfo.class));
-    }
+    }*/
 
-    /**
-     * 更新
-     * @param tenantInfo TenantInfoWrapper.TenantInfo
-     * @return Boolean
-     */
-    @Override
+
+    /*@Override
     public Boolean update(TenantInfoWrapper.TenantInfo tenantInfo){
 
         return this.updateById(JSON.parseObject(tenantInfo.jsonString(), TenantInfo.class));       
-    }
+    }*/
 
     /**
      * 机构信息
@@ -91,4 +129,58 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
         }
         return list.stream().collect(Collectors.toMap(TenantInfo::getId, tenantInfo -> tenantInfo));
     }
+
+    @Override
+    public HttpResponseResult<Boolean> submit(TenantInfoWrapper.TenantInfoQuery query) {
+        return null;
+    }
+
+    /**
+     * 冻结
+     * @param query TenantInfoWrapper.TenantInfo
+     * @return Boolean
+     */
+    @Override
+    public Boolean state(TenantInfoWrapper.TenantInfoQuery query) {
+        Boolean flag;
+        Integer id = query.getId();
+        long longId = id.longValue();
+        TenantInfo info = detail(longId);
+
+        //TenantInfo info = this.getById(id);
+        if (Objects.isNull(info)) {
+            throw new BizException("机构信息不存在");
+        }
+        //获取是否冻结
+         if (query.getIfFreeze() == 1){
+             if (!info.getEnableFlag()){
+                 return false;
+             }
+             //修改机构账号冻结状态
+              flag = tenantInfoMapper.updateFlag(id);
+             //是否更改结算方式
+             if (query.getIfMethod() == 1){
+                 tenantInfoMapper.updateMethod(id);
+             }else {
+                 return true;
+             }
+         }
+         else {
+             return false;
+         }
+        return flag;
+    }
+
+    /**
+     * 更新
+     * @param info TenantInfoWrapper.TenantInfo
+     * @return Boolean
+     */
+    @Override
+    public HttpResponseResult<Boolean> updateTenantInfo(TenantInfo info) {
+        Boolean bool = tenantInfoMapper.updateInfo(info);
+        return HttpResponseResult.succeed(bool);
+    }
+
+
 }

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherHomeVo.java

@@ -23,6 +23,8 @@ public class TeacherHomeVo extends Teacher implements Serializable {
     private static final long serialVersionUID = 1L;
     @ApiModelProperty("头像地址")
     private String heardUrl;
+    @ApiModelProperty("机构名称")
+    private String tenantName;
     @ApiModelProperty("老师昵称")
     private String username;
     @ApiModelProperty("星级")
@@ -85,6 +87,13 @@ public class TeacherHomeVo extends Teacher implements Serializable {
     @ApiModelProperty(value = "IM用户ID")
     private String imUserId;
 
+    public String getTenantName() {
+        return tenantName;
+    }
+
+    public void setTenantName(String tenantName) {
+        this.tenantName = tenantName;
+    }
 
     public String getDefaultSubjectName() {
         return defaultSubjectName;

+ 71 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantInfoWrapper.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.wrapper;
 
 import com.alibaba.fastjson.JSON;
-import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.util.Optional;
@@ -24,16 +24,34 @@ public class TenantInfoWrapper {
     @NoArgsConstructor
     @AllArgsConstructor
     @ApiModel(" TenantInfoQuery-机构表")
-    public static class TenantInfoQuery implements QueryInfo {
+    public static class TenantInfoQuery  extends QueryInfo {
+        @ApiModelProperty("id")
+        private Integer id;
+
+        @ApiModelProperty("是否冻结")
+        private Integer ifFreeze;
+
+        @ApiModelProperty("是否更改结算方式")
+        private Integer ifMethod;
     
     	@ApiModelProperty("当前页")
-        private Integer page;
+        private int page;
         
         @ApiModelProperty("分页行数")
-        private Integer rows;
+        private int rows;
         
         @ApiModelProperty("关键字匹配")
 		private String keyword;
+
+        @ApiModelProperty("省份编码")
+        private Integer provinceCode;
+
+        @ApiModelProperty("城市编码")
+        private Integer cityCode;
+
+        @ApiModelProperty("地区街道编码")
+        private Integer regionCode;
+
         
         public String getKeyword() {
             return Optional.ofNullable(keyword).filter(StringUtils::isNotBlank).orElse(null);
@@ -48,8 +66,56 @@ public class TenantInfoWrapper {
         }
     }  
 
-	@ApiModel(" TenantInfo-机构表")
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel(" TenantInfo-机构表分页响应")
     public static class TenantInfo {
+        @ApiModelProperty("机构名称")
+        private String name;
+
+        @ApiModelProperty("logo")
+        private String logo;
+
+        @ApiModelProperty("简介")
+        private String briefIntroduction;
+
+        @ApiModelProperty("所属地区")
+        private String area;
+
+        @ApiModelProperty("联系人")
+        private String userName;
+
+        @ApiModelProperty("联系方式")
+        private String phone;
+
+        @ApiModelProperty("教师数量")
+        private String teacherCounts;
+
+        @ApiModelProperty("学生数量")
+        private String studentCounts;
+
+        @ApiModelProperty("省份编码")
+        private Integer provinceCode;
+
+        @ApiModelProperty("城市编码")
+        private Integer cityCode;
+
+        @ApiModelProperty("地区街道编码")
+        private Integer regionCode;
+
+        @ApiModelProperty("省份名称")
+        private String provinceName;
+
+        @ApiModelProperty("城市名称")
+        private String cityName;
+
+        @ApiModelProperty("地区街道名称")
+        private String regionName;
+
+
         
         public String jsonString() {
             return JSON.toJSONString(this);

+ 17 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantUnbindRecordWrapper.java

@@ -144,4 +144,21 @@ public class TenantUnbindRecordWrapper {
         }
     }
 
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel(" 审核参数模型")
+    public static class Audio {
+
+        @ApiModelProperty("审核记录的ID")
+        private Long id;
+
+        @ApiModelProperty("审核状态")
+        private Boolean status;
+
+        @ApiModelProperty("审核理由")
+        private String reason;
+    }
+
 }

+ 20 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/teacher/TeacherWrapper.java

@@ -1,6 +1,9 @@
 package com.yonge.cooleshow.biz.dal.wrapper.teacher;
 
 import com.alibaba.fastjson.JSON;
+import com.yonge.cooleshow.common.enums.ESettlementFrom;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -11,6 +14,8 @@ import java.io.Serializable;
 /**
  * Created by Eric.Shang on 2022/10/8.
  */
+@Data
+@ApiModel("TeacherWrapper")
 public class TeacherWrapper {
 
     /**
@@ -74,4 +79,19 @@ public class TeacherWrapper {
         }
 
     }
+
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel("老师设置结算方式模型")
+    public static class TeacherSetSettlement {
+
+        @ApiModelProperty("老师ID")
+        private Long userId;
+
+        @ApiModelProperty("结算方式")
+        private ESettlementFrom settlementFrom;
+    }
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -175,7 +175,7 @@
             <if test="param.tenantId ! =null">
                 AND t.tenantId_ = #{param.tenantId}
             </if>
-            <if test="param.settlementFrom ! =null and param.settlementFrom.trim() != ''">
+            <if test="param.settlementFrom ! =null">
                 AND t.settlement_from_ = #{param.settlementFrom}
             </if>
             <if test="param.tenantName != null and param.tenantName.trim() != ''">

+ 79 - 4
cooleshow-user/user-biz/src/main/resources/config/mybatis/TenantInfoMapper.xml

@@ -18,12 +18,87 @@
         , t.enable_flag_ AS enableFlag
         , t.update_time_ AS updateTime
         , t.create_time_ AS createTime
-        </sql> 
-    
-    <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.entity.TenantInfo">
+        , t.brief_Introduction_ AS briefIntroduction
+        </sql>
+
+    <insert id="insertInfo" parameterType="com.yonge.cooleshow.biz.dal.entity.TenantInfo">
+        insert into tenant_info
+        (name_,logo_,brief_Introduction_,province_code_,city_code_,region_code_,username_,phone_)
+        values (#{param.name},#{param.logo},#{param.briefIntroduction},#{param.provinceCode},#{param.cityCode},#{param.regionCode},#{param.username},#{param.phone})
+    </insert>
+    <update id="updateInfo">
+        update tenant_info
+        set
+        <if test="param.name != null and param.name != ''">
+            name_ = #{param.name},
+        </if>
+        <if test="param.logo != null and param.logo != ''">
+            logo_ = #{param.logo},
+        </if>
+        <if test="param.provinceCode != null and param.provinceCode != ''">
+            province_code_ = #{param.provinceCode},
+        </if>
+        <if test="param.cityCode != null and param.cityCode != ''">
+            city_code_ = #{param.cityCode},
+        </if>
+        <if test="param.regionCode != null and param.regionCode != ''">
+            region_code_ = #{param.regionCode},
+        </if>
+        <if test="param.briefIntroduction != null and param.briefIntroduction != ''">
+            brief_introduction_= #{param.briefIntroduction},
+        </if>
+        <if test="param.username != null and param.username != ''">
+            username_ = #{param.username},
+        </if>
+        <if test="param.phone != null and param.phone != ''">
+            phone_ = #{param.phone}
+        </if>
+        WHERE id_ = #{param.id}
+
+
+    </update>
+    <update id="updateFlag">
+        update tenant_info
+        set enable_flag_ = 0
+        where id_ = #{id}
+    </update>
+    <update id="updateMethod">
+        update teacher
+        set settlement_from_ = 'TEACHER'
+        where tenant_id_ = #{id}
+    </update>
+
+    <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.wrapper.TenantInfoWrapper$TenantInfo">
 		SELECT         
-        	<include refid="baseColumns" />
+        	name_ AS name,
+        	logo_ AS logo,
+        	brief_Introduction_ AS briefIntroduction,
+        	username_ AS username,
+        	phone_ AS phone,
+            province_code_ AS provinceCode,
+            city_code_ AS cityCode,
+            region_code_ AS regionCode,
+           (SELECT count(t.tenant_id_) FROM teacher t INNER JOIN  tenant_info i on t.tenant_id_ = i.id_ GROUP BY i.id_) AS teacherCounts,
+           (SELECT count(s.tenant_id_) FROM student s INNER JOIN  tenant_info i on s.tenant_id_ = i.id_ GROUP BY i.id_) AS studentCounts
 		FROM tenant_info t
+		where 1=1
+        <if test="param.keyword != null and param.keyword  != ''">
+            and (
+            t.name_ like concat('%',#{param.keyword},'%')
+            or t.username_ like concat('%',#{param.keyword},'%')
+            or t.phone_ like concat('%',#{param.keyword},'%')
+            )
+        </if>
+        <if test="param.provinceCode != null and param.provinceCode != ''
+               and param.cityCode != null and param.cityCode != ''
+               and param.regionCode != null and param.regionCode != ''">
+            and
+            t.province_code_ = #{param.provinceCode}
+            and
+            t.city_code_ = #{param.cityCode}
+            and
+            t.region_code_ = #{param.regionCode}
+        </if>
 	</select>
     
 </mapper>

+ 23 - 0
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TeacherController.java

@@ -13,6 +13,7 @@ import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.biz.dal.service.TeacherService;
 import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
 import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
+import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.UserLockFlag;
@@ -119,6 +120,28 @@ public class TeacherController extends BaseController {
         return teacherService.submit(teacherSubmitReq);
     }
 
+    @PostMapping("/setSettlement")
+    @ApiOperation(value = "设置结算方式")
+    public HttpResponseResult<Boolean> setSettlement(@Valid @RequestBody TeacherWrapper.TeacherSetSettlement setSettlement) {
+        TenantInfo tenantInfo = getTenantInfo();
+        teacherService.lambdaUpdate()
+                .set(Teacher::getSettlementFrom, setSettlement.getSettlementFrom())
+                .eq(Teacher::getTenantId, tenantInfo.getId())
+                .eq(Teacher::getUserId, setSettlement.getUserId()).update();
+        return succeed();
+    }
+
+    @PostMapping("/batchSetSettlement")
+    @ApiOperation(value = "批量设置结算方式")
+    public HttpResponseResult<Boolean> batchSetSettlement(@Valid @RequestBody TeacherWrapper.TeacherSetSettlement setSettlement) {
+        TenantInfo tenantInfo = getTenantInfo();
+        teacherService.lambdaUpdate()
+                .set(Teacher::getSettlementFrom, setSettlement.getSettlementFrom())
+                .eq(Teacher::getTenantId, tenantInfo.getId())
+                .update();
+        return succeed();
+    }
+
     private TenantInfo getTenantInfo() {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         TenantInfo tenantInfo = tenantInfoService.lambdaQuery().eq(TenantInfo::getUserId, sysUser.getId())