商家审核(运营商)

1.1 需求分析

商家申请入驻后,需要网站运营人员在运营商后台sunny-manager-web中进行审核,审核后商家才可以登录系统。

状态值: 0:未审核  1:已审核  2:审核未通过  3:关闭

1.2 思路分析(涉及到多条件查询问题)

  1. 先查询到需要审核的商家,再点击商家详情,确定审核通过、审核不通过、关闭商家。
  2. 所以这里有三个小功能(查询商家待审核列表、商家详情、商家审核)
  3. 前端代码+后端代码(主要是查询语句,查询商家这张表状态为0的)
  4. 通过分析页面可以确定查询条件有三个:公司名称、店铺名称、商家表状态为0
  5. 我们需要做分页,所以还需要两个查询条件,一共五个查询条件,公司名称和店铺名称可以用Seller对象封装(多条件查询 )
  6. ===================查询商家待审核列表===========================
    ===================前端代码==========================
  7. 引入js文件
  8. 加入seller_check.html相关指令:ng-app、ng-controller、ng-init
  9. seller_check.html加入分页指令,标签后面:
  10. ng-repeat循环迭代:
  11. seller_check.html查询条件、查询按钮绑定点击事件:
    ===================后端代码===========================
  12. 创建SellerController.java,多条件分页查询商家,GET请求中文转码,返回PageResult
  13. 服务层接口、接口实现类、创建方法
  14. sql语句映射文件
  15. 安装mapper,再安装接口 install,因为mapper是数据访问层,我们需要启动war的项目,需要到仓库找jar包。

2.1 商家待审核列表

 2.1.1 前端代码

修改sunny-manager-web/src/main/webapp/admin/seller_check.html,引入js:

<script src="/plugins/angularjs/angular.min.js">script>

<script src="/plugins/angularjs/pagination.js">script>
<
link rel="stylesheet" href="/plugins/angularjs/pagination.css"/>

<script src="/js/base-pagination.js">script>
<
script src="/js/service/baseService.js">script>
<
script src="/js/controller/baseController.js">script>
<
script src="/js/controller/sellerController.js">script>

seller_check.html相关指令:

<body class="hold-transition skin-red sidebar-mini"
    
ng-app="pinyougou"
     ng-controller="sellerController"
     ng-init="searchEntity.status=0"
> 

seller_check.html加入分页指令,标签后面:

<tm-pagination conf="paginationConf"/> 

ng-repeat循环迭代:

 



   

   {{entity.sellerId}}

   {{entity.name}}

   {{entity.nickName}}

   {{entity.linkmanName}}

   {{entity.telephone}}

   

      

button>
   td>
tr> 

seller_check.htm查询条件、查询按钮绑定点击事件:

<div class="has-feedback">
  
公司名称:<input ng-model="searchEntity.name"/>
  
店铺名称: <input ng-model="searchEntity.nickName"/>
   <
button class="btn btn-default" ng-click="reload()">查询button>
div> 

 2.1.2 后端代码

sunny-manager-web/src/main/java/com.sunny.manager.controller包下创建SellerController.java:

@RestController
@RequestMapping
("/seller")
public class SellerController {
   
@Reference(timeout = 10000)
   
private SellerService sellerService;
   
/** 多条件分页查询商家 */
   
@GetMapping("/findByPage")
   
public PageResult findByPage(Seller seller, Integer page, Integer rows){
        try {
           
/** GET请求中文转码 */
            if (seller != null && StringUtils.isNoneBlank(seller.getNickName())) {
                seller.setNickName(
new String(seller.getNickName()
                        .getBytes(
"ISO8859-1"), "UTF-8"));
            }
        }
catch (Exception ex){
            ex.printStackTrace();
        }
       
return sellerService.findByPage(seller, page, rows);
    }
}

sunny-interface/src/main/java/com.sunny.service/SellerService.java: 

/** 多条件分页查询 */
PageResult findByPage(Seller seller, int page, int rows);

sunny-sellergoods-service/src/main/java/com.sunny.sellergoods.service.impl的SellerServiceImpl.java:

/** 多条件分页查询商家 */
@Override
public PageResult findByPage(Seller seller, int page, int rows) {
   
try{
       
/** 开始分页 */
       
PageInfo pageInfo = PageHelper.startPage(page, rows)
                .doSelectPageInfo(
new ISelect() {
                   
@Override
                   
public void doSelect() {
                       
sellerMapper.findAll(seller);
                    }
                });
      
 return new PageResult(pageInfo.getTotal(), pageInfo.getList());
    }catch(Exception ex){
       
throw new RuntimeException(ex);
    }
}
 

sunny-mapper/src/main/java/com.pinyougou.mapper/SellerMapper.java: 

/** 多条件查询商家 */
List findAll(Seller seller);

sunny-mapper/src/main/resources/mappers/SellerMapper.xml: 


<select id="findAll" resultType="Seller">
   select * from tb_seller
   <
where>
         <
if test="status != null and status !=''">
            status = #{status}
         if>
         <
if test="name != null and name !=''">
            and name like CONCAT('%',#{name},'%')
         if>
         <
if test="nickName != null and nickName !=''">
            and nick_name like CONCAT('%',#{nickName},'%')
         if>
   where>
select>

 3.1 商家详情

商家审核(运营商)_第1张图片

sunny-manager-web/src/main/webapp/admin/seller_check.html列表的“详情”按钮,绑定点击事件 

<button type="button" class="btn bg-olive btn-xs"
       
data-toggle="modal" data-target="#sellerModal"
      
 ng-click="show(entity);"
>详情button>

sunny-manager-web/src/main/webapp/admin/seller_check.html绑定页面弹出窗口 (107行-198行) 


<div id="myTabContent" class="tab-content">
    <
div class="tab-pane active in" id="home">
        <
br/>
        <
table class="table table-bordered table-striped" width="800px">
            <
tr>
                <
td>公司名称td>
                <
td>{{entity.name}}td>
            tr>
            <
tr>
                <
td>公司手机td>
                <
td>{{entity.mobile}}td>
            tr>
            <
tr>
                <
td>公司电话td>
                <
td>{{entity.telephone}}td>
            tr>
            <
tr>
                <
td>公司详细地址td>
                <
td>{{entity.addressDetail}}td>
            tr>
        table>
    div>
    <
div class="tab-pane fade" id="linkman">
        <
br/>
        <
table class="table table-bordered table-striped">
            <
tr>
                <
td>联系人姓名td>
                <
td>{{entity.linkmanName}}td>
            tr>
            <
tr>
                <
td>联系人QQtd>
                <
td>{{entity.linkmanQq}}td>
            tr>
            <
tr>
                <
td>联系人手机td>
                <
td>{{entity.linkmanMobile}}td>
            tr>
            <
tr>
                <
td>联系人E-Mailtd>
                <
td>{{entity.linkmanEmail}}td>
            tr>
        table>
    div>
    <
div class="tab-pane fade" id="certificate">
        <
br>
        <
table class="table table-bordered table-striped">
            <
tr>
                <
td>营业执照号td>
                <
td>{{entity.licenseNumber}}td>
            tr>
            <
tr>
                <
td>税务登记证号td>
                <
td>{{entity.taxNumber}}td>
            tr>
            <
tr>
                <
td>组织机构代码证号td>
                <
td>{{entity.orgNumber}}td>
            tr>
        table>
    div>
    <
div class="tab-pane fade" id="ceo">
        <
br>
        <
table class="table table-bordered table-striped">
            <
tr>
                <
td>法定代表人td>
                <
td>{{entity.legalPerson}}td>
            tr>
            <
tr>
                <
td>法定代表人身份证号td>
                <
td>{{entity.legalPersonCardId}}td>
            tr>
        table>
    div>
    <
div class="tab-pane fade" id="bank">
        <
br>
        <
table class="table table-bordered table-striped">
            <
tr>
                <
td>开户行名称td>
                <
td>{{entity.bankName}}td>
            tr>
            <
tr>
                <
td>开户行支行td>
                <
td>{{entity.bankUser}}td>
            tr>
            <
tr>
                <
td>银行账号td>
                <
td>{{entity.brief}}td>
            tr>
        table>
    div>
div>

/** 定义控制器层 */
app.controller('sellerController', function($scope, $controller, baseService){

    /** 指定继承baseController */
    $controller('baseController',{$scope:$scope});
    //省略......
    /** 显示修改 */
    $scope.show = function(entity){
       /** 把json对象转化成一个新的json对象 */
       $scope.entity = JSON.parse(JSON.stringify(entity));
    };

});

4.1 商家审核

 4.1.1 思路分析

  1. 点击详情,跳出商家详情页面。
  2. 修改三个按钮状态码,为按钮绑定点击事件。
  3. 后端Controller定义一个方法,传不同的状态码。需要两个请求参数传入到后台,一个是主键列id(知道哪一列),一个是状态码参数。

  4.1.2 前端代码

seller_check.html页面上的按钮,绑定点击事件:

<button class="btn btn-success" data-dismiss="modal"
       
ng-click="updateStatus(entity.sellerId,'1')"
        aria-hidden="true"
>审核通过button>
<
button class="btn btn-danger" data-dismiss="modal"
       
ng-click="updateStatus(entity.sellerId,'2')"
        aria-hidden="true"
>审核未通过button>
<
button class="btn btn-danger" data-dismiss="modal"
       
ng-click="updateStatus(entity.sellerId,'3')"
        aria-hidden="true"
>关闭商家button>
<
button class="btn btn-default" data-dismiss="modal"
       
aria-hidden="true"
>关闭button>

修改sunny-manager-web/src/main/webapp/js/controller的

sellerController.js:

/** 修改商家状态 */
$scope.updateStatus = function(sellerId,status){
   baseService.
sendGet("/seller/updateStatus?sellerId="
     
+ sellerId +'&status=' + status)
      .
then(function(response){
        
if(response.data){
           
/** 重新加载数据 */
           
$scope.reload();
         }
else{
            alert(
"操作失败!");
         }
      });
};

   4.1.2 后端代码

sunny-manager-web/src/main/java/com.sunny.manager.controller的SellerController.java

/** 审核商家(修改商家状态) */
@GetMapping("/updateStatus")
public boolean updateStatus(String sellerId, String status){
   
try {
       
sellerService.updateStatus(sellerId, status);
       
return true;
    }
catch (Exception e) {
        e.printStackTrace();
       
return false;
    }
}

sunny-interface/src/main/java/com.sunny.service/SellerService.java服务接口 

/** 修改商家状态 */
void updateStatus(String sellerId, String status);

sunny-sellergoods-service/src/main/java/com.sunny.sellergoods.service.impl的SellerServiceImpl.java服务实现 

/** 修改商家状态 */
public void updateStatus(String sellerId, String status){
   
try{
        Seller seller =
new Seller();
        seller.setSellerId(sellerId);
        seller.setStatus(status);
       
sellerMapper.updateByPrimaryKeySelective(seller);
    }
catch(Exception ex){
       
throw new RuntimeException(ex);
    }
}

更多资料,搜索或扫码关注公众号:数说Cloud

 

你可能感兴趣的:(项目常用功能收录(二))