xiaoyong931011
2021-03-16 c45db552e4593987248b7833fbe4985b6d80542d
Merge branch 'score_shop' of http://120.27.238.55:7000/r/beauty-erp into score_shop
3 files added
1 files renamed
6 files modified
288 ■■■■ changed files
zq-erp/src/main/java/com/matrix/biz/action/BizUserAction.java 15 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/core/pojo/VerificationResult.java 47 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/fenxiao/constant/FenxiaoSettingConstant.java 16 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java 71 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java 14 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java 38 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopOrderDao.java 2 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopOrderDaoV2.java 13 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDaoV2.xml 12 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/shop/shopUser-list.html 60 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/biz/action/BizUserAction.java
@@ -5,7 +5,6 @@
import com.matrix.biz.dao.BizUserDao;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.pojo.PaginationVO;
import com.matrix.core.tools.StringUtils;
import com.matrix.system.hive.action.util.QueryUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -44,18 +43,6 @@
    }
    /**
     * 批量设置为销售员
     * @param ids
     * @param status 1=销售员,0=普通用户
     * @return
     */
    @RequestMapping(value = "/setUserSales")
    @ResponseBody
    public AjaxResult setUserSales(String ids,Integer status){
        List<String> userIds = StringUtils.strToCollToString(ids, ",");
        bizUserDao.updateSalesByIds(userIds,status);
        return  new AjaxResult(AjaxResult.STATUS_SUCCESS,"修改成功");
    }
}
zq-erp/src/main/java/com/matrix/core/pojo/VerificationResult.java
New file
@@ -0,0 +1,47 @@
package com.matrix.core.pojo;
import lombok.Data;
/**
 * 通用的验证返回参数
 */
@Data
public class VerificationResult {
    private boolean result;
    private String  msg;
    private Object  info;
    private VerificationResult(){
    }
    public static VerificationResult buildVerificationResult(boolean result){
        VerificationResult obj=new VerificationResult();
        obj.result=result;
        return obj ;
    }
    public static VerificationResult buildVerificationResult(boolean result,String msg){
        VerificationResult obj=new VerificationResult();
        obj.result=result;
        obj.msg=msg;
        return obj ;
    }
    public static VerificationResult buildVerificationResult(boolean result,Object  info){
        VerificationResult obj=new VerificationResult();
        obj.result=result;
        obj.info=info;
        return obj ;
    }
}
zq-erp/src/main/java/com/matrix/system/fenxiao/constant/FenxiaoSettingConstant.java
@@ -22,6 +22,22 @@
     */
    public final static String FX_APPLY_CONDITION = "FX_APPLY_CONDITION";
    /**
     * 申请条件 1 无条件
     */
    public final static String FX_APPLY_CONDITION_WTJ = "1";
    /**
     * 申请条件 1 消费任意产品
     */
    public final static String FX_APPLY_CONDITION_XFRYCP = "2";
    /**
     * 申请条件 1 消费指定产品
     */
    public final static String FX_APPLY_CONDITION_XFZDCP = "3";
    /**
     * 申请条件 1 消费指定金额
     */
    public final static String FX_APPLY_CONDITION_XCZDJE = "4";
    /**
     * 推广计划
     */
    public final static String FX_TG_PLAN = "FX_TG_PLAN";
zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java
@@ -1,5 +1,7 @@
package com.matrix.system.fenxiao.service;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -8,8 +10,10 @@
import com.matrix.biz.bean.BizUser;
import com.matrix.biz.dao.BizUserDao;
import com.matrix.biz.service.BizUserService;
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.exception.GlobleException;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.pojo.VerificationResult;
import com.matrix.core.tools.StringUtils;
import com.matrix.system.common.bean.BusParameterSettings;
import com.matrix.system.common.bean.SysUsers;
@@ -17,31 +21,13 @@
import com.matrix.system.fenxiao.constant.FenxiaoSettingConstant;
import com.matrix.system.fenxiao.dao.ShopSalesmanApplyDao;
import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao;
import com.matrix.system.fenxiao.dto.ChangeSaleManGradeDto;
import com.matrix.system.fenxiao.dto.DelFyfaApplyDto;
import com.matrix.system.fenxiao.dto.DelSaleManGradeApplyDto;
import com.matrix.system.fenxiao.dto.FyfaManageDto;
import com.matrix.system.fenxiao.dto.ShopSalesmanAppliingDto;
import com.matrix.system.fenxiao.dto.ShopSalesmanApplyDto;
import com.matrix.system.fenxiao.dto.ShopSalesmanDetailDto;
import com.matrix.system.fenxiao.dto.UnbundlingSaleManDto;
import com.matrix.system.fenxiao.dto.UpdateFyfaDto;
import com.matrix.system.fenxiao.dto.UpdateTgjhDto;
import com.matrix.system.fenxiao.dto.UpdateTgtpDto;
import com.matrix.system.fenxiao.dto.*;
import com.matrix.system.fenxiao.entity.ShopSalesmanApply;
import com.matrix.system.fenxiao.entity.ShopSalesmanGrade;
import com.matrix.system.fenxiao.vo.FyfaManageVo;
import com.matrix.system.fenxiao.vo.SalesmanBasicDetailVo;
import com.matrix.system.fenxiao.vo.ShopCustomDetailVo;
import com.matrix.system.fenxiao.vo.ShopOrderDetailVo;
import com.matrix.system.fenxiao.vo.ShopSalesmanAppliingVo;
import com.matrix.system.fenxiao.vo.ShopSalesmanApplyVo;
import com.matrix.system.fenxiao.vo.ShopSalesmanGradeVo;
import com.matrix.system.fenxiao.vo.*;
import com.matrix.system.hive.action.util.QueryUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.matrix.system.shopXcx.dao.ShopOrderDao;
import com.matrix.system.shopXcx.dao.ShopOrderDaoV2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -74,6 +60,9 @@
    @Autowired
    BizUserService bizUserService;
    @Autowired
    ShopOrderDaoV2 shopOrderDaoV2;
    /**
     * 申请成为推广员
     * @param openId
@@ -94,11 +83,11 @@
            ShopSalesmanApply shopSalesmanApply=new ShopSalesmanApply();
            shopSalesmanApply.setUserId(openId);
            
            shopSalesmanApply.setCreateBy(loginUser.getNickName());
            shopSalesmanApply.setCreateBy(MatrixConstance.SYSTEM_USER);
            shopSalesmanApply.setApplyWay(ShopSalesmanApply.APPLY_WAY_SELF);
            shopSalesmanApply.setCompanyId(loginUser.getCompanyId());
            shopSalesmanApply.setUpdateBy(loginUser.getNickName());
            shopSalesmanApply.setUpdateBy(MatrixConstance.SYSTEM_USER);
            Date date = new Date();
            shopSalesmanApply.setCreateTime(date);
            shopSalesmanApply.setUpdateTime(date);
@@ -139,6 +128,40 @@
    }
    /**
     * 判断是否满足申请成为分销员的条件
     */
    public VerificationResult isAbleToBeAnSalesman(String openId) {
        BizUser bizUser = bizUserDao.findByOpenId(openId);
        VerificationResult verificationResult=null;
        //申请条件
        BusParameterSettings applyCondition = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_APPLY_CONDITION, bizUser.getCompanyId());
        switch (applyCondition.getParamValue()){
            case FenxiaoSettingConstant.FX_APPLY_CONDITION_WTJ:
                VerificationResult.buildVerificationResult(true);
            case FenxiaoSettingConstant.FX_APPLY_CONDITION_XFZDCP:
                VerificationResult.buildVerificationResult(true);
            case FenxiaoSettingConstant.FX_APPLY_CONDITION_XFRYCP:
                //判断用户是否有确认收货的产品
                int receivedOrderCount= shopOrderDaoV2.selectReceivedOrderCount(openId);
                if(receivedOrderCount>0){
                    verificationResult= VerificationResult.buildVerificationResult(true);
                }else{
                    verificationResult= VerificationResult.buildVerificationResult(false,"不符合申请条件,请消费任意产品后再申请!");
                }
            case FenxiaoSettingConstant.FX_APPLY_CONDITION_XCZDJE:
                VerificationResult.buildVerificationResult(true);
            default:
                VerificationResult.buildVerificationResult(true);
        }
        return verificationResult;
    }
    public IPage<ShopSalesmanApplyVo> findShopSalesmanApplyList(Page<ShopSalesmanApplyVo> page, ShopSalesmanApplyDto shopSalesmanApplyDto) {
        return shopSalesmanApplyDao.findShopSalesmanApplyList(page,shopSalesmanApplyDto);
    }
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java
@@ -76,6 +76,20 @@
        return ajaxResult;
    }
    @ApiOperation(value = "查询分销商城开关", notes = "1开启分销,2关闭分销")
    @GetMapping(value = "/getSalesMallSetting")
    public AjaxResult getSalesMallSwith() {
        BusParameterSettings fxSwith = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_SWITCH, HostInterceptor.getCompanyId());
        BusParameterSettings fxModel = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_MODEL, HostInterceptor.getCompanyId());
        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("查询成功");
        ajaxResult.putInMap("fxSwith",fxSwith.getParamValue());
        ajaxResult.putInMap("fxModel",fxModel.getParamValue());
        return ajaxResult;
    }
    @ApiOperation(value = "申请成为推广员", notes = "传入参数invitationId 邀请人openId ,非必填 例: {invitationId:openId}")
    @ApiResponses({
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java
File was renamed from zq-erp/src/main/java/com/matrix/system/shopXcx/api/WxUserAction.java
@@ -1,7 +1,6 @@
package com.matrix.system.shopXcx.api;
package com.matrix.system.shopXcx.api.action;
import com.matrix.biz.bean.BizUser;
import com.matrix.biz.dao.BizUserDao;
import com.matrix.biz.service.BizUserService;
import com.matrix.component.redis.RedisUserLoginUtils;
import com.matrix.component.tools.HttpCurlUtil;
@@ -12,6 +11,7 @@
import com.matrix.core.web.BaseAction;
import com.matrix.system.common.constance.AppConstance;
import com.matrix.system.common.interceptor.HostInterceptor;
import com.matrix.system.shopXcx.api.WeChatApiTools;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -39,8 +39,7 @@
    @Autowired
    private RedisUserLoginUtils redisUserLoginUtils;
    @Autowired
    private BizUserDao bizUserDao;
    @Autowired
    WeChatApiTools weChatApiTools;
@@ -127,37 +126,6 @@
    AjaxResult findUserInfo() {
        BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class);
        String openId = loginUser.getOpenId();
        BizUser bizUser = bizUserService.findByOpenId(openId);
        //处理用户当前所在店铺
        /*
        if(bizUser.getStaff()!=null){
            //当前用户是员工账号
            bizUser.setBusiness(bussinesssDao.selectById(bizUser.getStaff().getBusinessId()));
            bizUser.setRole(bizUser.getStaff().getRole());
        }else{
            //当前用户是boss账号
            bizUser.setBusiness(bussinesssDao.findByUserOpenId(bizUser.getOpenId()));
            bizUser.setRole(AppConstance.User_ROLE_BOSS);
        }*/
        AjaxResult res = new AjaxResult();
        res.putInMap("userInfo", bizUser);
        res.setStatus(AjaxResult.STATUS_SUCCESS);
        return res;
    }
    /**
     * 获取其他用户简化信息
     * @author JIANGYOUYAO
     * @email 935090232@qq.com
     * @date 2018年9月5日
     * @param openId
     * @return
     */
    @RequestMapping(value = "/getOtherUserInfo/{openId}")
    public @ResponseBody
    AjaxResult getOtherUserInfo(@PathVariable String openId) {
        BizUser bizUser = bizUserService.findByOpenId(openId);
        AjaxResult res = new AjaxResult();
        res.putInMap("userInfo", bizUser);
zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopOrderDao.java
@@ -78,4 +78,6 @@
    public List<Map<String,Object>>  selectOrderStatusCount(String openId);
    public int batchUpdateOrderStatus(@Param("list") List<ShopOrder> list);
}
zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopOrderDaoV2.java
New file
@@ -0,0 +1,13 @@
package com.matrix.system.shopXcx.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.matrix.system.shopXcx.bean.ShopOrder;
/**
 * @description 订单表
 */
public interface ShopOrderDaoV2 extends BaseMapper<ShopOrder> {
    /** 统计已收货订单数 */
    int selectReceivedOrderCount(String openId);
}
zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDaoV2.xml
New file
@@ -0,0 +1,12 @@
<?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.matrix.system.shopXcx.dao.ShopOrderDaoV2">
    <select id="selectReceivedOrderCount" resultType="java.lang.Integer">
        select count(*)  from shop_order where user_id = #{openId} and order_status in (4,5)
    </select>
</mapper>
zq-erp/src/main/resources/templates/views/admin/shop/shopUser-list.html
@@ -21,14 +21,7 @@
            <div class="col-md-2 col-xs-12">
                <!-- 功能按钮部分 -->
                <div class="">
                    <button onclick="setUserSales('1')" type="button"
                            class="btn btn-success btn-sm" matrix:btn="shopUser-exchangeScore">
                        <i class="fa fa-plus"></i>设为销售员
                    </button>
                    <button onclick="setUserSales('0')" type="button"
                            class="btn btn-success btn-sm" matrix:btn="shopUser-exchangeScore">
                        <i class="fa fa-minus-square"></i> 解除销售员
                    </button>
                </div>
            </div>
            <div class="col-md-10 col-xs-12">
@@ -199,63 +192,14 @@
    function buildOperate(value, row, index){
        var html = "";
        html += '<div class="btn-group">'
        if (row.userVip == 1) {
            html += btns[0].replace('VALUE',value)
            html += btns[1].replace('VALUE',value)
        }
        html += '</div>';
        return html;
    }
    function exchangeScore(_userId) {
        layer.open({
            type : 2,
            title : "兑换积分",
            area : [ MUI.SIZE_L, '400px' ],
            maxmin : true,
            content : [ basePath+'/admin/bizUserScore/intoExchangePage?userId=' + _userId]
        })
    }
    function getScoreFlow(_userId) {
        layer.open({
            type : 2,
            title : "积分流水",
            area : [ MUI.SIZE_L, '400px' ],
            maxmin : true,
            content : [ basePath+'/admin/redirect/shop/user-score-flow?userId=' + _userId]
        })
    }
    //设置用户销售员身份
    function setUserSales(_status) {
        var ids = myGrid.getSelectItemsIds("userId");
        if(ids.length < 1){
            layer.msg("请选择要操作的数据", {
                icon : 5
            });
            return false;
        }
        var url = basePath + "/admin/bizUser/setUserSales?ids=" + ids + "&status=" + _status;
        if(_status == '1'){
            MTools.handleItem(url,"确认要将这" + ids.split(",").length + "个用户设置为销售员吗?",function(){
                myGrid.serchData(1)
            });
        } else {
            MTools.handleItem(url,"确认要取消这" + ids.split(",").length + "个用户的销售员身份吗?",function(){
                myGrid.serchData(1)
            });
        }
    }
</script>
<!--权限按钮-->
<script matrix:btn="shopUser-exchangeScore">
    btns[0] = '<button  type="button" class="btn btn-info mr10" onClick="exchangeScore(\'VALUE\')">兑换积分</button>'
</script>
<script matrix:btn="shopUser-scoreFlow">
    btns[1] = '<button type="button" class="btn btn-primary ml10" onClick="getScoreFlow(\'VALUE\')">查看流水</button>'
</script>
</body>
</html>