Commit 6be92b62 by 徐高华

企微托管账号

parent 2b1e25a7
package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
public class OpenStaffLicenseDTO implements Serializable {
private int total ;
private int giceTotal ;
private int useNum ;
private int validNum ;
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getGiceTotal() {
return giceTotal;
}
public void setGiceTotal(int giceTotal) {
this.giceTotal = giceTotal;
}
public int getUseNum() {
return useNum;
}
public void setUseNum(int useNum) {
this.useNum = useNum;
}
public int getValidNum() {
return validNum;
}
public void setValidNum(int validNum) {
this.validNum = validNum;
}
}
......@@ -30,4 +30,8 @@ public enum QwOpenStepEnum {
public void setDesc(String desc) {
this.desc = desc;
}
public static boolean isFail(int step) {
return step == step2.getStep() || step == step3.getStep() ;
}
}
package com.gic.haoban.manage.api.qdto;
import java.io.Serializable;
public class OpenStaffPageQDTO implements Serializable {
private String wxEnterpriseId ;
private String enterpriseId ;
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
}
package com.gic.haoban.manage.api.service;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.OpenStaffDTO;
import com.gic.haoban.manage.api.dto.OpenStaffLicenseDTO;
import com.gic.haoban.manage.api.qdto.OpenStaffInitQDTO;
import com.gic.haoban.manage.api.qdto.OpenStaffPageQDTO;
public interface OpenStaffApiService {
......@@ -75,4 +79,7 @@ public interface OpenStaffApiService {
*/
public ServiceResponse<Void> updateLoginStep(String uuid , int step) ;
ServiceResponse<OpenStaffLicenseDTO> getLicenseInfo(String wxEnterpriseId, String enterpriseId);
ServiceResponse<Page<OpenStaffDTO>> page(OpenStaffPageQDTO qdto, BasePageInfo basePageInfo);
}
......@@ -28,7 +28,6 @@ public class OpenStaffServiceImpl implements OpenStaffService {
if(null == tab.getOpenStaffId()) {
tab.setOpenStaffId(UniqueIdUtils.uniqueLong());
tab.setDeleteFlag(0);
tab.setStatusFlag(2);
tab.setCreateTime(new Date());
this.openStaffMapper.insert(tab) ;
}else {
......@@ -58,6 +57,11 @@ public class OpenStaffServiceImpl implements OpenStaffService {
openStaff.setStatusFlag(2);
openStaff.setValidFlag(0);
openStaff.setValidQrcodeFlag(0);
openStaff.setQrCode1(null);
openStaff.setQrCode2(null);
openStaff.setKey1(null);
openStaff.setKey2(null);
openStaff.setUuid(null);
this.openStaffMapper.update(openStaff) ;
}
}
package com.gic.haoban.manage.service.service.out.impl;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.haoban.manage.api.dto.OpenStaffDTO;
import com.gic.haoban.manage.api.dto.OpenStaffLicenseDTO;
import com.gic.haoban.manage.api.enums.QwOpenStepEnum;
import com.gic.haoban.manage.api.qdto.OpenStaffInitQDTO;
import com.gic.haoban.manage.api.qdto.OpenStaffPageQDTO;
import com.gic.haoban.manage.api.service.OpenStaffApiService;
import com.gic.haoban.manage.service.dao.mapper.OpenStaffMapper;
import com.gic.haoban.manage.service.entity.TabOpenStaff;
......@@ -86,6 +91,9 @@ public class OpenStaffApiServiceImpl implements OpenStaffApiService {
return ServiceResponse.failure("9999","登录错误") ;
}
this.openStaffMapper.updateLoginStep(openStaff.getOpenStaffId(),step) ;
if(QwOpenStepEnum.isFail(step)) {
this.openStaffService.logout(uuid);
}
return ServiceResponse.success();
}
......@@ -170,9 +178,12 @@ public class OpenStaffApiServiceImpl implements OpenStaffApiService {
openStaff.setUuid(init.getUuid());
openStaff.setQrCode1(init.getQrcode());
openStaff.setKey1(init.getKey());
openStaff.setStatusFlag(2);
openStaff.setStep(0);
openStaff.setValidFlag(0);
openStaff.setValidQrcodeFlag(0);
openStaff.setQrCode2(null);
openStaff.setKey2(null);
openStaff = this.openStaffService.save(openStaff);
return ServiceResponse.success(openStaff.getOpenStaffId()) ;
}catch (Exception e) {
......@@ -180,4 +191,15 @@ public class OpenStaffApiServiceImpl implements OpenStaffApiService {
}
return ServiceResponse.failure("9999","登录失败") ;
}
@Override
public ServiceResponse<OpenStaffLicenseDTO> getLicenseInfo(String wxEnterpriseId, String enterpriseId) {
OpenStaffLicenseDTO dto = new OpenStaffLicenseDTO();
return ServiceResponse.success(dto);
}
@Override
public ServiceResponse<Page<OpenStaffDTO>> page(OpenStaffPageQDTO qdto, BasePageInfo basePageInfo) {
return null;
}
}
......@@ -45,23 +45,25 @@
</insert>
<update id="update" parameterType="com.gic.haoban.manage.service.entity.TabOpenStaff">
update tab_haoban_open_staff set uuid = #{uuid} ,
status_flag=#{statusFlag,jdbcType=INTEGER},
step=#{step,jdbcType=INTEGER},
qw_user_id=#{qwUserId,jdbcType=BIGINT},
wx_corp_id=#{wxCorpId,jdbcType=BIGINT},
qr_code_1=#{qrCode1,jdbcType=VARCHAR},
key_1=#{key1,jdbcType=VARCHAR},
qr_code_2=#{qrCode2,jdbcType=VARCHAR},
key_2=#{key2,jdbcType=VARCHAR},
valid_flag=#{validFlag,jdbcType=INTEGER},
auth_time=#{authTime,jdbcType=TIMESTAMP},
<if test="null != firstAuthTime">
first_auth_time=#{firstAuthTime} ,
</if>
update_time=now()
update tab_haoban_open_staff set uuid = #{uuid} , status_flag=#{statusFlag},
step=#{step}, qr_code_1=#{qrCode1}, key_1=#{key1}, qr_code_2=#{qrCode2}, key_2=#{key2}, valid_flag=#{validFlag},
valid_qrcode_flag = #{validQrcodeFlag} ,
<if test="null != qwUserId">
qw_user_id=#{qwUserId,jdbcType=BIGINT},
</if>
<if test="null != wxCorpId">
wx_corp_id=#{wxCorpId,jdbcType=BIGINT},
</if>
<if test="null != authTime">
auth_time=#{authTime,jdbcType=TIMESTAMP},
</if>
<if test="null != firstAuthTime">
first_auth_time=#{firstAuthTime} ,
</if>
update_time=now()
where open_staff_id = #{openStaffId}
</update>
<update id="updateValiFlag">
update tab_haoban_open_staff set valid_flag = 1 where uuid = #{uuid}
</update>
......@@ -73,6 +75,7 @@
<update id="update2Qrcode">
update tab_haoban_open_staff set qr_code_2 = #{qrCode} , key_2 = #{key} where id = #{id}
</update>
<update id="updateLoginStep">
update tab_haoban_open_staff set step = #{step} where open_staff_id = #{id}
</update>
......@@ -84,9 +87,11 @@
<select id="getByStaffId" resultMap="BaseResultMap">
select <include refid="Base_Column_List" /> from tab_haoban_open_staff where staff_id = #{staffId} and delete_flag = 0
</select>
<select id="getById" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/> from tab_haoban_open_staff where open_staff_id = #{id} and delete_flag = 0
</select>
<select id="getByUUID" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/> from tab_haoban_open_staff where uuid = #{uuid} and delete_flag = 0
</select>
......
package com.gic.haoban.manage.web.controller.open;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.manage.api.dto.OpenStaffDTO;
import com.gic.haoban.manage.api.dto.OpenStaffLicenseDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.api.qdto.OpenStaffInitQDTO;
import com.gic.haoban.manage.api.qdto.OpenStaffPageQDTO;
import com.gic.haoban.manage.api.service.OpenStaffApiService;
import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.api.service.StaffClerkRelationApiService;
import com.gic.haoban.manage.web.qo.open.OpenStaffQO;
import com.gic.haoban.manage.web.vo.open.OpenStaffVO;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -15,6 +26,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.stream.Collectors;
/**
* 企微托管
*/
......@@ -24,6 +38,10 @@ public class QywxOpenController {
@Autowired
private OpenStaffApiService openStaffApiService ;
@Autowired
private StaffApiService staffApiService ;
@Autowired
private StaffClerkRelationApiService staffClerkRelationApiService ;
/**
* 托管列表
......@@ -31,8 +49,27 @@ public class QywxOpenController {
* @return
*/
@RequestMapping("open-staff-list")
public RestResponse<Object> page(@RequestBody OpenStaffQO qo) {
return null ;
public RestResponse<Page<OpenStaffVO>> page(@RequestBody OpenStaffQO qo,BasePageInfo basePageInfo) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
OpenStaffPageQDTO qdto = EntityUtil.changeEntityByJSON(OpenStaffPageQDTO.class,qo) ;
qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
qdto.setEnterpriseId(loginUser.getEnterpriseId());
ServiceResponse<Page<OpenStaffDTO>> page = this.openStaffApiService.page(qdto, basePageInfo);
return RestResponse.successResult(null);
}
/**
* 托管列表
* @param qo
* @return
*/
@RequestMapping("open-staff-excel")
public RestResponse<Page<OpenStaffVO>> excel(@RequestBody OpenStaffQO qo) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
OpenStaffPageQDTO qdto = EntityUtil.changeEntityByJSON(OpenStaffPageQDTO.class,qo) ;
qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
qdto.setEnterpriseId(loginUser.getEnterpriseId());
return RestResponse.successResult(null);
}
/**
......@@ -42,12 +79,24 @@ public class QywxOpenController {
*/
@RequestMapping("login-init")
public RestResponse<Long> init(String staffId , @RequestParam(defaultValue = "0") int loginAgainFlag) {
if(StringUtils.isBlank(staffId)) {
return RestResponse.failure("9999","请先选择成员") ;
}
WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
String enterpriseId = login.getEnterpriseId() ;
if(StringUtils.isBlank(staffId)) {
return RestResponse.failure("9999","请先选择成员") ;
}
StaffDTO staff = this.staffApiService.selectById(staffId) ;
if(null == staff || !staff.getWxEnterpriseId().equals(wxEnterpriseId)) {
return RestResponse.failure("9999","成员不存在") ;
}
List<StaffClerkRelationDTO> relationList = this.staffClerkRelationApiService.listByStaffId(wxEnterpriseId,staffId) ;
if(CollectionUtils.isEmpty(relationList)) {
return RestResponse.failure("9999","成员未关联导购") ;
}
relationList = relationList.stream().filter(o->o.getClerkType() <=1 && o.getEnterpriseId().equals(enterpriseId)).collect(Collectors.toList());
if(CollectionUtils.isEmpty(relationList)) {
return RestResponse.failure("9999","成员需关联gic商户下导购") ;
}
String checkMsg = this.check(wxEnterpriseId,enterpriseId) ;
if(null != this.check(wxEnterpriseId,enterpriseId)) {
return RestResponse.failure("9999",checkMsg) ;
......@@ -78,6 +127,36 @@ public class QywxOpenController {
return RestResponse.successResult(resp.getResult());
}
/**
* 校验验证码
* @param openStaffId
* @param code
* @return
*/
@RequestMapping("check-code")
public RestResponse<OpenStaffDTO> checkCode(Long openStaffId , String code) {
ServiceResponse<Void> resp = this.openStaffApiService.checkCode(openStaffId,code) ;
if(!resp.isSuccess()) {
return RestResponse.failure("9999",resp.getMessage()) ;
}
return RestResponse.successResult();
}
/**
* 许可数量查询
*/
@RequestMapping("license-info")
public RestResponse<OpenStaffLicenseDTO> licenseInfo() {
WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
String enterpriseId = login.getEnterpriseId() ;
ServiceResponse<OpenStaffLicenseDTO> resp = this.openStaffApiService.getLicenseInfo(wxEnterpriseId,enterpriseId) ;
if(!resp.isSuccess()) {
return RestResponse.failure("9999",resp.getMessage()) ;
}
return RestResponse.successResult(resp.getResult());
}
private String check(String wxEnterpriseId , String enterpriseId) {
return null ;
}
......
package com.gic.haoban.manage.web.qo.open;
public class OpenStaffQO {
import java.io.Serializable;
public class OpenStaffQO implements Serializable {
}
package com.gic.haoban.manage.web.vo.open;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
public class OpenStaffVO implements Serializable {
/**
* 主键
*/
private Long openStaffId;
/**
* 成员id
*/
private String staffId;
/**
* 成员名称
*/
private String staffName ;
/**
* 成员code
*/
private String wxUserId;
/**
* 关联导购
*/
List<StoreClerkVO> clerkList ;
/**
* 品牌名称
*/
private String brandName ;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 客户端id
*/
private String uuid;
/**
* 1授权中 2未登录(已过期)
*/
private Integer statusFlag;
/**
* 登录步骤1已扫码 2取消登录 3超时 4验证码正确
*/
private Integer step;
/**
* 企微的userid
*/
private Long qwUserId;
/**
* 企微的企业id
*/
private Long wxCorpId;
/**
* 一次扫码内容
*/
private String qrCode1;
/**
* 一次扫码内容
*/
private String key1;
/**
* 二次扫码内容
*/
private String qrCode2;
/**
* 二次扫码内容
*/
private String key2;
/**
* 是否需要验证码
*/
private Integer validFlag;
/**
* 最新授权时间
*/
private Date authTime;
/**
* 首次授权时间
*/
private Date firstAuthTime;
/**
* 需要二次扫码
*/
private Integer validQrcodeFlag ;
public Long getOpenStaffId() {
return openStaffId;
}
public void setOpenStaffId(Long openStaffId) {
this.openStaffId = openStaffId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public String getWxUserId() {
return wxUserId;
}
public void setWxUserId(String wxUserId) {
this.wxUserId = wxUserId;
}
public List<StoreClerkVO> getClerkList() {
return clerkList;
}
public void setClerkList(List<StoreClerkVO> clerkList) {
this.clerkList = clerkList;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Integer getStep() {
return step;
}
public void setStep(Integer step) {
this.step = step;
}
public Long getQwUserId() {
return qwUserId;
}
public void setQwUserId(Long qwUserId) {
this.qwUserId = qwUserId;
}
public Long getWxCorpId() {
return wxCorpId;
}
public void setWxCorpId(Long wxCorpId) {
this.wxCorpId = wxCorpId;
}
public String getQrCode1() {
return qrCode1;
}
public void setQrCode1(String qrCode1) {
this.qrCode1 = qrCode1;
}
public String getKey1() {
return key1;
}
public void setKey1(String key1) {
this.key1 = key1;
}
public String getQrCode2() {
return qrCode2;
}
public void setQrCode2(String qrCode2) {
this.qrCode2 = qrCode2;
}
public String getKey2() {
return key2;
}
public void setKey2(String key2) {
this.key2 = key2;
}
public Integer getValidFlag() {
return validFlag;
}
public void setValidFlag(Integer validFlag) {
this.validFlag = validFlag;
}
public Date getAuthTime() {
return authTime;
}
public void setAuthTime(Date authTime) {
this.authTime = authTime;
}
public Date getFirstAuthTime() {
return firstAuthTime;
}
public void setFirstAuthTime(Date firstAuthTime) {
this.firstAuthTime = firstAuthTime;
}
public Integer getValidQrcodeFlag() {
return validQrcodeFlag;
}
public void setValidQrcodeFlag(Integer validQrcodeFlag) {
this.validQrcodeFlag = validQrcodeFlag;
}
}
package com.gic.haoban.manage.web.vo.open;
import java.io.Serializable;
public class StoreClerkVO implements Serializable {
private String storeId ;
private String storeName ;
private String storeCode ;
private String clerkId ;
private String clerkName ;
private String clerkCode ;
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public String getStoreCode() {
return storeCode;
}
public void setStoreCode(String storeCode) {
this.storeCode = storeCode;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getClerkName() {
return clerkName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public String getClerkCode() {
return clerkCode;
}
public void setClerkCode(String clerkCode) {
this.clerkCode = clerkCode;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment