Commit 99d38e20 authored by zjy's avatar zjy

user/role/tright 6.20

在写胖丁伙伴
parent 77a4f45b
...@@ -11,10 +11,7 @@ import com.yanzuoguang.util.vo.PageSizeData; ...@@ -11,10 +11,7 @@ import com.yanzuoguang.util.vo.PageSizeData;
import com.yanzuoguang.util.vo.ResponseResult; import com.yanzuoguang.util.vo.ResponseResult;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/** /**
* 公司我的管理controller * 公司我的管理controller
...@@ -188,9 +185,6 @@ public class CompanyManagementController { ...@@ -188,9 +185,6 @@ public class CompanyManagementController {
return ResponseResult.result(companyServiceImpl.saveUser(reqVo)); return ResponseResult.result(companyServiceImpl.saveUser(reqVo));
} }
/** /**
* 删除银行卡 * 删除银行卡
* @param reqVo 封装了银行卡id的请求对象 * @param reqVo 封装了银行卡id的请求对象
...@@ -245,4 +239,12 @@ public class CompanyManagementController { ...@@ -245,4 +239,12 @@ public class CompanyManagementController {
.checkException(); .checkException();
return ResponseResult.result(companyServiceImpl.myInvite(reqVo)); return ResponseResult.result(companyServiceImpl.myInvite(reqVo));
} }
@PostMapping(value = "invitation",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseResult<String> invitation(@RequestBody InvitationReqVo reqVo){
CheckerHelper.newInstance()
.notBlankCheck("companyId",reqVo.getCompanyId())
.checkException();
return ResponseResult.result(companyServiceImpl.invitation(reqVo));
}
} }
...@@ -55,7 +55,7 @@ public class IndexController { ...@@ -55,7 +55,7 @@ public class IndexController {
* @return 用户沉淀量 * @return 用户沉淀量
*/ */
@PostMapping(value = "/userPrecipitation", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @PostMapping(value = "/userPrecipitation", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseResult userPrecipitation(@RequestBody UserPrecipitationReqVo reqVo){ public ResponseResult<Integer> userPrecipitation(@RequestBody UserPrecipitationReqVo reqVo){
CheckerHelper.newInstance() CheckerHelper.newInstance()
.notBlankCheck("companyId",reqVo.getId()) .notBlankCheck("companyId",reqVo.getId())
.checkException(); .checkException();
......
...@@ -3,9 +3,7 @@ package com.pangding.web.authority.controller; ...@@ -3,9 +3,7 @@ package com.pangding.web.authority.controller;
import com.pangding.web.authority.service.PangdingPartnerService; import com.pangding.web.authority.service.PangdingPartnerService;
import com.pangding.web.authority.vo.CompanyBankCardVo; import com.pangding.web.authority.vo.CompanyBankCardVo;
import com.pangding.web.authority.vo.reqvo.*; import com.pangding.web.authority.vo.reqvo.*;
import com.pangding.web.authority.vo.resvo.HomeResVo; import com.pangding.web.authority.vo.resvo.*;
import com.pangding.web.authority.vo.resvo.MobileWithdrawalResVo;
import com.pangding.web.authority.vo.resvo.WithdrawalResVo;
import com.yanzuoguang.util.helper.CheckerHelper; import com.yanzuoguang.util.helper.CheckerHelper;
import com.yanzuoguang.util.vo.ResponseResult; import com.yanzuoguang.util.vo.ResponseResult;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -54,6 +52,11 @@ public class PangdingPartnerController { ...@@ -54,6 +52,11 @@ public class PangdingPartnerController {
return ResponseResult.result(pangdingPartnerServiceImpl.withdrawal(reqVo)); return ResponseResult.result(pangdingPartnerServiceImpl.withdrawal(reqVo));
} }
/**
* 通过公司id获取该公司银行卡列表(不分页)
* @param reqVo 封装了公司id的请求对象
* @return
*/
@PostMapping(value = "/bankCardList",produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @PostMapping(value = "/bankCardList",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseResult<List<CompanyBankCardVo>> bankCardList(@RequestBody MobileBankCardListReqVo reqVo){ public ResponseResult<List<CompanyBankCardVo>> bankCardList(@RequestBody MobileBankCardListReqVo reqVo){
CheckerHelper.newInstance() CheckerHelper.newInstance()
...@@ -61,4 +64,124 @@ public class PangdingPartnerController { ...@@ -61,4 +64,124 @@ public class PangdingPartnerController {
.checkException(); .checkException();
return ResponseResult.result(pangdingPartnerServiceImpl.bankCardList(reqVo)); return ResponseResult.result(pangdingPartnerServiceImpl.bankCardList(reqVo));
} }
/**
* 保存/更新银行卡信息,并调用第三方接口发送手机验证码
* @param reqVo 公司银行卡表信息
* @return 银行卡表主键
*/
@PostMapping(value = "/saveBank",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseResult<String> saveBank(@RequestBody CompanyBankCardVo reqVo){
checkBank(reqVo);
return ResponseResult.result(pangdingPartnerServiceImpl.saveBank(reqVo));
}
private void checkBank(CompanyBankCardVo reqVo){
CheckerHelper.newInstance()
.notBlankCheck("bankCardCode",reqVo.getBankCardCode())
.notNumberCheck("bankCardCode",reqVo.getBankCardCode())
.notBlankCheck("bankName",reqVo.getBankName())
.notBlankCheck("name",reqVo.getName())
.notBlankCheck("idCard",reqVo.getIdCard())
.notBlankCheck("companyId",reqVo.getCompanyId())
.checkIdCard("idCard",reqVo.getIdCard())
.notBlankCheck("phone",reqVo.getPhone())
.checkPhoneNo("phone",reqVo.getPhone())
.checkException();
}
/**
* 提交银行卡信息,验证手机验证码,并更新银行卡状态
* @param reqVo 银行卡表数据+验证码
* @return 目前返回验证码
*/
@PostMapping(value = "/bankSubmit",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseResult<CompanyBankCardVo> bankSubmit(@RequestBody BankSubmitReqVo reqVo) {
CheckerHelper.newInstance()
.notBlankCheck("bankCardId", reqVo.getId())
.notBlankCheck("verifyCode", reqVo.getVerifyCode())
.checkException();
return ResponseResult.result(pangdingPartnerServiceImpl.bankSubmit(reqVo));
}
/**
* 调用支付服务解绑银行卡,并更新银行卡状态
* @param reqVo 封装了银行卡id的请求对象
* @return
*/
@PostMapping(value = "/deleteBank",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseResult deleteBank(@RequestBody CompanyBankCardVo reqVo){
CheckerHelper.newInstance()
.notBlankCheck("companyBankCardId",reqVo.getId())
.checkException();
pangdingPartnerServiceImpl.deleteBank(reqVo);
return new ResponseResult();
}
/**
* 设置该银行卡为默认支付,并取消其他银行卡的默认
* @param reqVo 封装了银行卡id的请求对象
* @return
*/
@PostMapping(value = "setDefault",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseResult setDefault(@RequestBody CompanyBankCardVo reqVo){
CheckerHelper.newInstance()
.notBlankCheck("bankCardId",reqVo.getId())
.checkException();
pangdingPartnerServiceImpl.setDefault(reqVo);
return new ResponseResult();
}
/**
* 我的管理页面:通过userId获取用户表,公司表,公司银行卡表数据
* @param reqVo 封装了userId的请求对象
* @return
*/
@PostMapping(value = "/management",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseResult<ManagementResVo> management(@RequestBody ManagementReqVo reqVo){
CheckerHelper.newInstance()
.notBlankCheck("userId",reqVo.getUserId())
.checkException();
return ResponseResult.result(pangdingPartnerServiceImpl.management(reqVo));
}
/**
* 根据公司id获取该公司今日用户沉淀量,总沉淀量,沉淀用户列表
* @param reqVo 封装了公司id的请求对象
* @return
*/
@PostMapping(value = "/precipitation",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseResult<PrecipitationResVo> precipitation(@RequestBody PrecipitationReqVo reqVo){
CheckerHelper.newInstance()
.notBlankCheck("companyId",reqVo.getCompanyId())
.checkException();
return ResponseResult.result(pangdingPartnerServiceImpl.precipitation(reqVo));
}
/**
* 根据公司id返回该公司二维码url,若没有则创建
* @param reqVo 封装了公司id和选项(限制为永久)的请求对象
* @return
*/
@PostMapping(value = "/qrCodeUrl",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseResult<String> qrCodeUrl(@RequestBody GenerateQrCodeUrlReqVo reqVo){
CheckerHelper.newInstance()
.notBlankCheck("companyId",reqVo.getCompanyId())
.notBlankCheck("select",reqVo.getSelect())
.checkException();
return ResponseResult.result(pangdingPartnerServiceImpl.qrCodeUrl(reqVo));
}
/**
* 根据公司id获取该公司的邀请码,若没有则创建
* @param reqVo 封装了公司id的请求对象
* @return
*/
@PostMapping(value = "/invitation",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseResult<String> invitation(@RequestBody InvitationReqVo reqVo){
CheckerHelper.newInstance()
.notBlankCheck("companyId",reqVo.getCompanyId())
.checkException();
return ResponseResult.result(pangdingPartnerServiceImpl.invitation(reqVo));
}
} }
package com.pangding.web.authority.dao; package com.pangding.web.authority.dao;
import com.pangding.web.authority.vo.WechatUserVo; import com.pangding.web.authority.vo.WechatUserVo;
import com.pangding.web.authority.vo.reqvo.PrecipitationReqVo;
import com.pangding.web.authority.vo.reqvo.WechatUserGetReqVo; import com.pangding.web.authority.vo.reqvo.WechatUserGetReqVo;
import com.yanzuoguang.dao.BaseDao; import com.yanzuoguang.dao.BaseDao;
import com.yanzuoguang.util.vo.PageSizeData;
import java.util.List; import java.util.List;
...@@ -17,5 +19,7 @@ public interface WechatUserDao extends BaseDao { ...@@ -17,5 +19,7 @@ public interface WechatUserDao extends BaseDao {
* @param getReqVo * @param getReqVo
* @return * @return
*/ */
Object getUserNumByMonth(WechatUserGetReqVo getReqVo); Object getUserNum(WechatUserGetReqVo getReqVo);
PageSizeData<WechatUserVo> getUserList(PrecipitationReqVo reqVo);
} }
...@@ -2,9 +2,11 @@ package com.pangding.web.authority.dao.impl; ...@@ -2,9 +2,11 @@ package com.pangding.web.authority.dao.impl;
import com.pangding.web.authority.dao.WechatUserDao; import com.pangding.web.authority.dao.WechatUserDao;
import com.pangding.web.authority.vo.WechatUserVo; import com.pangding.web.authority.vo.WechatUserVo;
import com.pangding.web.authority.vo.reqvo.PrecipitationReqVo;
import com.pangding.web.authority.vo.reqvo.WechatUserGetReqVo; import com.pangding.web.authority.vo.reqvo.WechatUserGetReqVo;
import com.yanzuoguang.dao.impl.BaseDaoImpl; import com.yanzuoguang.dao.impl.BaseDaoImpl;
import com.yanzuoguang.util.vo.MapRow; import com.yanzuoguang.util.vo.MapRow;
import com.yanzuoguang.util.vo.PageSizeData;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List; import java.util.List;
...@@ -16,20 +18,32 @@ import java.util.List; ...@@ -16,20 +18,32 @@ import java.util.List;
@Component @Component
public class WechatUserDaoImpl extends BaseDaoImpl implements WechatUserDao { public class WechatUserDaoImpl extends BaseDaoImpl implements WechatUserDao {
private static final String GET_USER_NUM_BY_MONTH = "GET_USER_NUM_BY_MONTH"; private static final String GET_USER_NUM = "GET_USER_NUM";
private static final String GET_USER_LIST = "GET_USER_LIST";
@Override @Override
protected void init() { protected void init() {
register(WechatUserVo.class); register(WechatUserVo.class);
table.add(GET_USER_NUM_BY_MONTH,"select count(id) as num from pd_wechat_user where 1=1 ") table.add(GET_USER_NUM,"select count(id) as num from pd_wechat_user where 1=1 ")
.add("companyId","and company_id = ? ") .add("companyId","and company_id = ? ")
.add("start","and follow_time >= ? ") .add("start","and subscribe_date >= ? ")
.add("end","and follow_time < ? "); .add("end","and subscribe_date < ? ");
table.add(GET_USER_LIST,"select * from pd_wechat_user where 1=1 ")
.add("start","and subscribe_date >= ? ")
.add("end","and subscribe_date < ? ")
.add("companyId","and company_id = ? order by subscribe_date desc");
}
@Override
public Object getUserNum(WechatUserGetReqVo getReqVo) {
return this.query(GET_USER_NUM,getReqVo);
} }
@Override @Override
public Object getUserNumByMonth(WechatUserGetReqVo getReqVo) { public PageSizeData<WechatUserVo> getUserList(PrecipitationReqVo reqVo) {
return this.query(GET_USER_NUM_BY_MONTH,getReqVo); return this.queryPage(WechatUserVo.class,reqVo,GET_USER_LIST,reqVo);
} }
} }
...@@ -147,4 +147,6 @@ public interface CompanyService{ ...@@ -147,4 +147,6 @@ public interface CompanyService{
* @return * @return
*/ */
PageSizeData<CompanyVo> myInvite(ListCompanyReqVo reqVo); PageSizeData<CompanyVo> myInvite(ListCompanyReqVo reqVo);
String invitation(InvitationReqVo reqVo);
} }
...@@ -3,7 +3,9 @@ package com.pangding.web.authority.service; ...@@ -3,7 +3,9 @@ package com.pangding.web.authority.service;
import com.pangding.web.authority.vo.CompanyBankCardVo; import com.pangding.web.authority.vo.CompanyBankCardVo;
import com.pangding.web.authority.vo.reqvo.*; import com.pangding.web.authority.vo.reqvo.*;
import com.pangding.web.authority.vo.resvo.HomeResVo; import com.pangding.web.authority.vo.resvo.HomeResVo;
import com.pangding.web.authority.vo.resvo.ManagementResVo;
import com.pangding.web.authority.vo.resvo.MobileWithdrawalResVo; import com.pangding.web.authority.vo.resvo.MobileWithdrawalResVo;
import com.pangding.web.authority.vo.resvo.PrecipitationResVo;
import java.util.List; import java.util.List;
...@@ -26,5 +28,66 @@ public interface PangdingPartnerService { ...@@ -26,5 +28,66 @@ public interface PangdingPartnerService {
*/ */
MobileWithdrawalResVo withdrawal(MobileWithdrawalReqVo reqVo); MobileWithdrawalResVo withdrawal(MobileWithdrawalReqVo reqVo);
/**
* 通过公司id获取该公司银行卡列表(不分页)
* @param reqVo 封装了公司id的请求对象
* @return
*/
List<CompanyBankCardVo> bankCardList(MobileBankCardListReqVo reqVo); List<CompanyBankCardVo> bankCardList(MobileBankCardListReqVo reqVo);
/**
* 保存/更新银行卡信息,并调用第三方接口发送手机验证码
* @param reqVo 公司银行卡表信息
* @return 银行卡表主键
*/
String saveBank(CompanyBankCardVo reqVo);
/**
* 提交银行卡信息,验证手机验证码,并更新银行卡状态
* @param reqVo 银行卡表数据+验证码
* @return 目前返回验证码
*/
CompanyBankCardVo bankSubmit(BankSubmitReqVo reqVo);
/**
* 调用支付服务解绑银行卡,并更新银行卡状态
* @param reqVo 封装了银行卡id的请求对象
* @return
*/
void deleteBank(CompanyBankCardVo reqVo);
/**
* 设置该银行卡为默认支付,并取消其他银行卡的默认
* @param reqVo 封装了银行卡id的请求对象
* @return
*/
void setDefault(CompanyBankCardVo reqVo);
/**
* 我的管理页面:通过userId获取用户表,公司表,公司银行卡表数据
* @param reqVo 封装了userId的请求对象
* @return
*/
ManagementResVo management(ManagementReqVo reqVo);
/**
* 根据公司id获取该公司今日用户沉淀量,总沉淀量,沉淀用户列表
* @param reqVo 封装了公司id的请求对象
* @return
*/
PrecipitationResVo precipitation(PrecipitationReqVo reqVo);
/**
* 根据公司id返回该公司二维码url,若没有则创建
* @param reqVo 封装了公司id和选项(限制为永久)的请求对象
* @return
*/
String qrCodeUrl(GenerateQrCodeUrlReqVo reqVo);
/**
* 根据公司id获取该公司的邀请码,若没有则创建
* @param reqVo 封装了公司id的请求对象
* @return
*/
String invitation(InvitationReqVo reqVo);
} }
...@@ -5,6 +5,7 @@ import com.pangding.web.authority.feign.PayFeign; ...@@ -5,6 +5,7 @@ import com.pangding.web.authority.feign.PayFeign;
import com.pangding.web.authority.feign.StoreFeign; import com.pangding.web.authority.feign.StoreFeign;
import com.pangding.web.authority.feign.WxFeign; import com.pangding.web.authority.feign.WxFeign;
import com.pangding.web.authority.service.CompanyService; import com.pangding.web.authority.service.CompanyService;
import com.pangding.web.authority.service.PangdingPartnerService;
import com.pangding.web.authority.service.UserService; import com.pangding.web.authority.service.UserService;
import com.pangding.web.authority.util.CompanyBankCardConstant; import com.pangding.web.authority.util.CompanyBankCardConstant;
import com.pangding.web.authority.util.CompanyConstant; import com.pangding.web.authority.util.CompanyConstant;
...@@ -45,13 +46,15 @@ public class CompanyServiceImpl implements CompanyService{ ...@@ -45,13 +46,15 @@ public class CompanyServiceImpl implements CompanyService{
@Autowired @Autowired
private UserDao userDaoImpl; private UserDao userDaoImpl;
@Autowired @Autowired
PayFeign payFeign; private PayFeign payFeign;
@Autowired @Autowired
StoreFeign storeFeign; private StoreFeign storeFeign;
@Autowired @Autowired
WxFeign wxFeign; private WxFeign wxFeign;
@Autowired @Autowired
UserRoleDao userRoleDaoImpl; private UserRoleDao userRoleDaoImpl;
@Autowired
private PangdingPartnerService pangdingPartnerServiceImpl;
/** /**
* 修改公司信息 * 修改公司信息
...@@ -485,6 +488,7 @@ public class CompanyServiceImpl implements CompanyService{ ...@@ -485,6 +488,7 @@ public class CompanyServiceImpl implements CompanyService{
if (null == result || !"00".equals(result.getCode())){ if (null == result || !"00".equals(result.getCode())){
throw new CodeException("解绑失败,请重试"); throw new CodeException("解绑失败,请重试");
} }
/*若删除的银行卡为默认银行卡,则需要设置其他一张卡为默认银行卡*/
if (CompanyBankCardConstant.IS_DEFAULT.equals(bankCardVo.getIsDefault())){ if (CompanyBankCardConstant.IS_DEFAULT.equals(bankCardVo.getIsDefault())){
CompanyBankCardGetReqVo getReqVo = new CompanyBankCardGetReqVo(); CompanyBankCardGetReqVo getReqVo = new CompanyBankCardGetReqVo();
getReqVo.setCompanyId(bankCardVo.getCompanyId()); getReqVo.setCompanyId(bankCardVo.getCompanyId());
...@@ -503,6 +507,7 @@ public class CompanyServiceImpl implements CompanyService{ ...@@ -503,6 +507,7 @@ public class CompanyServiceImpl implements CompanyService{
* @return * @return
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void setDefault(CompanyBankCardVo reqVo) { public void setDefault(CompanyBankCardVo reqVo) {
/*获取该银行卡的公司id*/ /*获取该银行卡的公司id*/
CompanyBankCardVo companyBankCardVo = companyBankCardDao.load(reqVo,CompanyBankCardVo.class); CompanyBankCardVo companyBankCardVo = companyBankCardDao.load(reqVo,CompanyBankCardVo.class);
...@@ -522,6 +527,7 @@ public class CompanyServiceImpl implements CompanyService{ ...@@ -522,6 +527,7 @@ public class CompanyServiceImpl implements CompanyService{
* @return 目前返回验证码 * @return 目前返回验证码
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class)
public CompanyBankCardVo bankSubmit(BankSubmitReqVo reqVo) { public CompanyBankCardVo bankSubmit(BankSubmitReqVo reqVo) {
/*根据银行卡id获取银行卡信息*/ /*根据银行卡id获取银行卡信息*/
CompanyBankCardGetReqVo getReqVo = new CompanyBankCardGetReqVo(); CompanyBankCardGetReqVo getReqVo = new CompanyBankCardGetReqVo();
...@@ -726,4 +732,9 @@ public class CompanyServiceImpl implements CompanyService{ ...@@ -726,4 +732,9 @@ public class CompanyServiceImpl implements CompanyService{
public PageSizeData<CompanyVo> myInvite(ListCompanyReqVo reqVo) { public PageSizeData<CompanyVo> myInvite(ListCompanyReqVo reqVo) {
return companyDao.getCompanyList(reqVo); return companyDao.getCompanyList(reqVo);
} }
@Override
public String invitation(InvitationReqVo reqVo) {
return pangdingPartnerServiceImpl.invitation(reqVo);
}
} }
...@@ -123,7 +123,7 @@ public class IndexServiceImpl implements IndexService { ...@@ -123,7 +123,7 @@ public class IndexServiceImpl implements IndexService {
for (int i = 0; i < monthList.length-1; i++) { for (int i = 0; i < monthList.length-1; i++) {
getReqVo.setStart(monthList[i]); getReqVo.setStart(monthList[i]);
getReqVo.setEnd(monthList[i+1]); getReqVo.setEnd(monthList[i+1]);
List<Map> list = (List<Map>) wechatUserDaoImpl.getUserNumByMonth(getReqVo); List<Map> list = (List<Map>) wechatUserDaoImpl.getUserNum(getReqVo);
Long num = (Long) list.get(0).get("num"); Long num = (Long) list.get(0).get("num");
resList.add(num); resList.add(num);
} }
......
package com.pangding.web.authority.service.impl; package com.pangding.web.authority.service.impl;
import com.pangding.web.authority.dao.CompanyBankCardDao; import com.pangding.web.authority.dao.*;
import com.pangding.web.authority.dao.CompanyExtendDao; import com.pangding.web.authority.service.CompanyService;
import com.pangding.web.authority.service.PangdingPartnerService; import com.pangding.web.authority.service.PangdingPartnerService;
import com.pangding.web.authority.service.UserService;
import com.pangding.web.authority.util.CompanyBankCardConstant; import com.pangding.web.authority.util.CompanyBankCardConstant;
import com.pangding.web.authority.vo.CompanyBankCardVo; import com.pangding.web.authority.util.ShareCodeUtil;
import com.pangding.web.authority.vo.CompanyExtendVo; import com.pangding.web.authority.vo.*;
import com.pangding.web.authority.vo.reqvo.*; import com.pangding.web.authority.vo.reqvo.*;
import com.pangding.web.authority.vo.resvo.HomeResVo; import com.pangding.web.authority.vo.resvo.HomeResVo;
import com.pangding.web.authority.vo.resvo.ManagementResVo;
import com.pangding.web.authority.vo.resvo.MobileWithdrawalResVo; import com.pangding.web.authority.vo.resvo.MobileWithdrawalResVo;
import com.pangding.web.authority.vo.resvo.PrecipitationResVo;
import com.yanzuoguang.util.exception.CodeException; import com.yanzuoguang.util.exception.CodeException;
import com.yanzuoguang.util.helper.DateHelper;
import com.yanzuoguang.util.vo.PageSizeData;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collections; import java.util.Collections;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @Author zhangjinyao * @Author zhangjinyao
...@@ -23,9 +31,17 @@ import java.util.List; ...@@ -23,9 +31,17 @@ import java.util.List;
@Service @Service
public class PangdingPartnerServiceImpl implements PangdingPartnerService { public class PangdingPartnerServiceImpl implements PangdingPartnerService {
@Autowired @Autowired
CompanyExtendDao companyExtendDaoImpl; private CompanyExtendDao companyExtendDaoImpl;
@Autowired @Autowired
CompanyBankCardDao companyBankCardDaoImpl; private CompanyBankCardDao companyBankCardDaoImpl;
@Autowired
private CompanyService companyServiceImpl;
@Autowired
private UserDao userDaoImpl;
@Autowired
private CompanyDao companyDaoImpl;
@Autowired
private WechatUserDao wechatUserDaoImpl;
/** /**
* 胖丁伙伴首页 * 胖丁伙伴首页
...@@ -68,6 +84,11 @@ public class PangdingPartnerServiceImpl implements PangdingPartnerService { ...@@ -68,6 +84,11 @@ public class PangdingPartnerServiceImpl implements PangdingPartnerService {
return resVo; return resVo;
} }
/**
* 通过公司id获取该公司银行卡列表(不分页)
* @param reqVo 封装了公司id的请求对象
* @return
*/
@Override @Override
public List<CompanyBankCardVo> bankCardList(MobileBankCardListReqVo reqVo) { public List<CompanyBankCardVo> bankCardList(MobileBankCardListReqVo reqVo) {
CompanyBankCardGetReqVo getReqVo = new CompanyBankCardGetReqVo(); CompanyBankCardGetReqVo getReqVo = new CompanyBankCardGetReqVo();
...@@ -79,4 +100,156 @@ public class PangdingPartnerServiceImpl implements PangdingPartnerService { ...@@ -79,4 +100,156 @@ public class PangdingPartnerServiceImpl implements PangdingPartnerService {
Collections.sort(companyBankCardVoList); Collections.sort(companyBankCardVoList);
return companyBankCardVoList; return companyBankCardVoList;
} }
/**
* 保存/更新银行卡信息,并调用第三方接口发送手机验证码
* @param reqVo 公司银行卡表信息
* @return 银行卡表主键
*/
@Override
public String saveBank(CompanyBankCardVo reqVo) {
return companyServiceImpl.saveBank(reqVo);
}
/**
* 提交银行卡信息,验证手机验证码,并更新银行卡状态
* @param reqVo 银行卡表数据+验证码
* @return 目前返回验证码
*/
@Override
public CompanyBankCardVo bankSubmit(BankSubmitReqVo reqVo) {
return companyServiceImpl.bankSubmit(reqVo);
}
/**
* 调用支付服务解绑银行卡,并更新银行卡状态
* @param reqVo 封装了银行卡id的请求对象
* @return
*/
@Override
public void deleteBank(CompanyBankCardVo reqVo) {
companyServiceImpl.deleteBank(reqVo);
}
/**
* 设置该银行卡为默认支付,并取消其他银行卡的默认
* @param reqVo 封装了银行卡id的请求对象
* @return
*/
@Override
public void setDefault(CompanyBankCardVo reqVo) {
companyServiceImpl.setDefault(reqVo);
}
/**
* 我的管理页面:通过userId获取用户表,公司表,公司银行卡表数据
* @param reqVo 封装了userId的请求对象
* @return
*/
@Override
public ManagementResVo management(ManagementReqVo reqVo) {
/*返回对象*/
ManagementResVo resVo = new ManagementResVo();
/*用户对象*/
UserGetReqVo userGetReqVo = new UserGetReqVo();
userGetReqVo.setId(reqVo.getUserId());
UserVo userVo = userDaoImpl.load(userGetReqVo,UserVo.class);
if (null == userVo){
throw new CodeException("未查询到该用户信息");
}
resVo.setUserVo(userVo);
/*公司表对象*/
CompanyGetReqVo companyGetReqVo = new CompanyGetReqVo();
companyGetReqVo.setId(userVo.getCompanyId());
CompanyVo companyVo = companyDaoImpl.load(companyGetReqVo,CompanyVo.class);
if (null == companyVo){
throw new CodeException("未查询到该用户公司信息");
}
resVo.setCompanyVo(companyVo);
/*默认银行卡对象*/
CompanyBankCardGetReqVo companyBankCardGetReqVo = new CompanyBankCardGetReqVo();
companyBankCardGetReqVo.setCompanyId(userVo.getCompanyId());
companyBankCardGetReqVo.setIsDefault(CompanyBankCardConstant.IS_DEFAULT);
CompanyBankCardVo companyBankCardVo = companyBankCardDaoImpl.load(companyBankCardGetReqVo,CompanyBankCardVo.class);
/*若没有默认银行卡,则取出数据库中该公司第一张银行卡*/
if (null == companyBankCardVo){
companyBankCardGetReqVo.setIsDefault(CompanyBankCardConstant.IS_NOT_DEFAULT);
companyBankCardVo = companyBankCardDaoImpl.load(companyBankCardGetReqVo,CompanyBankCardVo.class);
if (null == companyBankCardVo){
throw new CodeException("未查询到该用户银行卡信息");
}
}
resVo.setCompanyBankCardVo(companyBankCardVo);
return resVo;
}
/**
* 根据公司id获取该公司今日用户沉淀量,总沉淀量,沉淀用户列表
* @param reqVo 封装了公司id的请求对象
* @return
*/
@Override
public PrecipitationResVo precipitation(PrecipitationReqVo reqVo) {
/*返回对象*/
PrecipitationResVo resVo = new PrecipitationResVo();
resVo.setCompanyId(reqVo.getCompanyId());
/*今日沉淀量*/
WechatUserGetReqVo todayGetReqVo = new WechatUserGetReqVo();
todayGetReqVo.setCompanyId(reqVo.getCompanyId());
todayGetReqVo.setStart(DateHelper.getNow().substring(0,10)+" 00:00:00");
todayGetReqVo.setEnd(DateHelper.getNow().substring(0,10)+" 23:59:59");
List<Map> todayList = (List<Map>) wechatUserDaoImpl.getUserNum(todayGetReqVo);
Long today = (Long) todayList.get(0).get("num");
resVo.setTodayPrecipitation(today);
/*总沉淀量*/
WechatUserGetReqVo totalGetReqVo = new WechatUserGetReqVo();
totalGetReqVo.setCompanyId(reqVo.getCompanyId());
List<Map> totalList = (List<Map>) wechatUserDaoImpl.getUserNum(totalGetReqVo);
Long total = (Long) totalList.get(0).get("num");
resVo.setTotalPrecipitation(total);
/*沉淀用户分页列表*/
WechatUserGetReqVo userListGetReqVo = new WechatUserGetReqVo();
userListGetReqVo.setCompanyId(reqVo.getCompanyId());
PageSizeData<WechatUserVo> wechatUserVoList = wechatUserDaoImpl.getUserList(reqVo);
resVo.setWechatUserVoList(wechatUserVoList);
return resVo;
}
/**
* 根据公司id返回该公司二维码url,若没有则创建
* @param reqVo 封装了公司id和选项(限制为永久)的请求对象
* @return
*/
@Override
public String qrCodeUrl(GenerateQrCodeUrlReqVo reqVo) {
return companyServiceImpl.generateQrCodeUrl(reqVo);
}
/**
* 根据公司id获取该公司的邀请码,若没有则创建
* @param reqVo 封装了公司id的请求对象
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public String invitation(InvitationReqVo reqVo) {
CompanyExtendGetReqVo companyExtendGetReqVo = new CompanyExtendGetReqVo();
companyExtendGetReqVo.setId(reqVo.getCompanyId());
CompanyExtendVo companyExtendVo = companyExtendDaoImpl.load(reqVo,CompanyExtendVo.class);
if (null == companyExtendVo){
companyExtendVo.setId(reqVo.getCompanyId());
companyExtendVo.setQrCode(DateHelper.getNow()
.replace("-","")
.replace(":","")
.replace(" ",""));
companyExtendDaoImpl.create(companyExtendVo);
}
String invitationCode = companyExtendVo.getInvitationCode();
if (null == invitationCode){
invitationCode = ShareCodeUtil.toSerialCode((new Date()).getTime());
companyExtendVo.setInvitationCode(invitationCode);
companyExtendDaoImpl.update(companyExtendVo);
}
return invitationCode;
}
} }
package com.pangding.web.authority.util;
import java.util.Date;
import java.util.Random;
/**
* @Author zhangjinyao
* @create 2019/6/20 17:37
*/
public class ShareCodeUtil {
/** 自定义进制(0,1没有加入,容易与o,l混淆) */
private static final char[] r = new char[] { 'q', 'w', 'e', '8', 'a', 's', '2', 'd', 'z', 'x', '9', 'c', '7', 'p',
'5', 'i', 'k', '3', 'm', 'j', 'u', 'f', 'r', '4', 'v', 'y', 'l', 't', 'n', '6', 'b', 'g', 'h' };
/** (不能与自定义进制有重复) */
private static final char b = 'o';
/** 进制长度 */
private static final int binLen = r.length;
/** 序列最小长度 */
private static final int s = 6;
/**
* @Title: yqm
* @Description: 邀请码生成
* @param @param date 当前时间
* @param @return
* @return String
* @throws
*/
public static String yqm(Date date){
return toSerialCode(date.getTime());
}
/**
* 根据ID生成六位随机码
*
* @param id
* ID
* @return 随机码
*/
public static String toSerialCode(long id) {
char[] buf = new char[32];
int charPos = 32;
while ((id / binLen) > 0) {
int ind = (int) (id % binLen);
// System.out.println(num + "-->" + ind);
buf[--charPos] = r[ind];
id /= binLen;
}
buf[--charPos] = r[(int) (id % binLen)];
// System.out.println(num + "-->" + num % binLen);
String str = new String(buf, charPos, (32 - charPos));
// 不够长度的自动随机补全
if (str.length() < s) {
StringBuilder sb = new StringBuilder();
sb.append(b);
Random rnd = new Random();
for (int i = 1; i < s - str.length(); i++) {
sb.append(r[rnd.nextInt(binLen)]);
}
str += sb.toString();
}
return str;
}
private static long codeToId(String code) {
char chs[] = code.toCharArray();
long res = 0L;
for (int i = 0; i < chs.length; i++) {
int ind = 0;
for (int j = 0; j < binLen; j++) {
if (chs[i] == r[j]) {
ind = j;
break;
}
}
if (chs[i] == b) {
break;
}
if (i > 0) {
res = res * binLen + ind;
} else {
res = ind;
}
}
return res;
}
}
...@@ -39,11 +39,11 @@ public class WechatUserVo extends BaseVo implements InitDao { ...@@ -39,11 +39,11 @@ public class WechatUserVo extends BaseVo implements InitDao {
private String age; private String age;
@TableAnnotation("follow_time") @TableAnnotation("subscribe_date")
private String followTime; private String subcribeDate;
@TableAnnotation("unfollow_time") @TableAnnotation("unsubscribe_date")
private String unfollowTime; private String unSubcribeDate;
public String getId() { public String getId() {
return id; return id;
...@@ -141,20 +141,20 @@ public class WechatUserVo extends BaseVo implements InitDao { ...@@ -141,20 +141,20 @@ public class WechatUserVo extends BaseVo implements InitDao {
this.age = age; this.age = age;
} }
public String getFollowTime() { public String getSubcribeDate() {
return followTime; return subcribeDate;
} }
public void setFollowTime(String followTime) { public void setSubcribeDate(String subcribeDate) {
this.followTime = followTime; this.subcribeDate = subcribeDate;
} }
public String getUnfollowTime() { public String getUnSubcribeDate() {
return unfollowTime; return unSubcribeDate;
} }
public void setUnfollowTime(String unfollowTime) { public void setUnSubcribeDate(String unSubcribeDate) {
this.unfollowTime = unfollowTime; this.unSubcribeDate = unSubcribeDate;
} }
@Override @Override
......
package com.pangding.web.authority.vo.reqvo;
import com.yanzuoguang.util.vo.BaseVo;
/**
* @Author zhangjinyao
* @create 2019/6/20 17:21
*/
public class InvitationReqVo extends BaseVo {
private String reqId;
private String companyId;
public String getReqId() {
return reqId;
}
public void setReqId(String reqId) {
this.reqId = reqId;
}
public String getCompanyId() {
return companyId;
}
public void setCompanyId(String companyId) {
this.companyId = companyId;
}
}
package com.pangding.web.authority.vo.reqvo;
/**
* @Author zhangjinyao
* @create 2019/6/20 11:40
*/
public class ManagementReqVo {
private String reqId;
private String userId;
public String getReqId() {
return reqId;
}
public void setReqId(String reqId) {
this.reqId = reqId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
}
package com.pangding.web.authority.vo.reqvo;
import com.yanzuoguang.util.vo.PageSizeReqVo;
/**
* @Author zhangjinyao
* @create 2019/6/20 15:16
*/
public class PrecipitationReqVo extends PageSizeReqVo {
private String reqId;
private String companyId;
public String getReqId() {
return reqId;
}
public void setReqId(String reqId) {
this.reqId = reqId;
}
public String getCompanyId() {
return companyId;
}
public void setCompanyId(String companyId) {
this.companyId = companyId;
}
}
package com.pangding.web.authority.vo.resvo;
import com.pangding.web.authority.vo.CompanyBankCardVo;
import com.pangding.web.authority.vo.CompanyVo;
import com.pangding.web.authority.vo.UserVo;
/**
* @Author zhangjinyao
* @create 2019/6/20 11:50
*/
public class ManagementResVo {
private UserVo userVo;
private CompanyVo companyVo;
private CompanyBankCardVo companyBankCardVo;
public UserVo getUserVo() {
return userVo;
}
public void setUserVo(UserVo userVo) {
this.userVo = userVo;
}
public CompanyVo getCompanyVo() {
return companyVo;
}
public void setCompanyVo(CompanyVo companyVo) {
this.companyVo = companyVo;
}
public CompanyBankCardVo getCompanyBankCardVo() {
return companyBankCardVo;
}
public void setCompanyBankCardVo(CompanyBankCardVo companyBankCardVo) {
this.companyBankCardVo = companyBankCardVo;
}
}
package com.pangding.web.authority.vo.resvo;
import com.pangding.web.authority.vo.WechatUserVo;
import com.yanzuoguang.util.vo.BaseVo;
import com.yanzuoguang.util.vo.PageSizeData;
/**
* @Author zhangjinyao
* @create 2019/6/20 15:17
*/
public class PrecipitationResVo extends BaseVo {
/**
* 今日沉淀量
*/
private Long todayPrecipitation;
/**
* 总沉淀量
*/
private Long totalPrecipitation;
/**
* 沉淀用户列表
*/
private PageSizeData<WechatUserVo> wechatUserVoList;
private String companyId;
public String getCompanyId() {
return companyId;
}
public void setCompanyId(String companyId) {
this.companyId = companyId;
}
public Long getTodayPrecipitation() {
return todayPrecipitation;
}
public void setTodayPrecipitation(Long todayPrecipitation) {
this.todayPrecipitation = todayPrecipitation;
}
public Long getTotalPrecipitation() {
return totalPrecipitation;
}
public void setTotalPrecipitation(Long totalPrecipitation) {
this.totalPrecipitation = totalPrecipitation;
}
public PageSizeData<WechatUserVo> getWechatUserVoList() {
return wechatUserVoList;
}
public void setWechatUserVoList(PageSizeData<WechatUserVo> wechatUserVoList) {
this.wechatUserVoList = wechatUserVoList;
}
}
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