Pārlūkot izejas kodu

新增登录、统计接口

吴洪双 6 gadi atpakaļ
vecāks
revīzija
fa46a5c02d

+ 22 - 0
src/main/java/com/shawn/model/Bean/ChartBean.java

@@ -0,0 +1,22 @@
+package com.shawn.model.Bean;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+@Accessors(chain = true)
+@NoArgsConstructor
+@Getter
+@Setter
+@ToString
+public class ChartBean {
+
+    @ApiModelProperty(value="统计类目")
+    private String categories;
+
+    @ApiModelProperty(value="数量")
+    private Integer seriesData;
+}

+ 33 - 0
src/main/java/com/shawn/model/Bean/ChartColumn.java

@@ -0,0 +1,33 @@
+package com.shawn.model.Bean;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Accessors(chain = true)
+@NoArgsConstructor
+@Getter
+@Setter
+@ToString
+public class ChartColumn {
+    @ApiModelProperty(value="统计类目")
+    private ArrayList<String> categories;
+    @ApiModelProperty(value="统计类目值")
+    private ArrayList<ChartSerie> series;
+
+    public ChartColumn(ArrayList<String> categories,ArrayList<Integer> seriesDatas,String serieName){
+        this.setCategories(categories);
+        ChartSerie chartSerie = new ChartSerie();
+        chartSerie.setName(serieName);
+        chartSerie.setData(seriesDatas);
+        ArrayList<ChartSerie> series = new ArrayList<>();
+        series.add(chartSerie);
+        this.setSeries(series);
+    }
+}

+ 25 - 0
src/main/java/com/shawn/model/Bean/ChartSerie.java

@@ -0,0 +1,25 @@
+package com.shawn.model.Bean;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Accessors(chain = true)
+@NoArgsConstructor
+@Getter
+@Setter
+@ToString
+public class ChartSerie {
+
+    @ApiModelProperty(value="类别名")
+    private String name;
+
+    @ApiModelProperty(value="数量")
+    private ArrayList<Integer> data;
+}

+ 6 - 1
src/main/java/com/shawn/repository/TOrderMapper.java

@@ -5,10 +5,15 @@
 
 package com.shawn.repository;
 
+import com.shawn.model.Bean.ChartBean;
 import com.shawn.model.entity.TOrder;
 import com.shawn.model.entity.TOrderExample;
 import com.shawn.model.param.TOrderParam;
 import com.shawn.repository.base.BaseDaoInterface;
 
+import java.util.List;
+
 public interface TOrderMapper extends BaseDaoInterface<TOrder,TOrderExample,TOrderParam, Long>{
-}
+
+    public List<ChartBean> getProductSaleMonth(String userId);
+}

+ 14 - 0
src/main/java/com/shawn/service/impl/TOrderServiceImpl.java

@@ -5,6 +5,9 @@
 
 package com.shawn.service.impl;
 
+import com.shawn.model.Bean.ChartBean;
+import com.shawn.web.exception.MyException;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -14,6 +17,9 @@ import com.shawn.model.param.TOrderParam;
 import com.shawn.repository.TOrderMapper;
 import com.shawn.service.base.BaseService;
 import com.shawn.service.interfac.TOrderServiceInterface;
+
+import java.util.List;
+
 @Service
 public class TOrderServiceImpl extends BaseService<TOrder,TOrderExample,TOrderParam,Long> implements TOrderServiceInterface{
 	@Autowired
@@ -28,4 +34,12 @@ public class TOrderServiceImpl extends BaseService<TOrder,TOrderExample,TOrderPa
 		return "TOrder";
 	}
 
+	@Override
+	public List<ChartBean> getProductSaleMonth(String userId){
+		List<ChartBean> list = tOrderMapper.getProductSaleMonth(userId);
+		if(CollectionUtils.isEmpty(list)){
+			throw new MyException("获取数据为空");
+		}
+		return list;
+	}
 }

+ 4 - 0
src/main/java/com/shawn/service/interfac/TOrderServiceInterface.java

@@ -5,10 +5,14 @@
 
 package com.shawn.service.interfac;
 
+import com.shawn.model.Bean.ChartBean;
 import com.shawn.model.entity.TOrder;
 import com.shawn.model.entity.TOrderExample;
 import com.shawn.model.param.TOrderParam;
 import com.shawn.service.base.BaseServiceInterface;
 
+import java.util.List;
+
 public interface TOrderServiceInterface extends BaseServiceInterface<TOrder,TOrderExample,TOrderParam,Long>{
+    public List<ChartBean> getProductSaleMonth(String userId);
 }

+ 3 - 0
src/main/java/com/shawn/service/interfac/TProductServiceInterface.java

@@ -5,10 +5,13 @@
 
 package com.shawn.service.interfac;
 
+import com.shawn.model.Bean.ChartBean;
 import com.shawn.model.entity.TProduct;
 import com.shawn.model.entity.TProductExample;
 import com.shawn.model.param.TProductParam;
 import com.shawn.service.base.BaseServiceInterface;
 
+import java.util.List;
+
 public interface TProductServiceInterface extends BaseServiceInterface<TProduct,TProductExample,TProductParam,Long>{
 }

+ 29 - 2
src/main/java/com/shawn/web/controller/TAdminController.java

@@ -6,7 +6,11 @@
 package com.shawn.web.controller;
 
 import java.util.Date;
+import java.util.List;
+import java.util.Optional;
 
+import com.shawn.util.FgObjectUtil;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -39,6 +43,29 @@ public class TAdminController extends BaseController<TAdmin,TAdminExample,TAdmin
 	protected TAdminExample createNewExample() {
 		return new TAdminExample();
 	}
-	
-    
+
+	/**
+	 * 登录
+	 * @param param
+	 * @return
+	 */
+	@PostMapping("/userLogin")
+	public ResponseEntity<?> userLogin(@RequestBody TAdmin param) {
+		// 检查必输项
+		if(StringUtils.isEmpty(param.getUsername())||StringUtils.isEmpty(param.getPassword())){
+			throw new MyException("用户名密码不能为空");
+		}
+		TAdminExample example = new TAdminExample();
+		TAdminExample.Criteria criteria = example.createCriteria();
+		criteria.andUsernameEqualTo(param.getUsername());
+		criteria.andPasswordEqualTo(param.getPassword());
+		List<TAdmin> list = tAdminService.selectByOption(example);
+		if(list.size()>0){
+			return ResponseEntity.status(HttpStatus.OK)
+					.body(new ResultMessage().setCode(true).setData(list.get(0)).setMessage("SUCCESS"));
+		}
+		return ResponseEntity.status(HttpStatus.OK)
+				.body(new ResultMessage().setCode(false).setData(null).setMessage("用户名或密码错误"));
+
+	}
 }

+ 32 - 8
src/main/java/com/shawn/web/controller/TOrderController.java

@@ -5,15 +5,17 @@
 
 package com.shawn.web.controller;
 
-import java.util.Date;
+import java.util.*;
+import java.util.stream.Collectors;
 
+import com.shawn.model.Bean.ChartBean;
+import com.shawn.model.Bean.ChartColumn;
+import com.shawn.model.Bean.ChartSerie;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import com.shawn.model.dto.ResultMessage;
 import com.shawn.web.controller.base.BaseController;
@@ -24,7 +26,7 @@ import com.shawn.model.param.TOrderParam;
 import com.shawn.service.interfac.TOrderServiceInterface;
 
 import lombok.extern.apachecommons.CommonsLog;
-@CommonsLog
+@Slf4j
 @RestController
 @RequestMapping("TOrder")
 public class TOrderController extends BaseController<TOrder,TOrderExample,TOrderParam,Long>{
@@ -39,6 +41,28 @@ public class TOrderController extends BaseController<TOrder,TOrderExample,TOrder
 	protected TOrderExample createNewExample() {
 		return new TOrderExample();
 	}
-	
-    
+
+
+	@GetMapping("/getProductSaleMonth")
+	public ResponseEntity<?> getProductSaleMonth(String userId) {
+		log.info("userId:{}", userId);
+		List<ChartBean> list = tOrderService.getProductSaleMonth(userId);
+		ArrayList<String> categories = new ArrayList<>();
+		ArrayList<Integer> seriesDatas = new ArrayList<>();
+
+		for (ChartBean bean :list) {
+			categories.add(bean.getCategories());
+			seriesDatas.add(bean.getSeriesData());
+		}
+
+
+		ChartColumn chartColumn = new ChartColumn(categories,seriesDatas,"当月销量");
+
+		return ResponseEntity
+				.status(HttpStatus.OK)
+				.body(new ResultMessage()
+						.setCode(true)
+						.setData(chartColumn)
+						.setMessage("SUCCESS"));
+	}
 }

+ 1 - 2
src/main/resources/application.properties

@@ -1,12 +1,11 @@
 server.port=8090
-spring.application.name=shenzee-server
+spring.application.name=SHENZEE-SERVER
 #Log levels (TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF)
 logging.level.root=INFO
 logging.level.org.springframework=INFO
 logging.level.org.springframework.web=INFO
 logging.level.org.mybatis=DEBUG
 logging.level.com.shawn=DEBUG
-logging.level.org.activiti=DEBUG
 
 # File output
 logging.file.max-size=100MB

+ 16 - 1
src/main/resources/com/shawn/repository/mybatis/TOrderMapper.xml

@@ -29,6 +29,13 @@
     <result column="refund_trx_no" jdbcType="VARCHAR" property="refundTrxNo" />
     <result column="refund_amount" jdbcType="DECIMAL" property="refundAmount" />
   </resultMap>
+
+  <resultMap id="chartBean" type="com.shawn.model.Bean.ChartBean">
+    <result column="categories" jdbcType="VARCHAR" property="categories" />
+    <result column="seriesData" jdbcType="INTEGER" property="seriesData" />
+  </resultMap>
+
+
   <sql id="Example_Where_Clause">
     <where>
       <foreach collection="oredCriteria" item="criteria" separator="or">
@@ -647,4 +654,12 @@
       #{item}
     </foreach>
   </update>
-</mapper>
+  <select id="getProductSaleMonth" resultMap="chartBean" parameterType="java.lang.String">
+    select a.product_name as categories,count(1) as seriesData from t_order a where 1=1
+    and DATE_FORMAT( a.create_date,'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m')
+    and a.admin_id='56'
+    <!-- and a.admin_id=#{userId} -->
+    group by a.product_name
+    order by seriesData desc
+  </select>
+</mapper>