Commit 5f352c51 by qwmqiuwenmin

Merge branch 'developer' into 'master'

Developer

See merge request !50
parents 31a12ce5 39c347af
package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
import java.util.Date;
public class HelpDTO implements Serializable {
private String helpId;
private String helpTitle;
private String helpUrl;
private Integer statusFlag;
private Date createTime;
private Date updateTime;
private Integer openFlag;
private String editPersion;
private Integer sort;
private static final long serialVersionUID = 1L;
public String getHelpId() {
return helpId;
}
public void setHelpId(String helpId) {
this.helpId = helpId == null ? null : helpId.trim();
}
public String getHelpTitle() {
return helpTitle;
}
public void setHelpTitle(String helpTitle) {
this.helpTitle = helpTitle == null ? null : helpTitle.trim();
}
public String getHelpUrl() {
return helpUrl;
}
public void setHelpUrl(String helpUrl) {
this.helpUrl = helpUrl == null ? null : helpUrl.trim();
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
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 Integer getOpenFlag() {
return openFlag;
}
public void setOpenFlag(Integer openFlag) {
this.openFlag = openFlag;
}
public String getEditPersion() {
return editPersion;
}
public void setEditPersion(String editPersion) {
this.editPersion = editPersion == null ? null : editPersion.trim();
}
public Integer getSort() {
return sort;
}
public void setSort(Integer sort) {
this.sort = sort;
}
}
\ No newline at end of file
package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
import java.util.Date;
public class MaidianLogDTO implements Serializable{
private Integer maidianId;
private String staffId;
private String wxEnterpriseId;
private String phoneNumber;
private Date deviceDate;
private String options;
private String event;
private String url;
private String context;
private String scene;
private String platform;
private String model;
private String brand;
private String hbversion;
private String system;
private String sdkVersion;
private String version;
private String systemInfo;
private Integer stayTime;
private Date createTime;
private Date updateTime;
private static final long serialVersionUID = 1L;
public Integer getMaidianId() {
return maidianId;
}
public void setMaidianId(Integer maidianId) {
this.maidianId = maidianId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId == null ? null : staffId.trim();
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId == null ? null : wxEnterpriseId.trim();
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber == null ? null : phoneNumber.trim();
}
public Date getDeviceDate() {
return deviceDate;
}
public void setDeviceDate(Date deviceDate) {
this.deviceDate = deviceDate;
}
public String getOptions() {
return options;
}
public void setOptions(String options) {
this.options = options == null ? null : options.trim();
}
public String getEvent() {
return event;
}
public void setEvent(String event) {
this.event = event == null ? null : event.trim();
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url == null ? null : url.trim();
}
public String getContext() {
return context;
}
public void setContext(String context) {
this.context = context == null ? null : context.trim();
}
public String getScene() {
return scene;
}
public void setScene(String scene) {
this.scene = scene == null ? null : scene.trim();
}
public String getPlatform() {
return platform;
}
public void setPlatform(String platform) {
this.platform = platform == null ? null : platform.trim();
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model == null ? null : model.trim();
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand == null ? null : brand.trim();
}
public String getHbversion() {
return hbversion;
}
public void setHbversion(String hbversion) {
this.hbversion = hbversion == null ? null : hbversion.trim();
}
public String getSystem() {
return system;
}
public void setSystem(String system) {
this.system = system == null ? null : system.trim();
}
public String getSdkVersion() {
return sdkVersion;
}
public void setSdkVersion(String sdkVersion) {
this.sdkVersion = sdkVersion == null ? null : sdkVersion.trim();
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version == null ? null : version.trim();
}
public String getSystemInfo() {
return systemInfo;
}
public void setSystemInfo(String systemInfo) {
this.systemInfo = systemInfo == null ? null : systemInfo.trim();
}
public Integer getStayTime() {
return stayTime;
}
public void setStayTime(Integer stayTime) {
this.stayTime = stayTime;
}
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;
}
}
......@@ -59,6 +59,8 @@ public class PreDealLogInfoDTO implements Serializable {
*/
private Integer statusFlag;
private String reason;
/**
*
*/
......@@ -73,6 +75,14 @@ public class PreDealLogInfoDTO implements Serializable {
*/
private static final long serialVersionUID = 1L;
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public String getDataCode() {
return dataCode;
}
......
......@@ -3,6 +3,8 @@ package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
import java.util.Date;
import org.springframework.util.StringUtils;
public class WxEnterpriseDTO implements Serializable {
private String wxEnterpriseId;
......@@ -62,6 +64,20 @@ public class WxEnterpriseDTO implements Serializable {
private String memberSecret;
private String contactSecret;
private Boolean wxSecretKeyFlag;
private Boolean memberSecretFlag;
private Boolean contactSecretFlag;
private Date wxSecretKeyLastTime;
private Date contactSecretLastTime;
private Date memberSecretLastTime;
private Integer storeTotal;
private Date createTime;
......@@ -327,7 +343,63 @@ public class WxEnterpriseDTO implements Serializable {
this.contactSecret = contactSecret;
}
public Date getWxSecretKeyLastTime() {
return wxSecretKeyLastTime;
}
public void setWxSecretKeyLastTime(Date wxSecretKeyLastTime) {
this.wxSecretKeyLastTime = wxSecretKeyLastTime;
}
public Date getContactSecretLastTime() {
return contactSecretLastTime;
}
public void setContactSecretLastTime(Date contactSecretLastTime) {
this.contactSecretLastTime = contactSecretLastTime;
}
public Date getMemberSecretLastTime() {
return memberSecretLastTime;
}
public void setMemberSecretLastTime(Date memberSecretLastTime) {
this.memberSecretLastTime = memberSecretLastTime;
}
public Boolean getWxSecretKeyFlag() {
return !StringUtils.isEmpty(this.wxSecretKey);
}
public void setWxSecretKeyFlag(Boolean wxSecretKeyFlag) {
this.wxSecretKeyFlag = wxSecretKeyFlag;
}
public Boolean getMemberSecretFlag() {
return !StringUtils.isEmpty(this.memberSecret);
}
public void setMemberSecretFlag(Boolean memberSecretFlag) {
this.memberSecretFlag = memberSecretFlag;
}
public Boolean getContactSecretFlag() {
return !StringUtils.isEmpty(this.contactSecret);
}
public void setContactSecretFlag(Boolean contactSecretFlag) {
this.contactSecretFlag = contactSecretFlag;
}
public Integer getStoreTotal() {
return storeTotal;
}
public void setStoreTotal(Integer storeTotal) {
this.storeTotal = storeTotal;
}
}
......@@ -39,7 +39,7 @@ public enum StoreFieldEnum {
public static String getValueName(String changeField) {
for (StoreFieldEnum c : StoreFieldEnum.values()) {
if (c.getValue() == changeField) {
if (c.getValue().equals(changeField)) {
return c.name;
}
}
......
......@@ -164,5 +164,11 @@ public interface DepartmentApiService {
boolean isInitLocked(String wxEnterpriseId);
void syncWxDepartmentByParentMQ(String res);
/**
* 统计门店总数
* @param wxEnterpriseId
* @return
*/
Integer totalStoreCountByEnterpriseId(String wxEnterpriseId);
}
package com.gic.haoban.manage.api.service;
import java.util.List;
import com.gic.api.base.commons.Page;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.manage.api.dto.HelpDTO;
/**
* Created by tgs on 2020/2/9.
*/
public interface HelpApiService {
int saveHelp(HelpDTO dto);
HelpDTO findOneHelp(String helpId);
Page<HelpDTO> pageList(BasePageInfo pageInfo);
void deleteOne(String helpId);
List<HelpDTO> getList();
}
package com.gic.haoban.manage.api.service;
import com.gic.haoban.manage.api.dto.MaidianLogDTO;
public interface MaidianLogApiService {
void insert(MaidianLogDTO maidianLogDTO);
}
......@@ -21,4 +21,6 @@ public interface MemberUnionidRelatedApiService {
String add(String wxEnterpriseId, String selfExternalUserId, String userId1);
void freshWxFrend(String wxEnterpriseId, String wxUserId);
}
......@@ -68,4 +68,15 @@ public interface StaffApiService {
* @return
*/
public ServiceResponse saveSyncStaffByGic(GicClerkDTO clerkDTO);
/**
* 获取成员头像
*
* @param clerkCode
* @param storeId
* @return
*/
public ServiceResponse<String> getStaffQrcode(String clerkCode, String storeId);
void wxFristAdd(String userJson, String wxEnterpriseId);
}
package com.gic.haoban.manage.api.service;
import java.util.List;
import java.util.Map;
import com.gic.haoban.manage.api.dto.StaffDepartmentRelatedDTO;
......@@ -27,7 +28,7 @@ public interface StaffDepartmentRelatedApiService {
StaffDepartmentRelatedDTO getOneByStaffIdAndDepartmentId(String staffId, String departmentId);
String getWxUserIdByClerkId(String clerkId);
Map<String,String> getWxUserIdByClerkId(String clerkId);
String getPageUrl(int type,String data);
......
package com.gic.haoban.manage.web.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.gic.api.base.commons.Page;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.manage.api.dto.DictDTO;
import com.gic.haoban.manage.api.dto.HelpDTO;
import com.gic.haoban.manage.api.service.DictApiService;
import com.gic.haoban.manage.api.service.HelpApiService;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
@RestController
public class HelpController extends WebBaseController{
private static final String LOGIN_URL = "/haoban-manage3-web/yw-login";
private static Logger logger = LoggerFactory.getLogger(HelpController.class);
@Autowired
private HelpApiService helpApiService;
//获帮助列表
@RequestMapping("get-help-list")
public HaobanResponse getDictList(BasePageInfo pageInfo) {
Page<HelpDTO> page = helpApiService.pageList(pageInfo);
return resultResponse(HaoBanErrCode.ERR_1,page);
}
//保存帮助
@RequestMapping("save-help")
public HaobanResponse saveHelp(HelpDTO dto) {
int i = helpApiService.saveHelp(dto);
if(i == 8){
return resultResponse(HaoBanErrCode.ERR_10006);
}
return resultResponse(HaoBanErrCode.ERR_1);
}
//查看帮助详情
@RequestMapping("find-help-detail")
public HaobanResponse findDictDetail(String helpId) {
HelpDTO helpDTO = helpApiService.findOneHelp(helpId);
return resultResponse(HaoBanErrCode.ERR_1,helpDTO);
}
//删除帮助
@RequestMapping("del-help")
public HaobanResponse deleteDict(String helpId) {
helpApiService.deleteOne(helpId);
return resultResponse(HaoBanErrCode.ERR_1);
}
}
......@@ -69,7 +69,7 @@ public enum HaoBanErrCode {
ERR_10005(10005,"成员已存在"),
ERR_10006(10006,"字典key已存在"),
ERR_10007(10007,"字典名称已存在"),
ERR_10008(10008,"title已存在"),
ERR_DEFINE(-888, "自定义错误"),
ERR_OTHER(-999, "未知错误code");
......
......@@ -31,7 +31,7 @@
<dubbo:reference interface="com.gic.clerk.api.service.ClerkService" id="clerkService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.StaffDepartmentRelatedApiService" id="staffDepartmentRelatedApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.DictApiService" id="dictApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.HelpApiService" id="helpApiService"/>
......
......@@ -64,4 +64,6 @@ public interface DepartmentMapper {
List<TabHaobanDepartment> listByIds(@Param("departmentIds")List<String> departmentIds);
TabHaobanDepartment getTempFlagDepartment(@Param("wxEnterpriseId") String wxEnterpriseId);
Integer totalStoreCountByEnterpriseId(@Param("wxEnterpriseId")String wxEnterpriseId);
}
\ No newline at end of file
package com.gic.haoban.manage.service.dao.mapper;
import java.util.List;
import com.gic.haoban.manage.api.dto.HelpDTO;
import com.gic.haoban.manage.service.entity.TabHaobanHelp;
import com.github.pagehelper.Page;
public interface TabHaobanHelpMapper {
int deleteByPrimaryKey(String helpId);
int insert(TabHaobanHelp record);
int insertSelective(TabHaobanHelp record);
TabHaobanHelp selectByPrimaryKey(String helpId);
int updateByPrimaryKeySelective(TabHaobanHelp record);
int updateByPrimaryKey(TabHaobanHelp record);
Page<HelpDTO> pageList();
TabHaobanHelp selectByHelpTitle(String helpTitle);
List<TabHaobanHelp> getList();
}
\ No newline at end of file
package com.gic.haoban.manage.service.dao.mapper;
import com.gic.haoban.manage.service.entity.TabHaobanMaidianLog;
public interface TabHaobanMaidianLogMapper {
int deleteByPrimaryKey(Integer maidianId);
int insert(TabHaobanMaidianLog record);
int insertSelective(TabHaobanMaidianLog record);
TabHaobanMaidianLog selectByPrimaryKey(Integer maidianId);
int updateByPrimaryKeySelective(TabHaobanMaidianLog record);
int updateByPrimaryKey(TabHaobanMaidianLog record);
}
\ No newline at end of file
package com.gic.haoban.manage.service.entity;
import java.io.Serializable;
import java.util.Date;
public class TabHaobanHelp implements Serializable {
private String helpId;
private String helpTitle;
private String helpUrl;
private Integer statusFlag;
private Date createTime;
private Date updateTime;
private Integer openFlag;
private String editPersion;
private Integer sort;
private static final long serialVersionUID = 1L;
public String getHelpId() {
return helpId;
}
public void setHelpId(String helpId) {
this.helpId = helpId == null ? null : helpId.trim();
}
public String getHelpTitle() {
return helpTitle;
}
public void setHelpTitle(String helpTitle) {
this.helpTitle = helpTitle == null ? null : helpTitle.trim();
}
public String getHelpUrl() {
return helpUrl;
}
public void setHelpUrl(String helpUrl) {
this.helpUrl = helpUrl == null ? null : helpUrl.trim();
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
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 Integer getOpenFlag() {
return openFlag;
}
public void setOpenFlag(Integer openFlag) {
this.openFlag = openFlag;
}
public String getEditPersion() {
return editPersion;
}
public void setEditPersion(String editPersion) {
this.editPersion = editPersion == null ? null : editPersion.trim();
}
public Integer getSort() {
return sort;
}
public void setSort(Integer sort) {
this.sort = sort;
}
}
\ No newline at end of file
package com.gic.haoban.manage.service.entity;
import java.io.Serializable;
import java.util.Date;
public class TabHaobanMaidianLog implements Serializable {
private Integer maidianId;
private String staffId;
private String wxEnterpriseId;
private String phoneNumber;
private Date deviceDate;
private String options;
private String event;
private String url;
private String context;
private String scene;
private String platform;
private String model;
private String brand;
private String hbversion;
private String system;
private String sdkVersion;
private String version;
private String systemInfo;
private Integer stayTime;
private Date createTime;
private Date updateTime;
private static final long serialVersionUID = 1L;
public Integer getMaidianId() {
return maidianId;
}
public void setMaidianId(Integer maidianId) {
this.maidianId = maidianId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId == null ? null : staffId.trim();
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId == null ? null : wxEnterpriseId.trim();
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber == null ? null : phoneNumber.trim();
}
public Date getDeviceDate() {
return deviceDate;
}
public void setDeviceDate(Date deviceDate) {
this.deviceDate = deviceDate;
}
public String getOptions() {
return options;
}
public void setOptions(String options) {
this.options = options == null ? null : options.trim();
}
public String getEvent() {
return event;
}
public void setEvent(String event) {
this.event = event == null ? null : event.trim();
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url == null ? null : url.trim();
}
public String getContext() {
return context;
}
public void setContext(String context) {
this.context = context == null ? null : context.trim();
}
public String getScene() {
return scene;
}
public void setScene(String scene) {
this.scene = scene == null ? null : scene.trim();
}
public String getPlatform() {
return platform;
}
public void setPlatform(String platform) {
this.platform = platform == null ? null : platform.trim();
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model == null ? null : model.trim();
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand == null ? null : brand.trim();
}
public String getHbversion() {
return hbversion;
}
public void setHbversion(String hbversion) {
this.hbversion = hbversion == null ? null : hbversion.trim();
}
public String getSystem() {
return system;
}
public void setSystem(String system) {
this.system = system == null ? null : system.trim();
}
public String getSdkVersion() {
return sdkVersion;
}
public void setSdkVersion(String sdkVersion) {
this.sdkVersion = sdkVersion == null ? null : sdkVersion.trim();
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version == null ? null : version.trim();
}
public String getSystemInfo() {
return systemInfo;
}
public void setSystemInfo(String systemInfo) {
this.systemInfo = systemInfo == null ? null : systemInfo.trim();
}
public Integer getStayTime() {
return stayTime;
}
public void setStayTime(Integer stayTime) {
this.stayTime = stayTime;
}
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;
}
}
\ No newline at end of file
......@@ -61,6 +61,16 @@ public class TabHaobanPreDealLog implements Serializable {
private String dataContent;
private String reason;
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public String getDataContent() {
return dataContent;
}
......
......@@ -61,6 +61,12 @@ public class TabHaobanWxEnterprise implements Serializable {
private String memberSecret;
private String contactSecret;
private Date wxSecretKeyLastTime;
private Date contactSecretLastTime;
private Date memberSecretLastTime;
private Date createTime;
......@@ -316,6 +322,30 @@ public class TabHaobanWxEnterprise implements Serializable {
this.contactSecret = contactSecret;
}
public Date getWxSecretKeyLastTime() {
return wxSecretKeyLastTime;
}
public void setWxSecretKeyLastTime(Date wxSecretKeyLastTime) {
this.wxSecretKeyLastTime = wxSecretKeyLastTime;
}
public Date getContactSecretLastTime() {
return contactSecretLastTime;
}
public void setContactSecretLastTime(Date contactSecretLastTime) {
this.contactSecretLastTime = contactSecretLastTime;
}
public Date getMemberSecretLastTime() {
return memberSecretLastTime;
}
public void setMemberSecretLastTime(Date memberSecretLastTime) {
this.memberSecretLastTime = memberSecretLastTime;
}
......
......@@ -54,4 +54,6 @@ public interface DepartmentService {
*/
DepartmentDTO getTempFlagDepartment(String wxEnterpriseId);
Integer totalStoreCountByEnterpriseId(String wxEnterpriseId);
}
package com.gic.haoban.manage.service.service;
import com.gic.haoban.manage.api.dto.MaidianLogDTO;
public interface MaidianLogService {
void insert(MaidianLogDTO maidianLogDTO);
}
......@@ -29,5 +29,6 @@ public interface StaffDepartmentRelatedService {
List<TabHaobanStaffDepartmentRelated> listByWxUserId(String wxUserId);
StaffDepartmentRelatedDTO getById(String staffDepartmentStaffRelatedId);
}
......@@ -190,4 +190,9 @@ public class DepartmentServiceImpl implements DepartmentService {
public DepartmentDTO getTempFlagDepartment(String wxEnterpriseId) {
return EntityUtil.changeEntityByJSON(DepartmentDTO.class, mapper.getTempFlagDepartment(wxEnterpriseId));
}
@Override
public Integer totalStoreCountByEnterpriseId(String wxEnterpriseId) {
return mapper.totalStoreCountByEnterpriseId(wxEnterpriseId);
}
}
package com.gic.haoban.manage.service.service.impl;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.gic.commons.util.EntityUtil;
import com.gic.haoban.manage.api.dto.MaidianLogDTO;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanMaidianLogMapper;
import com.gic.haoban.manage.service.entity.TabHaobanMaidianLog;
import com.gic.haoban.manage.service.service.MaidianLogService;
@Service
public class MaidianLogServiceImpl implements MaidianLogService{
@Autowired
private TabHaobanMaidianLogMapper mapper;
@Override
public void insert(MaidianLogDTO maidianLogDTO) {
TabHaobanMaidianLog tab = EntityUtil.changeEntityByJSON(TabHaobanMaidianLog.class, maidianLogDTO);
tab.setCreateTime(new Date());
tab.setUpdateTime(tab.getCreateTime());
mapper.insert(tab);
}
}
......@@ -5,6 +5,7 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
......@@ -38,10 +39,13 @@ import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.DepartmentMapper;
import com.gic.haoban.manage.service.dao.mapper.StaffMapper;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanAuditMapper;
import com.gic.haoban.manage.service.dao.mapper.WxEnterpriseMapper;
import com.gic.haoban.manage.service.entity.TabHaobanAudit;
import com.gic.haoban.manage.service.entity.TabHaobanDepartment;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise;
import com.gic.haoban.message.api.dto.MessageDTO;
import com.gic.wechat.api.dto.qywx.ItemDTO;
import com.gic.wechat.api.dto.qywx.QywxXcxSendMessageDTO;
import com.gic.wechat.api.service.qywx.QywxSuiteApiService;
import com.github.pagehelper.PageHelper;
......@@ -66,6 +70,9 @@ public class AuditApiServiceImpl implements AuditApiService{
@Autowired
private Config config;
@Autowired
private WxEnterpriseMapper wxEnterpriseMapper;
@Autowired
private StaffDepartmentRelatedApiService staffDepartmentRelatedApiService;
@Override
......@@ -132,7 +139,7 @@ public class AuditApiServiceImpl implements AuditApiService{
content = "["+content+"]"+"修改审核通过";
TabHaobanAudit tab2 = auditMapper.selectByPrimaryKey(auditId);
String staffId = tab2.getCommitStaffId();
// this.sendMessageByStaffId(staffId, storeId, title, content);
this.sendMessageByStaffId(staffId, storeId, title, content);
}
@Override
public void refuse(String auditId, String auditReason,String auditName) {
......@@ -152,7 +159,7 @@ public class AuditApiServiceImpl implements AuditApiService{
content = "["+content+"]"+"被拒绝。拒绝理由:"+auditReason;
String staffId = tab2.getCommitStaffId();
String storeId = tab2.getCommitStoreId();
// this.sendMessageByStaffId(staffId, storeId, title, content);
this.sendMessageByStaffId(staffId, storeId, title, content);
}
@Override
......@@ -282,21 +289,39 @@ public class AuditApiServiceImpl implements AuditApiService{
logger.info("staff不存在");
return;
}
if(content.length()>30){
content.substring(0, 26);
content = content+"...";
}
String wxUserId = staff.getWxUserId();
String staffName = staff.getStaffName();
String wxEnterpriseId = staff.getWxEnterpriseId();
TabHaobanWxEnterprise tabHaobanWxEnterprise = wxEnterpriseMapper.selectByPrimaryKey(wxEnterpriseId);
String corpId = tabHaobanWxEnterprise.getCorpid();
JSONObject jsonObject = new JSONObject();
jsonObject.put("storeId", storeId);
String data = jsonObject.toJSONString();
String pageUrl = staffDepartmentRelatedApiService.getPageUrl(AppPageType.STORE_DETAIL.getCode(), data);
QywxXcxSendMessageDTO messageDTO = new QywxXcxSendMessageDTO();
List<ItemDTO> items = new ArrayList();;
ItemDTO dto1 = new ItemDTO();
ItemDTO dto2 = new ItemDTO();
dto1.setKey("接收人");
dto1.setValue(staffName);
dto2.setKey("接收事件");
dto2.setValue(content);
items.add(dto1);
items.add(dto2);
ArrayList<String> list = new ArrayList<>();
list.add(wxUserId);
messageDTO.setAppid(config.getAppid());
messageDTO.setUserIds(list);
messageDTO.setPage(pageUrl);
messageDTO.setTitle(title);
messageDTO.setDescription(content);
boolean b = qywxSuiteApiService.sendMessage(config.getCorpid(), config.getSuiteId(), messageDTO);
messageDTO.setItems(items);
boolean b = qywxSuiteApiService.sendMessage(corpId, config.getWxSuiteid(), messageDTO);
}
}
......@@ -444,7 +444,7 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
for (SyncTaskDTO dto : result) {
String addUser = dto.getAddUser();
TabHaobanStaff haobanStaff = staffService.selectById(addUser);
if (null == haobanStaff) {
if (null != haobanStaff) {
dto.setUserName(haobanStaff.getStaffName());
} else {
dto.setUserName("系统管理员");
......
......@@ -753,4 +753,9 @@ public class DepartmentApiServiceImpl implements DepartmentApiService {
}
}
@Override
public Integer totalStoreCountByEnterpriseId(String wxEnterpriseId) {
return departmentService.totalStoreCountByEnterpriseId(wxEnterpriseId);
}
}
package com.gic.haoban.manage.service.service.out.impl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.gic.api.base.commons.Page;
import com.gic.commons.util.EntityUtil;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.common.utils.UuidUtil;
import com.gic.haoban.manage.api.dto.DepartmentDTO;
import com.gic.haoban.manage.api.dto.DictDTO;
import com.gic.haoban.manage.api.dto.HelpDTO;
import com.gic.haoban.manage.api.service.DictApiService;
import com.gic.haoban.manage.api.service.HelpApiService;
import com.gic.haoban.manage.service.dao.mapper.DictMapper;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanHelpMapper;
import com.gic.haoban.manage.service.entity.TabHaobanDict;
import com.gic.haoban.manage.service.entity.TabHaobanHelp;
import com.github.pagehelper.PageHelper;
import java.util.Date;
import java.util.List;
/**
* Created by tgs on 2020/2/9.
*/
@Service
public class HelpApiServiceImpl implements HelpApiService{
@Autowired
private TabHaobanHelpMapper tabHaobanHelpMapper;
@Override
public int saveHelp(HelpDTO dto) {
if(StringUtils.isBlank(dto.getHelpId())){
//空,则新增
dto.setHelpId(UuidUtil.randomUUID());
TabHaobanHelp tab = EntityUtil.changeEntity(TabHaobanHelp.class, dto);
tab.setStatusFlag(1);
tab.setCreateTime(new Date());
tab.setUpdateTime(new Date());
tab.setOpenFlag(1);
tab.setSort(1);
TabHaobanHelp tab1 = tabHaobanHelpMapper.selectByHelpTitle(dto.getHelpTitle());
if(tab1!=null){
return 8;
}
tabHaobanHelpMapper.insert(tab);
}else{
TabHaobanHelp tab = EntityUtil.changeEntity(TabHaobanHelp.class, dto);
tab.setUpdateTime(new Date());
tabHaobanHelpMapper.updateByPrimaryKeySelective(tab);
}
return 1;
}
@Override
public HelpDTO findOneHelp(String helpId) {
TabHaobanHelp tab = tabHaobanHelpMapper.selectByPrimaryKey(helpId);
if(tab == null){
return null;
}
HelpDTO dto = EntityUtil.changeEntity(HelpDTO.class, tab);
return dto;
}
@Override
public Page<HelpDTO> pageList(BasePageInfo pageInfo) {
PageHelper.startPage(pageInfo.getPageNum(), pageInfo.getPageSize());
return PageUtil.changePageHelperToCurrentPage( tabHaobanHelpMapper.pageList(),HelpDTO.class);
}
@Override
public void deleteOne(String helpId) {
tabHaobanHelpMapper.deleteByPrimaryKey(helpId);
}
@Override
public List<HelpDTO> getList() {
List<TabHaobanHelp> list = tabHaobanHelpMapper.getList();
return EntityUtil.changeEntityListByJSON(HelpDTO.class, list);
}
}
package com.gic.haoban.manage.service.service.out.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.gic.haoban.manage.api.dto.MaidianLogDTO;
import com.gic.haoban.manage.api.service.MaidianLogApiService;
import com.gic.haoban.manage.service.service.MaidianLogService;
@Service
public class MaidianLogApiServiceImpl implements MaidianLogApiService {
@Autowired
private MaidianLogService maidianLogService;
@Override
public void insert(MaidianLogDTO maidianLogDTO) {
maidianLogService.insert(maidianLogDTO);
}
}
......@@ -3,6 +3,8 @@ package com.gic.haoban.manage.service.service.out.impl;
import com.alibaba.fastjson.JSON;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.commons.util.GlobalInfo;
import com.gic.commons.util.GlobalVar;
import com.gic.haoban.base.api.common.Constant;
import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.manage.api.dto.DepartmentDTO;
......@@ -22,10 +24,15 @@ import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.entity.*;
import com.gic.haoban.manage.service.service.*;
import com.gic.mq.sdk.GicMQClient;
import com.gic.thirdparty.api.dto.PicUploadResDTO;
import com.gic.thirdparty.api.service.QQCloudPicService;
import com.gic.wechat.api.service.qywx.QywxDepartmentApiService;
import java.io.InputStream;
import java.net.URL;
import java.util.List;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
......@@ -61,6 +68,9 @@ public class MessageApiServiceImpl implements MessageApiService {
@Autowired
private QywxDepartmentApiService qywxDepartmentApiService;
@Autowired
private QQCloudPicService qqCloudPicService;
private final String CONTACT_APP = "contactSuiteId";
@Override
......@@ -254,7 +264,9 @@ public class MessageApiServiceImpl implements MessageApiService {
staff.setStaffName(qywxCallBackDTO.getUserName());
staff.setWxUserId(qywxCallBackDTO.getUserid());
staff.setPostion(qywxCallBackDTO.getPosition());
staff.setHeadImg(qywxCallBackDTO.getAvatar());
if(StringUtils.isNotBlank(qywxCallBackDTO.getAvatar())){
staff.setHeadImg(changeHeaderImageUrl(qywxCallBackDTO.getAvatar()));
}
staff.setNationCode("86");
//激活状态
if(qywxCallBackDTO.getStatus() != null && qywxCallBackDTO.getStatus() == 1){
......@@ -405,6 +417,20 @@ public class MessageApiServiceImpl implements MessageApiService {
}
}
}
private String changeHeaderImageUrl(String headImgUrl) {
try {
InputStream in = new URL(headImgUrl).openStream();
byte[] data = IOUtils.toByteArray(in);
PicUploadResDTO uploadPic = qqCloudPicService.uploadPic(GlobalVar.ctxPropertiesMap.get(GlobalInfo.QQPIC_KEY_ENTERPRISE), data);
log.info("腾讯云万象优图返回" + JSON.toJSONString(uploadPic));
return uploadPic.downloadUrl;
}catch (Exception e){
log.info("上传腾讯云万象优图返回失败了:", e);
return headImgUrl;
}
}
/**
* 通过关联的父级ID链查询父级部门
* @param parentChain
......
......@@ -16,6 +16,7 @@ import com.gic.commons.util.GlobalInfo;
import com.gic.commons.util.GlobalVar;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.service.DepartmentApiService;
import com.gic.redis.data.anno.RedisCache;
import com.gic.thirdparty.api.dto.PicUploadResDTO;
import com.gic.thirdparty.api.service.QQCloudPicService;
import com.vdurmont.emoji.EmojiParser;
......@@ -323,6 +324,9 @@ public class StaffApiServiceImpl implements StaffApiService {
tab.setUpdateTime(now);
tab.setStatusFlag(1);
tab.setWxEnterpriseId(wxEnterpriseId);
if(StringUtils.isNotBlank(user.getAvatar())){
tab.setHeadImg(changeHeaderImageUrl(user.getAvatar()));
}
tab.setPhoneNumber(user.getMobile());
if (StringUtils.isNotBlank(user.getName())) {
user.setName(EmojiParser.removeAllEmojis(user.getName()));
......@@ -384,6 +388,111 @@ public class StaffApiServiceImpl implements StaffApiService {
}
StaffDTO staffDTO = EntityUtil.changeEntityByJSON(StaffDTO.class, staff);
staffDTO.setWeixinPush(true);
if(StringUtils.isBlank(staffDTO.getPhoneNumber())){
staffDTO.setPhoneNumber(user.getMobile());
staffDTO.setSex(StringUtils.isBlank(user.getGender())?null:Integer.parseInt(user.getGender()));
staffDTO.setHeadImg(user.getAvatar());
staffDTO.setPostion(user.getPosition());
staffDTO.setNickName(user.getAlias());
staffDTO.setExtendPostion(user.getExternal_position());
Integer status = user.getStatus();
if(status != null && status == 2){
staffDTO.setActiveFlag(1);
}
}
this.staffEdit(staffDTO, departmentIds);
//String staffId = staffService.add(tab);
}
}
}
@Override
public void wxFristAdd(String userJson,String wxEnterpriseId) {
if(StringUtils.isBlank(userJson)){
return;
}
UserDTO user = JSON.parseObject(userJson,UserDTO.class);
//获取微信用户信息
String userId = user.getUserid();
TabHaobanStaff staff = staffService.selectByUserIdAndEnterpriseId(userId,wxEnterpriseId);
if(staff == null) {
WxEnterpriseDTO enterpriseDTO = wxEnterpriseService.selectById(wxEnterpriseId);
if(enterpriseDTO != null) {
Date now = new Date();
//UserDTO user = qywxUserApiService.getSelfWorkWxUser(enterpriseDTO.getCorpid(), enterpriseDTO.getContactSecret(), userId);
logger.info("【新增用户】user={}",JSON.toJSONString(user));
TabHaobanStaff tab = new TabHaobanStaff();
tab.setWxUserId(userId);
tab.setCreateTime(now);
tab.setUpdateTime(now);
tab.setStatusFlag(1);
tab.setWxEnterpriseId(wxEnterpriseId);
if(StringUtils.isNotBlank(user.getAvatar())){
tab.setHeadImg(changeHeaderImageUrl(user.getAvatar()));
}
tab.setPhoneNumber(user.getMobile());
if (StringUtils.isNotBlank(user.getName())) {
user.setName(EmojiParser.removeAllEmojis(user.getName()));
tab.setStaffName((user.getName()));
}
if (StringUtils.isNotBlank(user.getAlias())) {
user.setAlias(EmojiParser.removeAllEmojis(user.getAlias()));
tab.setNickName((user.getAlias()));
}
// tab.setNickName(user.getAlias());
tab.setNationCode("86");
tab.setSex(user.getGender() == null ? 1:Integer.parseInt(user.getGender()));
tab.setActiveFlag(1);
tab.setPostion(user.getPosition());
tab.setExtendPostion(user.getExternal_position());
if(user.getStatus() != null && user.getStatus() == 1){
tab.setActiveFlag(1);
} else {
tab.setActiveFlag(0);
}
String staffId = staffService.add(tab);
// Integer[] departmentId = user.getDepartment();
// for (Integer integer : departmentId) {
// TabHaobanDepartment tabDepartment = departmentService.getByWxId(integer.toString(), wxEnterpriseId);
// if(tabDepartment != null){
// TabHaobanStaffDepartmentRelated tabStaff = staffDepartmentRelatedService.getDepartmentIdAndStaffId(tabDepartment.getDepartmentId(), tab.getStaffId());
// if(tabStaff == null){
// StaffDepartmentRelatedDTO dto = new StaffDepartmentRelatedDTO();
// dto.setPhoneNumber(user.getMobile());
// dto.setWxUserId(userId);
// dto.setStaffId(staffId);
// dto.setStaffName(user.getName());
// dto.setWxEnterpriseId(wxEnterpriseId);
// dto.setStatusFlag(1);
// dto.setDepartmentId(tabDepartment.getDepartmentId());
// dto.setNationCode("86");
// dto.setStaffName(user.getName());
// staffDepartmentRelatedService.add(dto);
// }
// }
// }
}
}else{
WxEnterpriseDTO enterpriseDTO = wxEnterpriseService.selectById(wxEnterpriseId);
if(enterpriseDTO != null) {
//UserDTO user = qywxUserApiService.getSelfWorkWxUser(enterpriseDTO.getCorpid(), enterpriseDTO.getContactSecret(), userId);
logger.info("【修改用户】user={}",JSON.toJSONString(user));
Integer[] departmentId = user.getDepartment();
String departmentIds = "";
for (Integer integer : departmentId) {
TabHaobanDepartment tabDepartment = departmentService.getByWxId(integer.toString(), wxEnterpriseId);
if(tabDepartment != null){
departmentIds += tabDepartment.getDepartmentId() + ",";
}
}
if(StringUtils.isNotBlank(departmentIds)){
departmentIds = departmentIds.substring(0,departmentIds.length() - 1);
}
StaffDTO staffDTO = EntityUtil.changeEntityByJSON(StaffDTO.class, staff);
staffDTO.setWeixinPush(true);
this.staffEdit(staffDTO, departmentIds);
//String staffId = staffService.add(tab);
}
......@@ -1068,6 +1177,35 @@ public class StaffApiServiceImpl implements StaffApiService {
}
@Override
@RedisCache(value = "qrcode-${clerkCode}-${storeId}", timeOut = 10)
public ServiceResponse<String> getStaffQrcode(String clerkCode, String storeId) {
ServiceResponse<String> resp = new ServiceResponse<>();
TabHaobanDepartment department = departmentService.selectByRelatedId(storeId);
if (null == department) {
resp.setMessage("部门没关联");
resp.setCode(0);
return resp;
}
List<TabHaobanStaffDepartmentRelated> retList = staffDepartmentRelatedService.listByDepartmentId(department.getDepartmentId());
if (CollectionUtils.isEmpty(retList)) {
resp.setMessage("成员没关联");
resp.setCode(0);
return resp;
}
for (TabHaobanStaffDepartmentRelated tab : retList) {
if (tab.getClerkCode().equals(clerkCode)) {
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseService.selectById(department.getWxEnterpriseId());
UserDTO user = qywxUserApiService.getSelfWorkWxUser(wxEnterpriseDTO.getCorpid(), wxEnterpriseDTO.getContactSecret(), tab.getWxUserId());
if (user != null) {
resp.setResult(user.getQr_code());
return resp;
}
}
}
return resp;
}
// private String getMobile(String phoneNumber,String nationcode){
// String mobile = nationcode + phoneNumber;
// return mobile;
......
......@@ -2,7 +2,9 @@ package com.gic.haoban.manage.service.service.out.impl;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import org.apache.commons.lang3.StringUtils;
......@@ -14,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.csp.sentinel.util.StringUtil;
import com.alibaba.fastjson.JSONObject;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.EntityUtil;
......@@ -25,10 +28,13 @@ import com.gic.haoban.manage.api.service.ApplicationApiService;
import com.gic.haoban.manage.api.service.StaffDepartmentRelatedApiService;
import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.StaffDepartmentRelatedMapper;
import com.gic.haoban.manage.service.dao.mapper.WxEnterpriseMapper;
import com.gic.haoban.manage.service.entity.TabHaobanApplication;
import com.gic.haoban.manage.service.entity.TabHaobanStaffDepartmentRelated;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise;
import com.gic.haoban.manage.service.service.ApplicationService;
import com.gic.haoban.manage.service.service.StaffDepartmentRelatedService;
import com.gic.wechat.api.dto.qywx.ItemDTO;
import com.gic.wechat.api.dto.qywx.QywxXcxSendMessageDTO;
import com.gic.wechat.api.service.qywx.QywxSuiteApiService;
......@@ -47,6 +53,9 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
@Autowired
private QywxSuiteApiService qywxSuiteApiService;
@Autowired
private WxEnterpriseMapper wxEnterpriseMapper;
@Autowired
private Config config;
@Override
......@@ -108,40 +117,68 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
}
@Override
public String getWxUserIdByClerkId(String clerkId) {
public Map<String,String> getWxUserIdByClerkId(String clerkId) {
Map<String,String> map = new HashMap<>();
ClerkDTO clerkDTO = clerkService.getclerkById(clerkId);
if(clerkDTO == null){
return null;
return map;
}
String clerkCode =clerkDTO.getClerkCode();
if(StringUtil.isEmpty(clerkCode) ){
return null;
return map;
}
List<TabHaobanStaffDepartmentRelated> list = staffDepartmentRelatedMapper.listByClerkCode(clerkCode);
if(CollectionUtil.isEmpty(list)){
return null;
return map;
}
String wxUserId = list.get(0).getWxUserId();
return wxUserId;
String wxEnterpriseId = list.get(0).getWxEnterpriseId();
TabHaobanWxEnterprise tabHaobanWxEnterprise = wxEnterpriseMapper.selectByPrimaryKey(wxEnterpriseId);
map.put("wxUserId", wxUserId);
map.put("wxEnterpriseId", wxEnterpriseId);
map.put("corpId", tabHaobanWxEnterprise.getCorpid());
map.put("clerkName",clerkDTO.getClerkName());
return map;
}
@Override
public boolean sendSingleMessage(String clerkId, String title,
String content, String pageUrl) {
String wxUserId = getWxUserIdByClerkId(clerkId);
if(StringUtils.isEmpty(wxUserId)){
Map<String,String> map = getWxUserIdByClerkId(clerkId);
String wxUserId = map.get("wxUserId");
String corpId = map.get("corpId");
String name = map.get("clerkName");
if(jodd.util.StringUtil.isEmpty(wxUserId)){
logger.info("wxUserId不存在============clerkId={}",clerkId);
return false;
}
if(content.length()>30){
content = content.substring(0, 26);
content = content+"...";
}
//先发送下,试试
QywxXcxSendMessageDTO messageDTO = new QywxXcxSendMessageDTO();
List<ItemDTO> items = new ArrayList();;
ItemDTO dto1 = new ItemDTO();
ItemDTO dto2 = new ItemDTO();
dto1.setKey("接收人");
dto1.setValue(name);
dto2.setKey("接收事件");
dto2.setValue(content);
items.add(dto1);
items.add(dto2);
ArrayList<String> list = new ArrayList<>();
list.add(wxUserId);
messageDTO.setAppid(config.getAppid());
messageDTO.setUserIds(list);
messageDTO.setPage(pageUrl);
messageDTO.setTitle(title);
messageDTO.setDescription(content);
boolean b = qywxSuiteApiService.sendMessage(config.getCorpid(), config.getSuiteId(), messageDTO);
messageDTO.setItems(items);
logger.info("发送参数为corpId============:{},suitId============:{},messageDTO============:{},",corpId, config.getWxSuiteid(), JSONObject.toJSONString(messageDTO));
boolean b = qywxSuiteApiService.sendMessage(corpId,config.getWxSuiteid(), messageDTO);
logger.info("发送===============》{}",b);
return b;
}
......@@ -157,9 +194,10 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
}else{
url = baseUrl+"?pageType="+addurl;
}
url = url+"&data="+data;
String resultUrl = URLEncoder.encode(url);
return resultUrl;
url = url+"&data=";
String encodeData = URLEncoder.encode(data);
url = url+encodeData;
return url;
}
......
......@@ -35,8 +35,10 @@
<dubbo:service interface="com.gic.haoban.manage.api.service.ApplicationSettingApiService" ref="applicationSettingApiServiceImpl" timeout="10000"/>
<dubbo:service interface="com.gic.haoban.manage.api.service.AuditSettingApiService" ref="auditSettingApiServiceImpl" timeout="10000"/>
<dubbo:service interface="com.gic.haoban.manage.api.service.DictApiService" ref="dictApiServiceImpl" timeout="10000"/>
<dubbo:service interface="com.gic.haoban.manage.api.service.HelpApiService" ref="helpApiServiceImpl" timeout="10000"/>
<dubbo:service interface="com.gic.haoban.manage.api.service.AuditApiService" ref="auditApiServiceImpl" timeout="10000"/>
<dubbo:service interface="com.gic.haoban.manage.api.service.ClerkMainStoreRelatedApiService" ref="clerkMainStoreRelatedApiServiceImpl" timeout="10000"/>
<dubbo:service interface="com.gic.haoban.manage.api.service.MaidianLogApiService" ref="maidianLogApiServiceImpl" timeout="10000"/>
<dubbo:service interface="com.gic.haoban.manage.api.service.DealSyncOperationApiService"
ref="dealSyncOperationApiServiceImpl" timeout="10000"/>
......
......@@ -488,5 +488,14 @@
and status_flag = 1
and temp_flag = 1
</select>
<select id="totalStoreCountByEnterpriseId" resultType="java.lang.Integer" parameterType="java.lang.String" >
select
count(1)
from tab_haoban_department
where wx_enterprise_id = #{wxEnterpriseId}
and status_flag = 1
and recycle_flag != 1
and is_store = 1
</select>
</mapper>
\ No newline at end of file
......@@ -7,6 +7,7 @@
<result column="enterprise_id" jdbcType="VARCHAR" property="enterpriseId"/>
<result column="data_id" jdbcType="VARCHAR" property="dataId"/>
<result column="data_content" jdbcType="VARCHAR" property="dataContent"/>
<result column="reason" jdbcType="VARCHAR" property="reason"/>
<result column="p_data_id" jdbcType="VARCHAR" property="pDataId"/>
<result column="task_id" jdbcType="VARCHAR" property="taskId"/>
<result column="data_type" jdbcType="INTEGER" property="dataType"/>
......@@ -15,7 +16,7 @@
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
</resultMap>
<sql id="Base_Column_List">
id, wx_enterprise_id,enterprise_id, data_id, p_data_id, task_id, data_type, status_flag, create_time,
id, wx_enterprise_id,enterprise_id, data_id, p_data_id, task_id, data_type, status_flag,reason, create_time,
update_time
</sql>
<sql id="Base_Column_List_data">
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.gic.haoban.manage.service.dao.mapper.TabHaobanHelpMapper" >
<resultMap id="BaseResultMap" type="com.gic.haoban.manage.service.entity.TabHaobanHelp" >
<id column="help_id" property="helpId" jdbcType="VARCHAR" />
<result column="help_title" property="helpTitle" jdbcType="VARCHAR" />
<result column="help_url" property="helpUrl" jdbcType="VARCHAR" />
<result column="status_flag" property="statusFlag" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
<result column="open_flag" property="openFlag" jdbcType="INTEGER" />
<result column="edit_persion" property="editPersion" jdbcType="VARCHAR" />
<result column="sort" property="sort" jdbcType="INTEGER" />
</resultMap>
<sql id="Base_Column_List" >
help_id, help_title, help_url, status_flag, create_time, update_time, open_flag,
edit_persion, sort
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
select
<include refid="Base_Column_List" />
from tab_haoban_help
where help_id = #{helpId,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
delete from tab_haoban_help
where help_id = #{helpId,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.gic.haoban.manage.service.entity.TabHaobanHelp" >
insert into tab_haoban_help (help_id, help_title, help_url,
status_flag, create_time, update_time,
open_flag, edit_persion, sort
)
values (#{helpId,jdbcType=VARCHAR}, #{helpTitle,jdbcType=VARCHAR}, #{helpUrl,jdbcType=VARCHAR},
#{statusFlag,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP},
#{openFlag,jdbcType=INTEGER}, #{editPersion,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}
)
</insert>
<insert id="insertSelective" parameterType="com.gic.haoban.manage.service.entity.TabHaobanHelp" >
insert into tab_haoban_help
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="helpId != null" >
help_id,
</if>
<if test="helpTitle != null" >
help_title,
</if>
<if test="helpUrl != null" >
help_url,
</if>
<if test="statusFlag != null" >
status_flag,
</if>
<if test="createTime != null" >
create_time,
</if>
<if test="updateTime != null" >
update_time,
</if>
<if test="openFlag != null" >
open_flag,
</if>
<if test="editPersion != null" >
edit_persion,
</if>
<if test="sort != null" >
sort,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="helpId != null" >
#{helpId,jdbcType=VARCHAR},
</if>
<if test="helpTitle != null" >
#{helpTitle,jdbcType=VARCHAR},
</if>
<if test="helpUrl != null" >
#{helpUrl,jdbcType=VARCHAR},
</if>
<if test="statusFlag != null" >
#{statusFlag,jdbcType=INTEGER},
</if>
<if test="createTime != null" >
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null" >
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="openFlag != null" >
#{openFlag,jdbcType=INTEGER},
</if>
<if test="editPersion != null" >
#{editPersion,jdbcType=VARCHAR},
</if>
<if test="sort != null" >
#{sort,jdbcType=INTEGER},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.gic.haoban.manage.service.entity.TabHaobanHelp" >
update tab_haoban_help
<set >
<if test="helpTitle != null" >
help_title = #{helpTitle,jdbcType=VARCHAR},
</if>
<if test="helpUrl != null" >
help_url = #{helpUrl,jdbcType=VARCHAR},
</if>
<if test="statusFlag != null" >
status_flag = #{statusFlag,jdbcType=INTEGER},
</if>
<if test="createTime != null" >
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null" >
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="openFlag != null" >
open_flag = #{openFlag,jdbcType=INTEGER},
</if>
<if test="editPersion != null" >
edit_persion = #{editPersion,jdbcType=VARCHAR},
</if>
<if test="sort != null" >
sort = #{sort,jdbcType=INTEGER},
</if>
</set>
where help_id = #{helpId,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.gic.haoban.manage.service.entity.TabHaobanHelp" >
update tab_haoban_help
set help_title = #{helpTitle,jdbcType=VARCHAR},
help_url = #{helpUrl,jdbcType=VARCHAR},
status_flag = #{statusFlag,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP},
open_flag = #{openFlag,jdbcType=INTEGER},
edit_persion = #{editPersion,jdbcType=VARCHAR},
sort = #{sort,jdbcType=INTEGER}
where help_id = #{helpId,jdbcType=VARCHAR}
</update>
<select id="pageList" resultMap="BaseResultMap" parameterType="java.lang.String" >
select
<include refid="Base_Column_List" />
from tab_haoban_help
where status_flag = 1
order by update_time desc
</select>
<select id="selectByHelpTitle" resultMap="BaseResultMap" parameterType="java.lang.String" >
select
<include refid="Base_Column_List" />
from tab_haoban_help
where help_title = #{helpTitleitle,jdbcType=VARCHAR}
and status_flag = 1
</select>
<select id="getList" resultMap="BaseResultMap" parameterType="java.lang.String" >
select
<include refid="Base_Column_List" />
from tab_haoban_help
where status_flag = 1
and open_flag =1
order by update_time desc
</select>
</mapper>
\ No newline at end of file
......@@ -30,6 +30,9 @@
<result column="level" property="level" jdbcType="INTEGER" />
<result column="contact_flag" property="contactFlag" jdbcType="INTEGER" />
<result column="bind_flag" property="bindFlag" jdbcType="INTEGER" />
<result column="wx_secret_key_last_time" property="wxSecretKeyLastTime" jdbcType="TIMESTAMP" />
<result column="member_secret_last_time" property="memberSecretLastTime" jdbcType="TIMESTAMP"/>
<result column="contact_secret_last_time" property="contactSecretLastTime" jdbcType="TIMESTAMP"/>
<result column="status_flag" property="statusFlag" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
......@@ -38,7 +41,7 @@
wx_enterprise_id, corpid, permanent_code, corp_name, corp_type, corp_square_logo_url,
corp_user_max, corp_full_name, subject_type, verified_end_time, corp_wxqrcode, corp_scale,
corp_industry, corp_sub_industry, location, auth_info, agent, agentid, appid, name,
square_logo_url, round_logo_url, level, bind_flag, status_flag, create_time, update_time,contact_flag,wx_secret_key
square_logo_url, round_logo_url, level, bind_flag, status_flag, create_time, update_time,contact_flag,wx_secret_key,wx_secret_key_last_time,member_secret_last_time,contact_secret_last_time
,member_secret,contact_secret
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
......@@ -350,6 +353,15 @@
<if test="contactSecret != null" >
contact_secret = #{contactSecret,jdbcType=VARCHAR},
</if>
<if test="wxSecretKeyLastTime != null" >
wx_secret_key_last_time = #{wxSecretKeyLastTime,jdbcType=TIMESTAMP},
</if>
<if test="contactSecretLastTime != null" >
contact_secret_last_time = #{contactSecretLastTime,jdbcType=TIMESTAMP},
</if>
<if test="memberSecretLastTime != null" >
member_secret_last_time = #{memberSecretLastTime,jdbcType=TIMESTAMP},
</if>
</set>
where wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
</update>
......@@ -383,6 +395,9 @@
create_time = #{createTime,jdbcType=TIMESTAMP},
wx_secret_key = #{wxSecretKey,jdbcType=VARCHAR},
contact_secret = #{contactSecret,jdbcType=VARCHAR},
wx_secret_key_last_time = #{wxSecretKeyLastTime,jdbcType=TIMESTAMP},
contact_secret_last_time = #{contactSecretLastTime,jdbcType=TIMESTAMP},
member_secret_last_time = #{memberSecretLastTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
</update>
......
......@@ -2,9 +2,12 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.JSONResponse;
import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService;
import com.gic.redis.data.util.RedisUtil;
import com.gic.wechat.api.dto.qywx.DepartmentDTO;
import com.gic.wechat.api.dto.qywx.QywxXcxSendMessageDTO;
import com.gic.wechat.api.dto.qywx.UserDTO;
import com.gic.wechat.api.service.qywx.QywxDepartmentApiService;
import com.gic.wechat.api.service.qywx.QywxSuiteApiService;
......@@ -16,6 +19,7 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
......@@ -34,6 +38,9 @@ public class ServiceTest {
@Autowired
private QywxSuiteApiService qywxSuiteApiService;
@Autowired
private StaffApiService staffApiService;
@Test
public void test() {
System.err.println(RedisUtil.getCache("init-enterprise-ca66a01b79474c40b3e7c7f93daf1a3b"));
......@@ -102,32 +109,66 @@ public class ServiceTest {
// System.out.println(JSONObject.toJSONString(phonenumber));
// }
//
// @Test
// public void createSelfUser() {
// UserDTO userDTO = new UserDTO();
// userDTO.setUserid("niweizhong2");
// userDTO.setName("空闻大师2");
// userDTO.setDepartment(new Integer[]{5072});
// userDTO.setMobile("17605628851");
// userDTO.setCorpid("ww9ede832a84b7ae5f");
// JSONResponse workWxUser = qywxUserApiService.createSelfWorkWxUser(userDTO, "ww9ede832a84b7ae5f",
// "3aOw7jbcHlHkDmOi5TuG42Ta8NqskOhZxy5urrmaGl8");
// System.out.println(JSONObject.toJSONString(workWxUser));
// }
//
//
// @Test
// public void sendMessage() {
// QywxXcxSendMessageDTO messageDTO = new QywxXcxSendMessageDTO();
// messageDTO.setAppid("wx6054e7be35015afc");
// ArrayList<String> userIDs = new ArrayList<>();
// userIDs.add("9ae4c4f1277340a186b16a17d937c72c");
// messageDTO.setUserIds(userIDs);
// messageDTO.setTitle("我的测试test");
// messageDTO.setDescription("我的测试test11111");
// boolean ret = qywxSuiteApiService.sendMessage("ww9ede832a84b7ae5f",
// "ww2c34dc56739bb105", messageDTO);
// System.out.println(JSONObject.toJSONString(ret));
// }
@Test
public void createSelfUser() {
UserDTO userDTO = new UserDTO();
userDTO.setUserid("niweizhong2");
userDTO.setName("空闻大师2");
userDTO.setDepartment(new Integer[]{5072});
userDTO.setMobile("17605628851");
userDTO.setCorpid("ww9ede832a84b7ae5f");
JSONResponse workWxUser = qywxUserApiService.createSelfWorkWxUser(userDTO, "n",
"3aOw7jbcHlHkDmOi5TuG42Ta8NqskOhZxy5urrmaGl8");
System.out.println(JSONObject.toJSONString(workWxUser));
}
@Test
public void sendMessage() {
QywxXcxSendMessageDTO messageDTO = new QywxXcxSendMessageDTO();
messageDTO.setAppid("wx6054e7be35015afc");
ArrayList<String> userIDs = new ArrayList<>();
userIDs.add("9ae4c4f1277340a186b16a17d937c72c");
messageDTO.setUserIds(userIDs);
messageDTO.setTitle("我的测试test");
messageDTO.setDescription("我的测试test11111");
HashMap<String, String> map = new HashMap<>();
map.put("名称", "hua");
// messageDTO.setItems(map);
boolean ret = qywxSuiteApiService.sendMessage("ww9ede832a84b7ae5f",
"ww2c34dc56739bb105", messageDTO);
System.out.println(JSONObject.toJSONString(ret));
}
@Test
public void listExternalUserid() {
UserDTO userDTO = new UserDTO();
userDTO.setUserid("niweizhong2");
userDTO.setName("空闻大师2");
userDTO.setDepartment(new Integer[]{5072});
userDTO.setMobile("17605628851");
userDTO.setCorpid("ww9ede832a84b7ae5f");
String s = qywxUserApiService.listExternalUserid("ww9ede832a84b7ae5f",
"ww2c34dc56739bb105", "qiuwenmin");
System.out.println(s);
}
@Test
public void getQrcode() {
UserDTO workWxUser = qywxUserApiService.getSelfWorkWxUser("ww9ede832a84b7ae5f", "3aOw7jbcHlHkDmOi5TuG42Ta8NqskOhZxy5urrmaGl8", "lining");
ServiceResponse<String> qrcode = staffApiService.getStaffQrcode("167442", "ff8080817181d322017182737b16021f");
System.out.println(JSONObject.toJSONString(qrcode));
}
@Test
public void extensionList() {
String s = qywxUserApiService.listSelfExternalUserid("ww9ede832a84b7ae5f", "01YQ-pcdYzF3K0So8uCFfkB5i8D5EBW7KcVB4qA8Ktk", "qiuwenmin");
System.out.println(JSONObject.toJSONString(s));
}
}
......@@ -52,6 +52,7 @@ import com.gic.haoban.manage.web.qo.DepartmentAddQO;
import com.gic.haoban.manage.web.qo.DepartmentEditQO;
import com.gic.haoban.manage.web.qo.SyncDepartmentQO;
import com.gic.haoban.manage.web.thread.SyncDepartmentThread;
import com.gic.haoban.manage.web.vo.DepartmentChainVO;
import com.gic.haoban.manage.web.vo.DepartmentVO;
import com.gic.haoban.manage.web.vo.LoginVO;
import com.gic.haoban.manage.web.vo.StoreVo;
......@@ -83,7 +84,7 @@ public class DepartmentContoller extends WebBaseController{
private StaffDepartmentRelatedApiService staffDepartmentRelatedApiService;
@RequestMapping("department-list")
public HaobanResponse departmentList(String parentId,BasePageInfo pageInfo,String keyWord) {
LoginVO login = (LoginVO) AuthRequestUtil.getSessionUser();
LoginVO login = (LoginVO) AuthRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
logger.info("【部门列表】wxEnterpriseId={}",wxEnterpriseId);
......@@ -124,7 +125,7 @@ public class DepartmentContoller extends WebBaseController{
@RequestMapping("department-list-level")
public HaobanResponse departmentLevelList(String parentId) {
LoginVO login = (LoginVO) AuthRequestUtil.getSessionUser();
LoginVO login = (LoginVO) AuthRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
logger.info("【部门层级列表】wxEnterpriseId={}",wxEnterpriseId);
List<DepartmentDTO> list = new ArrayList<DepartmentDTO>();
......@@ -395,6 +396,34 @@ public class DepartmentContoller extends WebBaseController{
}
@RequestMapping("department-chain")
public HaobanResponse departmentChain(String departmentId) {
if(StringUtils.isBlank(departmentId)){
return resultResponse(HaoBanErrCode.ERR_2);
}
DepartmentDTO department = departmentApiService.selectById(departmentId);
if(department == null){
return resultResponse(HaoBanErrCode.ERR_10003);
}
String chainId = departmentId;
while(department != null){
department = departmentApiService.selectById(department.getParentDepartmentId());
if(department != null){
chainId = department.getDepartmentId() + Constant.ID_SEPARATOR + chainId;
}
}
String[] chainIdArr = chainId.split(Constant.ID_SEPARATOR);
List<DepartmentChainVO> list = new ArrayList<>();
for (String string : chainIdArr) {
DepartmentDTO son = departmentApiService.selectById(string);
DepartmentChainVO chain = EntityUtil.changeEntityByJSON(DepartmentChainVO.class, son);
if(son != null){
list.add(chain);
}
}
return resultResponse(HaoBanErrCode.ERR_1,list);
}
@RequestMapping("department-batch-sync-success")
public HaobanResponse syncSuccess(String syncKey) {
if(RedisUtil.getCache(syncKey) == null){
......
package com.gic.haoban.manage.web.controller;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.gic.haoban.common.utils.CheckSmsCodeUtil;
import com.gic.haoban.common.utils.GooglePhoneNumberUtil;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.communicate.api.service.valid.ValidationCodeService;
import com.gic.haoban.manage.api.dto.HelpDTO;
import com.gic.haoban.manage.api.service.HelpApiService;
import com.gic.haoban.manage.web.anno.IgnoreLogin;
//import com.gic.haoban.manage.api.dto.StaffDTO;
//import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.redis.data.util.RedisUtil;
import com.gic.reponse.SendSmsResponse;
@RestController
public class HelpController extends WebBaseController{
private static Logger logger = LoggerFactory.getLogger(HelpController.class);
@Autowired
private HelpApiService helpApiService;
/**
* 帮助中心列表
* @return
*/
@IgnoreLogin
@RequestMapping("/get-help-list")
public HaobanResponse getHelpList() {
List<HelpDTO> list = helpApiService.getList();
return resultResponse(HaoBanErrCode.ERR_1,list);
}
}
......@@ -31,6 +31,7 @@ import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.List;
import java.util.concurrent.TimeUnit;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
......@@ -72,7 +73,7 @@ public class LoginController extends WebBaseController{
if(loginStaff == null){
if(enterprise != null){
staffApiService.wxGetAdd(user.getUserid(),enterprise.getWxEnterpriseId());
staffApiService.wxFristAdd(JSON.toJSONString(user),enterprise.getWxEnterpriseId());
loginStaff = staffApiService.selectByUserIdAndEnterpriseId(user.getUserid(),enterprise.getWxEnterpriseId());
}
}
......@@ -170,7 +171,19 @@ public class LoginController extends WebBaseController{
@RequestMapping("login-out")
public HaobanResponse loginOut() {
AuthRequestUtil.delSessionUser();
String token = "";
Cookie[] cookies = AuthRequestUtil.getRequest().getCookies();
if(cookies != null){
for (Cookie cookie : cookies) {
if(cookie.getName().equals("token")){
token = cookie.getValue();
break;
}
}
}
if(StringUtils.isNotBlank(token)){
RedisUtil.delCache(token);
}
return resultResponse(HaoBanErrCode.ERR_1);
}
......
......@@ -12,8 +12,15 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.Page;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.DepartmentService;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.PageResult;
import com.gic.haoban.base.api.common.ServiceResponse;
......@@ -32,6 +39,7 @@ import com.gic.haoban.manage.web.auth.AuthRequestUtil;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.qo.StaffEditJsonQO;
import com.gic.haoban.manage.web.vo.LoginVO;
import com.gic.haoban.manage.web.vo.StaffVO;
import com.gic.wechat.api.service.qywx.QywxUserApiService;
......@@ -51,6 +59,10 @@ public class StaffController extends WebBaseController{
private WxEnterpriseApiService wxEnterpriseApiService;
@Autowired
private WxApplicationApiService wxApplicationApiService;
@Autowired
private ClerkService clerkService;
@Autowired
private StoreService storeService;
@RequestMapping("staff-add")
public HaobanResponse staffAdd(StaffDTO staffDTO,String departmentIds){
......@@ -117,6 +129,14 @@ public class StaffController extends WebBaseController{
@RequestMapping("staff-del")
public HaobanResponse staffDel(String staffDepartmentStaffRelatedId){
StaffDepartmentRelatedDTO related = staffDepartmentRelatedApiService.getByStaffDepartmentRelatedId(staffDepartmentStaffRelatedId);
if(related == null){
return resultResponse(HaoBanErrCode.ERR_8);
}
DepartmentDTO department = departmentApiService.selectById(related.getDepartmentId());
if(department.getTempFlag() != null && department.getTempFlag() == 1){
return resultResponse(HaoBanErrCode.ERR_10014);
}
staffApiService.del(staffDepartmentStaffRelatedId);
return resultResponse(HaoBanErrCode.ERR_1);
}
......@@ -127,7 +147,19 @@ public class StaffController extends WebBaseController{
return resultResponse(HaoBanErrCode.ERR_2);
}
String[] staffArr = staffDepartmentRelatedIds.split(",");
int size = staffArr.length;
for (String string : staffArr) {
StaffDepartmentRelatedDTO related = staffDepartmentRelatedApiService.getByStaffDepartmentRelatedId(string);
if(related == null){
continue;
}
DepartmentDTO department = departmentApiService.selectById(related.getDepartmentId());
if(department.getTempFlag() != null && department.getTempFlag() == 1){
if(size == 1){
return resultResponse(HaoBanErrCode.ERR_10014);
}
continue;
}
staffApiService.del(string);
}
return resultResponse(HaoBanErrCode.ERR_1);
......@@ -195,4 +227,44 @@ public class StaffController extends WebBaseController{
return resultResponse(HaoBanErrCode.ERR_1);
}
@RequestMapping("get-clerk-info")
public HaobanResponse getClerkInfo(String clerkId){
StaffVO staffVO = new StaffVO();
ClerkDTO clerk = clerkService.getClerkByClerkId(clerkId);
if(clerk != null) {
String storeId = clerk.getStoreId();
StoreDTO storeDTO = storeService.getStore(storeId);
staffVO.setStaffName(clerk.getClerkName());
staffVO.setNationCode(clerk.getNationcode());
staffVO.setPhoneNumber(clerk.getPhoneNumber());
staffVO.setPosition(clerk.getPositionName());
staffVO.setHeadImg(clerk.getHeadImgUrl());
staffVO.setDepartmentName(storeDTO==null?"":storeDTO.getStoreName());
}
return resultResponse(HaoBanErrCode.ERR_1,staffVO);
}
@RequestMapping("get-staff-info")
public HaobanResponse getStaffInfo(String staffId){
StaffVO staffVO = new StaffVO();
StaffDTO staff = staffApiService.selectById(staffId);
if(staff != null) {
List<StaffDepartmentRelatedDTO> list = staffDepartmentRelatedApiService.listByStaffId(staffId);
staffVO.setStaffName(staff.getStaffName());
staffVO.setNationCode(staff.getNationCode());
staffVO.setPhoneNumber(staff.getPhoneNumber());
staffVO.setPosition(staff.getPostion());
staffVO.setHeadImg(staff.getHeadImg());
if(CollectionUtil.isNotEmpty(list)){
String departmentId = list.get(0).getDepartmentId();
DepartmentDTO departmentDTO = departmentApiService.selectById(departmentId);
if(departmentDTO != null){
staffVO.setDepartmentName(departmentDTO.getDepartmentName());
}
}
}
return resultResponse(HaoBanErrCode.ERR_1,staffVO);
}
}
......@@ -5,6 +5,7 @@ import com.gic.api.base.commons.Page;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.manage.api.dto.PreDealLogInfoDTO;
import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.api.dto.SyncCheckDTO;
import com.gic.haoban.manage.api.dto.SyncTaskDTO;
import com.gic.haoban.manage.api.service.DealSyncOperationApiService;
......@@ -14,6 +15,8 @@ import com.gic.haoban.manage.web.qo.SyncDealQO;
import com.gic.haoban.manage.web.vo.LoginVO;
import com.gic.redis.data.util.RedisUtil;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -22,6 +25,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
@RestController
public class SyncDealContoller extends WebBaseController {
......@@ -39,7 +44,7 @@ public class SyncDealContoller extends WebBaseController {
task = dealSyncOperationApiService.createTask(wxEid, "门店同步", "11111", "部门同步");
dealSyncOperationApiService.dealDepartment(task, wxEid, qo.getAddDepartment(), qo.getEditDepartment());
} else {
LoginVO login = (LoginVO) AuthRequestUtil.getSessionUser();
LoginVO login = (LoginVO) AuthRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
String key = "haoban-sync-department-" + wxEnterpriseId;
if (RedisUtil.getCache(key) != null) {
......@@ -58,7 +63,7 @@ public class SyncDealContoller extends WebBaseController {
public HaobanResponse departmentBatchSync(@RequestBody SyncDealQO qo) {
String task = null;
LoginVO login = (LoginVO) AuthRequestUtil.getSessionUser();
LoginVO login = (LoginVO) AuthRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
logger.info("login:{}", JSONObject.toJSONString(login));
......@@ -67,7 +72,13 @@ public class SyncDealContoller extends WebBaseController {
if (null != taskLock) {
return resultResponse(HaoBanErrCode.ERR_10011);
}
task = dealSyncOperationApiService.createTask(wxEnterpriseId, "门店同步", "admin", "部门同步");
StaffDTO staffDTO = login.getStaffDTO();
String staffId = "admin";
if (null != staffDTO) {
staffId = staffDTO.getStaffId();
}
String format = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
task = dealSyncOperationApiService.createTask(wxEnterpriseId, "门店同步-" + format, staffId, "部门同步");
if (task == null) {
return resultResponse(HaoBanErrCode.ERR_10011);
}
......@@ -86,7 +97,7 @@ public class SyncDealContoller extends WebBaseController {
@RequestMapping("department-sync-check")
public HaobanResponse syncSuccess(String wxEnterpriseId) {
if (StringUtils.isBlank(wxEnterpriseId)) {
LoginVO login = (LoginVO) AuthRequestUtil.getSessionUser();
LoginVO login = (LoginVO) AuthRequestUtil.getLoginUser();
wxEnterpriseId = login.getWxEnterpriseId();
}
SyncCheckDTO taskCheck = dealSyncOperationApiService.getTaskCheck(wxEnterpriseId);
......@@ -102,7 +113,7 @@ public class SyncDealContoller extends WebBaseController {
@RequestMapping("/test/department-sync-check")
public HaobanResponse testSyncSuccess(String wxEnterpriseId) {
if (StringUtils.isBlank(wxEnterpriseId)) {
LoginVO login = (LoginVO) AuthRequestUtil.getSessionUser();
LoginVO login = (LoginVO) AuthRequestUtil.getLoginUser();
wxEnterpriseId = login.getWxEnterpriseId();
}
SyncCheckDTO taskCheck = dealSyncOperationApiService.getTaskCheck(wxEnterpriseId);
......@@ -113,7 +124,7 @@ public class SyncDealContoller extends WebBaseController {
@ResponseBody
public HaobanResponse clerkReSync(String taskId) {
if (StringUtils.isBlank(taskId)) {
LoginVO login = (LoginVO) AuthRequestUtil.getSessionUser();
LoginVO login = (LoginVO) AuthRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
taskId = dealSyncOperationApiService.getTaskLock(wxEnterpriseId);
}
......@@ -126,7 +137,7 @@ public class SyncDealContoller extends WebBaseController {
@ResponseBody
public HaobanResponse closeReSync(String wxEnterpriseId) {
if (StringUtils.isBlank(wxEnterpriseId)) {
LoginVO login = (LoginVO) AuthRequestUtil.getSessionUser();
LoginVO login = (LoginVO) AuthRequestUtil.getLoginUser();
wxEnterpriseId = login.getWxEnterpriseId();
}
dealSyncOperationApiService.closeTask(wxEnterpriseId);
......
......@@ -17,6 +17,7 @@ import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.druid.util.StringUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.commons.util.DateUtil;
import com.gic.enterprise.api.dto.EnterpriseAndUserDTO;
......@@ -28,24 +29,21 @@ import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.common.utils.StringUtil;
import com.gic.haoban.manage.api.dto.DepartmentDTO;
import com.gic.haoban.manage.api.dto.EnterpriseDetailDTO;
import com.gic.haoban.manage.api.dto.QywxCorpInfoSimpleDTO;
import com.gic.haoban.manage.api.dto.WxApplicationDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseDTO;
import com.gic.haoban.manage.api.dto.YwWxEnterpriseDTO;
import com.gic.haoban.manage.api.service.DepartmentApiService;
import com.gic.haoban.manage.api.service.WxApplicationApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService;
import com.gic.haoban.manage.web.anno.HttpLimit;
import com.gic.haoban.manage.web.anno.IgnoreLogin;
import com.gic.haoban.manage.web.auth.AuthRequestUtil;
import com.gic.haoban.manage.web.config.Config;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.vo.LoginVO;
import com.gic.haoban.manage.web.vo.StoreVo;
import com.gic.wechat.api.service.qywx.QywxCorpApiService;
import com.gic.wechat.api.dto.qywx.UserDTO;
import com.gic.wechat.api.service.qywx.QywxUserApiService;
import com.gic.wechat.token.api.dto.QywxCorpInfoDTO;
import com.gic.wechat.token.api.service.QywxTokenManageService;
......@@ -65,9 +63,9 @@ public class WxEnterpriseController extends WebBaseController{
@Autowired
private QywxTokenManageService qywxTokenManageService;
@Autowired
private WxApplicationApiService wxApplicationApiService;
@Autowired
private Config config;
@Autowired
private QywxUserApiService qywxUserApiService;
//授权企业列表
......@@ -102,7 +100,9 @@ public class WxEnterpriseController extends WebBaseController{
return resultResponse(HaoBanErrCode.ERR_1);
}
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseApiService.getOne(wxEnterpriseId);
wxEnterpriseDTO.setSmallVersion("免费版");
wxEnterpriseDTO.setStoreTotal(departmentApiService.totalStoreCountByEnterpriseId(wxEnterpriseId));
return resultResponse(HaoBanErrCode.ERR_1,wxEnterpriseDTO);
}
......@@ -117,7 +117,7 @@ public class WxEnterpriseController extends WebBaseController{
if(wxEnterpriseDTO == null){
return resultResponse(HaoBanErrCode.ERR_10012);
}
QywxCorpInfoDTO dto = qywxTokenManageService.getCorpInfo(wxEnterpriseDTO.getCorpid(), config.getSuiteId());
QywxCorpInfoDTO dto = qywxTokenManageService.getCorpInfo(wxEnterpriseDTO.getCorpid(), config.getWxSuiteid());
Long verifiedEndTime = dto.getVerifiedEndTime();
if(dto == null){
return resultResponse(HaoBanErrCode.ERR_10012);
......@@ -149,7 +149,7 @@ public class WxEnterpriseController extends WebBaseController{
if(org.apache.commons.lang3.StringUtils.isAnyBlank(enterpriseId,version)){
return resultResponse(HaoBanErrCode.ERR_2);
}
LoginVO login = (LoginVO) AuthRequestUtil.getSessionUser();
LoginVO login = (LoginVO) AuthRequestUtil.getLoginUser();
wxEnterpriseId = login.getWxEnterpriseId();
int i = wxEnterpriseRelatedApiService.wxEnterpriseBind(enterpriseId,wxEnterpriseId,version);
if(i==1){
......@@ -162,7 +162,7 @@ public class WxEnterpriseController extends WebBaseController{
@IgnoreLogin
@RequestMapping("store-full-list")
public HaobanResponse storeFullList(BasePageInfo basePageInfo,String keyWord) {
LoginVO login = (LoginVO) AuthRequestUtil.getSessionUser();
LoginVO login = (LoginVO) AuthRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
// String wxEnterpriseId = "1";
int maxVersionCount = 0;
......@@ -215,5 +215,107 @@ public class WxEnterpriseController extends WebBaseController{
return resultResponse(HaoBanErrCode.ERR_1,resultPage);
}
//微信企业是否设置key
@IgnoreLogin
@RequestMapping("is-wx-enterprise-secret-set")
public HaobanResponse isWxEnterpriseSecretSet() {
String wxEnterpriseId = "";
LoginVO login = (LoginVO) AuthRequestUtil.getLoginUser();
wxEnterpriseId = login.getWxEnterpriseId();
WxEnterpriseDTO wxEnterprise = wxEnterpriseApiService.getOne(wxEnterpriseId);
if(wxEnterprise != null && org.apache.commons.lang3.StringUtils.isAnyBlank(wxEnterprise.getContactSecret(),wxEnterprise.getWxSecretKey(),wxEnterprise.getMemberSecret())){
return resultResponse(HaoBanErrCode.ERR_1,false);
}
return resultResponse(HaoBanErrCode.ERR_1,true);
}
//微信企业绑定接口绑定通讯录key
@IgnoreLogin
@RequestMapping("wx-enterprise-contact-secret-set")
public HaobanResponse wxEnterpriseSecretSet(String contactSecret) {
if(org.apache.commons.lang3.StringUtils.isAnyBlank(contactSecret)){
return resultResponse(HaoBanErrCode.ERR_2);
}
String wxEnterpriseId = "";
LoginVO login = (LoginVO) AuthRequestUtil.getLoginUser();
wxEnterpriseId = login.getWxEnterpriseId();
WxEnterpriseDTO wxEnterprise = wxEnterpriseApiService.getOne(wxEnterpriseId);
if(wxEnterprise == null){
return resultResponse(HaoBanErrCode.ERR_10012);
}
UserDTO user = qywxUserApiService.getSelfWorkWxUser(wxEnterprise.getCorpid(), contactSecret, login.getStaffDTO().getWxUserId());
logger.info("【保存联系人key】user={}",JSON.toJSONString(user));
if(user != null){
wxEnterprise.setContactSecret(contactSecret);
wxEnterprise.setContactSecretLastTime(new Date());
wxEnterpriseApiService.update(wxEnterprise);
return resultResponse(HaoBanErrCode.ERR_1,true);
}else{
wxEnterprise.setContactSecretLastTime(new Date());
wxEnterpriseApiService.update(wxEnterprise);
return resultResponse(HaoBanErrCode.ERR_10013);
}
}
//微信企业绑定接口绑定通讯录key
@IgnoreLogin
@RequestMapping("wx-enterprise-wx-secret-set")
public HaobanResponse wxEnterpriseWxSecretSet(String wxSecretKey) {
if(org.apache.commons.lang3.StringUtils.isAnyBlank(wxSecretKey)){
return resultResponse(HaoBanErrCode.ERR_2);
}
String wxEnterpriseId = "";
LoginVO login = (LoginVO) AuthRequestUtil.getLoginUser();
wxEnterpriseId = login.getWxEnterpriseId();
WxEnterpriseDTO wxEnterprise = wxEnterpriseApiService.getOne(wxEnterpriseId);
if(wxEnterprise == null){
return resultResponse(HaoBanErrCode.ERR_10012);
}
String res = qywxUserApiService.listSelfExternalUserid(wxEnterprise.getCorpid(), wxSecretKey, login.getStaffDTO().getWxUserId());
logger.info("【保存联系人key】res={}",res);
if(org.apache.commons.lang3.StringUtils.isBlank(res)){
wxEnterprise.setWxSecretKeyLastTime(new Date());
wxEnterpriseApiService.update(wxEnterprise);
return resultResponse(HaoBanErrCode.ERR_10013);
}else{
wxEnterprise.setWxSecretKey(wxSecretKey);
wxEnterprise.setWxSecretKeyLastTime(new Date());
wxEnterpriseApiService.update(wxEnterprise);
return resultResponse(HaoBanErrCode.ERR_1,true);
}
}
//微信企业会员小程序
@IgnoreLogin
@RequestMapping("wx-enterprise-member-secret-set")
public HaobanResponse wxEnterpriseMemberSecretSet(String memberSecret) {
if(org.apache.commons.lang3.StringUtils.isAnyBlank(memberSecret)){
return resultResponse(HaoBanErrCode.ERR_2);
}
String wxEnterpriseId = "";
LoginVO login = (LoginVO) AuthRequestUtil.getLoginUser();
wxEnterpriseId = login.getWxEnterpriseId();
WxEnterpriseDTO wxEnterprise = wxEnterpriseApiService.getOne(wxEnterpriseId);
if(wxEnterprise == null){
return resultResponse(HaoBanErrCode.ERR_10012);
}
UserDTO user = qywxUserApiService.getSelfWorkWxUser(wxEnterprise.getCorpid(), memberSecret, login.getStaffDTO().getWxUserId());
if(user != null){
wxEnterprise.setMemberSecret(memberSecret);
wxEnterprise.setMemberSecretLastTime(new Date());
wxEnterpriseApiService.update(wxEnterprise);
return resultResponse(HaoBanErrCode.ERR_1,true);
}else{
wxEnterprise.setMemberSecretLastTime(new Date());
wxEnterpriseApiService.update(wxEnterprise);
return resultResponse(HaoBanErrCode.ERR_10013);
}
}
}
......@@ -82,6 +82,10 @@ public enum HaoBanErrCode {
ERR_10011(10011,"正在同步中,请等待结束再操作"),
ERR_10012(10012,"企业微信不存在"),
ERR_10013(10013,"secret设置失败,请确认"),
ERR_10014(10014,"暂存部门人员不能删除"),
ERR_DEFINE(-888, "自定义错误"),
ERR_OTHER(-999, "未知错误code");
......
package com.gic.haoban.manage.web.vo;
import java.io.Serializable;
public class DepartmentChainVO implements Serializable{
private String departmentId;
private String departmentName;
private String parentDepartmentId;
private String relatedId;
private Integer isStore;
private String wxDepartmentId;
private Integer level;
private Integer sort;
private String wxEnterpriseId;
private Integer type;
private Integer bindFlag;
private String gicEnterpriseName;
private Boolean hasSonNode;
private String enterpriseId;
private String relatedCode;
private DepartmentChainVO sonDepartment;
public String getDepartmentId() {
return departmentId;
}
public void setDepartmentId(String departmentId) {
this.departmentId = departmentId;
}
public String getDepartmentName() {
return departmentName;
}
public void setDepartmentName(String departmentName) {
this.departmentName = departmentName;
}
public String getParentDepartmentId() {
return parentDepartmentId;
}
public void setParentDepartmentId(String parentDepartmentId) {
this.parentDepartmentId = parentDepartmentId;
}
public String getRelatedId() {
return relatedId;
}
public void setRelatedId(String relatedId) {
this.relatedId = relatedId;
}
public Integer getIsStore() {
return isStore;
}
public void setIsStore(Integer isStore) {
this.isStore = isStore;
}
public String getWxDepartmentId() {
return wxDepartmentId;
}
public void setWxDepartmentId(String wxDepartmentId) {
this.wxDepartmentId = wxDepartmentId;
}
public Integer getLevel() {
return level;
}
public void setLevel(Integer level) {
this.level = level;
}
public Integer getSort() {
return sort;
}
public void setSort(Integer sort) {
this.sort = sort;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public Integer getBindFlag() {
return bindFlag;
}
public void setBindFlag(Integer bindFlag) {
this.bindFlag = bindFlag;
}
public String getGicEnterpriseName() {
return gicEnterpriseName;
}
public void setGicEnterpriseName(String gicEnterpriseName) {
this.gicEnterpriseName = gicEnterpriseName;
}
public Boolean getHasSonNode() {
return hasSonNode;
}
public void setHasSonNode(Boolean hasSonNode) {
this.hasSonNode = hasSonNode;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getRelatedCode() {
return relatedCode;
}
public void setRelatedCode(String relatedCode) {
this.relatedCode = relatedCode;
}
public DepartmentChainVO getSonDepartment() {
return sonDepartment;
}
public void setSonDepartment(DepartmentChainVO sonDepartment) {
this.sonDepartment = sonDepartment;
}
}
......@@ -17,10 +17,20 @@ public class StaffVO implements Serializable{
private String nationCode;
private String postion;
private String position;
private String departmentName;
private String headImg;
public String getHeadImg() {
return headImg;
}
public void setHeadImg(String headImg) {
this.headImg = headImg;
}
public String getStaffName() {
return staffName;
}
......@@ -45,12 +55,13 @@ public class StaffVO implements Serializable{
this.nationCode = nationCode;
}
public String getPostion() {
return postion;
public String getPosition() {
return position;
}
public void setPostion(String postion) {
this.postion = postion;
public void setPosition(String position) {
this.position = position;
}
public String getDepartmentName() {
......
......@@ -50,6 +50,7 @@
<dubbo:reference interface="com.gic.haoban.manage.api.service.AuditApiService" id="auditApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.AuditSettingApiService" id="auditSettingApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.DictApiService" id="dictApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.HelpApiService" id="helpApiService"/>
<dubbo:reference interface="com.gic.wechat.token.api.service.QywxTokenManageService" id="qywxTokenManageService"/>
......
......@@ -26,6 +26,8 @@ import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.app.customer.service.api.service.DistributeApiService;
import com.gic.haoban.base.api.common.ShowFrontMessageException;
import com.gic.haoban.common.utils.GooglePhoneNumberUtil;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.communicate.api.service.SyncHaobanToGicServiceApi;
import com.gic.haoban.manage.api.dto.DepartmentDTO;
......@@ -46,6 +48,7 @@ import com.gic.haoban.manage.web.interceptor.WebInterceptor;
import com.gic.haoban.manage.web.vo.ClerkVo;
import com.gic.redis.data.util.RedisUtil;
import com.gic.wechat.api.service.qywx.QywxUserApiService;
import com.google.i18n.phonenumbers.PhoneNumberUtil;
@RestController
public class ClerkController extends WebBaseController{
......@@ -162,11 +165,12 @@ public class ClerkController extends WebBaseController{
dto.setBindFlag(1);
dto.setClerkCode(related.getClerkCode());
if(size > 20){
if(size < 20){
ClerkDTO clerk = clerkService.getClerkByClerkCode(departmentDTO.getEnterpriseId(), related.getClerkCode());
if(clerk != null){
dto.setMemberCount(0);
// dto.setMemberCount(distributeApiService.getClerkMemberCount(departmentDTO.getEnterpriseId(), clerk.getClerkId(), storeId));
long memberCount = distributeApiService.getClerkMemberCount(departmentDTO.getEnterpriseId(), clerk.getClerkId(), storeId);
logger.info("【获取会员数】enterpriseId={},clerkId={},storeId={},count={}",departmentDTO.getEnterpriseId(),clerk.getClerkId(),storeId,memberCount);
dto.setMemberCount(memberCount);
}
}else{
dto.setMemberCount(0);
......@@ -258,23 +262,50 @@ public class ClerkController extends WebBaseController{
@HttpLimit
@RequestMapping("/staff-add")
public HaobanResponse staffAdd(StaffDTO staffDTO,String storeId,String clerkCode) {
// String wxEnterpriseId = staffDTO.getWxEnterpriseId();
// String staffName = staffDTO.getStaffName();
// String phoneNumber = staffDTO.getPhoneNumber();
// String nationcode = staffDTO.getNationCode();
// String postion = staffDTO.getPostion();
// Integer sex = staffDTO.getSex();
// staffDTO.setWxEnterpriseId(wxEnterpriseId);
// if(StringUtils.isBlank(staffName)) {
// return resultResponse(HaoBanErrCode.ERR_10004);
// }
// StaffDTO staff = staffApiService.selectByNationcodeAndPhoneNumber(wxEnterpriseId,nationcode,phoneNumber);
// if(staff != null) {
// return resultResponse(HaoBanErrCode.ERR_10005);
// }
// boolean flag = syncHaobanToGicServiceApi.syncClerkToGicClerkAdd(storeId, clerkCode, sex, staffName, phoneNumber, nationcode, postion);
// if(!flag){
// return resultResponse(HaoBanErrCode.ERR_10010);
String wxEnterpriseId = staffDTO.getWxEnterpriseId();
String staffName = staffDTO.getStaffName();
String phoneNumber = staffDTO.getPhoneNumber();
String nationcode = staffDTO.getNationCode();
String postion = staffDTO.getPostion();
Integer sex = staffDTO.getSex();
staffDTO.setWxEnterpriseId(wxEnterpriseId);
if(StringUtils.isBlank(staffName)) {
return resultResponse(HaoBanErrCode.ERR_10004);
}
if(StringUtils.isBlank(phoneNumber)){
return resultResponse(HaoBanErrCode.ERR_10014);
}
if(!GooglePhoneNumberUtil.checkPhoneNumber(phoneNumber, nationcode)){
return resultResponse(HaoBanErrCode.ERR_10012);
}
StaffDTO staff = staffApiService.selectByNationcodeAndPhoneNumber(wxEnterpriseId,nationcode,phoneNumber);
if(staff != null) {
return resultResponse(HaoBanErrCode.ERR_10005);
}
com.gic.enterprise.api.dto.StoreDTO store = storeService.getStoreByIdNoStatus(storeId);
//校验手机是否唯一
if (store == null) {
return resultResponse(HaoBanErrCode.ERR_400001);
}
ClerkDTO clerk = clerkService.getClerkByCodeNoDel(store.getEnterpriseId(), clerkCode);
logger.info("【新增店员】clerk={}",JSON.toJSONString(clerk));
if(clerk != null){
DepartmentDTO department = departmentApiService.selectByRelatedId(storeId);
if(department == null){
return resultResponse(HaoBanErrCode.ERR_400001);
}
//StaffDepartmentRelatedDTO staffRelated = staffApiService.getDepartmentIdAndCode(department.getDepartmentId(), clerkCode);
if(null != clerk && StringUtils.isNotBlank(clerk.getPhoneNumber()) && !"--".equals(clerk.getPhoneNumber())){
return resultResponse(HaoBanErrCode.ERR_10013);
}
}
// if(clerk != null && StringUtils.isNotBlank(clerk.getPhoneNumber())){
// syncHaobanToGicServiceApi.syncHaobanClerkPhoneNumberToGic(clerk.getClerkId(), phoneNumber);
// }else{
boolean flag = syncHaobanToGicServiceApi.syncClerkToGicClerkAdd(storeId, clerkCode, sex, staffName, phoneNumber, nationcode, postion);
if(!flag){
return resultResponse(HaoBanErrCode.ERR_10010);
}
// }
return resultResponse(HaoBanErrCode.ERR_1);
}
......@@ -302,10 +333,13 @@ public class ClerkController extends WebBaseController{
staffApiService.del(staffDepartmentRelatedId);
}else{
ClerkDTO clerk = clerkService.getClerkByClerkCode(departmentDTO.getEnterpriseId(), related.getClerkCode());
// if(clerk != null && distributeApiService.getClerkMemberCount(departmentDTO.getEnterpriseId(), clerk.getClerkId(), storeId) == 0){
// syncHaobanToGicServiceApi.delGicClerk(clerk.getClerkId());
// staffApiService.del(staffDepartmentRelatedId);
// }
if(clerk != null && distributeApiService.getClerkMemberCount(departmentDTO.getEnterpriseId(), clerk.getClerkId(), storeId) == 0){
if(clerk.getClerkType() == 1){
continue;
}
syncHaobanToGicServiceApi.delGicClerk(clerk.getClerkId());
staffApiService.del(staffDepartmentRelatedId);
}
}
}
if(flag){
......@@ -338,36 +372,20 @@ public class ClerkController extends WebBaseController{
//刷新微信好友
@RequestMapping("/fresh-wx-friend")
public HaobanResponse freshWxFrend(String staffId,String storeId,String wxEnterpriseId,String staffDepartmentRelatedId,String wxUserId) {
// StaffDTO staff = staffApiService.selectById(staffId);
// String yyyyMM = DateUtil.dateToStr(new Date(), "yyyyMM");
// if(staff == null){
// return resultResponse(HaoBanErrCode.ERR_10006);
// }
// String key = "haoban_fresh_wx_friend" + yyyyMM + staffId;
// Integer count = RedisUtil.getCache(key) == null ? 0 : (Integer)RedisUtil.getCache(key);
// if(count == null || count < 4){
// WxEnterpriseDTO enterprise = wxEnterpriseApiService.getOne(wxEnterpriseId);
// RedisUtil.setCache(key,count + 1,31 * 24 * 60 * 60l);
// String res = qywxUserApiService.listSelfExternalUserid(enterprise.getCorpid(), enterprise.getWxSecretKey(), staff.getWxUserId());
// JSONObject json = JSON.parseObject(res);
// if("0".equals(json.getString("errcode"))){
// String external_userid = json.getString("external_userid");
// JSONArray jsonArr = json.getJSONArray(external_userid);
// List<MemberUnionidRelatedDTO> list = memberUnionidRelatedApiService.getByWxUserIdAndWxEnterpriseId(wxUserId, wxEnterpriseId);
// List<String> externalUserIdList = list.stream().map(student->student.getExternalUserid())
// .collect(Collectors.toList());
// for (Object object : jsonArr) {
// if(externalUserIdList.contains(object.toString())){
// continue;
// }else{
// //String string = qywxUserApiService.getCorpSelfExternalUseridInfo(enterprise.getCorpid(), enterprise.getWxSecretKey(), object.toString());
// memberUnionidRelatedApiService.add(wxEnterpriseId, object.toString(), wxUserId);
// }
// }
// }
// }else{
// return resultResponse(HaoBanErrCode.ERR_10011);
// }
StaffDTO staff = staffApiService.selectById(staffId);
String yyyyMM = DateUtil.dateToStr(new Date(), "yyyyMM");
if(staff == null){
return resultResponse(HaoBanErrCode.ERR_10006);
}
String key = "haoban_fresh_wx_friend" + yyyyMM + staffId;
Integer count = RedisUtil.getCache(key) == null ? 0 : (Integer)RedisUtil.getCache(key);
if(count == null || count < 4){
RedisUtil.setCache(key,count + 1,31 * 24 * 60 * 60l);
memberUnionidRelatedApiService.freshWxFrend(wxEnterpriseId, staff.getWxUserId());
}else{
return resultResponse(HaoBanErrCode.ERR_10011);
}
return resultResponse(HaoBanErrCode.ERR_1);
}
......
......@@ -21,6 +21,7 @@ import com.gic.haoban.manage.api.service.WxEnterpriseApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService;
import com.gic.haoban.manage.web.config.Config;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.qo.GetUserByMemberCodeQo;
import com.gic.haoban.manage.web.qo.MemberLoginQo;
import com.gic.haoban.manage.web.vo.AppStaffVo;
import com.gic.haoban.manage.web.vo.InfoVo;
......@@ -120,29 +121,29 @@ public class InfoController extends WebBaseController{
}
@RequestMapping("get-user-by-member-code")
public HaobanResponse getInfoByMemberCode(String code, String gicEnterpriseId, String userId) {
EnterpriseDetailDTO enterpriseDetailDTO = wxEnterpriseRelatedApiService.getByEnterpriseId(gicEnterpriseId);
public HaobanResponse getInfoByMemberCode(GetUserByMemberCodeQo qo) {
EnterpriseDetailDTO enterpriseDetailDTO = wxEnterpriseRelatedApiService.getByEnterpriseId(qo.getGicEnterpriseId());
if (enterpriseDetailDTO == null) {
logger.info("改企业没有关系好办:{}", gicEnterpriseId);
logger.info("改企业没有关系好办:{}", qo.getGicEnterpriseId());
return resultResponse(HaoBanErrCode.ERR_500001);
}
WxEnterpriseDTO enterpriseDTO = wxEnterpriseApiService.getOne(enterpriseDetailDTO.getWxEnterpriseId());
if (enterpriseDetailDTO == null) {
logger.info("改企业不存在:{}", gicEnterpriseId);
logger.info("改企业不存在:{}", qo.getGicEnterpriseId());
return resultResponse(HaoBanErrCode.ERR_400002);
}
MemberLoginQo user = new MemberLoginQo();
if (StringUtils.isBlank(userId)) {
if (StringUtils.isBlank(qo.getUserId())) {
String userDTOJson = qywxUserApiService.getUserByCode(enterpriseDTO.getCorpid(), enterpriseDTO.getMemberSecret(), code);
String userDTOJson = qywxUserApiService.getUserByCode(enterpriseDTO.getCorpid(), enterpriseDTO.getMemberSecret(), qo.getCode());
logger.info("会员微信登录信息=============>{}", userDTOJson);
user = JSON.parseObject(userDTOJson, MemberLoginQo.class);
if (user == null) {
return resultResponse(HaoBanErrCode.ERR_6);
}
} else {
user.setUserId(userId);
user.setUserId(qo.getUserId());
}
StaffDTO staffDTO = staffApiService.selectByUserIdAndEnterpriseId(user.getUserId(), enterpriseDTO.getWxEnterpriseId());
if (staffDTO == null) {
......
package com.gic.haoban.manage.web.controller;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.manage.api.dto.MaidianLogDTO;
import com.gic.haoban.manage.api.service.MaidianLogApiService;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
@RestController
public class MaidianLogController extends WebBaseController{
@Autowired
private MaidianLogApiService maidianLogApiService;
@RequestMapping("save-maidian-log")
public HaobanResponse saveUserLoginLog(String maidianLogStr) {
if(StringUtils.isBlank(maidianLogStr)){
return resultResponse(HaoBanErrCode.ERR_2);
}
List<MaidianLogDTO> maidianLogDTOList = JSON.parseArray(maidianLogStr,MaidianLogDTO.class);
for (MaidianLogDTO maidianLogDTO : maidianLogDTOList) {
String options = maidianLogDTO.getOptions();
if(StringUtils.isNotBlank(options) && options.length() > 128){
maidianLogDTO.setOptions(options.substring(0,127));
}
maidianLogApiService.insert(maidianLogDTO);
}
return resultResponse(HaoBanErrCode.ERR_1);
}
}
......@@ -194,9 +194,14 @@ public enum HaoBanErrCode {
ERR_10009(10009,"门店不存在"),
ERR_10010(10010,"gic新增失败"),
ERR_10011(10011,"每月最多可刷新4次"),
ERR_10012(10012,"手机号格式不正确"),
ERR_10013(10013,"code已经存在"),
ERR_10014(10014,"请输入手机号"),
ERR_999(999, "操作失败"),
ERR_DEFINE(-888, "自定义错误"),
ERR_OTHER(-999, "未知错误code");
private int code;
private String msg;
......
package com.gic.haoban.manage.web.qo;
import java.io.Serializable;
/**
* Created 2020/4/21.
*
* @author hua
*/
public class GetUserByMemberCodeQo implements Serializable {
private String code;
private String gicEnterpriseId;
private String userId;
private String openid;
private String memberId;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getGicEnterpriseId() {
return gicEnterpriseId;
}
public void setGicEnterpriseId(String gicEnterpriseId) {
this.gicEnterpriseId = gicEnterpriseId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getOpenid() {
return openid;
}
public void setOpenid(String openid) {
this.openid = openid;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
}
......@@ -48,5 +48,7 @@
<dubbo:reference interface="com.gic.thirdparty.api.service.QQCloudPicService" id="qqCloudPicServiceImpl"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.DictApiService" id="dictApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.MaidianLogApiService" id="maidianLogApiService"/>
</beans>
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