wangming 1 هفته پیش
والد
کامیت
037bd998e4

+ 3 - 5
yami-shop-api/src/main/java/com/yami/shop/api/config/SwaggerConfiguration.java

@@ -13,8 +13,6 @@ package com.yami.shop.api.config;
 import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-
-import org.springframework.context.annotation.Profile;
 import springfox.documentation.builders.ApiInfoBuilder;
 import springfox.documentation.builders.ParameterBuilder;
 import springfox.documentation.builders.PathSelectors;
@@ -47,9 +45,9 @@ public class SwaggerConfiguration {
 		ticketPar.name("authorization").description("authorization 拼接: bearer")//Token 以及Authorization 为自定义的参数,session保存的名字是哪个就可以写成那个
 				.modelRef(new ModelRef("string")).parameterType("header")
 				.required(true).build(); //header中的ticket参数非必填,传空也可以
-		t.name("t").description("时间戳")//Token 以及Authorization 为自定义的参数,session保存的名字是哪个就可以写成那个
-				.modelRef(new ModelRef("string")).parameterType("query")
-				.required(true).build(); //header中的ticket参数非必填,传空也可以
+//		t.name("t").description("时间戳")//Token 以及Authorization 为自定义的参数,session保存的名字是哪个就可以写成那个
+//				.modelRef(new ModelRef("string")).parameterType("query")
+//				.required(true).build(); //header中的ticket参数非必填,传空也可以
 		pars.add(t.build());
 		return new Docket(DocumentationType.SWAGGER_2)
 				.apiInfo(apiInfo())

+ 28 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/po/EnterpriseUserLogPo.java

@@ -0,0 +1,28 @@
+
+package com.yami.shop.bean.po;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.format.annotation.DateTimeFormat;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class EnterpriseUserLogPo {
+
+    private Long id;
+
+    private String operator;
+
+    private String taskName;
+
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private String createTime;
+
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private String completeTime;
+
+    private String result;
+
+}

+ 14 - 7
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/UserEnterpriseController.java

@@ -2,10 +2,12 @@ package com.yami.shop.platform.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yami.shop.bean.model.User;
+import com.yami.shop.bean.po.EnterpriseUserLogPo;
 import com.yami.shop.bean.po.EnterpriseUserPo;
 import com.yami.shop.bean.vo.EnterpriseUserVo;
 import com.yami.shop.common.util.PageParam;
 import com.yami.shop.common.util.R;
+import com.yami.shop.security.platform.util.SecurityUtils;
 import com.yami.shop.service.UserService;
 import io.swagger.annotations.ApiOperation;
 import lombok.SneakyThrows;
@@ -24,10 +26,9 @@ public class UserEnterpriseController {
     @Autowired
     private UserService userService;
 
-
+    @SneakyThrows
     @GetMapping("/downloadXlsx")
     @ApiOperation("下载导入企业员工模板(示例版)")
-    @SneakyThrows
     public R<Void> downloadZip(HttpServletResponse response) {
         response.sendRedirect("https://zswl-shop.oss-cn-chengdu.aliyuncs.com/2025/10/e24a324deb414ba4b46e1928b6d55483.xlsx");
         return R.SUCCESS();
@@ -40,21 +41,27 @@ public class UserEnterpriseController {
         return R.SUCCESS();
     }
 
-    @PostMapping("/uploadExcelGoods")
     @ApiOperation("导入企业员工")
+    @PostMapping("/uploadExcelGoods")
     public R<Void> downloadExcelGoods(MultipartFile file) {
-        userService.uploadExcelGoods(file);
+        userService.uploadExcelGoods(file, SecurityUtils.getSysUser().getUsername());
         return R.SUCCESS();
     }
 
-
-    @GetMapping("/enterpriseUserList")
     @ApiOperation("员工列表")
+    @GetMapping("/enterpriseUserList")
     public R<IPage<EnterpriseUserVo>> enterpriseUserList(EnterpriseUserPo po, PageParam<EnterpriseUserPo> page) {
         IPage<EnterpriseUserVo> userPage =  userService.enterpriseUserList(page,po);
         return R.SUCCESS(userPage);
     }
 
+    @GetMapping("/enterpriseUserLogList")
+    @ApiOperation("员工导入记录")
+    public R<IPage<EnterpriseUserLogPo>> enterpriseUserLogList(PageParam<EnterpriseUserLogPo> page) {
+        IPage<EnterpriseUserLogPo> logList =  userService.enterpriseUserLogList(page);
+        return R.SUCCESS(logList);
+    }
+
     @PostMapping("/addUser")
     @ApiOperation("新增企业员工")
     public R<Void> addUser(@RequestBody EnterpriseUserPo po) {
@@ -62,8 +69,8 @@ public class UserEnterpriseController {
         return R.SUCCESS();
     }
 
-    @DeleteMapping("/deleteUserById")
     @ApiOperation("删除员工")
+    @DeleteMapping("/deleteUserById")
     public R<Void> deleteUserById(String userId) {
         userService.removeById(userId);
         return R.SUCCESS();

+ 5 - 0
yami-shop-service/src/main/java/com/yami/shop/dao/UserMapper.java

@@ -14,6 +14,7 @@ import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yami.shop.bean.model.User;
+import com.yami.shop.bean.po.EnterpriseUserLogPo;
 import com.yami.shop.bean.po.EnterpriseUserPo;
 import com.yami.shop.bean.vo.EnterpriseUserVo;
 import com.yami.shop.bean.vo.UserPointsVO;
@@ -39,4 +40,8 @@ public interface UserMapper extends BaseMapper<User> {
     IPage<UserPointsVO> statisticsList(PageParam<User> pageParam, @Param("user")User user);
 
     IPage<EnterpriseUserVo> enterpriseUserList(@Param("page") PageParam<EnterpriseUserPo> page, @Param("po") EnterpriseUserPo po);
+
+    void addUserLog(@Param("operator") String operator, @Param("result") String result);
+
+    IPage<EnterpriseUserLogPo> enterpriseUserLogList(@Param("page") PageParam<EnterpriseUserLogPo> page);
 }

+ 4 - 1
yami-shop-service/src/main/java/com/yami/shop/service/UserService.java

@@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yami.shop.bean.app.param.UserRegisterParam;
 import com.yami.shop.bean.model.User;
+import com.yami.shop.bean.po.EnterpriseUserLogPo;
 import com.yami.shop.bean.po.EnterpriseUserPo;
 import com.yami.shop.bean.vo.EnterpriseUserVo;
 import com.yami.shop.bean.vo.UserPointsVO;
@@ -50,7 +51,9 @@ public interface UserService extends IService<User> {
 
     void downloadExcelGoods(HttpServletResponse response);
 
-    void uploadExcelGoods(MultipartFile file);
+    void uploadExcelGoods(MultipartFile file,String username);
 
     void addUser(EnterpriseUserPo po);
+
+    IPage<EnterpriseUserLogPo> enterpriseUserLogList(PageParam<EnterpriseUserLogPo> page);
 }

+ 8 - 1
yami-shop-service/src/main/java/com/yami/shop/service/impl/UserServiceImpl.java

@@ -24,6 +24,7 @@ import com.yami.shop.bean.app.param.UserRegisterParam;
 import com.yami.shop.bean.model.Channel;
 import com.yami.shop.bean.model.User;
 import com.yami.shop.bean.po.EnterpriseUserExcelInfo;
+import com.yami.shop.bean.po.EnterpriseUserLogPo;
 import com.yami.shop.bean.po.EnterpriseUserPo;
 import com.yami.shop.bean.vo.EnterpriseUserVo;
 import com.yami.shop.bean.vo.UserPointsVO;
@@ -130,7 +131,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     @Override
     @SneakyThrows
     @Transactional(rollbackFor = Exception.class)
-    public void uploadExcelGoods(MultipartFile file) {
+    public void uploadExcelGoods(MultipartFile file,String username) {
         List<EnterpriseUserExcelInfo> goodsInfoList = Lists.newArrayList();
         EasyExcel.read(file.getInputStream(), EnterpriseUserExcelInfo.class, new PageReadListener<EnterpriseUserExcelInfo>(goodsInfoList::addAll)).sheet().doRead();
         CullenUtils.validateDataThrowException(goodsInfoList.isEmpty(), "请上传企业用户信息...");
@@ -138,6 +139,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             CullenUtils.validateDataThrowException(c.getChannel().contains("必填"), "请删除示例后重试...");
             addUser(new EnterpriseUserPo(getChannel(c.getChannel()), c.getRealName(), c.getPhone()));
         });
+        userMapper.addUserLog(username,String.format("共%d条,成功%d条,失败%d条",goodsInfoList.size(),goodsInfoList.size(),0));
     }
 
     @Override
@@ -165,6 +167,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         }
     }
 
+    @Override
+    public IPage<EnterpriseUserLogPo> enterpriseUserLogList(PageParam<EnterpriseUserLogPo> page) {
+        return userMapper.enterpriseUserLogList(page);
+    }
+
     private Long getChannel(String channel) {
         List<Channel> channelList = channelMapper.selectList(new LambdaQueryWrapper<Channel>().like(Channel::getChannelName, channel));
         CullenUtils.validateDataThrowException(channelList.isEmpty(), "没有该渠道,请检查后重试...");

+ 16 - 4
yami-shop-service/src/main/resources/mapper/UserMapper.xml

@@ -89,9 +89,10 @@
     <select id="statisticsList" resultType="com.yami.shop.bean.vo.UserPointsVO">
 
         SELECT u.user_id,u.real_name,u.user_mobile,
-               c.channel_name,
+        c.channel_name,
         sum(IF(pr.points_type = 1, pr.points, 0)) AS successStatus,
-        sum(IF(pr.expiry_date IS NOT NULL AND pr.expiry_date &lt;= NOW() and pr.points_type = 1, pr.points - pr.variable_points, 0, 0)) AS availablePoints,
+        sum(IF(pr.expiry_date IS NOT NULL AND pr.expiry_date &lt;= NOW() and pr.points_type = 1, pr.points -
+        pr.variable_points, 0, 0)) AS availablePoints,
         sum(IF(pr.points_type = 1, pr.points, 0)) AS successStatus
 
         FROM tz_user u
@@ -109,8 +110,9 @@
         IFNULL((SELECT SUM(points) FROM tz_points_recharge WHERE user_id=a.user_id),0) total,
         IFNULL((SELECT SUM(points) FROM tz_points_recharge WHERE user_id=a.user_id and recharge_status=1),0) available,
         IFNULL((SELECT SUM(points) FROM tz_points_recharge WHERE user_id=a.user_id and recharge_status=2),0) expired,
-        (SELECT(IFNULL((SELECT SUM(points) FROM tz_points_record WHERE user_id = a.user_id AND points_type = 2 AND points_audit IN (2,3)), 0)-
-        IFNULL((SELECT SUM(points) FROM tz_points_record WHERE user_id = a.user_id  AND points_type = 3), 0))) used
+        (SELECT(IFNULL((SELECT SUM(points) FROM tz_points_record WHERE user_id = a.user_id AND points_type = 2 AND
+        points_audit IN (2,3)), 0)-
+        IFNULL((SELECT SUM(points) FROM tz_points_record WHERE user_id = a.user_id AND points_type = 3), 0))) used
         FROM tz_user a
         <where>
             <if test="po.channelId != null">
@@ -125,4 +127,14 @@
         </where>
     </select>
 
+    <insert id="addUserLog" parameterType="string">
+        insert into tz_user_add_log(operator, task_name, create_time, complete_time, result)
+        values (#{operator}, "员工导入", NOW(), NOW(), #{result})
+    </insert>
+
+
+    <select id="enterpriseUserLogList" resultType="com.yami.shop.bean.po.EnterpriseUserLogPo">
+        SELECT * FROM `tz_user_add_log` ORDER BY complete_time desc
+    </select>
+
 </mapper>