zhoux 1 rok pred
rodič
commit
a96b7dda36

+ 14 - 2
src/main/java/com/dk/oauth/controller/CompanyController.java

@@ -2,6 +2,7 @@ package com.dk.oauth.controller;
 
 import com.dk.common.response.ResponseResultVO;
 import com.dk.oauth.entity.Company;
+import com.dk.oauth.entity.CompanyVO;
 import com.dk.oauth.entity.MenuFrequency;
 import com.dk.oauth.service.ICompanyService;
 import io.lettuce.core.dynamic.annotation.Param;
@@ -97,8 +98,19 @@ public class CompanyController {
      */
     @ApiOperation( value = "注册商户", notes = "注册商户" )
     @PostMapping(value = "/register_company")
-    public ResponseResultVO<?> registerCompany(@RequestBody Company company) {
-        return companyService.registerCompany(company);
+    public ResponseResultVO<?> registerCompany(@RequestBody CompanyVO companyVO) {
+        return companyService.registerCompany(companyVO);
+    }
+
+    /**
+     * @desc   : 续费
+     * @author : 周兴
+     * @date   : 2024/5/17 14:55
+     */
+    @ApiOperation( value = "续费", notes = "续费" )
+    @PostMapping(value = "/reNew_company")
+    public ResponseResultVO<?> reNewCompany(@RequestBody CompanyVO companyVO) {
+        return companyService.reNewCompany(companyVO);
     }
 
     /**

+ 10 - 0
src/main/java/com/dk/oauth/convert/CompanyConvert.java

@@ -0,0 +1,10 @@
+package com.dk.oauth.convert;
+
+import com.dk.oauth.entity.Company;
+import com.dk.oauth.entity.CompanyVO;
+import org.mapstruct.Mapper;
+
+@Mapper(componentModel = "spring")
+public interface CompanyConvert {
+    Company convertToPo(CompanyVO companyVO);
+}

+ 10 - 0
src/main/java/com/dk/oauth/entity/Company.java

@@ -251,6 +251,16 @@ public class Company extends PageInfo<Company> implements Serializable {
     @ApiModelProperty(value = "版本名称")
     private String gradeName;
 
+    /**
+     * 授权
+     */
+    private String license;
+
+    /**
+     * 临时授权
+     */
+    private String licenseSocial;
+
     /*
      * 相关属性
      * @TableField(exist = false)

+ 288 - 0
src/main/java/com/dk/oauth/entity/CompanyVO.java

@@ -0,0 +1,288 @@
+package com.dk.oauth.entity;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
+import com.dk.common.infrastructure.handler.UuidTypeHandler;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * 企业
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("企业")
+@TableName(value = "t_a_company", schema = "dkic_a", autoResultMap = true)
+@ApiModel(value = "实体类:企业", description = "表名:t_a_company")
+public class CompanyVO extends PageInfo<CompanyVO> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 企业ID
+     */
+    @TableId(value = "cp_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 企业代码 (dc+xxxxxx)
+     */
+    @Excel(name = "企业代码 (dc+xxxxxx)")
+    @ApiModelProperty(value = "企业代码 (dc+xxxxxx)")
+    private String cpCode;
+
+
+    /**
+     * 企业名称
+     */
+    @Excel(name = "企业名称")
+    @ApiModelProperty(value = "企业名称")
+    private String cpName;
+
+
+    /**
+     * 所在服务器
+     */
+    @Excel(name = "所在服务器")
+    @ApiModelProperty(value = "所在服务器")
+    private String svcCode;
+
+
+    /**
+     * 注册日期
+     */
+    @Excel(name = "注册日期")
+    @ApiModelProperty(value = "注册日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDate openingDate;
+
+
+    /**
+     * 系统版本
+     */
+    @Excel(name = "系统版本")
+    @ApiModelProperty(value = "系统版本")
+    private String gradeCode;
+
+
+    /**
+     * 结束日期
+     */
+    @Excel(name = "结束日期")
+    @ApiModelProperty(value = "结束日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDate endDate;
+
+
+    /**
+     * 人数上限 (可以绑定微信的员工人数)
+     */
+    @Excel(name = "人数上限 (可以绑定微信的员工人数)")
+    @ApiModelProperty(value = "人数上限 (可以绑定微信的员工人数)")
+    private Integer maxStaffNum;
+
+
+    /**
+     * 当前人数 (当前绑定微信的员工人数)
+     */
+    @Excel(name = "当前人数 (当前绑定微信的员工人数)")
+    @ApiModelProperty(value = "当前人数 (当前绑定微信的员工人数)")
+    private Integer curStaffNum;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+    /**
+     * 企业状态(系统字典)
+     */
+    @Excel(name = "企业状态(系统字典)")
+    @ApiModelProperty(value = "企业状态(系统字典)")
+    private String cpStatus;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /**
+     * 所有者 (t_wx_user)
+     */
+    @Excel(name = "所有者 (t_wx_user)")
+    @ApiModelProperty(value = "所有者 (t_wx_user)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String owner;
+
+    /**
+     * 负责人
+     */
+    @Excel(name = "负责人")
+    @ApiModelProperty(value = "负责人")
+    private String cpManager;
+
+    /**
+     * 负责人联系电话
+     */
+    @Excel(name = "负责人联系电话")
+    @ApiModelProperty(value = "负责人联系电话")
+    private String cpPhone;
+
+
+    /**
+     * 公司规模
+     */
+    @Excel(name = "公司规模")
+    @ApiModelProperty(value = "公司规模")
+    private String cpSize;
+
+    /**
+     * 门店规模
+     */
+    @Excel(name = "门店规模")
+    @ApiModelProperty(value = "门店规模")
+    private String shopSize;
+    /**
+     * 反馈
+     */
+    @Excel(name = "反馈")
+    @ApiModelProperty(value = "反馈")
+    private String feedback;
+
+
+    /**
+     * 版本名称
+     */
+    @ApiModelProperty(value = "版本名称")
+    private String gradeName;
+
+    /**
+     * 授权
+     */
+    private String license;
+
+    /**
+     * 临时授权
+     */
+    private String licenseSocial;
+
+    /**
+     * Web授权数
+     */
+    private Integer webMaxNum;
+
+    /**
+     * 小程序授权数
+     */
+    private Integer wxMaxNum;
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 4 - 1
src/main/java/com/dk/oauth/service/ICompanyService.java

@@ -3,6 +3,7 @@ package com.dk.oauth.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.dk.common.response.ResponseResultVO;
 import com.dk.oauth.entity.Company;
+import com.dk.oauth.entity.CompanyVO;
 import com.dk.oauth.entity.MenuFrequency;
 import org.springframework.web.bind.annotation.RequestBody;
 
@@ -16,7 +17,9 @@ import java.util.Map;
  */
 public interface ICompanyService  extends IService<Company> {
 
-    ResponseResultVO registerCompany(Company company);
+    ResponseResultVO registerCompany(CompanyVO companyVO);
+
+    ResponseResultVO reNewCompany(CompanyVO companyVO);
 
     ResponseResultVO selectById(Integer id);
 

+ 37 - 1
src/main/java/com/dk/oauth/service/impl/CompanyServiceImpl.java

@@ -1,5 +1,6 @@
 package com.dk.oauth.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dk.common.exception.BaseBusinessException;
 import com.dk.common.infrastructure.enums.ErrorCodeEnum;
@@ -10,6 +11,8 @@ import com.dk.common.model.vo.mst.StaffVO;
 import com.dk.common.response.ResponseCodeEnum;
 import com.dk.common.response.ResponseResultUtil;
 import com.dk.common.response.ResponseResultVO;
+import com.dk.common.util.AESUtil;
+import com.dk.oauth.convert.CompanyConvert;
 import com.dk.oauth.entity.*;
 import com.dk.oauth.feign.service.OrgFeign;
 import com.dk.oauth.feign.service.StaffFeign;
@@ -17,6 +20,7 @@ import com.dk.oauth.mapper.*;
 import com.dk.oauth.query.*;
 import com.dk.oauth.response.*;
 import com.dk.oauth.service.ICompanyService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.context.request.RequestContextHolder;
@@ -24,6 +28,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -59,6 +64,8 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
     WarehouseMapper warehouseMapper;
     @Resource
     MoneyAccountMapper moneyAccountMapper;
+    @Autowired
+    private CompanyConvert companyConvert;
 
 
     /**
@@ -150,7 +157,9 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ResponseResultVO registerCompany(Company company) {
+    public ResponseResultVO registerCompany(CompanyVO companyVO) {
+        // 转实体
+        Company company = companyConvert.convertToPo(companyVO);
         Company c = new Company();
         c.setFlgValid(true);
         c.setCpName(company.getCpName());
@@ -171,6 +180,13 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
 
         //获取具体服务的地址
         company.setSvcCode(companyMapper.selectServiceAllot(company.getGradeCode()));
+        // 生成临时license授权
+        Map<String,Object> licenseMap = new HashMap<>();
+        licenseMap.put("grade_code",company.getGradeCode());
+        licenseMap.put("end_date",company.getEndDate());
+        licenseMap.put("web_max_num",companyVO.getWebMaxNum());
+        licenseMap.put("wx_max_num",companyVO.getWxMaxNum());
+        company.setLicenseSocial(AESUtil.aesEncrypt(JSON.toJSONString(licenseMap)) );
         companyMapper.insert(company);
         // 动态设置服务的地址
         ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
@@ -366,6 +382,26 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
     }
 
     /**
+     * @desc : 续费
+     * @author : 周兴
+     * @date : 2024-05-17 13:55
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public ResponseResultVO reNewCompany(CompanyVO companyVO){
+        // 转实体
+        Company company = companyConvert.convertToPo(companyVO);
+        // 生成临时license授权
+        Map<String,Object> licenseMap = new HashMap<>();
+        licenseMap.put("grade_code",company.getGradeCode());
+        licenseMap.put("end_date",company.getEndDate());
+        licenseMap.put("web_max_num",companyVO.getWebMaxNum());
+        licenseMap.put("wx_max_num",companyVO.getWxMaxNum());
+        company.setLicenseSocial(AESUtil.aesEncrypt(JSON.toJSONString(licenseMap)) );
+        companyMapper.updateById(company);
+        return ResponseResultUtil.success();
+    }
+
+    /**
      * @desc : 保存用户功能频率表
      * @author : 周兴
      * @date : 2024/3/28 9:39