Merge branch 'master' of gitee.com:darlk/ShengTangManage into develop

This commit is contained in:
德仔
2021-06-03 10:50:24 +08:00
committed by Gitee
33 changed files with 615 additions and 83 deletions

View File

@ -38,6 +38,11 @@ public class SysCommision extends BaseEntity {
*/
private Long postId;
/**
* 岗位编码code
*/
private String postCode;
/**
* 业务员
*/

View File

@ -39,4 +39,7 @@ public class SysImportFanWxAccount extends BaseEntity
//导粉日期
@JsonFormat(pattern = "yyyy-MM-dd")
private Date importFanDate;
//售前
private Long preSaleId;
}

View File

@ -84,6 +84,17 @@ public class SysOrder extends BaseEntity {
@Excel(name = "售前")
private String preSale;
/**
* 售前推送人(售中一开单才存在)
*/
//@Excel(name = "售前推送人")
private Long pushPreSaleId;
/**
* 售前推送人(售中一开单才存在)
*/
private String pushPreSale;
/** 售中ID */
private Long onSaleId;

View File

@ -45,6 +45,12 @@ public class SysWxSaleAccount extends BaseEntity
private Integer useCount;
//进粉渠道
private Integer channel;
//销售ID
private Long saleId;
//销售昵称
private String saleName;
}

View File

@ -76,5 +76,5 @@ public interface SysWxSaleAccountMapper
* 获取可接粉的微信号以及分配的销售昵称
* @return
*/
List<SysWxSaleAccount> getWxAccountAndSale();
List<SysWxSaleAccount> getWxAccountAndSale(SysWxSaleAccount sysWxSaleAccount);
}

View File

@ -70,4 +70,11 @@ public interface SysWxUserInfoMapper
* @return
*/
public SysWxUserInfo getSysWxUserInfoByPhone(@Param("phone")String phone);
/**
* 根据openid移除对应绑定的cusId
* @param openid
* @return
*/
public int removeCusIdByOpenId(@Param("openid")String openid);
}

View File

@ -77,5 +77,5 @@ public interface ISysWxSaleAccountService
* 获取可接粉的微信号以及分配的销售昵称
* @return
*/
List<SysWxSaleAccount> getWxAccountAndSale();
List<SysWxSaleAccount> getWxAccountAndSale(SysWxSaleAccount sysWxSaleAccount);
}

View File

@ -70,5 +70,12 @@ public interface ISysWxUserInfoService
*/
public SysWxUserInfo getSysWxUserInfoByPhone(String phone);
/**
* 根据openid移除对应绑定的cusId
* @param openid
* @return
*/
public int removeCusIdByOpenId(String openid);
}

View File

@ -198,11 +198,33 @@ public class SysCustomerServiceImpl implements ISysCustomerService {
if(newCustomer == null || newCustomer.getId() == null || StringUtils.isEmpty(newCustomer.getPhone())){
return;
}
//先根据cusId查询是否已经绑定过微信用户
SysWxUserInfo cusIdWxUserInfo = sysWxUserInfoService.selectSysWxUserInfoByCusId(newCustomer.getId());
//根据手机号查询微信用户记录
SysWxUserInfo wxUserInfo = sysWxUserInfoService.getSysWxUserInfoByPhone(newCustomer.getPhone());
if(wxUserInfo != null && (wxUserInfo.getCusId() == null || wxUserInfo.getCusId().longValue() != newCustomer.getId())){
wxUserInfo.setCusId(newCustomer.getId());
sysWxUserInfoService.updateSysWxUserInfo(wxUserInfo);
SysWxUserInfo phoneWxUserInfo = sysWxUserInfoService.getSysWxUserInfoByPhone(newCustomer.getPhone());
if(cusIdWxUserInfo != null) {
if(phoneWxUserInfo != null){
if(!cusIdWxUserInfo.getOpenid().equals(phoneWxUserInfo.getOpenid())){
//解绑之前记录
sysWxUserInfoService.removeCusIdByOpenId(cusIdWxUserInfo.getOpenid());
//更新
SysWxUserInfo param = new SysWxUserInfo();
param.setOpenid(phoneWxUserInfo.getOpenid());
param.setCusId(newCustomer.getId());
sysWxUserInfoService.updateSysWxUserInfo(param);
}
}else{
//解绑之前记录
sysWxUserInfoService.removeCusIdByOpenId(cusIdWxUserInfo.getOpenid());
}
}else{
if(phoneWxUserInfo != null){
//更新
SysWxUserInfo param = new SysWxUserInfo();
param.setOpenid(phoneWxUserInfo.getOpenid());
param.setCusId(newCustomer.getId());
sysWxUserInfoService.updateSysWxUserInfo(param);
}
}
}
}

View File

@ -105,7 +105,7 @@ public class SysOrderServiceImpl implements ISysOrderService {
row = sysOrderMapper.insertSysOrder(sysOrder);
//需要自动创建售后二开提成单
if(row > 0 && sysOrder.getSecondAfterSaleFlag() != null && sysOrder.getSecondAfterSaleFlag().intValue() == 1){
autoCreateSecondAfterSaleOrder(sysOrder);
row = autoCreateSecondAfterSaleOrder(sysOrder);
}
}else{
row = sysOrderMapper.insertSysOrder(sysOrder);
@ -143,7 +143,7 @@ public class SysOrderServiceImpl implements ISysOrderService {
//二开,是否需要自动创建售后二开提成单
if(row > 0 && "1".equals(sysOrder.getOrderCountType()) && sysOrder.getSecondAfterSaleFlag() != null && sysOrder.getSecondAfterSaleFlag().intValue() == 1){
sysOrder.setAmount(amount);
autoCreateSecondAfterSaleOrder(sysOrder);
row = autoCreateSecondAfterSaleOrder(sysOrder);
}
}
//体验单
@ -155,6 +155,64 @@ public class SysOrderServiceImpl implements ISysOrderService {
sysOrder.setNutriAssisId(null);
row = sysOrderMapper.insertSysOrder(sysOrder);
}
//售中单
else if("3".equals(sysOrder.getOrderType())){
sysOrder.setPreSaleId(null);
//一开、二开
if("0".equals(sysOrder.getOrderCountType()) || "1".equals(sysOrder.getOrderCountType())){
sysOrder.setNutritionistId((sysOrder.getNutritionistIdList() != null && sysOrder.getNutritionistIdList().length > 0) ? sysOrder.getNutritionistIdList()[0] : null);
sysOrder.setMainOrderId(0L);
sysOrder.setAfterSaleCommissOrder(0);
if("0".equals(sysOrder.getOrderCountType())){
row = sysOrderMapper.insertSysOrder(sysOrder);
}else{
//二开单不存在售前推荐人
sysOrder.setPushPreSaleId(null);
row = sysOrderMapper.insertSysOrder(sysOrder);
//需要自动创建售后二开提成单
if(row > 0 && sysOrder.getSecondAfterSaleFlag() != null && sysOrder.getSecondAfterSaleFlag().intValue() == 1){
row = autoCreateSecondAfterSaleOrder(sysOrder);
}
}
}else{
sysOrder.setAfterSaleCommissOrder(0);
String rate = sysOrder.getNutritionistRate();
if(StringUtils.isEmpty(rate) || rate.indexOf(",") == -1 || "0,10".equals(rate) || sysOrder.getNutritionistIdList().length != 2){
return 0;
}
String[] rateArray = rate.split(",");
if(Integer.parseInt(rateArray[0]) + Integer.parseInt(rateArray[1]) != 10){
return 0;
}
BigDecimal amount = sysOrder.getAmount();
//获取主单的数组下标
int mainIndex = 0;
if(Integer.parseInt(rateArray[1]) > Integer.parseInt(rateArray[0])){
mainIndex = 1;
}
//添加主单
sysOrder.setNutritionistId(sysOrder.getNutritionistIdList()[mainIndex]);
sysOrder.setAmount(BigDecimal.valueOf(amount.doubleValue()*Integer.parseInt(rateArray[mainIndex])/10));
sysOrder.setMainOrderId(0L);
//拆分二开单
if("3".equals(sysOrder.getOrderCountType())){
//二开单不存在售前推荐人
sysOrder.setPushPreSaleId(null);
}
row = sysOrderMapper.insertSysOrder(sysOrder);
//添加副单
sysOrder.setMainOrderId(sysOrder.getOrderId());
sysOrder.setOrderId(sysOrder.getOrderId()+1);
sysOrder.setNutritionistId(sysOrder.getNutritionistIdList()[1-mainIndex]);
sysOrder.setAmount(BigDecimal.valueOf(amount.doubleValue()*Integer.parseInt(rateArray[1-mainIndex])/10));
row = sysOrderMapper.insertSysOrder(sysOrder);
//拆分二开单
if(row > 0 && "3".equals(sysOrder.getOrderCountType()) && sysOrder.getSecondAfterSaleFlag() != null && sysOrder.getSecondAfterSaleFlag().intValue() == 1){
sysOrder.setAmount(amount);
row = autoCreateSecondAfterSaleOrder(sysOrder);
}
}
}
return row;
}
@ -166,6 +224,8 @@ public class SysOrderServiceImpl implements ISysOrderService {
private int autoCreateSecondAfterSaleOrder(SysOrder sysOrder){
if(sysOrder != null){
sysOrder.setPreSaleId(sysOrder.getAfterSaleId());
sysOrder.setOnSaleId(null);
sysOrder.setPushPreSaleId(null);
sysOrder.setAfterSaleId(null);
sysOrder.setNutritionistId(null);
sysOrder.setNutriAssisId(null);
@ -173,6 +233,7 @@ public class SysOrderServiceImpl implements ISysOrderService {
sysOrder.setPlannerAssisId(null);
sysOrder.setOperatorId(null);
sysOrder.setOperatorAssisId(null);
sysOrder.setMainOrderId(0L);
sysOrder.setAfterSaleCommissOrder(1);
sysOrder.setOrderId(sysOrder.getOrderId()+1);
return sysOrderMapper.insertSysOrder(sysOrder);
@ -208,6 +269,9 @@ public class SysOrderServiceImpl implements ISysOrderService {
sysOrder.setOperatorId(null);
sysOrder.setOperatorAssisId(null);
}
if("3".equals(sysOrder.getOrderType())){
sysOrder.setPreSaleId(null);
}
if(oldSysOrder.getStartTime() == null){//确保提成计算时间不为空
sysOrder.setCommissStartTime(sysOrder.getOrderTime());
}
@ -313,7 +377,7 @@ public class SysOrderServiceImpl implements ISysOrderService {
for (SysOrder sysOrder : orderList) {
LocalDate newStartTime = null;
//判断是否提成单,拆分单中的副单,体验单,定金单
if(sysOrder.getStartTime() == null || sysOrder.getAfterSaleCommissOrder().intValue() == 1 || ("1".equals(sysOrder.getOrderType()) && sysOrder.getMainOrderId().intValue() != 0) ||
if(sysOrder.getStartTime() == null || sysOrder.getAfterSaleCommissOrder().intValue() == 1 || sysOrder.getMainOrderId().intValue() != 0 ||
"2".equals(sysOrder.getOrderType()) || "1".equals(sysOrder.getOrderMoneyType())){
continue;
}

View File

@ -170,7 +170,7 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
continue;
}
//判断是否提成单,拆分单中的副单,体验单,定金单
if (sysOrder.getAfterSaleCommissOrder().intValue() == 1 || ("1".equals(sysOrder.getOrderType()) && sysOrder.getMainOrderId().intValue() != 0) ||
if (sysOrder.getAfterSaleCommissOrder().intValue() == 1 || sysOrder.getMainOrderId().intValue() != 0 ||
// "2".equals(sysOrder.getOrderType()) || // 体验单也需要生成计划 2021.05.29
"1".equals(sysOrder.getOrderMoneyType()) || sysOrder.getCounted() == 1) {
System.out.println("---------------------" + sysOrder.getOrderId() + "不生成食谱------------------------");

View File

@ -136,7 +136,7 @@ public class SysWxSaleAccountServiceImpl implements ISysWxSaleAccountService {
* @param sysWxSaleAccount
* @return
*/
public List<SysWxSaleAccount> getWxAccountAndSale(){
return sysWxSaleAccountMapper.getWxAccountAndSale();
public List<SysWxSaleAccount> getWxAccountAndSale(SysWxSaleAccount sysWxSaleAccount){
return sysWxSaleAccountMapper.getWxAccountAndSale(sysWxSaleAccount);
}
}

View File

@ -106,4 +106,13 @@ public class SysWxUserInfoServiceImpl implements ISysWxUserInfoService {
public SysWxUserInfo getSysWxUserInfoByPhone(String phone){
return sysWxUserInfoMapper.getSysWxUserInfoByPhone(phone);
}
/**
* 根据openid移除对应绑定的cusId
* @param openid
* @return
*/
public int removeCusIdByOpenId(String openid){
return sysWxUserInfoMapper.removeCusIdByOpenId(openid);
}
}

View File

@ -4,9 +4,9 @@ import com.stdiet.custom.domain.SysOrder;
public class OrderUtils {
private static final String[] orderTypeArray = {"普通单","比例拆分单","体验单"};
private static final String[] orderTypeArray = {"普通单","比例拆分单","体验单","售中单"};
private static final String[] orderCountTypeArray = {"一开单","二开单"};
private static final String[] orderCountTypeArray = {"一开单","二开单","一开单(拆分)","二开单(拆分)"};
private static final String[] orderMoneyTypeArray = {"全款单","定金单","尾款单"};
@ -27,7 +27,7 @@ public class OrderUtils {
orderTypeName += "/"+orderCountTypeArray[Integer.parseInt(sysOrder.getOrderCountType())];
orderTypeName += "/"+orderMoneyTypeArray[Integer.parseInt(sysOrder.getOrderMoneyType())];
//判断是不是二开提成单
if("1".equals(sysOrder.getOrderCountType()) && sysOrder.getAfterSaleCommissOrder().intValue() == 1){
if(sysOrder.getAfterSaleCommissOrder() != null && sysOrder.getAfterSaleCommissOrder().intValue() == 1){
orderTypeName += "/提成单";
}
return orderTypeName;